diff --git a/AI_analiz.txt b/AI_analiz.txt
index 4eec32d2..2ab0abdd 100644
--- a/AI_analiz.txt
+++ b/AI_analiz.txt
@@ -1956,10 +1956,47 @@ supabase db reset
---
-
+ 1. Navigasyon Yapısı (Kesinleşen)
+ Alt Menü (Bottom Bar - 5'li):
+ 1. 🏠 Home: Ana Dashboard (Gruplandırılmış ikonlar burada).
+ 2. 📱 Apps: Tüm mini-app'lerin alfabetik veya kategorik tam listesi (Hızlı erişim çekmecesi).
+ 3. 🏛️ Citizen (Ortada, Büyük): "Dijital Kimlik Kartı". Tıklayınca eğer vatandaş değilse başvuruya,
+ vatandaşsa dijital kimlik kartına (QR kodlu) döner.
+ 4. 🤝 Referral: Büyüme motoru.
+ 5. 👤 Profile: Kişisel alan.
-**Last Updated:** 2025-11-17
+ Üst Header:
+ * Sol: Avatar (Tıklayınca hızlı durum değişimi: Online/Busy).
+ * Sağ: 🔔 Bildirimler, ⚙️ Ayarlar.
+ * Ekstra : Avatarın yanına pezpallet tiki den canli veri ceken ve kullanicinin sahip oldugu tikileri gosteren alan.
-**Maintained By:** PezkuwiChain Development Team
+ 2. Body (Gövde) Gruplandırması ve Yeni Fikirler
+ Sizin dikdörtgen alanlarınızı zenginleştirelim:
-**Production Status:** 95% Complete - Beta Testnet Active
\ No newline at end of file
+ 💰 FINANCE (Finansal Alan)
+ Mevcut: Wallet, Bank, Exchange, P2P, B2B.
+ * Benim Eklemelerim:
+ * 📊 Tax (Vergi/Zekat): Gönüllü katkı veya sistem vergilerini şeffafça ödeme/izleme.
+ * 🌱 Launchpad: Yeni Kürt girişimlerine/tokenlarına erken yatırım yapma alanı.
+ * 💳 Cards: Sanal veya fiziksel Pezkuwi Kart yönetimi (Gelecek vizyonu).
+
+ 🏛️ GOVERNANCE (Yönetim Alanı)
+ Mevcut: President, Assembly, Government, Validators, Nominators, Vote.
+ * Benim Eklemelerim:
+ * ⚖️ Justice (Dad): Anlaşmazlık çözüm merkezi (AI Lawyer entegreli).
+ * 📜 Proposals: Halkın doğrudan yasa teklifi verebileceği alan.
+ * 🗳️ Polls: Hızlı kamuoyu yoklamaları (Anketler).
+
+ 💬 SOCIAL (Sosyal Alan)
+ Mevcut: whatsKURD, VPN, Forum, KurdMedia.
+ * Benim Eklemelerim:
+ * 🎭 Events (Çalakî): Kürt dünyasındaki konser, miting, konferans takvimi ve biletleme.
+ * 🤝 Help (Harîkarî): Deprem, sel gibi durumlarda acil yardımlaşma ve bağış ağı.
+ * 🎵 Music: Kürtçe müzik streaming servisi entegrasyonu (Spotify gibi ama yerel).
+
+ 📚 EDUCATION (Eğitim Alanı)
+ Mevcut: University, College, Kids, Programs.
+ * Benim Eklemelerim:
+ * 📜 Library (Pirtûkxane): Dijital Kürtçe kütüphane ve arşiv.
+ * 🗣️ Language (Ziman): Kürtçe (Kurmancî/Sorani/Zazaki) öğrenme modülü (Duolingo tarzı).
+ * 🏆 Certificates: Blokzincir tabanlı diplomalar ve sertifikalar cüzdanı.
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
deleted file mode 100644
index d6c9dc5f..00000000
--- a/CLAUDE.md
+++ /dev/null
@@ -1,991 +0,0 @@
-# CLAUDE.md - AI Assistant Guide for PezkuwiChain Web App Projects
-
-**Last Updated:** 2025-11-17
-**Production Status:** ~95% Complete
-**Active Network:** Beta Testnet (`wss://rpc.pezkuwichain.io:9944`)
-
----
-
-## 🎯 Quick Start for AI Assistants
-
-This is a **production-grade blockchain monorepo** for PezkuwiChain with live validators running on VPS. Exercise extreme caution when making changes that could affect blockchain operations.
-
-### Critical Rules (READ FIRST!)
-
-⚠️ **NEVER DO THESE WITHOUT EXPLICIT USER PERMISSION:**
-1. **DO NOT** restart or stop VPS validators (7 validators currently finalizing blocks)
-2. **DO NOT** modify chain specs (`/root/pezkuwi-sdk/chain-specs/beta/beta-testnet-raw.json`)
-3. **DO NOT** change blockchain base paths or validator configurations
-4. **DO NOT** commit `.env` files or secrets to git
-5. **DO NOT** deploy to production without testing locally first
-6. **DO NOT** make assumptions about blockchain operations - **ALWAYS ASK**
-
-### User Preferences (MUST FOLLOW!)
-
-1. **Screenshot Location:** When user says "ekrana bak" (look at screen), read `/home/mamostehp/pwap/screenshot.png`
-2. **Git Commits:** NEVER add Claude signature/attribution to commit messages (no "🤖 Generated with Claude Code" or "Co-Authored-By: Claude")
-3. **Deploy Path:** Web app deploys to `root@37.60.230.9:/var/www/pezkuwichain/web/dist/` - Nginx config points here
-4. **Documentation:** ALL docs go in `/home/mamostehp/pwap/docs/` folder (subfolders: p2p/, commission/, reports/, testing/, presale/) - NEVER put .md files in project root except README.md and CLAUDE.md
-5. **Production Wallet:** P2P Escrow wallet is `5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3` - NEVER use dev/test addresses like Alice
-
-### VPS Infrastructure
-
-- **IP:** 37.60.230.9
-- **Validators:** 7 running (ports 30333-30339, RPC 9944-9950)
-- **Frontend:** Nginx serving at `/var/www/pezkuwichain/web/dist/`
-- **Blockchain:** LIVE on Beta Testnet - handle with care
-
----
-
-## 📁 Repository Structure
-
-```
-pezkuwi-web-app-projects/
-├── web/ # Main React web app (Vite + TypeScript) - 90% complete
-├── mobile/ # React Native Expo app - 50% complete
-├── pezkuwi-sdk-ui/ # Polkadot.js SDK UI (branded clone) - 47MB
-├── shared/ # Shared code library (types, utils, blockchain, i18n)
-├── README.md # Project overview
-├── PRODUCTION_READINESS.md # Production status report
-└── CLAUDE_README_KRITIK.md # CRITICAL operational guidelines (Turkish)
-```
-
-### Directory Breakdown
-
-| Directory | Size | Status | Purpose |
-|-----------|------|--------|---------|
-| `web/` | 3.8MB | 90% | Main production web application |
-| `mobile/` | 737KB | 50% | iOS/Android mobile app |
-| `pezkuwi-sdk-ui/` | 47MB | Active | Polkadot.js Apps clone |
-| `shared/` | 402KB | 100% | Shared libraries & utilities |
-
----
-
-## 🛠️ Tech Stack
-
-### Web Application (`/web/`)
-
-| Category | Technology | Version | Purpose |
-|----------|-----------|---------|---------|
-| **Framework** | React | 18.3.1 | UI framework |
-| **Language** | TypeScript | 5.5.3 | Type safety |
-| **Build Tool** | Vite | 5.4.1 | Fast bundler with HMR |
-| **Blockchain** | Polkadot.js API | 16.4.9 | Blockchain integration |
-| **Backend** | Supabase | 2.49.4 | Auth & Database |
-| **UI Library** | shadcn/ui | Latest | Radix UI components |
-| **Styling** | Tailwind CSS | 3.4.11 | Utility-first CSS |
-| **State** | React Context | - | Global state management |
-| **Data Fetching** | TanStack Query | 5.56.2 | Server state caching |
-| **Routing** | React Router | 6.26.2 | Client-side routing |
-| **i18n** | i18next | 23.7.6 | 6-language support |
-| **Forms** | React Hook Form | 7.53.0 | Form management |
-| **Validation** | Zod | 3.23.8 | Schema validation |
-| **Charts** | Recharts | 2.12.7 | Data visualization |
-| **Icons** | Lucide React | 0.462.0 | Icon library |
-| **Notifications** | Sonner | 1.5.0 | Toast notifications |
-
-### Mobile Application (`/mobile/`)
-
-| Category | Technology | Version | Purpose |
-|----------|-----------|---------|---------|
-| **Framework** | React Native | 0.81.5 | Mobile framework |
-| **Runtime** | Expo | 54.0.23 | Development platform |
-| **Navigation** | React Navigation | 7.x | Native navigation |
-| **Blockchain** | Polkadot.js API | 16.5.2 | Blockchain integration |
-| **Storage** | AsyncStorage | 2.2.0 | Persistent storage |
-| **Security** | Expo SecureStore | 15.0.7 | Encrypted storage |
-| **Biometrics** | expo-local-authentication | 17.0.7 | Fingerprint/FaceID |
-| **i18n** | i18next | 25.6.2 | Multi-language |
-
-### Shared Library (`/shared/`)
-
-- **Language:** TypeScript (100% typed)
-- **Runtime:** Platform-agnostic (Node.js + Browser + React Native)
-- **Dependencies:** Minimal (Polkadot.js only)
-
----
-
-## 🔑 Key Files & Entry Points
-
-### Web Application
-
-**Entry Points:**
-- `web/src/main.tsx` - React root render
-- `web/src/App.tsx` - Provider hierarchy & routing
-- `web/index.html` - HTML template
-
-**Configuration:**
-- `web/vite.config.ts` - Vite bundler config with path aliases
-- `web/tailwind.config.ts` - Tailwind with Kurdistan color theme
-- `web/tsconfig.json` - TypeScript strict mode + path mappings
-- `web/postcss.config.js` - PostCSS for Tailwind
-
-**State Management (6 Contexts):**
-- `contexts/PolkadotContext.tsx` - Blockchain API connection
-- `contexts/WalletContext.tsx` - Wallet state & multi-token balances
-- `contexts/AuthContext.tsx` - Supabase authentication
-- `contexts/AppContext.tsx` - Global application state
-- `contexts/WebSocketContext.tsx` - Real-time blockchain updates
-- `contexts/IdentityContext.tsx` - User identity & KYC status
-
-**Backend:**
-- `src/lib/supabase.ts` - Supabase client initialization
-- `supabase/migrations/*.sql` - Database schema migrations (9 files)
-
-### Mobile Application
-
-**Entry Points:**
-- `mobile/index.ts` - Expo registerRootComponent
-- `mobile/App.tsx` - Root with i18n initialization
-- `mobile/src/navigation/AppNavigator.tsx` - Navigation setup
-
-### Shared Library
-
-**Core Files:**
-- `shared/blockchain/endpoints.ts` - Network endpoint configurations
-- `shared/blockchain/polkadot.ts` - Polkadot.js utilities
-- `shared/constants/index.ts` - KNOWN_TOKENS, KURDISTAN_COLORS, LANGUAGES
-- `shared/i18n/index.ts` - i18n configuration
-- `shared/types/blockchain.ts` - Blockchain type definitions
-- `shared/lib/wallet.ts` - Wallet utilities & formatters
-
-**Business Logic Libraries:**
-- `shared/lib/citizenship-workflow.ts` - KYC & citizenship workflow
-- `shared/lib/tiki.ts` - 70+ government roles (Hemwelatî, Parlementer, etc.)
-- `shared/lib/perwerde.ts` - Education platform logic
-- `shared/lib/p2p-fiat.ts` - P2P fiat trading system (production-ready)
-- `shared/lib/staking.ts` - Staking operations
-- `shared/lib/multisig.ts` - Multisig treasury operations
-- `shared/lib/validator-pool.ts` - Validator pool management
-
----
-
-## 🚀 Development Workflows
-
-### Web Development
-
-```bash
-# Navigate to web directory
-cd web
-
-# Install dependencies
-npm install
-
-# Start development server (localhost:8081)
-npm run dev
-
-# Build for production
-npm run build
-
-# Preview production build
-npm run preview
-
-# Lint code
-npm run lint
-```
-
-**Environment Setup:**
-1. Copy `.env.example` to `.env`
-2. Set `VITE_NETWORK=local` (or testnet/beta/mainnet)
-3. Configure Supabase credentials:
- - `VITE_SUPABASE_URL`
- - `VITE_SUPABASE_ANON_KEY`
-4. Set blockchain endpoint (optional, defaults to beta)
-
-### Mobile Development
-
-```bash
-# Navigate to mobile directory
-cd mobile
-
-# Install dependencies
-npm install
-
-# Start Expo development server
-npm start
-
-# Run on Android emulator
-npm run android
-
-# Run on iOS simulator
-npm run ios
-
-# Run in web browser
-npm run web
-```
-
-### Deploying to Production (Web)
-
-```bash
-# 1. Build locally
-cd /home/mamostehp/pwap/web
-npm run build
-
-# 2. Deploy to VPS
-rsync -avz dist/ pezkuwi-vps:/var/www/pezkuwichain/web/dist/
-
-# 3. Reload Nginx (no restart needed)
-ssh pezkuwi-vps "systemctl reload nginx"
-```
-
-**Important:** Always test locally with `npm run build && npm run preview` before deploying to VPS.
-
----
-
-## 📂 Code Organization Patterns
-
-### Component Structure
-
-**Web Components:**
-```
-web/src/components/
-├── ui/ # shadcn/ui primitives (50+ components)
-│ ├── button.tsx
-│ ├── card.tsx
-│ ├── dialog.tsx
-│ └── ...
-├── auth/ # Authentication components
-├── citizenship/ # Citizenship/KYC UI
-├── dex/ # DEX/Swap interface
-├── delegation/ # Delegation management
-├── forum/ # Forum components
-├── governance/ # Governance interface
-├── p2p/ # P2P fiat trading
-├── perwerde/ # Education platform
-├── staking/ # Staking dashboard
-└── wallet/ # Wallet components
-```
-
-**Pattern:** Feature-based organization with co-located types and utilities.
-
-### File Naming Conventions
-
-- **Components:** PascalCase (`StakingDashboard.tsx`)
-- **Utilities:** camelCase (`wallet.ts`, `formatting.ts`)
-- **Types:** PascalCase interfaces/types (`WalletAccount`, `TokenInfo`)
-- **Constants:** UPPER_SNAKE_CASE exports (`ASSET_IDS`, `KURDISTAN_COLORS`)
-
-### Import Patterns
-
-**Path Aliases (Web):**
-```typescript
-// Local imports
-import { Component } from '@/components/ui/component';
-import { useWallet } from '@/contexts/WalletContext';
-
-// Shared library imports
-import { formatBalance } from '@pezkuwi/lib/wallet';
-import { WalletAccount } from '@pezkuwi/types';
-import { KURDISTAN_COLORS } from '@pezkuwi/constants';
-import { translations } from '@pezkuwi/i18n';
-```
-
-**Import Order (Follow This!):**
-1. React imports
-2. External libraries
-3. Shared imports (`@pezkuwi/*`)
-4. Local imports (`@/`)
-5. Types
-6. Styles/assets
-
-**Example:**
-```typescript
-import React, { useState, useEffect } from 'react';
-import { useNavigate } from 'react-router-dom';
-import { useQuery } from '@tanstack/react-query';
-import { formatBalance } from '@pezkuwi/lib/wallet';
-import { WalletAccount } from '@pezkuwi/types';
-import { ASSET_IDS } from '@pezkuwi/constants';
-import { useWallet } from '@/contexts/WalletContext';
-import { Card } from '@/components/ui/card';
-import type { PoolInfo } from '@/types/dex';
-import '@/styles/dashboard.css';
-```
-
-### TypeScript Conventions
-
-**Strict Mode Enabled:**
-```json
-{
- "strict": true,
- "noImplicitAny": true,
- "strictNullChecks": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true
-}
-```
-
-**Type Patterns:**
-- Use `interface` for object shapes
-- Use `type` for unions, intersections, and complex types
-- Use `enum` for fixed sets of values
-- Use `as const` for literal types
-- Avoid `any` - use `unknown` and type guards instead
-
----
-
-## ⛓️ Blockchain Integration
-
-### Network Endpoints
-
-```typescript
-// shared/blockchain/endpoints.ts
-const ENDPOINTS = {
- MAINNET: 'wss://mainnet.pezkuwichain.io',
- BETA: 'wss://rpc.pezkuwichain.io:9944', // Currently active
- STAGING: 'wss://staging.pezkuwichain.io',
- TESTNET: 'wss://testnet.pezkuwichain.io',
- LOCAL: 'ws://127.0.0.1:9944'
-};
-
-// Default for development
-DEFAULT_ENDPOINT = 'ws://127.0.0.1:9944';
-```
-
-### Asset System
-
-**⚠️ CRITICAL: wUSDT uses 6 decimals, not 12!**
-
-```typescript
-// Native token (no Asset ID)
-HEZ - Accessed via system.account.data.free
-
-// Assets pallet (12 decimals except wUSDT)
-ASSET_IDS = {
- WHEZ: 0, // Wrapped HEZ - 12 decimals
- PEZ: 1, // Utility token - 12 decimals
- WUSDT: 2, // Wrapped USDT - 6 decimals ⚠️
-}
-
-// Display mapping (internal vs user-facing)
-TOKEN_DISPLAY_SYMBOLS = {
- 'wHEZ': 'HEZ', // Show as HEZ to users
- 'wUSDT': 'USDT', // Show as USDT to users
- 'PEZ': 'PEZ' // Keep as PEZ
-}
-```
-
-### Polkadot.js Connection Pattern
-
-```typescript
-import { ApiPromise, WsProvider } from '@polkadot/api';
-
-// Initialize API
-const provider = new WsProvider(endpoint);
-const api = await ApiPromise.create({ provider });
-await api.isReady;
-
-// Query native balance
-const { data } = await api.query.system.account(address);
-const balance = data.free.toString();
-
-// Query asset balance
-const assetData = await api.query.assets.account(ASSET_IDS.PEZ, address);
-const amount = assetData.unwrap().balance.toString();
-```
-
-### Transaction Pattern
-
-```typescript
-// Simple transaction
-const extrinsic = api.tx.balances.transfer(dest, amount);
-const hash = await extrinsic.signAndSend(account, { signer });
-
-// With event handling
-const result = await new Promise((resolve, reject) => {
- let unsub;
-
- api.tx.module.method(params)
- .signAndSend(account, { signer }, ({ status, events, dispatchError }) => {
- if (dispatchError) {
- if (dispatchError.isModule) {
- const decoded = api.registry.findMetaError(dispatchError.asModule);
- reject(new Error(`${decoded.section}.${decoded.name}: ${decoded.docs}`));
- } else {
- reject(new Error(dispatchError.toString()));
- }
- if (unsub) unsub();
- return;
- }
-
- if (status.isInBlock) {
- // Extract data from events
- const event = events.find(e =>
- e.event.section === 'module' &&
- e.event.method === 'EventName'
- );
- resolve(event.data[0].toString());
- if (unsub) unsub();
- }
- })
- .then(unsubscribe => { unsub = unsubscribe; });
-});
-```
-
-### Custom Pallets
-
-1. **pallet-tiki** - Governance roles (70+ roles: Hemwelatî, Parlementer, Serok, Wezir, etc.)
-2. **pallet-identity-kyc** - Zero-knowledge citizenship & KYC
-3. **pallet-perwerde** - Education platform (courses, enrollments, certificates)
-4. **pallet-validator-pool** - Validator pool categories & staking
-5. **pallet-welati** - P2P fiat trading with escrow
-
----
-
-## 🎨 UI Patterns & Styling
-
-### shadcn/ui Components
-
-Located in `web/src/components/ui/` - 50+ components built on Radix UI primitives.
-
-**Component Variants (CVA Pattern):**
-```typescript
-import { cva } from 'class-variance-authority';
-
-const buttonVariants = cva(
- 'inline-flex items-center justify-center rounded-md font-medium',
- {
- variants: {
- variant: {
- default: 'bg-kurdish-green text-white',
- destructive: 'bg-kurdish-red text-white',
- outline: 'border border-input bg-background',
- },
- size: {
- default: 'h-10 px-4 py-2',
- sm: 'h-9 px-3',
- lg: 'h-11 px-8',
- }
- },
- defaultVariants: {
- variant: 'default',
- size: 'default',
- }
- }
-);
-```
-
-### Kurdistan Color System
-
-**Primary Colors:**
-```typescript
-KURDISTAN_COLORS = {
- kesk: '#00A94F', // Green (Kesk) - Primary brand color
- sor: '#EE2A35', // Red (Sor) - Danger/error
- zer: '#FFD700', // Yellow/Gold (Zer) - Warning/accent
- spi: '#FFFFFF', // White (Spî)
- res: '#000000', // Black (Reş)
-}
-```
-
-**Tailwind Usage:**
-```css
-bg-kurdish-green
-bg-kurdish-green-dark
-bg-kurdish-green-light
-text-kurdish-red
-border-kurdish-yellow
-```
-
----
-
-## 🌍 Internationalization (i18n)
-
-### Supported Languages
-
-| Code | Language | Direction | Status |
-|------|----------|-----------|--------|
-| `en` | English | LTR | ✅ Complete |
-| `tr` | Türkçe (Turkish) | LTR | ✅ Complete |
-| `kmr` | Kurmancî (Kurdish Kurmanji) | LTR | ✅ Complete |
-| `ckb` | سۆرانی (Kurdish Sorani) | RTL | ✅ Complete |
-| `ar` | العربية (Arabic) | RTL | ✅ Complete |
-| `fa` | فارسی (Persian) | RTL | ✅ Complete |
-
-### Translation Files
-
-- **Web:** `web/src/i18n/locales/*.ts` (TypeScript modules - local imports)
-- **Mobile:** `mobile/src/i18n/locales/*.ts`
-- **Shared:** `shared/i18n/locales/*.json` (JSON files)
-
-**⚠️ Important:** Web uses `.ts` files with local imports, not shared JSON files. This was changed to fix loading issues.
-
-### RTL Support
-
-```typescript
-import { isRTL } from '@pezkuwi/i18n';
-
-// Detect RTL languages
-const isRightToLeft = isRTL(currentLanguage); // true for ckb, ar, fa
-
-// Apply direction
-document.dir = isRightToLeft ? 'rtl' : 'ltr';
-```
-
-### Usage Pattern
-
-```typescript
-import { useTranslation } from 'react-i18next';
-
-function Component() {
- const { t, i18n } = useTranslation();
-
- return (
-
-
{t('welcome.title')}
-
-
- );
-}
-```
-
----
-
-## 🗄️ State Management
-
-### Provider Hierarchy
-
-**Order matters!** This is the provider nesting in `web/src/App.tsx`:
-
-```typescript
- // Dark/light mode
- // Error handling
- // Supabase authentication
- // Global app state
- // Blockchain API connection
- // Wallet state & balances
- // Real-time blockchain events
- // User identity & KYC
-
-
-
-
-
-
-
-
-
-```
-
-### Context APIs
-
-**PolkadotContext:**
-```typescript
-interface PolkadotContextType {
- api: ApiPromise | null;
- isApiReady: boolean;
- accounts: InjectedAccountWithMeta[];
- selectedAccount: InjectedAccountWithMeta | null;
- connectWallet: () => Promise;
- disconnectWallet: () => void;
- error: string | null;
-}
-```
-
-**WalletContext:**
-```typescript
-interface WalletContextType {
- isConnected: boolean;
- account: string | null;
- accounts: InjectedAccountWithMeta[];
- balance: string; // HEZ native balance
- balances: {
- HEZ: string;
- PEZ: string;
- wHEZ: string;
- USDT: string;
- };
- signer: Signer | null;
- connectWallet: () => Promise;
- disconnect: () => void;
- switchAccount: (account: InjectedAccountWithMeta) => void;
- signTransaction: (tx: SubmittableExtrinsic) => Promise;
- refreshBalances: () => Promise;
-}
-```
-
-### TanStack Query (React Query)
-
-Used for server state caching and automatic refetching:
-
-```typescript
-import { useQuery } from '@tanstack/react-query';
-
-const { data, isLoading, error } = useQuery({
- queryKey: ['proposals'],
- queryFn: () => fetchProposals(api),
- refetchInterval: 30000, // Refresh every 30 seconds
- enabled: !!api, // Only run when API is ready
-});
-```
-
----
-
-## 🔐 Security Best Practices
-
-### Environment Variables
-
-**NEVER commit `.env` files!**
-
-```bash
-# .env.example (commit this)
-VITE_SUPABASE_URL=your_supabase_url
-VITE_SUPABASE_ANON_KEY=your_anon_key
-VITE_NETWORK=local
-
-# .env (DO NOT commit)
-VITE_SUPABASE_URL=https://actual-url.supabase.co
-VITE_SUPABASE_ANON_KEY=actual_key_here
-VITE_NETWORK=beta
-```
-
-**Access in code:**
-```typescript
-// Web (Vite)
-const supabaseUrl = import.meta.env.VITE_SUPABASE_URL;
-
-// Mobile (Expo)
-const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL;
-```
-
-### Sensitive Data Handling
-
-- **Wallet seeds:** NEVER stored in app - Polkadot.js extension only
-- **Private keys:** NEVER accessible to frontend code
-- **KYC data:** AES-GCM encrypted → IPFS → Hash stored on-chain
-- **API keys:** Environment variables only, never hardcoded
-
-### Error Handling
-
-```typescript
-// ErrorBoundary for React errors
-
-
-
-
-// Try-catch for async operations
-try {
- await api.tx.method(params).signAndSend(account, { signer });
- toast.success('Transaction successful!');
-} catch (error) {
- console.error('Transaction failed:', error);
- toast.error(error.message || 'Transaction failed');
- // Don't expose sensitive error details to users
-}
-```
-
----
-
-## 🧰 Utility Functions
-
-### Formatting
-
-```typescript
-import { formatAddress, formatBalance, parseAmount } from '@pezkuwi/utils/formatting';
-
-// Address formatting
-formatAddress('5GrwVaEbzhSSC2biT...xQjz')
-// → '5GrwV...xQjz'
-
-// Balance formatting (with decimals)
-formatBalance('1234567890000', 12) // HEZ, PEZ, wHEZ
-// → '1234.5679'
-
-formatBalance('1234567', 6) // wUSDT (6 decimals!)
-// → '1.2346'
-
-// Amount parsing (to BigInt)
-parseAmount('100', 12)
-// → 100000000000000n
-```
-
-### Validation
-
-```typescript
-import { isValidAddress, isValidAmount } from '@pezkuwi/utils/validation';
-
-isValidAddress('5GrwVaEbzhSSC2biT...') // true
-isValidAmount('100.5') // true
-isValidAmount('abc') // false
-```
-
----
-
-## 🧪 Testing & Quality
-
-### Before Committing
-
-1. **Run linter:** `npm run lint`
-2. **Check no `.env` committed:** `git status`
-3. **Remove debug logs:** Search for `console.log`
-4. **Update types:** If API changed
-5. **Test i18n:** Check all 6 languages
-6. **Test RTL:** Check ckb, ar, fa layouts
-
-### Before Deploying
-
-1. **Test production build:**
- ```bash
- npm run build
- npm run preview
- ```
-2. **Verify environment variables** set correctly
-3. **Check Supabase migrations** applied
-4. **Backup database** (if schema changed)
-5. **Monitor blockchain** validator status
-
----
-
-## 📊 Database Schema (Supabase)
-
-### Core Tables
-
-- **profiles** - User profiles (linked to auth.users)
-- **forum_categories** - Forum categories
-- **forum_threads** - Forum threads
-- **forum_posts** - Forum posts with moderation
-- **courses** - Perwerde education courses
-- **enrollments** - Course enrollments
-- **p2p_offers** - P2P fiat trading offers
-- **p2p_trades** - Active trades with escrow
-- **p2p_reputation** - User reputation scores
-- **payment_methods** - Payment method registry
-
-### Hybrid Architecture
-
-**Blockchain = Source of Truth**
-```
-User action → Blockchain transaction → Event emitted
- ↓
-Event listener → Supabase sync (for indexing/caching)
- ↓
-UI queries Supabase (fast) + Blockchain (verification)
-```
-
-**Example Flow (Creating a Course):**
-1. User submits form
-2. Frontend calls `api.tx.perwerde.createCourse(...)`
-3. Transaction finalized on-chain
-4. Event listener catches `CourseCreated` event
-5. Sync to Supabase for UI display
-6. UI reads from Supabase (fast) but trusts blockchain
-
----
-
-## 🚨 Common Issues & Solutions
-
-### Issue: Polkadot.js API not connecting
-
-**Solution:**
-1. Check endpoint is reachable: `curl -I http://37.60.230.9:9944`
-2. Verify WebSocket protocol (wss vs ws)
-3. Check CORS settings on blockchain node
-4. Ensure validators are running: `ssh pezkuwi-vps "ps aux | grep pezkuwi"`
-
-### Issue: Transaction fails with "BadOrigin"
-
-**Solution:**
-- User doesn't have required role (check pallet-tiki roles)
-- Use `dispatch_as` if needed for elevated permissions
-
-### Issue: Balance shows as 0
-
-**Solution:**
-- Check correct Asset ID (wHEZ: 0, PEZ: 1, wUSDT: 2)
-- Remember wUSDT uses 6 decimals, not 12
-- Verify account has opted-in to asset (required for assets pallet)
-
-### Issue: i18n translations not loading
-
-**Solution:**
-- Web uses local `.ts` files (not shared JSON)
-- Check import path: `import en from './locales/en.ts'`
-- Not: `import en from '@pezkuwi/i18n/locales/en.json'`
-
-### Issue: Build fails with "Can't resolve @pezkuwi/..."
-
-**Solution:**
-- Check Vite path aliases in `vite.config.ts`
-- Verify TypeScript path mappings in `tsconfig.json`
-- Run `npm install` in shared directory if using symlinks
-
----
-
-## 📝 Commit Guidelines
-
-### Commit Message Format
-
-```
-:
-
-
-```
-
-**Types:**
-- `feat:` New feature
-- `fix:` Bug fix
-- `docs:` Documentation changes
-- `style:` Code style changes (formatting)
-- `refactor:` Code refactoring
-- `test:` Adding tests
-- `chore:` Build process, dependencies
-
-**Examples:**
-```bash
-git commit -m "feat: add P2P fiat trading interface"
-git commit -m "fix: wUSDT decimals now correctly use 6 instead of 12"
-git commit -m "docs: update CLAUDE.md with blockchain integration patterns"
-```
-
----
-
-## 🎓 Learning Resources
-
-### Polkadot.js
-
-- **API Docs:** https://polkadot.js.org/docs/
-- **Apps UI:** https://github.com/polkadot-js/apps
-- **Extension:** https://polkadot.js.org/extension/
-
-### UI/UX
-
-- **shadcn/ui:** https://ui.shadcn.com/
-- **Radix UI:** https://www.radix-ui.com/
-- **Tailwind CSS:** https://tailwindcss.com/
-
-### Mobile
-
-- **Expo:** https://docs.expo.dev/
-- **React Native:** https://reactnative.dev/
-- **React Navigation:** https://reactnavigation.org/
-
-### Backend
-
-- **Supabase:** https://supabase.com/docs
-- **PostgreSQL:** https://www.postgresql.org/docs/
-
----
-
-## 🔧 Useful Commands
-
-### Blockchain Health Check
-
-```bash
-# Check validator logs
-ssh pezkuwi-vps "tail -f /tmp/validator-1.log"
-
-# Check finalization
-ssh pezkuwi-vps "tail -30 /tmp/validator-1.log | grep -E 'peers|finalized' | tail -5"
-
-# View all validators
-ssh pezkuwi-vps "ps aux | grep pezkuwi"
-```
-
-### Deployment
-
-```bash
-# Full web deployment
-cd web && \
-npm run build && \
-rsync -avz dist/ pezkuwi-vps:/var/www/pezkuwichain/web/dist/ && \
-ssh pezkuwi-vps "systemctl reload nginx"
-```
-
-### Database
-
-```bash
-# Apply Supabase migrations
-cd web/supabase
-supabase db push
-
-# Reset local database
-supabase db reset
-```
-
----
-
-## 🎯 AI Assistant Guidelines
-
-### When Working on Features
-
-1. **Read critical docs first:** `CLAUDE_README_KRITIK.md`
-2. **Check current branch:** Verify you're on correct feature branch
-3. **Test blockchain connectivity:** Before making blockchain changes
-4. **Use existing patterns:** Follow component/context patterns
-5. **Maintain type safety:** No `any` types
-6. **Test all languages:** Check i18n keys exist
-7. **Test RTL layout:** For ckb, ar, fa languages
-
-### When Making Blockchain Changes
-
-1. **Understand pallet first:** Read Rust pallet code if needed
-2. **Test on local node:** Before testnet
-3. **Handle errors properly:** Extract dispatchError correctly
-4. **Update Supabase:** If creating indexable data
-5. **Monitor events:** Use WebSocketContext for real-time updates
-
-### When Deploying
-
-1. **Never deploy without testing**
-2. **Check validator status first:** Ensure blockchain is healthy
-3. **Deploy during low-traffic hours:** If possible
-4. **Monitor logs after deploy:** Watch for errors
-5. **Have rollback plan:** Keep previous build
-
----
-
-## 📞 Getting Help
-
-### Documentation Files
-
-- `README.md` - Project overview
-- `CLAUDE_README_KRITIK.md` - Critical operational guidelines (Turkish)
-- `PRODUCTION_READINESS.md` - Production status report
-- `web/SECURITY.md` - Security policies
-- `web/mimari.txt` - Detailed system architecture (Turkish)
-
-### VPS Access
-
-- **IP:** 37.60.230.9
-- **SSH:** `ssh pezkuwi-vps` (alias assumed configured)
-- **Web Root:** `/var/www/pezkuwichain/web/dist/`
-- **Nginx Config:** `/etc/nginx/sites-available/pezkuwichain.io`
-
----
-
-## ✅ Quick Reference Checklist
-
-**Starting a new feature:**
-- [ ] Create feature branch
-- [ ] Read relevant shared libraries
-- [ ] Check existing similar features
-- [ ] Plan component structure
-- [ ] Add i18n keys for all languages
-
-**Before committing:**
-- [ ] Run `npm run lint`
-- [ ] Remove console.logs
-- [ ] Check no `.env` changes
-- [ ] Test in browser
-- [ ] Write clear commit message
-
-**Before deploying:**
-- [ ] Test production build locally
-- [ ] Verify environment variables
-- [ ] Check blockchain connection
-- [ ] Monitor validator status
-- [ ] Plan rollback strategy
-
-**After deploying:**
-- [ ] Test live site
-- [ ] Check browser console
-- [ ] Monitor error logs
-- [ ] Verify blockchain transactions work
-
----
-
-**Last Updated:** 2025-11-17
-**Maintained By:** PezkuwiChain Development Team
-**Production Status:** 95% Complete - Beta Testnet Active
diff --git a/backend/package.json b/backend/package.json
index 7bea1444..eb6001ba 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -1,34 +1,21 @@
{
- "name": "pezkuwi-kyc-backend",
+ "name": "pezkuwi-indexer-service",
"version": "1.0.0",
- "description": "KYC Approval Council Backend",
+ "description": "Simple Transaction Indexer for Pezkuwi Chain",
"main": "src/index.js",
"type": "module",
"scripts": {
- "dev": "node --watch src/index.js",
"start": "node src/index.js",
- "lint": "eslint 'src/**/*.js' --fix"
+ "dev": "node --watch src/index.js"
},
"dependencies": {
- "@pezkuwi/keyring": "^12.5.1",
- "@pezkuwi/util-crypto": "^12.5.1",
- "@supabase/supabase-js": "^2.83.0",
+ "@pezkuwi/api": "^16.5.9",
+ "@pezkuwi/util": "^14.0.11",
+ "@pezkuwi/util-crypto": "^14.0.11",
"cors": "^2.8.5",
- "dotenv": "^16.3.1",
- "express": "^4.18.2",
- "pino": "^10.1.0",
- "pino-http": "^11.0.0",
- "pino-pretty": "^13.1.2"
- },
- "devDependencies": {
- "@pezkuwi/api": "^16.5.2",
- "eslint": "^8.57.1",
- "eslint-config-standard": "^17.1.0",
- "eslint-plugin-import": "^2.32.0",
- "eslint-plugin-n": "^16.6.2",
- "eslint-plugin-promise": "^6.6.0",
- "jest": "^30.2.0",
- "nodemon": "^3.0.2",
- "supertest": "^7.1.4"
+ "dotenv": "^17.2.3",
+ "express": "^5.2.1",
+ "sqlite": "^5.1.1",
+ "sqlite3": "^5.1.7"
}
}
diff --git a/backend/src/index.js b/backend/src/index.js
index 04f0e21b..406c9281 100644
--- a/backend/src/index.js
+++ b/backend/src/index.js
@@ -1,7 +1,134 @@
-import { app, logger } from './server.js'
+import express from 'express';
+import cors from 'cors';
+import { open } from 'sqlite';
+import sqlite3 from 'sqlite3';
+import { ApiPromise, WsProvider } from '@pezkuwi/api';
+import dotenv from 'dotenv';
-const PORT = process.env.PORT || 3001
+dotenv.config();
-app.listen(PORT, () => {
- logger.info(`🚀 KYC Council Backend running on port ${PORT}`)
-})
\ No newline at end of file
+const app = express();
+const port = process.env.PORT || 3001;
+const WS_ENDPOINT = process.env.WS_ENDPOINT || 'wss://rpc.pezkuwichain.io';
+
+app.use(cors());
+app.use(express.json());
+
+// Initialize Database
+async function initDb() {
+ const db = await open({
+ filename: './transactions.db',
+ driver: sqlite3.Database
+ });
+
+ await db.exec(`
+ CREATE TABLE IF NOT EXISTS transfers (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ hash TEXT UNIQUE,
+ sender TEXT,
+ receiver TEXT,
+ amount TEXT,
+ asset_id INTEGER DEFAULT NULL,
+ symbol TEXT,
+ block_number INTEGER,
+ timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
+ )
+ `);
+
+ return db;
+}
+
+// Start Indexing
+async function startIndexer(db) {
+ console.log(`Connecting to Pezkuwi Node: ${WS_ENDPOINT}`);
+ const provider = new WsProvider(WS_ENDPOINT);
+ const api = await ApiPromise.create({ provider });
+
+ console.log('Connected! Listening for new blocks...');
+
+ api.rpc.chain.subscribeNewHeads(async (header) => {
+ const blockNumber = header.number.toNumber();
+ const blockHash = await api.rpc.chain.getBlockHash(blockNumber);
+ const signedBlock = await api.rpc.chain.getBlock(blockHash);
+
+ signedBlock.block.extrinsics.forEach(async (ex) => {
+ const { method: { method, section }, signer } = ex;
+
+ // 1. Handle Native HEZ Transfers
+ if (section === 'balances' && (method === 'transfer' || method === 'transferKeepAlive')) {
+ const [dest, value] = ex.method.args;
+ await saveTransfer(db, {
+ hash: ex.hash.toHex(),
+ sender: signer.toString(),
+ receiver: dest.toString(),
+ amount: value.toString(),
+ asset_id: null,
+ symbol: 'HEZ',
+ block_number: blockNumber
+ });
+ }
+
+ // 2. Handle Asset Transfers (PEZ, USDT)
+ if (section === 'assets' && method === 'transfer') {
+ const [id, dest, value] = ex.method.args;
+ const assetId = id.toNumber();
+ const symbol = assetId === 1 ? 'PEZ' : assetId === 1000 ? 'USDT' : `ASSET-${assetId}`;
+
+ await saveTransfer(db, {
+ hash: ex.hash.toHex(),
+ sender: signer.toString(),
+ receiver: dest.toString(),
+ amount: value.toString(),
+ asset_id: assetId,
+ symbol: symbol,
+ block_number: blockNumber
+ });
+ }
+ });
+ });
+}
+
+async function saveTransfer(db, tx) {
+ try {
+ await db.run(
+ `INSERT OR IGNORE INTO transfers (hash, sender, receiver, amount, asset_id, symbol, block_number)
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,
+ [tx.hash, tx.sender, tx.receiver, tx.amount, tx.asset_id, tx.symbol, tx.block_number]
+ );
+ console.log(`Indexed ${tx.symbol} Transfer: ${tx.hash.slice(0, 10)}...`);
+ } catch (err) {
+ console.error('DB Insert Error:', err);
+ }
+}
+
+// API Routes
+async function startServer(db) {
+ app.get('/api/history/:address', async (req, res) => {
+ const { address } = req.params;
+ try {
+ const history = await db.all(
+ `SELECT * FROM transfers
+ WHERE sender = ? OR receiver = ?
+ ORDER BY block_number DESC LIMIT 50`,
+ [address, address]
+ );
+ res.json(history);
+ } catch (err) {
+ res.status(500).json({ error: err.message });
+ }
+ });
+
+ app.get('/api/stats', async (req, res) => {
+ const stats = await db.get('SELECT COUNT(*) as total FROM transfers');
+ res.json(stats);
+ });
+
+ app.listen(port, () => {
+ console.log(`Indexer API running at http://localhost:${port}`);
+ });
+}
+
+// Launch
+const db = await initDb();
+startIndexer(db);
+startServer(db);
diff --git a/mobile/.gitignore b/mobile/.gitignore
index d914c328..9ff23102 100644
--- a/mobile/.gitignore
+++ b/mobile/.gitignore
@@ -39,3 +39,8 @@ yarn-error.*
# generated native folders
/ios
/android
+
+# Environment files
+.env
+.env.local
+.env.*.local
diff --git a/mobile/FIX_SCHEMA_COMPATIBILITY.sql b/mobile/FIX_SCHEMA_COMPATIBILITY.sql
new file mode 100644
index 00000000..c60c2165
--- /dev/null
+++ b/mobile/FIX_SCHEMA_COMPATIBILITY.sql
@@ -0,0 +1,117 @@
+-- ==================================================
+-- Schema Compatibility Fix
+-- ==================================================
+-- This SQL adds missing columns to existing tables
+-- to make them compatible with mobile app
+-- ==================================================
+
+-- 1. Add missing columns to forum_discussions
+ALTER TABLE forum_discussions
+ADD COLUMN IF NOT EXISTS likes INTEGER DEFAULT 0;
+
+-- Update existing rows
+UPDATE forum_discussions SET likes = 0 WHERE likes IS NULL;
+
+-- 2. Add missing columns to forum_replies
+ALTER TABLE forum_replies
+ADD COLUMN IF NOT EXISTS likes INTEGER DEFAULT 0;
+
+-- Update existing rows
+UPDATE forum_replies SET likes = 0 WHERE likes IS NULL;
+
+-- 3. Fix notifications table
+-- Check if user_id exists and rename to user_address
+DO $$
+BEGIN
+ -- If user_id exists, rename it to user_address
+ IF EXISTS (
+ SELECT 1 FROM information_schema.columns
+ WHERE table_name = 'notifications'
+ AND column_name = 'user_id'
+ ) THEN
+ ALTER TABLE notifications RENAME COLUMN user_id TO user_address;
+ END IF;
+
+ -- If user_address still doesn't exist, add it
+ IF NOT EXISTS (
+ SELECT 1 FROM information_schema.columns
+ WHERE table_name = 'notifications'
+ AND column_name = 'user_address'
+ ) THEN
+ ALTER TABLE notifications ADD COLUMN user_address VARCHAR(100);
+ END IF;
+
+ -- Add other missing columns
+ IF NOT EXISTS (
+ SELECT 1 FROM information_schema.columns
+ WHERE table_name = 'notifications'
+ AND column_name = 'type'
+ ) THEN
+ ALTER TABLE notifications ADD COLUMN type VARCHAR(20) DEFAULT 'system';
+ END IF;
+
+ IF NOT EXISTS (
+ SELECT 1 FROM information_schema.columns
+ WHERE table_name = 'notifications'
+ AND column_name = 'title'
+ ) THEN
+ ALTER TABLE notifications ADD COLUMN title VARCHAR(200);
+ END IF;
+
+ IF NOT EXISTS (
+ SELECT 1 FROM information_schema.columns
+ WHERE table_name = 'notifications'
+ AND column_name = 'read'
+ ) THEN
+ ALTER TABLE notifications ADD COLUMN read BOOLEAN DEFAULT FALSE;
+ END IF;
+
+ IF NOT EXISTS (
+ SELECT 1 FROM information_schema.columns
+ WHERE table_name = 'notifications'
+ AND column_name = 'metadata'
+ ) THEN
+ ALTER TABLE notifications ADD COLUMN metadata JSONB;
+ END IF;
+END $$;
+
+-- ==================================================
+-- Verify Fix
+-- ==================================================
+
+-- Check forum_discussions
+SELECT 'forum_discussions' as table_name,
+ column_name,
+ data_type,
+ is_nullable
+FROM information_schema.columns
+WHERE table_name = 'forum_discussions'
+ AND column_name IN ('likes', 'created_at', 'updated_at')
+ORDER BY ordinal_position;
+
+-- Check forum_replies
+SELECT 'forum_replies' as table_name,
+ column_name,
+ data_type,
+ is_nullable
+FROM information_schema.columns
+WHERE table_name = 'forum_replies'
+ AND column_name IN ('likes', 'created_at')
+ORDER BY ordinal_position;
+
+-- Check notifications
+SELECT 'notifications' as table_name,
+ column_name,
+ data_type,
+ is_nullable
+FROM information_schema.columns
+WHERE table_name = 'notifications'
+ AND column_name IN ('user_address', 'type', 'title', 'message', 'read', 'metadata', 'created_at')
+ORDER BY ordinal_position;
+
+-- ==================================================
+-- SUCCESS MESSAGE
+-- ==================================================
+
+SELECT '✅ Schema compatibility fix complete!' as status;
+SELECT 'Run check_schema_compatibility.cjs again to verify' as next_step;
diff --git a/mobile/SUPABASE_SCHEMA.sql b/mobile/SUPABASE_SCHEMA.sql
new file mode 100644
index 00000000..e5429cd6
--- /dev/null
+++ b/mobile/SUPABASE_SCHEMA.sql
@@ -0,0 +1,276 @@
+-- ==================================================
+-- Pezkuwi Mobile App - Supabase Database Schema
+-- ==================================================
+-- This schema creates all tables needed for web2 features:
+-- - Forum (discussions, categories, replies)
+-- - P2P Platform (ads, trades)
+-- - Notifications
+-- - Referrals
+-- ==================================================
+
+-- Enable UUID extension
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
+
+-- ==================================================
+-- FORUM TABLES
+-- ==================================================
+
+-- Forum Categories
+CREATE TABLE IF NOT EXISTS forum_categories (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ name VARCHAR(100) NOT NULL UNIQUE,
+ description TEXT,
+ icon VARCHAR(50),
+ created_at TIMESTAMPTZ DEFAULT NOW(),
+ updated_at TIMESTAMPTZ DEFAULT NOW()
+);
+
+-- Forum Discussions (Threads)
+CREATE TABLE IF NOT EXISTS forum_discussions (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ category_id UUID NOT NULL REFERENCES forum_categories(id) ON DELETE CASCADE,
+ author_address VARCHAR(100) NOT NULL,
+ author_name VARCHAR(100),
+ title VARCHAR(200) NOT NULL,
+ content TEXT NOT NULL,
+ likes INTEGER DEFAULT 0,
+ replies_count INTEGER DEFAULT 0,
+ created_at TIMESTAMPTZ DEFAULT NOW(),
+ updated_at TIMESTAMPTZ DEFAULT NOW()
+);
+
+-- Forum Replies
+CREATE TABLE IF NOT EXISTS forum_replies (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ discussion_id UUID NOT NULL REFERENCES forum_discussions(id) ON DELETE CASCADE,
+ author_address VARCHAR(100) NOT NULL,
+ author_name VARCHAR(100),
+ content TEXT NOT NULL,
+ likes INTEGER DEFAULT 0,
+ created_at TIMESTAMPTZ DEFAULT NOW()
+);
+
+-- ==================================================
+-- P2P PLATFORM TABLES
+-- ==================================================
+
+-- P2P Ads
+CREATE TABLE IF NOT EXISTS p2p_ads (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ user_address VARCHAR(100) NOT NULL,
+ type VARCHAR(10) NOT NULL CHECK (type IN ('buy', 'sell')),
+ merchant_name VARCHAR(100) NOT NULL,
+ rating DECIMAL(3,2) DEFAULT 0.00 CHECK (rating >= 0 AND rating <= 5),
+ trades_count INTEGER DEFAULT 0,
+ price DECIMAL(18,2) NOT NULL,
+ currency VARCHAR(10) NOT NULL DEFAULT 'USD',
+ amount VARCHAR(50) NOT NULL,
+ min_limit VARCHAR(50) NOT NULL,
+ max_limit VARCHAR(50) NOT NULL,
+ payment_methods TEXT[] NOT NULL,
+ status VARCHAR(20) NOT NULL DEFAULT 'active' CHECK (status IN ('active', 'inactive', 'completed')),
+ created_at TIMESTAMPTZ DEFAULT NOW(),
+ updated_at TIMESTAMPTZ DEFAULT NOW()
+);
+
+-- P2P Trades
+CREATE TABLE IF NOT EXISTS p2p_trades (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ ad_id UUID NOT NULL REFERENCES p2p_ads(id) ON DELETE CASCADE,
+ buyer_address VARCHAR(100) NOT NULL,
+ seller_address VARCHAR(100) NOT NULL,
+ amount VARCHAR(50) NOT NULL,
+ price DECIMAL(18,2) NOT NULL,
+ total DECIMAL(18,2) NOT NULL,
+ status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'paid', 'confirmed', 'disputed', 'completed', 'cancelled')),
+ payment_method VARCHAR(100) NOT NULL,
+ escrow_address VARCHAR(100),
+ chat_messages JSONB DEFAULT '[]'::jsonb,
+ created_at TIMESTAMPTZ DEFAULT NOW(),
+ updated_at TIMESTAMPTZ DEFAULT NOW()
+);
+
+-- ==================================================
+-- NOTIFICATIONS TABLE
+-- ==================================================
+
+CREATE TABLE IF NOT EXISTS notifications (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ user_address VARCHAR(100) NOT NULL,
+ type VARCHAR(20) NOT NULL CHECK (type IN ('transaction', 'governance', 'p2p', 'referral', 'system')),
+ title VARCHAR(200) NOT NULL,
+ message TEXT NOT NULL,
+ read BOOLEAN DEFAULT FALSE,
+ metadata JSONB,
+ created_at TIMESTAMPTZ DEFAULT NOW()
+);
+
+-- ==================================================
+-- REFERRALS TABLE
+-- ==================================================
+
+CREATE TABLE IF NOT EXISTS referrals (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ referrer_address VARCHAR(100) NOT NULL,
+ referee_address VARCHAR(100) NOT NULL UNIQUE,
+ status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'active', 'completed')),
+ earnings DECIMAL(18,2) DEFAULT 0.00,
+ created_at TIMESTAMPTZ DEFAULT NOW(),
+ updated_at TIMESTAMPTZ DEFAULT NOW(),
+ UNIQUE(referrer_address, referee_address)
+);
+
+-- ==================================================
+-- INDEXES FOR PERFORMANCE
+-- ==================================================
+
+-- Forum indexes
+CREATE INDEX IF NOT EXISTS idx_forum_discussions_category ON forum_discussions(category_id);
+CREATE INDEX IF NOT EXISTS idx_forum_discussions_author ON forum_discussions(author_address);
+CREATE INDEX IF NOT EXISTS idx_forum_discussions_created ON forum_discussions(created_at DESC);
+CREATE INDEX IF NOT EXISTS idx_forum_replies_discussion ON forum_replies(discussion_id);
+CREATE INDEX IF NOT EXISTS idx_forum_replies_author ON forum_replies(author_address);
+
+-- P2P indexes
+CREATE INDEX IF NOT EXISTS idx_p2p_ads_user ON p2p_ads(user_address);
+CREATE INDEX IF NOT EXISTS idx_p2p_ads_type ON p2p_ads(type);
+CREATE INDEX IF NOT EXISTS idx_p2p_ads_status ON p2p_ads(status);
+CREATE INDEX IF NOT EXISTS idx_p2p_ads_created ON p2p_ads(created_at DESC);
+CREATE INDEX IF NOT EXISTS idx_p2p_trades_ad ON p2p_trades(ad_id);
+CREATE INDEX IF NOT EXISTS idx_p2p_trades_buyer ON p2p_trades(buyer_address);
+CREATE INDEX IF NOT EXISTS idx_p2p_trades_seller ON p2p_trades(seller_address);
+CREATE INDEX IF NOT EXISTS idx_p2p_trades_status ON p2p_trades(status);
+
+-- Notifications indexes
+CREATE INDEX IF NOT EXISTS idx_notifications_user ON notifications(user_address);
+CREATE INDEX IF NOT EXISTS idx_notifications_read ON notifications(read);
+CREATE INDEX IF NOT EXISTS idx_notifications_created ON notifications(created_at DESC);
+
+-- Referrals indexes
+CREATE INDEX IF NOT EXISTS idx_referrals_referrer ON referrals(referrer_address);
+CREATE INDEX IF NOT EXISTS idx_referrals_referee ON referrals(referee_address);
+CREATE INDEX IF NOT EXISTS idx_referrals_status ON referrals(status);
+
+-- ==================================================
+-- ROW LEVEL SECURITY (RLS) POLICIES
+-- ==================================================
+
+-- Enable RLS on all tables
+ALTER TABLE forum_categories ENABLE ROW LEVEL SECURITY;
+ALTER TABLE forum_discussions ENABLE ROW LEVEL SECURITY;
+ALTER TABLE forum_replies ENABLE ROW LEVEL SECURITY;
+ALTER TABLE p2p_ads ENABLE ROW LEVEL SECURITY;
+ALTER TABLE p2p_trades ENABLE ROW LEVEL SECURITY;
+ALTER TABLE notifications ENABLE ROW LEVEL SECURITY;
+ALTER TABLE referrals ENABLE ROW LEVEL SECURITY;
+
+-- Forum policies (public read, authenticated write)
+CREATE POLICY "Forum categories are viewable by everyone" ON forum_categories FOR SELECT USING (true);
+CREATE POLICY "Forum discussions are viewable by everyone" ON forum_discussions FOR SELECT USING (true);
+CREATE POLICY "Forum discussions can be created by anyone" ON forum_discussions FOR INSERT WITH CHECK (true);
+CREATE POLICY "Forum discussions can be updated by author" ON forum_discussions FOR UPDATE USING (author_address = current_setting('request.jwt.claims', true)::json->>'address');
+CREATE POLICY "Forum replies are viewable by everyone" ON forum_replies FOR SELECT USING (true);
+CREATE POLICY "Forum replies can be created by anyone" ON forum_replies FOR INSERT WITH CHECK (true);
+
+-- P2P policies (users can only see active ads and their own trades)
+CREATE POLICY "P2P ads are viewable by everyone" ON p2p_ads FOR SELECT USING (status = 'active' OR user_address = current_setting('request.jwt.claims', true)::json->>'address');
+CREATE POLICY "P2P ads can be created by anyone" ON p2p_ads FOR INSERT WITH CHECK (true);
+CREATE POLICY "P2P ads can be updated by owner" ON p2p_ads FOR UPDATE USING (user_address = current_setting('request.jwt.claims', true)::json->>'address');
+CREATE POLICY "P2P trades are viewable by participants" ON p2p_trades FOR SELECT USING (
+ buyer_address = current_setting('request.jwt.claims', true)::json->>'address' OR
+ seller_address = current_setting('request.jwt.claims', true)::json->>'address'
+);
+CREATE POLICY "P2P trades can be created by anyone" ON p2p_trades FOR INSERT WITH CHECK (true);
+CREATE POLICY "P2P trades can be updated by participants" ON p2p_trades FOR UPDATE USING (
+ buyer_address = current_setting('request.jwt.claims', true)::json->>'address' OR
+ seller_address = current_setting('request.jwt.claims', true)::json->>'address'
+);
+
+-- Notifications policies (users can only see their own)
+CREATE POLICY "Users can view their own notifications" ON notifications FOR SELECT USING (user_address = current_setting('request.jwt.claims', true)::json->>'address');
+CREATE POLICY "Users can update their own notifications" ON notifications FOR UPDATE USING (user_address = current_setting('request.jwt.claims', true)::json->>'address');
+
+-- Referrals policies (users can see their own referrals)
+CREATE POLICY "Users can view their own referrals" ON referrals FOR SELECT USING (
+ referrer_address = current_setting('request.jwt.claims', true)::json->>'address' OR
+ referee_address = current_setting('request.jwt.claims', true)::json->>'address'
+);
+CREATE POLICY "Referrals can be created by anyone" ON referrals FOR INSERT WITH CHECK (true);
+
+-- ==================================================
+-- SAMPLE DATA FOR TESTING
+-- ==================================================
+
+-- Insert sample forum categories
+INSERT INTO forum_categories (name, description, icon) VALUES
+ ('General', 'General discussions about PezkuwiChain', '💬'),
+ ('Governance', 'Proposals, voting, and governance topics', '🏛️'),
+ ('Technical', 'Technical discussions and development', '💻'),
+ ('Trading', 'P2P trading and market discussions', '📈'),
+ ('Support', 'Get help and support', '❓')
+ON CONFLICT (name) DO NOTHING;
+
+-- ==================================================
+-- FUNCTIONS AND TRIGGERS
+-- ==================================================
+
+-- Function to update updated_at timestamp
+CREATE OR REPLACE FUNCTION update_updated_at_column()
+RETURNS TRIGGER AS $$
+BEGIN
+ NEW.updated_at = NOW();
+ RETURN NEW;
+END;
+$$ language 'plpgsql';
+
+-- Triggers for updated_at
+CREATE TRIGGER update_forum_discussions_updated_at BEFORE UPDATE ON forum_discussions FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
+CREATE TRIGGER update_p2p_ads_updated_at BEFORE UPDATE ON p2p_ads FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
+CREATE TRIGGER update_p2p_trades_updated_at BEFORE UPDATE ON p2p_trades FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
+CREATE TRIGGER update_referrals_updated_at BEFORE UPDATE ON referrals FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
+
+-- Function to increment replies_count
+CREATE OR REPLACE FUNCTION increment_replies_count()
+RETURNS TRIGGER AS $$
+BEGIN
+ UPDATE forum_discussions
+ SET replies_count = replies_count + 1
+ WHERE id = NEW.discussion_id;
+ RETURN NEW;
+END;
+$$ language 'plpgsql';
+
+-- Trigger for replies count
+CREATE TRIGGER increment_forum_replies_count
+AFTER INSERT ON forum_replies
+FOR EACH ROW
+EXECUTE FUNCTION increment_replies_count();
+
+-- ==================================================
+-- GRANT PERMISSIONS
+-- ==================================================
+
+-- Grant usage on all tables to anon and authenticated users
+GRANT USAGE ON SCHEMA public TO anon, authenticated;
+GRANT ALL ON ALL TABLES IN SCHEMA public TO anon, authenticated;
+GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO anon, authenticated;
+
+-- ==================================================
+-- SCHEMA COMPLETE
+-- ==================================================
+
+-- Verify table creation
+SELECT
+ 'forum_categories' as table_name, COUNT(*) as row_count FROM forum_categories
+UNION ALL
+SELECT 'forum_discussions', COUNT(*) FROM forum_discussions
+UNION ALL
+SELECT 'forum_replies', COUNT(*) FROM forum_replies
+UNION ALL
+SELECT 'p2p_ads', COUNT(*) FROM p2p_ads
+UNION ALL
+SELECT 'p2p_trades', COUNT(*) FROM p2p_trades
+UNION ALL
+SELECT 'notifications', COUNT(*) FROM notifications
+UNION ALL
+SELECT 'referrals', COUNT(*) FROM referrals;
diff --git a/mobile/app.json b/mobile/app.json
index 3c7754fe..a496076a 100644
--- a/mobile/app.json
+++ b/mobile/app.json
@@ -1,7 +1,7 @@
{
"expo": {
- "name": "mobile",
- "slug": "mobile",
+ "name": "Pezkuwi Wallet",
+ "slug": "pezkuwi-wallet",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
@@ -16,6 +16,7 @@
"supportsTablet": true
},
"android": {
+ "package": "io.pezkuwichain.wallet",
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
diff --git a/mobile/assets/adaptive-icon.png b/mobile/assets/adaptive-icon.png
index 03d6f6b6..445f8f22 100644
Binary files a/mobile/assets/adaptive-icon.png and b/mobile/assets/adaptive-icon.png differ
diff --git a/mobile/assets/icon.png b/mobile/assets/icon.png
index a0b1526f..445f8f22 100644
Binary files a/mobile/assets/icon.png and b/mobile/assets/icon.png differ
diff --git a/mobile/assets/kurdistan-map.png b/mobile/assets/kurdistan-map.png
new file mode 100644
index 00000000..281a3b00
Binary files /dev/null and b/mobile/assets/kurdistan-map.png differ
diff --git a/mobile/check_existing_tables.cjs b/mobile/check_existing_tables.cjs
new file mode 100644
index 00000000..02b58db6
--- /dev/null
+++ b/mobile/check_existing_tables.cjs
@@ -0,0 +1,126 @@
+/**
+ * Check Existing Supabase Tables
+ *
+ * This script connects to Supabase and lists all existing tables
+ * to check for conflicts with new schema
+ */
+
+const { createClient } = require('@supabase/supabase-js');
+
+const supabaseUrl = 'https://vsyrpfiwhjvahofxwytr.supabase.co';
+const supabaseKey = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZzeXJwZml3aGp2YWhvZnh3eXRyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjAwMjYxNTgsImV4cCI6MjA3NTYwMjE1OH0.dO2c8YWIph2D95X7jFdlGYJ8MXyuyorkLcjQ6onH-HE';
+
+const supabase = createClient(supabaseUrl, supabaseKey);
+
+// Tables we want to create
+const newTables = [
+ 'forum_categories',
+ 'forum_discussions',
+ 'forum_replies',
+ 'p2p_ads',
+ 'p2p_trades',
+ 'notifications',
+ 'referrals'
+];
+
+async function checkTables() {
+ console.log('🔍 Checking existing Supabase tables...\n');
+
+ try {
+ // Get list of all tables using information_schema
+ const { data, error } = await supabase
+ .from('information_schema.tables')
+ .select('table_name')
+ .eq('table_schema', 'public')
+ .eq('table_type', 'BASE TABLE');
+
+ if (error) {
+ // If we can't query information_schema, try a different approach
+ console.log('⚠️ Cannot access information_schema with anon key');
+ console.log('ℹ️ This is normal - anon key has limited permissions');
+ console.log('\n📋 Tables we will create:\n');
+ newTables.forEach(table => {
+ console.log(` - ${table}`);
+ });
+ console.log('\n✅ Safe to proceed: Using CREATE TABLE IF NOT EXISTS');
+ console.log(' → Existing tables will NOT be affected');
+ console.log(' → Only missing tables will be created\n');
+ return;
+ }
+
+ const existingTables = data.map(row => row.table_name);
+
+ console.log(`📊 Found ${existingTables.length} existing tables in Supabase:\n`);
+ existingTables.forEach(table => {
+ console.log(` - ${table}`);
+ });
+
+ console.log('\n📋 Tables we want to create:\n');
+
+ const conflicts = [];
+ const newToCreate = [];
+
+ newTables.forEach(table => {
+ if (existingTables.includes(table)) {
+ conflicts.push(table);
+ console.log(` ⚠️ ${table} (ALREADY EXISTS)`);
+ } else {
+ newToCreate.push(table);
+ console.log(` ✅ ${table} (WILL BE CREATED)`);
+ }
+ });
+
+ console.log('\n' + '='.repeat(60));
+
+ if (conflicts.length > 0) {
+ console.log('\n⚠️ CONFLICT ANALYSIS:\n');
+ console.log(` ${conflicts.length} table(s) already exist:`);
+ conflicts.forEach(table => {
+ console.log(` - ${table}`);
+ });
+ console.log('\n✅ SAFE TO PROCEED:');
+ console.log(' → SQL uses "CREATE TABLE IF NOT EXISTS"');
+ console.log(' → Existing tables will be SKIPPED');
+ console.log(' → No data will be modified or deleted');
+ console.log(' → Only missing tables will be created\n');
+ }
+
+ if (newToCreate.length > 0) {
+ console.log(`\n📝 ${newToCreate.length} new table(s) will be created:`);
+ newToCreate.forEach(table => {
+ console.log(` - ${table}`);
+ });
+ }
+
+ console.log('\n' + '='.repeat(60));
+ console.log('\n🎯 RECOMMENDATION:\n');
+
+ if (conflicts.length === 0) {
+ console.log(' ✅ No conflicts found');
+ console.log(' ✅ Safe to run SUPABASE_SCHEMA.sql');
+ console.log(' ✅ All 7 tables will be created\n');
+ } else if (newToCreate.length === 0) {
+ console.log(' ℹ️ All tables already exist');
+ console.log(' ℹ️ You can safely run the SQL (it will skip existing tables)');
+ console.log(' ℹ️ Or you can skip running it entirely\n');
+ } else {
+ console.log(' ⚠️ Some tables exist, some don\'t');
+ console.log(' ✅ Safe to run SUPABASE_SCHEMA.sql');
+ console.log(` ✅ Will create ${newToCreate.length} missing tables`);
+ console.log(` ℹ️ Will skip ${conflicts.length} existing tables\n`);
+ }
+
+ } catch (error) {
+ console.error('❌ Error:', error.message);
+ console.log('\nℹ️ If you see permission errors, this is expected with anon key');
+ console.log('✅ Proceed with SQL execution - it\'s safe!\n');
+ }
+}
+
+checkTables().then(() => {
+ console.log('✅ Analysis complete\n');
+ process.exit(0);
+}).catch(err => {
+ console.error('❌ Fatal error:', err);
+ process.exit(1);
+});
diff --git a/mobile/check_schema_compatibility.cjs b/mobile/check_schema_compatibility.cjs
new file mode 100644
index 00000000..5c50ccbb
--- /dev/null
+++ b/mobile/check_schema_compatibility.cjs
@@ -0,0 +1,107 @@
+/**
+ * Check Schema Compatibility
+ */
+
+const { createClient } = require('@supabase/supabase-js');
+
+const supabaseUrl = 'https://vsyrpfiwhjvahofxwytr.supabase.co';
+const supabaseServiceKey = 'sb_secret_oXy8Diay2J_u8dKPZLxdcQ_hq69Mrb6';
+
+const supabase = createClient(supabaseUrl, supabaseServiceKey);
+
+// Expected schemas for mobile app
+const expectedSchemas = {
+ forum_categories: ['id', 'name', 'description', 'icon', 'created_at'],
+ forum_discussions: ['id', 'category_id', 'author_address', 'author_name', 'title', 'content', 'likes', 'replies_count', 'created_at', 'updated_at'],
+ forum_replies: ['id', 'discussion_id', 'author_address', 'author_name', 'content', 'likes', 'created_at'],
+ notifications: ['id', 'user_address', 'type', 'title', 'message', 'read', 'metadata', 'created_at'],
+};
+
+async function checkSchema(tableName, expectedColumns) {
+ console.log(`\n🔍 Checking ${tableName}...`);
+
+ try {
+ // Try to select from table with expected columns
+ const selectQuery = expectedColumns.map(col => `${col}`).join(', ');
+ const { data, error } = await supabase
+ .from(tableName)
+ .select(selectQuery)
+ .limit(1);
+
+ if (error) {
+ console.log(` ❌ ERROR: ${error.message}`);
+ console.log(` ⚠️ Schema might be incompatible`);
+ return { compatible: false, error: error.message };
+ }
+
+ console.log(` ✅ COMPATIBLE - All expected columns found`);
+ return { compatible: true };
+
+ } catch (e) {
+ console.log(` ❌ ERROR: ${e.message}`);
+ return { compatible: false, error: e.message };
+ }
+}
+
+async function checkAllSchemas() {
+ console.log('=' .repeat(70));
+ console.log('📋 SCHEMA COMPATIBILITY CHECK');
+ console.log('='.repeat(70));
+
+ const results = {};
+
+ for (const [tableName, columns] of Object.entries(expectedSchemas)) {
+ results[tableName] = await checkSchema(tableName, columns);
+ }
+
+ console.log('\n' + '='.repeat(70));
+ console.log('📊 SUMMARY:');
+ console.log('='.repeat(70));
+
+ const compatible = Object.entries(results).filter(([_, r]) => r.compatible);
+ const incompatible = Object.entries(results).filter(([_, r]) => !r.compatible);
+
+ if (compatible.length > 0) {
+ console.log(`\n✅ ${compatible.length} table(s) are COMPATIBLE:\n`);
+ compatible.forEach(([table]) => {
+ console.log(` ✅ ${table}`);
+ });
+ }
+
+ if (incompatible.length > 0) {
+ console.log(`\n⚠️ ${incompatible.length} table(s) have ISSUES:\n`);
+ incompatible.forEach(([table, result]) => {
+ console.log(` ❌ ${table}`);
+ console.log(` Error: ${result.error}`);
+ });
+
+ console.log('\n🔧 RECOMMENDED ACTIONS:\n');
+ incompatible.forEach(([table]) => {
+ console.log(` ${table}:`);
+ console.log(` 1. Check column names and types`);
+ console.log(` 2. Add missing columns with ALTER TABLE`);
+ console.log(` 3. Or drop and recreate (data will be lost!)\n`);
+ });
+ }
+
+ console.log('='.repeat(70));
+ console.log('\n🎯 FINAL RECOMMENDATION:\n');
+
+ if (incompatible.length === 0) {
+ console.log(' ✅ All existing tables are compatible');
+ console.log(' ✅ Safe to run SUPABASE_SCHEMA.sql');
+ console.log(' ✅ Only missing tables will be created\n');
+ } else {
+ console.log(' ⚠️ Some tables have schema issues');
+ console.log(' ⚠️ Fix schemas before running mobile app');
+ console.log(' ✅ You can still run SQL (it will skip existing tables)\n');
+ }
+}
+
+checkAllSchemas().then(() => {
+ console.log('✅ Schema check complete\n');
+ process.exit(0);
+}).catch(err => {
+ console.error('❌ Fatal error:', err.message);
+ process.exit(1);
+});
diff --git a/mobile/check_tables_admin.cjs b/mobile/check_tables_admin.cjs
new file mode 100644
index 00000000..d8e51275
--- /dev/null
+++ b/mobile/check_tables_admin.cjs
@@ -0,0 +1,207 @@
+/**
+ * Check Existing Supabase Tables with Admin Access
+ */
+
+const { createClient } = require('@supabase/supabase-js');
+
+const supabaseUrl = 'https://vsyrpfiwhjvahofxwytr.supabase.co';
+const supabaseServiceKey = process.env.SUPABASE_SERVICE_KEY || 'sb_secret_oXy8Diay2J_u8dKPZLxdcQ_hq69Mrb6';
+
+const supabase = createClient(supabaseUrl, supabaseServiceKey, {
+ auth: {
+ autoRefreshToken: false,
+ persistSession: false
+ }
+});
+
+const newTables = [
+ 'forum_categories',
+ 'forum_discussions',
+ 'forum_replies',
+ 'p2p_ads',
+ 'p2p_trades',
+ 'notifications',
+ 'referrals'
+];
+
+async function checkTables() {
+ console.log('🔍 Fetching existing tables with admin access...\n');
+
+ try {
+ // Use RPC to query information_schema
+ const { data, error } = await supabase.rpc('get_table_list', {});
+
+ if (error) {
+ // Fallback: Direct query
+ const query = `
+ SELECT
+ table_name,
+ (SELECT COUNT(*)
+ FROM information_schema.columns
+ WHERE table_name = t.table_name
+ AND table_schema = 'public') as column_count
+ FROM information_schema.tables t
+ WHERE table_schema = 'public'
+ AND table_type = 'BASE TABLE'
+ ORDER BY table_name;
+ `;
+
+ const { data: tableData, error: queryError } = await supabase
+ .from('_placeholder')
+ .select();
+
+ if (queryError) {
+ console.log('⚠️ Cannot query information_schema directly');
+ console.log('ℹ️ Will check for conflicts manually\n');
+ await checkConflictsManually();
+ return;
+ }
+ }
+
+ // If we got data, process it
+ if (data && Array.isArray(data)) {
+ const existingTables = data.map(row => row.table_name);
+ displayAnalysis(existingTables);
+ } else {
+ await checkConflictsManually();
+ }
+
+ } catch (error) {
+ console.log('⚠️ Error:', error.message);
+ console.log('ℹ️ Checking conflicts manually...\n');
+ await checkConflictsManually();
+ }
+}
+
+async function checkConflictsManually() {
+ console.log('📋 Checking each table individually...\n');
+
+ const results = {
+ existing: [],
+ missing: [],
+ errors: []
+ };
+
+ for (const tableName of newTables) {
+ try {
+ const { data, error } = await supabase
+ .from(tableName)
+ .select('*')
+ .limit(0);
+
+ if (error) {
+ if (error.message.includes('does not exist') || error.code === '42P01') {
+ results.missing.push(tableName);
+ console.log(` ✅ ${tableName} - NOT FOUND (will be created)`);
+ } else {
+ results.errors.push({ table: tableName, error: error.message });
+ console.log(` ⚠️ ${tableName} - ERROR: ${error.message}`);
+ }
+ } else {
+ results.existing.push(tableName);
+ console.log(` ⚠️ ${tableName} - ALREADY EXISTS`);
+ }
+ } catch (e) {
+ results.errors.push({ table: tableName, error: e.message });
+ console.log(` ❌ ${tableName} - ERROR: ${e.message}`);
+ }
+ }
+
+ console.log('\n' + '='.repeat(70));
+ console.log('\n📊 CONFLICT ANALYSIS:\n');
+
+ if (results.existing.length > 0) {
+ console.log(`⚠️ ${results.existing.length} table(s) ALREADY EXIST:\n`);
+ results.existing.forEach(table => {
+ console.log(` - ${table}`);
+ });
+ console.log('\n ℹ️ These tables will be SKIPPED');
+ console.log(' ℹ️ Existing data will NOT be modified\n');
+ }
+
+ if (results.missing.length > 0) {
+ console.log(`✅ ${results.missing.length} table(s) WILL BE CREATED:\n`);
+ results.missing.forEach(table => {
+ console.log(` - ${table}`);
+ });
+ console.log('');
+ }
+
+ if (results.errors.length > 0) {
+ console.log(`⚠️ ${results.errors.length} error(s) encountered:\n`);
+ results.errors.forEach(({ table, error }) => {
+ console.log(` - ${table}: ${error}`);
+ });
+ console.log('');
+ }
+
+ console.log('='.repeat(70));
+ console.log('\n🎯 RECOMMENDATION:\n');
+
+ if (results.missing.length === newTables.length) {
+ console.log(' ✅ NO CONFLICTS - All tables are new');
+ console.log(' ✅ Safe to run SUPABASE_SCHEMA.sql');
+ console.log(' ✅ All 7 tables will be created\n');
+ } else if (results.existing.length === newTables.length) {
+ console.log(' ℹ️ ALL TABLES ALREADY EXIST');
+ console.log(' ℹ️ SQL will skip all tables (no changes)');
+ console.log(' ⚠️ Check if schemas match mobile app expectations\n');
+ } else {
+ console.log(' ⚠️ PARTIAL CONFLICT');
+ console.log(` ✅ ${results.missing.length} tables will be created`);
+ console.log(` ℹ️ ${results.existing.length} tables will be skipped`);
+ console.log(' ✅ Safe to run SUPABASE_SCHEMA.sql\n');
+ }
+}
+
+function displayAnalysis(existingTables) {
+ console.log(`📊 Found ${existingTables.length} existing tables:\n`);
+
+ existingTables.forEach(table => {
+ const isConflict = newTables.includes(table);
+ console.log(` ${isConflict ? '⚠️ ' : ' '} ${table}${isConflict ? ' (CONFLICT)' : ''}`);
+ });
+
+ console.log('\n' + '='.repeat(70));
+ console.log('\n📋 New tables to create:\n');
+
+ const conflicts = [];
+ const newToCreate = [];
+
+ newTables.forEach(table => {
+ if (existingTables.includes(table)) {
+ conflicts.push(table);
+ console.log(` ⚠️ ${table} (ALREADY EXISTS - will be skipped)`);
+ } else {
+ newToCreate.push(table);
+ console.log(` ✅ ${table} (WILL BE CREATED)`);
+ }
+ });
+
+ console.log('\n' + '='.repeat(70));
+ console.log('\n🎯 SUMMARY:\n');
+ console.log(` Total existing tables: ${existingTables.length}`);
+ console.log(` Conflicting tables: ${conflicts.length}`);
+ console.log(` New tables to create: ${newToCreate.length}`);
+ console.log(` After SQL: ${existingTables.length + newToCreate.length} total tables\n`);
+
+ console.log('='.repeat(70));
+ console.log('\n✅ RECOMMENDATION:\n');
+
+ if (conflicts.length === 0) {
+ console.log(' ✅ NO CONFLICTS');
+ console.log(' ✅ Safe to run SUPABASE_SCHEMA.sql\n');
+ } else {
+ console.log(' ⚠️ Some tables already exist');
+ console.log(' ✅ Safe to run SQL (will skip existing tables)');
+ console.log(' ℹ️ Check schemas of existing tables for compatibility\n');
+ }
+}
+
+checkTables().then(() => {
+ console.log('✅ Analysis complete\n');
+ process.exit(0);
+}).catch(err => {
+ console.error('❌ Fatal error:', err.message);
+ process.exit(1);
+});
diff --git a/mobile/docs/FAZ_1_SUMMARY.md b/mobile/docs/FAZ_1_SUMMARY.md
deleted file mode 100644
index c6339f2d..00000000
--- a/mobile/docs/FAZ_1_SUMMARY.md
+++ /dev/null
@@ -1,343 +0,0 @@
-# FAZ 1: Mobile App Temel Yapı - Özet Rapor
-
-## Genel Bakış
-FAZ 1, mobil uygulama için temel kullanıcı akışının ve blockchain bağlantısının kurulmasını kapsar. Bu faz tamamlandığında kullanıcı, dil seçimi yapabilecek, insan doğrulamasından geçecek ve gerçek blockchain verilerini görebilecek.
-
-## Tamamlanan Görevler ✅
-
-### 1. WelcomeScreen - Dil Seçimi ✅
-**Dosya:** `/home/mamostehp/pwap/mobile/src/screens/WelcomeScreen.tsx`
-
-**Durum:** Tamamen hazır, değişiklik gerekmez
-
-**Özellikler:**
-- 6 dil desteği (EN, TR, KMR, CKB, AR, FA)
-- RTL (Sağdan-sola) dil desteği badge'i
-- Kurdistan renk paleti ile gradient tasarım
-- i18next entegrasyonu aktif
-- LanguageContext ile dil state yönetimi
-
-**Kod İncelemesi:**
-- Lines 22-42: 6 dil tanımı (name, nativeName, code, rtl)
-- Lines 44-58: handleLanguageSelect() - Dil değişim fonksiyonu
-- Lines 59-88: Dil kartları UI (TouchableOpacity ile seçilebilir)
-- Lines 104-107: Devam butonu (dil seçildikten sonra aktif olur)
-
-### 2. VerificationScreen - İnsan Doğrulama ✅
-**Dosya:** `/home/mamostehp/pwap/mobile/src/screens/VerificationScreen.tsx`
-
-**Durum:** Syntax hatası düzeltildi (line 50: KurdistanColors)
-
-**Özellikler:**
-- Mock doğrulama (FAZ 1.2 için yeterli)
-- Dev modunda "Skip" butonu (__DEV__ flag)
-- 1.5 saniye simüle doğrulama delay'i
-- Linear gradient tasarım (Kesk → Zer)
-- i18n çeviri desteği
-- Loading state (ActivityIndicator)
-
-**Kod İncelemesi:**
-- Lines 30-38: handleVerify() - 1.5s simüle doğrulama
-- Lines 40-45: handleSkip() - Sadece dev modda aktif
-- Lines 50: **FIX APPLIED** - `KurdistanColors.kesk` (was: `Kurdistan Colors.kesk`)
-- Lines 75-81: Dev mode badge gösterimi
-- Lines 100-110: Skip butonu (sadece __DEV__)
-
-**Düzeltilen Hata:**
-```diff
-- colors={[Kurdistan Colors.kesk, KurdistanColors.zer]}
-+ colors={[KurdistanColors.kesk, KurdistanColors.zer]}
-```
-
-## Devam Eden Görevler 🚧
-
-### 3. DashboardScreen - Blockchain Bağlantısı 🚧
-**Dosya:** `/home/mamostehp/pwap/mobile/src/screens/DashboardScreen.tsx`
-
-**Durum:** UI hazır, blockchain entegrasyonu gerekli
-
-**Hardcoded Değerler (Değiştirilmesi Gereken):**
-
-#### Balance Card (Lines 94-108)
-```typescript
-// ❌ ŞU AN HARDCODED:
-0.00 HEZ
-
-// Satır 98-101: Total Staked
-0.00
-
-// Satır 103-106: Rewards
-0.00
-```
-
-**Gerekli Değişiklik:**
-```typescript
-// ✅ OLMASI GEREKEN:
-import { useBalance } from '@pezkuwi/shared/hooks/blockchain/useBalance';
-
-const { balance, isLoading, error } = useBalance(api, userAddress);
-
-
- {isLoading ? 'Loading...' : formatBalance(balance.free)} HEZ
-
-```
-
-#### Active Proposals Card (Lines 133-142)
-```typescript
-// ❌ ŞU AN HARDCODED:
-0
-```
-
-**Gerekli Değişiklik:**
-```typescript
-// ✅ OLMASI GEREKEN:
-import { useProposals } from '@pezkuwi/shared/hooks/blockchain/useProposals';
-
-const { proposals, isLoading } = useProposals(api);
-
-
- {isLoading ? '...' : proposals.length}
-
-```
-
-### 4. Quick Actions - Gerçek Veri Bağlantısı 🚧
-**Durum:** UI hazır, blockchain queries gerekli
-
-**Mevcut Quick Actions:**
-1. 💼 **Wallet** - `onNavigateToWallet()` ✅ (navigation var)
-2. 🔒 **Staking** - `console.log()` ❌ (stub)
-3. 🗳️ **Governance** - `console.log()` ❌ (stub)
-4. 💱 **DEX** - `console.log()` ❌ (stub)
-5. 📜 **History** - `console.log()` ❌ (stub)
-6. ⚙️ **Settings** - `onNavigateToSettings()` ✅ (navigation var)
-
-**FAZ 1 İçin Gerekli:**
-- Quick Actions'lar gerçek blockchain data ile çalışacak şekilde güncellenecek
-- Her action için ilgili screen navigation'ı eklenecek
-- FAZ 2'de detaylı implementasyonlar yapılacak (şimdilik sadece navigation yeterli)
-
-## Gerekli Shared Hooks (Oluşturulmalı)
-
-### 1. useBalance Hook ✅ (ZATEN OLUŞTURULDU)
-**Dosya:** `/home/mamostehp/pwap/shared/hooks/blockchain/usePolkadotApi.ts`
-
-**Durum:** Platform-agnostic API connection hook hazır
-
-**Kod:**
-```typescript
-export function usePolkadotApi(endpoint?: string): UsePolkadotApiReturn {
- const [api, setApi] = useState(null);
- const [isReady, setIsReady] = useState(false);
- const [error, setError] = useState(null);
-
- // Auto-connect on mount, disconnect on unmount
- // Returns: { api, isReady, error, connect, disconnect }
-}
-```
-
-**Kullanım:**
-```typescript
-import { usePolkadotApi } from '@pezkuwi/shared/hooks/blockchain/usePolkadotApi';
-
-const { api, isReady, error } = usePolkadotApi('ws://localhost:9944');
-```
-
-### 2. useBalance Hook (Oluşturulacak)
-**Dosya:** `/home/mamostehp/pwap/shared/hooks/blockchain/useBalance.ts` (YOK)
-
-**Gerekli Kod:**
-```typescript
-import { useState, useEffect } from 'react';
-import { ApiPromise } from '@polkadot/api';
-
-interface Balance {
- free: string;
- reserved: string;
- frozen: string;
-}
-
-export function useBalance(api: ApiPromise | null, address: string) {
- const [balance, setBalance] = useState({
- free: '0',
- reserved: '0',
- frozen: '0'
- });
- const [isLoading, setIsLoading] = useState(true);
- const [error, setError] = useState(null);
-
- useEffect(() => {
- if (!api || !address) return;
-
- setIsLoading(true);
-
- api.query.system.account(address)
- .then((account: any) => {
- setBalance({
- free: account.data.free.toString(),
- reserved: account.data.reserved.toString(),
- frozen: account.data.frozen.toString(),
- });
- setIsLoading(false);
- })
- .catch((err) => {
- setError(err);
- setIsLoading(false);
- });
- }, [api, address]);
-
- return { balance, isLoading, error };
-}
-```
-
-### 3. useStaking Hook (Oluşturulacak)
-**Dosya:** `/home/mamostehp/pwap/shared/hooks/blockchain/useStaking.ts` (YOK)
-
-**Gerekli Queries:**
-- `api.query.staking.bonded(address)` - Bonded amount
-- `api.query.staking.ledger(address)` - Staking ledger
-- `api.query.staking.payee(address)` - Reward destination
-
-### 4. useProposals Hook (Oluşturulacak)
-**Dosya:** `/home/mamostehp/pwap/shared/hooks/blockchain/useProposals.ts` (YOK)
-
-**Gerekli Queries:**
-- `api.query.welati.proposals()` - All active proposals
-- `api.query.welati.proposalCount()` - Total proposal count
-
-## FAZ 1 Tamamlama Planı
-
-### Adım 1: Shared Hooks Oluşturma ⏳
-1. `useBalance.ts` - Balance fetching
-2. `useStaking.ts` - Staking info
-3. `useProposals.ts` - Governance proposals
-4. `formatBalance.ts` utility - Token formatting
-
-### Adım 2: DashboardScreen Entegrasyonu ⏳
-1. Import shared hooks
-2. Replace hardcoded `0.00 HEZ` with real balance
-3. Replace hardcoded `0.00` staked amount
-4. Replace hardcoded `0.00` rewards
-5. Replace hardcoded `0` proposals count
-
-### Adım 3: Error Handling & Loading States ⏳
-1. Add loading spinners for blockchain queries
-2. Add error messages for failed queries
-3. Add retry mechanism
-4. Add offline state detection
-
-### Adım 4: Testing ⏳
-1. Test with local dev node (ws://localhost:9944)
-2. Test with beta testnet
-3. Test offline behavior
-4. Test error scenarios
-
-## Blockchain Endpoints
-
-### Development
-```typescript
-const DEV_ENDPOINT = 'ws://localhost:9944';
-```
-
-### Beta Testnet
-```typescript
-const BETA_ENDPOINT = 'ws://beta.pezkuwichain.io:9944';
-```
-
-### Mainnet (Future)
-```typescript
-const MAINNET_ENDPOINT = 'wss://mainnet.pezkuwichain.io';
-```
-
-## Dosya Yapısı
-
-```
-pwap/
-├── mobile/
-│ ├── src/
-│ │ ├── screens/
-│ │ │ ├── WelcomeScreen.tsx ✅ (Tamamlandı)
-│ │ │ ├── VerificationScreen.tsx ✅ (Tamamlandı, syntax fix)
-│ │ │ ├── DashboardScreen.tsx 🚧 (Blockchain entegrasyonu gerekli)
-│ │ │ ├── WalletScreen.tsx ❌ (FAZ 2)
-│ │ │ └── SettingsScreen.tsx ❌ (Var, ama update gerekli)
-│ │ └── theme/
-│ │ └── colors.ts ✅
-│ └── docs/
-│ ├── QUICK_ACTIONS_IMPLEMENTATION.md ✅ (400+ satır)
-│ └── FAZ_1_SUMMARY.md ✅ (Bu dosya)
-└── shared/
- └── hooks/
- └── blockchain/
- ├── usePolkadotApi.ts ✅ (Tamamlandı)
- ├── useBalance.ts ❌ (Oluşturulacak)
- ├── useStaking.ts ❌ (Oluşturulacak)
- └── useProposals.ts ❌ (Oluşturulacak)
-```
-
-## Sonraki Adımlar (Öncelik Sırasına Göre)
-
-### FAZ 1.3 (Şu An) 🚧
-1. `useBalance.ts` hook'unu oluştur
-2. `useStaking.ts` hook'unu oluştur
-3. `useProposals.ts` hook'unu oluştur
-4. `formatBalance.ts` utility'sini oluştur
-5. DashboardScreen'e entegre et
-6. Test et
-
-### FAZ 1.4 (Sonraki) ⏳
-1. Quick Actions navigation'larını ekle
-2. Her action için loading state ekle
-3. Error handling ekle
-4. Offline state detection ekle
-
-### FAZ 2 (Gelecek) 📅
-1. WalletScreen - Transfer, Receive, History
-2. StakingScreen - Bond, Unbond, Nominate
-3. GovernanceScreen - Proposals, Voting
-4. DEXScreen - Swap, Liquidity
-5. HistoryScreen - Transaction list
-6. Detailed documentation (QUICK_ACTIONS_IMPLEMENTATION.md zaten var)
-
-## Beklenen Timeline
-
-- **FAZ 1.3 (Blockchain Bağlantısı):** 2-3 gün
-- **FAZ 1.4 (Quick Actions Navigation):** 1 gün
-- **FAZ 1 Toplam:** ~1 hafta
-- **FAZ 2 (Detaylı Features):** 3-4 hafta (daha önce planlandı)
-
-## Bağımlılıklar
-
-### NPM Paketleri (Zaten Kurulu)
-- `@polkadot/api` v16.5.2 ✅
-- `@polkadot/util` v13.5.7 ✅
-- `@polkadot/util-crypto` v13.5.7 ✅
-- `react-i18next` ✅
-- `expo-linear-gradient` ✅
-
-### Platform Desteği
-- ✅ React Native (mobile)
-- ✅ Web (shared hooks platform-agnostic)
-
-## Notlar
-
-### Güvenlik
-- Mnemonic/private key'ler SecureStore'da saklanacak
-- Biometric authentication FAZ 2'de eklenecek
-- Demo mode sadece `__DEV__` flag'inde aktif
-
-### i18n
-- 6 dil desteği aktif (EN, TR, KMR, CKB, AR, FA)
-- RTL diller için özel layout (AR, FA)
-- Çeviriler `/home/mamostehp/pwap/mobile/src/locales/` klasöründe
-
-### Tasarım
-- Kurdistan renk paleti: Kesk (green), Zer (yellow), Sor (red), Spi (white), Reş (black)
-- Linear gradient backgrounds
-- Shadow/elevation effects
-- Responsive grid layout
-
----
-
-**Durum:** FAZ 1.2 tamamlandı, FAZ 1.3 devam ediyor
-**Güncelleme:** 2025-11-17
-**Yazar:** Claude Code
diff --git a/mobile/eas.json b/mobile/eas.json
new file mode 100644
index 00000000..66d91018
--- /dev/null
+++ b/mobile/eas.json
@@ -0,0 +1,25 @@
+{
+ "cli": {
+ "version": ">= 13.2.0"
+ },
+ "build": {
+ "development": {
+ "developmentClient": true,
+ "distribution": "internal"
+ },
+ "preview": {
+ "distribution": "internal",
+ "android": {
+ "buildType": "apk"
+ }
+ },
+ "production": {
+ "android": {
+ "buildType": "apk"
+ }
+ }
+ },
+ "submit": {
+ "production": {}
+ }
+}
diff --git a/mobile/execute_sql.cjs b/mobile/execute_sql.cjs
new file mode 100644
index 00000000..323a943d
--- /dev/null
+++ b/mobile/execute_sql.cjs
@@ -0,0 +1,152 @@
+/**
+ * Execute SQL Files on Supabase
+ *
+ * This script runs SQL files directly on Supabase database
+ */
+
+const { createClient } = require('@supabase/supabase-js');
+const fs = require('fs');
+const path = require('path');
+
+const supabaseUrl = 'https://vsyrpfiwhjvahofxwytr.supabase.co';
+const supabaseServiceKey = 'sb_secret_oXy8Diay2J_u8dKPZLxdcQ_hq69Mrb6';
+
+const supabase = createClient(supabaseUrl, supabaseServiceKey, {
+ auth: {
+ autoRefreshToken: false,
+ persistSession: false
+ }
+});
+
+async function executeSQLFile(filename) {
+ console.log(`\n${'='.repeat(70)}`);
+ console.log(`📄 Executing: ${filename}`);
+ console.log('='.repeat(70));
+
+ try {
+ const sqlContent = fs.readFileSync(path.join(__dirname, filename), 'utf8');
+
+ // Split SQL by semicolons (simple parser)
+ const statements = sqlContent
+ .split(';')
+ .map(s => s.trim())
+ .filter(s => s.length > 0 && !s.startsWith('--') && !s.match(/^\/\*/));
+
+ console.log(`\n📊 Found ${statements.length} SQL statements\n`);
+
+ let successCount = 0;
+ let errorCount = 0;
+
+ for (let i = 0; i < statements.length; i++) {
+ const statement = statements[i];
+
+ // Skip comments and empty statements
+ if (statement.startsWith('--') || statement.length < 5) {
+ continue;
+ }
+
+ // Show first 80 chars of statement
+ const preview = statement.substring(0, 80).replace(/\s+/g, ' ');
+ process.stdout.write(` [${i + 1}/${statements.length}] ${preview}...`);
+
+ try {
+ // Execute using RPC query function (if available)
+ // Note: This requires a custom RPC function in Supabase
+ // Alternative: Use REST API directly
+
+ const response = await fetch(`${supabaseUrl}/rest/v1/rpc/exec_sql`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ 'apikey': supabaseServiceKey,
+ 'Authorization': `Bearer ${supabaseServiceKey}`
+ },
+ body: JSON.stringify({ sql: statement })
+ });
+
+ if (response.ok) {
+ console.log(' ✅');
+ successCount++;
+ } else {
+ const error = await response.text();
+ console.log(` ❌ ${error}`);
+ errorCount++;
+ }
+ } catch (error) {
+ console.log(` ❌ ${error.message}`);
+ errorCount++;
+ }
+ }
+
+ console.log(`\n${'='.repeat(70)}`);
+ console.log(`📊 Results: ${successCount} succeeded, ${errorCount} failed`);
+ console.log('='.repeat(70));
+
+ return { success: successCount, errors: errorCount };
+
+ } catch (error) {
+ console.error(`❌ Error reading file: ${error.message}`);
+ return { success: 0, errors: 1 };
+ }
+}
+
+async function main() {
+ console.log('\n🚀 Starting SQL Execution...\n');
+
+ // Step 1: Fix schema compatibility
+ console.log('📝 Step 1: Fixing schema compatibility...');
+ const result1 = await executeSQLFile('FIX_SCHEMA_COMPATIBILITY.sql');
+
+ // Step 2: Create missing tables
+ console.log('\n📝 Step 2: Creating missing tables...');
+ const result2 = await executeSQLFile('SUPABASE_SCHEMA.sql');
+
+ // Summary
+ console.log('\n' + '='.repeat(70));
+ console.log('🎉 EXECUTION SUMMARY');
+ console.log('='.repeat(70));
+ console.log(`\nStep 1 (Compatibility Fix):`);
+ console.log(` ✅ Success: ${result1.success}`);
+ console.log(` ❌ Errors: ${result1.errors}`);
+ console.log(`\nStep 2 (Create Tables):`);
+ console.log(` ✅ Success: ${result2.success}`);
+ console.log(` ❌ Errors: ${result2.errors}`);
+ console.log('\n' + '='.repeat(70));
+
+ if (result1.errors === 0 && result2.errors === 0) {
+ console.log('\n✅ ALL OPERATIONS COMPLETED SUCCESSFULLY!\n');
+ console.log('📝 Next step: Run verification script');
+ console.log(' node check_schema_compatibility.cjs\n');
+ } else {
+ console.log('\n⚠️ Some operations failed. Check errors above.\n');
+ }
+}
+
+// Alternative: Use Management API
+async function executeViaManagementAPI() {
+ console.log('\n📝 Attempting to execute via Management API...\n');
+
+ // Supabase doesn't have a public SQL execution API
+ // Best option is to use Supabase Dashboard SQL Editor
+ console.log('⚠️ Supabase JS SDK does not support direct SQL execution');
+ console.log('ℹ️ SQL must be executed via Supabase Dashboard\n');
+ console.log('📋 Instructions:');
+ console.log(' 1. Go to: https://app.supabase.com');
+ console.log(' 2. Select project: vsyrpfiwhjvahofxwytr');
+ console.log(' 3. Open: SQL Editor (left menu)');
+ console.log(' 4. Copy contents of: FIX_SCHEMA_COMPATIBILITY.sql');
+ console.log(' 5. Paste and click: Run');
+ console.log(' 6. Repeat for: SUPABASE_SCHEMA.sql\n');
+
+ return false;
+}
+
+// Check if we can execute SQL programmatically
+executeViaManagementAPI().then(canExecute => {
+ if (!canExecute) {
+ console.log('⚠️ Manual execution required via Supabase Dashboard\n');
+ process.exit(1);
+ } else {
+ main().then(() => process.exit(0));
+ }
+});
diff --git a/mobile/index.ts b/mobile/index.ts
index 1d6e981e..131c464f 100644
--- a/mobile/index.ts
+++ b/mobile/index.ts
@@ -1,6 +1,44 @@
-import { registerRootComponent } from 'expo';
+// CRITICAL: Import crypto polyfill FIRST before anything else
+console.log('🚀 [INDEX] Starting app initialization...');
+console.log('📦 [INDEX] Loading react-native-get-random-values...');
+import 'react-native-get-random-values';
+console.log('✅ [INDEX] react-native-get-random-values loaded');
+// React Native polyfills for @pezkuwi packages
+console.log('📦 [INDEX] Loading URL polyfill...');
+import 'react-native-url-polyfill/auto';
+console.log('✅ [INDEX] URL polyfill loaded');
+
+console.log('📦 [INDEX] Setting up Buffer...');
+import { Buffer } from 'buffer';
+
+// Global polyfills for Polkadot.js
+// @ts-ignore
+global.Buffer = Buffer;
+console.log('✅ [INDEX] Buffer configured');
+
+// TextEncoder/TextDecoder polyfill
+console.log('📦 [INDEX] Setting up TextEncoder/TextDecoder...');
+if (typeof global.TextEncoder === 'undefined') {
+ const { TextEncoder, TextDecoder } = require('text-encoding');
+ // @ts-ignore
+ global.TextEncoder = TextEncoder;
+ // @ts-ignore
+ global.TextDecoder = TextDecoder;
+ console.log('✅ [INDEX] TextEncoder/TextDecoder configured');
+} else {
+ console.log('ℹ️ [INDEX] TextEncoder/TextDecoder already available');
+}
+
+console.log('📦 [INDEX] Loading Expo...');
+import { registerRootComponent } from 'expo';
+console.log('✅ [INDEX] Expo loaded');
+
+console.log('📦 [INDEX] Loading App component...');
import App from './App';
+console.log('✅ [INDEX] App component loaded');
+
+console.log('🎯 [INDEX] All imports successful, registering root component...');
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
// It also ensures that whether you load the app in Expo Go or in a native build,
diff --git a/mobile/jest.config.cjs b/mobile/jest.config.cjs
index 77f7ecbb..092c616e 100644
--- a/mobile/jest.config.cjs
+++ b/mobile/jest.config.cjs
@@ -3,11 +3,10 @@ module.exports = {
setupFiles: ['/jest.setup.before.cjs'],
setupFilesAfterEnv: ['/jest.setup.cjs'],
transformIgnorePatterns: [
- 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@polkadot/.*|@babel/runtime)',
+ 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@polkadot/.*|@pezkuwi/.*|@babel/runtime)',
'!../shared/.*',
],
moduleNameMapper: {
- '^@pezkuwi/(.*)$': '/../shared/$1',
'^@/(.*)$': '/src/$1',
'react-native-gesture-handler': '/__mocks__/react-native-gesture-handler.js',
'react-native-reanimated': '/__mocks__/react-native-reanimated.js',
diff --git a/mobile/jest.setup.cjs b/mobile/jest.setup.cjs
index 0ef0da82..837f4a79 100644
--- a/mobile/jest.setup.cjs
+++ b/mobile/jest.setup.cjs
@@ -69,6 +69,74 @@ jest.mock('@polkadot/api', () => ({
WsProvider: jest.fn(),
}));
+// Mock @pezkuwi packages (aliases for @polkadot packages)
+jest.mock('@pezkuwi/api', () => ({
+ ApiPromise: {
+ create: jest.fn(() =>
+ Promise.resolve({
+ isReady: Promise.resolve(true),
+ query: {
+ treasury: {
+ treasury: jest.fn(() => Promise.resolve({ toString: () => '1000000000000000' })),
+ proposals: {
+ entries: jest.fn(() => Promise.resolve([])),
+ },
+ },
+ democracy: {
+ referendumInfoOf: {
+ entries: jest.fn(() => Promise.resolve([])),
+ },
+ },
+ dynamicCommissionCollective: {
+ proposals: jest.fn(() => Promise.resolve([])),
+ voting: jest.fn(() => Promise.resolve({ isSome: false })),
+ },
+ },
+ tx: {},
+ rpc: {},
+ disconnect: jest.fn(),
+ })
+ ),
+ },
+ WsProvider: jest.fn(),
+}));
+
+jest.mock('@pezkuwi/keyring', () => ({
+ Keyring: jest.fn().mockImplementation(() => ({
+ addFromUri: jest.fn((mnemonic, meta, type) => ({
+ address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
+ meta: meta || {},
+ type: type || 'sr25519',
+ publicKey: new Uint8Array(32),
+ sign: jest.fn(),
+ verify: jest.fn(),
+ })),
+ addFromMnemonic: jest.fn((mnemonic, meta, type) => ({
+ address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
+ meta: meta || {},
+ type: type || 'sr25519',
+ publicKey: new Uint8Array(32),
+ sign: jest.fn(),
+ verify: jest.fn(),
+ })),
+ getPairs: jest.fn(() => []),
+ getPair: jest.fn((address) => ({
+ address: address,
+ meta: {},
+ type: 'sr25519',
+ publicKey: new Uint8Array(32),
+ sign: jest.fn(),
+ verify: jest.fn(),
+ })),
+ })),
+}));
+
+jest.mock('@pezkuwi/util-crypto', () => ({
+ cryptoWaitReady: jest.fn(() => Promise.resolve(true)),
+ mnemonicGenerate: jest.fn(() => 'test test test test test test test test test test test junk'),
+ mnemonicValidate: jest.fn(() => true),
+}));
+
// Mock Supabase
jest.mock('./src/lib/supabase', () => ({
supabase: {
@@ -98,17 +166,12 @@ jest.mock('./src/lib/supabase', () => ({
}));
// Mock shared blockchain utilities
-jest.mock('../shared/blockchain/polkadot', () => ({
+jest.mock('../shared/blockchain', () => ({
PEZKUWI_NETWORK: {
name: 'Pezkuwi',
- endpoint: 'wss://beta-rpc.pezkuwi.art',
+ endpoint: 'wss://rpc.pezkuwichain.io:9944',
chainId: 'pezkuwi',
},
- BLOCKCHAIN_ENDPOINTS: {
- mainnet: 'wss://mainnet.pezkuwichain.io',
- testnet: 'wss://ws.pezkuwichain.io',
- local: 'ws://127.0.0.1:9944',
- },
DEFAULT_ENDPOINT: 'ws://127.0.0.1:9944',
getExplorerUrl: jest.fn((txHash) => `https://explorer.pezkuwichain.app/tx/${txHash}`),
}));
@@ -205,6 +268,8 @@ jest.mock('i18next', () => ({
isInitialized: true,
}));
+// Note: Alert is mocked in individual test files where needed
+
// Silence console warnings in tests
global.console = {
...console,
diff --git a/mobile/metro.config.cjs b/mobile/metro.config.cjs
new file mode 100644
index 00000000..64603a57
--- /dev/null
+++ b/mobile/metro.config.cjs
@@ -0,0 +1,48 @@
+// Learn more https://docs.expo.io/guides/customizing-metro
+const { getDefaultConfig } = require('expo/metro-config');
+const path = require('path');
+
+/** @type {import('expo/metro-config').MetroConfig} */
+const config = getDefaultConfig(__dirname);
+
+// ============================================
+// WORKSPACE CONFIGURATION
+// ============================================
+
+const projectRoot = __dirname;
+
+// Use default watchFolders (no custom configuration)
+
+// ============================================
+// CUSTOM MODULE RESOLUTION
+// ============================================
+// DISABLED: Custom resolver causes empty-module.js resolution issues
+// Using npm packages directly instead
+
+// ============================================
+// FILE EXTENSIONS
+// ============================================
+
+config.resolver.sourceExts = [
+ 'expo.ts',
+ 'expo.tsx',
+ 'expo.js',
+ 'expo.jsx',
+ 'ts',
+ 'tsx',
+ 'js',
+ 'jsx',
+ 'json',
+ 'wasm',
+ 'svg',
+ 'cjs',
+ 'mjs',
+];
+
+// ============================================
+// NODE POLYFILLS
+// ============================================
+
+// Polyfills will be resolved from project's own node_modules
+
+module.exports = config;
diff --git a/mobile/metro.config.js b/mobile/metro.config.js
deleted file mode 100644
index 18401def..00000000
--- a/mobile/metro.config.js
+++ /dev/null
@@ -1,71 +0,0 @@
-// Learn more https://docs.expo.io/guides/customizing-metro
-const { getDefaultConfig } = require('expo/metro-config');
-const path = require('path');
-
-/** @type {import('expo/metro-config').MetroConfig} */
-const config = getDefaultConfig(__dirname);
-
-// Monorepo support: Watch and resolve modules from parent directory
-const projectRoot = __dirname;
-const workspaceRoot = path.resolve(projectRoot, '..');
-
-// Watch all files in the monorepo
-config.watchFolders = [workspaceRoot];
-
-// Let Metro resolve modules from the workspace root
-config.resolver.nodeModulesPaths = [
- path.resolve(projectRoot, 'node_modules'),
- path.resolve(workspaceRoot, 'node_modules'),
-];
-
-// Enable symlinks for shared library
-config.resolver.resolveRequest = (context, moduleName, platform) => {
- // Handle @pezkuwi/* imports (shared library)
- if (moduleName.startsWith('@pezkuwi/')) {
- const sharedPath = moduleName.replace('@pezkuwi/', '');
- const sharedDir = path.resolve(workspaceRoot, 'shared', sharedPath);
-
- // Try .ts extension first, then .tsx, then .js
- const extensions = ['.ts', '.tsx', '.js', '.json'];
- for (const ext of extensions) {
- const filePath = sharedDir + ext;
- if (require('fs').existsSync(filePath)) {
- return {
- filePath,
- type: 'sourceFile',
- };
- }
- }
-
- // Try index files
- for (const ext of extensions) {
- const indexPath = path.join(sharedDir, `index${ext}`);
- if (require('fs').existsSync(indexPath)) {
- return {
- filePath: indexPath,
- type: 'sourceFile',
- };
- }
- }
- }
-
- // Fall back to the default resolver
- return context.resolveRequest(context, moduleName, platform);
-};
-
-// Ensure all file extensions are resolved
-config.resolver.sourceExts = [
- 'expo.ts',
- 'expo.tsx',
- 'expo.js',
- 'expo.jsx',
- 'ts',
- 'tsx',
- 'js',
- 'jsx',
- 'json',
- 'wasm',
- 'svg',
-];
-
-module.exports = config;
diff --git a/mobile/node-pnp-wrapper.sh b/mobile/node-pnp-wrapper.sh
new file mode 100755
index 00000000..928fc052
--- /dev/null
+++ b/mobile/node-pnp-wrapper.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# Wrapper to run node with Yarn PnP support
+cd /home/mamostehp/pwap/mobile
+exec yarn node "$@"
diff --git a/mobile/package-lock.json b/mobile/package-lock.json
deleted file mode 100644
index a1aba70c..00000000
--- a/mobile/package-lock.json
+++ /dev/null
@@ -1,18585 +0,0 @@
-{
- "name": "mobile",
- "version": "1.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "mobile",
- "version": "1.0.0",
- "dependencies": {
- "@polkadot/api": "^16.5.2",
- "@polkadot/keyring": "^13.5.8",
- "@polkadot/util": "^13.5.8",
- "@polkadot/util-crypto": "^13.5.8",
- "@react-native-async-storage/async-storage": "^2.2.0",
- "@react-navigation/bottom-tabs": "^7.8.5",
- "@react-navigation/native": "^7.1.20",
- "@react-navigation/stack": "^7.6.4",
- "expo": "~54.0.23",
- "expo-linear-gradient": "^15.0.7",
- "expo-local-authentication": "^17.0.7",
- "expo-secure-store": "^15.0.7",
- "expo-status-bar": "~3.0.8",
- "i18next": "^25.6.2",
- "react": "19.1.0",
- "react-i18next": "^16.3.3",
- "react-native": "0.81.5",
- "react-native-safe-area-context": "^5.6.2",
- "react-native-screens": "^4.18.0",
- "react-native-url-polyfill": "^3.0.0",
- "react-native-vector-icons": "^10.3.0"
- },
- "devDependencies": {
- "@babel/runtime": "^7.28.4",
- "@testing-library/jest-native": "^5.4.3",
- "@testing-library/react-native": "^13.3.3",
- "@types/jest": "^29.5.12",
- "@types/react": "~19.1.0",
- "@typescript-eslint/eslint-plugin": "^8.47.0",
- "@typescript-eslint/parser": "^8.47.0",
- "eslint": "^9.39.1",
- "eslint-plugin-react": "^7.37.5",
- "eslint-plugin-react-hooks": "^7.0.1",
- "eslint-plugin-react-native": "^5.0.0",
- "globals": "^16.5.0",
- "jest": "^29.7.0",
- "jest-expo": "^54.0.13",
- "typescript": "~5.9.2",
- "typescript-eslint": "^8.47.0"
- }
- },
- "node_modules/@0no-co/graphql.web": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz",
- "integrity": "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==",
- "license": "MIT",
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
- },
- "peerDependenciesMeta": {
- "graphql": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "license": "MIT",
- "dependencies": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz",
- "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
- "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-module-transforms": "^7.28.3",
- "@babel/helpers": "^7.28.4",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.5",
- "@babel/types": "^7.28.5",
- "@jridgewell/remapping": "^2.3.5",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz",
- "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.28.5",
- "@babel/types": "^7.28.5",
- "@jridgewell/gen-mapping": "^0.3.12",
- "@jridgewell/trace-mapping": "^0.3.28",
- "jsesc": "^3.0.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
- "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.27.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
- "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.27.2",
- "@babel/helper-validator-option": "^7.27.1",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz",
- "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-member-expression-to-functions": "^7.28.5",
- "@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.28.5",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
- "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "regexpu-core": "^6.3.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz",
- "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "debug": "^4.4.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.22.10"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/@babel/helper-globals": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
- "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
- "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.28.5",
- "@babel/types": "^7.28.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
- "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.28.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz",
- "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1",
- "@babel/traverse": "^7.28.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
- "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
- "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
- "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-wrap-function": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz",
- "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.27.1",
- "@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
- "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
- "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
- "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
- "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.28.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz",
- "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.3",
- "@babel/types": "^7.28.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz",
- "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz",
- "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz",
- "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.28.5"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-proposal-decorators": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz",
- "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-syntax-decorators": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-export-default-from": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz",
- "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-decorators": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz",
- "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-export-default-from": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz",
- "integrity": "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-flow": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz",
- "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz",
- "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz",
- "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz",
- "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz",
- "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz",
- "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-remap-async-to-generator": "^7.27.1",
- "@babel/traverse": "^7.28.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz",
- "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-remap-async-to-generator": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz",
- "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz",
- "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.28.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz",
- "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.28.3",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz",
- "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-globals": "^7.28.0",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1",
- "@babel/traverse": "^7.28.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz",
- "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/template": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz",
- "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.28.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz",
- "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-flow-strip-types": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz",
- "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-syntax-flow": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
- "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz",
- "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz",
- "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz",
- "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz",
- "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz",
- "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz",
- "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz",
- "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz",
- "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-transform-destructuring": "^7.28.0",
- "@babel/plugin-transform-parameters": "^7.27.7",
- "@babel/traverse": "^7.28.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz",
- "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz",
- "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.27.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz",
- "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz",
- "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz",
- "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
- "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz",
- "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-syntax-jsx": "^7.27.1",
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz",
- "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
- "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
- "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz",
- "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz",
- "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz",
- "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "babel-plugin-polyfill-corejs2": "^0.4.14",
- "babel-plugin-polyfill-corejs3": "^0.13.0",
- "babel-plugin-polyfill-regenerator": "^0.6.5",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
- "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz",
- "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz",
- "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typescript": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz",
- "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-create-class-features-plugin": "^7.28.5",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/plugin-syntax-typescript": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
- "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-react": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz",
- "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-validator-option": "^7.27.1",
- "@babel/plugin-transform-react-display-name": "^7.28.0",
- "@babel/plugin-transform-react-jsx": "^7.27.1",
- "@babel/plugin-transform-react-jsx-development": "^7.27.1",
- "@babel/plugin-transform-react-pure-annotations": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-typescript": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz",
- "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-validator-option": "^7.27.1",
- "@babel/plugin-syntax-jsx": "^7.27.1",
- "@babel/plugin-transform-modules-commonjs": "^7.27.1",
- "@babel/plugin-transform-typescript": "^7.28.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
- "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/parser": "^7.27.2",
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz",
- "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
- "@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.5",
- "debug": "^4.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse--for-generate-function-map": {
- "name": "@babel/traverse",
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz",
- "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
- "@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.5",
- "debug": "^4.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse--for-generate-function-map/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz",
- "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.28.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@egjs/hammerjs": {
- "version": "2.0.17",
- "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
- "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/hammerjs": "^2.0.36"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
- "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
- "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/config-array": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
- "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/object-schema": "^2.1.7",
- "debug": "^4.3.1",
- "minimatch": "^3.1.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/config-array/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@eslint/config-array/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/config-helpers": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
- "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/core": "^0.17.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/core": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
- "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
- "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/@eslint/eslintrc": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
- "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/js": {
- "version": "9.39.1",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz",
- "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==",
- "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": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
- "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/plugin-kit": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
- "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/core": "^0.17.0",
- "levn": "^0.4.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@expo/code-signing-certificates": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
- "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
- "license": "MIT",
- "dependencies": {
- "node-forge": "^1.2.1",
- "nullthrows": "^1.1.1"
- }
- },
- "node_modules/@expo/config": {
- "version": "12.0.10",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-12.0.10.tgz",
- "integrity": "sha512-lJMof5Nqakq1DxGYlghYB/ogSBjmv4Fxn1ovyDmcjlRsQdFCXgu06gEUogkhPtc9wBt9WlTTfqENln5HHyLW6w==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "~7.10.4",
- "@expo/config-plugins": "~54.0.2",
- "@expo/config-types": "^54.0.8",
- "@expo/json-file": "^10.0.7",
- "deepmerge": "^4.3.1",
- "getenv": "^2.0.0",
- "glob": "^10.4.2",
- "require-from-string": "^2.0.2",
- "resolve-from": "^5.0.0",
- "resolve-workspace-root": "^2.0.0",
- "semver": "^7.6.0",
- "slugify": "^1.3.4",
- "sucrase": "3.35.0"
- }
- },
- "node_modules/@expo/config-plugins": {
- "version": "54.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.2.tgz",
- "integrity": "sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg==",
- "license": "MIT",
- "dependencies": {
- "@expo/config-types": "^54.0.8",
- "@expo/json-file": "~10.0.7",
- "@expo/plist": "^0.4.7",
- "@expo/sdk-runtime-versions": "^1.0.0",
- "chalk": "^4.1.2",
- "debug": "^4.3.5",
- "getenv": "^2.0.0",
- "glob": "^10.4.2",
- "resolve-from": "^5.0.0",
- "semver": "^7.5.4",
- "slash": "^3.0.0",
- "slugify": "^1.6.6",
- "xcode": "^3.0.1",
- "xml2js": "0.6.0"
- }
- },
- "node_modules/@expo/config-plugins/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/config-plugins/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/config-plugins/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/config-plugins/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/config-plugins/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/config-plugins/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/config-types": {
- "version": "54.0.8",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.8.tgz",
- "integrity": "sha512-lyIn/x/Yz0SgHL7IGWtgTLg6TJWC9vL7489++0hzCHZ4iGjVcfZmPTUfiragZ3HycFFj899qN0jlhl49IHa94A==",
- "license": "MIT"
- },
- "node_modules/@expo/devcert": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.2.0.tgz",
- "integrity": "sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA==",
- "license": "MIT",
- "dependencies": {
- "@expo/sudo-prompt": "^9.3.1",
- "debug": "^3.1.0",
- "glob": "^10.4.2"
- }
- },
- "node_modules/@expo/devcert/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/@expo/devtools": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/@expo/devtools/-/devtools-0.1.7.tgz",
- "integrity": "sha512-dfIa9qMyXN+0RfU6SN4rKeXZyzKWsnz6xBSDccjL4IRiE+fQ0t84zg0yxgN4t/WK2JU5v6v4fby7W7Crv9gJvA==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.1.2"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-native": {
- "optional": true
- }
- }
- },
- "node_modules/@expo/devtools/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/devtools/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/devtools/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/devtools/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/devtools/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/devtools/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/env": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.7.tgz",
- "integrity": "sha512-BNETbLEohk3HQ2LxwwezpG8pq+h7Fs7/vAMP3eAtFT1BCpprLYoBBFZH7gW4aqGfqOcVP4Lc91j014verrYNGg==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "debug": "^4.3.4",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "getenv": "^2.0.0"
- }
- },
- "node_modules/@expo/env/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/env/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/env/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/env/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/env/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/env/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/fingerprint": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.15.3.tgz",
- "integrity": "sha512-8YPJpEYlmV171fi+t+cSLMX1nC5ngY9j2FiN70dHldLpd6Ct6ouGhk96svJ4BQZwsqwII2pokwzrDAwqo4Z0FQ==",
- "license": "MIT",
- "dependencies": {
- "@expo/spawn-async": "^1.7.2",
- "arg": "^5.0.2",
- "chalk": "^4.1.2",
- "debug": "^4.3.4",
- "getenv": "^2.0.0",
- "glob": "^10.4.2",
- "ignore": "^5.3.1",
- "minimatch": "^9.0.0",
- "p-limit": "^3.1.0",
- "resolve-from": "^5.0.0",
- "semver": "^7.6.0"
- },
- "bin": {
- "fingerprint": "bin/cli.js"
- }
- },
- "node_modules/@expo/fingerprint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/fingerprint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/fingerprint/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/fingerprint/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/fingerprint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/fingerprint/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/image-utils": {
- "version": "0.8.7",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.7.tgz",
- "integrity": "sha512-SXOww4Wq3RVXLyOaXiCCuQFguCDh8mmaHBv54h/R29wGl4jRY8GEyQEx8SypV/iHt1FbzsU/X3Qbcd9afm2W2w==",
- "license": "MIT",
- "dependencies": {
- "@expo/spawn-async": "^1.7.2",
- "chalk": "^4.0.0",
- "getenv": "^2.0.0",
- "jimp-compact": "0.16.1",
- "parse-png": "^2.1.0",
- "resolve-from": "^5.0.0",
- "resolve-global": "^1.0.0",
- "semver": "^7.6.0",
- "temp-dir": "~2.0.0",
- "unique-string": "~2.0.0"
- }
- },
- "node_modules/@expo/image-utils/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/image-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/image-utils/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/image-utils/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/image-utils/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/image-utils/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/json-file": {
- "version": "10.0.7",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.7.tgz",
- "integrity": "sha512-z2OTC0XNO6riZu98EjdNHC05l51ySeTto6GP7oSQrCvQgG9ARBwD1YvMQaVZ9wU7p/4LzSf1O7tckL3B45fPpw==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "~7.10.4",
- "json5": "^2.2.3"
- }
- },
- "node_modules/@expo/mcp-tunnel": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@expo/mcp-tunnel/-/mcp-tunnel-0.1.0.tgz",
- "integrity": "sha512-rJ6hl0GnIZj9+ssaJvFsC7fwyrmndcGz+RGFzu+0gnlm78X01957yjtHgjcmnQAgL5hWEOR6pkT0ijY5nU5AWw==",
- "license": "MIT",
- "dependencies": {
- "ws": "^8.18.3",
- "zod": "^3.25.76",
- "zod-to-json-schema": "^3.24.6"
- },
- "peerDependencies": {
- "@modelcontextprotocol/sdk": "^1.13.2"
- },
- "peerDependenciesMeta": {
- "@modelcontextprotocol/sdk": {
- "optional": true
- }
- }
- },
- "node_modules/@expo/mcp-tunnel/node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/@expo/metro": {
- "version": "54.1.0",
- "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.1.0.tgz",
- "integrity": "sha512-MgdeRNT/LH0v1wcO0TZp9Qn8zEF0X2ACI0wliPtv5kXVbXWI+yK9GyrstwLAiTXlULKVIg3HVSCCvmLu0M3tnw==",
- "license": "MIT",
- "dependencies": {
- "metro": "0.83.2",
- "metro-babel-transformer": "0.83.2",
- "metro-cache": "0.83.2",
- "metro-cache-key": "0.83.2",
- "metro-config": "0.83.2",
- "metro-core": "0.83.2",
- "metro-file-map": "0.83.2",
- "metro-resolver": "0.83.2",
- "metro-runtime": "0.83.2",
- "metro-source-map": "0.83.2",
- "metro-transform-plugins": "0.83.2",
- "metro-transform-worker": "0.83.2"
- }
- },
- "node_modules/@expo/osascript": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.3.7.tgz",
- "integrity": "sha512-IClSOXxR0YUFxIriUJVqyYki7lLMIHrrzOaP01yxAL1G8pj2DWV5eW1y5jSzIcIfSCNhtGsshGd1tU/AYup5iQ==",
- "license": "MIT",
- "dependencies": {
- "@expo/spawn-async": "^1.7.2",
- "exec-async": "^2.2.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@expo/package-manager": {
- "version": "1.9.8",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.9.8.tgz",
- "integrity": "sha512-4/I6OWquKXYnzo38pkISHCOCOXxfeEmu4uDoERq1Ei/9Ur/s9y3kLbAamEkitUkDC7gHk1INxRWEfFNzGbmOrA==",
- "license": "MIT",
- "dependencies": {
- "@expo/json-file": "^10.0.7",
- "@expo/spawn-async": "^1.7.2",
- "chalk": "^4.0.0",
- "npm-package-arg": "^11.0.0",
- "ora": "^3.4.0",
- "resolve-workspace-root": "^2.0.0"
- }
- },
- "node_modules/@expo/package-manager/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/package-manager/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/package-manager/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/package-manager/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/package-manager/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/package-manager/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/plist": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.4.7.tgz",
- "integrity": "sha512-dGxqHPvCZKeRKDU1sJZMmuyVtcASuSYh1LPFVaM1DuffqPL36n6FMEL0iUqq2Tx3xhWk8wCnWl34IKplUjJDdA==",
- "license": "MIT",
- "dependencies": {
- "@xmldom/xmldom": "^0.8.8",
- "base64-js": "^1.2.3",
- "xmlbuilder": "^15.1.1"
- }
- },
- "node_modules/@expo/schema-utils": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/@expo/schema-utils/-/schema-utils-0.1.7.tgz",
- "integrity": "sha512-jWHoSuwRb5ZczjahrychMJ3GWZu54jK9ulNdh1d4OzAEq672K9E5yOlnlBsfIHWHGzUAT+0CL7Yt1INiXTz68g==",
- "license": "MIT"
- },
- "node_modules/@expo/sdk-runtime-versions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz",
- "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==",
- "license": "MIT"
- },
- "node_modules/@expo/spawn-async": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
- "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@expo/sudo-prompt": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz",
- "integrity": "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==",
- "license": "MIT"
- },
- "node_modules/@expo/ws-tunnel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz",
- "integrity": "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==",
- "license": "MIT"
- },
- "node_modules/@expo/xcpretty": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz",
- "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/code-frame": "7.10.4",
- "chalk": "^4.1.0",
- "find-up": "^5.0.0",
- "js-yaml": "^4.1.0"
- },
- "bin": {
- "excpretty": "build/cli.js"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "license": "Python-2.0"
- },
- "node_modules/@expo/xcpretty/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@expo/xcpretty/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@expo/xcpretty/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanfs/node": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
- "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@humanfs/core": "^0.19.1",
- "@humanwhocodes/retry": "^0.4.0"
- },
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/retry": {
- "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": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "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==",
- "license": "ISC",
- "dependencies": {
- "minipass": "^7.0.4"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@isaacs/ttlcache": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz",
- "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "license": "ISC",
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/console/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/console/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/console/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/console/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jest/console/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/core/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/core/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/core/node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/core/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jest/core/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/create-cache-key-function": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz",
- "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/diff-sequences": {
- "version": "30.0.1",
- "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
- "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
- "license": "MIT",
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-get-type": "^29.6.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/get-type": {
- "version": "30.1.0",
- "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
- "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/reporters/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/reporters/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@jest/reporters/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/reporters/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/reporters/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jest/reporters/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@jest/reporters/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
- "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@istanbuljs/schema": "^0.1.3",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@jest/reporters/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@jest/reporters/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/reporters/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/transform/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/transform/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@jest/transform/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/transform/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/types/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/types/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/@jest/types/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/types/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
- "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@noble/curves": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
- "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==",
- "license": "MIT",
- "dependencies": {
- "@noble/hashes": "1.8.0"
- },
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "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",
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@polkadot-api/json-rpc-provider": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz",
- "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/@polkadot-api/json-rpc-provider-proxy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.1.0.tgz",
- "integrity": "sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/@polkadot-api/metadata-builders": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.3.2.tgz",
- "integrity": "sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@polkadot-api/substrate-bindings": "0.6.0",
- "@polkadot-api/utils": "0.1.0"
- }
- },
- "node_modules/@polkadot-api/observable-client": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.3.2.tgz",
- "integrity": "sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@polkadot-api/metadata-builders": "0.3.2",
- "@polkadot-api/substrate-bindings": "0.6.0",
- "@polkadot-api/utils": "0.1.0"
- },
- "peerDependencies": {
- "@polkadot-api/substrate-client": "0.1.4",
- "rxjs": ">=7.8.0"
- }
- },
- "node_modules/@polkadot-api/substrate-bindings": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.6.0.tgz",
- "integrity": "sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@noble/hashes": "^1.3.1",
- "@polkadot-api/utils": "0.1.0",
- "@scure/base": "^1.1.1",
- "scale-ts": "^1.6.0"
- }
- },
- "node_modules/@polkadot-api/substrate-client": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.1.4.tgz",
- "integrity": "sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@polkadot-api/json-rpc-provider": "0.0.1",
- "@polkadot-api/utils": "0.1.0"
- }
- },
- "node_modules/@polkadot-api/utils": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.1.0.tgz",
- "integrity": "sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/@polkadot/api": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-16.5.2.tgz",
- "integrity": "sha512-EOkxs7KTgcytIhIxlIhIMV8EQQ/5F3bFs4hIRIqVFPJhNQn3tbq130HiJbQmvOnlxa3PXCEu7XVoCL0zkV08YQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/api-augment": "16.5.2",
- "@polkadot/api-base": "16.5.2",
- "@polkadot/api-derive": "16.5.2",
- "@polkadot/keyring": "^13.5.8",
- "@polkadot/rpc-augment": "16.5.2",
- "@polkadot/rpc-core": "16.5.2",
- "@polkadot/rpc-provider": "16.5.2",
- "@polkadot/types": "16.5.2",
- "@polkadot/types-augment": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/types-create": "16.5.2",
- "@polkadot/types-known": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "@polkadot/util-crypto": "^13.5.8",
- "eventemitter3": "^5.0.1",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/api-augment": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-16.5.2.tgz",
- "integrity": "sha512-gDExOFPNHERqhnc7/4Fikvx63lOR7bsMUs5lXfNi6H5X773zIecnH+QbgILK6OfB8w+HCiUoUriKyYvFsI0zrA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/api-base": "16.5.2",
- "@polkadot/rpc-augment": "16.5.2",
- "@polkadot/types": "16.5.2",
- "@polkadot/types-augment": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/api-base": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-16.5.2.tgz",
- "integrity": "sha512-YbXY4/ocZVXjx3a3H3HzGa7qrZ2itttkZz4q9Rrba0QFPyeN06KnaDLqDSo3mvJ4EVbhpuYgiNp10/tBb1+Llw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/rpc-core": "16.5.2",
- "@polkadot/types": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/api-derive": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-16.5.2.tgz",
- "integrity": "sha512-QBL7Yu4qa+nWWBEgpzmxbNoVC2uXFv7WQGPgH0pT/37hfcMXtCwQ9p37e1dGDxkB6oq0Jt4YJCNwVUxTZfi2vg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/api": "16.5.2",
- "@polkadot/api-augment": "16.5.2",
- "@polkadot/api-base": "16.5.2",
- "@polkadot/rpc-core": "16.5.2",
- "@polkadot/types": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "@polkadot/util-crypto": "^13.5.8",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/keyring": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-13.5.8.tgz",
- "integrity": "sha512-BiTvXuLVxDpUw0c2E0Jr9H/QQ1p8YM7XV4XUucodtV/hrDHHpfp5jNg6zeeRTpU+qSkOYQmgL2dzw0hyWORcUQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/util": "13.5.8",
- "@polkadot/util-crypto": "13.5.8",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "13.5.8",
- "@polkadot/util-crypto": "13.5.8"
- }
- },
- "node_modules/@polkadot/networks": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-13.5.8.tgz",
- "integrity": "sha512-e8wPLmTC/YtowkbkTG1BbeDy7PBKcclePSTZe72Xctx8kVssmAX6lKUQNk7tgu1BttGOhn6x9M8RXBBD4zB9Vw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/util": "13.5.8",
- "@substrate/ss58-registry": "^1.51.0",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/rpc-augment": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-16.5.2.tgz",
- "integrity": "sha512-wFMkvWNy3Cjjat+dVDnKeXP8brZK/WxEuDHYuEoyDziJstuBQdMoXhO97W3gvsXDp7OVI61xqLmsnEYo+HXwTw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/rpc-core": "16.5.2",
- "@polkadot/types": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/rpc-core": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-16.5.2.tgz",
- "integrity": "sha512-Q+vcaqvLyVtRyKn7OuoEMJEB5EA1cq7axVwLpljbTzYwV1qENlubkEFR5TViVyg/zPH8G7eJ2hHzMgXf/14e0w==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/rpc-augment": "16.5.2",
- "@polkadot/rpc-provider": "16.5.2",
- "@polkadot/types": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/rpc-provider": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-16.5.2.tgz",
- "integrity": "sha512-NEgGQUwOjlMb+83BAOCuWTNrVJ7zTCX2y828bh18XWOpF8sCltjrqYu6ZYaUucFa43emJMBlrm5M+jhJI37ofQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/keyring": "^13.5.8",
- "@polkadot/types": "16.5.2",
- "@polkadot/types-support": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "@polkadot/util-crypto": "^13.5.8",
- "@polkadot/x-fetch": "^13.5.8",
- "@polkadot/x-global": "^13.5.8",
- "@polkadot/x-ws": "^13.5.8",
- "eventemitter3": "^5.0.1",
- "mock-socket": "^9.3.1",
- "nock": "^13.5.5",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@substrate/connect": "0.8.11"
- }
- },
- "node_modules/@polkadot/types": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-16.5.2.tgz",
- "integrity": "sha512-Lsie9bCE/CxmxG76bpYnRU4/UcRTi5q9zYPtAjt9GbgPpUSr17mMqsWAitq+qFYF29Bxo9EvAbFkj9QxoFWNsA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/keyring": "^13.5.8",
- "@polkadot/types-augment": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/types-create": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "@polkadot/util-crypto": "^13.5.8",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/types-augment": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-16.5.2.tgz",
- "integrity": "sha512-Psl96Fiolg3lVpRO/gbnPqBwXw6RNNbsRotvjG39O6r6OFiwkB61hfhIfaRSa+rSETQFDBpfa5O60hFA8w6Jvw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/types": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/types-codec": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-16.5.2.tgz",
- "integrity": "sha512-buhc+JckA1Xcaq8GssSLqsb6hTdEV87zT8X2ZWdn4MGPDfpZKAQAqWON51dYD/thfqclW502G7UMu1SynwXPjg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/util": "^13.5.8",
- "@polkadot/x-bigint": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/types-create": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-16.5.2.tgz",
- "integrity": "sha512-4Y+ZC/qXP6wH2GizJqr6WGRyiVLbr1EwbKXLc6jkGe5UsEHczx/B4ZQq3z1SOkIOgOsZ2EyH7R6HmH15lJXI+Q==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/types-known": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-16.5.2.tgz",
- "integrity": "sha512-5gaZngP/PiR751ZjulkOuz4dbql+hOFpotGX4hxhKfw4fVr0P0tdPmgKkC7koev93j3y16NdzIVhA3HaoEmEIg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/networks": "^13.5.8",
- "@polkadot/types": "16.5.2",
- "@polkadot/types-codec": "16.5.2",
- "@polkadot/types-create": "16.5.2",
- "@polkadot/util": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/types-support": {
- "version": "16.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-16.5.2.tgz",
- "integrity": "sha512-l9cTx9aDY9Qk2QuYgzn/npuNzVYag3mfqQG4vUt7/6qtDHVVCfyreGUBz5RHueYjem7R4m9byh6aFh0m6ljZgg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/util": "^13.5.8",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/util": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-13.5.8.tgz",
- "integrity": "sha512-5xEfNoum/Ct+gYWN3AYvBQ8vq8KiS4HsY3BexPUPXvSXSx3Id/JYA5oFLYnkuRp8hwoQGjX0wqUJ6Hp8D8LHKw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-bigint": "13.5.8",
- "@polkadot/x-global": "13.5.8",
- "@polkadot/x-textdecoder": "13.5.8",
- "@polkadot/x-textencoder": "13.5.8",
- "@types/bn.js": "^5.1.6",
- "bn.js": "^5.2.1",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/util-crypto": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-13.5.8.tgz",
- "integrity": "sha512-3nnyqyZsrYkO3RkQn9opUnrJrQTR5/5LXgT3u/gCXrLPwjj6x8P7CZYJT2fn8aUVXbQe9iGM0SAs1mbG3aDCCQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@noble/curves": "^1.3.0",
- "@noble/hashes": "^1.3.3",
- "@polkadot/networks": "13.5.8",
- "@polkadot/util": "13.5.8",
- "@polkadot/wasm-crypto": "^7.5.2",
- "@polkadot/wasm-util": "^7.5.2",
- "@polkadot/x-bigint": "13.5.8",
- "@polkadot/x-randomvalues": "13.5.8",
- "@scure/base": "^1.1.7",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "13.5.8"
- }
- },
- "node_modules/@polkadot/wasm-bridge": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.5.2.tgz",
- "integrity": "sha512-P9qLGa+PFnBaaPLAYaYfzRV2kgavKJgzYXOIT4ESTeGfPyPQ51DWe4WKQACXHcZLJ2875okC0jHH9bu2ueUsQw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/wasm-util": "7.5.2",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "*",
- "@polkadot/x-randomvalues": "*"
- }
- },
- "node_modules/@polkadot/wasm-crypto": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.5.2.tgz",
- "integrity": "sha512-1/J+qu0D1R6Xe5AKZitTGQNmYCmWm+oYFXWx/YG0OjFmEDqMblBwcgh2skwqE83IR87DIwYjHrLt34UMuPx39A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/wasm-bridge": "7.5.2",
- "@polkadot/wasm-crypto-asmjs": "7.5.2",
- "@polkadot/wasm-crypto-init": "7.5.2",
- "@polkadot/wasm-crypto-wasm": "7.5.2",
- "@polkadot/wasm-util": "7.5.2",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "*",
- "@polkadot/x-randomvalues": "*"
- }
- },
- "node_modules/@polkadot/wasm-crypto-asmjs": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.5.2.tgz",
- "integrity": "sha512-bb5k2yPuvSu1iyhTyTs9w0X3CUC2tYyqXL9o1Pfi9yiwNtlRFP1RScjSbYMBP7lmibOJ466i1P26w4UYYV/P0g==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "*"
- }
- },
- "node_modules/@polkadot/wasm-crypto-init": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.5.2.tgz",
- "integrity": "sha512-mT+UVAjwDL8VW0pjAn1TjC3XdkaXm3WZ8vLwCjIeWnrsW33QCVLwGrcaUGWejrTTWAzZmfTGdtIDfaSM5QUSNQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/wasm-bridge": "7.5.2",
- "@polkadot/wasm-crypto-asmjs": "7.5.2",
- "@polkadot/wasm-crypto-wasm": "7.5.2",
- "@polkadot/wasm-util": "7.5.2",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "*",
- "@polkadot/x-randomvalues": "*"
- }
- },
- "node_modules/@polkadot/wasm-crypto-wasm": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.5.2.tgz",
- "integrity": "sha512-Tf2HvEJ//HnGalel/FaHfd8wvHYsqY0IYVu5nCeLmbo7HGNR+apEXKIJ7W0kcXg+2U7JhxpT8KspMJg+e3f0kA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/wasm-util": "7.5.2",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "*"
- }
- },
- "node_modules/@polkadot/wasm-util": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.5.2.tgz",
- "integrity": "sha512-DIKy6CMiPsbguU5nUHz/hnD05eZmkT7R/E70cotk+QMaQWT189syJ05Z/YGQD/JdPoRf4uVNA5xHCWLikmzwZQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "*"
- }
- },
- "node_modules/@polkadot/x-bigint": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-13.5.8.tgz",
- "integrity": "sha512-4ltTNgFDZoPnuQBrP7Z3m3imQ3xKb7jKScAT/Gy89h9siLYyJdZ+qawZfO1cll6fqYlka+k7USqGeyOEqoyCfg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-global": "13.5.8",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/x-fetch": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-13.5.8.tgz",
- "integrity": "sha512-htNuY8zFw5vzNS2mFm9P22oBJg7Az8Xbg3fMmR/A6ZDhAfxfM6IbX9pPHkNJY2Wng3tysrY5VMOUMb1IIrSf3w==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-global": "13.5.8",
- "node-fetch": "^3.3.2",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/x-global": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-13.5.8.tgz",
- "integrity": "sha512-KDK3CEG/RvfCu3w4HZ/iv6c49XrN5Hz/3mXUQdLfR+TFKADdNCoIhMZ9f7vHYgdnB9tlY9s6Dn2svY99h1wRiw==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/x-randomvalues": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-13.5.8.tgz",
- "integrity": "sha512-u9Nw5wP2mruo2AzRLWmK4KrYStsaTWH86H96O/6aRSsse6E3QCoqTzwDTDHBT05PWekbDNa7qwKmgKw4UNJfPw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-global": "13.5.8",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@polkadot/util": "13.5.8",
- "@polkadot/wasm-util": "*"
- }
- },
- "node_modules/@polkadot/x-textdecoder": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-13.5.8.tgz",
- "integrity": "sha512-Uzz6spRDzzQDQBN6PNpjz0HVp2kqhQVJRh1ShLP9rBg+nH4we9VGriWGG5stkgNKjRGT0Z7cvx0FupRQoNDU4A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-global": "13.5.8",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/x-textencoder": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-13.5.8.tgz",
- "integrity": "sha512-2jcVte6mUy+GXjpZsS7dFca8C2r8EGgaG5o7mVQZ+PjauD06O/UP2g48UuDJHGe1QCJN0f0WaoD+RNw9tOF2yQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-global": "13.5.8",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/x-ws": {
- "version": "13.5.8",
- "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-13.5.8.tgz",
- "integrity": "sha512-tEs69W3O7Y2lPGihOFWwSE91GkaMEAzJhkDouTfacBKwD6O2b1/Im97jBdxQBmi7kN3pAWGXXTk9sz8TCh30Ug==",
- "license": "Apache-2.0",
- "dependencies": {
- "@polkadot/x-global": "13.5.8",
- "tslib": "^2.8.0",
- "ws": "^8.18.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polkadot/x-ws/node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/@react-native-async-storage/async-storage": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.2.0.tgz",
- "integrity": "sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==",
- "license": "MIT",
- "dependencies": {
- "merge-options": "^3.0.4"
- },
- "peerDependencies": {
- "react-native": "^0.0.0-0 || >=0.65 <1.0"
- }
- },
- "node_modules/@react-native/assets-registry": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.81.5.tgz",
- "integrity": "sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==",
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.4"
- }
- },
- "node_modules/@react-native/babel-plugin-codegen": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz",
- "integrity": "sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.3",
- "@react-native/codegen": "0.81.5"
- },
- "engines": {
- "node": ">= 20.19.4"
- }
- },
- "node_modules/@react-native/babel-preset": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.81.5.tgz",
- "integrity": "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/plugin-proposal-export-default-from": "^7.24.7",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-default-from": "^7.24.7",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-transform-arrow-functions": "^7.24.7",
- "@babel/plugin-transform-async-generator-functions": "^7.25.4",
- "@babel/plugin-transform-async-to-generator": "^7.24.7",
- "@babel/plugin-transform-block-scoping": "^7.25.0",
- "@babel/plugin-transform-class-properties": "^7.25.4",
- "@babel/plugin-transform-classes": "^7.25.4",
- "@babel/plugin-transform-computed-properties": "^7.24.7",
- "@babel/plugin-transform-destructuring": "^7.24.8",
- "@babel/plugin-transform-flow-strip-types": "^7.25.2",
- "@babel/plugin-transform-for-of": "^7.24.7",
- "@babel/plugin-transform-function-name": "^7.25.1",
- "@babel/plugin-transform-literals": "^7.25.2",
- "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
- "@babel/plugin-transform-modules-commonjs": "^7.24.8",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
- "@babel/plugin-transform-numeric-separator": "^7.24.7",
- "@babel/plugin-transform-object-rest-spread": "^7.24.7",
- "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
- "@babel/plugin-transform-optional-chaining": "^7.24.8",
- "@babel/plugin-transform-parameters": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@babel/plugin-transform-private-property-in-object": "^7.24.7",
- "@babel/plugin-transform-react-display-name": "^7.24.7",
- "@babel/plugin-transform-react-jsx": "^7.25.2",
- "@babel/plugin-transform-react-jsx-self": "^7.24.7",
- "@babel/plugin-transform-react-jsx-source": "^7.24.7",
- "@babel/plugin-transform-regenerator": "^7.24.7",
- "@babel/plugin-transform-runtime": "^7.24.7",
- "@babel/plugin-transform-shorthand-properties": "^7.24.7",
- "@babel/plugin-transform-spread": "^7.24.7",
- "@babel/plugin-transform-sticky-regex": "^7.24.7",
- "@babel/plugin-transform-typescript": "^7.25.2",
- "@babel/plugin-transform-unicode-regex": "^7.24.7",
- "@babel/template": "^7.25.0",
- "@react-native/babel-plugin-codegen": "0.81.5",
- "babel-plugin-syntax-hermes-parser": "0.29.1",
- "babel-plugin-transform-flow-enums": "^0.0.2",
- "react-refresh": "^0.14.0"
- },
- "engines": {
- "node": ">= 20.19.4"
- },
- "peerDependencies": {
- "@babel/core": "*"
- }
- },
- "node_modules/@react-native/codegen": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.81.5.tgz",
- "integrity": "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/parser": "^7.25.3",
- "glob": "^7.1.1",
- "hermes-parser": "0.29.1",
- "invariant": "^2.2.4",
- "nullthrows": "^1.1.1",
- "yargs": "^17.6.2"
- },
- "engines": {
- "node": ">= 20.19.4"
- },
- "peerDependencies": {
- "@babel/core": "*"
- }
- },
- "node_modules/@react-native/codegen/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@react-native/codegen/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@react-native/codegen/node_modules/hermes-estree": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
- "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
- "license": "MIT"
- },
- "node_modules/@react-native/codegen/node_modules/hermes-parser": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
- "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.29.1"
- }
- },
- "node_modules/@react-native/codegen/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@react-native/community-cli-plugin": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.5.tgz",
- "integrity": "sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==",
- "license": "MIT",
- "dependencies": {
- "@react-native/dev-middleware": "0.81.5",
- "debug": "^4.4.0",
- "invariant": "^2.2.4",
- "metro": "^0.83.1",
- "metro-config": "^0.83.1",
- "metro-core": "^0.83.1",
- "semver": "^7.1.3"
- },
- "engines": {
- "node": ">= 20.19.4"
- },
- "peerDependencies": {
- "@react-native-community/cli": "*",
- "@react-native/metro-config": "*"
- },
- "peerDependenciesMeta": {
- "@react-native-community/cli": {
- "optional": true
- },
- "@react-native/metro-config": {
- "optional": true
- }
- }
- },
- "node_modules/@react-native/debugger-frontend": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz",
- "integrity": "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 20.19.4"
- }
- },
- "node_modules/@react-native/dev-middleware": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz",
- "integrity": "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==",
- "license": "MIT",
- "dependencies": {
- "@isaacs/ttlcache": "^1.4.1",
- "@react-native/debugger-frontend": "0.81.5",
- "chrome-launcher": "^0.15.2",
- "chromium-edge-launcher": "^0.2.0",
- "connect": "^3.6.5",
- "debug": "^4.4.0",
- "invariant": "^2.2.4",
- "nullthrows": "^1.1.1",
- "open": "^7.0.3",
- "serve-static": "^1.16.2",
- "ws": "^6.2.3"
- },
- "engines": {
- "node": ">= 20.19.4"
- }
- },
- "node_modules/@react-native/dev-middleware/node_modules/ws": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
- "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
- "license": "MIT",
- "dependencies": {
- "async-limiter": "~1.0.0"
- }
- },
- "node_modules/@react-native/gradle-plugin": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.81.5.tgz",
- "integrity": "sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==",
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.4"
- }
- },
- "node_modules/@react-native/js-polyfills": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.81.5.tgz",
- "integrity": "sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==",
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.4"
- }
- },
- "node_modules/@react-native/normalize-colors": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz",
- "integrity": "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==",
- "license": "MIT"
- },
- "node_modules/@react-navigation/bottom-tabs": {
- "version": "7.8.5",
- "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.8.5.tgz",
- "integrity": "sha512-Zm9UOTfEtBLL7Wm+JBc0v/lh72cen9a8WVN5KSCEN7EtiQIPXbQUZg1ktEzme600HhxvaNZzzSz0X+w2E5nG5w==",
- "license": "MIT",
- "dependencies": {
- "@react-navigation/elements": "^2.8.2",
- "color": "^4.2.3",
- "sf-symbols-typescript": "^2.1.0"
- },
- "peerDependencies": {
- "@react-navigation/native": "^7.1.20",
- "react": ">= 18.2.0",
- "react-native": "*",
- "react-native-safe-area-context": ">= 4.0.0",
- "react-native-screens": ">= 4.0.0"
- }
- },
- "node_modules/@react-navigation/core": {
- "version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.13.1.tgz",
- "integrity": "sha512-aPf1vjQhMytPC9CmJu28hT5eTaBJuqIf9T6IRICtap5HHgFLrsYizLZrg3D0H2AoPyOoijMPWzwf7VCBzfGvrg==",
- "license": "MIT",
- "dependencies": {
- "@react-navigation/routers": "^7.5.1",
- "escape-string-regexp": "^4.0.0",
- "fast-deep-equal": "^3.1.3",
- "nanoid": "^3.3.11",
- "query-string": "^7.1.3",
- "react-is": "^19.1.0",
- "use-latest-callback": "^0.2.4",
- "use-sync-external-store": "^1.5.0"
- },
- "peerDependencies": {
- "react": ">= 18.2.0"
- }
- },
- "node_modules/@react-navigation/core/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@react-navigation/core/node_modules/react-is": {
- "version": "19.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.0.tgz",
- "integrity": "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==",
- "license": "MIT"
- },
- "node_modules/@react-navigation/elements": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.8.2.tgz",
- "integrity": "sha512-K5NWIMar81oAoRAgLwrWcLpXzY2K5yG3gNU/56uyC12u+i5SyIVAv+ygP36UXvrNLzDigg8OdRSdEBb8ePqQtA==",
- "license": "MIT",
- "dependencies": {
- "color": "^4.2.3",
- "use-latest-callback": "^0.2.4",
- "use-sync-external-store": "^1.5.0"
- },
- "peerDependencies": {
- "@react-native-masked-view/masked-view": ">= 0.2.0",
- "@react-navigation/native": "^7.1.20",
- "react": ">= 18.2.0",
- "react-native": "*",
- "react-native-safe-area-context": ">= 4.0.0"
- },
- "peerDependenciesMeta": {
- "@react-native-masked-view/masked-view": {
- "optional": true
- }
- }
- },
- "node_modules/@react-navigation/native": {
- "version": "7.1.20",
- "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.20.tgz",
- "integrity": "sha512-15luFq+35M2IOMHgbTJ0XDkPY7gm3YlR3yQKTuOTOHs+EeAUX71DlUuqcWMRqB0tt+OT6HimDQR7OboTB0N30g==",
- "license": "MIT",
- "dependencies": {
- "@react-navigation/core": "^7.13.1",
- "escape-string-regexp": "^4.0.0",
- "fast-deep-equal": "^3.1.3",
- "nanoid": "^3.3.11",
- "use-latest-callback": "^0.2.4"
- },
- "peerDependencies": {
- "react": ">= 18.2.0",
- "react-native": "*"
- }
- },
- "node_modules/@react-navigation/native/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@react-navigation/routers": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.1.tgz",
- "integrity": "sha512-pxipMW/iEBSUrjxz2cDD7fNwkqR4xoi0E/PcfTQGCcdJwLoaxzab5kSadBLj1MTJyT0YRrOXL9umHpXtp+Dv4w==",
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.11"
- }
- },
- "node_modules/@react-navigation/stack": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.6.4.tgz",
- "integrity": "sha512-KweDIIFcSyG8x2ylyC1V+u6T5GpykPra9WoOOH7Ijoumvxuda6UETOoJPX5h/DUZKM5ve7mIfv7oXpbH9Ik/Jg==",
- "license": "MIT",
- "dependencies": {
- "@react-navigation/elements": "^2.8.2",
- "color": "^4.2.3",
- "use-latest-callback": "^0.2.4"
- },
- "peerDependencies": {
- "@react-navigation/native": "^7.1.20",
- "react": ">= 18.2.0",
- "react-native": "*",
- "react-native-gesture-handler": ">= 2.0.0",
- "react-native-safe-area-context": ">= 4.0.0",
- "react-native-screens": ">= 4.0.0"
- }
- },
- "node_modules/@scure/base": {
- "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/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "license": "MIT"
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
- "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "node_modules/@substrate/connect": {
- "version": "0.8.11",
- "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.11.tgz",
- "integrity": "sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==",
- "deprecated": "versions below 1.x are no longer maintained",
- "license": "GPL-3.0-only",
- "optional": true,
- "dependencies": {
- "@substrate/connect-extension-protocol": "^2.0.0",
- "@substrate/connect-known-chains": "^1.1.5",
- "@substrate/light-client-extension-helpers": "^1.0.0",
- "smoldot": "2.0.26"
- }
- },
- "node_modules/@substrate/connect-extension-protocol": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.2.tgz",
- "integrity": "sha512-t66jwrXA0s5Goq82ZtjagLNd7DPGCNjHeehRlE/gcJmJ+G56C0W+2plqOMRicJ8XGR1/YFnUSEqUFiSNbjGrAA==",
- "license": "GPL-3.0-only",
- "optional": true
- },
- "node_modules/@substrate/connect-known-chains": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.10.3.tgz",
- "integrity": "sha512-OJEZO1Pagtb6bNE3wCikc2wrmvEU5x7GxFFLqqbz1AJYYxSlrPCGu4N2og5YTExo4IcloNMQYFRkBGue0BKZ4w==",
- "license": "GPL-3.0-only",
- "optional": true
- },
- "node_modules/@substrate/light-client-extension-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-1.0.0.tgz",
- "integrity": "sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@polkadot-api/json-rpc-provider": "^0.0.1",
- "@polkadot-api/json-rpc-provider-proxy": "^0.1.0",
- "@polkadot-api/observable-client": "^0.3.0",
- "@polkadot-api/substrate-client": "^0.1.2",
- "@substrate/connect-extension-protocol": "^2.0.0",
- "@substrate/connect-known-chains": "^1.1.5",
- "rxjs": "^7.8.1"
- },
- "peerDependencies": {
- "smoldot": "2.x"
- }
- },
- "node_modules/@substrate/ss58-registry": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz",
- "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@testing-library/jest-native": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-native/-/jest-native-5.4.3.tgz",
- "integrity": "sha512-/sSDGaOuE+PJ1Z9Kp4u7PQScSVVXGud59I/qsBFFJvIbcn4P6yYw6cBnBmbPF+X9aRIsTJRDl6gzw5ZkJNm66w==",
- "deprecated": "DEPRECATED: This package is no longer maintained.\nPlease use the built-in Jest matchers available in @testing-library/react-native v12.4+.\n\nSee migration guide: https://callstack.github.io/react-native-testing-library/docs/migration/jest-matchers",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.1.2",
- "jest-diff": "^29.0.1",
- "jest-matcher-utils": "^29.0.1",
- "pretty-format": "^29.0.3",
- "redent": "^3.0.0"
- },
- "peerDependencies": {
- "react": ">=16.0.0",
- "react-native": ">=0.59",
- "react-test-renderer": ">=16.0.0"
- }
- },
- "node_modules/@testing-library/jest-native/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@testing-library/jest-native/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@testing-library/jest-native/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@testing-library/jest-native/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@testing-library/jest-native/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@testing-library/jest-native/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@testing-library/react-native": {
- "version": "13.3.3",
- "resolved": "https://registry.npmjs.org/@testing-library/react-native/-/react-native-13.3.3.tgz",
- "integrity": "sha512-k6Mjsd9dbZgvY4Bl7P1NIpePQNi+dfYtlJ5voi9KQlynxSyQkfOgJmYGCYmw/aSgH/rUcFvG8u5gd4npzgRDyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-matcher-utils": "^30.0.5",
- "picocolors": "^1.1.1",
- "pretty-format": "^30.0.5",
- "redent": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "jest": ">=29.0.0",
- "react": ">=18.2.0",
- "react-native": ">=0.71",
- "react-test-renderer": ">=18.2.0"
- },
- "peerDependenciesMeta": {
- "jest": {
- "optional": true
- }
- }
- },
- "node_modules/@testing-library/react-native/node_modules/@jest/schemas": {
- "version": "30.0.5",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
- "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.34.0"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/@sinclair/typebox": {
- "version": "0.34.41",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
- "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@testing-library/react-native/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@testing-library/react-native/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/jest-diff": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
- "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/diff-sequences": "30.0.1",
- "@jest/get-type": "30.1.0",
- "chalk": "^4.1.2",
- "pretty-format": "30.2.0"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/jest-matcher-utils": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
- "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/get-type": "30.1.0",
- "chalk": "^4.1.2",
- "jest-diff": "30.2.0",
- "pretty-format": "30.2.0"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/pretty-format": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
- "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "30.0.5",
- "ansi-styles": "^5.2.0",
- "react-is": "^18.3.1"
- },
- "engines": {
- "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@testing-library/react-native/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
- "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
- "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.28.2"
- }
- },
- "node_modules/@types/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/eslint": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
- "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
- "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "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"
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.9",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/hammerjs": {
- "version": "2.0.46",
- "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz",
- "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
- "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "license": "MIT"
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
- "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
- "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/jest": {
- "version": "29.5.12",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz",
- "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expect": "^29.0.0",
- "pretty-format": "^29.0.0"
- }
- },
- "node_modules/@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "parse5": "^7.0.0"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "24.10.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
- "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~7.16.0"
- }
- },
- "node_modules/@types/react": {
- "version": "19.1.17",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz",
- "integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==",
- "devOptional": true,
- "license": "MIT",
- "dependencies": {
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
- "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
- "license": "MIT"
- },
- "node_modules/@types/tough-cookie": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
- "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/yargs": {
- "version": "17.0.34",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.34.tgz",
- "integrity": "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==",
- "license": "MIT",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
- "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
- "license": "MIT"
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz",
- "integrity": "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.47.0",
- "@typescript-eslint/type-utils": "8.47.0",
- "@typescript-eslint/utils": "8.47.0",
- "@typescript-eslint/visitor-keys": "8.47.0",
- "graphemer": "^1.4.0",
- "ignore": "^7.0.0",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^8.47.0",
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.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.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.47.0.tgz",
- "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.47.0",
- "@typescript-eslint/types": "8.47.0",
- "@typescript-eslint/typescript-estree": "8.47.0",
- "@typescript-eslint/visitor-keys": "8.47.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": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.47.0.tgz",
- "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.47.0",
- "@typescript-eslint/types": "^8.47.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 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz",
- "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.47.0",
- "@typescript-eslint/visitor-keys": "8.47.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.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz",
- "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==",
- "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 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz",
- "integrity": "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.47.0",
- "@typescript-eslint/typescript-estree": "8.47.0",
- "@typescript-eslint/utils": "8.47.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.47.0.tgz",
- "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz",
- "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.47.0",
- "@typescript-eslint/tsconfig-utils": "8.47.0",
- "@typescript-eslint/types": "8.47.0",
- "@typescript-eslint/visitor-keys": "8.47.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.1.0"
- },
- "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 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.47.0.tgz",
- "integrity": "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.47.0",
- "@typescript-eslint/types": "8.47.0",
- "@typescript-eslint/typescript-estree": "8.47.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz",
- "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.47.0",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "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": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
- "license": "ISC"
- },
- "node_modules/@urql/core": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.2.0.tgz",
- "integrity": "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==",
- "license": "MIT",
- "dependencies": {
- "@0no-co/graphql.web": "^1.0.13",
- "wonka": "^6.3.2"
- }
- },
- "node_modules/@urql/exchange-retry": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.2.tgz",
- "integrity": "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==",
- "license": "MIT",
- "dependencies": {
- "@urql/core": "^5.1.2",
- "wonka": "^6.3.2"
- },
- "peerDependencies": {
- "@urql/core": "^5.0.0"
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
- "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
- "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
- "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
- "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
- "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.13.2",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
- "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
- "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/wasm-gen": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
- "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
- "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
- "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
- "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/helper-wasm-section": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-opt": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1",
- "@webassemblyjs/wast-printer": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
- "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
- "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
- "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
- "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@xmldom/xmldom": {
- "version": "0.8.11",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
- "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "peer": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true
- },
- "node_modules/abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "deprecated": "Use your platform's native atob() and btoa() methods instead",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "license": "MIT",
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "license": "MIT",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
- },
- "node_modules/acorn-import-phases": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
- "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=10.13.0"
- },
- "peerDependencies": {
- "acorn": "^8.14.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-loose": {
- "version": "8.5.2",
- "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.5.2.tgz",
- "integrity": "sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.15.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
- "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.11.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
- "node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/anser": {
- "version": "1.4.10",
- "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
- "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==",
- "license": "MIT"
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
- "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "is-array-buffer": "^3.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-includes": {
- "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.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "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"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.findlast": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
- "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flat": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
- "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
- "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.tosorted": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
- "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
- "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "is-array-buffer": "^3.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
- "license": "MIT"
- },
- "node_modules/async-function": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
- "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
- "license": "MIT"
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
- "license": "MIT",
- "dependencies": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
- }
- },
- "node_modules/babel-jest/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/babel-jest/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/babel-jest/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/babel-jest/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/babel-jest/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-jest/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz",
- "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==",
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.27.7",
- "@babel/helper-define-polyfill-provider": "^0.6.5",
- "semver": "^6.3.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
- "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.5",
- "core-js-compat": "^3.43.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz",
- "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.5"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-react-compiler": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz",
- "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.26.0"
- }
- },
- "node_modules/babel-plugin-react-native-web": {
- "version": "0.21.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz",
- "integrity": "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==",
- "license": "MIT"
- },
- "node_modules/babel-plugin-syntax-hermes-parser": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz",
- "integrity": "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==",
- "license": "MIT",
- "dependencies": {
- "hermes-parser": "0.29.1"
- }
- },
- "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-estree": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
- "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
- "license": "MIT"
- },
- "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
- "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.29.1"
- }
- },
- "node_modules/babel-plugin-transform-flow-enums": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
- "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/plugin-syntax-flow": "^7.12.1"
- }
- },
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
- "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
- "license": "MIT",
- "dependencies": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-import-attributes": "^7.24.7",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0 || ^8.0.0-0"
- }
- },
- "node_modules/babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
- "license": "MIT",
- "dependencies": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/baseline-browser-mapping": {
- "version": "2.8.28",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz",
- "integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==",
- "license": "Apache-2.0",
- "bin": {
- "baseline-browser-mapping": "dist/cli.js"
- }
- },
- "node_modules/better-opn": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
- "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
- "license": "MIT",
- "dependencies": {
- "open": "^8.0.4"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/better-opn/node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
- "license": "MIT",
- "dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/big-integer": {
- "version": "1.6.52",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
- "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
- "license": "Unlicense",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/bn.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz",
- "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==",
- "license": "MIT"
- },
- "node_modules/bplist-creator": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
- "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==",
- "license": "MIT",
- "dependencies": {
- "stream-buffers": "2.2.x"
- }
- },
- "node_modules/bplist-parser": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
- "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
- "license": "MIT",
- "dependencies": {
- "big-integer": "1.6.x"
- },
- "engines": {
- "node": ">= 5.10.0"
- }
- },
- "node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.28.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz",
- "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "baseline-browser-mapping": "^2.8.25",
- "caniuse-lite": "^1.0.30001754",
- "electron-to-chromium": "^1.5.249",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.1.4"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "license": "MIT"
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001754",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz",
- "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "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==",
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/chrome-launcher": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
- "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node": "*",
- "escape-string-regexp": "^4.0.0",
- "is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0"
- },
- "bin": {
- "print-chrome-path": "bin/print-chrome-path.js"
- },
- "engines": {
- "node": ">=12.13.0"
- }
- },
- "node_modules/chrome-launcher/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
- "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/chromium-edge-launcher": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz",
- "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node": "*",
- "escape-string-regexp": "^4.0.0",
- "is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0",
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- }
- },
- "node_modules/chromium-edge-launcher/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "license": "MIT"
- },
- "node_modules/cjs-module-lexer": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
- "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cli-spinners": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
- "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/cliui/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/cliui/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/cliui/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/cliui/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/cliui/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/collect-v8-coverage": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
- "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/color": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1",
- "color-string": "^1.9.0"
- },
- "engines": {
- "node": ">=12.5.0"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "license": "MIT"
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "license": "MIT",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/color/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "license": "MIT",
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
- "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "compressible": "~2.0.18",
- "debug": "2.6.9",
- "negotiator": "~0.6.4",
- "on-headers": "~1.1.0",
- "safe-buffer": "5.2.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/compression/node_modules/negotiator": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
- "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "license": "MIT"
- },
- "node_modules/connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/connect/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/connect/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "license": "MIT"
- },
- "node_modules/core-js-compat": {
- "version": "3.46.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz",
- "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.26.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- },
- "bin": {
- "create-jest": "bin/create-jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/create-jest/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/create-jest/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/create-jest/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/create-jest/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/create-jest/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/create-jest/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssom": "~0.3.6"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/csstype": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.0.tgz",
- "integrity": "sha512-si++xzRAY9iPp60roQiFta7OFbhrgvcthrhlNAGeQptSY25uJjkfUV8OArC3KLocB8JT8ohz+qgxWCmz8RhjIg==",
- "devOptional": true,
- "license": "MIT"
- },
- "node_modules/data-uri-to-buffer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
- "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/data-view-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
- "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
- "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/inspect-js"
- }
- },
- "node_modules/data-view-byte-offset": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
- "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decimal.js": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
- "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/decode-uri-component": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
- "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/dedent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
- "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "babel-plugin-macros": "^3.1.0"
- },
- "peerDependenciesMeta": {
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "license": "MIT",
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "license": "MIT",
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "deprecated": "Use your platform's native DOMException instead",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/domexception/node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/dotenv": {
- "version": "16.4.7",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
- "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/dotenv-expand": {
- "version": "11.0.7",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz",
- "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "dotenv": "^16.4.5"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "license": "MIT"
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "license": "MIT"
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.252",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.252.tgz",
- "integrity": "sha512-53uTpjtRgS7gjIxZ4qCgFdNO2q+wJt/Z8+xAvxbCqXPJrY6h7ighUkadQmNMXH96crtpa6gPFNP7BF4UBGDuaA==",
- "license": "ISC"
- },
- "node_modules/emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "license": "MIT"
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.18.3",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
- "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/env-editor": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
- "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
- "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/error-ex/node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/error-stack-parser": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
- "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
- "license": "MIT",
- "dependencies": {
- "stackframe": "^1.3.4"
- }
- },
- "node_modules/es-abstract": {
- "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": {
- "array-buffer-byte-length": "^1.0.2",
- "arraybuffer.prototype.slice": "^1.0.4",
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "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.1.1",
- "es-set-tostringtag": "^2.1.0",
- "es-to-primitive": "^1.3.0",
- "function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.3.0",
- "get-proto": "^1.0.1",
- "get-symbol-description": "^1.1.0",
- "globalthis": "^1.0.4",
- "gopd": "^1.2.0",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "internal-slot": "^1.1.0",
- "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.1",
- "math-intrinsics": "^1.1.0",
- "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.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",
- "typed-array-buffer": "^1.0.3",
- "typed-array-byte-length": "^1.0.3",
- "typed-array-byte-offset": "^1.0.4",
- "typed-array-length": "^1.0.7",
- "unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.19"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-iterator-helpers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
- "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
- "es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.6",
- "globalthis": "^1.0.4",
- "gopd": "^1.2.0",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.2.0",
- "has-symbols": "^1.1.0",
- "internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.4",
- "safe-array-concat": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
- "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-shim-unscopables": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
- "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
- "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.2.7",
- "is-date-object": "^1.0.5",
- "is-symbol": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "license": "MIT"
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/escodegen": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
- "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/escodegen/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint": {
- "version": "9.39.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz",
- "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.8.0",
- "@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.21.1",
- "@eslint/config-helpers": "^0.4.2",
- "@eslint/core": "^0.17.0",
- "@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.39.1",
- "@eslint/plugin-kit": "^0.4.1",
- "@humanfs/node": "^0.16.6",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.4.2",
- "@types/estree": "^1.0.6",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.6",
- "debug": "^4.3.2",
- "escape-string-regexp": "^4.0.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",
- "file-entry-cache": "^8.0.0",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://eslint.org/donate"
- },
- "peerDependencies": {
- "jiti": "*"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.37.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
- "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.8",
- "array.prototype.findlast": "^1.2.5",
- "array.prototype.flatmap": "^1.3.3",
- "array.prototype.tosorted": "^1.1.4",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.2.1",
- "estraverse": "^5.3.0",
- "hasown": "^2.0.2",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.9",
- "object.fromentries": "^2.0.8",
- "object.values": "^1.2.1",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.5",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.12",
- "string.prototype.repeat": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
- }
- },
- "node_modules/eslint-plugin-react-hooks": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz",
- "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.24.4",
- "@babel/parser": "^7.24.4",
- "hermes-parser": "^0.25.1",
- "zod": "^3.25.0 || ^4.0.0",
- "zod-validation-error": "^3.5.0 || ^4.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
- }
- },
- "node_modules/eslint-plugin-react-hooks/node_modules/hermes-estree": {
- "version": "0.25.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
- "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/eslint-plugin-react-hooks/node_modules/hermes-parser": {
- "version": "0.25.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz",
- "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.25.1"
- }
- },
- "node_modules/eslint-plugin-react-native": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-5.0.0.tgz",
- "integrity": "sha512-VyWlyCC/7FC/aONibOwLkzmyKg4j9oI8fzrk9WYNs4I8/m436JuOTAFwLvEn1CVvc7La4cPfbCyspP4OYpP52Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-plugin-react-native-globals": "^0.1.1"
- },
- "peerDependencies": {
- "eslint": "^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
- }
- },
- "node_modules/eslint-plugin-react-native-globals": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz",
- "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/eslint-plugin-react/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-scope": {
- "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": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/eslint/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/eslint-visitor-keys": {
- "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": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/espree": {
- "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.15.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "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": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eventemitter3": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
- "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
- "license": "MIT"
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/exec-async": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz",
- "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==",
- "license": "MIT"
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/execa/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/execa/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/execa/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/expo": {
- "version": "54.0.23",
- "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.23.tgz",
- "integrity": "sha512-b4uQoiRwQ6nwqsT2709RS15CWYNGF3eJtyr1KyLw9WuMAK7u4jjofkhRiO0+3o1C2NbV+WooyYTOZGubQQMBaQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.20.0",
- "@expo/cli": "54.0.16",
- "@expo/config": "~12.0.10",
- "@expo/config-plugins": "~54.0.2",
- "@expo/devtools": "0.1.7",
- "@expo/fingerprint": "0.15.3",
- "@expo/metro": "~54.1.0",
- "@expo/metro-config": "54.0.9",
- "@expo/vector-icons": "^15.0.3",
- "@ungap/structured-clone": "^1.3.0",
- "babel-preset-expo": "~54.0.7",
- "expo-asset": "~12.0.9",
- "expo-constants": "~18.0.10",
- "expo-file-system": "~19.0.17",
- "expo-font": "~14.0.9",
- "expo-keep-awake": "~15.0.7",
- "expo-modules-autolinking": "3.0.21",
- "expo-modules-core": "3.0.25",
- "pretty-format": "^29.7.0",
- "react-refresh": "^0.14.2",
- "whatwg-url-without-unicode": "8.0.0-3"
- },
- "bin": {
- "expo": "bin/cli",
- "expo-modules-autolinking": "bin/autolinking",
- "fingerprint": "bin/fingerprint"
- },
- "peerDependencies": {
- "@expo/dom-webview": "*",
- "@expo/metro-runtime": "*",
- "react": "*",
- "react-native": "*",
- "react-native-webview": "*"
- },
- "peerDependenciesMeta": {
- "@expo/dom-webview": {
- "optional": true
- },
- "@expo/metro-runtime": {
- "optional": true
- },
- "react-native-webview": {
- "optional": true
- }
- }
- },
- "node_modules/expo-linear-gradient": {
- "version": "15.0.7",
- "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-15.0.7.tgz",
- "integrity": "sha512-yF+y+9Shpr/OQFfy/wglB/0bykFMbwHBTuMRa5Of/r2P1wbkcacx8rg0JsUWkXH/rn2i2iWdubyqlxSJa3ggZA==",
- "license": "MIT",
- "peerDependencies": {
- "expo": "*",
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo-local-authentication": {
- "version": "17.0.7",
- "resolved": "https://registry.npmjs.org/expo-local-authentication/-/expo-local-authentication-17.0.7.tgz",
- "integrity": "sha512-yRWcgYn/OIwxEDEk7cM7tRjQSHaTp5hpKwzq+g9NmSMJ1etzUzt0yGzkDiOjObj3YqFo0ucyDJ8WfanLhZDtMw==",
- "license": "MIT",
- "dependencies": {
- "invariant": "^2.2.4"
- },
- "peerDependencies": {
- "expo": "*"
- }
- },
- "node_modules/expo-modules-autolinking": {
- "version": "3.0.21",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.21.tgz",
- "integrity": "sha512-pOtPDLln3Ju8DW1zRW4OwZ702YqZ8g+kM/tEY1sWfv22kWUtxkvK+ytRDRpRdnKEnC28okbhWqeMnmVkSFzP6Q==",
- "license": "MIT",
- "dependencies": {
- "@expo/spawn-async": "^1.7.2",
- "chalk": "^4.1.0",
- "commander": "^7.2.0",
- "require-from-string": "^2.0.2",
- "resolve-from": "^5.0.0"
- },
- "bin": {
- "expo-modules-autolinking": "bin/expo-modules-autolinking.js"
- }
- },
- "node_modules/expo-modules-autolinking/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/expo-modules-autolinking/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/expo-modules-autolinking/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/expo-modules-autolinking/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/expo-modules-autolinking/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo-modules-autolinking/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo-modules-core": {
- "version": "3.0.25",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.25.tgz",
- "integrity": "sha512-0P8PT8UV6c5/+p8zeVM/FXvBgn/ErtGcMaasqUgbzzBUg94ktbkIrij9t9reGCrir03BYt/Bcpv+EQtYC8JOug==",
- "license": "MIT",
- "dependencies": {
- "invariant": "^2.2.4"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo-secure-store": {
- "version": "15.0.7",
- "resolved": "https://registry.npmjs.org/expo-secure-store/-/expo-secure-store-15.0.7.tgz",
- "integrity": "sha512-9q7+G1Zxr5P6J5NRIlm86KulvmYwc6UnQlYPjQLDu1drDnerz6AT6l884dPu29HgtDTn4rR0heYeeGFhMKM7/Q==",
- "license": "MIT",
- "peerDependencies": {
- "expo": "*"
- }
- },
- "node_modules/expo-server": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-1.0.4.tgz",
- "integrity": "sha512-IN06r3oPxFh3plSXdvBL7dx0x6k+0/g0bgxJlNISs6qL5Z+gyPuWS750dpTzOeu37KyBG0RcyO9cXUKzjYgd4A==",
- "license": "MIT",
- "engines": {
- "node": ">=20.16.0"
- }
- },
- "node_modules/expo-status-bar": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-3.0.8.tgz",
- "integrity": "sha512-L248XKPhum7tvREoS1VfE0H6dPCaGtoUWzRsUv7hGKdiB4cus33Rc0sxkWkoQ77wE8stlnUlL5lvmT0oqZ3ZBw==",
- "license": "MIT",
- "dependencies": {
- "react-native-is-edge-to-edge": "^1.2.1"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/expo/node_modules/@expo/cli": {
- "version": "54.0.16",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.16.tgz",
- "integrity": "sha512-hY/OdRaJMs5WsVPuVSZ+RLH3VObJmL/pv5CGCHEZHN2PxZjSZSdctyKV8UcFBXTF0yIKNAJ9XLs1dlNYXHh4Cw==",
- "license": "MIT",
- "dependencies": {
- "@0no-co/graphql.web": "^1.0.8",
- "@expo/code-signing-certificates": "^0.0.5",
- "@expo/config": "~12.0.10",
- "@expo/config-plugins": "~54.0.2",
- "@expo/devcert": "^1.1.2",
- "@expo/env": "~2.0.7",
- "@expo/image-utils": "^0.8.7",
- "@expo/json-file": "^10.0.7",
- "@expo/mcp-tunnel": "~0.1.0",
- "@expo/metro": "~54.1.0",
- "@expo/metro-config": "~54.0.9",
- "@expo/osascript": "^2.3.7",
- "@expo/package-manager": "^1.9.8",
- "@expo/plist": "^0.4.7",
- "@expo/prebuild-config": "^54.0.6",
- "@expo/schema-utils": "^0.1.7",
- "@expo/spawn-async": "^1.7.2",
- "@expo/ws-tunnel": "^1.0.1",
- "@expo/xcpretty": "^4.3.0",
- "@react-native/dev-middleware": "0.81.5",
- "@urql/core": "^5.0.6",
- "@urql/exchange-retry": "^1.3.0",
- "accepts": "^1.3.8",
- "arg": "^5.0.2",
- "better-opn": "~3.0.2",
- "bplist-creator": "0.1.0",
- "bplist-parser": "^0.3.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.3.0",
- "compression": "^1.7.4",
- "connect": "^3.7.0",
- "debug": "^4.3.4",
- "env-editor": "^0.4.1",
- "expo-server": "^1.0.4",
- "freeport-async": "^2.0.0",
- "getenv": "^2.0.0",
- "glob": "^10.4.2",
- "lan-network": "^0.1.6",
- "minimatch": "^9.0.0",
- "node-forge": "^1.3.1",
- "npm-package-arg": "^11.0.0",
- "ora": "^3.4.0",
- "picomatch": "^3.0.1",
- "pretty-bytes": "^5.6.0",
- "pretty-format": "^29.7.0",
- "progress": "^2.0.3",
- "prompts": "^2.3.2",
- "qrcode-terminal": "0.11.0",
- "require-from-string": "^2.0.2",
- "requireg": "^0.2.2",
- "resolve": "^1.22.2",
- "resolve-from": "^5.0.0",
- "resolve.exports": "^2.0.3",
- "semver": "^7.6.0",
- "send": "^0.19.0",
- "slugify": "^1.3.4",
- "source-map-support": "~0.5.21",
- "stacktrace-parser": "^0.1.10",
- "structured-headers": "^0.4.1",
- "tar": "^7.4.3",
- "terminal-link": "^2.1.1",
- "undici": "^6.18.2",
- "wrap-ansi": "^7.0.0",
- "ws": "^8.12.1"
- },
- "bin": {
- "expo-internal": "build/bin/cli"
- },
- "peerDependencies": {
- "expo": "*",
- "expo-router": "*",
- "react-native": "*"
- },
- "peerDependenciesMeta": {
- "expo-router": {
- "optional": true
- },
- "react-native": {
- "optional": true
- }
- }
- },
- "node_modules/expo/node_modules/@expo/cli/node_modules/@expo/prebuild-config": {
- "version": "54.0.6",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-54.0.6.tgz",
- "integrity": "sha512-xowuMmyPNy+WTNq+YX0m0EFO/Knc68swjThk4dKivgZa8zI1UjvFXOBIOp8RX4ljCXLzwxQJM5oBBTvyn+59ZA==",
- "license": "MIT",
- "dependencies": {
- "@expo/config": "~12.0.10",
- "@expo/config-plugins": "~54.0.2",
- "@expo/config-types": "^54.0.8",
- "@expo/image-utils": "^0.8.7",
- "@expo/json-file": "^10.0.7",
- "@react-native/normalize-colors": "0.81.5",
- "debug": "^4.3.1",
- "resolve-from": "^5.0.0",
- "semver": "^7.6.0",
- "xml2js": "0.6.0"
- },
- "peerDependencies": {
- "expo": "*"
- }
- },
- "node_modules/expo/node_modules/@expo/metro-config": {
- "version": "54.0.9",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.9.tgz",
- "integrity": "sha512-CRI4WgFXrQ2Owyr8q0liEBJveUIF9DcYAKadMRsJV7NxGNBdrIIKzKvqreDfsGiRqivbLsw6UoNb3UE7/SvPfg==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.20.0",
- "@babel/core": "^7.20.0",
- "@babel/generator": "^7.20.5",
- "@expo/config": "~12.0.10",
- "@expo/env": "~2.0.7",
- "@expo/json-file": "~10.0.7",
- "@expo/metro": "~54.1.0",
- "@expo/spawn-async": "^1.7.2",
- "browserslist": "^4.25.0",
- "chalk": "^4.1.0",
- "debug": "^4.3.2",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "getenv": "^2.0.0",
- "glob": "^10.4.2",
- "hermes-parser": "^0.29.1",
- "jsc-safe-url": "^0.2.4",
- "lightningcss": "^1.30.1",
- "minimatch": "^9.0.0",
- "postcss": "~8.4.32",
- "resolve-from": "^5.0.0"
- },
- "peerDependencies": {
- "expo": "*"
- },
- "peerDependenciesMeta": {
- "expo": {
- "optional": true
- }
- }
- },
- "node_modules/expo/node_modules/@expo/vector-icons": {
- "version": "15.0.3",
- "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-15.0.3.tgz",
- "integrity": "sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==",
- "license": "MIT",
- "peerDependencies": {
- "expo-font": ">=14.0.4",
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/expo/node_modules/babel-preset-expo": {
- "version": "54.0.7",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-54.0.7.tgz",
- "integrity": "sha512-JENWk0bvxW4I1ftveO8GRtX2t2TH6N4Z0TPvIHxroZ/4SswUfyNsUNbbP7Fm4erj3ar/JHGri5kTZ+s3xdjHZw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/plugin-proposal-decorators": "^7.12.9",
- "@babel/plugin-proposal-export-default-from": "^7.24.7",
- "@babel/plugin-syntax-export-default-from": "^7.24.7",
- "@babel/plugin-transform-class-static-block": "^7.27.1",
- "@babel/plugin-transform-export-namespace-from": "^7.25.9",
- "@babel/plugin-transform-flow-strip-types": "^7.25.2",
- "@babel/plugin-transform-modules-commonjs": "^7.24.8",
- "@babel/plugin-transform-object-rest-spread": "^7.24.7",
- "@babel/plugin-transform-parameters": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@babel/plugin-transform-private-property-in-object": "^7.24.7",
- "@babel/plugin-transform-runtime": "^7.24.7",
- "@babel/preset-react": "^7.22.15",
- "@babel/preset-typescript": "^7.23.0",
- "@react-native/babel-preset": "0.81.5",
- "babel-plugin-react-compiler": "^1.0.0",
- "babel-plugin-react-native-web": "~0.21.0",
- "babel-plugin-syntax-hermes-parser": "^0.29.1",
- "babel-plugin-transform-flow-enums": "^0.0.2",
- "debug": "^4.3.4",
- "resolve-from": "^5.0.0"
- },
- "peerDependencies": {
- "@babel/runtime": "^7.20.0",
- "expo": "*",
- "react-refresh": ">=0.14.0 <1.0.0"
- },
- "peerDependenciesMeta": {
- "@babel/runtime": {
- "optional": true
- },
- "expo": {
- "optional": true
- }
- }
- },
- "node_modules/expo/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/expo/node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/expo/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/expo/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/expo/node_modules/expo-asset": {
- "version": "12.0.9",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.9.tgz",
- "integrity": "sha512-vrdRoyhGhBmd0nJcssTSk1Ypx3Mbn/eXaaBCQVkL0MJ8IOZpAObAjfD5CTy8+8RofcHEQdh3wwZVCs7crvfOeg==",
- "license": "MIT",
- "dependencies": {
- "@expo/image-utils": "^0.8.7",
- "expo-constants": "~18.0.9"
- },
- "peerDependencies": {
- "expo": "*",
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo/node_modules/expo-constants": {
- "version": "18.0.10",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.10.tgz",
- "integrity": "sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw==",
- "license": "MIT",
- "dependencies": {
- "@expo/config": "~12.0.10",
- "@expo/env": "~2.0.7"
- },
- "peerDependencies": {
- "expo": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo/node_modules/expo-file-system": {
- "version": "19.0.17",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.17.tgz",
- "integrity": "sha512-WwaS01SUFrxBnExn87pg0sCTJjZpf2KAOzfImG0o8yhkU7fbYpihpl/oocXBEsNbj58a8hVt1Y4CVV5c1tzu/g==",
- "license": "MIT",
- "peerDependencies": {
- "expo": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo/node_modules/expo-font": {
- "version": "14.0.9",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.9.tgz",
- "integrity": "sha512-xCoQbR/36qqB6tew/LQ6GWICpaBmHLhg/Loix5Rku/0ZtNaXMJv08M9o1AcrdiGTn/Xf/BnLu6DgS45cWQEHZg==",
- "license": "MIT",
- "dependencies": {
- "fontfaceobserver": "^2.1.0"
- },
- "peerDependencies": {
- "expo": "*",
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/expo/node_modules/expo-keep-awake": {
- "version": "15.0.7",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-15.0.7.tgz",
- "integrity": "sha512-CgBNcWVPnrIVII5G54QDqoE125l+zmqR4HR8q+MQaCfHet+dYpS5vX5zii/RMayzGN4jPgA4XYIQ28ePKFjHoA==",
- "license": "MIT",
- "peerDependencies": {
- "expo": "*",
- "react": "*"
- }
- },
- "node_modules/expo/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo/node_modules/hermes-estree": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz",
- "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==",
- "license": "MIT"
- },
- "node_modules/expo/node_modules/hermes-parser": {
- "version": "0.29.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz",
- "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==",
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.29.1"
- }
- },
- "node_modules/expo/node_modules/picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/expo/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/expo/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/expo/node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/exponential-backoff": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz",
- "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==",
- "license": "Apache-2.0"
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "license": "MIT"
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "license": "MIT"
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
- "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fastify"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fastify"
- }
- ],
- "license": "BSD-3-Clause",
- "peer": true
- },
- "node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "license": "Apache-2.0",
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/fetch-blob": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
- "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "node-domexception": "^1.0.0",
- "web-streams-polyfill": "^3.0.3"
- },
- "engines": {
- "node": "^12.20 || >= 14.13"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/filter-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
- "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/flat-cache": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
- "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/flow-enums-runtime": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz",
- "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==",
- "license": "MIT"
- },
- "node_modules/fontfaceobserver": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
- "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==",
- "license": "BSD-2-Clause"
- },
- "node_modules/for-each": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
- "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.2.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
- "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.6",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
- "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
- "dev": true,
- "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": {
- "node": ">= 6"
- }
- },
- "node_modules/formdata-polyfill": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
- "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
- "license": "MIT",
- "dependencies": {
- "fetch-blob": "^3.1.2"
- },
- "engines": {
- "node": ">=12.20.0"
- }
- },
- "node_modules/freeport-async": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz",
- "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
- "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "functions-have-names": "^1.2.3",
- "hasown": "^2.0.2",
- "is-callable": "^1.2.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/generator-function": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
- "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "license": "ISC",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
- "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/getenv": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz",
- "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true
- },
- "node_modules/global-dirs": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
- "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==",
- "license": "MIT",
- "dependencies": {
- "ini": "^1.3.4"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/globals": {
- "version": "16.5.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz",
- "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "license": "ISC"
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/has-bigints": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
- "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
- "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hermes-estree": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz",
- "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==",
- "license": "MIT"
- },
- "node_modules/hermes-parser": {
- "version": "0.32.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz",
- "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==",
- "license": "MIT",
- "dependencies": {
- "hermes-estree": "0.32.0"
- }
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "license": "BSD-3-Clause",
- "peer": true,
- "dependencies": {
- "react-is": "^16.7.0"
- }
- },
- "node_modules/hoist-non-react-statics/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/hosted-git-info/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "license": "ISC"
- },
- "node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-encoding": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/html-parse-stringify": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
- "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
- "license": "MIT",
- "dependencies": {
- "void-elements": "3.1.0"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-errors/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/http-proxy-agent/node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/i18next": {
- "version": "25.6.2",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.6.2.tgz",
- "integrity": "sha512-0GawNyVUw0yvJoOEBq1VHMAsqdM23XrHkMtl2gKEjviJQSLVXsrPqsoYAxBEugW5AB96I2pZkwRxyl8WZVoWdw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://locize.com"
- },
- {
- "type": "individual",
- "url": "https://locize.com/i18next.html"
- },
- {
- "type": "individual",
- "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.27.6"
- },
- "peerDependencies": {
- "typescript": "^5"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/image-size": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz",
- "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==",
- "license": "MIT",
- "dependencies": {
- "queue": "6.0.2"
- },
- "bin": {
- "image-size": "bin/image-size.js"
- },
- "engines": {
- "node": ">=16.x"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
- "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-fresh/node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/import-local": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
- "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "license": "ISC"
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "license": "ISC"
- },
- "node_modules/internal-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
- "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "hasown": "^2.0.2",
- "side-channel": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
- "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz",
- "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==",
- "license": "MIT"
- },
- "node_modules/is-async-function": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
- "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "async-function": "^1.0.0",
- "call-bound": "^1.0.3",
- "get-proto": "^1.0.1",
- "has-tostringtag": "^1.0.2",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
- "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-bigints": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
- "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-data-view": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
- "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
- "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "license": "MIT",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
- "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
- "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.4",
- "generator-function": "^2.0.0",
- "get-proto": "^1.0.1",
- "has-tostringtag": "^1.0.2",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
- "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "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",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
- "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-regex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
- "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
- "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
- "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-string": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
- "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
- "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-symbols": "^1.1.0",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
- "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "which-typed-array": "^1.1.16"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
- "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
- "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
- "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "license": "MIT",
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "license": "ISC"
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
- "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/iterator.prototype": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
- "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.6",
- "get-proto": "^1.0.0",
- "has-symbols": "^1.1.0",
- "set-function-name": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-changed-files": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-circus/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-circus/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-circus/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-circus/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-circus/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-circus/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-cli/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-cli/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-cli/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-cli/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-cli/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-cli/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-config/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jest-config/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-config/node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-config/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-config/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-config/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/jest-config/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-config/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jest-config/node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-config/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-diff/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-diff/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-diff/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-diff/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-diff/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-diff/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-each/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-each/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-each/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-each/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-each/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-expo": {
- "version": "54.0.13",
- "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-54.0.13.tgz",
- "integrity": "sha512-V0xefV7VJ9RD6v6Jo64I8RzQCchgEWVn6ip5r+u4TlgsGau0DA8CAqzitn4ShoSKlmjmpuaMqcGxeCz1p9Cfvg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@expo/config": "~12.0.10",
- "@expo/json-file": "^10.0.7",
- "@jest/create-cache-key-function": "^29.2.1",
- "@jest/globals": "^29.2.1",
- "babel-jest": "^29.2.1",
- "jest-environment-jsdom": "^29.2.1",
- "jest-snapshot": "^29.2.1",
- "jest-watch-select-projects": "^2.0.0",
- "jest-watch-typeahead": "2.2.1",
- "json5": "^2.2.3",
- "lodash": "^4.17.19",
- "react-server-dom-webpack": "~19.0.0",
- "react-test-renderer": "19.1.0",
- "server-only": "^0.0.1",
- "stacktrace-js": "^2.0.2"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "peerDependencies": {
- "expo": "*",
- "react-native": "*"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-matcher-utils/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/jest-message-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-message-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-message-util/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/jest-message-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-resolve/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-resolve/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-resolve/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-resolve/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-resolve/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runner/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-runner/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-runner/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-runner/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-runner/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runner/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jest-runner/node_modules/source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/jest-runner/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runtime/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-runtime/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jest-runtime/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-runtime/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-runtime/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-runtime/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/jest-runtime/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runtime/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jest-runtime/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-snapshot/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-snapshot/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-snapshot/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-snapshot/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-snapshot/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-snapshot/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-util/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/jest-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "leven": "^3.1.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-validate/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-validate/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/jest-validate/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-validate/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watch-select-projects": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz",
- "integrity": "sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^4.3.0",
- "chalk": "^3.0.0",
- "prompts": "^2.2.1"
- }
- },
- "node_modules/jest-watch-select-projects/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-watch-select-projects/node_modules/chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watch-select-projects/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-watch-select-projects/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-watch-select-projects/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watch-select-projects/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watch-typeahead": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-2.2.1.tgz",
- "integrity": "sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^6.0.0",
- "chalk": "^4.0.0",
- "jest-regex-util": "^29.0.0",
- "jest-watcher": "^29.0.0",
- "slash": "^5.0.0",
- "string-length": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "jest": "^27.0.0 || ^28.0.0 || ^29.0.0"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/ansi-escapes": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz",
- "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-watch-typeahead/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/slash": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/string-length": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz",
- "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "char-regex": "^2.0.0",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz",
- "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-watcher/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-watcher/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-watcher/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-watcher/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jest-watcher/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watcher/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jimp-compact": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
- "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==",
- "license": "MIT"
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsc-safe-url": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz",
- "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==",
- "license": "0BSD"
- },
- "node_modules/jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jsdom/node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/jsdom/node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/jsdom/node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/jsdom/node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "license": "ISC"
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsx-ast-utils": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
- "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/lan-network": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/lan-network/-/lan-network-0.1.7.tgz",
- "integrity": "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==",
- "license": "MIT",
- "bin": {
- "lan-network": "dist/lan-network-cli.js"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lighthouse-logger": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
- "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
- "license": "Apache-2.0",
- "dependencies": {
- "debug": "^2.6.9",
- "marky": "^1.2.2"
- }
- },
- "node_modules/lighthouse-logger/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/lighthouse-logger/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/lightningcss": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",
- "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.30.2",
- "lightningcss-darwin-arm64": "1.30.2",
- "lightningcss-darwin-x64": "1.30.2",
- "lightningcss-freebsd-x64": "1.30.2",
- "lightningcss-linux-arm-gnueabihf": "1.30.2",
- "lightningcss-linux-arm64-gnu": "1.30.2",
- "lightningcss-linux-arm64-musl": "1.30.2",
- "lightningcss-linux-x64-gnu": "1.30.2",
- "lightningcss-linux-x64-musl": "1.30.2",
- "lightningcss-win32-arm64-msvc": "1.30.2",
- "lightningcss-win32-x64-msvc": "1.30.2"
- }
- },
- "node_modules/lightningcss-android-arm64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
- "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
- "cpu": [
- "arm64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
- "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
- "cpu": [
- "arm64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
- "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
- "cpu": [
- "x64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
- "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
- "cpu": [
- "x64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
- "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
- "cpu": [
- "arm"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
- "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
- "cpu": [
- "arm64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
- "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
- "cpu": [
- "arm64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz",
- "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==",
- "cpu": [
- "x64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
- "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
- "cpu": [
- "x64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
- "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
- "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
- "cpu": [
- "x64"
- ],
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "license": "MIT"
- },
- "node_modules/loader-runner": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz",
- "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.11.5"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "license": "MIT"
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.throttle": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
- "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
- "license": "MIT"
- },
- "node_modules/log-symbols": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/marky": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz",
- "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==",
- "license": "Apache-2.0"
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/memoize-one": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
- "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==",
- "license": "MIT"
- },
- "node_modules/merge-options": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
- "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
- "license": "MIT",
- "dependencies": {
- "is-plain-obj": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/metro": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.2.tgz",
- "integrity": "sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/core": "^7.25.2",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.3",
- "@babel/template": "^7.25.0",
- "@babel/traverse": "^7.25.3",
- "@babel/types": "^7.25.2",
- "accepts": "^1.3.7",
- "chalk": "^4.0.0",
- "ci-info": "^2.0.0",
- "connect": "^3.6.5",
- "debug": "^4.4.0",
- "error-stack-parser": "^2.0.6",
- "flow-enums-runtime": "^0.0.6",
- "graceful-fs": "^4.2.4",
- "hermes-parser": "0.32.0",
- "image-size": "^1.0.2",
- "invariant": "^2.2.4",
- "jest-worker": "^29.7.0",
- "jsc-safe-url": "^0.2.2",
- "lodash.throttle": "^4.1.1",
- "metro-babel-transformer": "0.83.2",
- "metro-cache": "0.83.2",
- "metro-cache-key": "0.83.2",
- "metro-config": "0.83.2",
- "metro-core": "0.83.2",
- "metro-file-map": "0.83.2",
- "metro-resolver": "0.83.2",
- "metro-runtime": "0.83.2",
- "metro-source-map": "0.83.2",
- "metro-symbolicate": "0.83.2",
- "metro-transform-plugins": "0.83.2",
- "metro-transform-worker": "0.83.2",
- "mime-types": "^2.1.27",
- "nullthrows": "^1.1.1",
- "serialize-error": "^2.1.0",
- "source-map": "^0.5.6",
- "throat": "^5.0.0",
- "ws": "^7.5.10",
- "yargs": "^17.6.2"
- },
- "bin": {
- "metro": "src/cli.js"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-babel-transformer": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.2.tgz",
- "integrity": "sha512-rirY1QMFlA1uxH3ZiNauBninwTioOgwChnRdDcbB4tgRZ+bGX9DiXoh9QdpppiaVKXdJsII932OwWXGGV4+Nlw==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.2",
- "flow-enums-runtime": "^0.0.6",
- "hermes-parser": "0.32.0",
- "nullthrows": "^1.1.1"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-cache": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.2.tgz",
- "integrity": "sha512-Z43IodutUZeIS7OTH+yQFjc59QlFJ6s5OvM8p2AP9alr0+F8UKr8ADzFzoGKoHefZSKGa4bJx7MZJLF6GwPDHQ==",
- "license": "MIT",
- "dependencies": {
- "exponential-backoff": "^3.1.1",
- "flow-enums-runtime": "^0.0.6",
- "https-proxy-agent": "^7.0.5",
- "metro-core": "0.83.2"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-cache-key": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.2.tgz",
- "integrity": "sha512-3EMG/GkGKYoTaf5RqguGLSWRqGTwO7NQ0qXKmNBjr0y6qD9s3VBXYlwB+MszGtmOKsqE9q3FPrE5Nd9Ipv7rZw==",
- "license": "MIT",
- "dependencies": {
- "flow-enums-runtime": "^0.0.6"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-config": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.2.tgz",
- "integrity": "sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g==",
- "license": "MIT",
- "dependencies": {
- "connect": "^3.6.5",
- "flow-enums-runtime": "^0.0.6",
- "jest-validate": "^29.7.0",
- "metro": "0.83.2",
- "metro-cache": "0.83.2",
- "metro-core": "0.83.2",
- "metro-runtime": "0.83.2",
- "yaml": "^2.6.1"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-core": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.2.tgz",
- "integrity": "sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw==",
- "license": "MIT",
- "dependencies": {
- "flow-enums-runtime": "^0.0.6",
- "lodash.throttle": "^4.1.1",
- "metro-resolver": "0.83.2"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-file-map": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.2.tgz",
- "integrity": "sha512-cMSWnEqZrp/dzZIEd7DEDdk72PXz6w5NOKriJoDN9p1TDQ5nAYrY2lHi8d6mwbcGLoSlWmpPyny9HZYFfPWcGQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.4.0",
- "fb-watchman": "^2.0.0",
- "flow-enums-runtime": "^0.0.6",
- "graceful-fs": "^4.2.4",
- "invariant": "^2.2.4",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "nullthrows": "^1.1.1",
- "walker": "^1.0.7"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-minify-terser": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.2.tgz",
- "integrity": "sha512-zvIxnh7U0JQ7vT4quasKsijId3dOAWgq+ip2jF/8TMrPUqQabGrs04L2dd0haQJ+PA+d4VvK/bPOY8X/vL2PWw==",
- "license": "MIT",
- "dependencies": {
- "flow-enums-runtime": "^0.0.6",
- "terser": "^5.15.0"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-resolver": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.2.tgz",
- "integrity": "sha512-Yf5mjyuiRE/Y+KvqfsZxrbHDA15NZxyfg8pIk0qg47LfAJhpMVEX+36e6ZRBq7KVBqy6VDX5Sq55iHGM4xSm7Q==",
- "license": "MIT",
- "dependencies": {
- "flow-enums-runtime": "^0.0.6"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-runtime": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.2.tgz",
- "integrity": "sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.25.0",
- "flow-enums-runtime": "^0.0.6"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-source-map": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.2.tgz",
- "integrity": "sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.3",
- "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3",
- "@babel/types": "^7.25.2",
- "flow-enums-runtime": "^0.0.6",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.83.2",
- "nullthrows": "^1.1.1",
- "ob1": "0.83.2",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-symbolicate": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.2.tgz",
- "integrity": "sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw==",
- "license": "MIT",
- "dependencies": {
- "flow-enums-runtime": "^0.0.6",
- "invariant": "^2.2.4",
- "metro-source-map": "0.83.2",
- "nullthrows": "^1.1.1",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- },
- "bin": {
- "metro-symbolicate": "src/index.js"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-transform-plugins": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.2.tgz",
- "integrity": "sha512-5WlW25WKPkiJk2yA9d8bMuZrgW7vfA4f4MBb9ZeHbTB3eIAoNN8vS8NENgG/X/90vpTB06X66OBvxhT3nHwP6A==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/generator": "^7.25.0",
- "@babel/template": "^7.25.0",
- "@babel/traverse": "^7.25.3",
- "flow-enums-runtime": "^0.0.6",
- "nullthrows": "^1.1.1"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro-transform-worker": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.2.tgz",
- "integrity": "sha512-G5DsIg+cMZ2KNfrdLnWMvtppb3+Rp1GMyj7Bvd9GgYc/8gRmvq1XVEF9XuO87Shhb03kFhGqMTgZerz3hZ1v4Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.3",
- "@babel/types": "^7.25.2",
- "flow-enums-runtime": "^0.0.6",
- "metro": "0.83.2",
- "metro-babel-transformer": "0.83.2",
- "metro-cache": "0.83.2",
- "metro-cache-key": "0.83.2",
- "metro-minify-terser": "0.83.2",
- "metro-source-map": "0.83.2",
- "metro-transform-plugins": "0.83.2",
- "nullthrows": "^1.1.1"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/metro/node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/metro/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/metro/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/metro/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/metro/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/metro/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/metro/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "license": "MIT",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "license": "MIT",
- "funding": {
- "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==",
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minizlib": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
- "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
- "license": "MIT",
- "dependencies": {
- "minipass": "^7.1.2"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mock-socket": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz",
- "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nested-error-stacks": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz",
- "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==",
- "license": "MIT"
- },
- "node_modules/nock": {
- "version": "13.5.6",
- "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz",
- "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "json-stringify-safe": "^5.0.1",
- "propagate": "^2.0.0"
- },
- "engines": {
- "node": ">= 10.13"
- }
- },
- "node_modules/node-domexception": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
- "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
- "deprecated": "Use your platform's native DOMException instead",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "github",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=10.5.0"
- }
- },
- "node_modules/node-fetch": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
- "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
- "license": "MIT",
- "dependencies": {
- "data-uri-to-buffer": "^4.0.0",
- "fetch-blob": "^3.1.4",
- "formdata-polyfill": "^4.0.10"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/node-fetch"
- }
- },
- "node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "license": "(BSD-3-Clause OR GPL-2.0)",
- "engines": {
- "node": ">= 6.13.0"
- }
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "license": "MIT"
- },
- "node_modules/node-releases": {
- "version": "2.0.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
- "license": "MIT"
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-package-arg": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz",
- "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==",
- "license": "ISC",
- "dependencies": {
- "hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nullthrows": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
- "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
- "license": "MIT"
- },
- "node_modules/nwsapi": {
- "version": "2.2.22",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
- "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ob1": {
- "version": "0.83.2",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.2.tgz",
- "integrity": "sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg==",
- "license": "MIT",
- "dependencies": {
- "flow-enums-runtime": "^0.0.6"
- },
- "engines": {
- "node": ">=20.19.4"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
- "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0",
- "has-symbols": "^1.1.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.entries": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
- "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.fromentries": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
- "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.values": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
- "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "license": "MIT",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
- "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/open": {
- "version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
- "license": "MIT",
- "dependencies": {
- "is-docker": "^2.0.0",
- "is-wsl": "^2.1.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/ora": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
- "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^2.4.2",
- "cli-cursor": "^2.1.0",
- "cli-spinners": "^2.0.0",
- "log-symbols": "^2.2.0",
- "strip-ansi": "^5.2.0",
- "wcwidth": "^1.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ora/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ora/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/own-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
- "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.6",
- "object-keys": "^1.1.1",
- "safe-push-apply": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-locate/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "license": "BlueOak-1.0.0"
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-png": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz",
- "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
- "license": "MIT",
- "dependencies": {
- "pngjs": "^3.3.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/parse5": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^6.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "license": "MIT"
- },
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "license": "ISC"
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/plist": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
- "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
- "license": "MIT",
- "dependencies": {
- "@xmldom/xmldom": "^0.8.8",
- "base64-js": "^1.5.1",
- "xmlbuilder": "^15.1.1"
- },
- "engines": {
- "node": ">=10.4.0"
- }
- },
- "node_modules/pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
- "license": "MIT",
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/possible-typed-array-names": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
- "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.49",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
- "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/proc-log": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
- "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/promise": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
- "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
- "license": "MIT",
- "dependencies": {
- "asap": "~2.0.6"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "license": "MIT",
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/prop-types/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "license": "MIT"
- },
- "node_modules/propagate": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
- "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/psl": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
- "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/lupomontero"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pure-rand": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
- "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/dubzzz"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fast-check"
- }
- ],
- "license": "MIT"
- },
- "node_modules/qrcode-terminal": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
- "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==",
- "bin": {
- "qrcode-terminal": "bin/qrcode-terminal.js"
- }
- },
- "node_modules/query-string": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
- "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
- "license": "MIT",
- "dependencies": {
- "decode-uri-component": "^0.2.2",
- "filter-obj": "^1.1.0",
- "split-on-first": "^1.0.0",
- "strict-uri-encode": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/queue": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
- "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "~2.0.3"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
- "dependencies": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "bin": {
- "rc": "cli.js"
- }
- },
- "node_modules/react": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
- "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-devtools-core": {
- "version": "6.1.5",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz",
- "integrity": "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==",
- "license": "MIT",
- "dependencies": {
- "shell-quote": "^1.6.1",
- "ws": "^7"
- }
- },
- "node_modules/react-dom": {
- "version": "19.2.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz",
- "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "scheduler": "^0.27.0"
- },
- "peerDependencies": {
- "react": "^19.2.0"
- }
- },
- "node_modules/react-dom/node_modules/scheduler": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
- "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/react-freeze": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz",
- "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "react": ">=17.0.0"
- }
- },
- "node_modules/react-i18next": {
- "version": "16.3.3",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.3.3.tgz",
- "integrity": "sha512-IaY2W+ueVd/fe7H6Wj2S4bTuLNChnajFUlZFfCTrTHWzGcOrUHlVzW55oXRSl+J51U8Onn6EvIhQ+Bar9FUcjw==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.27.6",
- "html-parse-stringify": "^3.0.1",
- "use-sync-external-store": "^1.6.0"
- },
- "peerDependencies": {
- "i18next": ">= 25.6.2",
- "react": ">= 16.8.0",
- "typescript": "^5"
- },
- "peerDependenciesMeta": {
- "react-dom": {
- "optional": true
- },
- "react-native": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "license": "MIT"
- },
- "node_modules/react-native": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.81.5.tgz",
- "integrity": "sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==",
- "license": "MIT",
- "dependencies": {
- "@jest/create-cache-key-function": "^29.7.0",
- "@react-native/assets-registry": "0.81.5",
- "@react-native/codegen": "0.81.5",
- "@react-native/community-cli-plugin": "0.81.5",
- "@react-native/gradle-plugin": "0.81.5",
- "@react-native/js-polyfills": "0.81.5",
- "@react-native/normalize-colors": "0.81.5",
- "@react-native/virtualized-lists": "0.81.5",
- "abort-controller": "^3.0.0",
- "anser": "^1.4.9",
- "ansi-regex": "^5.0.0",
- "babel-jest": "^29.7.0",
- "babel-plugin-syntax-hermes-parser": "0.29.1",
- "base64-js": "^1.5.1",
- "commander": "^12.0.0",
- "flow-enums-runtime": "^0.0.6",
- "glob": "^7.1.1",
- "invariant": "^2.2.4",
- "jest-environment-node": "^29.7.0",
- "memoize-one": "^5.0.0",
- "metro-runtime": "^0.83.1",
- "metro-source-map": "^0.83.1",
- "nullthrows": "^1.1.1",
- "pretty-format": "^29.7.0",
- "promise": "^8.3.0",
- "react-devtools-core": "^6.1.5",
- "react-refresh": "^0.14.0",
- "regenerator-runtime": "^0.13.2",
- "scheduler": "0.26.0",
- "semver": "^7.1.3",
- "stacktrace-parser": "^0.1.10",
- "whatwg-fetch": "^3.0.0",
- "ws": "^6.2.3",
- "yargs": "^17.6.2"
- },
- "bin": {
- "react-native": "cli.js"
- },
- "engines": {
- "node": ">= 20.19.4"
- },
- "peerDependencies": {
- "@types/react": "^19.1.0",
- "react": "^19.1.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-native-gesture-handler": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.29.1.tgz",
- "integrity": "sha512-du3qmv0e3Sm7qsd9SfmHps+AggLiylcBBQ8ztz7WUtd8ZjKs5V3kekAbi9R2W9bRLSg47Ntp4GGMYZOhikQdZA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@egjs/hammerjs": "^2.0.17",
- "hoist-non-react-statics": "^3.3.0",
- "invariant": "^2.2.4"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/react-native-is-edge-to-edge": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz",
- "integrity": "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==",
- "license": "MIT",
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/react-native-safe-area-context": {
- "version": "5.6.2",
- "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz",
- "integrity": "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==",
- "license": "MIT",
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/react-native-screens": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.18.0.tgz",
- "integrity": "sha512-mRTLWL7Uc1p/RFNveEIIrhP22oxHduC2ZnLr/2iHwBeYpGXR0rJZ7Bgc0ktxQSHRjWTPT70qc/7yd4r9960PBQ==",
- "license": "MIT",
- "dependencies": {
- "react-freeze": "^1.0.0",
- "warn-once": "^0.1.0"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*"
- }
- },
- "node_modules/react-native-url-polyfill": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-3.0.0.tgz",
- "integrity": "sha512-aA5CiuUCUb/lbrliVCJ6lZ17/RpNJzvTO/C7gC/YmDQhTUoRD5q5HlJfwLWcxz4VgAhHwXKzhxH+wUN24tAdqg==",
- "license": "MIT",
- "dependencies": {
- "whatwg-url-without-unicode": "8.0.0-3"
- },
- "peerDependencies": {
- "react-native": "*"
- }
- },
- "node_modules/react-native-vector-icons": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.3.0.tgz",
- "integrity": "sha512-IFQ0RE57819hOUdFvgK4FowM5aMXg7C7XKsuGLevqXkkIJatc3QopN0wYrb2IrzUgmdpfP+QVIbI3S6h7M0btw==",
- "deprecated": "react-native-vector-icons package has moved to a new model of per-icon-family packages. See the https://github.com/oblador/react-native-vector-icons/blob/master/MIGRATION.md on how to migrate",
- "license": "MIT",
- "dependencies": {
- "prop-types": "^15.7.2",
- "yargs": "^16.1.1"
- },
- "bin": {
- "fa-upgrade.sh": "bin/fa-upgrade.sh",
- "fa5-upgrade": "bin/fa5-upgrade.sh",
- "fa6-upgrade": "bin/fa6-upgrade.sh",
- "generate-icon": "bin/generate-icon.js"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/react-native-vector-icons/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/react-native-vector-icons/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "license": "MIT",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/react-native-vector-icons/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/react-native/node_modules/@react-native/virtualized-lists": {
- "version": "0.81.5",
- "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz",
- "integrity": "sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==",
- "license": "MIT",
- "dependencies": {
- "invariant": "^2.2.4",
- "nullthrows": "^1.1.1"
- },
- "engines": {
- "node": ">= 20.19.4"
- },
- "peerDependencies": {
- "@types/react": "^19.1.0",
- "react": "*",
- "react-native": "*"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-native/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/react-native/node_modules/commander": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
- "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/react-native/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/react-native/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/react-native/node_modules/ws": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
- "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
- "license": "MIT",
- "dependencies": {
- "async-limiter": "~1.0.0"
- }
- },
- "node_modules/react-refresh": {
- "version": "0.14.2",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
- "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-server-dom-webpack": {
- "version": "19.0.0",
- "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-19.0.0.tgz",
- "integrity": "sha512-hLug9KEXLc8vnU9lDNe2b2rKKDaqrp5gNiES4uyu2Up3FZfZJZmdwLFXlWzdA9gTB/6/cWduSB2K1Lfag2pSvw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn-loose": "^8.3.0",
- "neo-async": "^2.6.1",
- "webpack-sources": "^3.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "peerDependencies": {
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
- "webpack": "^5.59.0"
- }
- },
- "node_modules/react-test-renderer": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.1.0.tgz",
- "integrity": "sha512-jXkSl3CpvPYEF+p/eGDLB4sPoDX8pKkYvRl9+rR8HxLY0X04vW7hCm1/0zHoUSjPZ3bDa+wXWNTDVIw/R8aDVw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "react-is": "^19.1.0",
- "scheduler": "^0.26.0"
- },
- "peerDependencies": {
- "react": "^19.1.0"
- }
- },
- "node_modules/react-test-renderer/node_modules/react-is": {
- "version": "19.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.0.tgz",
- "integrity": "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
- "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.9",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.1",
- "which-builtin-type": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "license": "MIT"
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.2.2",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz",
- "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==",
- "license": "MIT",
- "dependencies": {
- "regenerate": "^1.4.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "license": "MIT"
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
- "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "set-function-name": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/regexpu-core": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
- "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==",
- "license": "MIT",
- "dependencies": {
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.2.2",
- "regjsgen": "^0.8.0",
- "regjsparser": "^0.13.0",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.2.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
- "license": "MIT"
- },
- "node_modules/regjsparser": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
- "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "jsesc": "~3.1.0"
- },
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/requireg": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz",
- "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==",
- "dependencies": {
- "nested-error-stacks": "~2.0.1",
- "rc": "~1.2.7",
- "resolve": "~1.7.1"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/requireg/node_modules/resolve": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
- "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
- "license": "MIT",
- "dependencies": {
- "path-parse": "^1.0.5"
- }
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-global": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz",
- "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==",
- "license": "MIT",
- "dependencies": {
- "global-dirs": "^0.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-workspace-root": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz",
- "integrity": "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==",
- "license": "MIT"
- },
- "node_modules/resolve.exports": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
- "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
- "license": "MIT",
- "dependencies": {
- "onetime": "^2.0.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/restore-cursor/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
- "has-symbols": "^1.1.0",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safe-push-apply": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
- "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-regex-test": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
- "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-regex": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/sax": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz",
- "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==",
- "license": "BlueOak-1.0.0"
- },
- "node_modules/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
- },
- "node_modules/scale-ts": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.1.tgz",
- "integrity": "sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/scheduler": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
- "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
- "license": "MIT"
- },
- "node_modules/schema-utils": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
- "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.9.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.1.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/schema-utils/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/schema-utils/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/schema-utils/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/send/node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "license": "MIT",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/send/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/serialize-error": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
- "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "peer": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "license": "MIT",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-static/node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/server-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz",
- "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-proto": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
- "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "license": "ISC"
- },
- "node_modules/sf-symbols-typescript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/sf-symbols-typescript/-/sf-symbols-typescript-2.1.0.tgz",
- "integrity": "sha512-ezT7gu/SHTPIOEEoG6TF+O0m5eewl0ZDAO4AtdBi5HjsrUI6JdCG17+Q8+aKp0heM06wZKApRCn5olNbs0Wb/A==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shell-quote": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
- "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/simple-plist": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz",
- "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==",
- "license": "MIT",
- "dependencies": {
- "bplist-creator": "0.1.0",
- "bplist-parser": "0.3.1",
- "plist": "^3.0.5"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz",
- "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "license": "MIT"
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/slugify": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
- "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
- "license": "MIT",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/smoldot": {
- "version": "2.0.26",
- "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.26.tgz",
- "integrity": "sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==",
- "license": "GPL-3.0-or-later WITH Classpath-exception-2.0",
- "optional": true,
- "dependencies": {
- "ws": "^8.8.1"
- }
- },
- "node_modules/smoldot/node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-on-first": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
- "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "license": "BSD-3-Clause"
- },
- "node_modules/stack-generator": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz",
- "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "stackframe": "^1.3.4"
- }
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stackframe": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
- "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
- "license": "MIT"
- },
- "node_modules/stacktrace-gps": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz",
- "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "source-map": "0.5.6",
- "stackframe": "^1.3.4"
- }
- },
- "node_modules/stacktrace-gps/node_modules/source-map": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stacktrace-js": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz",
- "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "error-stack-parser": "^2.0.6",
- "stack-generator": "^2.0.5",
- "stacktrace-gps": "^3.0.4"
- }
- },
- "node_modules/stacktrace-parser": {
- "version": "0.1.11",
- "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz",
- "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==",
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.7.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "license": "MIT",
- "engines": {
- "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-buffers": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
- "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==",
- "license": "Unlicense",
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/strict-uri-encode": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
- "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-length/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string.prototype.matchall": {
- "version": "4.0.12",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
- "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.6",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "internal-slot": "^1.1.0",
- "regexp.prototype.flags": "^1.5.3",
- "set-function-name": "^2.0.2",
- "side-channel": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.repeat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
- "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
- }
- },
- "node_modules/string.prototype.trim": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
- "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-data-property": "^1.1.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-object-atoms": "^1.0.0",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimend": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
- "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi/node_modules/ansi-regex": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
- "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "min-indent": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/structured-headers": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz",
- "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==",
- "license": "MIT"
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tapable": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
- "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/tar": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
- "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/fs-minipass": "^4.0.0",
- "chownr": "^3.0.0",
- "minipass": "^7.1.2",
- "minizlib": "^3.1.0",
- "yallist": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tar/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==",
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/terser": {
- "version": "5.44.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz",
- "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.15.0",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.14",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
- "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.25",
- "jest-worker": "^27.4.5",
- "schema-utils": "^4.3.0",
- "serialize-javascript": "^6.0.2",
- "terser": "^5.31.1"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/terser/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "license": "MIT"
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "license": "ISC",
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/test-exclude/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/test-exclude/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/throat": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
- "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
- "license": "MIT"
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "license": "BSD-3-Clause"
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
- "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
- "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.12"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "license": "Apache-2.0"
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
- "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/typed-array-buffer": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/typed-array-byte-length": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
- "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "for-each": "^0.3.3",
- "gopd": "^1.2.0",
- "has-proto": "^1.2.0",
- "is-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
- "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "for-each": "^0.3.3",
- "gopd": "^1.2.0",
- "has-proto": "^1.2.0",
- "is-typed-array": "^1.1.15",
- "reflect.getprototypeof": "^1.0.9"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-length": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
- "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0",
- "reflect.getprototypeof": "^1.0.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typescript": {
- "version": "5.9.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
- "devOptional": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/typescript-eslint": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.47.0.tgz",
- "integrity": "sha512-Lwe8i2XQ3WoMjua/r1PHrCTpkubPYJCAfOurtn+mtTzqB6jNd+14n9UN1bJ4s3F49x9ixAm0FLflB/JzQ57M8Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.47.0",
- "@typescript-eslint/parser": "8.47.0",
- "@typescript-eslint/typescript-estree": "8.47.0",
- "@typescript-eslint/utils": "8.47.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/unbox-primitive": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
- "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.1.0",
- "which-boxed-primitive": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/undici": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.22.0.tgz",
- "integrity": "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==",
- "license": "MIT",
- "engines": {
- "node": ">=18.17"
- }
- },
- "node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
- "license": "MIT"
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
- "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "license": "MIT",
- "dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz",
- "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz",
- "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "license": "MIT",
- "dependencies": {
- "crypto-random-string": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz",
- "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "node_modules/use-latest-callback": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.6.tgz",
- "integrity": "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=16.8"
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
- "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
- "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
- "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/validate-npm-package-name": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
- "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/vlq": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
- "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==",
- "license": "MIT"
- },
- "node_modules/void-elements": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
- "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "makeerror": "1.0.12"
- }
- },
- "node_modules/warn-once": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
- "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==",
- "license": "MIT"
- },
- "node_modules/watchpack": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz",
- "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "license": "MIT",
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
- "node_modules/web-streams-polyfill": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
- "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
- "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/webpack": {
- "version": "5.103.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz",
- "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/eslint-scope": "^3.7.7",
- "@types/estree": "^1.0.8",
- "@types/json-schema": "^7.0.15",
- "@webassemblyjs/ast": "^1.14.1",
- "@webassemblyjs/wasm-edit": "^1.14.1",
- "@webassemblyjs/wasm-parser": "^1.14.1",
- "acorn": "^8.15.0",
- "acorn-import-phases": "^1.0.3",
- "browserslist": "^4.26.3",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.17.3",
- "es-module-lexer": "^1.2.1",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.11",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.3.1",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^4.3.3",
- "tapable": "^2.3.0",
- "terser-webpack-plugin": "^5.3.11",
- "watchpack": "^2.4.4",
- "webpack-sources": "^3.3.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-sources": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz",
- "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webpack/node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/webpack/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "iconv-lite": "0.6.3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-fetch": {
- "version": "3.6.20",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
- "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==",
- "license": "MIT"
- },
- "node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-url-without-unicode": {
- "version": "8.0.0-3",
- "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz",
- "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==",
- "license": "MIT",
- "dependencies": {
- "buffer": "^5.4.3",
- "punycode": "^2.1.1",
- "webidl-conversions": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/whatwg-url/node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
- "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-bigint": "^1.1.0",
- "is-boolean-object": "^1.2.1",
- "is-number-object": "^1.1.1",
- "is-string": "^1.1.1",
- "is-symbol": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-builtin-type": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
- "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "function.prototype.name": "^1.1.6",
- "has-tostringtag": "^1.0.2",
- "is-async-function": "^2.0.0",
- "is-date-object": "^1.1.0",
- "is-finalizationregistry": "^1.1.0",
- "is-generator-function": "^1.0.10",
- "is-regex": "^1.2.1",
- "is-weakref": "^1.0.2",
- "isarray": "^2.0.5",
- "which-boxed-primitive": "^1.1.0",
- "which-collection": "^1.0.2",
- "which-typed-array": "^1.1.16"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-collection": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
- "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-map": "^2.0.3",
- "is-set": "^2.0.3",
- "is-weakmap": "^2.0.2",
- "is-weakset": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.19",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
- "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "for-each": "^0.3.5",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/wonka": {
- "version": "6.3.5",
- "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz",
- "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==",
- "license": "MIT"
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
- "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "license": "ISC"
- },
- "node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
- "node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xcode": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz",
- "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==",
- "license": "Apache-2.0",
- "dependencies": {
- "simple-plist": "^1.1.0",
- "uuid": "^7.0.3"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/xml2js": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
- "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==",
- "license": "MIT",
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xml2js/node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
- "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
- "license": "MIT",
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "license": "ISC"
- },
- "node_modules/yaml": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
- "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14.6"
- }
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "license": "MIT",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/yargs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zod": {
- "version": "3.25.76",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
- "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/zod-to-json-schema": {
- "version": "3.24.6",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz",
- "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==",
- "license": "ISC",
- "peerDependencies": {
- "zod": "^3.24.1"
- }
- },
- "node_modules/zod-validation-error": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz",
- "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.0.0"
- },
- "peerDependencies": {
- "zod": "^3.25.0 || ^4.0.0"
- }
- }
- }
-}
diff --git a/mobile/package.json b/mobile/package.json
index dee5daad..382ab93a 100644
--- a/mobile/package.json
+++ b/mobile/package.json
@@ -5,8 +5,24 @@
"main": "index.ts",
"scripts": {
"start": "expo start",
- "android": "expo start --android",
- "ios": "expo start --ios",
+ "dev": "cp .env.development .env && expo start --clear",
+ "dev:tunnel": "cp .env.development .env && expo start --tunnel --clear",
+ "dev:android": "cp .env.development .env && expo run:android",
+ "dev:ios": "cp .env.development .env && expo run:ios",
+ "dev:web": "cp .env.development .env && expo start --web",
+ "prod": "cp .env.production .env && expo start --no-dev --minify",
+ "build:dev": "cp .env.development .env && eas build --profile development",
+ "build:preview": "cp .env.production .env && eas build --profile preview",
+ "build:prod": "cp .env.production .env && eas build --profile production",
+ "build:en": "EXPO_PUBLIC_DEFAULT_LANGUAGE=en eas build --platform android --profile production",
+ "build:tr": "EXPO_PUBLIC_DEFAULT_LANGUAGE=tr eas build --platform android --profile production",
+ "build:kmr": "EXPO_PUBLIC_DEFAULT_LANGUAGE=kmr eas build --platform android --profile production",
+ "build:ckb": "EXPO_PUBLIC_DEFAULT_LANGUAGE=ckb eas build --platform android --profile production",
+ "build:ar": "EXPO_PUBLIC_DEFAULT_LANGUAGE=ar eas build --platform android --profile production",
+ "build:fa": "EXPO_PUBLIC_DEFAULT_LANGUAGE=fa eas build --platform android --profile production",
+ "build:all": "npm run build:en && npm run build:tr && npm run build:kmr && npm run build:ckb && npm run build:ar && npm run build:fa",
+ "android": "expo run:android",
+ "ios": "expo run:ios",
"web": "expo start --web",
"test": "jest",
"test:watch": "jest --watch",
@@ -15,36 +31,73 @@
"lint:fix": "eslint . --fix"
},
"dependencies": {
- "@pezkuwi/api": "^16.5.2",
- "@pezkuwi/keyring": "^14.0.5",
- "@pezkuwi/util": "^14.0.5",
- "@pezkuwi/util-crypto": "^14.0.5",
+ "@babel/runtime": "^7.28.4",
+ "@pezkuwi/api": "16.5.9",
+ "@pezkuwi/keyring": "14.0.11",
+ "@pezkuwi/types": "16.5.9",
+ "@pezkuwi/util": "14.0.11",
+ "@pezkuwi/util-crypto": "14.0.11",
"@react-native-async-storage/async-storage": "^2.2.0",
+ "@react-native-picker/picker": "^2.9.2",
"@react-navigation/bottom-tabs": "^7.8.5",
"@react-navigation/native": "^7.1.20",
"@react-navigation/stack": "^7.6.4",
+ "@supabase/supabase-js": "^2.90.1",
+ "buffer": "^6.0.3",
"expo": "~54.0.23",
+ "expo-image-picker": "~17.0.10",
"expo-linear-gradient": "^15.0.7",
"expo-local-authentication": "^17.0.7",
"expo-secure-store": "^15.0.7",
"expo-status-bar": "~3.0.8",
"i18next": "^25.6.2",
+ "invariant": "^2.2.4",
+ "metro-runtime": "^0.81.0",
"react": "19.1.0",
+ "react-dom": "19.1.0",
"react-i18next": "^16.3.3",
"react-native": "0.81.5",
+ "react-native-gesture-handler": "~2.28.0",
+ "react-native-get-random-values": "~1.11.0",
+ "react-native-qrcode-svg": "^6.3.11",
"react-native-safe-area-context": "^5.6.2",
- "react-native-screens": "^4.18.0",
+ "react-native-screens": "~4.16.0",
+ "react-native-svg": "15.12.1",
"react-native-url-polyfill": "^3.0.0",
- "react-native-vector-icons": "^10.3.0"
+ "react-native-vector-icons": "^10.3.0",
+ "react-native-web": "^0.21.0",
+ "react-native-webview": "13.15.0",
+ "react-refresh": "^0.14.2",
+ "text-encoding": "^0.7.0"
+ },
+ "overrides": {
+ "@pezkuwi/api-augment": "16.5.9",
+ "@pezkuwi/api-base": "16.5.9",
+ "@pezkuwi/api-derive": "16.5.9",
+ "@pezkuwi/rpc-augment": "16.5.9",
+ "@pezkuwi/rpc-core": "16.5.9",
+ "@pezkuwi/rpc-provider": "16.5.9",
+ "@pezkuwi/types": "16.5.9",
+ "@pezkuwi/types-augment": "16.5.9",
+ "@pezkuwi/types-codec": "16.5.9",
+ "@pezkuwi/types-create": "16.5.9",
+ "@pezkuwi/types-known": "16.5.9",
+ "@pezkuwi/networks": "14.0.11",
+ "@pezkuwi/keyring": "14.0.11",
+ "@pezkuwi/util": "14.0.11",
+ "@pezkuwi/util-crypto": "14.0.11"
},
"devDependencies": {
- "@babel/runtime": "^7.28.4",
+ "@expo/ngrok": "^4.1.0",
"@testing-library/jest-native": "^5.4.3",
"@testing-library/react-native": "^13.3.3",
+ "@types/invariant": "^2",
"@types/jest": "^29.5.12",
- "@types/react": "~19.1.0",
+ "@types/react": "~19.1.10",
+ "@types/text-encoding": "^0",
"@typescript-eslint/eslint-plugin": "^8.47.0",
"@typescript-eslint/parser": "^8.47.0",
+ "babel-preset-expo": "~54.0.9",
"eslint": "^9.39.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
diff --git a/mobile/run_sql.sh b/mobile/run_sql.sh
new file mode 100755
index 00000000..86a4f2b9
--- /dev/null
+++ b/mobile/run_sql.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+# Supabase Database Connection
+DB_HOST="db.vsyrpfiwhjvahofxwytr.supabase.co"
+DB_PORT="5432"
+DB_NAME="postgres"
+DB_USER="postgres"
+DB_PASS="SqM210305yBkB@#nm90"
+
+CONNECTION_STRING="postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
+
+echo "======================================================================"
+echo "🚀 Executing SQL Scripts on Supabase"
+echo "======================================================================"
+
+# Check if psql is available
+if ! command -v psql &> /dev/null; then
+ echo ""
+ echo "❌ psql not found. Installing PostgreSQL client..."
+ echo ""
+
+ # Try to install psql
+ if command -v apt-get &> /dev/null; then
+ sudo apt-get update && sudo apt-get install -y postgresql-client
+ elif command -v yum &> /dev/null; then
+ sudo yum install -y postgresql
+ else
+ echo "❌ Cannot install PostgreSQL client automatically"
+ echo ""
+ echo "📋 Manual Setup Required:"
+ echo " Go to: https://app.supabase.com/project/vsyrpfiwhjvahofxwytr/sql"
+ echo " Run the SQL from: QUICK_SETUP_GUIDE.md"
+ echo ""
+ exit 1
+ fi
+fi
+
+echo ""
+echo "📝 Step 1: Fixing schema compatibility..."
+echo "======================================================================"
+
+psql "${CONNECTION_STRING}" -f FIX_SCHEMA_COMPATIBILITY.sql
+
+if [ $? -eq 0 ]; then
+ echo "✅ Schema compatibility fix completed!"
+else
+ echo "❌ Error in schema fix"
+ exit 1
+fi
+
+echo ""
+echo "📝 Step 2: Creating missing tables..."
+echo "======================================================================"
+
+psql "${CONNECTION_STRING}" -f SUPABASE_SCHEMA.sql
+
+if [ $? -eq 0 ]; then
+ echo "✅ Table creation completed!"
+else
+ echo "❌ Error in table creation"
+ exit 1
+fi
+
+echo ""
+echo "======================================================================"
+echo "🎉 ALL SQL SCRIPTS EXECUTED SUCCESSFULLY!"
+echo "======================================================================"
+echo ""
+echo "📝 Next step: Verify schema compatibility"
+echo " node check_schema_compatibility.cjs"
+echo ""
diff --git a/mobile/src/__tests__/integration/governance-integration.test.tsx b/mobile/src/__tests__/integration/governance-integration.test.tsx
new file mode 100644
index 00000000..4c35da37
--- /dev/null
+++ b/mobile/src/__tests__/integration/governance-integration.test.tsx
@@ -0,0 +1,250 @@
+/**
+ * Governance Integration Tests
+ *
+ * End-to-end tests for governance features
+ */
+
+import React from 'react';
+import { render, waitFor, fireEvent } from '@testing-library/react-native';
+import { NavigationContainer } from '@react-navigation/native';
+import TreasuryScreen from '../../screens/governance/TreasuryScreen';
+import ProposalsScreen from '../../screens/governance/ProposalsScreen';
+import ElectionsScreen from '../../screens/governance/ElectionsScreen';
+import { PezkuwiProvider } from '../../contexts/PezkuwiContext';
+import { ApiPromise, WsProvider } from '@polkadot/api';
+
+// Integration tests use real blockchain connection
+describe('Governance Integration Tests', () => {
+ let api: ApiPromise;
+
+ beforeAll(async () => {
+ // Connect to local zombinet
+ const wsProvider = new WsProvider('ws://127.0.0.1:9944');
+ api = await ApiPromise.create({ provider: wsProvider });
+ }, 30000); // 30 second timeout for blockchain connection
+
+ afterAll(async () => {
+ await api?.disconnect();
+ });
+
+ describe('Treasury Integration', () => {
+ it('should fetch real treasury balance from blockchain', async () => {
+ const { getByText } = render(
+
+
+
+ );
+
+ // Wait for blockchain data to load
+ await waitFor(
+ () => {
+ // Treasury balance should be displayed (even if 0)
+ expect(getByText(/HEZ/i)).toBeTruthy();
+ },
+ { timeout: 10000 }
+ );
+ });
+
+ it('should handle real blockchain connection errors', async () => {
+ // Temporarily disconnect
+ await api.disconnect();
+
+ const { getByText } = render(
+
+
+
+ );
+
+ await waitFor(() => {
+ // Should show error or empty state
+ expect(
+ getByText(/No proposals found/i) || getByText(/Error/i)
+ ).toBeTruthy();
+ });
+
+ // Reconnect for other tests
+ const wsProvider = new WsProvider('ws://127.0.0.1:9944');
+ api = await ApiPromise.create({ provider: wsProvider });
+ });
+ });
+
+ describe('Proposals Integration', () => {
+ it('should fetch real referenda from democracy pallet', async () => {
+ const { getByText, queryByText } = render(
+
+
+
+ );
+
+ await waitFor(
+ () => {
+ // Should either show referenda or empty state
+ expect(
+ queryByText(/Referendum/i) || queryByText(/No proposals found/i)
+ ).toBeTruthy();
+ },
+ { timeout: 10000 }
+ );
+ });
+
+ it('should display real vote counts', async () => {
+ const referenda = await api.query.democracy.referendumInfoOf.entries();
+
+ if (referenda.length > 0) {
+ const { getByText } = render(
+
+
+
+ );
+
+ await waitFor(
+ () => {
+ // Should show vote percentages
+ expect(getByText(/%/)).toBeTruthy();
+ },
+ { timeout: 10000 }
+ );
+ }
+ });
+ });
+
+ describe('Elections Integration', () => {
+ it('should fetch real commission proposals', async () => {
+ const { queryByText } = render(
+
+
+
+ );
+
+ await waitFor(
+ () => {
+ // Should either show elections or empty state
+ expect(
+ queryByText(/Election/i) || queryByText(/No elections available/i)
+ ).toBeTruthy();
+ },
+ { timeout: 10000 }
+ );
+ });
+ });
+
+ describe('Cross-Feature Integration', () => {
+ it('should maintain blockchain connection across screens', async () => {
+ // Test that API connection is shared
+ const treasuryBalance = await api.query.treasury?.treasury();
+ const referenda = await api.query.democracy.referendumInfoOf.entries();
+ const proposals = await api.query.dynamicCommissionCollective.proposals();
+
+ // All queries should succeed without creating new connections
+ expect(treasuryBalance).toBeDefined();
+ expect(referenda).toBeDefined();
+ expect(proposals).toBeDefined();
+ });
+
+ it('should handle simultaneous data fetching', async () => {
+ // Render all governance screens at once
+ const treasury = render(
+
+
+
+ );
+
+ const proposals = render(
+
+
+
+ );
+
+ const elections = render(
+
+
+
+ );
+
+ // All should load without conflicts
+ await Promise.all([
+ waitFor(() => expect(treasury.queryByText(/Treasury/i)).toBeTruthy(), {
+ timeout: 10000,
+ }),
+ waitFor(() => expect(proposals.queryByText(/Proposals/i)).toBeTruthy(), {
+ timeout: 10000,
+ }),
+ waitFor(() => expect(elections.queryByText(/Elections/i)).toBeTruthy(), {
+ timeout: 10000,
+ }),
+ ]);
+ });
+ });
+
+ describe('Real-time Updates', () => {
+ it('should receive blockchain updates', async () => {
+ const { rerender } = render(
+
+
+
+ );
+
+ // Subscribe to balance changes
+ const unsubscribe = await api.query.treasury.treasury((balance: any) => {
+ // Balance updates should trigger rerender
+ rerender(
+
+
+
+ );
+ });
+
+ // Wait for subscription to be active
+ await waitFor(() => {
+ expect(unsubscribe).toBeDefined();
+ });
+
+ // Cleanup
+ if (unsubscribe) {
+ unsubscribe();
+ }
+ }, 15000);
+ });
+
+ describe('Performance', () => {
+ it('should load treasury data within 5 seconds', async () => {
+ const startTime = Date.now();
+
+ const { getByText } = render(
+
+
+
+ );
+
+ await waitFor(() => {
+ expect(getByText(/Treasury/i)).toBeTruthy();
+ });
+
+ const loadTime = Date.now() - startTime;
+ expect(loadTime).toBeLessThan(5000);
+ });
+
+ it('should handle rapid screen transitions', async () => {
+ const screens = [TreasuryScreen, ProposalsScreen, ElectionsScreen];
+
+ for (const Screen of screens) {
+ const { unmount } = render(
+
+
+
+ );
+
+ await waitFor(() => {
+ // Screen should render
+ expect(true).toBe(true);
+ });
+
+ // Quickly unmount and move to next screen
+ unmount();
+ }
+
+ // No memory leaks or crashes
+ expect(true).toBe(true);
+ });
+ });
+});
diff --git a/mobile/src/__tests__/test-utils.tsx b/mobile/src/__tests__/test-utils.tsx
index d875968c..1430606c 100644
--- a/mobile/src/__tests__/test-utils.tsx
+++ b/mobile/src/__tests__/test-utils.tsx
@@ -3,7 +3,7 @@ import { render, RenderOptions } from '@testing-library/react-native';
// Mock all contexts with simple implementations
const MockAuthProvider = ({ children }: { children: React.ReactNode }) => <>{children}>;
-const MockPolkadotProvider = ({ children }: { children: React.ReactNode }) => <>{children}>;
+const MockPezkuwiProvider = ({ children }: { children: React.ReactNode }) => <>{children}>;
const MockLanguageProvider = ({ children }: { children: React.ReactNode }) => <>{children}>;
const MockBiometricAuthProvider = ({ children }: { children: React.ReactNode }) => <>{children}>;
@@ -11,13 +11,13 @@ const MockBiometricAuthProvider = ({ children }: { children: React.ReactNode })
const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
return (
-
+
{children}
-
+
);
};
diff --git a/mobile/src/components/AvatarPickerModal.tsx b/mobile/src/components/AvatarPickerModal.tsx
new file mode 100644
index 00000000..65aeb68c
--- /dev/null
+++ b/mobile/src/components/AvatarPickerModal.tsx
@@ -0,0 +1,512 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ Modal,
+ TouchableOpacity,
+ StyleSheet,
+ ScrollView,
+ Image,
+ Alert,
+ ActivityIndicator,
+ Platform,
+} from 'react-native';
+import * as ImagePicker from 'expo-image-picker';
+import { KurdistanColors } from '../theme/colors';
+import { useAuth } from '../contexts/AuthContext';
+import { supabase } from '../lib/supabase';
+
+// Avatar pool - Kurdish/Middle Eastern themed avatars
+const AVATAR_POOL = [
+ { id: 'avatar1', emoji: '👨🏻', label: 'Man 1' },
+ { id: 'avatar2', emoji: '👨🏼', label: 'Man 2' },
+ { id: 'avatar3', emoji: '👨🏽', label: 'Man 3' },
+ { id: 'avatar4', emoji: '👨🏾', label: 'Man 4' },
+ { id: 'avatar5', emoji: '👩🏻', label: 'Woman 1' },
+ { id: 'avatar6', emoji: '👩🏼', label: 'Woman 2' },
+ { id: 'avatar7', emoji: '👩🏽', label: 'Woman 3' },
+ { id: 'avatar8', emoji: '👩🏾', label: 'Woman 4' },
+ { id: 'avatar9', emoji: '🧔🏻', label: 'Beard 1' },
+ { id: 'avatar10', emoji: '🧔🏼', label: 'Beard 2' },
+ { id: 'avatar11', emoji: '🧔🏽', label: 'Beard 3' },
+ { id: 'avatar12', emoji: '🧔🏾', label: 'Beard 4' },
+ { id: 'avatar13', emoji: '👳🏻♂️', label: 'Turban 1' },
+ { id: 'avatar14', emoji: '👳🏼♂️', label: 'Turban 2' },
+ { id: 'avatar15', emoji: '👳🏽♂️', label: 'Turban 3' },
+ { id: 'avatar16', emoji: '🧕🏻', label: 'Hijab 1' },
+ { id: 'avatar17', emoji: '🧕🏼', label: 'Hijab 2' },
+ { id: 'avatar18', emoji: '🧕🏽', label: 'Hijab 3' },
+ { id: 'avatar19', emoji: '👴🏻', label: 'Elder 1' },
+ { id: 'avatar20', emoji: '👴🏼', label: 'Elder 2' },
+ { id: 'avatar21', emoji: '👵🏻', label: 'Elder Woman 1' },
+ { id: 'avatar22', emoji: '👵🏼', label: 'Elder Woman 2' },
+ { id: 'avatar23', emoji: '👦🏻', label: 'Boy 1' },
+ { id: 'avatar24', emoji: '👦🏼', label: 'Boy 2' },
+ { id: 'avatar25', emoji: '👧🏻', label: 'Girl 1' },
+ { id: 'avatar26', emoji: '👧🏼', label: 'Girl 2' },
+];
+
+interface AvatarPickerModalProps {
+ visible: boolean;
+ onClose: () => void;
+ currentAvatar?: string;
+ onAvatarSelected?: (avatarUrl: string) => void;
+}
+
+const AvatarPickerModal: React.FC = ({
+ visible,
+ onClose,
+ currentAvatar,
+ onAvatarSelected,
+}) => {
+ const { user } = useAuth();
+ const [selectedAvatar, setSelectedAvatar] = useState(currentAvatar || null);
+ const [uploadedImageUri, setUploadedImageUri] = useState(null);
+ const [isSaving, setIsSaving] = useState(false);
+ const [isUploading, setIsUploading] = useState(false);
+
+ const handleAvatarSelect = (avatarId: string) => {
+ setSelectedAvatar(avatarId);
+ setUploadedImageUri(null); // Clear uploaded image when selecting from pool
+ };
+
+ const requestPermissions = async () => {
+ if (Platform.OS !== 'web') {
+ const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();
+ if (status !== 'granted') {
+ Alert.alert(
+ 'Permission Required',
+ 'Sorry, we need camera roll permissions to upload your photo!'
+ );
+ return false;
+ }
+ }
+ return true;
+ };
+
+ const handlePickImage = async () => {
+ const hasPermission = await requestPermissions();
+ if (!hasPermission) return;
+
+ try {
+ const result = await ImagePicker.launchImageLibraryAsync({
+ mediaTypes: 'images',
+ allowsEditing: true,
+ aspect: [1, 1],
+ quality: 0.8,
+ });
+
+ if (!result.canceled && result.assets[0]) {
+ setIsUploading(true);
+ const imageUri = result.assets[0].uri;
+
+ if (__DEV__) console.log('[AvatarPicker] Uploading image:', imageUri);
+
+ // Upload to Supabase Storage
+ const uploadedUrl = await uploadImageToSupabase(imageUri);
+
+ setIsUploading(false);
+
+ if (uploadedUrl) {
+ if (__DEV__) console.log('[AvatarPicker] Upload successful:', uploadedUrl);
+ setUploadedImageUri(uploadedUrl);
+ setSelectedAvatar(null); // Clear emoji selection
+ Alert.alert('Success', 'Photo uploaded successfully!');
+ } else {
+ if (__DEV__) console.error('[AvatarPicker] Upload failed: no URL returned');
+ Alert.alert('Upload Failed', 'Could not upload your photo. Please check your internet connection and try again.');
+ }
+ }
+ } catch (error) {
+ setIsUploading(false);
+ if (__DEV__) console.error('[AvatarPicker] Error picking image:', error);
+ Alert.alert('Error', 'Failed to pick image. Please try again.');
+ }
+ };
+
+ const uploadImageToSupabase = async (imageUri: string): Promise => {
+ if (!user) {
+ if (__DEV__) console.error('[AvatarPicker] No user found');
+ return null;
+ }
+
+ try {
+ if (__DEV__) console.log('[AvatarPicker] Fetching image blob...');
+ // Convert image URI to blob for web, or use file for native
+ const response = await fetch(imageUri);
+ const blob = await response.blob();
+ if (__DEV__) console.log('[AvatarPicker] Blob size:', blob.size, 'bytes');
+
+ // Generate unique filename
+ const fileExt = imageUri.split('.').pop()?.toLowerCase() || 'jpg';
+ const fileName = `${user.id}-${Date.now()}.${fileExt}`;
+ const filePath = `avatars/${fileName}`;
+ if (__DEV__) console.log('[AvatarPicker] Uploading to:', filePath);
+
+ // Upload to Supabase Storage
+ const { data: uploadData, error: uploadError } = await supabase.storage
+ .from('profiles')
+ .upload(filePath, blob, {
+ contentType: `image/${fileExt}`,
+ upsert: false,
+ });
+
+ if (uploadError) {
+ if (__DEV__) console.error('[AvatarPicker] Upload error:', uploadError);
+ return null;
+ }
+
+ if (__DEV__) console.log('[AvatarPicker] Upload successful:', uploadData);
+
+ // Get public URL
+ const { data } = supabase.storage
+ .from('profiles')
+ .getPublicUrl(filePath);
+
+ if (__DEV__) console.log('[AvatarPicker] Public URL:', data.publicUrl);
+
+ return data.publicUrl;
+ } catch (error) {
+ if (__DEV__) console.error('[AvatarPicker] Error uploading to Supabase:', error);
+ return null;
+ }
+ };
+
+ const handleSave = async () => {
+ const avatarToSave = uploadedImageUri || selectedAvatar;
+
+ if (!avatarToSave || !user) {
+ Alert.alert('Error', 'Please select an avatar or upload a photo');
+ return;
+ }
+
+ if (__DEV__) console.log('[AvatarPicker] Saving avatar:', avatarToSave);
+
+ setIsSaving(true);
+
+ try {
+ // Update avatar in Supabase profiles table
+ const { data, error } = await supabase
+ .from('profiles')
+ .update({ avatar_url: avatarToSave })
+ .eq('id', user.id)
+ .select();
+
+ if (error) {
+ if (__DEV__) console.error('[AvatarPicker] Save error:', error);
+ throw error;
+ }
+
+ if (__DEV__) console.log('[AvatarPicker] Avatar saved successfully:', data);
+
+ Alert.alert('Success', 'Avatar updated successfully!');
+
+ if (onAvatarSelected) {
+ onAvatarSelected(avatarToSave);
+ }
+
+ onClose();
+ } catch (error) {
+ if (__DEV__) console.error('[AvatarPicker] Error updating avatar:', error);
+ Alert.alert('Error', 'Failed to update avatar. Please try again.');
+ } finally {
+ setIsSaving(false);
+ }
+ };
+
+ return (
+
+
+
+ {/* Header */}
+
+ Choose Your Avatar
+
+ ✕
+
+
+
+ {/* Upload Photo Button */}
+
+
+ {isUploading ? (
+
+ ) : (
+ <>
+ 📷
+ Upload Your Photo
+ >
+ )}
+
+
+ {/* Uploaded Image Preview */}
+ {uploadedImageUri && (
+
+
+ setUploadedImageUri(null)}
+ >
+ ✕
+
+
+ )}
+
+
+ {/* Divider */}
+
+
+ OR CHOOSE FROM POOL
+
+
+
+ {/* Avatar Grid */}
+
+
+ {AVATAR_POOL.map((avatar) => (
+ handleAvatarSelect(avatar.id)}
+ >
+ {avatar.emoji}
+ {selectedAvatar === avatar.id && (
+
+ ✓
+
+ )}
+
+ ))}
+
+
+
+ {/* Footer Actions */}
+
+
+ Cancel
+
+
+ {isSaving ? (
+
+ ) : (
+ Save Avatar
+ )}
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ justifyContent: 'flex-end',
+ },
+ modalContainer: {
+ backgroundColor: KurdistanColors.spi,
+ borderTopLeftRadius: 24,
+ borderTopRightRadius: 24,
+ maxHeight: '80%',
+ paddingBottom: 20,
+ },
+ modalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 20,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ modalTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ closeButton: {
+ width: 32,
+ height: 32,
+ borderRadius: 16,
+ backgroundColor: '#F0F0F0',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ closeButtonText: {
+ fontSize: 18,
+ color: '#666',
+ },
+ avatarScroll: {
+ padding: 20,
+ },
+ avatarGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'space-between',
+ },
+ avatarOption: {
+ width: '22%',
+ aspectRatio: 1,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 16,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 12,
+ borderWidth: 3,
+ borderColor: 'transparent',
+ },
+ avatarOptionSelected: {
+ borderColor: KurdistanColors.kesk,
+ backgroundColor: '#E8F5E9',
+ },
+ avatarEmoji: {
+ fontSize: 36,
+ },
+ selectedBadge: {
+ position: 'absolute',
+ top: -4,
+ right: -4,
+ width: 24,
+ height: 24,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ selectedBadgeText: {
+ fontSize: 14,
+ color: KurdistanColors.spi,
+ fontWeight: 'bold',
+ },
+ modalFooter: {
+ flexDirection: 'row',
+ paddingHorizontal: 20,
+ paddingTop: 16,
+ gap: 12,
+ },
+ cancelButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#F0F0F0',
+ alignItems: 'center',
+ },
+ cancelButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#666',
+ },
+ saveButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center',
+ },
+ saveButtonDisabled: {
+ opacity: 0.6,
+ },
+ saveButtonText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ uploadSection: {
+ paddingHorizontal: 20,
+ paddingVertical: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ uploadButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 14,
+ paddingHorizontal: 20,
+ borderRadius: 12,
+ gap: 8,
+ },
+ uploadButtonDisabled: {
+ opacity: 0.6,
+ },
+ uploadButtonIcon: {
+ fontSize: 20,
+ },
+ uploadButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.spi,
+ },
+ uploadedPreview: {
+ marginTop: 12,
+ alignItems: 'center',
+ position: 'relative',
+ },
+ uploadedImage: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ borderWidth: 3,
+ borderColor: KurdistanColors.kesk,
+ },
+ removeUploadButton: {
+ position: 'absolute',
+ top: -4,
+ right: '38%',
+ width: 28,
+ height: 28,
+ borderRadius: 14,
+ backgroundColor: KurdistanColors.sor,
+ justifyContent: 'center',
+ alignItems: 'center',
+ boxShadow: '0px 2px 3px rgba(0, 0, 0, 0.3)',
+ elevation: 4,
+ },
+ removeUploadText: {
+ color: KurdistanColors.spi,
+ fontSize: 14,
+ fontWeight: 'bold',
+ },
+ divider: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingHorizontal: 20,
+ paddingVertical: 16,
+ },
+ dividerLine: {
+ flex: 1,
+ height: 1,
+ backgroundColor: '#E0E0E0',
+ },
+ dividerText: {
+ fontSize: 11,
+ fontWeight: '600',
+ color: '#999',
+ marginHorizontal: 12,
+ letterSpacing: 0.5,
+ },
+});
+
+export default AvatarPickerModal;
diff --git a/mobile/src/components/AvatarPickerModal.tsx.bak b/mobile/src/components/AvatarPickerModal.tsx.bak
new file mode 100644
index 00000000..f0823b37
--- /dev/null
+++ b/mobile/src/components/AvatarPickerModal.tsx.bak
@@ -0,0 +1,515 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ Modal,
+ TouchableOpacity,
+ StyleSheet,
+ ScrollView,
+ Image,
+ Alert,
+ ActivityIndicator,
+ Platform,
+} from 'react-native';
+import * as ImagePicker from 'expo-image-picker';
+import { KurdistanColors } from '../theme/colors';
+import { useAuth } from '../contexts/AuthContext';
+import { supabase } from '../lib/supabase';
+
+// Avatar pool - Kurdish/Middle Eastern themed avatars
+const AVATAR_POOL = [
+ { id: 'avatar1', emoji: '👨🏻', label: 'Man 1' },
+ { id: 'avatar2', emoji: '👨🏼', label: 'Man 2' },
+ { id: 'avatar3', emoji: '👨🏽', label: 'Man 3' },
+ { id: 'avatar4', emoji: '👨🏾', label: 'Man 4' },
+ { id: 'avatar5', emoji: '👩🏻', label: 'Woman 1' },
+ { id: 'avatar6', emoji: '👩🏼', label: 'Woman 2' },
+ { id: 'avatar7', emoji: '👩🏽', label: 'Woman 3' },
+ { id: 'avatar8', emoji: '👩🏾', label: 'Woman 4' },
+ { id: 'avatar9', emoji: '🧔🏻', label: 'Beard 1' },
+ { id: 'avatar10', emoji: '🧔🏼', label: 'Beard 2' },
+ { id: 'avatar11', emoji: '🧔🏽', label: 'Beard 3' },
+ { id: 'avatar12', emoji: '🧔🏾', label: 'Beard 4' },
+ { id: 'avatar13', emoji: '👳🏻♂️', label: 'Turban 1' },
+ { id: 'avatar14', emoji: '👳🏼♂️', label: 'Turban 2' },
+ { id: 'avatar15', emoji: '👳🏽♂️', label: 'Turban 3' },
+ { id: 'avatar16', emoji: '🧕🏻', label: 'Hijab 1' },
+ { id: 'avatar17', emoji: '🧕🏼', label: 'Hijab 2' },
+ { id: 'avatar18', emoji: '🧕🏽', label: 'Hijab 3' },
+ { id: 'avatar19', emoji: '👴🏻', label: 'Elder 1' },
+ { id: 'avatar20', emoji: '👴🏼', label: 'Elder 2' },
+ { id: 'avatar21', emoji: '👵🏻', label: 'Elder Woman 1' },
+ { id: 'avatar22', emoji: '👵🏼', label: 'Elder Woman 2' },
+ { id: 'avatar23', emoji: '👦🏻', label: 'Boy 1' },
+ { id: 'avatar24', emoji: '👦🏼', label: 'Boy 2' },
+ { id: 'avatar25', emoji: '👧🏻', label: 'Girl 1' },
+ { id: 'avatar26', emoji: '👧🏼', label: 'Girl 2' },
+];
+
+interface AvatarPickerModalProps {
+ visible: boolean;
+ onClose: () => void;
+ currentAvatar?: string;
+ onAvatarSelected?: (avatarUrl: string) => void;
+}
+
+const AvatarPickerModal: React.FC = ({
+ visible,
+ onClose,
+ currentAvatar,
+ onAvatarSelected,
+}) => {
+ const { user } = useAuth();
+ const [selectedAvatar, setSelectedAvatar] = useState(currentAvatar || null);
+ const [uploadedImageUri, setUploadedImageUri] = useState(null);
+ const [isSaving, setIsSaving] = useState(false);
+ const [isUploading, setIsUploading] = useState(false);
+
+ const handleAvatarSelect = (avatarId: string) => {
+ setSelectedAvatar(avatarId);
+ setUploadedImageUri(null); // Clear uploaded image when selecting from pool
+ };
+
+ const requestPermissions = async () => {
+ if (Platform.OS !== 'web') {
+ const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();
+ if (status !== 'granted') {
+ Alert.alert(
+ 'Permission Required',
+ 'Sorry, we need camera roll permissions to upload your photo!'
+ );
+ return false;
+ }
+ }
+ return true;
+ };
+
+ const handlePickImage = async () => {
+ const hasPermission = await requestPermissions();
+ if (!hasPermission) return;
+
+ try {
+ const result = await ImagePicker.launchImageLibraryAsync({
+ mediaTypes: 'images',
+ allowsEditing: true,
+ aspect: [1, 1],
+ quality: 0.8,
+ });
+
+ if (!result.canceled && result.assets[0]) {
+ setIsUploading(true);
+ const imageUri = result.assets[0].uri;
+
+ if (__DEV__) console.log('[AvatarPicker] Uploading image:', imageUri);
+
+ // Upload to Supabase Storage
+ const uploadedUrl = await uploadImageToSupabase(imageUri);
+
+ setIsUploading(false);
+
+ if (uploadedUrl) {
+ if (__DEV__) console.log('[AvatarPicker] Upload successful:', uploadedUrl);
+ setUploadedImageUri(uploadedUrl);
+ setSelectedAvatar(null); // Clear emoji selection
+ Alert.alert('Success', 'Photo uploaded successfully!');
+ } else {
+ if (__DEV__) console.error('[AvatarPicker] Upload failed: no URL returned');
+ Alert.alert('Upload Failed', 'Could not upload your photo. Please check your internet connection and try again.');
+ }
+ }
+ } catch (error) {
+ setIsUploading(false);
+ if (__DEV__) console.error('[AvatarPicker] Error picking image:', error);
+ Alert.alert('Error', 'Failed to pick image. Please try again.');
+ }
+ };
+
+ const uploadImageToSupabase = async (imageUri: string): Promise => {
+ if (!user) {
+ if (__DEV__) console.error('[AvatarPicker] No user found');
+ return null;
+ }
+
+ try {
+ if (__DEV__) console.log('[AvatarPicker] Fetching image blob...');
+ // Convert image URI to blob for web, or use file for native
+ const response = await fetch(imageUri);
+ const blob = await response.blob();
+ if (__DEV__) console.log('[AvatarPicker] Blob size:', blob.size, 'bytes');
+
+ // Generate unique filename
+ const fileExt = imageUri.split('.').pop()?.toLowerCase() || 'jpg';
+ const fileName = `${user.id}-${Date.now()}.${fileExt}`;
+ const filePath = `avatars/${fileName}`;
+ if (__DEV__) console.log('[AvatarPicker] Uploading to:', filePath);
+
+ // Upload to Supabase Storage
+ const { data: uploadData, error: uploadError } = await supabase.storage
+ .from('profiles')
+ .upload(filePath, blob, {
+ contentType: `image/${fileExt}`,
+ upsert: false,
+ });
+
+ if (uploadError) {
+ if (__DEV__) console.error('[AvatarPicker] Upload error:', uploadError);
+ return null;
+ }
+
+ if (__DEV__) console.log('[AvatarPicker] Upload successful:', uploadData);
+
+ // Get public URL
+ const { data } = supabase.storage
+ .from('profiles')
+ .getPublicUrl(filePath);
+
+ if (__DEV__) console.log('[AvatarPicker] Public URL:', data.publicUrl);
+
+ return data.publicUrl;
+ } catch (error) {
+ if (__DEV__) console.error('[AvatarPicker] Error uploading to Supabase:', error);
+ return null;
+ }
+ };
+
+ const handleSave = async () => {
+ const avatarToSave = uploadedImageUri || selectedAvatar;
+
+ if (!avatarToSave || !user) {
+ Alert.alert('Error', 'Please select an avatar or upload a photo');
+ return;
+ }
+
+ if (__DEV__) console.log('[AvatarPicker] Saving avatar:', avatarToSave);
+
+ setIsSaving(true);
+
+ try {
+ // Update avatar in Supabase profiles table
+ const { data, error } = await supabase
+ .from('profiles')
+ .update({ avatar_url: avatarToSave })
+ .eq('id', user.id)
+ .select();
+
+ if (error) {
+ if (__DEV__) console.error('[AvatarPicker] Save error:', error);
+ throw error;
+ }
+
+ if (__DEV__) console.log('[AvatarPicker] Avatar saved successfully:', data);
+
+ Alert.alert('Success', 'Avatar updated successfully!');
+
+ if (onAvatarSelected) {
+ onAvatarSelected(avatarToSave);
+ }
+
+ onClose();
+ } catch (error) {
+ if (__DEV__) console.error('[AvatarPicker] Error updating avatar:', error);
+ Alert.alert('Error', 'Failed to update avatar. Please try again.');
+ } finally {
+ setIsSaving(false);
+ }
+ };
+
+ return (
+
+
+
+ {/* Header */}
+
+ Choose Your Avatar
+
+ ✕
+
+
+
+ {/* Upload Photo Button */}
+
+
+ {isUploading ? (
+
+ ) : (
+ <>
+ 📷
+ Upload Your Photo
+ >
+ )}
+
+
+ {/* Uploaded Image Preview */}
+ {uploadedImageUri && (
+
+
+ setUploadedImageUri(null)}
+ >
+ ✕
+
+
+ )}
+
+
+ {/* Divider */}
+
+
+ OR CHOOSE FROM POOL
+
+
+
+ {/* Avatar Grid */}
+
+
+ {AVATAR_POOL.map((avatar) => (
+ handleAvatarSelect(avatar.id)}
+ >
+ {avatar.emoji}
+ {selectedAvatar === avatar.id && (
+
+ ✓
+
+ )}
+
+ ))}
+
+
+
+ {/* Footer Actions */}
+
+
+ Cancel
+
+
+ {isSaving ? (
+
+ ) : (
+ Save Avatar
+ )}
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ justifyContent: 'flex-end',
+ },
+ modalContainer: {
+ backgroundColor: KurdistanColors.spi,
+ borderTopLeftRadius: 24,
+ borderTopRightRadius: 24,
+ maxHeight: '80%',
+ paddingBottom: 20,
+ },
+ modalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 20,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ modalTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ closeButton: {
+ width: 32,
+ height: 32,
+ borderRadius: 16,
+ backgroundColor: '#F0F0F0',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ closeButtonText: {
+ fontSize: 18,
+ color: '#666',
+ },
+ avatarScroll: {
+ padding: 20,
+ },
+ avatarGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'space-between',
+ },
+ avatarOption: {
+ width: '22%',
+ aspectRatio: 1,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 16,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 12,
+ borderWidth: 3,
+ borderColor: 'transparent',
+ },
+ avatarOptionSelected: {
+ borderColor: KurdistanColors.kesk,
+ backgroundColor: '#E8F5E9',
+ },
+ avatarEmoji: {
+ fontSize: 36,
+ },
+ selectedBadge: {
+ position: 'absolute',
+ top: -4,
+ right: -4,
+ width: 24,
+ height: 24,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ selectedBadgeText: {
+ fontSize: 14,
+ color: KurdistanColors.spi,
+ fontWeight: 'bold',
+ },
+ modalFooter: {
+ flexDirection: 'row',
+ paddingHorizontal: 20,
+ paddingTop: 16,
+ gap: 12,
+ },
+ cancelButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#F0F0F0',
+ alignItems: 'center',
+ },
+ cancelButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#666',
+ },
+ saveButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center',
+ },
+ saveButtonDisabled: {
+ opacity: 0.6,
+ },
+ saveButtonText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ uploadSection: {
+ paddingHorizontal: 20,
+ paddingVertical: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ uploadButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 14,
+ paddingHorizontal: 20,
+ borderRadius: 12,
+ gap: 8,
+ },
+ uploadButtonDisabled: {
+ opacity: 0.6,
+ },
+ uploadButtonIcon: {
+ fontSize: 20,
+ },
+ uploadButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.spi,
+ },
+ uploadedPreview: {
+ marginTop: 12,
+ alignItems: 'center',
+ position: 'relative',
+ },
+ uploadedImage: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ borderWidth: 3,
+ borderColor: KurdistanColors.kesk,
+ },
+ removeUploadButton: {
+ position: 'absolute',
+ top: -4,
+ right: '38%',
+ width: 28,
+ height: 28,
+ borderRadius: 14,
+ backgroundColor: KurdistanColors.sor,
+ justifyContent: 'center',
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.3,
+ shadowRadius: 3,
+ elevation: 4,
+ },
+ removeUploadText: {
+ color: KurdistanColors.spi,
+ fontSize: 14,
+ fontWeight: 'bold',
+ },
+ divider: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingHorizontal: 20,
+ paddingVertical: 16,
+ },
+ dividerLine: {
+ flex: 1,
+ height: 1,
+ backgroundColor: '#E0E0E0',
+ },
+ dividerText: {
+ fontSize: 11,
+ fontWeight: '600',
+ color: '#999',
+ marginHorizontal: 12,
+ letterSpacing: 0.5,
+ },
+});
+
+export default AvatarPickerModal;
diff --git a/mobile/src/components/BalanceCard.tsx b/mobile/src/components/BalanceCard.tsx
index dfe97892..ab37eb42 100644
--- a/mobile/src/components/BalanceCard.tsx
+++ b/mobile/src/components/BalanceCard.tsx
@@ -66,10 +66,7 @@ const styles = StyleSheet.create({
padding: 16,
borderRadius: 12,
marginBottom: 12,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 4,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
elevation: 3,
},
row: {
diff --git a/mobile/src/components/BalanceCard.tsx.bak b/mobile/src/components/BalanceCard.tsx.bak
new file mode 100644
index 00000000..dfe97892
--- /dev/null
+++ b/mobile/src/components/BalanceCard.tsx.bak
@@ -0,0 +1,120 @@
+import React from 'react';
+import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
+import { TokenIcon } from './TokenIcon';
+import { KurdistanColors } from '../theme/colors';
+
+interface BalanceCardProps {
+ symbol: string;
+ name: string;
+ balance: string;
+ value?: string;
+ change?: string;
+ onPress?: () => void;
+}
+
+export const BalanceCard: React.FC = ({
+ symbol,
+ name,
+ balance,
+ value,
+ change,
+ onPress,
+}) => {
+ const changeValue = parseFloat(change || '0');
+ const isPositive = changeValue >= 0;
+
+ return (
+
+
+
+
+
+ {symbol}
+ {balance}
+
+
+ {name}
+ {value && {value}}
+
+
+
+ {change && (
+
+
+ {isPositive ? '+' : ''}
+ {change}
+
+
+ )}
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: '#FFFFFF',
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 3,
+ },
+ row: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ info: {
+ flex: 1,
+ marginLeft: 12,
+ },
+ nameRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 4,
+ },
+ symbol: {
+ fontSize: 18,
+ fontWeight: '700',
+ color: '#000',
+ },
+ balance: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: '#000',
+ },
+ detailsRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ name: {
+ fontSize: 14,
+ color: '#666',
+ },
+ value: {
+ fontSize: 14,
+ color: '#666',
+ },
+ changeContainer: {
+ marginTop: 8,
+ alignItems: 'flex-end',
+ },
+ change: {
+ fontSize: 12,
+ fontWeight: '600',
+ },
+});
diff --git a/mobile/src/components/BottomSheet.tsx b/mobile/src/components/BottomSheet.tsx
index 613a264e..32127d27 100644
--- a/mobile/src/components/BottomSheet.tsx
+++ b/mobile/src/components/BottomSheet.tsx
@@ -130,10 +130,7 @@ const styles = StyleSheet.create({
borderTopLeftRadius: 24,
borderTopRightRadius: 24,
paddingBottom: 34, // Safe area
- shadowColor: '#000',
- shadowOffset: { width: 0, height: -4 },
- shadowOpacity: 0.15,
- shadowRadius: 12,
+ boxShadow: '0px -4px 12px rgba(0, 0, 0, 0.15)',
elevation: 20,
},
handleContainer: {
diff --git a/mobile/src/components/BottomSheet.tsx.bak b/mobile/src/components/BottomSheet.tsx.bak
new file mode 100644
index 00000000..613a264e
--- /dev/null
+++ b/mobile/src/components/BottomSheet.tsx.bak
@@ -0,0 +1,165 @@
+import React, { useEffect, useRef } from 'react';
+import {
+ View,
+ Text,
+ Modal,
+ Animated,
+ Pressable,
+ StyleSheet,
+ Dimensions,
+ PanResponder,
+} from 'react-native';
+import { AppColors } from '../theme/colors';
+
+const { height: SCREEN_HEIGHT } = Dimensions.get('window');
+
+interface BottomSheetProps {
+ visible: boolean;
+ onClose: () => void;
+ title?: string;
+ children: React.ReactNode;
+ height?: number;
+ showHandle?: boolean;
+}
+
+/**
+ * Modern Bottom Sheet Component
+ * Swipe to dismiss, smooth animations
+ */
+export const BottomSheet: React.FC = ({
+ visible,
+ onClose,
+ title,
+ children,
+ height = SCREEN_HEIGHT * 0.6,
+ showHandle = true,
+}) => {
+ const translateY = useRef(new Animated.Value(height)).current;
+ const panResponder = useRef(
+ PanResponder.create({
+ onStartShouldSetPanResponder: () => true,
+ onMoveShouldSetPanResponder: (_, gestureState) => {
+ return gestureState.dy > 5;
+ },
+ onPanResponderMove: (_, gestureState) => {
+ if (gestureState.dy > 0) {
+ translateY.setValue(gestureState.dy);
+ }
+ },
+ onPanResponderRelease: (_, gestureState) => {
+ if (gestureState.dy > 100) {
+ closeSheet();
+ } else {
+ Animated.spring(translateY, {
+ toValue: 0,
+ useNativeDriver: true,
+ }).start();
+ }
+ },
+ })
+ ).current;
+
+ const openSheet = React.useCallback(() => {
+ Animated.spring(translateY, {
+ toValue: 0,
+ useNativeDriver: true,
+ damping: 20,
+ }).start();
+ }, [translateY]);
+
+ useEffect(() => {
+ if (visible) {
+ openSheet();
+ }
+ }, [visible, openSheet]);
+
+ const closeSheet = () => {
+ Animated.timing(translateY, {
+ toValue: height,
+ duration: 250,
+ useNativeDriver: true,
+ }).start(() => {
+ onClose();
+ });
+ };
+
+ return (
+
+
+
+
+ {showHandle && (
+
+
+
+ )}
+ {title && (
+
+ {title}
+
+ )}
+ {children}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ overlay: {
+ flex: 1,
+ justifyContent: 'flex-end',
+ },
+ backdrop: {
+ ...StyleSheet.absoluteFillObject,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ },
+ sheet: {
+ backgroundColor: AppColors.surface,
+ borderTopLeftRadius: 24,
+ borderTopRightRadius: 24,
+ paddingBottom: 34, // Safe area
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: -4 },
+ shadowOpacity: 0.15,
+ shadowRadius: 12,
+ elevation: 20,
+ },
+ handleContainer: {
+ alignItems: 'center',
+ paddingTop: 12,
+ paddingBottom: 8,
+ },
+ handle: {
+ width: 40,
+ height: 4,
+ borderRadius: 2,
+ backgroundColor: AppColors.border,
+ },
+ header: {
+ paddingHorizontal: 20,
+ paddingVertical: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: AppColors.border,
+ },
+ title: {
+ fontSize: 20,
+ fontWeight: '700',
+ color: AppColors.text,
+ },
+ content: {
+ flex: 1,
+ padding: 20,
+ },
+});
diff --git a/mobile/src/components/Button.tsx b/mobile/src/components/Button.tsx
index 8335c49a..7eb3e518 100644
--- a/mobile/src/components/Button.tsx
+++ b/mobile/src/components/Button.tsx
@@ -95,18 +95,12 @@ const styles = StyleSheet.create({
// Variants
primary: {
backgroundColor: KurdistanColors.kesk,
- shadowColor: KurdistanColors.kesk,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 128, 0, 0.3)',
elevation: 4,
},
secondary: {
backgroundColor: KurdistanColors.zer,
- shadowColor: KurdistanColors.zer,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.2,
- shadowRadius: 6,
+ boxShadow: '0px 4px 6px rgba(255, 215, 0, 0.2)',
elevation: 3,
},
outline: {
@@ -119,10 +113,7 @@ const styles = StyleSheet.create({
},
danger: {
backgroundColor: KurdistanColors.sor,
- shadowColor: KurdistanColors.sor,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(255, 0, 0, 0.3)',
elevation: 4,
},
// Sizes
@@ -146,7 +137,7 @@ const styles = StyleSheet.create({
},
disabled: {
opacity: 0.5,
- shadowOpacity: 0,
+ boxShadow: 'none',
elevation: 0,
},
pressed: {
diff --git a/mobile/src/components/Button.tsx.bak b/mobile/src/components/Button.tsx.bak
new file mode 100644
index 00000000..8335c49a
--- /dev/null
+++ b/mobile/src/components/Button.tsx.bak
@@ -0,0 +1,188 @@
+import React from 'react';
+import {
+ Pressable,
+ Text,
+ StyleSheet,
+ ActivityIndicator,
+ ViewStyle,
+ TextStyle,
+} from 'react-native';
+import { AppColors, KurdistanColors } from '../theme/colors';
+
+interface ButtonProps {
+ title: string;
+ onPress: () => void;
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
+ size?: 'small' | 'medium' | 'large';
+ loading?: boolean;
+ disabled?: boolean;
+ fullWidth?: boolean;
+ style?: ViewStyle;
+ textStyle?: TextStyle;
+ icon?: React.ReactNode;
+ testID?: string;
+}
+
+/**
+ * Modern Button Component
+ * Uses Kurdistan colors for primary branding
+ */
+export const Button: React.FC = ({
+ title,
+ onPress,
+ variant = 'primary',
+ size = 'medium',
+ loading = false,
+ disabled = false,
+ fullWidth = false,
+ style,
+ textStyle,
+ icon,
+ testID,
+}) => {
+ const isDisabled = disabled || loading;
+
+ const buttonStyle = [
+ styles.base,
+ styles[variant],
+ styles[`${size}Size`],
+ fullWidth && styles.fullWidth,
+ isDisabled && styles.disabled,
+ style,
+ ];
+
+ const textStyles = [
+ styles.text,
+ styles[`${variant}Text`],
+ styles[`${size}Text`],
+ isDisabled && styles.disabledText,
+ textStyle,
+ ];
+
+ return (
+ [
+ ...buttonStyle,
+ pressed && !isDisabled && styles.pressed,
+ ]}
+ >
+ {loading ? (
+
+ ) : (
+ <>
+ {icon}
+ {title}
+ >
+ )}
+
+ );
+};
+
+const styles = StyleSheet.create({
+ base: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 12,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ },
+ // Variants
+ primary: {
+ backgroundColor: KurdistanColors.kesk,
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ secondary: {
+ backgroundColor: KurdistanColors.zer,
+ shadowColor: KurdistanColors.zer,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.2,
+ shadowRadius: 6,
+ elevation: 3,
+ },
+ outline: {
+ backgroundColor: 'transparent',
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
+ },
+ ghost: {
+ backgroundColor: 'transparent',
+ },
+ danger: {
+ backgroundColor: KurdistanColors.sor,
+ shadowColor: KurdistanColors.sor,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ // Sizes
+ smallSize: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 8,
+ },
+ mediumSize: {
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 12,
+ },
+ largeSize: {
+ paddingHorizontal: 32,
+ paddingVertical: 16,
+ borderRadius: 16,
+ },
+ fullWidth: {
+ width: '100%',
+ },
+ disabled: {
+ opacity: 0.5,
+ shadowOpacity: 0,
+ elevation: 0,
+ },
+ pressed: {
+ opacity: 0.8,
+ transform: [{ scale: 0.97 }],
+ },
+ // Text styles
+ text: {
+ fontWeight: '600',
+ textAlign: 'center',
+ },
+ primaryText: {
+ color: '#FFFFFF',
+ },
+ secondaryText: {
+ color: '#000000',
+ },
+ outlineText: {
+ color: KurdistanColors.kesk,
+ },
+ ghostText: {
+ color: KurdistanColors.kesk,
+ },
+ dangerText: {
+ color: '#FFFFFF',
+ },
+ smallText: {
+ fontSize: 14,
+ },
+ mediumText: {
+ fontSize: 16,
+ },
+ largeText: {
+ fontSize: 18,
+ },
+ disabledText: {
+ opacity: 0.7,
+ },
+});
diff --git a/mobile/src/components/Card.tsx b/mobile/src/components/Card.tsx
index 2886e3d3..a2307888 100644
--- a/mobile/src/components/Card.tsx
+++ b/mobile/src/components/Card.tsx
@@ -72,21 +72,18 @@ const styles = StyleSheet.create({
marginBottom: 12,
},
elevated: {
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 8,
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
elevation: 4,
},
outlined: {
borderWidth: 1,
borderColor: AppColors.border,
- shadowOpacity: 0,
+ boxShadow: 'none',
elevation: 0,
},
filled: {
backgroundColor: AppColors.background,
- shadowOpacity: 0,
+ boxShadow: 'none',
elevation: 0,
},
pressed: {
diff --git a/mobile/src/components/Card.tsx.bak b/mobile/src/components/Card.tsx.bak
new file mode 100644
index 00000000..2886e3d3
--- /dev/null
+++ b/mobile/src/components/Card.tsx.bak
@@ -0,0 +1,96 @@
+import React from 'react';
+import { View, StyleSheet, ViewStyle, Pressable, Text } from 'react-native';
+import { AppColors } from '../theme/colors';
+
+interface CardProps {
+ children: React.ReactNode;
+ title?: string;
+ style?: ViewStyle;
+ onPress?: () => void;
+ variant?: 'elevated' | 'outlined' | 'filled';
+ testID?: string;
+ elevation?: number;
+}
+
+/**
+ * Modern Card Component
+ * Inspired by Material Design 3 and Kurdistan aesthetics
+ */
+export const Card: React.FC = ({
+ children,
+ title,
+ style,
+ onPress,
+ variant = 'elevated',
+ testID,
+ elevation,
+}) => {
+ const cardStyle = [
+ styles.card,
+ variant === 'elevated' && styles.elevated,
+ variant === 'outlined' && styles.outlined,
+ variant === 'filled' && styles.filled,
+ elevation && { elevation },
+ style,
+ ];
+
+ const content = (
+ <>
+ {title && {title}}
+ {children}
+ >
+ );
+
+ if (onPress) {
+ return (
+ [
+ ...cardStyle,
+ pressed && styles.pressed,
+ ]}
+ >
+ {content}
+
+ );
+ }
+
+ return {content};
+};
+
+const styles = StyleSheet.create({
+ card: {
+ borderRadius: 16,
+ padding: 16,
+ backgroundColor: AppColors.surface,
+ },
+ title: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: AppColors.text,
+ marginBottom: 12,
+ },
+ elevated: {
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ outlined: {
+ borderWidth: 1,
+ borderColor: AppColors.border,
+ shadowOpacity: 0,
+ elevation: 0,
+ },
+ filled: {
+ backgroundColor: AppColors.background,
+ shadowOpacity: 0,
+ elevation: 0,
+ },
+ pressed: {
+ opacity: 0.7,
+ transform: [{ scale: 0.98 }],
+ },
+});
diff --git a/mobile/src/components/Input.tsx b/mobile/src/components/Input.tsx
index 99d28e5b..31c1451a 100644
--- a/mobile/src/components/Input.tsx
+++ b/mobile/src/components/Input.tsx
@@ -115,10 +115,7 @@ const styles = StyleSheet.create({
inputContainerFocused: {
borderColor: KurdistanColors.kesk,
borderWidth: 2,
- shadowColor: KurdistanColors.kesk,
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 4,
+ boxShadow: '0px 2px 4px rgba(0, 128, 0, 0.1)',
elevation: 2,
},
inputContainerError: {
diff --git a/mobile/src/components/Input.tsx.bak b/mobile/src/components/Input.tsx.bak
new file mode 100644
index 00000000..99d28e5b
--- /dev/null
+++ b/mobile/src/components/Input.tsx.bak
@@ -0,0 +1,154 @@
+import React, { useState } from 'react';
+import {
+ TextInput,
+ View,
+ Text,
+ StyleSheet,
+ TextInputProps,
+ Pressable,
+} from 'react-native';
+import { AppColors, KurdistanColors } from '../theme/colors';
+
+interface InputProps extends TextInputProps {
+ label?: string;
+ error?: string;
+ helperText?: string;
+ leftIcon?: React.ReactNode;
+ rightIcon?: React.ReactNode;
+ onRightIconPress?: () => void;
+}
+
+/**
+ * Modern Input Component
+ * Floating label, validation states, icons
+ */
+export const Input: React.FC = ({
+ label,
+ error,
+ helperText,
+ leftIcon,
+ rightIcon,
+ onRightIconPress,
+ style,
+ ...props
+}) => {
+ const [isFocused, setIsFocused] = useState(false);
+ const hasValue = props.value && props.value.length > 0;
+
+ return (
+
+ {label && (
+
+ {label}
+
+ )}
+
+ {leftIcon && {leftIcon}}
+ {
+ setIsFocused(true);
+ props.onFocus?.(e);
+ }}
+ onBlur={(e) => {
+ setIsFocused(false);
+ props.onBlur?.(e);
+ }}
+ placeholderTextColor={AppColors.textSecondary}
+ />
+ {rightIcon && (
+
+ {rightIcon}
+
+ )}
+
+ {(error || helperText) && (
+
+ {error || helperText}
+
+ )}
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ marginBottom: 16,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '500',
+ color: AppColors.textSecondary,
+ marginBottom: 8,
+ transition: 'all 0.2s',
+ },
+ labelFocused: {
+ color: KurdistanColors.kesk,
+ },
+ labelError: {
+ color: KurdistanColors.sor,
+ },
+ inputContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: AppColors.surface,
+ borderWidth: 1.5,
+ borderColor: AppColors.border,
+ borderRadius: 12,
+ paddingHorizontal: 16,
+ minHeight: 52,
+ },
+ inputContainerFocused: {
+ borderColor: KurdistanColors.kesk,
+ borderWidth: 2,
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ inputContainerError: {
+ borderColor: KurdistanColors.sor,
+ },
+ input: {
+ flex: 1,
+ fontSize: 16,
+ color: AppColors.text,
+ paddingVertical: 12,
+ },
+ inputWithLeftIcon: {
+ marginLeft: 12,
+ },
+ leftIcon: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ rightIcon: {
+ padding: 8,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ helperText: {
+ fontSize: 12,
+ color: AppColors.textSecondary,
+ marginTop: 4,
+ marginLeft: 16,
+ },
+ errorText: {
+ color: KurdistanColors.sor,
+ },
+});
diff --git a/mobile/src/components/NotificationBell.tsx b/mobile/src/components/NotificationBell.tsx
new file mode 100644
index 00000000..d4e520c7
--- /dev/null
+++ b/mobile/src/components/NotificationBell.tsx
@@ -0,0 +1,81 @@
+import React, { useState, useEffect } from 'react';
+import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { KurdistanColors } from '../theme/colors';
+import { supabaseHelpers } from '../lib/supabase';
+
+interface NotificationBellProps {
+ onPress: () => void;
+ style?: any;
+}
+
+export const NotificationBell: React.FC = ({ onPress, style }) => {
+ const { selectedAccount, api, isApiReady } = usePezkuwi();
+ const [unreadCount, setUnreadCount] = useState(0);
+
+ useEffect(() => {
+ if (!api || !isApiReady || !selectedAccount) {
+ setUnreadCount(0);
+ return;
+ }
+
+ // Fetch unread notification count from Supabase
+ const fetchUnreadCount = async () => {
+ try {
+ const count = await supabaseHelpers.getUnreadNotificationsCount(selectedAccount.address);
+ setUnreadCount(count);
+ } catch (error) {
+ console.error('Failed to fetch unread count:', error);
+ // If tables don't exist yet, set to 0
+ setUnreadCount(0);
+ }
+ };
+
+ fetchUnreadCount();
+
+ // Refresh every 30 seconds
+ const interval = setInterval(fetchUnreadCount, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady, selectedAccount]);
+
+ return (
+
+ 🔔
+ {unreadCount > 0 && (
+
+ {unreadCount > 9 ? '9+' : unreadCount}
+
+ )}
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ position: 'relative',
+ width: 40,
+ height: 40,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ bellIcon: {
+ fontSize: 24,
+ },
+ badge: {
+ position: 'absolute',
+ top: 4,
+ right: 4,
+ backgroundColor: KurdistanColors.sor,
+ borderRadius: 10,
+ minWidth: 20,
+ height: 20,
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingHorizontal: 4,
+ },
+ badgeText: {
+ color: '#FFFFFF',
+ fontSize: 11,
+ fontWeight: 'bold',
+ },
+});
diff --git a/mobile/src/components/NotificationCenterModal.tsx b/mobile/src/components/NotificationCenterModal.tsx
new file mode 100644
index 00000000..7c9d78a1
--- /dev/null
+++ b/mobile/src/components/NotificationCenterModal.tsx
@@ -0,0 +1,455 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ Modal,
+ StyleSheet,
+ ScrollView,
+ TouchableOpacity,
+ Alert,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { supabaseHelpers } from '../lib/supabase';
+
+interface Notification {
+ id: string;
+ type: 'transaction' | 'governance' | 'p2p' | 'referral' | 'system';
+ title: string;
+ message: string;
+ read: boolean;
+ timestamp: string;
+}
+
+interface NotificationCenterModalProps {
+ visible: boolean;
+ onClose: () => void;
+}
+
+// Notifications are stored in Supabase database
+
+export const NotificationCenterModal: React.FC = ({
+ visible,
+ onClose,
+}) => {
+ const { selectedAccount } = usePezkuwi();
+ const [notifications, setNotifications] = useState([]);
+ const [loading, setLoading] = useState(false);
+
+ useEffect(() => {
+ if (visible && selectedAccount) {
+ const fetchNotifications = async () => {
+ try {
+ setLoading(true);
+
+ // Fetch notifications from Supabase
+ const data = await supabaseHelpers.getUserNotifications(selectedAccount.address);
+
+ // Transform to match component interface
+ const transformed = data.map(n => ({
+ ...n,
+ timestamp: n.created_at,
+ }));
+
+ setNotifications(transformed);
+
+ } catch (error) {
+ console.error('Failed to fetch notifications:', error);
+ // If tables don't exist yet, show empty state
+ setNotifications([]);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ fetchNotifications();
+ }
+ }, [visible, selectedAccount]);
+
+ const handleMarkAsRead = async (notificationId: string) => {
+ try {
+ // Update UI immediately
+ setNotifications(prev =>
+ prev.map(n => (n.id === notificationId ? { ...n, read: true } : n))
+ );
+
+ // Update in Supabase
+ await supabaseHelpers.markNotificationAsRead(notificationId);
+ } catch (error) {
+ console.error('Failed to mark notification as read:', error);
+ }
+ };
+
+ const handleMarkAllAsRead = async () => {
+ if (!selectedAccount) return;
+
+ try {
+ // Update UI immediately
+ setNotifications(prev => prev.map(n => ({ ...n, read: true })));
+
+ // Update in Supabase
+ await supabaseHelpers.markAllNotificationsAsRead(selectedAccount.address);
+
+ Alert.alert('Success', 'All notifications marked as read');
+ } catch (error) {
+ console.error('Failed to mark all as read:', error);
+ Alert.alert('Error', 'Failed to update notifications');
+ }
+ };
+
+ const handleClearAll = () => {
+ Alert.alert(
+ 'Clear All Notifications',
+ 'Are you sure you want to clear all notifications?',
+ [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Clear',
+ style: 'destructive',
+ onPress: async () => {
+ try {
+ setNotifications([]);
+ // TODO: Implement delete from Supabase when needed
+ // For now, just clear from UI
+ } catch (error) {
+ console.error('Failed to clear notifications:', error);
+ }
+ },
+ },
+ ]
+ );
+ };
+
+ const getNotificationIcon = (type: string): string => {
+ const icons: Record = {
+ transaction: '💰',
+ governance: '🏛️',
+ p2p: '🤝',
+ referral: '👥',
+ system: '⚙️',
+ };
+ return icons[type] || '📬';
+ };
+
+ const getNotificationColor = (type: string): string => {
+ const colors: Record = {
+ transaction: KurdistanColors.kesk,
+ governance: '#3B82F6',
+ p2p: '#F59E0B',
+ referral: '#8B5CF6',
+ system: '#6B7280',
+ };
+ return colors[type] || '#666';
+ };
+
+ const formatTimestamp = (timestamp: string): string => {
+ const date = new Date(timestamp);
+ const now = new Date();
+ const diffMs = now.getTime() - date.getTime();
+ const diffMins = Math.floor(diffMs / 60000);
+ const diffHours = Math.floor(diffMins / 60);
+ const diffDays = Math.floor(diffHours / 24);
+
+ if (diffMins < 60) return `${diffMins}m ago`;
+ if (diffHours < 24) return `${diffHours}h ago`;
+ if (diffDays < 7) return `${diffDays}d ago`;
+ return date.toLocaleDateString();
+ };
+
+ const unreadCount = notifications.filter(n => !n.read).length;
+ const groupedNotifications = {
+ today: notifications.filter(n => {
+ const date = new Date(n.timestamp);
+ const today = new Date();
+ return date.toDateString() === today.toDateString();
+ }),
+ earlier: notifications.filter(n => {
+ const date = new Date(n.timestamp);
+ const today = new Date();
+ return date.toDateString() !== today.toDateString();
+ }),
+ };
+
+ return (
+
+
+
+ {/* Header */}
+
+
+ Notifications
+ {unreadCount > 0 && (
+ {unreadCount} unread
+ )}
+
+
+ ✕
+
+
+
+ {/* Actions */}
+ {notifications.length > 0 && (
+
+ {unreadCount > 0 && (
+
+ Mark all as read
+
+ )}
+
+ Clear all
+
+
+ )}
+
+ {/* Notifications List */}
+
+ {notifications.length === 0 ? (
+
+ 📬
+ No notifications
+ You're all caught up!
+
+ ) : (
+ <>
+ {/* Today */}
+ {groupedNotifications.today.length > 0 && (
+ <>
+ Today
+ {groupedNotifications.today.map((notification) => (
+ handleMarkAsRead(notification.id)}
+ >
+
+
+ {getNotificationIcon(notification.type)}
+
+
+
+
+ {notification.title}
+ {!notification.read && }
+
+
+ {notification.message}
+
+
+ {formatTimestamp(notification.timestamp)}
+
+
+
+ ))}
+ >
+ )}
+
+ {/* Earlier */}
+ {groupedNotifications.earlier.length > 0 && (
+ <>
+ Earlier
+ {groupedNotifications.earlier.map((notification) => (
+ handleMarkAsRead(notification.id)}
+ >
+
+
+ {getNotificationIcon(notification.type)}
+
+
+
+
+ {notification.title}
+ {!notification.read && }
+
+
+ {notification.message}
+
+
+ {formatTimestamp(notification.timestamp)}
+
+
+
+ ))}
+ >
+ )}
+ >
+ )}
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ justifyContent: 'flex-end',
+ },
+ modalContent: {
+ backgroundColor: '#FFFFFF',
+ borderTopLeftRadius: 24,
+ borderTopRightRadius: 24,
+ maxHeight: '85%',
+ },
+ header: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 20,
+ borderBottomWidth: 1,
+ borderBottomColor: '#F0F0F0',
+ },
+ headerTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ marginTop: 2,
+ },
+ closeButton: {
+ width: 32,
+ height: 32,
+ borderRadius: 16,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ closeButtonText: {
+ fontSize: 18,
+ color: '#666',
+ },
+ actions: {
+ flexDirection: 'row',
+ gap: 12,
+ paddingHorizontal: 20,
+ paddingVertical: 12,
+ borderBottomWidth: 1,
+ borderBottomColor: '#F0F0F0',
+ },
+ actionButton: {
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 8,
+ backgroundColor: '#F5F5F5',
+ },
+ actionButtonText: {
+ fontSize: 13,
+ fontWeight: '500',
+ color: '#666',
+ },
+ actionButtonDanger: {
+ color: '#EF4444',
+ },
+ notificationsList: {
+ flex: 1,
+ padding: 20,
+ },
+ sectionTitle: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#999',
+ marginBottom: 12,
+ marginTop: 8,
+ },
+ notificationCard: {
+ flexDirection: 'row',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 12,
+ borderWidth: 1,
+ borderColor: '#F0F0F0',
+ },
+ notificationCardUnread: {
+ backgroundColor: '#F8F9FA',
+ borderColor: KurdistanColors.kesk,
+ },
+ notificationIcon: {
+ width: 44,
+ height: 44,
+ borderRadius: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ notificationIconText: {
+ fontSize: 20,
+ },
+ notificationContent: {
+ flex: 1,
+ },
+ notificationHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 4,
+ },
+ notificationTitle: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ flex: 1,
+ },
+ unreadDot: {
+ width: 8,
+ height: 8,
+ borderRadius: 4,
+ backgroundColor: KurdistanColors.kesk,
+ marginLeft: 8,
+ },
+ notificationMessage: {
+ fontSize: 13,
+ color: '#666',
+ lineHeight: 18,
+ marginBottom: 4,
+ },
+ notificationTime: {
+ fontSize: 11,
+ color: '#999',
+ },
+ emptyState: {
+ alignItems: 'center',
+ paddingVertical: 60,
+ },
+ emptyStateIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyStateText: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 8,
+ },
+ emptyStateSubtext: {
+ fontSize: 14,
+ color: '#999',
+ },
+});
diff --git a/mobile/src/components/PezkuwiWebView.tsx b/mobile/src/components/PezkuwiWebView.tsx
new file mode 100644
index 00000000..47896b5e
--- /dev/null
+++ b/mobile/src/components/PezkuwiWebView.tsx
@@ -0,0 +1,406 @@
+import React, { useRef, useState, useCallback } from 'react';
+import {
+ View,
+ StyleSheet,
+ ActivityIndicator,
+ Text,
+ TouchableOpacity,
+ BackHandler,
+ Platform,
+} from 'react-native';
+import { WebView, WebViewMessageEvent } from 'react-native-webview';
+import { useFocusEffect } from '@react-navigation/native';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+
+// Base URL for the web app
+const WEB_BASE_URL = 'https://pezkuwichain.io';
+
+export interface PezkuwiWebViewProps {
+ // The path to load (e.g., '/p2p', '/forum', '/elections')
+ path: string;
+ // Optional title for the header
+ title?: string;
+ // Callback when navigation state changes
+ onNavigationStateChange?: (canGoBack: boolean) => void;
+}
+
+interface WebViewMessage {
+ type: string;
+ payload?: unknown;
+}
+
+const PezkuwiWebView: React.FC = ({
+ path,
+ title,
+ onNavigationStateChange,
+}) => {
+ const webViewRef = useRef(null);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+ const [canGoBack, setCanGoBack] = useState(false);
+
+ const { selectedAccount, getKeyPair } = usePezkuwi();
+
+ // JavaScript to inject into the WebView
+ // This creates a bridge between the web app and native app
+ const injectedJavaScript = `
+ (function() {
+ // Mark this as mobile app
+ window.PEZKUWI_MOBILE = true;
+ window.PEZKUWI_PLATFORM = '${Platform.OS}';
+
+ // Inject wallet address if connected
+ ${selectedAccount ? `window.PEZKUWI_ADDRESS = '${selectedAccount.address}';` : ''}
+ ${selectedAccount ? `window.PEZKUWI_ACCOUNT_NAME = '${selectedAccount.meta?.name || 'Mobile Wallet'}';` : ''}
+
+ // Override console.log to send to React Native (for debugging)
+ const originalConsoleLog = console.log;
+ console.log = function(...args) {
+ originalConsoleLog.apply(console, args);
+ window.ReactNativeWebView?.postMessage(JSON.stringify({
+ type: 'CONSOLE_LOG',
+ payload: args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ')
+ }));
+ };
+
+ // Create native bridge for wallet operations
+ window.PezkuwiNativeBridge = {
+ // Request transaction signing from native wallet
+ signTransaction: function(extrinsicHex, callback) {
+ window.__pendingSignCallback = callback;
+ window.ReactNativeWebView?.postMessage(JSON.stringify({
+ type: 'SIGN_TRANSACTION',
+ payload: { extrinsicHex }
+ }));
+ },
+
+ // Request wallet connection
+ connectWallet: function() {
+ window.ReactNativeWebView?.postMessage(JSON.stringify({
+ type: 'CONNECT_WALLET'
+ }));
+ },
+
+ // Navigate back in native app
+ goBack: function() {
+ window.ReactNativeWebView?.postMessage(JSON.stringify({
+ type: 'GO_BACK'
+ }));
+ },
+
+ // Check if wallet is connected
+ isWalletConnected: function() {
+ return !!window.PEZKUWI_ADDRESS;
+ },
+
+ // Get connected address
+ getAddress: function() {
+ return window.PEZKUWI_ADDRESS || null;
+ }
+ };
+
+ // Notify web app that native bridge is ready
+ window.dispatchEvent(new CustomEvent('pezkuwi-native-ready', {
+ detail: {
+ address: window.PEZKUWI_ADDRESS,
+ platform: window.PEZKUWI_PLATFORM
+ }
+ }));
+
+ true; // Required for injectedJavaScript
+ })();
+ `;
+
+ // Handle messages from WebView
+ const handleMessage = useCallback(async (event: WebViewMessageEvent) => {
+ try {
+ const message: WebViewMessage = JSON.parse(event.nativeEvent.data);
+
+ switch (message.type) {
+ case 'SIGN_TRANSACTION':
+ // Handle transaction signing
+ if (!selectedAccount) {
+ // Send error back to WebView
+ webViewRef.current?.injectJavaScript(`
+ if (window.__pendingSignCallback) {
+ window.__pendingSignCallback(null, 'Wallet not connected');
+ delete window.__pendingSignCallback;
+ }
+ `);
+ return;
+ }
+
+ try {
+ const { extrinsicHex } = message.payload as { extrinsicHex: string };
+ const keyPair = await getKeyPair(selectedAccount.address);
+
+ if (!keyPair) {
+ throw new Error('Could not retrieve key pair');
+ }
+
+ // Sign the transaction
+ const signature = keyPair.sign(extrinsicHex);
+ const signatureHex = Buffer.from(signature).toString('hex');
+
+ // Send signature back to WebView
+ webViewRef.current?.injectJavaScript(`
+ if (window.__pendingSignCallback) {
+ window.__pendingSignCallback('${signatureHex}', null);
+ delete window.__pendingSignCallback;
+ }
+ `);
+ } catch (signError) {
+ webViewRef.current?.injectJavaScript(`
+ if (window.__pendingSignCallback) {
+ window.__pendingSignCallback(null, '${(signError as Error).message}');
+ delete window.__pendingSignCallback;
+ }
+ `);
+ }
+ break;
+
+ case 'CONNECT_WALLET':
+ // Trigger native wallet connection
+ // This would open a modal or navigate to wallet screen
+ if (__DEV__) console.log('WebView requested wallet connection');
+ break;
+
+ case 'GO_BACK':
+ // Handle back navigation from web
+ if (canGoBack && webViewRef.current) {
+ webViewRef.current.goBack();
+ }
+ break;
+
+ case 'CONSOLE_LOG':
+ // Forward console logs from WebView (debug only)
+ if (__DEV__) {
+ console.log('[WebView]:', message.payload);
+ }
+ break;
+
+ default:
+ if (__DEV__) {
+ console.log('Unknown message type:', message.type);
+ }
+ }
+ } catch (parseError) {
+ if (__DEV__) {
+ console.error('Failed to parse WebView message:', parseError);
+ }
+ }
+ }, [selectedAccount, getKeyPair, canGoBack]);
+
+ // Handle Android back button
+ useFocusEffect(
+ useCallback(() => {
+ const onBackPress = () => {
+ if (canGoBack && webViewRef.current) {
+ webViewRef.current.goBack();
+ return true; // Prevent default behavior
+ }
+ return false; // Allow default behavior
+ };
+
+ const subscription = BackHandler.addEventListener('hardwareBackPress', onBackPress);
+ return () => subscription.remove();
+ }, [canGoBack])
+ );
+
+ // Reload the WebView
+ const handleReload = () => {
+ setError(null);
+ setLoading(true);
+ webViewRef.current?.reload();
+ };
+
+ // Go back in WebView history
+ const handleGoBack = () => {
+ if (canGoBack && webViewRef.current) {
+ webViewRef.current.goBack();
+ }
+ };
+
+ // Build the full URL
+ const fullUrl = `${WEB_BASE_URL}${path}`;
+
+ // Error view
+ if (error) {
+ return (
+
+ !
+ Connection Error
+ {error}
+
+ Try Again
+
+
+ );
+ }
+
+ return (
+
+ {/* Optional header with back button */}
+ {title && (
+
+ {canGoBack && (
+
+ {'<'}
+
+ )}
+ {title}
+
+ Reload
+
+
+ )}
+
+ {/* WebView */}
+ setLoading(true)}
+ onLoadEnd={() => setLoading(false)}
+ onError={(syntheticEvent) => {
+ const { nativeEvent } = syntheticEvent;
+ setError(nativeEvent.description || 'Failed to load page');
+ setLoading(false);
+ }}
+ onHttpError={(syntheticEvent) => {
+ const { nativeEvent } = syntheticEvent;
+ if (nativeEvent.statusCode >= 400) {
+ setError(`HTTP Error: ${nativeEvent.statusCode}`);
+ }
+ }}
+ onNavigationStateChange={(navState) => {
+ setCanGoBack(navState.canGoBack);
+ onNavigationStateChange?.(navState.canGoBack);
+ }}
+ // Security settings
+ javaScriptEnabled={true}
+ domStorageEnabled={true}
+ sharedCookiesEnabled={true}
+ thirdPartyCookiesEnabled={true}
+ // Performance settings
+ cacheEnabled={true}
+ cacheMode="LOAD_DEFAULT"
+ // UI settings
+ showsHorizontalScrollIndicator={false}
+ showsVerticalScrollIndicator={true}
+ bounces={true}
+ pullToRefreshEnabled={true}
+ // Behavior settings
+ allowsBackForwardNavigationGestures={true}
+ allowsInlineMediaPlayback={true}
+ mediaPlaybackRequiresUserAction={false}
+ // Debugging (dev only)
+ webviewDebuggingEnabled={__DEV__}
+ />
+
+ {/* Loading overlay */}
+ {loading && (
+
+
+ Loading...
+
+ )}
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ },
+ header: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ backgroundColor: '#FFFFFF',
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ headerTitle: {
+ flex: 1,
+ fontSize: 18,
+ fontWeight: '700',
+ color: '#000',
+ textAlign: 'center',
+ },
+ backButton: {
+ padding: 8,
+ marginRight: 8,
+ },
+ backButtonText: {
+ fontSize: 24,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ reloadButton: {
+ padding: 8,
+ },
+ reloadButtonText: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ webView: {
+ flex: 1,
+ },
+ loadingOverlay: {
+ ...StyleSheet.absoluteFillObject,
+ backgroundColor: 'rgba(255, 255, 255, 0.9)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ loadingText: {
+ marginTop: 12,
+ fontSize: 14,
+ color: '#666',
+ },
+ errorContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ backgroundColor: '#FFFFFF',
+ },
+ errorIcon: {
+ fontSize: 48,
+ color: KurdistanColors.sor,
+ marginBottom: 16,
+ fontWeight: '700',
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: '700',
+ color: '#000',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 16,
+ fontWeight: '600',
+ },
+});
+
+export default PezkuwiWebView;
diff --git a/mobile/src/components/PrivacyPolicyModal.tsx b/mobile/src/components/PrivacyPolicyModal.tsx
new file mode 100644
index 00000000..ea457fe9
--- /dev/null
+++ b/mobile/src/components/PrivacyPolicyModal.tsx
@@ -0,0 +1,215 @@
+import React from 'react';
+import {
+ Modal,
+ View,
+ Text,
+ ScrollView,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+
+interface PrivacyPolicyModalProps {
+ visible: boolean;
+ onClose: () => void;
+}
+
+const PrivacyPolicyModal: React.FC = ({ visible, onClose }) => {
+ return (
+
+
+
+ Privacy Policy
+
+ ✕
+
+
+
+
+ Data Minimization Principle
+
+ Pezkuwi collects the MINIMUM data necessary to provide blockchain wallet functionality.
+ We operate on a "your keys, your coins, your responsibility" model.
+
+
+ What Data We Collect
+
+ Stored LOCALLY on Your Device (NOT sent to Pezkuwi servers):
+
+ • Private Keys / Seed Phrase: Encrypted and stored in device secure storage
+ • Account Balance: Cached from blockchain queries
+ • Transaction History: Cached from blockchain queries
+ • Settings: Language preference, theme, biometric settings
+
+
+ Stored on Supabase (Third-party service):
+
+ • Profile Information: Username, email (if provided), avatar image
+ • Citizenship Applications: Application data if you apply for citizenship
+ • Forum Posts: Public posts and comments
+
+
+ Stored on Blockchain (Public, immutable):
+
+ • Transactions: All transactions are publicly visible on PezkuwiChain
+ • Account Address: Your public address is visible to all
+
+
+ Never Collected:
+
+ • Browsing History: We don't track which screens you visit
+ • Device Identifiers: No IMEI, MAC address, or advertising ID collection
+ • Location Data: No GPS or location tracking
+ • Contact Lists: We don't access your contacts
+ • Third-party Analytics: No Google Analytics, Facebook Pixel, or similar trackers
+
+
+ Why We Need Permissions
+
+ Internet (REQUIRED)
+
+ • Connect to PezkuwiChain blockchain RPC endpoint{'\n'}
+ • Query balances and transaction history{'\n'}
+ • Submit transactions
+
+
+ Storage (REQUIRED)
+
+ • Save encrypted seed phrase locally{'\n'}
+ • Cache account data for offline viewing{'\n'}
+ • Store profile avatar
+
+
+ Camera (OPTIONAL)
+
+ • Take profile photos{'\n'}
+ • Scan QR codes for payments{'\n'}
+ • Capture NFT images
+
+
+ Biometric (OPTIONAL)
+
+ • Secure authentication for transactions{'\n'}
+ • Protect seed phrase viewing{'\n'}
+ • Alternative to password entry
+
+
+ Notifications (OPTIONAL)
+
+ • Alert you to incoming transfers{'\n'}
+ • Notify staking reward claims{'\n'}
+ • Governance proposal notifications
+
+
+ Zero-Knowledge Proofs & Encryption
+
+ Citizenship applications are encrypted using ZK-proofs (Zero-Knowledge Proofs).
+ This means:
+
+
+ • Your personal data is encrypted before storage
+ • Only a cryptographic hash is stored on the blockchain
+ • Your data is uploaded to IPFS (decentralized storage) in encrypted form
+ • Even if someone accesses the data, they cannot decrypt it without your private key
+
+
+ Your Data Rights
+
+ • Export Data: You can export your seed phrase and account data anytime
+ • Delete Data: Delete your local data by uninstalling the app
+ • Supabase Data: Contact support@pezkuwichain.io to delete profile data
+
+
+ Contact
+
+ For privacy concerns: privacy@pezkuwichain.io{'\n'}
+ General support: info@pezkuwichain.io
+
+
+
+ Last updated: {new Date().toLocaleDateString()}{'\n'}
+ © {new Date().getFullYear()} PezkuwiChain
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ },
+ header: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ padding: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E5E5E5',
+ },
+ headerTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ closeButton: {
+ padding: 8,
+ },
+ closeButtonText: {
+ fontSize: 24,
+ color: KurdistanColors.reş,
+ },
+ content: {
+ flex: 1,
+ padding: 20,
+ },
+ sectionTitle: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginTop: 24,
+ marginBottom: 12,
+ },
+ subsectionTitle: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginTop: 16,
+ marginBottom: 8,
+ },
+ paragraph: {
+ fontSize: 14,
+ lineHeight: 22,
+ color: '#333',
+ marginBottom: 12,
+ },
+ bulletList: {
+ marginBottom: 12,
+ },
+ bulletItem: {
+ fontSize: 14,
+ lineHeight: 22,
+ color: '#333',
+ marginBottom: 6,
+ },
+ bold: {
+ fontWeight: '600',
+ },
+ footer: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ marginTop: 32,
+ marginBottom: 32,
+ },
+});
+
+export default PrivacyPolicyModal;
diff --git a/mobile/src/components/TermsOfServiceModal.tsx b/mobile/src/components/TermsOfServiceModal.tsx
new file mode 100644
index 00000000..4066008b
--- /dev/null
+++ b/mobile/src/components/TermsOfServiceModal.tsx
@@ -0,0 +1,249 @@
+import React from 'react';
+import {
+ Modal,
+ View,
+ Text,
+ ScrollView,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+
+interface TermsOfServiceModalProps {
+ visible: boolean;
+ onClose: () => void;
+}
+
+const TermsOfServiceModal: React.FC = ({ visible, onClose }) => {
+ return (
+
+
+
+ Terms of Service
+
+ ✕
+
+
+
+
+ 1. Acceptance of Terms
+
+ By accessing or using the Pezkuwi mobile application ("App"), you agree to be bound by these
+ Terms of Service ("Terms"). If you do not agree to these Terms, do not use the App.
+
+
+ 2. Description of Service
+
+ Pezkuwi is a non-custodial blockchain wallet and governance platform that allows users to:
+
+
+ • Manage blockchain accounts and private keys
+ • Send and receive cryptocurrency tokens
+ • Participate in decentralized governance
+ • Apply for digital citizenship
+ • Access educational content and earn rewards
+
+
+ 3. User Responsibilities
+
+ 3.1 Account Security
+
+ You are solely responsible for:
+
+
+ • Maintaining the confidentiality of your seed phrase and private keys
+ • All activities that occur under your account
+ • Securing your device with appropriate passcodes and biometric authentication
+
+
+ 3.2 Prohibited Activities
+
+ You agree NOT to:
+
+
+ • Use the App for any illegal or unauthorized purpose
+ • Attempt to gain unauthorized access to other users' accounts
+ • Interfere with or disrupt the App or servers
+ • Upload malicious code or viruses
+ • Engage in fraudulent transactions or money laundering
+ • Create fake identities or impersonate others
+
+
+ 4. Non-Custodial Nature
+
+ Pezkuwi is a non-custodial wallet. This means:
+
+
+ • We DO NOT have access to your private keys or funds
+ • We CANNOT recover your funds if you lose your seed phrase
+ • We CANNOT reverse transactions or freeze accounts
+ • You have full control and full responsibility for your assets
+
+
+ 5. Blockchain Transactions
+
+ When you submit a transaction:
+
+
+ • Transactions are irreversible once confirmed on the blockchain
+ • Transaction fees (gas) are determined by network demand
+ • We are not responsible for transaction failures due to insufficient fees
+ • You acknowledge the risks of blockchain technology
+
+
+ 6. Digital Citizenship
+
+ Citizenship applications:
+
+
+ • Require KYC (Know Your Customer) verification
+ • Are subject to approval by governance mechanisms
+ • Involve storing encrypted personal data on IPFS
+ • Can be revoked if fraudulent information is detected
+
+
+ 7. Disclaimer of Warranties
+
+ THE APP IS PROVIDED "AS IS" WITHOUT WARRANTIES OF ANY KIND. WE DO NOT GUARANTEE:
+
+
+ • Uninterrupted or error-free service
+ • Accuracy of displayed data or prices
+ • Security from unauthorized access or hacking
+ • Protection from loss of funds due to user error
+
+
+ 8. Limitation of Liability
+
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, PEZKUWI SHALL NOT BE LIABLE FOR:
+
+
+ • Loss of funds due to forgotten seed phrases
+ • Unauthorized transactions from compromised devices
+ • Network congestion or blockchain failures
+ • Price volatility of cryptocurrencies
+ • Third-party services (IPFS, Supabase, RPC providers)
+
+
+ 9. Intellectual Property
+
+ The Pezkuwi App, including its design, code, and content, is protected by copyright and trademark laws.
+ You may not:
+
+
+ • Copy, modify, or distribute the App without permission
+ • Reverse engineer or decompile the App
+ • Use the Pezkuwi name or logo without authorization
+
+
+ 10. Governing Law
+
+ These Terms shall be governed by the laws of decentralized autonomous organizations (DAOs)
+ and international arbitration. Disputes will be resolved through community governance mechanisms
+ when applicable.
+
+
+ 11. Changes to Terms
+
+ We reserve the right to modify these Terms at any time. Changes will be effective upon posting
+ in the App. Your continued use of the App constitutes acceptance of modified Terms.
+
+
+ 12. Termination
+
+ We may terminate or suspend your access to the App at any time for violations of these Terms.
+ You may stop using the App at any time by deleting it from your device.
+
+
+ 13. Contact
+
+ For questions about these Terms:{'\n'}
+ Email: legal@pezkuwichain.io{'\n'}
+ Support: info@pezkuwichain.io{'\n'}
+ Website: https://pezkuwichain.io
+
+
+
+ Last updated: {new Date().toLocaleDateString()}{'\n'}
+ © {new Date().getFullYear()} PezkuwiChain
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ },
+ header: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ padding: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E5E5E5',
+ },
+ headerTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ closeButton: {
+ padding: 8,
+ },
+ closeButtonText: {
+ fontSize: 24,
+ color: KurdistanColors.reş,
+ },
+ content: {
+ flex: 1,
+ padding: 20,
+ },
+ sectionTitle: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginTop: 24,
+ marginBottom: 12,
+ },
+ subsectionTitle: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginTop: 16,
+ marginBottom: 8,
+ },
+ paragraph: {
+ fontSize: 14,
+ lineHeight: 22,
+ color: '#333',
+ marginBottom: 12,
+ },
+ bulletList: {
+ marginBottom: 12,
+ },
+ bulletItem: {
+ fontSize: 14,
+ lineHeight: 22,
+ color: '#333',
+ marginBottom: 6,
+ },
+ footer: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ marginTop: 32,
+ marginBottom: 32,
+ },
+});
+
+export default TermsOfServiceModal;
diff --git a/mobile/src/components/ValidatorSelectionSheet.tsx b/mobile/src/components/ValidatorSelectionSheet.tsx
new file mode 100644
index 00000000..a520337e
--- /dev/null
+++ b/mobile/src/components/ValidatorSelectionSheet.tsx
@@ -0,0 +1,199 @@
+import React, { useState, useEffect } from 'react';
+import { View, Text, FlatList, ActivityIndicator, Alert, StyleSheet, TouchableOpacity } from 'react-native';
+import { BottomSheet, Button } from './index'; // Assuming these are exported from index.ts or index.tsx in the same folder
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { KurdistanColors, AppColors } from '../theme/colors';
+
+interface Validator {
+ address: string;
+ commission: number;
+ totalStake: string; // Formatted balance
+ selfStake: string; // Formatted balance
+ nominators: number;
+ // Add other relevant validator info
+}
+
+interface ValidatorSelectionSheetProps {
+ visible: boolean;
+ onClose: () => void;
+ onConfirmNominations: (validators: string[]) => void;
+ // Add other props like currentNominations if needed
+}
+
+export function ValidatorSelectionSheet({
+ visible,
+ onClose,
+ onConfirmNominations,
+}: ValidatorSelectionSheetProps) {
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
+ const [validators, setValidators] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [processing, setProcessing] = useState(false);
+ const [selectedValidators, setSelectedValidators] = useState([]);
+
+ // Fetch real validators from chain
+ useEffect(() => {
+ const fetchValidators = async () => {
+ if (!api || !isApiReady) return;
+
+ setLoading(true);
+ try {
+ const chainValidators: Validator[] = [];
+ // Attempt to fetch from pallet-validator-pool first
+ if (api.query.validatorPool && api.query.validatorPool.validators) {
+ const rawValidators = await api.query.validatorPool.validators();
+ // Assuming rawValidators is a list of validator addresses or objects
+ // This parsing logic will need adjustment based on the exact structure returned
+ for (const rawValidator of rawValidators.toHuman() as any[]) { // Adjust 'any' based on actual type
+ // Placeholder: Assume rawValidator is just an address for now
+ chainValidators.push({
+ address: rawValidator.toString(), // or rawValidator.address if it's an object
+ commission: 0.05, // Placeholder: Fetch actual commission
+ totalStake: '0 HEZ', // Placeholder: Fetch actual stake
+ selfStake: '0 HEZ', // Placeholder: Fetch actual self stake
+ nominators: 0, // Placeholder: Fetch actual nominators
+ });
+ }
+ } else {
+ // Fallback to general staking validators if validatorPool pallet is not found/used
+ const rawStakingValidators = await api.query.staking.validators();
+ for (const validatorAddress of rawStakingValidators.keys) {
+ const address = validatorAddress.args[0].toString();
+ // Fetch more details about each validator if needed, e.g., commission, total stake
+ const validatorPrefs = await api.query.staking.validators(address);
+ const commission = validatorPrefs.commission.toNumber() / 10_000_000; // Assuming 10^7 for percentage
+
+ // For simplicity, total stake and nominators are placeholders for now
+ // A more complete implementation would query for detailed exposure
+ chainValidators.push({
+ address: address,
+ commission: commission,
+ totalStake: 'Fetching...',
+ selfStake: 'Fetching...',
+ nominators: 0,
+ });
+ }
+ }
+
+ setValidators(chainValidators);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching validators:', error);
+ Alert.alert('Error', 'Failed to fetch validators.');
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ fetchValidators();
+ }, [api, isApiReady]);
+
+
+ const toggleValidatorSelection = (address: string) => {
+ setSelectedValidators(prev =>
+ prev.includes(address)
+ ? prev.filter(item => item !== address)
+ : [...prev, address]
+ );
+ };
+
+ const handleConfirm = () => {
+ if (selectedValidators.length === 0) {
+ Alert.alert('Selection Required', 'Please select at least one validator.');
+ return;
+ }
+ // Pass selected validators to parent component to initiate transaction
+ onConfirmNominations(selectedValidators);
+ onClose();
+ };
+
+ const renderValidatorItem = ({ item }: { item: Validator }) => (
+ toggleValidatorSelection(item.address)}
+ >
+
+
+ {item.address.substring(0, 8)}...{item.address.substring(item.address.length - 6)}
+
+ Commission: {item.commission * 100}%
+ Total Stake: {item.totalStake}
+ Self Stake: {item.selfStake}
+ Nominators: {item.nominators}
+
+ {selectedValidators.includes(item.address) && (
+
+ ✔
+
+ )}
+
+ );
+
+ return (
+
+ {loading ? (
+
+ ) : (
+ item.address}
+ renderItem={renderValidatorItem}
+ style={styles.list}
+ />
+ )}
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ list: {
+ maxHeight: 400, // Adjust as needed
+ },
+ validatorItem: {
+ padding: 15,
+ borderBottomWidth: 1,
+ borderBottomColor: '#eee',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 8,
+ marginBottom: 8,
+ },
+ selectedValidatorItem: {
+ borderColor: KurdistanColors.kesk,
+ borderWidth: 2,
+ },
+ validatorAddress: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ validatorDetail: {
+ fontSize: 12,
+ color: AppColors.textSecondary,
+ },
+ selectedIndicator: {
+ backgroundColor: KurdistanColors.kesk,
+ width: 24,
+ height: 24,
+ borderRadius: 12,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ selectedIndicatorText: {
+ color: KurdistanColors.spi,
+ fontSize: 14,
+ fontWeight: 'bold',
+ },
+});
diff --git a/mobile/src/components/index.ts b/mobile/src/components/index.ts
index d1fd2537..246b56df 100644
--- a/mobile/src/components/index.ts
+++ b/mobile/src/components/index.ts
@@ -15,3 +15,5 @@ export { AddressDisplay } from './AddressDisplay';
export { BalanceCard } from './BalanceCard';
export { TokenSelector } from './TokenSelector';
export type { Token } from './TokenSelector';
+export { default as PezkuwiWebView } from './PezkuwiWebView';
+export type { PezkuwiWebViewProps } from './PezkuwiWebView';
diff --git a/mobile/src/components/navigation/SharedHeader.tsx b/mobile/src/components/navigation/SharedHeader.tsx
new file mode 100644
index 00000000..c84cbf53
--- /dev/null
+++ b/mobile/src/components/navigation/SharedHeader.tsx
@@ -0,0 +1,226 @@
+import React from 'react';
+import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { KurdistanColors } from '../../theme/colors';
+import type { StackHeaderProps } from '@react-navigation/stack';
+
+interface GradientHeaderProps extends StackHeaderProps {
+ subtitle?: string;
+ rightButtons?: React.ReactNode;
+ gradientColors?: [string, string];
+}
+
+export const GradientHeader: React.FC = ({
+ navigation,
+ options,
+ route,
+ subtitle,
+ rightButtons,
+ gradientColors = [KurdistanColors.kesk, '#008f43'],
+}) => {
+ const title = options.headerTitle !== undefined
+ ? options.headerTitle
+ : options.title !== undefined
+ ? options.title
+ : route.name;
+
+ const canGoBack = navigation.canGoBack();
+
+ return (
+
+
+
+ {canGoBack && (
+ navigation.goBack()}
+ style={styles.backButton}
+ >
+ ←
+
+ )}
+
+
+
+ {title}
+ {subtitle && {subtitle}}
+
+
+ {rightButtons}
+
+
+ );
+};
+
+interface SimpleHeaderProps extends StackHeaderProps {
+ rightButtons?: React.ReactNode;
+}
+
+export const SimpleHeader: React.FC = ({
+ navigation,
+ options,
+ route,
+ rightButtons,
+}) => {
+ const title = options.headerTitle !== undefined
+ ? options.headerTitle
+ : options.title !== undefined
+ ? options.title
+ : route.name;
+
+ const canGoBack = navigation.canGoBack();
+
+ return (
+
+
+
+ {canGoBack && (
+ navigation.goBack()}
+ style={styles.backButton}
+ >
+ ←
+
+ )}
+
+
+
+ {title}
+
+
+ {rightButtons}
+
+
+ );
+};
+
+export const BackButton: React.FC<{ onPress?: () => void; color?: string }> = ({
+ onPress,
+ color = '#FFFFFF',
+}) => {
+ return (
+
+ ←
+
+ );
+};
+
+interface AppBarHeaderProps extends StackHeaderProps {
+ rightButtons?: React.ReactNode;
+}
+
+export const AppBarHeader: React.FC = ({
+ navigation,
+ options,
+ route,
+ rightButtons,
+}) => {
+ const title = options.headerTitle !== undefined
+ ? options.headerTitle
+ : options.title !== undefined
+ ? options.title
+ : route.name;
+
+ const canGoBack = navigation.canGoBack();
+
+ return (
+
+
+
+ {canGoBack && (
+ navigation.goBack()}
+ style={styles.backButton}
+ >
+ ←
+
+ )}
+
+
+
+ {title}
+
+
+ {rightButtons}
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ gradientHeader: {
+ paddingTop: 50,
+ paddingBottom: 16,
+ paddingHorizontal: 16,
+ },
+ simpleHeader: {
+ paddingTop: 50,
+ paddingBottom: 16,
+ paddingHorizontal: 16,
+ backgroundColor: '#FFFFFF',
+ borderBottomWidth: 1,
+ borderBottomColor: '#E5E5E5',
+ },
+ headerContent: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerLeft: {
+ width: 60,
+ alignItems: 'flex-start',
+ },
+ headerCenter: {
+ flex: 1,
+ alignItems: 'center',
+ },
+ headerRight: {
+ width: 60,
+ alignItems: 'flex-end',
+ },
+ headerTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ headerSubtitle: {
+ fontSize: 12,
+ color: 'rgba(255, 255, 255, 0.8)',
+ marginTop: 2,
+ },
+ simpleHeaderTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ },
+ backButton: {
+ padding: 8,
+ },
+ backButtonText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ simpleBackButtonText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ appBarHeader: {
+ paddingTop: 50,
+ paddingBottom: 16,
+ paddingHorizontal: 16,
+ backgroundColor: '#FFFFFF',
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
+ elevation: 4,
+ },
+ appBarTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ },
+ appBarBackButtonText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+});
diff --git a/mobile/src/components/navigation/SharedHeader.tsx.bak b/mobile/src/components/navigation/SharedHeader.tsx.bak
new file mode 100644
index 00000000..a5b58865
--- /dev/null
+++ b/mobile/src/components/navigation/SharedHeader.tsx.bak
@@ -0,0 +1,229 @@
+import React from 'react';
+import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { KurdistanColors } from '../../theme/colors';
+import type { StackHeaderProps } from '@react-navigation/stack';
+
+interface GradientHeaderProps extends StackHeaderProps {
+ subtitle?: string;
+ rightButtons?: React.ReactNode;
+ gradientColors?: [string, string];
+}
+
+export const GradientHeader: React.FC = ({
+ navigation,
+ options,
+ route,
+ subtitle,
+ rightButtons,
+ gradientColors = [KurdistanColors.kesk, '#008f43'],
+}) => {
+ const title = options.headerTitle !== undefined
+ ? options.headerTitle
+ : options.title !== undefined
+ ? options.title
+ : route.name;
+
+ const canGoBack = navigation.canGoBack();
+
+ return (
+
+
+
+ {canGoBack && (
+ navigation.goBack()}
+ style={styles.backButton}
+ >
+ ←
+
+ )}
+
+
+
+ {title}
+ {subtitle && {subtitle}}
+
+
+ {rightButtons}
+
+
+ );
+};
+
+interface SimpleHeaderProps extends StackHeaderProps {
+ rightButtons?: React.ReactNode;
+}
+
+export const SimpleHeader: React.FC = ({
+ navigation,
+ options,
+ route,
+ rightButtons,
+}) => {
+ const title = options.headerTitle !== undefined
+ ? options.headerTitle
+ : options.title !== undefined
+ ? options.title
+ : route.name;
+
+ const canGoBack = navigation.canGoBack();
+
+ return (
+
+
+
+ {canGoBack && (
+ navigation.goBack()}
+ style={styles.backButton}
+ >
+ ←
+
+ )}
+
+
+
+ {title}
+
+
+ {rightButtons}
+
+
+ );
+};
+
+export const BackButton: React.FC<{ onPress?: () => void; color?: string }> = ({
+ onPress,
+ color = '#FFFFFF',
+}) => {
+ return (
+
+ ←
+
+ );
+};
+
+interface AppBarHeaderProps extends StackHeaderProps {
+ rightButtons?: React.ReactNode;
+}
+
+export const AppBarHeader: React.FC = ({
+ navigation,
+ options,
+ route,
+ rightButtons,
+}) => {
+ const title = options.headerTitle !== undefined
+ ? options.headerTitle
+ : options.title !== undefined
+ ? options.title
+ : route.name;
+
+ const canGoBack = navigation.canGoBack();
+
+ return (
+
+
+
+ {canGoBack && (
+ navigation.goBack()}
+ style={styles.backButton}
+ >
+ ←
+
+ )}
+
+
+
+ {title}
+
+
+ {rightButtons}
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ gradientHeader: {
+ paddingTop: 50,
+ paddingBottom: 16,
+ paddingHorizontal: 16,
+ },
+ simpleHeader: {
+ paddingTop: 50,
+ paddingBottom: 16,
+ paddingHorizontal: 16,
+ backgroundColor: '#FFFFFF',
+ borderBottomWidth: 1,
+ borderBottomColor: '#E5E5E5',
+ },
+ headerContent: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerLeft: {
+ width: 60,
+ alignItems: 'flex-start',
+ },
+ headerCenter: {
+ flex: 1,
+ alignItems: 'center',
+ },
+ headerRight: {
+ width: 60,
+ alignItems: 'flex-end',
+ },
+ headerTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ headerSubtitle: {
+ fontSize: 12,
+ color: 'rgba(255, 255, 255, 0.8)',
+ marginTop: 2,
+ },
+ simpleHeaderTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ },
+ backButton: {
+ padding: 8,
+ },
+ backButtonText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ simpleBackButtonText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ appBarHeader: {
+ paddingTop: 50,
+ paddingBottom: 16,
+ paddingHorizontal: 16,
+ backgroundColor: '#FFFFFF',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 4,
+ },
+ appBarTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ },
+ appBarBackButtonText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+});
diff --git a/mobile/src/components/referral/InviteModal.tsx b/mobile/src/components/referral/InviteModal.tsx
new file mode 100644
index 00000000..96973414
--- /dev/null
+++ b/mobile/src/components/referral/InviteModal.tsx
@@ -0,0 +1,411 @@
+import React, { useState, useMemo } from 'react';
+import {
+ View,
+ Text,
+ Modal,
+ StyleSheet,
+ TouchableOpacity,
+ TextInput,
+ ScrollView,
+ Share,
+ Clipboard,
+ Alert,
+ Linking,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface InviteModalProps {
+ visible: boolean;
+ onClose: () => void;
+}
+
+export const InviteModal: React.FC = ({ visible, onClose }) => {
+ const { selectedAccount, api } = usePezkuwi();
+ const [copied, setCopied] = useState(false);
+ const [inviteeAddress, setInviteeAddress] = useState('');
+
+ // Generate referral link
+ const referralLink = useMemo(() => {
+ if (!selectedAccount?.address) return '';
+ // TODO: Update with actual app deep link or web URL
+ return `https://pezkuwi.net/be-citizen?ref=${selectedAccount.address}`;
+ }, [selectedAccount?.address]);
+
+ const shareText = useMemo(() => {
+ return `Join me on Digital Kurdistan (PezkuwiChain)! 🏛️\n\nBecome a citizen and get your Welati Tiki NFT.\n\nUse my referral link:\n${referralLink}`;
+ }, [referralLink]);
+
+ const handleCopy = () => {
+ Clipboard.setString(referralLink);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ Alert.alert('Copied!', 'Referral link copied to clipboard');
+ };
+
+ const handleNativeShare = async () => {
+ try {
+ await Share.share({
+ message: shareText,
+ title: 'Join Digital Kurdistan',
+ });
+ } catch (error) {
+ if (__DEV__) console.error('Share error:', error);
+ }
+ };
+
+ const handleSharePlatform = (platform: string) => {
+ const encodedText = encodeURIComponent(shareText);
+ const encodedUrl = encodeURIComponent(referralLink);
+
+ const urls: Record = {
+ whatsapp: `whatsapp://send?text=${encodedText}`,
+ telegram: `tg://msg?text=${encodedText}`,
+ twitter: `twitter://post?message=${encodedText}`,
+ email: `mailto:?subject=${encodeURIComponent('Join Digital Kurdistan')}&body=${encodedText}`,
+ };
+
+ if (urls[platform]) {
+ Linking.openURL(urls[platform]).catch(() => {
+ // Fallback to web URL if app not installed
+ const webUrls: Record = {
+ whatsapp: `https://wa.me/?text=${encodedText}`,
+ telegram: `https://t.me/share/url?url=${encodedUrl}&text=${encodeURIComponent('Join Digital Kurdistan! 🏛️')}`,
+ twitter: `https://twitter.com/intent/tweet?text=${encodedText}`,
+ };
+ if (webUrls[platform]) {
+ Linking.openURL(webUrls[platform]);
+ }
+ });
+ }
+ };
+
+ const handleInitiateReferral = async () => {
+ if (!api || !selectedAccount || !inviteeAddress) {
+ Alert.alert('Error', 'Please enter a valid address');
+ return;
+ }
+
+ try {
+ // TODO: Implement on-chain referral initiation
+ // const tx = api.tx.referral.initiateReferral(inviteeAddress);
+ // await tx.signAndSend(selectedAccount.address);
+ Alert.alert('Success', 'Referral initiated successfully!');
+ setInviteeAddress('');
+ } catch (error) {
+ if (__DEV__) console.error('Initiate referral error:', error);
+ Alert.alert('Error', 'Failed to initiate referral');
+ }
+ };
+
+ return (
+
+
+
+ {/* Header */}
+
+ Invite Friends
+
+ ✕
+
+
+
+
+
+ Share your referral link. When your friends complete KYC, you'll earn trust score points!
+
+
+ {/* Referral Link */}
+
+ Your Referral Link
+
+
+
+
+ {copied ? '✓' : '📋'}
+ {copied ? 'Copied!' : 'Copy Link'}
+
+
+ Anyone who signs up with this link will be counted as your referral
+
+
+
+ {/* Share Options */}
+
+ Share via
+
+
+ 📤
+ Share
+
+
+ handleSharePlatform('whatsapp')}
+ >
+ 💬
+ WhatsApp
+
+
+ handleSharePlatform('telegram')}
+ >
+ ✈️
+ Telegram
+
+
+ handleSharePlatform('twitter')}
+ >
+ 🐦
+ Twitter
+
+
+ handleSharePlatform('email')}
+ >
+ 📧
+ Email
+
+
+
+
+ {/* Advanced: Pre-register */}
+
+ Pre-Register a Friend (Advanced)
+
+ If you know your friend's wallet address, you can pre-register them on-chain.
+
+
+
+ Initiate Referral
+
+
+
+ {/* Rewards Info */}
+
+ Referral Rewards
+
+ • 1-10 referrals: 10 points each (up to 100)
+
+
+ • 11-50 referrals: 5 points each (up to 300)
+
+
+ • 51-100 referrals: 4 points each (up to 500)
+
+
+ • Maximum: 500 trust score points
+
+
+
+
+ {/* Footer */}
+
+ Done
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ justifyContent: 'flex-end',
+ },
+ modalContent: {
+ backgroundColor: '#FFFFFF',
+ borderTopLeftRadius: 24,
+ borderTopRightRadius: 24,
+ maxHeight: '90%',
+ },
+ modalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 20,
+ borderBottomWidth: 1,
+ borderBottomColor: '#F0F0F0',
+ },
+ modalTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ closeButton: {
+ width: 32,
+ height: 32,
+ borderRadius: 16,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ closeButtonText: {
+ fontSize: 18,
+ color: '#666',
+ },
+ modalBody: {
+ padding: 20,
+ },
+ modalDescription: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 20,
+ lineHeight: 20,
+ },
+ section: {
+ marginBottom: 24,
+ },
+ sectionLabel: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 12,
+ },
+ linkContainer: {
+ backgroundColor: '#F5F5F5',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 12,
+ },
+ linkInput: {
+ fontSize: 12,
+ color: '#333',
+ fontFamily: 'monospace',
+ },
+ copyButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 12,
+ borderRadius: 12,
+ marginBottom: 8,
+ gap: 8,
+ },
+ copyButtonIcon: {
+ fontSize: 16,
+ },
+ copyButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ hint: {
+ fontSize: 12,
+ color: '#999',
+ lineHeight: 16,
+ },
+ shareGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 12,
+ },
+ shareButton: {
+ flex: 1,
+ minWidth: '30%',
+ alignItems: 'center',
+ padding: 12,
+ backgroundColor: '#F5F5F5',
+ borderRadius: 12,
+ gap: 4,
+ },
+ shareButtonIcon: {
+ fontSize: 24,
+ },
+ shareButtonText: {
+ fontSize: 12,
+ fontWeight: '500',
+ color: '#666',
+ },
+ advancedSection: {
+ backgroundColor: '#E0F2FE',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 24,
+ },
+ addressInput: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 12,
+ fontSize: 12,
+ fontFamily: 'monospace',
+ color: '#333',
+ marginTop: 8,
+ marginBottom: 12,
+ borderWidth: 1,
+ borderColor: '#D1D5DB',
+ },
+ initiateButton: {
+ backgroundColor: '#3B82F6',
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ initiateButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ rewardsSection: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 20,
+ },
+ rewardsSectionTitle: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ marginBottom: 12,
+ },
+ rewardRow: {
+ marginBottom: 6,
+ },
+ rewardText: {
+ fontSize: 12,
+ color: '#666',
+ },
+ doneButton: {
+ backgroundColor: '#F5F5F5',
+ paddingVertical: 16,
+ marginHorizontal: 20,
+ marginBottom: 20,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ doneButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+});
diff --git a/mobile/src/components/wallet/AddTokenModal.tsx b/mobile/src/components/wallet/AddTokenModal.tsx
new file mode 100644
index 00000000..13c407b1
--- /dev/null
+++ b/mobile/src/components/wallet/AddTokenModal.tsx
@@ -0,0 +1,282 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ Modal,
+ StyleSheet,
+ TouchableOpacity,
+ TextInput,
+ ActivityIndicator,
+ Alert,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface AddTokenModalProps {
+ visible: boolean;
+ onClose: () => void;
+ onTokenAdded?: () => void;
+}
+
+export const AddTokenModal: React.FC = ({
+ visible,
+ onClose,
+ onTokenAdded,
+}) => {
+ const { api, isApiReady } = usePezkuwi();
+ const [assetId, setAssetId] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+ const [tokenMetadata, setTokenMetadata] = useState<{
+ symbol: string;
+ decimals: number;
+ name?: string;
+ } | null>(null);
+
+ const handleFetchMetadata = async () => {
+ if (!api || !isApiReady) {
+ Alert.alert('Error', 'API not ready');
+ return;
+ }
+
+ if (!assetId || isNaN(Number(assetId))) {
+ Alert.alert('Error', 'Please enter a valid asset ID');
+ return;
+ }
+
+ setIsLoading(true);
+ try {
+ const assetIdNum = Number(assetId);
+
+ // Fetch asset metadata
+ const metadataOption = await api.query.assets.metadata(assetIdNum);
+
+ if (metadataOption.isEmpty) {
+ Alert.alert('Error', 'Asset not found');
+ setTokenMetadata(null);
+ } else {
+ const metadata = metadataOption.toJSON() as any;
+ setTokenMetadata({
+ symbol: metadata.symbol || 'UNKNOWN',
+ decimals: metadata.decimals || 12,
+ name: metadata.name || 'Unknown Token',
+ });
+ }
+ } catch (error: any) {
+ console.error('Failed to fetch token metadata:', error);
+ Alert.alert('Error', 'Failed to fetch token metadata');
+ setTokenMetadata(null);
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ const handleAddToken = () => {
+ if (!tokenMetadata) {
+ Alert.alert('Error', 'Please fetch token metadata first');
+ return;
+ }
+
+ // Store the custom token in AsyncStorage or app state
+ // For now, just show success and call the callback
+ Alert.alert(
+ 'Success',
+ `Token ${tokenMetadata.symbol} (ID: ${assetId}) added to your wallet!`,
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ handleClose();
+ if (onTokenAdded) onTokenAdded();
+ },
+ },
+ ]
+ );
+ };
+
+ const handleClose = () => {
+ setAssetId('');
+ setTokenMetadata(null);
+ onClose();
+ };
+
+ return (
+
+
+
+ Add Custom Token
+
+
+ Enter the asset ID to add a custom token to your wallet
+
+
+
+
+
+ {isLoading ? (
+
+ ) : (
+ Fetch
+ )}
+
+
+
+ {tokenMetadata && (
+
+
+ Symbol:
+ {tokenMetadata.symbol}
+
+
+ Name:
+ {tokenMetadata.name}
+
+
+ Decimals:
+ {tokenMetadata.decimals}
+
+
+ )}
+
+
+
+ Cancel
+
+
+ Add Token
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 20,
+ },
+ modalCard: {
+ backgroundColor: 'white',
+ borderRadius: 20,
+ padding: 24,
+ width: '100%',
+ maxWidth: 400,
+ },
+ modalHeader: {
+ fontSize: 22,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 12,
+ textAlign: 'center',
+ },
+ instructions: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 20,
+ textAlign: 'center',
+ },
+ inputContainer: {
+ flexDirection: 'row',
+ gap: 12,
+ marginBottom: 20,
+ },
+ inputField: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ padding: 16,
+ borderRadius: 12,
+ fontSize: 16,
+ },
+ fetchButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ borderRadius: 12,
+ justifyContent: 'center',
+ alignItems: 'center',
+ minWidth: 80,
+ },
+ fetchButtonText: {
+ color: '#FFFFFF',
+ fontSize: 16,
+ fontWeight: '600',
+ },
+ metadataContainer: {
+ backgroundColor: '#F9F9F9',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 20,
+ },
+ metadataRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingVertical: 8,
+ },
+ metadataLabel: {
+ fontSize: 14,
+ color: '#666',
+ fontWeight: '500',
+ },
+ metadataValue: {
+ fontSize: 14,
+ color: '#333',
+ fontWeight: '600',
+ },
+ modalActions: {
+ flexDirection: 'row',
+ gap: 12,
+ },
+ btnCancel: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#EEE',
+ alignItems: 'center',
+ },
+ btnCancelText: {
+ fontSize: 16,
+ color: '#333',
+ fontWeight: '600',
+ },
+ btnConfirm: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center',
+ },
+ btnConfirmDisabled: {
+ backgroundColor: '#CCC',
+ },
+ btnConfirmText: {
+ fontSize: 16,
+ color: '#FFFFFF',
+ fontWeight: '600',
+ },
+});
diff --git a/mobile/src/config/environment.ts b/mobile/src/config/environment.ts
new file mode 100644
index 00000000..10224aae
--- /dev/null
+++ b/mobile/src/config/environment.ts
@@ -0,0 +1,101 @@
+/**
+ * Environment Configuration
+ *
+ * Centralized access to environment variables from .env files
+ * Use .env.development for dev mode, .env.production for production
+ */
+
+import Constants from 'expo-constants';
+
+export type Environment = 'development' | 'production' | 'staging';
+
+interface EnvConfig {
+ // Environment
+ env: Environment;
+ isDevelopment: boolean;
+ isProduction: boolean;
+ debug: boolean;
+
+ // Supabase
+ supabaseUrl: string;
+ supabaseAnonKey: string;
+
+ // Blockchain
+ network: string;
+ wsEndpoint: string;
+ chainName: string;
+ tokenSymbol: string;
+ tokenDecimals: number;
+ ss58Format: number;
+
+ // Feature Flags
+ enableTestAccounts: boolean;
+ enableMockData: boolean;
+ enableDebugMenu: boolean;
+ skipBiometric: boolean;
+
+ // API
+ apiUrl: string;
+ explorerUrl: string;
+}
+
+// Get value from expo-constants with fallback
+function getEnvVar(key: string, defaultValue: string = ''): string {
+ return Constants.expoConfig?.extra?.[key] || process.env[key] || defaultValue;
+}
+
+function getBoolEnvVar(key: string, defaultValue: boolean = false): boolean {
+ const value = getEnvVar(key, String(defaultValue));
+ return value === 'true' || value === '1';
+}
+
+function getNumberEnvVar(key: string, defaultValue: number = 0): number {
+ const value = getEnvVar(key, String(defaultValue));
+ return parseInt(value, 10) || defaultValue;
+}
+
+// Parse environment
+const envString = getEnvVar('EXPO_PUBLIC_ENV', 'development') as Environment;
+
+export const ENV: EnvConfig = {
+ // Environment
+ env: envString,
+ isDevelopment: envString === 'development',
+ isProduction: envString === 'production',
+ debug: getBoolEnvVar('EXPO_PUBLIC_DEBUG', false),
+
+ // Supabase
+ supabaseUrl: getEnvVar('EXPO_PUBLIC_SUPABASE_URL'),
+ supabaseAnonKey: getEnvVar('EXPO_PUBLIC_SUPABASE_ANON_KEY'),
+
+ // Blockchain
+ network: getEnvVar('EXPO_PUBLIC_NETWORK', 'development'),
+ wsEndpoint: getEnvVar('EXPO_PUBLIC_WS_ENDPOINT', 'wss://beta-rpc.pezkuwichain.io:19944'),
+ chainName: getEnvVar('EXPO_PUBLIC_CHAIN_NAME', 'PezkuwiChain'),
+ tokenSymbol: getEnvVar('EXPO_PUBLIC_CHAIN_TOKEN_SYMBOL', 'HEZ'),
+ tokenDecimals: getNumberEnvVar('EXPO_PUBLIC_CHAIN_TOKEN_DECIMALS', 12),
+ ss58Format: getNumberEnvVar('EXPO_PUBLIC_CHAIN_SS58_FORMAT', 42),
+
+ // Feature Flags
+ enableTestAccounts: getBoolEnvVar('EXPO_PUBLIC_ENABLE_TEST_ACCOUNTS', false),
+ enableMockData: getBoolEnvVar('EXPO_PUBLIC_ENABLE_MOCK_DATA', false),
+ enableDebugMenu: getBoolEnvVar('EXPO_PUBLIC_ENABLE_DEBUG_MENU', false),
+ skipBiometric: getBoolEnvVar('EXPO_PUBLIC_SKIP_BIOMETRIC', false),
+
+ // API
+ apiUrl: getEnvVar('EXPO_PUBLIC_API_URL', 'https://api.pezkuwichain.io'),
+ explorerUrl: getEnvVar('EXPO_PUBLIC_EXPLORER_URL', 'https://explorer.pezkuwichain.io'),
+};
+
+// Log environment on startup (dev only)
+if (ENV.isDevelopment && ENV.debug) {
+ console.log('🔧 Environment Config:', {
+ env: ENV.env,
+ network: ENV.network,
+ wsEndpoint: ENV.wsEndpoint,
+ testAccounts: ENV.enableTestAccounts,
+ mockData: ENV.enableMockData,
+ });
+}
+
+export default ENV;
diff --git a/mobile/src/config/index.ts b/mobile/src/config/index.ts
new file mode 100644
index 00000000..69ae3c23
--- /dev/null
+++ b/mobile/src/config/index.ts
@@ -0,0 +1,16 @@
+/**
+ * Configuration Index
+ *
+ * Central export point for all configuration
+ */
+
+export { ENV, type Environment } from './environment';
+export {
+ TEST_ACCOUNTS,
+ getTestAccount,
+ getDefaultTestAccount,
+ isTestAccountsEnabled,
+ getTestAccountAddresses,
+ isTestAccount,
+ type TestAccount,
+} from './testAccounts';
diff --git a/mobile/src/config/testAccounts.ts b/mobile/src/config/testAccounts.ts
new file mode 100644
index 00000000..033a95f8
--- /dev/null
+++ b/mobile/src/config/testAccounts.ts
@@ -0,0 +1,98 @@
+/**
+ * Test Accounts for Development
+ *
+ * Pre-funded test accounts (Alice, Bob, Charlie) for Zombienet development
+ * These are well-known test accounts with pre-funded balances
+ *
+ * ⚠️ WARNING: NEVER use these in production! Only for dev/testing.
+ */
+
+import ENV from './environment';
+
+export interface TestAccount {
+ name: string;
+ mnemonic: string;
+ address: string;
+ derivationPath?: string;
+ balance?: string;
+ description: string;
+}
+
+/**
+ * Standard Substrate test accounts (Alice, Bob, Charlie, etc.)
+ * These have pre-funded balances in dev chains
+ */
+export const TEST_ACCOUNTS: TestAccount[] = [
+ {
+ name: 'Alice',
+ mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk',
+ address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', // //Alice
+ description: 'Primary validator - Pre-funded development account',
+ balance: '1,000,000 HEZ',
+ },
+ {
+ name: 'Bob',
+ mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Bob',
+ address: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', // //Bob
+ description: 'Secondary validator - Pre-funded development account',
+ balance: '1,000,000 HEZ',
+ },
+ {
+ name: 'Charlie',
+ mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Charlie',
+ address: '5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y', // //Charlie
+ description: 'Test user - Pre-funded development account',
+ balance: '1,000,000 HEZ',
+ },
+ {
+ name: 'Dave',
+ mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Dave',
+ address: '5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy', // //Dave
+ description: 'Test user - Pre-funded development account',
+ balance: '1,000,000 HEZ',
+ },
+ {
+ name: 'Eve',
+ mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Eve',
+ address: '5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', // //Eve
+ description: 'Test user - Pre-funded development account',
+ balance: '1,000,000 HEZ',
+ },
+];
+
+/**
+ * Get test account by name
+ */
+export function getTestAccount(name: string): TestAccount | undefined {
+ return TEST_ACCOUNTS.find(acc => acc.name.toLowerCase() === name.toLowerCase());
+}
+
+/**
+ * Check if test accounts are enabled
+ */
+export function isTestAccountsEnabled(): boolean {
+ return ENV.enableTestAccounts && ENV.isDevelopment;
+}
+
+/**
+ * Get default test account (Alice)
+ */
+export function getDefaultTestAccount(): TestAccount {
+ return TEST_ACCOUNTS[0]; // Alice
+}
+
+/**
+ * Get all test account addresses
+ */
+export function getTestAccountAddresses(): string[] {
+ return TEST_ACCOUNTS.map(acc => acc.address);
+}
+
+/**
+ * Check if address is a test account
+ */
+export function isTestAccount(address: string): boolean {
+ return getTestAccountAddresses().includes(address);
+}
+
+export default TEST_ACCOUNTS;
diff --git a/mobile/src/contexts/LanguageContext.tsx b/mobile/src/contexts/LanguageContext.tsx
index 12b01d56..1a7b67ec 100644
--- a/mobile/src/contexts/LanguageContext.tsx
+++ b/mobile/src/contexts/LanguageContext.tsx
@@ -1,7 +1,10 @@
import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';
import { I18nManager } from 'react-native';
-import { saveLanguage, getCurrentLanguage, isRTL, LANGUAGE_KEY, languages } from '../i18n';
-import AsyncStorage from '@react-native-async-storage/async-storage';
+import { isRTL, languages } from '../i18n';
+import i18n from '../i18n';
+
+// Language is set at build time via environment variable
+const BUILD_LANGUAGE = process.env.EXPO_PUBLIC_DEFAULT_LANGUAGE || 'en';
interface Language {
code: string;
@@ -12,7 +15,6 @@ interface Language {
interface LanguageContextType {
currentLanguage: string;
- changeLanguage: (languageCode: string) => Promise;
isRTL: boolean;
hasSelectedLanguage: boolean;
availableLanguages: Language[];
@@ -21,52 +23,30 @@ interface LanguageContextType {
const LanguageContext = createContext(undefined);
export const LanguageProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
- const [currentLanguage, setCurrentLanguage] = useState(getCurrentLanguage());
- const [hasSelectedLanguage, setHasSelectedLanguage] = useState(false);
- const [currentIsRTL, setCurrentIsRTL] = useState(isRTL());
-
- const checkLanguageSelection = React.useCallback(async () => {
- try {
- const saved = await AsyncStorage.getItem(LANGUAGE_KEY);
- setHasSelectedLanguage(!!saved);
- } catch (error) {
- if (__DEV__) console.error('Failed to check language selection:', error);
- }
- }, []);
+ // Language is fixed at build time - no runtime switching
+ const [currentLanguage] = useState(BUILD_LANGUAGE);
+ const [currentIsRTL] = useState(isRTL(BUILD_LANGUAGE));
useEffect(() => {
- // Check if user has already selected a language
- // eslint-disable-next-line react-hooks/set-state-in-effect
- checkLanguageSelection();
- }, [checkLanguageSelection]);
+ // Initialize i18n with build-time language
+ i18n.changeLanguage(BUILD_LANGUAGE);
- const changeLanguage = async (languageCode: string) => {
- try {
- await saveLanguage(languageCode);
- setCurrentLanguage(languageCode);
- setHasSelectedLanguage(true);
+ // Set RTL if needed
+ const isRTLLanguage = ['ar', 'ckb', 'fa'].includes(BUILD_LANGUAGE);
+ I18nManager.allowRTL(isRTLLanguage);
+ I18nManager.forceRTL(isRTLLanguage);
- const newIsRTL = isRTL(languageCode);
- setCurrentIsRTL(newIsRTL);
-
- // Update RTL layout if needed
- if (I18nManager.isRTL !== newIsRTL) {
- // Note: Changing RTL requires app restart in React Native
- I18nManager.forceRTL(newIsRTL);
- // You may want to show a message to restart the app
- }
- } catch (error) {
- if (__DEV__) console.error('Failed to change language:', error);
+ if (__DEV__) {
+ console.log(`[LanguageContext] Build language: ${BUILD_LANGUAGE}, RTL: ${isRTLLanguage}`);
}
- };
+ }, []);
return (
diff --git a/mobile/src/contexts/PezkuwiContext.tsx b/mobile/src/contexts/PezkuwiContext.tsx
new file mode 100644
index 00000000..b26bf8d8
--- /dev/null
+++ b/mobile/src/contexts/PezkuwiContext.tsx
@@ -0,0 +1,449 @@
+import React, { createContext, useContext, useEffect, useState, ReactNode } from 'react';
+import { Keyring } from '@pezkuwi/keyring';
+import { KeyringPair } from '@pezkuwi/keyring/types';
+import { ApiPromise, WsProvider } from '@pezkuwi/api';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import * as SecureStore from 'expo-secure-store';
+import { cryptoWaitReady, mnemonicGenerate } from '@pezkuwi/util-crypto';
+import { ENV } from '../config/environment';
+
+interface Account {
+ address: string;
+ name: string;
+ meta?: {
+ name?: string;
+ };
+}
+
+export type NetworkType = 'pezkuwi' | 'dicle' | 'zagros' | 'bizinikiwi';
+
+export interface NetworkConfig {
+ name: string;
+ displayName: string;
+ rpcEndpoint: string;
+ ss58Format: number;
+ type: 'mainnet' | 'testnet' | 'canary';
+}
+
+export const NETWORKS: Record = {
+ pezkuwi: {
+ name: 'pezkuwi',
+ displayName: 'Pezkuwi Mainnet',
+ rpcEndpoint: 'wss://rpc-mainnet.pezkuwichain.io:9944',
+ ss58Format: 42,
+ type: 'mainnet',
+ },
+ dicle: {
+ name: 'dicle',
+ displayName: 'Dicle Testnet',
+ rpcEndpoint: 'wss://rpc-dicle.pezkuwichain.io:9944',
+ ss58Format: 2,
+ type: 'testnet',
+ },
+ zagros: {
+ name: 'zagros',
+ displayName: 'Zagros Canary',
+ rpcEndpoint: 'wss://rpc-zagros.pezkuwichain.io:9944',
+ ss58Format: 42,
+ type: 'canary',
+ },
+ bizinikiwi: {
+ name: 'bizinikiwi',
+ displayName: 'Bizinikiwi Testnet (Beta)',
+ rpcEndpoint: ENV.wsEndpoint || 'wss://rpc.pezkuwichain.io:9944',
+ ss58Format: 42,
+ type: 'testnet',
+ },
+};
+
+interface PezkuwiContextType {
+ // Chain state
+ api: ApiPromise | null;
+ isApiReady: boolean;
+ // Keyring state
+ isReady: boolean;
+ accounts: Account[];
+ selectedAccount: Account | null;
+ setSelectedAccount: (account: Account | null) => void;
+ // Network management
+ currentNetwork: NetworkType;
+ switchNetwork: (network: NetworkType) => Promise;
+ // Wallet operations
+ connectWallet: () => Promise;
+ disconnectWallet: () => void;
+ createWallet: (name: string, mnemonic?: string) => Promise<{ address: string; mnemonic: string }>;
+ importWallet: (name: string, mnemonic: string) => Promise<{ address: string }>;
+ getKeyPair: (address: string) => Promise;
+ signMessage: (address: string, message: string) => Promise;
+ error: string | null;
+}
+
+const PezkuwiContext = createContext(undefined);
+
+const WALLET_STORAGE_KEY = '@pezkuwi_wallets';
+const SELECTED_ACCOUNT_KEY = '@pezkuwi_selected_account';
+const SELECTED_NETWORK_KEY = '@pezkuwi_selected_network';
+
+interface PezkuwiProviderProps {
+ children: ReactNode;
+}
+
+export const PezkuwiProvider: React.FC = ({ children }) => {
+ const [api, setApi] = useState(null);
+ const [isApiReady, setIsApiReady] = useState(false);
+ const [isReady, setIsReady] = useState(false);
+ const [accounts, setAccounts] = useState([]);
+ const [selectedAccount, setSelectedAccount] = useState(null);
+ const [currentNetwork, setCurrentNetwork] = useState('bizinikiwi');
+ const [error, setError] = useState(null);
+ const [keyring, setKeyring] = useState(null);
+
+ // Load saved network on mount
+ useEffect(() => {
+ const loadNetwork = async () => {
+ try {
+ const savedNetwork = await AsyncStorage.getItem(SELECTED_NETWORK_KEY);
+ if (savedNetwork && savedNetwork in NETWORKS) {
+ setCurrentNetwork(savedNetwork as NetworkType);
+ }
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to load network:', err);
+ }
+ };
+
+ loadNetwork();
+ }, []);
+
+ // Initialize blockchain connection
+ useEffect(() => {
+ let retryTimeout: NodeJS.Timeout;
+ let isSubscribed = true;
+
+ const initApi = async () => {
+ try {
+ console.log('🔗 [Pezkuwi] Starting API initialization...');
+ setIsApiReady(false);
+ setError(null); // Clear previous errors
+
+ const networkConfig = NETWORKS[currentNetwork];
+ console.log(`🌐 [Pezkuwi] Connecting to ${networkConfig.displayName} at ${networkConfig.rpcEndpoint}`);
+
+ const provider = new WsProvider(networkConfig.rpcEndpoint);
+ console.log('📡 [Pezkuwi] WsProvider created, creating API...');
+ const newApi = await ApiPromise.create({ provider });
+ console.log('✅ [Pezkuwi] API created successfully');
+
+ if (isSubscribed) {
+ setApi(newApi);
+ setIsApiReady(true);
+ setError(null); // Clear any previous errors
+ console.log('✅ [Pezkuwi] Connected to', networkConfig.displayName);
+ }
+ } catch (err) {
+ console.error('❌ [Pezkuwi] Failed to connect to blockchain:', err);
+ console.error('❌ [Pezkuwi] Error details:', JSON.stringify(err, null, 2));
+
+ if (isSubscribed) {
+ setError('Failed to connect to blockchain. Check your internet connection.');
+ setIsApiReady(false); // ✅ FIX: Don't set ready on error
+ setApi(null); // ✅ FIX: Clear API on error
+
+ // Retry connection after 5 seconds
+ console.log('🔄 [Pezkuwi] Will retry connection in 5 seconds...');
+ retryTimeout = setTimeout(() => {
+ if (isSubscribed) {
+ console.log('🔄 [Pezkuwi] Retrying blockchain connection...');
+ initApi();
+ }
+ }, 5000);
+ }
+ }
+ };
+
+ initApi();
+
+ // Cleanup on network change or unmount
+ return () => {
+ isSubscribed = false;
+ if (retryTimeout) {
+ clearTimeout(retryTimeout);
+ }
+ if (api) {
+ api.disconnect();
+ }
+ };
+ }, [currentNetwork]);
+
+ // Initialize crypto and keyring
+ useEffect(() => {
+ const initCrypto = async () => {
+ try {
+ console.log('🔐 [Pezkuwi] Starting crypto initialization...');
+ console.log('⏳ [Pezkuwi] Waiting for crypto libraries...');
+
+ await cryptoWaitReady();
+ console.log('✅ [Pezkuwi] Crypto wait ready completed');
+
+ const networkConfig = NETWORKS[currentNetwork];
+ console.log(`🌐 [Pezkuwi] Creating keyring for ${networkConfig.displayName}`);
+
+ const kr = new Keyring({ type: 'sr25519', ss58Format: networkConfig.ss58Format });
+ setKeyring(kr);
+ setIsReady(true);
+ console.log('✅ [Pezkuwi] Crypto libraries initialized successfully');
+ } catch (err) {
+ console.error('❌ [Pezkuwi] Failed to initialize crypto:', err);
+ console.error('❌ [Pezkuwi] Error details:', JSON.stringify(err, null, 2));
+ setError('Failed to initialize crypto libraries');
+ // Still set ready to allow app to work without crypto
+ setIsReady(true);
+ }
+ };
+
+ initCrypto();
+ }, [currentNetwork]);
+
+ // Load stored accounts on mount
+ useEffect(() => {
+ const loadAccounts = async () => {
+ try {
+ const stored = await AsyncStorage.getItem(WALLET_STORAGE_KEY);
+ if (stored) {
+ const wallets = JSON.parse(stored);
+ setAccounts(wallets);
+
+ // Load selected account
+ const selectedAddr = await AsyncStorage.getItem(SELECTED_ACCOUNT_KEY);
+ if (selectedAddr) {
+ const account = wallets.find((w: Account) => w.address === selectedAddr);
+ if (account) {
+ setSelectedAccount(account);
+ }
+ }
+ }
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to load accounts:', err);
+ }
+ };
+
+ loadAccounts();
+ }, []);
+
+ // Create a new wallet
+ const createWallet = async (
+ name: string,
+ mnemonic?: string
+ ): Promise<{ address: string; mnemonic: string }> => {
+ if (!keyring) {
+ throw new Error('Keyring not initialized');
+ }
+
+ try {
+ // Generate or use provided mnemonic
+ const mnemonicPhrase = mnemonic || mnemonicGenerate(12);
+
+ // Create account from mnemonic
+ const pair = keyring.addFromMnemonic(mnemonicPhrase, { name });
+
+ const newAccount: Account = {
+ address: pair.address,
+ name,
+ meta: { name },
+ };
+
+ // Store account (address only, not the seed!)
+ const updatedAccounts = [...accounts, newAccount];
+ setAccounts(updatedAccounts);
+ await AsyncStorage.setItem(WALLET_STORAGE_KEY, JSON.stringify(updatedAccounts));
+
+ // SECURITY: Store encrypted seed in SecureStore (hardware-backed storage)
+ const seedKey = `pezkuwi_seed_${pair.address}`;
+ await SecureStore.setItemAsync(seedKey, mnemonicPhrase);
+
+ if (__DEV__) console.log('[Pezkuwi] Wallet created:', pair.address);
+
+ return {
+ address: pair.address,
+ mnemonic: mnemonicPhrase,
+ };
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to create wallet:', err);
+ throw new Error('Failed to create wallet');
+ }
+ };
+
+ // Import existing wallet from mnemonic
+ const importWallet = async (
+ name: string,
+ mnemonic: string
+ ): Promise<{ address: string }> => {
+ if (!keyring) {
+ throw new Error('Keyring not initialized');
+ }
+
+ try {
+ // Create account from mnemonic
+ const pair = keyring.addFromMnemonic(mnemonic.trim(), { name });
+
+ // Check if account already exists
+ if (accounts.some(a => a.address === pair.address)) {
+ throw new Error('Wallet already exists');
+ }
+
+ const newAccount: Account = {
+ address: pair.address,
+ name,
+ meta: { name },
+ };
+
+ // Store account
+ const updatedAccounts = [...accounts, newAccount];
+ setAccounts(updatedAccounts);
+ await AsyncStorage.setItem(WALLET_STORAGE_KEY, JSON.stringify(updatedAccounts));
+
+ // Store seed securely
+ const seedKey = `pezkuwi_seed_${pair.address}`;
+ await SecureStore.setItemAsync(seedKey, mnemonic.trim());
+
+ if (__DEV__) console.log('[Pezkuwi] Wallet imported:', pair.address);
+
+ return { address: pair.address };
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to import wallet:', err);
+ throw err;
+ }
+ };
+
+ // Get keypair for signing transactions
+ const getKeyPair = async (address: string): Promise => {
+ if (!keyring) {
+ throw new Error('Keyring not initialized');
+ }
+
+ try {
+ // SECURITY: Load seed from SecureStore (encrypted storage)
+ const seedKey = `pezkuwi_seed_${address}`;
+ const mnemonic = await SecureStore.getItemAsync(seedKey);
+
+ if (!mnemonic) {
+ if (__DEV__) console.error('[Pezkuwi] No seed found for address:', address);
+ return null;
+ }
+
+ // Recreate keypair from mnemonic
+ const pair = keyring.addFromMnemonic(mnemonic);
+ return pair;
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to get keypair:', err);
+ return null;
+ }
+ };
+
+ // Sign a message with the keypair
+ const signMessage = async (address: string, message: string): Promise => {
+ try {
+ const pair = await getKeyPair(address);
+ if (!pair) {
+ return null;
+ }
+
+ // Sign the message
+ const signature = pair.sign(message);
+ // Convert to hex string
+ const signatureHex = Buffer.from(signature).toString('hex');
+ return signatureHex;
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to sign message:', err);
+ return null;
+ }
+ };
+
+ // Connect wallet (load existing accounts)
+ const connectWallet = async () => {
+ try {
+ setError(null);
+
+ if (accounts.length === 0) {
+ setError('No wallets found. Please create a wallet first.');
+ return;
+ }
+
+ // Auto-select first account if none selected
+ if (!selectedAccount && accounts.length > 0) {
+ setSelectedAccount(accounts[0]);
+ await AsyncStorage.setItem(SELECTED_ACCOUNT_KEY, accounts[0].address);
+ }
+
+ if (__DEV__) console.log(`[Pezkuwi] Connected with ${accounts.length} account(s)`);
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Wallet connection failed:', err);
+ setError('Failed to connect wallet');
+ }
+ };
+
+ // Disconnect wallet
+ const disconnectWallet = () => {
+ setSelectedAccount(null);
+ AsyncStorage.removeItem(SELECTED_ACCOUNT_KEY);
+ if (__DEV__) console.log('[Pezkuwi] Wallet disconnected');
+ };
+
+ // Switch network
+ const switchNetwork = async (network: NetworkType) => {
+ try {
+ if (network === currentNetwork) {
+ return;
+ }
+
+ if (__DEV__) console.log('[Pezkuwi] Switching to network:', NETWORKS[network].displayName);
+
+ // Save network preference
+ await AsyncStorage.setItem(SELECTED_NETWORK_KEY, network);
+
+ // Update state (will trigger useEffect to reconnect)
+ setCurrentNetwork(network);
+ setIsApiReady(false);
+
+ if (__DEV__) console.log('[Pezkuwi] Network switched successfully');
+ } catch (err) {
+ if (__DEV__) console.error('[Pezkuwi] Failed to switch network:', err);
+ setError('Failed to switch network');
+ }
+ };
+
+ // Update selected account storage when it changes
+ useEffect(() => {
+ if (selectedAccount) {
+ AsyncStorage.setItem(SELECTED_ACCOUNT_KEY, selectedAccount.address);
+ }
+ }, [selectedAccount]);
+
+ const value: PezkuwiContextType = {
+ api,
+ isApiReady,
+ isReady,
+ accounts,
+ selectedAccount,
+ setSelectedAccount,
+ currentNetwork,
+ switchNetwork,
+ connectWallet,
+ disconnectWallet,
+ createWallet,
+ importWallet,
+ getKeyPair,
+ signMessage,
+ error,
+ };
+
+ return {children};
+};
+
+// Hook to use Pezkuwi context
+export const usePezkuwi = (): PezkuwiContextType => {
+ const context = useContext(PezkuwiContext);
+ if (!context) {
+ throw new Error('usePezkuwi must be used within PezkuwiProvider');
+ }
+ return context;
+};
\ No newline at end of file
diff --git a/mobile/src/contexts/PolkadotContext.tsx b/mobile/src/contexts/PolkadotContext.tsx
deleted file mode 100644
index f5091096..00000000
--- a/mobile/src/contexts/PolkadotContext.tsx
+++ /dev/null
@@ -1,269 +0,0 @@
-import React, { createContext, useContext, useEffect, useState, ReactNode } from 'react';
-import { ApiPromise, WsProvider } from '@pezkuwi/api';
-import { Keyring } from '@pezkuwi/keyring';
-import { KeyringPair } from '@pezkuwi/keyring/types';
-import AsyncStorage from '@react-native-async-storage/async-storage';
-import * as SecureStore from 'expo-secure-store';
-import { cryptoWaitReady } from '@pezkuwi/util-crypto';
-import { DEFAULT_ENDPOINT } from '../../../shared/blockchain/polkadot';
-
-interface Account {
- address: string;
- name: string;
- meta?: {
- name?: string;
- };
-}
-
-interface PolkadotContextType {
- api: ApiPromise | null;
- isApiReady: boolean;
- isConnected: boolean;
- accounts: Account[];
- selectedAccount: Account | null;
- setSelectedAccount: (account: Account | null) => void;
- connectWallet: () => Promise;
- disconnectWallet: () => void;
- createWallet: (name: string, mnemonic?: string) => Promise<{ address: string; mnemonic: string }>;
- getKeyPair: (address: string) => Promise;
- error: string | null;
-}
-
-const PolkadotContext = createContext(undefined);
-
-const WALLET_STORAGE_KEY = '@pezkuwi_wallets';
-const SELECTED_ACCOUNT_KEY = '@pezkuwi_selected_account';
-
-interface PolkadotProviderProps {
- children: ReactNode;
- endpoint?: string;
-}
-
-export const PolkadotProvider: React.FC = ({
- children,
- endpoint = DEFAULT_ENDPOINT, // Beta testnet RPC from shared config
-}) => {
- const [api, setApi] = useState(null);
- const [isApiReady, setIsApiReady] = useState(false);
- const [accounts, setAccounts] = useState([]);
- const [selectedAccount, setSelectedAccount] = useState(null);
- const [error, setError] = useState(null);
- const [keyring, setKeyring] = useState(null);
-
- // Initialize crypto and keyring
- useEffect(() => {
- const initCrypto = async () => {
- try {
- await cryptoWaitReady();
- const kr = new Keyring({ type: 'sr25519' });
- setKeyring(kr);
- if (__DEV__) console.warn('✅ Crypto libraries initialized');
- } catch (err) {
- if (__DEV__) console.error('❌ Failed to initialize crypto:', err);
- setError('Failed to initialize crypto libraries');
- }
- };
-
- initCrypto();
- }, []);
-
- // Initialize Polkadot API
- useEffect(() => {
- const initApi = async () => {
- try {
- if (__DEV__) console.warn('🔗 Connecting to Pezkuwi node:', endpoint);
-
- const provider = new WsProvider(endpoint);
- const apiInstance = await ApiPromise.create({ provider });
-
- await apiInstance.isReady;
-
- setApi(apiInstance);
- setIsApiReady(true);
- setError(null);
-
- if (__DEV__) console.warn('✅ Connected to Pezkuwi node');
-
- // Get chain info
- const [chain, nodeName, nodeVersion] = await Promise.all([
- apiInstance.rpc.system.chain(),
- apiInstance.rpc.system.name(),
- apiInstance.rpc.system.version(),
- ]);
-
- if (__DEV__) {
- console.warn(`📡 Chain: ${chain}`);
- console.warn(`🖥️ Node: ${nodeName} v${nodeVersion}`);
- }
- } catch (err) {
- if (__DEV__) console.error('❌ Failed to connect to node:', err);
- setError(`Failed to connect to node: ${endpoint}`);
- setIsApiReady(false);
- }
- };
-
- initApi();
-
- return () => {
- if (api) {
- api.disconnect();
- }
- };
- }, [endpoint, api]);
-
- // Load stored accounts on mount
- useEffect(() => {
- const loadAccounts = async () => {
- try {
- const stored = await AsyncStorage.getItem(WALLET_STORAGE_KEY);
- if (stored) {
- const wallets = JSON.parse(stored);
- setAccounts(wallets);
-
- // Load selected account
- const selectedAddr = await AsyncStorage.getItem(SELECTED_ACCOUNT_KEY);
- if (selectedAddr) {
- const account = wallets.find((w: Account) => w.address === selectedAddr);
- if (account) {
- setSelectedAccount(account);
- }
- }
- }
- } catch (err) {
- if (__DEV__) console.error('Failed to load accounts:', err);
- }
- };
-
- loadAccounts();
- }, []);
-
- // Create a new wallet
- const createWallet = async (
- name: string,
- mnemonic?: string
- ): Promise<{ address: string; mnemonic: string }> => {
- if (!keyring) {
- throw new Error('Keyring not initialized');
- }
-
- try {
- // Generate or use provided mnemonic
- const mnemonicPhrase = mnemonic || Keyring.prototype.generateMnemonic();
-
- // Create account from mnemonic
- const pair = keyring.addFromMnemonic(mnemonicPhrase, { name });
-
- const newAccount: Account = {
- address: pair.address,
- name,
- meta: { name },
- };
-
- // Store account (address only, not the seed!)
- const updatedAccounts = [...accounts, newAccount];
- setAccounts(updatedAccounts);
- await AsyncStorage.setItem(WALLET_STORAGE_KEY, JSON.stringify(updatedAccounts));
-
- // SECURITY: Store encrypted seed in SecureStore (encrypted hardware-backed storage)
- const seedKey = `pezkuwi_seed_${pair.address}`;
- await SecureStore.setItemAsync(seedKey, mnemonicPhrase);
-
- if (__DEV__) console.warn('✅ Wallet created:', pair.address);
-
- return {
- address: pair.address,
- mnemonic: mnemonicPhrase,
- };
- } catch (err) {
- if (__DEV__) console.error('❌ Failed to create wallet:', err);
- throw new Error('Failed to create wallet');
- }
- };
-
- // Get keypair for signing transactions
- const getKeyPair = async (address: string): Promise => {
- if (!keyring) {
- throw new Error('Keyring not initialized');
- }
-
- try {
- // SECURITY: Load seed from SecureStore (encrypted storage)
- const seedKey = `pezkuwi_seed_${address}`;
- const mnemonic = await SecureStore.getItemAsync(seedKey);
-
- if (!mnemonic) {
- if (__DEV__) console.error('No seed found for address:', address);
- return null;
- }
-
- // Recreate keypair from mnemonic
- const pair = keyring.addFromMnemonic(mnemonic);
- return pair;
- } catch (err) {
- if (__DEV__) console.error('Failed to get keypair:', err);
- return null;
- }
- };
-
- // Connect wallet (load existing accounts)
- const connectWallet = async () => {
- try {
- setError(null);
-
- if (accounts.length === 0) {
- setError('No wallets found. Please create a wallet first.');
- return;
- }
-
- // Auto-select first account if none selected
- if (!selectedAccount && accounts.length > 0) {
- setSelectedAccount(accounts[0]);
- await AsyncStorage.setItem(SELECTED_ACCOUNT_KEY, accounts[0].address);
- }
-
- if (__DEV__) console.warn(`✅ Connected with ${accounts.length} account(s)`);
- } catch (err) {
- if (__DEV__) console.error('❌ Wallet connection failed:', err);
- setError('Failed to connect wallet');
- }
- };
-
- // Disconnect wallet
- const disconnectWallet = () => {
- setSelectedAccount(null);
- AsyncStorage.removeItem(SELECTED_ACCOUNT_KEY);
- if (__DEV__) console.warn('🔌 Wallet disconnected');
- };
-
- // Update selected account storage when it changes
- useEffect(() => {
- if (selectedAccount) {
- AsyncStorage.setItem(SELECTED_ACCOUNT_KEY, selectedAccount.address);
- }
- }, [selectedAccount]);
-
- const value: PolkadotContextType = {
- api,
- isApiReady,
- isConnected: isApiReady,
- accounts,
- selectedAccount,
- setSelectedAccount,
- connectWallet,
- disconnectWallet,
- createWallet,
- getKeyPair,
- error,
- };
-
- return {children};
-};
-
-// Hook to use Polkadot context
-export const usePolkadot = (): PolkadotContextType => {
- const context = useContext(PolkadotContext);
- if (!context) {
- throw new Error('usePolkadot must be used within PolkadotProvider');
- }
- return context;
-};
diff --git a/mobile/src/contexts/__tests__/PolkadotContext.test.tsx b/mobile/src/contexts/__tests__/PezkuwiContext.test.tsx
similarity index 67%
rename from mobile/src/contexts/__tests__/PolkadotContext.test.tsx
rename to mobile/src/contexts/__tests__/PezkuwiContext.test.tsx
index dbfc01b3..bf9bc092 100644
--- a/mobile/src/contexts/__tests__/PolkadotContext.test.tsx
+++ b/mobile/src/contexts/__tests__/PezkuwiContext.test.tsx
@@ -1,20 +1,20 @@
import React from 'react';
import { renderHook, act, waitFor } from '@testing-library/react-native';
-import { PolkadotProvider, usePolkadot } from '../PolkadotContext';
+import { PezkuwiProvider, usePezkuwi } from './PezkuwiContext';
import { ApiPromise } from '@pezkuwi/api';
// Wrapper for provider
const wrapper = ({ children }: { children: React.ReactNode }) => (
- {children}
+ {children}
);
-describe('PolkadotContext', () => {
+describe('PezkuwiContext', () => {
beforeEach(() => {
jest.clearAllMocks();
});
- it('should provide polkadot context', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ it('should provide pezkuwi context', () => {
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
expect(result.current).toBeDefined();
expect(result.current.api).toBeNull();
@@ -23,7 +23,7 @@ describe('PolkadotContext', () => {
});
it('should initialize API connection', async () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
await waitFor(() => {
expect(result.current.isApiReady).toBe(false); // Mock doesn't complete
@@ -31,14 +31,14 @@ describe('PolkadotContext', () => {
});
it('should provide connectWallet function', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
expect(result.current.connectWallet).toBeDefined();
expect(typeof result.current.connectWallet).toBe('function');
});
it('should handle disconnectWallet', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
act(() => {
result.current.disconnectWallet();
@@ -48,14 +48,14 @@ describe('PolkadotContext', () => {
});
it('should provide setSelectedAccount function', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
expect(result.current.setSelectedAccount).toBeDefined();
expect(typeof result.current.setSelectedAccount).toBe('function');
});
it('should set selected account', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
const testAccount = { address: '5test', name: 'Test Account' };
@@ -67,31 +67,31 @@ describe('PolkadotContext', () => {
});
it('should provide getKeyPair function', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
expect(result.current.getKeyPair).toBeDefined();
expect(typeof result.current.getKeyPair).toBe('function');
});
- it('should throw error when usePolkadot is used outside provider', () => {
+ it('should throw error when usePezkuwi is used outside provider', () => {
// Suppress console error for this test
const spy = jest.spyOn(console, 'error').mockImplementation(() => {});
expect(() => {
- renderHook(() => usePolkadot());
- }).toThrow('usePolkadot must be used within PolkadotProvider');
+ renderHook(() => usePezkuwi());
+ }).toThrow('usePezkuwi must be used within PezkuwiProvider');
spy.mockRestore();
});
it('should handle accounts array', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
expect(Array.isArray(result.current.accounts)).toBe(true);
});
it('should handle error state', () => {
- const { result } = renderHook(() => usePolkadot(), { wrapper });
+ const { result } = renderHook(() => usePezkuwi(), { wrapper });
expect(result.current.error).toBeDefined();
});
diff --git a/mobile/src/i18n/index.ts b/mobile/src/i18n/index.ts
index 0b7f29ed..c7c1c679 100644
--- a/mobile/src/i18n/index.ts
+++ b/mobile/src/i18n/index.ts
@@ -1,75 +1,55 @@
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
-import AsyncStorage from '@react-native-async-storage/async-storage';
// Import shared translations and language configurations
import {
- translations,
+ comprehensiveTranslations as translations,
LANGUAGES,
DEFAULT_LANGUAGE,
- LANGUAGE_STORAGE_KEY,
isRTL as checkIsRTL,
} from '../../../shared/i18n';
-// Language storage key (re-export for compatibility)
-export const LANGUAGE_KEY = LANGUAGE_STORAGE_KEY;
+// Language is set at build time via environment variable
+const BUILD_LANGUAGE = (process.env.EXPO_PUBLIC_DEFAULT_LANGUAGE || DEFAULT_LANGUAGE) as string;
// Available languages (re-export for compatibility)
export const languages = LANGUAGES;
-// Initialize i18n
-const initializeI18n = async () => {
- // Try to get saved language
- let savedLanguage = DEFAULT_LANGUAGE;
- try {
- const stored = await AsyncStorage.getItem(LANGUAGE_KEY);
- if (stored) {
- savedLanguage = stored;
- }
- } catch (error) {
- if (__DEV__) console.warn('Failed to load saved language:', error);
+// Initialize i18n with build-time language only
+const initializeI18n = () => {
+ if (__DEV__) {
+ console.log(`[i18n] Initializing with build language: ${BUILD_LANGUAGE}`);
}
i18n
.use(initReactI18next)
.init({
resources: {
- en: { translation: translations.en },
- tr: { translation: translations.tr },
- kmr: { translation: translations.kmr },
- ckb: { translation: translations.ckb },
- ar: { translation: translations.ar },
- fa: { translation: translations.fa },
+ // Only load the build-time language (reduces APK size)
+ [BUILD_LANGUAGE]: { translation: translations[BUILD_LANGUAGE as keyof typeof translations] },
},
- lng: savedLanguage,
- fallbackLng: DEFAULT_LANGUAGE,
+ lng: BUILD_LANGUAGE,
+ fallbackLng: BUILD_LANGUAGE,
compatibilityJSON: 'v3',
interpolation: {
escapeValue: false,
},
});
- return savedLanguage;
+ return BUILD_LANGUAGE;
};
-// Save language preference
-export const saveLanguage = async (languageCode: string) => {
- try {
- await AsyncStorage.setItem(LANGUAGE_KEY, languageCode);
- await i18n.changeLanguage(languageCode);
- } catch (error) {
- if (__DEV__) console.error('Failed to save language:', error);
- }
-};
-
-// Get current language
-export const getCurrentLanguage = () => i18n.language;
+// Get current language (always returns BUILD_LANGUAGE)
+export const getCurrentLanguage = () => BUILD_LANGUAGE;
// Check if language is RTL
export const isRTL = (languageCode?: string) => {
- const code = languageCode || i18n.language;
+ const code = languageCode || BUILD_LANGUAGE;
return checkIsRTL(code);
};
-export { initializeI18n };
+// Initialize i18n automatically
+initializeI18n();
+
+export { initializeI18n, BUILD_LANGUAGE };
export default i18n;
diff --git a/mobile/src/i18n/locales/ar.json b/mobile/src/i18n/locales/ar.json
index fec001b5..9a27a32a 100644
--- a/mobile/src/i18n/locales/ar.json
+++ b/mobile/src/i18n/locales/ar.json
@@ -138,12 +138,77 @@
},
"settings": {
"title": "الإعدادات",
- "language": "اللغة",
- "theme": "المظهر",
- "notifications": "الإشعارات",
- "security": "الأمان",
- "about": "حول",
- "logout": "تسجيل الخروج"
+ "sections": {
+ "appearance": "المظهر",
+ "language": "اللغة",
+ "security": "الأمان",
+ "notifications": "الإشعارات",
+ "about": "حول"
+ },
+ "appearance": {
+ "darkMode": "الوضع الداكن",
+ "darkModeSubtitle": "التبديل بين السمة الفاتحة والداكنة",
+ "fontSize": "حجم الخط",
+ "fontSizeSubtitle": "الحالي: {{size}}",
+ "fontSizePrompt": "اختر حجم الخط المفضل لديك",
+ "small": "صغير",
+ "medium": "متوسط",
+ "large": "كبير"
+ },
+ "language": {
+ "title": "اللغة",
+ "changePrompt": "التبديل إلى {{language}}؟",
+ "changeSuccess": "تم تحديث اللغة بنجاح!"
+ },
+ "security": {
+ "biometric": "المصادقة البيومترية",
+ "biometricSubtitle": "استخدم بصمة الإصبع أو التعرف على الوجه",
+ "biometricPrompt": "هل تريد تفعيل المصادقة البيومترية؟",
+ "biometricEnabled": "تم تفعيل المصادقة البيومترية",
+ "twoFactor": "المصادقة الثنائية",
+ "twoFactorSubtitle": "أضف طبقة أمان إضافية",
+ "twoFactorPrompt": "المصادقة الثنائية تضيف طبقة أمان إضافية.",
+ "twoFactorSetup": "إعداد",
+ "changePassword": "تغيير كلمة المرور",
+ "changePasswordSubtitle": "تحديث كلمة مرور حسابك"
+ },
+ "notifications": {
+ "push": "الإشعارات الفورية",
+ "pushSubtitle": "تلقي التنبيهات والتحديثات",
+ "email": "إشعارات البريد الإلكتروني",
+ "emailSubtitle": "إدارة تفضيلات البريد الإلكتروني"
+ },
+ "about": {
+ "pezkuwi": "حول بيزكوي",
+ "pezkuwiSubtitle": "تعرف أكثر على كردستان الرقمية",
+ "pezkuwiMessage": "بيزكوي هو منصة بلوكتشين لامركزية لكردستان الرقمية.\n\nالإصدار: 1.0.0\n\nصُنع بـ ❤️",
+ "terms": "شروط الخدمة",
+ "privacy": "سياسة الخصوصية",
+ "contact": "اتصل بالدعم",
+ "contactSubtitle": "احصل على مساعدة من فريقنا",
+ "contactEmail": "البريد الإلكتروني: support@pezkuwichain.io"
+ },
+ "version": {
+ "app": "بيزكوي موبايل",
+ "number": "الإصدار 1.0.0",
+ "copyright": "© 2026 كردستان الرقمية"
+ },
+ "alerts": {
+ "comingSoon": "قريباً",
+ "darkModeMessage": "الوضع الداكن سيكون متاحاً قريباً",
+ "twoFactorMessage": "إعداد المصادقة الثنائية سيكون متاحاً قريباً",
+ "passwordMessage": "تغيير كلمة المرور سيكون متاحاً قريباً",
+ "emailMessage": "إعدادات البريد الإلكتروني ستكون متاحة قريباً",
+ "termsMessage": "شروط الخدمة ستكون متاحة قريباً",
+ "privacyMessage": "سياسة الخصوصية ستكون متاحة قريباً"
+ },
+ "common": {
+ "enable": "تفعيل",
+ "cancel": "إلغاء",
+ "confirm": "تأكيد",
+ "success": "نجح",
+ "error": "خطأ"
+ }
},
"common": {
"cancel": "إلغاء",
@@ -160,4 +225,4 @@
"required": "مطلوب",
"optional": "اختياري"
}
-}
+}
\ No newline at end of file
diff --git a/mobile/src/i18n/locales/ckb.json b/mobile/src/i18n/locales/ckb.json
index ccb1254c..777ddb96 100644
--- a/mobile/src/i18n/locales/ckb.json
+++ b/mobile/src/i18n/locales/ckb.json
@@ -138,12 +138,77 @@
},
"settings": {
"title": "ڕێکخستنەکان",
- "language": "زمان",
- "theme": "ڕووکار",
- "notifications": "ئاگادارییەکان",
- "security": "پاراستن",
- "about": "دەربارە",
- "logout": "دەرچوون"
+ "sections": {
+ "appearance": "دەرکەوتن",
+ "language": "زمان",
+ "security": "ئاسایش",
+ "notifications": "ئاگادارییەکان",
+ "about": "دەربارە"
+ },
+ "appearance": {
+ "darkMode": "دۆخی تاریک",
+ "darkModeSubtitle": "لە نێوان دۆخی ڕووناک و تاریک بگۆڕە",
+ "fontSize": "قەبارەی فۆنت",
+ "fontSizeSubtitle": "ئێستا: {{size}}",
+ "fontSizePrompt": "قەبارەی فۆنتی دڵخوازت هەڵبژێرە",
+ "small": "بچووک",
+ "medium": "مامناوەند",
+ "large": "گەورە"
+ },
+ "language": {
+ "title": "زمان",
+ "changePrompt": "بگۆڕدرێت بۆ {{language}}؟",
+ "changeSuccess": "زمان بە سەرکەوتوویی نوێکرایەوە!"
+ },
+ "security": {
+ "biometric": "ناسینەوەی بایۆمێتریک",
+ "biometricSubtitle": "پەنجە نوێن یان ناسینەوەی ڕوخسار بەکاربهێنە",
+ "biometricPrompt": "دەتەوێت ناسینەوەی بایۆمێتریک چالاک بکەیت؟",
+ "biometricEnabled": "ناسینەوەی بایۆمێتریک چالاککرا",
+ "twoFactor": "ناسینەوەی دوو-هەنگاوی",
+ "twoFactorSubtitle": "چینێکی ئاسایشی زیادە زیاد بکە",
+ "twoFactorPrompt": "ناسینەوەی دوو-هەنگاوی چینێکی ئاسایشی زیادە زیاد دەکات.",
+ "twoFactorSetup": "ڕێکبخە",
+ "changePassword": "وشەی نهێنی بگۆڕە",
+ "changePasswordSubtitle": "وشەی نهێنی هەژمارەکەت نوێ بکەرەوە"
+ },
+ "notifications": {
+ "push": "ئاگادارییە خێراکان",
+ "pushSubtitle": "ئاگاداری و نوێکارییەکان وەربگرە",
+ "email": "ئاگادارییەکانی ئیمەیل",
+ "emailSubtitle": "هەڵبژاردنەکانی ئیمەیل بەڕێوەببە"
+ },
+ "about": {
+ "pezkuwi": "دەربارەی پێزکووی",
+ "pezkuwiSubtitle": "زیاتر دەربارەی کوردستانی دیجیتاڵ بزانە",
+ "pezkuwiMessage": "پێزکووی پلاتفۆرمێکی بلۆکچەینی ناناوەندییە بۆ کوردستانی دیجیتاڵ.\n\nوەشان: 1.0.0\n\nبە ❤️ دروستکرا",
+ "terms": "مەرجەکانی خزمەتگوزاری",
+ "privacy": "سیاسەتی تایبەتمەندی",
+ "contact": "پەیوەندی پشتگیری",
+ "contactSubtitle": "یارمەتی لە تیمەکەمان وەربگرە",
+ "contactEmail": "ئیمەیل: support@pezkuwichain.io"
+ },
+ "version": {
+ "app": "پێزکووی مۆبایل",
+ "number": "وەشان 1.0.0",
+ "copyright": "© 2026 کوردستانی دیجیتاڵ"
+ },
+ "alerts": {
+ "comingSoon": "بەم زووانە",
+ "darkModeMessage": "دۆخی تاریک لە نوێکردنەوەی داهاتوودا بەردەست دەبێت",
+ "twoFactorMessage": "ڕێکخستنی 2FA بەم زووانە بەردەست دەبێت",
+ "passwordMessage": "گۆڕینی وشەی نهێنی بەم زووانە بەردەست دەبێت",
+ "emailMessage": "ڕێکخستنەکانی ئیمەیل بەم زووانە بەردەست دەبن",
+ "termsMessage": "مەرجەکانی خزمەتگوزاری بەم زووانە بەردەست دەبن",
+ "privacyMessage": "سیاسەتی تایبەتمەندی بەم زووانە بەردەست دەبێت"
+ },
+ "common": {
+ "enable": "چالاککردن",
+ "cancel": "هەڵوەشاندنەوە",
+ "confirm": "پشتڕاستکردنەوە",
+ "success": "سەرکەوتوو",
+ "error": "هەڵە"
+ }
},
"common": {
"cancel": "هەڵوەشاندنەوە",
@@ -160,4 +225,4 @@
"required": "پێویستە",
"optional": "ئیختیاری"
}
-}
+}
\ No newline at end of file
diff --git a/mobile/src/i18n/locales/en.json b/mobile/src/i18n/locales/en.json
index ceb781bb..e6dbb09a 100644
--- a/mobile/src/i18n/locales/en.json
+++ b/mobile/src/i18n/locales/en.json
@@ -138,12 +138,77 @@
},
"settings": {
"title": "Settings",
- "language": "Language",
- "theme": "Theme",
- "notifications": "Notifications",
- "security": "Security",
- "about": "About",
- "logout": "Logout"
+ "sections": {
+ "appearance": "APPEARANCE",
+ "language": "LANGUAGE",
+ "security": "SECURITY",
+ "notifications": "NOTIFICATIONS",
+ "about": "ABOUT"
+ },
+ "appearance": {
+ "darkMode": "Dark Mode",
+ "darkModeSubtitle": "Switch between light and dark theme",
+ "fontSize": "Font Size",
+ "fontSizeSubtitle": "Current: {{size}}",
+ "fontSizePrompt": "Choose your preferred font size",
+ "small": "Small",
+ "medium": "Medium",
+ "large": "Large"
+ },
+ "language": {
+ "title": "Language",
+ "changePrompt": "Switch to {{language}}?",
+ "changeSuccess": "Language updated successfully!"
+ },
+ "security": {
+ "biometric": "Biometric Authentication",
+ "biometricSubtitle": "Use fingerprint or face recognition",
+ "biometricPrompt": "Do you want to enable biometric authentication (fingerprint/face recognition)?",
+ "biometricEnabled": "Biometric authentication enabled",
+ "twoFactor": "Two-Factor Authentication",
+ "twoFactorSubtitle": "Add an extra layer of security",
+ "twoFactorPrompt": "Two-factor authentication adds an extra layer of security. You will need to set up an authenticator app.",
+ "twoFactorSetup": "Set Up",
+ "changePassword": "Change Password",
+ "changePasswordSubtitle": "Update your account password"
+ },
+ "notifications": {
+ "push": "Push Notifications",
+ "pushSubtitle": "Receive alerts and updates",
+ "email": "Email Notifications",
+ "emailSubtitle": "Manage email preferences"
+ },
+ "about": {
+ "pezkuwi": "About Pezkuwi",
+ "pezkuwiSubtitle": "Learn more about Digital Kurdistan",
+ "pezkuwiMessage": "Pezkuwi is a decentralized blockchain platform for Digital Kurdistan, enabling citizens to participate in governance, economy, and social life.\n\nVersion: 1.0.0\n\nBuilt with ❤️ by the Digital Kurdistan team",
+ "terms": "Terms of Service",
+ "privacy": "Privacy Policy",
+ "contact": "Contact Support",
+ "contactSubtitle": "Get help from our team",
+ "contactEmail": "Email: support@pezkuwichain.io"
+ },
+ "version": {
+ "app": "Pezkuwi Mobile",
+ "number": "Version 1.0.0",
+ "copyright": "© 2026 Digital Kurdistan"
+ },
+ "alerts": {
+ "comingSoon": "Coming Soon",
+ "darkModeMessage": "Dark mode will be available in the next update",
+ "twoFactorMessage": "2FA setup will be available soon",
+ "passwordMessage": "Password change will be available soon",
+ "emailMessage": "Email settings will be available soon",
+ "termsMessage": "Terms of Service will be available soon",
+ "privacyMessage": "Privacy Policy will be available soon"
+ },
+ "common": {
+ "enable": "Enable",
+ "cancel": "Cancel",
+ "confirm": "Confirm",
+ "success": "Success",
+ "error": "Error"
+ }
},
"common": {
"cancel": "Cancel",
diff --git a/mobile/src/i18n/locales/kmr.json b/mobile/src/i18n/locales/kmr.json
index 279a654d..334e5453 100644
--- a/mobile/src/i18n/locales/kmr.json
+++ b/mobile/src/i18n/locales/kmr.json
@@ -137,13 +137,78 @@
"history": "Dîrok"
},
"settings": {
- "title": "Mîheng",
- "language": "Ziman",
- "theme": "Tema",
- "notifications": "Agahdarî",
- "security": "Ewlekarî",
- "about": "Derbarê",
- "logout": "Derkeve"
+ "title": "Mîhengên",
+ "sections": {
+ "appearance": "XUYANÎ",
+ "language": "ZIMAN",
+ "security": "EWLEHÎ",
+ "notifications": "AGAHDARÎ",
+ "about": "DER BARÊ"
+ },
+ "appearance": {
+ "darkMode": "Moda Tarî",
+ "darkModeSubtitle": "Di navbera moda ronî û tarî de biguherîne",
+ "fontSize": "Mezinahiya Nivîsê",
+ "fontSizeSubtitle": "Niha: {{size}}",
+ "fontSizePrompt": "Mezinahiya nivîsê ya xwe hilbijêre",
+ "small": "Piçûk",
+ "medium": "Nav",
+ "large": "Mezin"
+ },
+ "language": {
+ "title": "Ziman",
+ "changePrompt": "Biguherîne bo {{language}}?",
+ "changeSuccess": "Ziman bi serkeftî hate nûkirin!"
+ },
+ "security": {
+ "biometric": "Naskirina Bîyometrîk",
+ "biometricSubtitle": "Şopa tilî yan naskirina rû bikar bîne",
+ "biometricPrompt": "Hûn dixwazin naskirina bîyometrîk çalak bikin?",
+ "biometricEnabled": "Naskirina bîyometrîk çalak kirin",
+ "twoFactor": "Naskirina Du-Pîlan",
+ "twoFactorSubtitle": "Qateka ewlehiyê zêde bikin",
+ "twoFactorPrompt": "Naskirina du-pîlan qateka ewlehiyê zêde dike.",
+ "twoFactorSetup": "Saz Bike",
+ "changePassword": "Şîfreyê Biguherîne",
+ "changePasswordSubtitle": "Şîfreya hesabê xwe nû bike"
+ },
+ "notifications": {
+ "push": "Agahdariyên Zû",
+ "pushSubtitle": "Hişyarî û nûvekirinên werbigire",
+ "email": "Agahdariyên E-nameyê",
+ "emailSubtitle": "Vebijarkên e-nameyê birêve bibin"
+ },
+ "about": {
+ "pezkuwi": "Der barê Pezkuwi",
+ "pezkuwiSubtitle": "Zêdetir der barê Kurdistana Dîjîtal bizanin",
+ "pezkuwiMessage": "Pezkuwi platformek blockchain-ê ya bê-navend e ji bo Kurdistana Dîjîtal.\n\nGuherto: 1.0.0\n\nBi ❤️ hatiye çêkirin",
+ "terms": "Mercên Karûbarê",
+ "privacy": "Siyaseta Nepenîtiyê",
+ "contact": "Têkiliya Piştgiriyê",
+ "contactSubtitle": "Ji tîma me alîkarî bistînin",
+ "contactEmail": "E-name: support@pezkuwichain.io"
+ },
+ "version": {
+ "app": "Pezkuwi Mobîl",
+ "number": "Guherto 1.0.0",
+ "copyright": "© 2026 Kurdistana Dîjîtal"
+ },
+ "alerts": {
+ "comingSoon": "Zû tê",
+ "darkModeMessage": "Moda tarî di nûvekirina pêş de berdest dibe",
+ "twoFactorMessage": "Sazkirina 2FA zû berdest dibe",
+ "passwordMessage": "Guherandina şîfreyê zû berdest dibe",
+ "emailMessage": "Mîhengên e-nameyê zû berdest dibin",
+ "termsMessage": "Mercên karûbarê zû berdest dibin",
+ "privacyMessage": "Siyaseta nepenîtiyê zû berdest dibe"
+ },
+ "common": {
+ "enable": "Çalak Bike",
+ "cancel": "Betal Bike",
+ "confirm": "Pejirandin",
+ "success": "Serkeft",
+ "error": "Çewtî"
+ }
},
"common": {
"cancel": "Betal bike",
@@ -160,4 +225,4 @@
"required": "Hewce ye",
"optional": "Bijarte"
}
-}
+}
\ No newline at end of file
diff --git a/mobile/src/i18n/locales/tr.json b/mobile/src/i18n/locales/tr.json
index 99522c88..e86b390d 100644
--- a/mobile/src/i18n/locales/tr.json
+++ b/mobile/src/i18n/locales/tr.json
@@ -138,12 +138,77 @@
},
"settings": {
"title": "Ayarlar",
- "language": "Dil",
- "theme": "Tema",
- "notifications": "Bildirimler",
- "security": "Güvenlik",
- "about": "Hakkında",
- "logout": "Çıkış Yap"
+ "sections": {
+ "appearance": "GÖRÜNÜM",
+ "language": "DİL",
+ "security": "GÜVENLİK",
+ "notifications": "BİLDİRİMLER",
+ "about": "HAKKINDA"
+ },
+ "appearance": {
+ "darkMode": "Karanlık Mod",
+ "darkModeSubtitle": "Açık ve karanlık tema arasında geçiş yapın",
+ "fontSize": "Yazı Boyutu",
+ "fontSizeSubtitle": "Şu anki: {{size}}",
+ "fontSizePrompt": "Tercih ettiğiniz yazı boyutunu seçin",
+ "small": "Küçük",
+ "medium": "Orta",
+ "large": "Büyük"
+ },
+ "language": {
+ "title": "Dil",
+ "changePrompt": "{{language}} diline geçilsin mi?",
+ "changeSuccess": "Dil başarıyla güncellendi!"
+ },
+ "security": {
+ "biometric": "Biyometrik Kimlik Doğrulama",
+ "biometricSubtitle": "Parmak izi veya yüz tanıma kullanın",
+ "biometricPrompt": "Biyometrik kimlik doğrulamayı (parmak izi/yüz tanıma) etkinleştirmek istiyor musunuz?",
+ "biometricEnabled": "Biyometrik kimlik doğrulama etkinleştirildi",
+ "twoFactor": "İki Faktörlü Kimlik Doğrulama",
+ "twoFactorSubtitle": "Ekstra bir güvenlik katmanı ekleyin",
+ "twoFactorPrompt": "İki faktörlü kimlik doğrulama ekstra bir güvenlik katmanı ekler. Bir kimlik doğrulayıcı uygulama kurmanız gerekecek.",
+ "twoFactorSetup": "Kur",
+ "changePassword": "Şifre Değiştir",
+ "changePasswordSubtitle": "Hesap şifrenizi güncelleyin"
+ },
+ "notifications": {
+ "push": "Anlık Bildirimler",
+ "pushSubtitle": "Uyarılar ve güncellemeler alın",
+ "email": "E-posta Bildirimleri",
+ "emailSubtitle": "E-posta tercihlerini yönetin"
+ },
+ "about": {
+ "pezkuwi": "Pezkuwi Hakkında",
+ "pezkuwiSubtitle": "Dijital Kürdistan hakkında daha fazla bilgi edinin",
+ "pezkuwiMessage": "Pezkuwi, vatandaşların yönetişim, ekonomi ve sosyal yaşama katılımını sağlayan Dijital Kürdistan için merkezi olmayan bir blockchain platformudur.\n\nVersiyon: 1.0.0\n\nDijital Kürdistan ekibi tarafından ❤️ ile yapıldı",
+ "terms": "Hizmet Şartları",
+ "privacy": "Gizlilik Politikası",
+ "contact": "Destek İletişim",
+ "contactSubtitle": "Ekibimizden yardım alın",
+ "contactEmail": "E-posta: support@pezkuwichain.io"
+ },
+ "version": {
+ "app": "Pezkuwi Mobil",
+ "number": "Versiyon 1.0.0",
+ "copyright": "© 2026 Dijital Kürdistan"
+ },
+ "alerts": {
+ "comingSoon": "Yakında",
+ "darkModeMessage": "Karanlık mod bir sonraki güncellemede kullanılabilir olacak",
+ "twoFactorMessage": "2FA kurulumu yakında kullanılabilir olacak",
+ "passwordMessage": "Şifre değiştirme yakında kullanılabilir olacak",
+ "emailMessage": "E-posta ayarları yakında kullanılabilir olacak",
+ "termsMessage": "Hizmet Şartları yakında kullanılabilir olacak",
+ "privacyMessage": "Gizlilik Politikası yakında kullanılabilir olacak"
+ },
+ "common": {
+ "enable": "Etkinleştir",
+ "cancel": "İptal",
+ "confirm": "Onayla",
+ "success": "Başarılı",
+ "error": "Hata"
+ }
},
"common": {
"cancel": "İptal",
diff --git a/mobile/src/lib/supabase.ts b/mobile/src/lib/supabase.ts
index d6dd4433..52b9a4d5 100644
--- a/mobile/src/lib/supabase.ts
+++ b/mobile/src/lib/supabase.ts
@@ -1,18 +1,27 @@
+/**
+ * Supabase Client Configuration
+ *
+ * Centralized Supabase client for all database operations
+ * Used for: Forum, P2P Platform, Notifications, Referrals
+ */
+
import 'react-native-url-polyfill/auto';
import { createClient } from '@supabase/supabase-js';
import AsyncStorage from '@react-native-async-storage/async-storage';
+import { ENV } from '../config/environment';
// Initialize Supabase client from environment variables
-const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL || '';
-const supabaseKey = process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY || '';
+const supabaseUrl = ENV.supabaseUrl || '';
+const supabaseKey = ENV.supabaseAnonKey || '';
if (!supabaseUrl || !supabaseKey) {
if (__DEV__) {
- console.warn('Supabase credentials not found in environment variables');
+ console.warn('⚠️ [Supabase] Credentials not found in environment variables');
console.warn('Add EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to .env');
}
}
+// Create Supabase client
export const supabase = createClient(supabaseUrl, supabaseKey, {
auth: {
storage: AsyncStorage,
@@ -21,3 +30,185 @@ export const supabase = createClient(supabaseUrl, supabaseKey, {
detectSessionInUrl: false,
},
});
+
+// Database type definitions
+export interface ForumCategory {
+ id: string;
+ name: string;
+ description: string;
+ icon: string;
+ created_at: string;
+}
+
+export interface ForumDiscussion {
+ id: string;
+ category_id: string;
+ author_address: string;
+ author_name: string;
+ title: string;
+ content: string;
+ likes: number;
+ replies_count: number;
+ created_at: string;
+ updated_at: string;
+}
+
+export interface P2PAd {
+ id: string;
+ user_address: string;
+ type: 'buy' | 'sell';
+ merchant_name: string;
+ rating: number;
+ trades_count: number;
+ price: number;
+ currency: string;
+ amount: string;
+ min_limit: string;
+ max_limit: string;
+ payment_methods: string[];
+ status: 'active' | 'inactive' | 'completed';
+ created_at: string;
+ updated_at: string;
+}
+
+export interface Notification {
+ id: string;
+ user_address: string;
+ type: 'transaction' | 'governance' | 'p2p' | 'referral' | 'system';
+ title: string;
+ message: string;
+ read: boolean;
+ metadata?: any;
+ created_at: string;
+}
+
+export interface Referral {
+ id: string;
+ referrer_address: string;
+ referee_address: string;
+ status: 'pending' | 'active' | 'completed';
+ earnings: number;
+ created_at: string;
+ updated_at: string;
+}
+
+// Helper functions for common queries
+export const supabaseHelpers = {
+ // Forum
+ async getForumCategories() {
+ const { data, error } = await supabase
+ .from('forum_categories')
+ .select('*')
+ .order('name', { ascending: true });
+
+ if (error) throw error;
+ return data as ForumCategory[];
+ },
+
+ async getForumDiscussions(categoryId?: string) {
+ let query = supabase
+ .from('forum_discussions')
+ .select('*')
+ .order('created_at', { ascending: false });
+
+ if (categoryId) {
+ query = query.eq('category_id', categoryId);
+ }
+
+ const { data, error } = await query;
+ if (error) throw error;
+ return data as ForumDiscussion[];
+ },
+
+ // P2P
+ async getP2PAds(type?: 'buy' | 'sell') {
+ let query = supabase
+ .from('p2p_ads')
+ .select('*')
+ .eq('status', 'active')
+ .order('created_at', { ascending: false });
+
+ if (type) {
+ query = query.eq('type', type);
+ }
+
+ const { data, error } = await query;
+ if (error) throw error;
+ return data as P2PAd[];
+ },
+
+ // Notifications
+ async getUserNotifications(userAddress: string) {
+ const { data, error } = await supabase
+ .from('notifications')
+ .select('*')
+ .eq('user_address', userAddress)
+ .order('created_at', { ascending: false })
+ .limit(50);
+
+ if (error) throw error;
+ return data as Notification[];
+ },
+
+ async getUnreadNotificationsCount(userAddress: string) {
+ const { count, error } = await supabase
+ .from('notifications')
+ .select('*', { count: 'exact', head: true })
+ .eq('user_address', userAddress)
+ .eq('read', false);
+
+ if (error) throw error;
+ return count || 0;
+ },
+
+ async markNotificationAsRead(notificationId: string) {
+ const { error } = await supabase
+ .from('notifications')
+ .update({ read: true })
+ .eq('id', notificationId);
+
+ if (error) throw error;
+ },
+
+ async markAllNotificationsAsRead(userAddress: string) {
+ const { error } = await supabase
+ .from('notifications')
+ .update({ read: true })
+ .eq('user_address', userAddress)
+ .eq('read', false);
+
+ if (error) throw error;
+ },
+
+ // Referrals
+ async getUserReferrals(userAddress: string) {
+ const { data, error } = await supabase
+ .from('referrals')
+ .select('*')
+ .eq('referrer_address', userAddress)
+ .order('created_at', { ascending: false });
+
+ if (error) throw error;
+ return data as Referral[];
+ },
+
+ async getReferralStats(userAddress: string) {
+ const { data, error } = await supabase
+ .from('referrals')
+ .select('status, earnings')
+ .eq('referrer_address', userAddress);
+
+ if (error) throw error;
+
+ const stats = {
+ total: data?.length || 0,
+ active: data?.filter(r => r.status === 'active').length || 0,
+ completed: data?.filter(r => r.status === 'completed').length || 0,
+ totalEarnings: data?.reduce((sum, r) => sum + r.earnings, 0) || 0,
+ };
+
+ return stats;
+ },
+};
+
+export default supabase;
diff --git a/mobile/src/navigation/AppNavigator.tsx b/mobile/src/navigation/AppNavigator.tsx
index c32b48b1..5cbc4643 100644
--- a/mobile/src/navigation/AppNavigator.tsx
+++ b/mobile/src/navigation/AppNavigator.tsx
@@ -1,55 +1,59 @@
-import React, { useState, useEffect } from 'react';
+import React from 'react';
import { View, ActivityIndicator } from 'react-native';
import { createStackNavigator } from '@react-navigation/stack';
import { NavigationContainer } from '@react-navigation/native';
-import { useLanguage } from '../contexts/LanguageContext';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { useAuth } from '../contexts/AuthContext'; // Import useAuth
import { KurdistanColors } from '../theme/colors';
// Screens
import WelcomeScreen from '../screens/WelcomeScreen';
-import SignInScreen from '../screens/SignInScreen';
-import SignUpScreen from '../screens/SignUpScreen';
+import VerifyHumanScreen, { checkHumanVerification } from '../screens/VerifyHumanScreen';
+import AuthScreen from '../screens/AuthScreen';
import BottomTabNavigator from './BottomTabNavigator';
+import SettingsScreen from '../screens/SettingsScreen';
+import BeCitizenChoiceScreen from '../screens/BeCitizenChoiceScreen';
+import BeCitizenApplyScreen from '../screens/BeCitizenApplyScreen';
+import BeCitizenClaimScreen from '../screens/BeCitizenClaimScreen';
export type RootStackParamList = {
Welcome: undefined;
- SignIn: undefined;
- SignUp: undefined;
+ VerifyHuman: undefined;
+ Auth: undefined;
MainApp: undefined;
+ Settings: undefined;
+ BeCitizenChoice: undefined;
+ BeCitizenApply: undefined;
+ BeCitizenClaim: undefined;
};
const Stack = createStackNavigator();
const AppNavigator: React.FC = () => {
- const { hasSelectedLanguage } = useLanguage();
- const [isAuthenticated, setIsAuthenticated] = useState(false);
- const [isLoading, setIsLoading] = useState(true);
+ // Language is now hard-coded at build time, no selection needed
+ const { user, loading } = useAuth(); // Use real auth state
+ const [isHumanVerified, setIsHumanVerified] = React.useState(null);
+ const [privacyConsent, setPrivacyConsent] = React.useState(null);
- useEffect(() => {
- // Check authentication status
- // TODO: Implement actual auth check
- setTimeout(() => {
- setIsLoading(false);
- }, 1000);
+ React.useEffect(() => {
+ // Check privacy consent and human verification
+ const checkAppState = async () => {
+ try {
+ const consent = await AsyncStorage.getItem('@pezkuwi/privacy_consent_accepted');
+ setPrivacyConsent(consent === 'true');
+
+ const verified = await checkHumanVerification();
+ setIsHumanVerified(verified);
+ } catch (error) {
+ if (__DEV__) console.error('Error checking app state:', error);
+ setPrivacyConsent(false);
+ setIsHumanVerified(false);
+ }
+ };
+ checkAppState();
}, []);
- const handleLanguageSelected = () => {
- // Navigate to sign in after language selection
- };
-
- const handleSignIn = () => {
- setIsAuthenticated(true);
- };
-
- const handleSignUp = () => {
- setIsAuthenticated(true);
- };
-
- const _handleLogout = () => {
- setIsAuthenticated(false);
- };
-
- if (isLoading) {
+ if (loading || isHumanVerified === null || privacyConsent === null) {
return (
@@ -65,41 +69,57 @@ const AppNavigator: React.FC = () => {
cardStyle: { backgroundColor: '#FFFFFF' },
}}
>
- {!hasSelectedLanguage ? (
- // Show welcome screen if language not selected
-
- {(props) => (
-
- )}
+ {!privacyConsent ? (
+ // Step 0: Show Welcome screen if privacy not accepted
+
+ {() => setPrivacyConsent(true)} />}
- ) : !isAuthenticated ? (
- // Show auth screens if not authenticated
- <>
-
- {(props) => (
- props.navigation.navigate('SignUp')}
- />
- )}
-
-
- {(props) => (
- props.navigation.navigate('SignIn')}
- />
- )}
-
- >
+ ) : !isHumanVerified ? (
+ // Step 1: Show verify human screen if not verified
+
+ {() => setIsHumanVerified(true)} />}
+
+ ) : !user ? (
+ // Step 2: Show unified auth screen if not authenticated
+
) : (
- // Show main app (bottom tabs) if authenticated
-
+ // Step 3: Show main app (bottom tabs) if authenticated
+ <>
+
+
+
+
+
+ >
)}
diff --git a/mobile/src/navigation/BottomTabNavigator.tsx b/mobile/src/navigation/BottomTabNavigator.tsx
index 8f1baf03..a208d478 100644
--- a/mobile/src/navigation/BottomTabNavigator.tsx
+++ b/mobile/src/navigation/BottomTabNavigator.tsx
@@ -1,55 +1,62 @@
import React from 'react';
import { View, Text, TouchableOpacity, StyleSheet, Platform } from 'react-native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
+import { useSafeAreaInsets } from 'react-native-safe-area-context';
+import { useNavigation } from '@react-navigation/native';
import { KurdistanColors } from '../theme/colors';
+import { GradientHeader, SimpleHeader } from '../components/navigation/SharedHeader';
// Screens
import DashboardScreen from '../screens/DashboardScreen';
-import WalletScreen from '../screens/WalletScreen';
-import SwapScreen from '../screens/SwapScreen';
-import P2PScreen from '../screens/P2PScreen';
-import EducationScreen from '../screens/EducationScreen';
-import ForumScreen from '../screens/ForumScreen';
-import BeCitizenScreen from '../screens/BeCitizenScreen';
+import AppsScreen from '../screens/AppsScreen';
import ReferralScreen from '../screens/ReferralScreen';
import ProfileScreen from '../screens/ProfileScreen';
+// Removed screens from tabs (accessible via Dashboard/Apps):
+// WalletScreen, SwapScreen, P2PScreen, EducationScreen, ForumScreen
+
export type BottomTabParamList = {
Home: undefined;
- Wallet: undefined;
- Swap: undefined;
- P2P: undefined;
- Education: undefined;
- Forum: undefined;
- BeCitizen: undefined;
+ Apps: undefined;
+ Citizen: undefined; // Dummy tab, never navigates to a screen
Referral: undefined;
Profile: undefined;
};
const Tab = createBottomTabNavigator();
-// Custom Tab Bar Button for Center Button
+// Custom Tab Bar Button for Center Button (Citizen) - navigates to BeCitizenChoice
const CustomTabBarButton: React.FC<{
children: React.ReactNode;
- onPress?: () => void;
-}> = ({ children, onPress }) => (
-
- {children}
-
-);
+}> = ({ children }) => {
+ const navigation = useNavigation();
+
+ return (
+ navigation.navigate('BeCitizenChoice')}
+ activeOpacity={0.8}
+ >
+ {children}
+
+ );
+};
const BottomTabNavigator: React.FC = () => {
+ const insets = useSafeAreaInsets();
+
return (
,
tabBarActiveTintColor: KurdistanColors.kesk,
tabBarInactiveTintColor: '#999',
- tabBarStyle: styles.tabBar,
+ tabBarStyle: {
+ ...styles.tabBar,
+ height: (Platform.OS === 'ios' ? 85 : 65) + insets.bottom,
+ paddingBottom: insets.bottom > 0 ? insets.bottom : (Platform.OS === 'ios' ? 20 : 8),
+ },
tabBarShowLabel: true,
tabBarLabelStyle: styles.tabBarLabel,
}}
@@ -58,6 +65,8 @@ const BottomTabNavigator: React.FC = () => {
name="Home"
component={DashboardScreen}
options={{
+ header: (props) => ,
+ tabBarLabel: 'Home',
tabBarIcon: ({ color, focused }) => (
{focused ? '🏠' : '🏚️'}
@@ -67,70 +76,24 @@ const BottomTabNavigator: React.FC = () => {
/>
(
- {focused ? '💰' : '👛'}
+ {focused ? '📱' : '📲'}
),
}}
/>
(
-
- {focused ? '🔄' : '↔️'}
-
- ),
- }}
- />
-
- (
-
- {focused ? '💱' : '💰'}
-
- ),
- }}
- />
-
- (
-
- {focused ? '🎓' : '📚'}
-
- ),
- }}
- />
-
- (
-
- {focused ? '💬' : '📝'}
-
- ),
- }}
- />
-
- (
🏛️
@@ -144,6 +107,7 @@ const BottomTabNavigator: React.FC = () => {
name="Referral"
component={ReferralScreen}
options={{
+ tabBarLabel: 'Referral',
tabBarIcon: ({ color, focused }) => (
{focused ? '🤝' : '👥'}
@@ -156,6 +120,8 @@ const BottomTabNavigator: React.FC = () => {
name="Profile"
component={ProfileScreen}
options={{
+ header: (props) => ,
+ tabBarLabel: 'Profile',
tabBarIcon: ({ color, focused }) => (
{focused ? '👤' : '👨'}
@@ -184,19 +150,20 @@ const styles = StyleSheet.create({
tabBarLabel: {
fontSize: 11,
fontWeight: '600',
+ marginTop: 2,
},
icon: {
- fontSize: 24,
+ fontSize: 22,
},
customButtonContainer: {
- top: -20,
+ top: -24,
justifyContent: 'center',
alignItems: 'center',
},
customButton: {
- width: 70,
- height: 70,
- borderRadius: 35,
+ width: 64,
+ height: 64,
+ borderRadius: 32,
backgroundColor: KurdistanColors.kesk,
justifyContent: 'center',
alignItems: 'center',
@@ -206,10 +173,10 @@ const styles = StyleSheet.create({
shadowRadius: 8,
elevation: 8,
borderWidth: 4,
- borderColor: KurdistanColors.spi,
+ borderColor: '#f5f5f5', // Matches background color usually
},
centerIcon: {
- fontSize: 32,
+ fontSize: 30,
},
});
diff --git a/mobile/src/polyfills/wasm-crypto-shim.js b/mobile/src/polyfills/wasm-crypto-shim.js
new file mode 100644
index 00000000..1df854f2
--- /dev/null
+++ b/mobile/src/polyfills/wasm-crypto-shim.js
@@ -0,0 +1,52 @@
+/**
+ * React Native shim for @pezkuwi/wasm-crypto
+ * Provides waitReady() and isReady() using ASM.js
+ */
+console.log('🔧 [SHIM] ==========================================');
+console.log('🔧 [SHIM] WASM-CRYPTO SHIM LOADING...');
+console.log('🔧 [SHIM] ==========================================');
+
+console.log('📦 [SHIM] Importing Bridge...');
+import { Bridge } from '@pezkuwi/wasm-bridge';
+console.log('✅ [SHIM] Bridge imported');
+
+console.log('📦 [SHIM] Importing createWasm (ASM.js)...');
+import { createWasm } from '@pezkuwi/wasm-crypto-init/asm';
+console.log('✅ [SHIM] createWasm imported');
+
+console.log('🏗️ [SHIM] Creating Bridge instance...');
+// Create bridge with ASM.js
+export const bridge = new Bridge(createWasm);
+console.log('✅ [SHIM] Bridge instance created');
+
+// Export isReady
+export function isReady() {
+ const ready = !!bridge.wasm;
+ console.log('🔍 [SHIM] isReady() called, result:', ready);
+ return ready;
+}
+
+// Export waitReady
+export async function waitReady() {
+ console.log('⏳ [SHIM] waitReady() called');
+ try {
+ console.log('🔄 [SHIM] Initializing ASM.js bridge...');
+ const wasm = await bridge.init(createWasm);
+ const success = !!wasm;
+ console.log('✅ [SHIM] ASM.js bridge initialized successfully:', success);
+ return success;
+ } catch (error) {
+ console.error('❌ [SHIM] Failed to initialize ASM.js:', error);
+ console.error('❌ [SHIM] Error stack:', error.stack);
+ return false;
+ }
+}
+
+console.log('📦 [SHIM] Re-exporting bundle functions...');
+// Re-export all crypto functions from bundle
+export * from '@pezkuwi/wasm-crypto/bundle';
+console.log('✅ [SHIM] All exports configured');
+
+console.log('🔧 [SHIM] ==========================================');
+console.log('🔧 [SHIM] SHIM LOADED SUCCESSFULLY');
+console.log('🔧 [SHIM] ==========================================');
diff --git a/mobile/src/screens/AppsScreen.tsx b/mobile/src/screens/AppsScreen.tsx
new file mode 100644
index 00000000..729d1991
--- /dev/null
+++ b/mobile/src/screens/AppsScreen.tsx
@@ -0,0 +1,331 @@
+import React, { useState, useMemo } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ TextInput,
+ Image,
+ Alert,
+ Dimensions,
+ FlatList,
+ StatusBar,
+ Platform,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+
+// Import Images (Reusing existing assets)
+import qaEducation from '../../../shared/images/quick-actions/qa_education.png';
+import qaExchange from '../../../shared/images/quick-actions/qa_exchange.png';
+import qaForum from '../../../shared/images/quick-actions/qa_forum.jpg';
+import qaGovernance from '../../../shared/images/quick-actions/qa_governance.jpg';
+import qaTrading from '../../../shared/images/quick-actions/qa_trading.jpg';
+import qaB2B from '../../../shared/images/quick-actions/qa_b2b.png';
+import qaBank from '../../../shared/images/quick-actions/qa_bank.png';
+import qaKurdMedia from '../../../shared/images/quick-actions/qa_kurdmedia.jpg';
+import qaUniversity from '../../../shared/images/quick-actions/qa_university.png';
+
+const { width } = Dimensions.get('window');
+const COLUMN_COUNT = 3;
+const ITEM_WIDTH = (width - 48) / COLUMN_COUNT; // 48 = padding (16*2) + gaps
+
+type CategoryType = 'All' | 'Finance' | 'Governance' | 'Social' | 'Education';
+
+interface MiniApp {
+ id: string;
+ name: string;
+ icon: any;
+ isEmoji: boolean;
+ category: CategoryType;
+ description: string;
+}
+
+const APPS_DATA: MiniApp[] = [
+ // FINANCE
+ { id: 'wallet', name: 'Wallet', icon: '👛', isEmoji: true, category: 'Finance', description: 'Crypto Wallet' },
+ { id: 'bank', name: 'Bank', icon: qaBank, isEmoji: false, category: 'Finance', description: 'Digital Banking' },
+ { id: 'exchange', name: 'Exchange', icon: qaExchange, isEmoji: false, category: 'Finance', description: 'Swap & Trade' },
+ { id: 'p2p', name: 'P2P', icon: qaTrading, isEmoji: false, category: 'Finance', description: 'Peer to Peer' },
+ { id: 'b2b', name: 'B2B', icon: qaB2B, isEmoji: false, category: 'Finance', description: 'Business Market' },
+ { id: 'tax', name: 'Tax', icon: '📊', isEmoji: true, category: 'Finance', description: 'Tax & Zekat' },
+ { id: 'launchpad', name: 'Launchpad', icon: '🚀', isEmoji: true, category: 'Finance', description: 'Startup Funding' },
+ { id: 'cards', name: 'Cards', icon: '💳', isEmoji: true, category: 'Finance', description: 'Pezkuwi Cards' },
+
+ // GOVERNANCE
+ { id: 'president', name: 'President', icon: '👑', isEmoji: true, category: 'Governance', description: 'Presidency Office' },
+ { id: 'assembly', name: 'Assembly', icon: qaGovernance, isEmoji: false, category: 'Governance', description: 'National Assembly' },
+ { id: 'vote', name: 'Vote', icon: '🗳️', isEmoji: true, category: 'Governance', description: 'Decentralized Voting' },
+ { id: 'validators', name: 'Validators', icon: '🛡️', isEmoji: true, category: 'Governance', description: 'Network Security' },
+ { id: 'justice', name: 'Justice', icon: '⚖️', isEmoji: true, category: 'Governance', description: 'Digital Court' },
+ { id: 'proposals', name: 'Proposals', icon: '📜', isEmoji: true, category: 'Governance', description: 'Law Proposals' },
+ { id: 'polls', name: 'Polls', icon: '📊', isEmoji: true, category: 'Governance', description: 'Public Surveys' },
+ { id: 'identity', name: 'Identity', icon: '🆔', isEmoji: true, category: 'Governance', description: 'Digital ID' },
+
+ // SOCIAL
+ { id: 'whatskurd', name: 'whatsKURD', icon: '💬', isEmoji: true, category: 'Social', description: 'Messenger' },
+ { id: 'forum', name: 'Forum', icon: qaForum, isEmoji: false, category: 'Social', description: 'Community Talk' },
+ { id: 'kurdmedia', name: 'KurdMedia', icon: qaKurdMedia, isEmoji: false, category: 'Social', description: 'News & Media' },
+ { id: 'events', name: 'Events', icon: '🎭', isEmoji: true, category: 'Social', description: 'Çalakî' },
+ { id: 'help', name: 'Help', icon: '🤝', isEmoji: true, category: 'Social', description: 'Harîkarî' },
+ { id: 'music', name: 'Music', icon: '🎵', isEmoji: true, category: 'Social', description: 'Kurdish Stream' },
+ { id: 'vpn', name: 'VPN', icon: '🛡️', isEmoji: true, category: 'Social', description: 'Secure Net' },
+ { id: 'referral', name: 'Referral', icon: '👥', isEmoji: true, category: 'Social', description: 'Invite Friends' },
+
+ // EDUCATION
+ { id: 'university', name: 'University', icon: qaUniversity, isEmoji: false, category: 'Education', description: 'Higher Ed' },
+ { id: 'perwerde', name: 'Perwerde', icon: qaEducation, isEmoji: false, category: 'Education', description: 'Academy' },
+ { id: 'library', name: 'Library', icon: '📚', isEmoji: true, category: 'Education', description: 'Pirtûkxane' },
+ { id: 'language', name: 'Language', icon: '🗣️', isEmoji: true, category: 'Education', description: 'Ziman / Learn' },
+ { id: 'kids', name: 'Kids', icon: '🧸', isEmoji: true, category: 'Education', description: 'Zarok TV' },
+ { id: 'certificates', name: 'Certificates', icon: '🏆', isEmoji: true, category: 'Education', description: 'NFT Diplomas' },
+ { id: 'research', name: 'Research', icon: '🔬', isEmoji: true, category: 'Education', description: 'Scientific Data' },
+ { id: 'history', name: 'History', icon: '🏺', isEmoji: true, category: 'Education', description: 'Kurdish History' },
+];
+
+const AppsScreen: React.FC = () => {
+ const [searchQuery, setSearchQuery] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const filteredApps = useMemo(() => {
+ return APPS_DATA.filter(app => {
+ const matchesSearch = app.name.toLowerCase().includes(searchQuery.toLowerCase());
+ const matchesCategory = selectedCategory === 'All' || app.category === selectedCategory;
+ return matchesSearch && matchesCategory;
+ });
+ }, [searchQuery, selectedCategory]);
+
+ const handleAppPress = (appName: string) => {
+ Alert.alert(
+ 'Di bin çêkirinê de ye / Under Maintenance',
+ `The "${appName}" mini-app is currently under development. Please check back later.\n\nSpas ji bo sebra we.`,
+ [{ text: 'Temam (OK)' }]
+ );
+ };
+
+ const renderCategoryChip = (category: CategoryType) => (
+ setSelectedCategory(category)}
+ >
+
+ {category}
+
+
+ );
+
+ const renderAppItem = ({ item }: { item: MiniApp }) => (
+ handleAppPress(item.name)}
+ activeOpacity={0.7}
+ >
+
+ {item.isEmoji ? (
+ {item.icon}
+ ) : (
+
+ )}
+
+ {item.name}
+ {item.description}
+
+ );
+
+ return (
+
+
+
+
+ Apps Store
+ Discover Pezkuwi Ecosystem
+
+
+ {/* Search Bar */}
+
+
+ 🔍
+
+ {searchQuery.length > 0 && (
+ setSearchQuery('')}>
+ ✕
+
+ )}
+
+
+
+ {/* Category Filter */}
+
+
+ {['All', 'Finance', 'Governance', 'Social', 'Education'].map((cat) =>
+ renderCategoryChip(cat as CategoryType)
+ )}
+
+
+
+ {/* Apps Grid */}
+ item.id}
+ numColumns={COLUMN_COUNT}
+ contentContainerStyle={styles.listContent}
+ columnWrapperStyle={styles.columnWrapper}
+ showsVerticalScrollIndicator={false}
+ ListEmptyComponent={
+
+ No apps found matching "{searchQuery}"
+
+ }
+ />
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ header: {
+ paddingHorizontal: 20,
+ paddingTop: 20,
+ paddingBottom: 10,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginTop: 4,
+ },
+ searchContainer: {
+ paddingHorizontal: 20,
+ marginBottom: 16,
+ },
+ searchBar: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ paddingHorizontal: 12,
+ height: 48,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ searchIcon: {
+ fontSize: 18,
+ marginRight: 8,
+ opacity: 0.5,
+ },
+ searchInput: {
+ flex: 1,
+ fontSize: 16,
+ color: '#333',
+ height: '100%',
+ },
+ clearIcon: {
+ fontSize: 16,
+ color: '#999',
+ padding: 4,
+ },
+ categoriesContainer: {
+ marginBottom: 10,
+ },
+ categoriesContent: {
+ paddingHorizontal: 20,
+ },
+ categoryChip: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E0E0E0',
+ marginRight: 8,
+ },
+ categoryChipActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ categoryText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#555',
+ },
+ categoryTextActive: {
+ color: KurdistanColors.spi,
+ },
+ listContent: {
+ paddingHorizontal: 16,
+ paddingBottom: 40,
+ paddingTop: 8,
+ },
+ columnWrapper: {
+ justifyContent: 'flex-start',
+ gap: 8,
+ },
+ appCard: {
+ width: ITEM_WIDTH,
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 16,
+ padding: 12,
+ marginBottom: 12,
+ alignItems: 'center',
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ iconContainer: {
+ width: 48,
+ height: 48,
+ borderRadius: 12,
+ backgroundColor: '#F8F9FA',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 8,
+ },
+ imageIcon: {
+ width: 32,
+ height: 32,
+ borderRadius: 8,
+ },
+ emojiIcon: {
+ fontSize: 24,
+ },
+ appName: {
+ fontSize: 13,
+ fontWeight: '700',
+ color: '#333',
+ marginBottom: 2,
+ textAlign: 'center',
+ },
+ appDesc: {
+ fontSize: 10,
+ color: '#888',
+ textAlign: 'center',
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyText: {
+ color: '#999',
+ fontSize: 16,
+ },
+});
+
+export default AppsScreen;
\ No newline at end of file
diff --git a/mobile/src/screens/AppsScreen.tsx.bak b/mobile/src/screens/AppsScreen.tsx.bak
new file mode 100644
index 00000000..e213bb57
--- /dev/null
+++ b/mobile/src/screens/AppsScreen.tsx.bak
@@ -0,0 +1,337 @@
+import React, { useState, useMemo } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ TextInput,
+ Image,
+ Alert,
+ Dimensions,
+ FlatList,
+ StatusBar,
+ Platform,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+
+// Import Images (Reusing existing assets)
+import qaEducation from '../../../shared/images/quick-actions/qa_education.png';
+import qaExchange from '../../../shared/images/quick-actions/qa_exchange.png';
+import qaForum from '../../../shared/images/quick-actions/qa_forum.jpg';
+import qaGovernance from '../../../shared/images/quick-actions/qa_governance.jpg';
+import qaTrading from '../../../shared/images/quick-actions/qa_trading.jpg';
+import qaB2B from '../../../shared/images/quick-actions/qa_b2b.png';
+import qaBank from '../../../shared/images/quick-actions/qa_bank.png';
+import qaKurdMedia from '../../../shared/images/quick-actions/qa_kurdmedia.jpg';
+import qaUniversity from '../../../shared/images/quick-actions/qa_university.png';
+
+const { width } = Dimensions.get('window');
+const COLUMN_COUNT = 3;
+const ITEM_WIDTH = (width - 48) / COLUMN_COUNT; // 48 = padding (16*2) + gaps
+
+type CategoryType = 'All' | 'Finance' | 'Governance' | 'Social' | 'Education';
+
+interface MiniApp {
+ id: string;
+ name: string;
+ icon: any;
+ isEmoji: boolean;
+ category: CategoryType;
+ description: string;
+}
+
+const APPS_DATA: MiniApp[] = [
+ // FINANCE
+ { id: 'wallet', name: 'Wallet', icon: '👛', isEmoji: true, category: 'Finance', description: 'Crypto Wallet' },
+ { id: 'bank', name: 'Bank', icon: qaBank, isEmoji: false, category: 'Finance', description: 'Digital Banking' },
+ { id: 'exchange', name: 'Exchange', icon: qaExchange, isEmoji: false, category: 'Finance', description: 'Swap & Trade' },
+ { id: 'p2p', name: 'P2P', icon: qaTrading, isEmoji: false, category: 'Finance', description: 'Peer to Peer' },
+ { id: 'b2b', name: 'B2B', icon: qaB2B, isEmoji: false, category: 'Finance', description: 'Business Market' },
+ { id: 'tax', name: 'Tax', icon: '📊', isEmoji: true, category: 'Finance', description: 'Tax & Zekat' },
+ { id: 'launchpad', name: 'Launchpad', icon: '🚀', isEmoji: true, category: 'Finance', description: 'Startup Funding' },
+ { id: 'cards', name: 'Cards', icon: '💳', isEmoji: true, category: 'Finance', description: 'Pezkuwi Cards' },
+
+ // GOVERNANCE
+ { id: 'president', name: 'President', icon: '👑', isEmoji: true, category: 'Governance', description: 'Presidency Office' },
+ { id: 'assembly', name: 'Assembly', icon: qaGovernance, isEmoji: false, category: 'Governance', description: 'National Assembly' },
+ { id: 'vote', name: 'Vote', icon: '🗳️', isEmoji: true, category: 'Governance', description: 'Decentralized Voting' },
+ { id: 'validators', name: 'Validators', icon: '🛡️', isEmoji: true, category: 'Governance', description: 'Network Security' },
+ { id: 'justice', name: 'Justice', icon: '⚖️', isEmoji: true, category: 'Governance', description: 'Digital Court' },
+ { id: 'proposals', name: 'Proposals', icon: '📜', isEmoji: true, category: 'Governance', description: 'Law Proposals' },
+ { id: 'polls', name: 'Polls', icon: '📊', isEmoji: true, category: 'Governance', description: 'Public Surveys' },
+ { id: 'identity', name: 'Identity', icon: '🆔', isEmoji: true, category: 'Governance', description: 'Digital ID' },
+
+ // SOCIAL
+ { id: 'whatskurd', name: 'whatsKURD', icon: '💬', isEmoji: true, category: 'Social', description: 'Messenger' },
+ { id: 'forum', name: 'Forum', icon: qaForum, isEmoji: false, category: 'Social', description: 'Community Talk' },
+ { id: 'kurdmedia', name: 'KurdMedia', icon: qaKurdMedia, isEmoji: false, category: 'Social', description: 'News & Media' },
+ { id: 'events', name: 'Events', icon: '🎭', isEmoji: true, category: 'Social', description: 'Çalakî' },
+ { id: 'help', name: 'Help', icon: '🤝', isEmoji: true, category: 'Social', description: 'Harîkarî' },
+ { id: 'music', name: 'Music', icon: '🎵', isEmoji: true, category: 'Social', description: 'Kurdish Stream' },
+ { id: 'vpn', name: 'VPN', icon: '🛡️', isEmoji: true, category: 'Social', description: 'Secure Net' },
+ { id: 'referral', name: 'Referral', icon: '👥', isEmoji: true, category: 'Social', description: 'Invite Friends' },
+
+ // EDUCATION
+ { id: 'university', name: 'University', icon: qaUniversity, isEmoji: false, category: 'Education', description: 'Higher Ed' },
+ { id: 'perwerde', name: 'Perwerde', icon: qaEducation, isEmoji: false, category: 'Education', description: 'Academy' },
+ { id: 'library', name: 'Library', icon: '📚', isEmoji: true, category: 'Education', description: 'Pirtûkxane' },
+ { id: 'language', name: 'Language', icon: '🗣️', isEmoji: true, category: 'Education', description: 'Ziman / Learn' },
+ { id: 'kids', name: 'Kids', icon: '🧸', isEmoji: true, category: 'Education', description: 'Zarok TV' },
+ { id: 'certificates', name: 'Certificates', icon: '🏆', isEmoji: true, category: 'Education', description: 'NFT Diplomas' },
+ { id: 'research', name: 'Research', icon: '🔬', isEmoji: true, category: 'Education', description: 'Scientific Data' },
+ { id: 'history', name: 'History', icon: '🏺', isEmoji: true, category: 'Education', description: 'Kurdish History' },
+];
+
+const AppsScreen: React.FC = () => {
+ const [searchQuery, setSearchQuery] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const filteredApps = useMemo(() => {
+ return APPS_DATA.filter(app => {
+ const matchesSearch = app.name.toLowerCase().includes(searchQuery.toLowerCase());
+ const matchesCategory = selectedCategory === 'All' || app.category === selectedCategory;
+ return matchesSearch && matchesCategory;
+ });
+ }, [searchQuery, selectedCategory]);
+
+ const handleAppPress = (appName: string) => {
+ Alert.alert(
+ 'Di bin çêkirinê de ye / Under Maintenance',
+ `The "${appName}" mini-app is currently under development. Please check back later.\n\nSpas ji bo sebra we.`,
+ [{ text: 'Temam (OK)' }]
+ );
+ };
+
+ const renderCategoryChip = (category: CategoryType) => (
+ setSelectedCategory(category)}
+ >
+
+ {category}
+
+
+ );
+
+ const renderAppItem = ({ item }: { item: MiniApp }) => (
+ handleAppPress(item.name)}
+ activeOpacity={0.7}
+ >
+
+ {item.isEmoji ? (
+ {item.icon}
+ ) : (
+
+ )}
+
+ {item.name}
+ {item.description}
+
+ );
+
+ return (
+
+
+
+
+ Apps Store
+ Discover Pezkuwi Ecosystem
+
+
+ {/* Search Bar */}
+
+
+ 🔍
+
+ {searchQuery.length > 0 && (
+ setSearchQuery('')}>
+ ✕
+
+ )}
+
+
+
+ {/* Category Filter */}
+
+
+ {['All', 'Finance', 'Governance', 'Social', 'Education'].map((cat) =>
+ renderCategoryChip(cat as CategoryType)
+ )}
+
+
+
+ {/* Apps Grid */}
+ item.id}
+ numColumns={COLUMN_COUNT}
+ contentContainerStyle={styles.listContent}
+ columnWrapperStyle={styles.columnWrapper}
+ showsVerticalScrollIndicator={false}
+ ListEmptyComponent={
+
+ No apps found matching "{searchQuery}"
+
+ }
+ />
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ header: {
+ paddingHorizontal: 20,
+ paddingTop: 20,
+ paddingBottom: 10,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginTop: 4,
+ },
+ searchContainer: {
+ paddingHorizontal: 20,
+ marginBottom: 16,
+ },
+ searchBar: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ paddingHorizontal: 12,
+ height: 48,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ searchIcon: {
+ fontSize: 18,
+ marginRight: 8,
+ opacity: 0.5,
+ },
+ searchInput: {
+ flex: 1,
+ fontSize: 16,
+ color: '#333',
+ height: '100%',
+ },
+ clearIcon: {
+ fontSize: 16,
+ color: '#999',
+ padding: 4,
+ },
+ categoriesContainer: {
+ marginBottom: 10,
+ },
+ categoriesContent: {
+ paddingHorizontal: 20,
+ },
+ categoryChip: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E0E0E0',
+ marginRight: 8,
+ },
+ categoryChipActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ categoryText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#555',
+ },
+ categoryTextActive: {
+ color: KurdistanColors.spi,
+ },
+ listContent: {
+ paddingHorizontal: 16,
+ paddingBottom: 40,
+ paddingTop: 8,
+ },
+ columnWrapper: {
+ justifyContent: 'flex-start',
+ gap: 8,
+ },
+ appCard: {
+ width: ITEM_WIDTH,
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 16,
+ padding: 12,
+ marginBottom: 12,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ iconContainer: {
+ width: 48,
+ height: 48,
+ borderRadius: 12,
+ backgroundColor: '#F8F9FA',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 8,
+ },
+ imageIcon: {
+ width: 32,
+ height: 32,
+ borderRadius: 8,
+ },
+ emojiIcon: {
+ fontSize: 24,
+ },
+ appName: {
+ fontSize: 13,
+ fontWeight: '700',
+ color: '#333',
+ marginBottom: 2,
+ textAlign: 'center',
+ },
+ appDesc: {
+ fontSize: 10,
+ color: '#888',
+ textAlign: 'center',
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyText: {
+ color: '#999',
+ fontSize: 16,
+ },
+});
+
+export default AppsScreen;
\ No newline at end of file
diff --git a/mobile/src/screens/AuthScreen.tsx b/mobile/src/screens/AuthScreen.tsx
new file mode 100644
index 00000000..7768d626
--- /dev/null
+++ b/mobile/src/screens/AuthScreen.tsx
@@ -0,0 +1,631 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+ StatusBar,
+ ActivityIndicator,
+ Image,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useAuth } from '../contexts/AuthContext';
+import { KurdistanColors } from '../theme/colors';
+
+const AuthScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const { signIn, signUp } = useAuth();
+
+ // Tab state
+ const [activeTab, setActiveTab] = useState<'signin' | 'signup'>('signin');
+
+ // Sign In state
+ const [loginEmail, setLoginEmail] = useState('');
+ const [loginPassword, setLoginPassword] = useState('');
+ const [showLoginPassword, setShowLoginPassword] = useState(false);
+ const [rememberMe, setRememberMe] = useState(false);
+
+ // Sign Up state
+ const [signupName, setSignupName] = useState('');
+ const [signupEmail, setSignupEmail] = useState('');
+ const [signupPassword, setSignupPassword] = useState('');
+ const [signupConfirmPassword, setSignupConfirmPassword] = useState('');
+ const [signupReferralCode, setSignupReferralCode] = useState('');
+ const [showSignupPassword, setShowSignupPassword] = useState(false);
+
+ // Common state
+ const [error, setError] = useState('');
+ const [loading, setLoading] = useState(false);
+
+ const handleSignIn = async () => {
+ setError('');
+
+ if (!loginEmail || !loginPassword) {
+ setError(t('auth.fillAllFields', 'Please fill in all fields'));
+ return;
+ }
+
+ setLoading(true);
+
+ try {
+ const { error: signInError } = await signIn(loginEmail, loginPassword, rememberMe);
+
+ if (signInError) {
+ if (signInError.message?.includes('Invalid login credentials')) {
+ setError(t('auth.invalidCredentials', 'Email or password is incorrect'));
+ } else {
+ setError(signInError.message || t('auth.loginFailed', 'Login failed'));
+ }
+ }
+ } catch (err) {
+ setError(t('auth.loginFailed', 'Login failed. Please try again.'));
+ if (__DEV__) console.error('Sign in error:', err);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ const handleSignUp = async () => {
+ setError('');
+
+ if (!signupName || !signupEmail || !signupPassword || !signupConfirmPassword) {
+ setError(t('auth.fillAllFields', 'Please fill in all required fields'));
+ return;
+ }
+
+ if (signupPassword !== signupConfirmPassword) {
+ setError(t('auth.passwordsDoNotMatch', 'Passwords do not match'));
+ return;
+ }
+
+ if (signupPassword.length < 8) {
+ setError(t('auth.passwordTooShort', 'Password must be at least 8 characters'));
+ return;
+ }
+
+ setLoading(true);
+
+ try {
+ const { error: signUpError } = await signUp(
+ signupEmail,
+ signupPassword,
+ signupName,
+ signupReferralCode
+ );
+
+ if (signUpError) {
+ setError(signUpError.message || t('auth.signupFailed', 'Sign up failed'));
+ }
+ } catch (err) {
+ setError(t('auth.signupFailed', 'Sign up failed. Please try again.'));
+ if (__DEV__) console.error('Sign up error:', err);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ return (
+
+
+
+ {/* Grid overlay */}
+
+
+
+
+ {/* Card Container */}
+
+ {/* Header */}
+
+
+
+
+ PezkuwiChain
+
+ {t('login.subtitle', 'Access your governance account')}
+
+
+
+ {/* Tabs */}
+
+ {
+ setActiveTab('signin');
+ setError('');
+ }}
+ >
+
+ {t('login.signin', 'Sign In')}
+
+
+ {
+ setActiveTab('signup');
+ setError('');
+ }}
+ >
+
+ {t('login.signup', 'Sign Up')}
+
+
+
+
+ {/* Sign In Form */}
+ {activeTab === 'signin' && (
+
+
+ {t('login.email', 'Email')}
+
+ ✉️
+
+
+
+
+
+ {t('login.password', 'Password')}
+
+ 🔒
+
+ setShowLoginPassword(!showLoginPassword)}
+ >
+ {showLoginPassword ? '👁️' : '👁️🗨️'}
+
+
+
+
+
+ setRememberMe(!rememberMe)}
+ >
+
+ {rememberMe && ✓}
+
+
+ {t('login.rememberMe', 'Remember me')}
+
+
+
+
+ {t('login.forgotPassword', 'Forgot password?')}
+
+
+
+
+ {error && (
+
+ ⚠️
+ {error}
+
+ )}
+
+
+ {loading ? (
+
+ ) : (
+
+ {t('login.signin', 'Sign In')}
+
+ )}
+
+
+ )}
+
+ {/* Sign Up Form */}
+ {activeTab === 'signup' && (
+
+
+ {t('login.fullName', 'Full Name')}
+
+ 👤
+
+
+
+
+
+ {t('login.email', 'Email')}
+
+ ✉️
+
+
+
+
+
+ {t('login.password', 'Password')}
+
+ 🔒
+
+ setShowSignupPassword(!showSignupPassword)}
+ >
+ {showSignupPassword ? '👁️' : '👁️🗨️'}
+
+
+
+
+
+ {t('login.confirmPassword', 'Confirm Password')}
+
+ 🔒
+
+
+
+
+
+
+ {t('login.referralCode', 'Referral Code')}{' '}
+
+ ({t('login.optional', 'Optional')})
+
+
+
+ 👥
+
+
+
+ {t('login.referralDescription', 'If someone referred you, enter their code here')}
+
+
+
+ {error && (
+
+ ⚠️
+ {error}
+
+ )}
+
+
+ {loading ? (
+
+ ) : (
+
+ {t('login.createAccount', 'Create Account')}
+
+ )}
+
+
+ )}
+
+ {/* Footer */}
+
+
+ {t('login.terms', 'By continuing, you agree to our')}{' '}
+
+
+
+ {t('login.termsOfService', 'Terms of Service')}
+
+ {t('login.and', 'and')}
+
+ {t('login.privacyPolicy', 'Privacy Policy')}
+
+
+
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#000000',
+ },
+ gradient: {
+ flex: 1,
+ },
+ gridOverlay: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ opacity: 0.1,
+ },
+ keyboardView: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ padding: 16,
+ justifyContent: 'center',
+ },
+ card: {
+ backgroundColor: 'rgba(17, 24, 39, 0.9)',
+ borderRadius: 16,
+ padding: 24,
+ borderWidth: 1,
+ borderColor: 'rgba(55, 65, 81, 0.5)',
+ },
+ header: {
+ alignItems: 'center',
+ marginBottom: 24,
+ },
+ logoContainer: {
+ width: 64,
+ height: 64,
+ borderRadius: 32,
+ backgroundColor: '#FFFFFF',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 12,
+ padding: 8,
+ },
+ logoImage: {
+ width: '100%',
+ height: '100%',
+ },
+ brandTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ textAlign: 'center',
+ marginBottom: 4,
+ color: '#10B981',
+ },
+ subtitle: {
+ fontSize: 14,
+ color: '#9CA3AF',
+ textAlign: 'center',
+ },
+ tabContainer: {
+ flexDirection: 'row',
+ backgroundColor: '#1F2937',
+ borderRadius: 8,
+ padding: 4,
+ marginBottom: 24,
+ },
+ tab: {
+ flex: 1,
+ paddingVertical: 8,
+ alignItems: 'center',
+ borderRadius: 6,
+ },
+ tabActive: {
+ backgroundColor: '#374151',
+ },
+ tabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#9CA3AF',
+ },
+ tabTextActive: {
+ color: '#FFFFFF',
+ },
+ form: {
+ gap: 16,
+ },
+ inputGroup: {
+ marginBottom: 16,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '500',
+ color: '#D1D5DB',
+ marginBottom: 8,
+ },
+ optionalText: {
+ fontSize: 12,
+ color: '#6B7280',
+ },
+ inputContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#1F2937',
+ borderRadius: 8,
+ borderWidth: 1,
+ borderColor: '#374151',
+ paddingHorizontal: 12,
+ },
+ inputIcon: {
+ fontSize: 16,
+ marginRight: 8,
+ },
+ input: {
+ flex: 1,
+ paddingVertical: 12,
+ fontSize: 16,
+ color: '#FFFFFF',
+ },
+ eyeButton: {
+ padding: 4,
+ },
+ eyeIcon: {
+ fontSize: 20,
+ },
+ hintText: {
+ fontSize: 12,
+ color: '#6B7280',
+ marginTop: 4,
+ },
+ rowBetween: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ checkboxContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ checkbox: {
+ width: 20,
+ height: 20,
+ borderRadius: 4,
+ borderWidth: 2,
+ borderColor: '#10B981',
+ marginRight: 8,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ checkboxChecked: {
+ backgroundColor: '#10B981',
+ },
+ checkmark: {
+ color: '#FFFFFF',
+ fontSize: 12,
+ fontWeight: 'bold',
+ },
+ checkboxLabel: {
+ fontSize: 14,
+ color: '#9CA3AF',
+ },
+ linkText: {
+ fontSize: 14,
+ color: '#10B981',
+ fontWeight: '500',
+ },
+ errorContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ borderWidth: 1,
+ borderColor: 'rgba(239, 68, 68, 0.3)',
+ borderRadius: 8,
+ padding: 12,
+ marginBottom: 16,
+ },
+ errorIcon: {
+ fontSize: 16,
+ marginRight: 8,
+ },
+ errorText: {
+ flex: 1,
+ fontSize: 14,
+ color: '#FCA5A5',
+ },
+ primaryButton: {
+ paddingVertical: 14,
+ borderRadius: 8,
+ alignItems: 'center',
+ marginTop: 8,
+ },
+ signInButton: {
+ backgroundColor: '#059669',
+ },
+ signUpButton: {
+ backgroundColor: '#D97706',
+ },
+ primaryButtonText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ buttonDisabled: {
+ opacity: 0.5,
+ },
+ footer: {
+ marginTop: 24,
+ alignItems: 'center',
+ },
+ footerText: {
+ fontSize: 12,
+ color: '#6B7280',
+ textAlign: 'center',
+ },
+ footerLinks: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'center',
+ marginTop: 4,
+ },
+ footerLink: {
+ fontSize: 12,
+ color: '#10B981',
+ },
+});
+
+export default AuthScreen;
diff --git a/mobile/src/screens/BeCitizenApplyScreen.tsx b/mobile/src/screens/BeCitizenApplyScreen.tsx
new file mode 100644
index 00000000..f4233aff
--- /dev/null
+++ b/mobile/src/screens/BeCitizenApplyScreen.tsx
@@ -0,0 +1,644 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ TextInput,
+ Alert,
+ ActivityIndicator,
+ Modal,
+} from 'react-native';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import {
+ submitKycApplication,
+ uploadToIPFS,
+ FOUNDER_ADDRESS,
+} from '@pezkuwi/lib/citizenship-workflow';
+import type { Region, MaritalStatus } from '@pezkuwi/lib/citizenship-workflow';
+import { KurdistanColors } from '../theme/colors';
+
+// Temporary custom picker component (until we fix @react-native-picker/picker installation)
+const CustomPicker: React.FC<{
+ selectedValue: Region;
+ onValueChange: (value: Region) => void;
+ options: Array<{ label: string; value: Region }>;
+}> = ({ selectedValue, onValueChange, options }) => {
+ const [isVisible, setIsVisible] = useState(false);
+ const selectedOption = options.find(opt => opt.value === selectedValue);
+
+ return (
+ <>
+ setIsVisible(true)}
+ >
+
+ {selectedOption?.label || 'Select Region'}
+
+ ▼
+
+
+ setIsVisible(false)}
+ >
+ setIsVisible(false)}
+ >
+
+
+ Select Your Region
+ setIsVisible(false)}>
+ ✕
+
+
+
+ {options.map((option) => (
+ {
+ onValueChange(option.value);
+ setIsVisible(false);
+ }}
+ >
+
+ {option.label}
+
+ {selectedValue === option.value && (
+ ✓
+ )}
+
+ ))}
+
+
+
+
+ >
+ );
+};
+
+const BeCitizenApplyScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const { api, selectedAccount } = usePezkuwi();
+ const [isSubmitting, setIsSubmitting] = useState(false);
+
+ // Form State
+ const [fullName, setFullName] = useState('');
+ const [fatherName, setFatherName] = useState('');
+ const [grandfatherName, setGrandfatherName] = useState('');
+ const [motherName, setMotherName] = useState('');
+ const [tribe, setTribe] = useState('');
+ const [maritalStatus, setMaritalStatus] = useState('nezewici');
+ const [childrenCount, setChildrenCount] = useState(0);
+ const [children, setChildren] = useState>([]);
+ const [region, setRegion] = useState('basur');
+ const [email, setEmail] = useState('');
+ const [profession, setProfession] = useState('');
+ const [referralCode, setReferralCode] = useState('');
+
+ const regionOptions = [
+ { label: 'Bakur (North - Turkey/Türkiye)', value: 'bakur' as Region },
+ { label: 'Başûr (South - Iraq)', value: 'basur' as Region },
+ { label: 'Rojava (West - Syria)', value: 'rojava' as Region },
+ { label: 'Rojhilat (East - Iran)', value: 'rojhelat' as Region },
+ { label: 'Kurdistan a Sor (Red Kurdistan)', value: 'kurdistan_a_sor' as Region },
+ { label: 'Diaspora (Living Abroad)', value: 'diaspora' as Region },
+ ];
+
+ const handleChildCountChange = (count: number) => {
+ setChildrenCount(count);
+ // Initialize children array
+ const newChildren = Array.from({ length: count }, (_, i) =>
+ children[i] || { name: '', birthYear: new Date().getFullYear() }
+ );
+ setChildren(newChildren);
+ };
+
+ const updateChild = (index: number, field: 'name' | 'birthYear', value: string | number) => {
+ const updated = [...children];
+ if (field === 'name') {
+ updated[index].name = value as string;
+ } else {
+ updated[index].birthYear = value as number;
+ }
+ setChildren(updated);
+ };
+
+ const handleSubmit = async () => {
+ if (!fullName || !fatherName || !grandfatherName || !motherName || !tribe || !region || !email || !profession) {
+ Alert.alert('Error', 'Please fill in all required fields');
+ return;
+ }
+
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
+ return;
+ }
+
+ setIsSubmitting(true);
+
+ try {
+ // Prepare citizenship data
+ const citizenshipData = {
+ fullName,
+ fatherName,
+ grandfatherName,
+ motherName,
+ tribe,
+ maritalStatus,
+ childrenCount: maritalStatus === 'zewici' ? childrenCount : 0,
+ children: maritalStatus === 'zewici' ? children.filter(c => c.name) : [],
+ region,
+ email,
+ profession,
+ referralCode: referralCode || FOUNDER_ADDRESS, // Auto-assign to founder if empty
+ walletAddress: selectedAccount.address,
+ timestamp: Date.now(),
+ };
+
+ // Step 1: Upload encrypted data to IPFS
+ const ipfsCid = await uploadToIPFS(citizenshipData);
+
+ if (!ipfsCid) {
+ throw new Error('Failed to upload data to IPFS');
+ }
+
+ // Step 2: Submit KYC application to blockchain
+ const result = await submitKycApplication(
+ api,
+ selectedAccount,
+ citizenshipData.fullName,
+ citizenshipData.email,
+ String(ipfsCid),
+ 'Citizenship application via mobile app'
+ );
+
+ if (result.success) {
+ Alert.alert(
+ 'Application Submitted!',
+ 'Your citizenship application has been submitted for review. You will receive a confirmation once approved.',
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ navigation.goBack();
+ },
+ },
+ ]
+ );
+ } else {
+ Alert.alert('Application Failed', result.error || 'Failed to submit application');
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship application error:', error);
+ Alert.alert('Error', error instanceof Error ? error.message : 'An unexpected error occurred');
+ } finally {
+ setIsSubmitting(false);
+ }
+ };
+
+ return (
+
+
+
+ Nasnameya Kesane
+ Personal Identity - Citizenship Application
+
+ {/* Personal Identity */}
+
+ Personal Identity
+
+
+ Navê Te (Your Full Name) *
+
+
+
+
+ Navê Bavê Te (Father's Name) *
+
+
+
+
+ Navê Bavkalê Te (Grandfather's Name) *
+
+
+
+
+ Navê Dayika Te (Mother's Name) *
+
+
+
+
+ {/* Tribal Affiliation */}
+
+ Eşîra Te (Tribal Affiliation)
+
+ Eşîra Te (Your Tribe) *
+
+
+
+
+ {/* Family Status */}
+
+ Rewşa Malbatê (Family Status)
+
+
+ Zewicî / Nezewicî (Married / Unmarried) *
+
+ setMaritalStatus('zewici')}
+ >
+
+ {maritalStatus === 'zewici' && }
+
+ Zewicî (Married)
+
+
+ setMaritalStatus('nezewici')}
+ >
+
+ {maritalStatus === 'nezewici' && }
+
+ Nezewicî (Unmarried)
+
+
+
+
+ {maritalStatus === 'zewici' && (
+ <>
+
+ Hejmara Zarokan (Number of Children)
+ handleChildCountChange(parseInt(text) || 0)}
+ keyboardType="number-pad"
+ placeholderTextColor="#999"
+ />
+
+
+ {childrenCount > 0 && (
+
+ Navên Zarokan (Children's Names)
+ {children.map((child, index) => (
+
+ updateChild(index, 'name', text)}
+ placeholderTextColor="#999"
+ />
+ updateChild(index, 'birthYear', parseInt(text) || new Date().getFullYear())}
+ keyboardType="number-pad"
+ placeholderTextColor="#999"
+ />
+
+ ))}
+
+ )}
+ >
+ )}
+
+
+ {/* Geographic Origin */}
+
+ Herêma Te (Your Region)
+
+ Ji Kuderê yî? (Where are you from?) *
+
+
+
+
+ {/* Contact & Profession */}
+
+ Têkilî û Pîşe (Contact & Profession)
+
+
+ E-mail *
+
+
+
+
+ Pîşeya Te (Your Profession) *
+
+
+
+
+ {/* Referral */}
+
+ Koda Referral (Referral Code - Optional)
+
+ If you were invited by another citizen, enter their referral code
+
+
+
+
+ If empty, you will be automatically linked to the Founder (Satoshi Qazi Muhammed)
+
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+ Submit Application
+ )}
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ formContainer: {
+ flex: 1,
+ padding: 20,
+ },
+ formTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 4,
+ },
+ formSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 24,
+ },
+ section: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ sectionTitle: {
+ fontSize: 16,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ marginBottom: 12,
+ },
+ sectionDescription: {
+ fontSize: 12,
+ color: '#666',
+ marginBottom: 12,
+ },
+ referralSection: {
+ backgroundColor: `${KurdistanColors.mor}10`,
+ borderWidth: 1,
+ borderColor: `${KurdistanColors.mor}30`,
+ },
+ inputGroup: {
+ marginBottom: 16,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ input: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ padding: 12,
+ fontSize: 14,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ color: KurdistanColors.reş,
+ },
+ radioGroup: {
+ gap: 12,
+ },
+ radioButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingVertical: 8,
+ },
+ radioCircle: {
+ width: 20,
+ height: 20,
+ borderRadius: 10,
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
+ marginRight: 10,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ radioSelected: {
+ borderColor: KurdistanColors.kesk,
+ },
+ radioDot: {
+ width: 10,
+ height: 10,
+ borderRadius: 5,
+ backgroundColor: KurdistanColors.kesk,
+ },
+ radioLabel: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ },
+ childRow: {
+ flexDirection: 'row',
+ gap: 8,
+ marginBottom: 8,
+ },
+ childInput: {
+ flex: 1,
+ marginBottom: 0,
+ },
+ pickerButton: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ padding: 12,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ pickerButtonText: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ },
+ pickerArrow: {
+ fontSize: 12,
+ color: '#666',
+ },
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ justifyContent: 'flex-end',
+ },
+ pickerModal: {
+ backgroundColor: KurdistanColors.spi,
+ borderTopLeftRadius: 20,
+ borderTopRightRadius: 20,
+ maxHeight: '70%',
+ paddingBottom: 20,
+ },
+ pickerHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ pickerTitle: {
+ fontSize: 18,
+ fontWeight: '700',
+ color: KurdistanColors.reş,
+ },
+ pickerClose: {
+ fontSize: 24,
+ color: '#666',
+ fontWeight: '300',
+ },
+ pickerOption: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#F0F0F0',
+ },
+ pickerOptionSelected: {
+ backgroundColor: `${KurdistanColors.kesk}10`,
+ },
+ pickerOptionText: {
+ fontSize: 15,
+ color: KurdistanColors.reş,
+ },
+ pickerOptionTextSelected: {
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ pickerCheckmark: {
+ fontSize: 18,
+ color: KurdistanColors.kesk,
+ fontWeight: 'bold',
+ },
+ helpText: {
+ fontSize: 11,
+ color: '#666',
+ marginTop: 4,
+ },
+ submitButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 20,
+ boxShadow: '0px 4px 6px rgba(0, 128, 0, 0.3)',
+ elevation: 6,
+ },
+ submitButtonDisabled: {
+ opacity: 0.6,
+ },
+ submitButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ spacer: {
+ height: 40,
+ },
+});
+
+export default BeCitizenApplyScreen;
diff --git a/mobile/src/screens/BeCitizenApplyScreen.tsx.bak b/mobile/src/screens/BeCitizenApplyScreen.tsx.bak
new file mode 100644
index 00000000..cc0543b7
--- /dev/null
+++ b/mobile/src/screens/BeCitizenApplyScreen.tsx.bak
@@ -0,0 +1,650 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ TextInput,
+ Alert,
+ ActivityIndicator,
+ Modal,
+} from 'react-native';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import {
+ submitKycApplication,
+ uploadToIPFS,
+ FOUNDER_ADDRESS,
+} from '@pezkuwi/lib/citizenship-workflow';
+import type { Region, MaritalStatus } from '@pezkuwi/lib/citizenship-workflow';
+import { KurdistanColors } from '../theme/colors';
+
+// Temporary custom picker component (until we fix @react-native-picker/picker installation)
+const CustomPicker: React.FC<{
+ selectedValue: Region;
+ onValueChange: (value: Region) => void;
+ options: Array<{ label: string; value: Region }>;
+}> = ({ selectedValue, onValueChange, options }) => {
+ const [isVisible, setIsVisible] = useState(false);
+ const selectedOption = options.find(opt => opt.value === selectedValue);
+
+ return (
+ <>
+ setIsVisible(true)}
+ >
+
+ {selectedOption?.label || 'Select Region'}
+
+ ▼
+
+
+ setIsVisible(false)}
+ >
+ setIsVisible(false)}
+ >
+
+
+ Select Your Region
+ setIsVisible(false)}>
+ ✕
+
+
+
+ {options.map((option) => (
+ {
+ onValueChange(option.value);
+ setIsVisible(false);
+ }}
+ >
+
+ {option.label}
+
+ {selectedValue === option.value && (
+ ✓
+ )}
+
+ ))}
+
+
+
+
+ >
+ );
+};
+
+const BeCitizenApplyScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const { api, selectedAccount } = usePezkuwi();
+ const [isSubmitting, setIsSubmitting] = useState(false);
+
+ // Form State
+ const [fullName, setFullName] = useState('');
+ const [fatherName, setFatherName] = useState('');
+ const [grandfatherName, setGrandfatherName] = useState('');
+ const [motherName, setMotherName] = useState('');
+ const [tribe, setTribe] = useState('');
+ const [maritalStatus, setMaritalStatus] = useState('nezewici');
+ const [childrenCount, setChildrenCount] = useState(0);
+ const [children, setChildren] = useState>([]);
+ const [region, setRegion] = useState('basur');
+ const [email, setEmail] = useState('');
+ const [profession, setProfession] = useState('');
+ const [referralCode, setReferralCode] = useState('');
+
+ const regionOptions = [
+ { label: 'Bakur (North - Turkey/Türkiye)', value: 'bakur' as Region },
+ { label: 'Başûr (South - Iraq)', value: 'basur' as Region },
+ { label: 'Rojava (West - Syria)', value: 'rojava' as Region },
+ { label: 'Rojhilat (East - Iran)', value: 'rojhelat' as Region },
+ { label: 'Kurdistan a Sor (Red Kurdistan)', value: 'kurdistan_a_sor' as Region },
+ { label: 'Diaspora (Living Abroad)', value: 'diaspora' as Region },
+ ];
+
+ const handleChildCountChange = (count: number) => {
+ setChildrenCount(count);
+ // Initialize children array
+ const newChildren = Array.from({ length: count }, (_, i) =>
+ children[i] || { name: '', birthYear: new Date().getFullYear() }
+ );
+ setChildren(newChildren);
+ };
+
+ const updateChild = (index: number, field: 'name' | 'birthYear', value: string | number) => {
+ const updated = [...children];
+ if (field === 'name') {
+ updated[index].name = value as string;
+ } else {
+ updated[index].birthYear = value as number;
+ }
+ setChildren(updated);
+ };
+
+ const handleSubmit = async () => {
+ if (!fullName || !fatherName || !grandfatherName || !motherName || !tribe || !region || !email || !profession) {
+ Alert.alert('Error', 'Please fill in all required fields');
+ return;
+ }
+
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
+ return;
+ }
+
+ setIsSubmitting(true);
+
+ try {
+ // Prepare citizenship data
+ const citizenshipData = {
+ fullName,
+ fatherName,
+ grandfatherName,
+ motherName,
+ tribe,
+ maritalStatus,
+ childrenCount: maritalStatus === 'zewici' ? childrenCount : 0,
+ children: maritalStatus === 'zewici' ? children.filter(c => c.name) : [],
+ region,
+ email,
+ profession,
+ referralCode: referralCode || FOUNDER_ADDRESS, // Auto-assign to founder if empty
+ walletAddress: selectedAccount.address,
+ timestamp: Date.now(),
+ };
+
+ // Step 1: Upload encrypted data to IPFS
+ const ipfsCid = await uploadToIPFS(citizenshipData);
+
+ if (!ipfsCid) {
+ throw new Error('Failed to upload data to IPFS');
+ }
+
+ // Step 2: Submit KYC application to blockchain
+ const result = await submitKycApplication(
+ api,
+ selectedAccount,
+ citizenshipData.fullName,
+ citizenshipData.email,
+ String(ipfsCid),
+ 'Citizenship application via mobile app'
+ );
+
+ if (result.success) {
+ Alert.alert(
+ 'Application Submitted!',
+ 'Your citizenship application has been submitted for review. You will receive a confirmation once approved.',
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ navigation.goBack();
+ },
+ },
+ ]
+ );
+ } else {
+ Alert.alert('Application Failed', result.error || 'Failed to submit application');
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship application error:', error);
+ Alert.alert('Error', error instanceof Error ? error.message : 'An unexpected error occurred');
+ } finally {
+ setIsSubmitting(false);
+ }
+ };
+
+ return (
+
+
+
+ Nasnameya Kesane
+ Personal Identity - Citizenship Application
+
+ {/* Personal Identity */}
+
+ Personal Identity
+
+
+ Navê Te (Your Full Name) *
+
+
+
+
+ Navê Bavê Te (Father's Name) *
+
+
+
+
+ Navê Bavkalê Te (Grandfather's Name) *
+
+
+
+
+ Navê Dayika Te (Mother's Name) *
+
+
+
+
+ {/* Tribal Affiliation */}
+
+ Eşîra Te (Tribal Affiliation)
+
+ Eşîra Te (Your Tribe) *
+
+
+
+
+ {/* Family Status */}
+
+ Rewşa Malbatê (Family Status)
+
+
+ Zewicî / Nezewicî (Married / Unmarried) *
+
+ setMaritalStatus('zewici')}
+ >
+
+ {maritalStatus === 'zewici' && }
+
+ Zewicî (Married)
+
+
+ setMaritalStatus('nezewici')}
+ >
+
+ {maritalStatus === 'nezewici' && }
+
+ Nezewicî (Unmarried)
+
+
+
+
+ {maritalStatus === 'zewici' && (
+ <>
+
+ Hejmara Zarokan (Number of Children)
+ handleChildCountChange(parseInt(text) || 0)}
+ keyboardType="number-pad"
+ placeholderTextColor="#999"
+ />
+
+
+ {childrenCount > 0 && (
+
+ Navên Zarokan (Children's Names)
+ {children.map((child, index) => (
+
+ updateChild(index, 'name', text)}
+ placeholderTextColor="#999"
+ />
+ updateChild(index, 'birthYear', parseInt(text) || new Date().getFullYear())}
+ keyboardType="number-pad"
+ placeholderTextColor="#999"
+ />
+
+ ))}
+
+ )}
+ >
+ )}
+
+
+ {/* Geographic Origin */}
+
+ Herêma Te (Your Region)
+
+ Ji Kuderê yî? (Where are you from?) *
+
+
+
+
+ {/* Contact & Profession */}
+
+ Têkilî û Pîşe (Contact & Profession)
+
+
+ E-mail *
+
+
+
+
+ Pîşeya Te (Your Profession) *
+
+
+
+
+ {/* Referral */}
+
+ Koda Referral (Referral Code - Optional)
+
+ If you were invited by another citizen, enter their referral code
+
+
+
+
+ If empty, you will be automatically linked to the Founder (Satoshi Qazi Muhammed)
+
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+ Submit Application
+ )}
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ formContainer: {
+ flex: 1,
+ padding: 20,
+ },
+ formTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 4,
+ },
+ formSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 24,
+ },
+ section: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ sectionTitle: {
+ fontSize: 16,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ marginBottom: 12,
+ },
+ sectionDescription: {
+ fontSize: 12,
+ color: '#666',
+ marginBottom: 12,
+ },
+ referralSection: {
+ backgroundColor: `${KurdistanColors.mor}10`,
+ borderWidth: 1,
+ borderColor: `${KurdistanColors.mor}30`,
+ },
+ inputGroup: {
+ marginBottom: 16,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ input: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ padding: 12,
+ fontSize: 14,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ color: KurdistanColors.reş,
+ },
+ radioGroup: {
+ gap: 12,
+ },
+ radioButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingVertical: 8,
+ },
+ radioCircle: {
+ width: 20,
+ height: 20,
+ borderRadius: 10,
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
+ marginRight: 10,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ radioSelected: {
+ borderColor: KurdistanColors.kesk,
+ },
+ radioDot: {
+ width: 10,
+ height: 10,
+ borderRadius: 5,
+ backgroundColor: KurdistanColors.kesk,
+ },
+ radioLabel: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ },
+ childRow: {
+ flexDirection: 'row',
+ gap: 8,
+ marginBottom: 8,
+ },
+ childInput: {
+ flex: 1,
+ marginBottom: 0,
+ },
+ pickerButton: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ padding: 12,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ pickerButtonText: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ },
+ pickerArrow: {
+ fontSize: 12,
+ color: '#666',
+ },
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ justifyContent: 'flex-end',
+ },
+ pickerModal: {
+ backgroundColor: KurdistanColors.spi,
+ borderTopLeftRadius: 20,
+ borderTopRightRadius: 20,
+ maxHeight: '70%',
+ paddingBottom: 20,
+ },
+ pickerHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#E0E0E0',
+ },
+ pickerTitle: {
+ fontSize: 18,
+ fontWeight: '700',
+ color: KurdistanColors.reş,
+ },
+ pickerClose: {
+ fontSize: 24,
+ color: '#666',
+ fontWeight: '300',
+ },
+ pickerOption: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 16,
+ borderBottomWidth: 1,
+ borderBottomColor: '#F0F0F0',
+ },
+ pickerOptionSelected: {
+ backgroundColor: `${KurdistanColors.kesk}10`,
+ },
+ pickerOptionText: {
+ fontSize: 15,
+ color: KurdistanColors.reş,
+ },
+ pickerOptionTextSelected: {
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ pickerCheckmark: {
+ fontSize: 18,
+ color: KurdistanColors.kesk,
+ fontWeight: 'bold',
+ },
+ helpText: {
+ fontSize: 11,
+ color: '#666',
+ marginTop: 4,
+ },
+ submitButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 20,
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ submitButtonDisabled: {
+ opacity: 0.6,
+ },
+ submitButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ spacer: {
+ height: 40,
+ },
+});
+
+export default BeCitizenApplyScreen;
diff --git a/mobile/src/screens/BeCitizenChoiceScreen.tsx b/mobile/src/screens/BeCitizenChoiceScreen.tsx
new file mode 100644
index 00000000..364c9c6d
--- /dev/null
+++ b/mobile/src/screens/BeCitizenChoiceScreen.tsx
@@ -0,0 +1,200 @@
+import React from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { KurdistanColors } from '../theme/colors';
+import type { NavigationProp } from '@react-navigation/native';
+
+type RootStackParamList = {
+ BeCitizenChoice: undefined;
+ BeCitizenApply: undefined;
+ BeCitizenClaim: undefined;
+};
+
+const BeCitizenChoiceScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation>();
+
+ return (
+
+
+
+
+
+
+ 🏛️
+
+ Be a Citizen
+
+ Join the Pezkuwi decentralized nation
+
+
+
+
+ navigation.navigate('BeCitizenApply')}
+ activeOpacity={0.8}
+ >
+ 📝
+ New Citizen
+
+ Apply for citizenship and join our community
+
+
+
+ navigation.navigate('BeCitizenClaim')}
+ activeOpacity={0.8}
+ >
+ 🔐
+ Existing Citizen
+
+ Access your citizenship account
+
+
+
+
+
+ Citizenship Benefits
+
+ ✓
+ Voting rights in governance
+
+
+ ✓
+ Access to exclusive services
+
+
+ ✓
+ Referral rewards program
+
+
+ ✓
+ Community recognition
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ gradient: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ padding: 20,
+ paddingTop: 60,
+ },
+ header: {
+ alignItems: 'center',
+ marginBottom: 40,
+ },
+ logoContainer: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: KurdistanColors.spi,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 20,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.3)',
+ elevation: 8,
+ },
+ logoText: {
+ fontSize: 48,
+ },
+ title: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 8,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ textAlign: 'center',
+ opacity: 0.9,
+ },
+ choiceContainer: {
+ gap: 16,
+ marginBottom: 40,
+ },
+ choiceCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 20,
+ padding: 24,
+ alignItems: 'center',
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.2)',
+ elevation: 6,
+ },
+ choiceIcon: {
+ fontSize: 48,
+ marginBottom: 16,
+ },
+ choiceTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginBottom: 8,
+ },
+ choiceDescription: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ },
+ infoSection: {
+ backgroundColor: 'rgba(255, 255, 255, 0.2)',
+ borderRadius: 16,
+ padding: 20,
+ },
+ infoTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.spi,
+ marginBottom: 16,
+ },
+ benefitItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ benefitIcon: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ marginRight: 12,
+ fontWeight: 'bold',
+ },
+ benefitText: {
+ fontSize: 14,
+ color: KurdistanColors.spi,
+ flex: 1,
+ },
+});
+
+export default BeCitizenChoiceScreen;
diff --git a/mobile/src/screens/BeCitizenChoiceScreen.tsx.bak b/mobile/src/screens/BeCitizenChoiceScreen.tsx.bak
new file mode 100644
index 00000000..3222a849
--- /dev/null
+++ b/mobile/src/screens/BeCitizenChoiceScreen.tsx.bak
@@ -0,0 +1,206 @@
+import React from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { KurdistanColors } from '../theme/colors';
+import type { NavigationProp } from '@react-navigation/native';
+
+type RootStackParamList = {
+ BeCitizenChoice: undefined;
+ BeCitizenApply: undefined;
+ BeCitizenClaim: undefined;
+};
+
+const BeCitizenChoiceScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation>();
+
+ return (
+
+
+
+
+
+
+ 🏛️
+
+ Be a Citizen
+
+ Join the Pezkuwi decentralized nation
+
+
+
+
+ navigation.navigate('BeCitizenApply')}
+ activeOpacity={0.8}
+ >
+ 📝
+ New Citizen
+
+ Apply for citizenship and join our community
+
+
+
+ navigation.navigate('BeCitizenClaim')}
+ activeOpacity={0.8}
+ >
+ 🔐
+ Existing Citizen
+
+ Access your citizenship account
+
+
+
+
+
+ Citizenship Benefits
+
+ ✓
+ Voting rights in governance
+
+
+ ✓
+ Access to exclusive services
+
+
+ ✓
+ Referral rewards program
+
+
+ ✓
+ Community recognition
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ gradient: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ padding: 20,
+ paddingTop: 60,
+ },
+ header: {
+ alignItems: 'center',
+ marginBottom: 40,
+ },
+ logoContainer: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: KurdistanColors.spi,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 20,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ logoText: {
+ fontSize: 48,
+ },
+ title: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 8,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ textAlign: 'center',
+ opacity: 0.9,
+ },
+ choiceContainer: {
+ gap: 16,
+ marginBottom: 40,
+ },
+ choiceCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 20,
+ padding: 24,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.2,
+ shadowRadius: 8,
+ elevation: 6,
+ },
+ choiceIcon: {
+ fontSize: 48,
+ marginBottom: 16,
+ },
+ choiceTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginBottom: 8,
+ },
+ choiceDescription: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ },
+ infoSection: {
+ backgroundColor: 'rgba(255, 255, 255, 0.2)',
+ borderRadius: 16,
+ padding: 20,
+ },
+ infoTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.spi,
+ marginBottom: 16,
+ },
+ benefitItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ benefitIcon: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ marginRight: 12,
+ fontWeight: 'bold',
+ },
+ benefitText: {
+ fontSize: 14,
+ color: KurdistanColors.spi,
+ flex: 1,
+ },
+});
+
+export default BeCitizenChoiceScreen;
diff --git a/mobile/src/screens/BeCitizenClaimScreen.tsx b/mobile/src/screens/BeCitizenClaimScreen.tsx
new file mode 100644
index 00000000..30632e83
--- /dev/null
+++ b/mobile/src/screens/BeCitizenClaimScreen.tsx
@@ -0,0 +1,161 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { getCitizenshipStatus } from '@pezkuwi/lib/citizenship-workflow';
+import { KurdistanColors } from '../theme/colors';
+
+const BeCitizenClaimScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const { api, selectedAccount } = usePezkuwi();
+ const [isSubmitting, setIsSubmitting] = useState(false);
+
+ const handleVerify = async () => {
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
+ return;
+ }
+
+ setIsSubmitting(true);
+
+ try {
+ const status = await getCitizenshipStatus(api, selectedAccount.address);
+
+ if (status.kycStatus === 'Approved' && status.hasCitizenTiki) {
+ Alert.alert(
+ 'Success',
+ `Welcome back, Citizen!\n\nYour Tiki Number: ${status.tikiNumber || 'N/A'}`,
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ navigation.goBack();
+ },
+ },
+ ]
+ );
+ } else if (status.kycStatus === 'Approved' && !status.hasCitizenTiki) {
+ Alert.alert(
+ 'Almost there!',
+ 'Your KYC is approved, but you haven\'t claimed your Citizen Tiki yet. Please claim it on the web portal.',
+ [{ text: 'OK' }]
+ );
+ } else if (status.kycStatus === 'Pending') {
+ Alert.alert(
+ 'Application Pending',
+ 'Your citizenship application is still under review.',
+ [{ text: 'OK' }]
+ );
+ } else {
+ Alert.alert(
+ 'Not a Citizen',
+ 'We couldn\'t find a citizenship record for this wallet. If you have a Citizen ID and Password, please note that wallet-based verification is now preferred.',
+ [{ text: 'OK' }]
+ );
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship verification error:', error);
+ Alert.alert('Error', 'Failed to verify citizenship status');
+ } finally {
+ setIsSubmitting(false);
+ }
+ };
+
+ return (
+
+
+
+ Citizen Verification
+
+ Verify your status using your connected wallet
+
+
+
+
+ Existing citizens are verified through their blockchain identity. Ensure your citizenship wallet is selected in the wallet tab.
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+ Verify Citizenship
+ )}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ formContainer: {
+ flex: 1,
+ padding: 20,
+ },
+ formTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ formSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 24,
+ },
+ infoCard: {
+ backgroundColor: `${KurdistanColors.kesk}15`,
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 24,
+ borderLeftWidth: 4,
+ borderLeftColor: KurdistanColors.kesk,
+ },
+ infoText: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ lineHeight: 20,
+ opacity: 0.8,
+ },
+ submitButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 20,
+ boxShadow: '0px 4px 6px rgba(0, 128, 0, 0.3)',
+ elevation: 6,
+ },
+ submitButtonDisabled: {
+ opacity: 0.6,
+ },
+ submitButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+});
+
+export default BeCitizenClaimScreen;
diff --git a/mobile/src/screens/BeCitizenClaimScreen.tsx.bak b/mobile/src/screens/BeCitizenClaimScreen.tsx.bak
new file mode 100644
index 00000000..dc894d5a
--- /dev/null
+++ b/mobile/src/screens/BeCitizenClaimScreen.tsx.bak
@@ -0,0 +1,164 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { getCitizenshipStatus } from '@pezkuwi/lib/citizenship-workflow';
+import { KurdistanColors } from '../theme/colors';
+
+const BeCitizenClaimScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const { api, selectedAccount } = usePezkuwi();
+ const [isSubmitting, setIsSubmitting] = useState(false);
+
+ const handleVerify = async () => {
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
+ return;
+ }
+
+ setIsSubmitting(true);
+
+ try {
+ const status = await getCitizenshipStatus(api, selectedAccount.address);
+
+ if (status.kycStatus === 'Approved' && status.hasCitizenTiki) {
+ Alert.alert(
+ 'Success',
+ `Welcome back, Citizen!\n\nYour Tiki Number: ${status.tikiNumber || 'N/A'}`,
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ navigation.goBack();
+ },
+ },
+ ]
+ );
+ } else if (status.kycStatus === 'Approved' && !status.hasCitizenTiki) {
+ Alert.alert(
+ 'Almost there!',
+ 'Your KYC is approved, but you haven\'t claimed your Citizen Tiki yet. Please claim it on the web portal.',
+ [{ text: 'OK' }]
+ );
+ } else if (status.kycStatus === 'Pending') {
+ Alert.alert(
+ 'Application Pending',
+ 'Your citizenship application is still under review.',
+ [{ text: 'OK' }]
+ );
+ } else {
+ Alert.alert(
+ 'Not a Citizen',
+ 'We couldn\'t find a citizenship record for this wallet. If you have a Citizen ID and Password, please note that wallet-based verification is now preferred.',
+ [{ text: 'OK' }]
+ );
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship verification error:', error);
+ Alert.alert('Error', 'Failed to verify citizenship status');
+ } finally {
+ setIsSubmitting(false);
+ }
+ };
+
+ return (
+
+
+
+ Citizen Verification
+
+ Verify your status using your connected wallet
+
+
+
+
+ Existing citizens are verified through their blockchain identity. Ensure your citizenship wallet is selected in the wallet tab.
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+ Verify Citizenship
+ )}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ formContainer: {
+ flex: 1,
+ padding: 20,
+ },
+ formTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ formSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 24,
+ },
+ infoCard: {
+ backgroundColor: `${KurdistanColors.kesk}15`,
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 24,
+ borderLeftWidth: 4,
+ borderLeftColor: KurdistanColors.kesk,
+ },
+ infoText: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ lineHeight: 20,
+ opacity: 0.8,
+ },
+ submitButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 20,
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ submitButtonDisabled: {
+ opacity: 0.6,
+ },
+ submitButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+});
+
+export default BeCitizenClaimScreen;
diff --git a/mobile/src/screens/BeCitizenScreen.tsx b/mobile/src/screens/BeCitizenScreen.tsx
index acb7ee3e..dce861af 100644
--- a/mobile/src/screens/BeCitizenScreen.tsx
+++ b/mobile/src/screens/BeCitizenScreen.tsx
@@ -13,13 +13,17 @@ import {
} from 'react-native';
import { LinearGradient } from 'expo-linear-gradient';
import { useTranslation } from 'react-i18next';
-import { usePolkadot } from '../contexts/PolkadotContext';
-import { submitKycApplication, uploadToIPFS } from '@pezkuwi/lib/citizenship-workflow';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import {
+ submitKycApplication,
+ uploadToIPFS,
+ getCitizenshipStatus,
+} from '@pezkuwi/lib/citizenship-workflow';
import { KurdistanColors } from '../theme/colors';
const BeCitizenScreen: React.FC = () => {
const { t: _t } = useTranslation();
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [_isExistingCitizen, _setIsExistingCitizen] = useState(false);
const [currentStep, setCurrentStep] = useState<'choice' | 'new' | 'existing'>('choice');
const [isSubmitting, setIsSubmitting] = useState(false);
@@ -116,23 +120,57 @@ const BeCitizenScreen: React.FC = () => {
}
};
- const handleExistingCitizenLogin = () => {
- if (!citizenId || !password) {
- Alert.alert('Error', 'Please enter Citizen ID and Password');
+ const handleExistingCitizenLogin = async () => {
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
return;
}
- // TODO: Implement actual citizenship verification
- Alert.alert('Success', 'Welcome back, Citizen!', [
- {
- text: 'OK',
- onPress: () => {
- setCitizenId('');
- setPassword('');
- setCurrentStep('choice');
- },
- },
- ]);
+ setIsSubmitting(true);
+
+ try {
+ const status = await getCitizenshipStatus(api, selectedAccount.address);
+
+ if (status.kycStatus === 'Approved' && status.hasCitizenTiki) {
+ Alert.alert(
+ 'Success',
+ `Welcome back, Citizen!\n\nYour Tiki Number: ${status.tikiNumber || 'N/A'}`,
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ setCitizenId('');
+ setPassword('');
+ setCurrentStep('choice');
+ },
+ },
+ ]
+ );
+ } else if (status.kycStatus === 'Approved' && !status.hasCitizenTiki) {
+ Alert.alert(
+ 'Almost there!',
+ 'Your KYC is approved, but you haven\'t claimed your Citizen Tiki yet. Please claim it on the web portal.',
+ [{ text: 'OK' }]
+ );
+ } else if (status.kycStatus === 'Pending') {
+ Alert.alert(
+ 'Application Pending',
+ 'Your citizenship application is still under review.',
+ [{ text: 'OK' }]
+ );
+ } else {
+ Alert.alert(
+ 'Not a Citizen',
+ 'We couldn\'t find a citizenship record for this wallet. If you have a Citizen ID and Password, please note that wallet-based verification is now preferred.',
+ [{ text: 'OK' }]
+ );
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship verification error:', error);
+ Alert.alert('Error', 'Failed to verify citizenship status');
+ } finally {
+ setIsSubmitting(false);
+ }
};
if (currentStep === 'choice') {
@@ -348,40 +386,28 @@ const BeCitizenScreen: React.FC = () => {
← Back
- Citizen Login
+ Citizen Verification
- Access your citizenship account
+ Verify your status using your connected wallet
-
- Citizen ID
-
-
-
-
- Password
-
+
+
+ Existing citizens are verified through their blockchain identity. Ensure your citizenship wallet is selected in the wallet tab.
+
- Login
+ {isSubmitting ? (
+
+ ) : (
+ Verify Citizenship
+ )}
@@ -413,10 +439,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
marginBottom: 20,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.3)',
elevation: 8,
},
logoText: {
@@ -443,10 +466,7 @@ const styles = StyleSheet.create({
borderRadius: 20,
padding: 24,
alignItems: 'center',
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.2,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.2)',
elevation: 6,
},
choiceIcon: {
@@ -491,6 +511,20 @@ const styles = StyleSheet.create({
color: KurdistanColors.spi,
flex: 1,
},
+ infoCard: {
+ backgroundColor: `${KurdistanColors.kesk}15`,
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 24,
+ borderLeftWidth: 4,
+ borderLeftColor: KurdistanColors.kesk,
+ },
+ infoText: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ lineHeight: 20,
+ opacity: 0.8,
+ },
formContainer: {
flex: 1,
padding: 20,
@@ -537,10 +571,7 @@ const styles = StyleSheet.create({
padding: 16,
alignItems: 'center',
marginTop: 20,
- shadowColor: KurdistanColors.kesk,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
+ boxShadow: '0px 4px 6px rgba(0, 128, 0, 0.3)',
elevation: 6,
},
submitButtonDisabled: {
diff --git a/mobile/src/screens/BeCitizenScreen.tsx.bak b/mobile/src/screens/BeCitizenScreen.tsx.bak
new file mode 100644
index 00000000..71d16b2e
--- /dev/null
+++ b/mobile/src/screens/BeCitizenScreen.tsx.bak
@@ -0,0 +1,599 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ TextInput,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import {
+ submitKycApplication,
+ uploadToIPFS,
+ getCitizenshipStatus,
+} from '@pezkuwi/lib/citizenship-workflow';
+import { KurdistanColors } from '../theme/colors';
+
+const BeCitizenScreen: React.FC = () => {
+ const { t: _t } = useTranslation();
+ const { api, selectedAccount } = usePezkuwi();
+ const [_isExistingCitizen, _setIsExistingCitizen] = useState(false);
+ const [currentStep, setCurrentStep] = useState<'choice' | 'new' | 'existing'>('choice');
+ const [isSubmitting, setIsSubmitting] = useState(false);
+
+ // New Citizen Form State
+ const [fullName, setFullName] = useState('');
+ const [fatherName, setFatherName] = useState('');
+ const [motherName, setMotherName] = useState('');
+ const [tribe, setTribe] = useState('');
+ const [region, setRegion] = useState('');
+ const [email, setEmail] = useState('');
+ const [profession, setProfession] = useState('');
+ const [referralCode, setReferralCode] = useState('');
+
+ // Existing Citizen Login State
+ const [citizenId, setCitizenId] = useState('');
+ const [password, setPassword] = useState('');
+
+ const handleNewCitizenApplication = async () => {
+ if (!fullName || !fatherName || !motherName || !email) {
+ Alert.alert('Error', 'Please fill in all required fields');
+ return;
+ }
+
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
+ return;
+ }
+
+ setIsSubmitting(true);
+
+ try {
+ // Prepare citizenship data
+ const citizenshipData = {
+ fullName,
+ fatherName,
+ motherName,
+ tribe,
+ region,
+ email,
+ profession,
+ referralCode,
+ walletAddress: selectedAccount.address,
+ timestamp: Date.now(),
+ };
+
+ // Step 1: Upload encrypted data to IPFS
+ const ipfsCid = await uploadToIPFS(citizenshipData);
+
+ if (!ipfsCid) {
+ throw new Error('Failed to upload data to IPFS');
+ }
+
+ // Step 2: Submit KYC application to blockchain
+ const result = await submitKycApplication(
+ api,
+ selectedAccount,
+ fullName,
+ email,
+ ipfsCid,
+ 'Citizenship application via mobile app'
+ );
+
+ if (result.success) {
+ Alert.alert(
+ 'Application Submitted!',
+ 'Your citizenship application has been submitted for review. You will receive a confirmation once approved.',
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ // Reset form
+ setFullName('');
+ setFatherName('');
+ setMotherName('');
+ setTribe('');
+ setRegion('');
+ setEmail('');
+ setProfession('');
+ setReferralCode('');
+ setCurrentStep('choice');
+ },
+ },
+ ]
+ );
+ } else {
+ Alert.alert('Application Failed', result.error || 'Failed to submit application');
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship application error:', error);
+ Alert.alert('Error', error instanceof Error ? error.message : 'An unexpected error occurred');
+ } finally {
+ setIsSubmitting(false);
+ }
+ };
+
+ const handleExistingCitizenLogin = async () => {
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet first');
+ return;
+ }
+
+ setIsSubmitting(true);
+
+ try {
+ const status = await getCitizenshipStatus(api, selectedAccount.address);
+
+ if (status.kycStatus === 'Approved' && status.hasCitizenTiki) {
+ Alert.alert(
+ 'Success',
+ `Welcome back, Citizen!\n\nYour Tiki Number: ${status.tikiNumber || 'N/A'}`,
+ [
+ {
+ text: 'OK',
+ onPress: () => {
+ setCitizenId('');
+ setPassword('');
+ setCurrentStep('choice');
+ },
+ },
+ ]
+ );
+ } else if (status.kycStatus === 'Approved' && !status.hasCitizenTiki) {
+ Alert.alert(
+ 'Almost there!',
+ 'Your KYC is approved, but you haven\'t claimed your Citizen Tiki yet. Please claim it on the web portal.',
+ [{ text: 'OK' }]
+ );
+ } else if (status.kycStatus === 'Pending') {
+ Alert.alert(
+ 'Application Pending',
+ 'Your citizenship application is still under review.',
+ [{ text: 'OK' }]
+ );
+ } else {
+ Alert.alert(
+ 'Not a Citizen',
+ 'We couldn\'t find a citizenship record for this wallet. If you have a Citizen ID and Password, please note that wallet-based verification is now preferred.',
+ [{ text: 'OK' }]
+ );
+ }
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Citizenship verification error:', error);
+ Alert.alert('Error', 'Failed to verify citizenship status');
+ } finally {
+ setIsSubmitting(false);
+ }
+ };
+
+ if (currentStep === 'choice') {
+ return (
+
+
+
+
+
+
+ 🏛️
+
+ Be a Citizen
+
+ Join the Pezkuwi decentralized nation
+
+
+
+
+ setCurrentStep('new')}
+ activeOpacity={0.8}
+ >
+ 📝
+ New Citizen
+
+ Apply for citizenship and join our community
+
+
+
+ setCurrentStep('existing')}
+ activeOpacity={0.8}
+ >
+ 🔐
+ Existing Citizen
+
+ Access your citizenship account
+
+
+
+
+
+ Citizenship Benefits
+
+ ✓
+ Voting rights in governance
+
+
+ ✓
+ Access to exclusive services
+
+
+ ✓
+ Referral rewards program
+
+
+ ✓
+ Community recognition
+
+
+
+
+
+ );
+ }
+
+ if (currentStep === 'new') {
+ return (
+
+
+
+ setCurrentStep('choice')}
+ >
+ ← Back
+
+
+ New Citizen Application
+
+ Please provide your information to apply for citizenship
+
+
+
+ Full Name *
+
+
+
+
+ Father's Name *
+
+
+
+
+ Mother's Name *
+
+
+
+
+ Tribe
+
+
+
+
+ Region
+
+
+
+
+ Email *
+
+
+
+
+ Profession
+
+
+
+
+ Referral Code
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+ Submit Application
+ )}
+
+
+
+
+
+ );
+ }
+
+ // Existing Citizen Login
+ return (
+
+
+
+ setCurrentStep('choice')}
+ >
+ ← Back
+
+
+ Citizen Verification
+
+ Verify your status using your connected wallet
+
+
+
+
+ Existing citizens are verified through their blockchain identity. Ensure your citizenship wallet is selected in the wallet tab.
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+ Verify Citizenship
+ )}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ gradient: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ padding: 20,
+ paddingTop: 60,
+ },
+ header: {
+ alignItems: 'center',
+ marginBottom: 40,
+ },
+ logoContainer: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: KurdistanColors.spi,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 20,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ logoText: {
+ fontSize: 48,
+ },
+ title: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 8,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ textAlign: 'center',
+ opacity: 0.9,
+ },
+ choiceContainer: {
+ gap: 16,
+ marginBottom: 40,
+ },
+ choiceCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 20,
+ padding: 24,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.2,
+ shadowRadius: 8,
+ elevation: 6,
+ },
+ choiceIcon: {
+ fontSize: 48,
+ marginBottom: 16,
+ },
+ choiceTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginBottom: 8,
+ },
+ choiceDescription: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ },
+ infoSection: {
+ backgroundColor: 'rgba(255, 255, 255, 0.2)',
+ borderRadius: 16,
+ padding: 20,
+ },
+ infoTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.spi,
+ marginBottom: 16,
+ },
+ benefitItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ benefitIcon: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ marginRight: 12,
+ fontWeight: 'bold',
+ },
+ benefitText: {
+ fontSize: 14,
+ color: KurdistanColors.spi,
+ flex: 1,
+ },
+ infoCard: {
+ backgroundColor: `${KurdistanColors.kesk}15`,
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 24,
+ borderLeftWidth: 4,
+ borderLeftColor: KurdistanColors.kesk,
+ },
+ infoText: {
+ fontSize: 14,
+ color: KurdistanColors.reş,
+ lineHeight: 20,
+ opacity: 0.8,
+ },
+ formContainer: {
+ flex: 1,
+ padding: 20,
+ },
+ backButton: {
+ marginBottom: 20,
+ },
+ backButtonText: {
+ fontSize: 16,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ formTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ formSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 24,
+ },
+ inputGroup: {
+ marginBottom: 20,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ input: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ fontSize: 16,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ },
+ submitButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 20,
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ submitButtonDisabled: {
+ opacity: 0.6,
+ },
+ submitButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ spacer: {
+ height: 40,
+ },
+});
+
+export default BeCitizenScreen;
diff --git a/mobile/src/screens/DashboardScreen.tsx b/mobile/src/screens/DashboardScreen.tsx
index a0680a0b..47353453 100644
--- a/mobile/src/screens/DashboardScreen.tsx
+++ b/mobile/src/screens/DashboardScreen.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState, useEffect, useCallback } from 'react';
import {
View,
Text,
@@ -9,15 +9,26 @@ import {
StatusBar,
Image,
Alert,
+ Dimensions,
+ Platform,
+ ActivityIndicator,
} from 'react-native';
import { LinearGradient } from 'expo-linear-gradient';
import { useTranslation } from 'react-i18next';
import { useNavigation } from '@react-navigation/native';
import type { NavigationProp } from '@react-navigation/native';
import type { BottomTabParamList } from '../navigation/BottomTabNavigator';
+import type { RootStackParamList } from '../navigation/AppNavigator';
import { KurdistanColors } from '../theme/colors';
+import { useAuth } from '../contexts/AuthContext';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { supabase } from '../lib/supabase';
+import AvatarPickerModal from '../components/AvatarPickerModal';
+import { fetchUserTikis, getPrimaryRole, getTikiDisplayName, getTikiEmoji, getTikiColor } from '@pezkuwi/lib/tiki';
+import { getAllScores, type UserScores } from '@pezkuwi/lib/scores';
+import { getKycStatus } from '@pezkuwi/lib/kyc';
-// Quick action images
+// Existing Quick Action Images (Reused)
import qaEducation from '../../../shared/images/quick-actions/qa_education.png';
import qaExchange from '../../../shared/images/quick-actions/qa_exchange.png';
import qaForum from '../../../shared/images/quick-actions/qa_forum.jpg';
@@ -28,185 +39,484 @@ import qaBank from '../../../shared/images/quick-actions/qa_bank.png';
import qaGames from '../../../shared/images/quick-actions/qa_games.png';
import qaKurdMedia from '../../../shared/images/quick-actions/qa_kurdmedia.jpg';
import qaUniversity from '../../../shared/images/quick-actions/qa_university.png';
+import avatarPlaceholder from '../../../shared/images/app-image.png'; // Fallback avatar
-interface DashboardScreenProps {
- _onNavigateToWallet: () => void;
- _onNavigateToSettings: () => void;
-}
+const { width } = Dimensions.get('window');
-const DashboardScreen: React.FC = ({
- _onNavigateToWallet,
- _onNavigateToSettings,
-}) => {
+// Avatar pool matching AvatarPickerModal
+const AVATAR_POOL = [
+ { id: 'avatar1', emoji: '👨🏻' },
+ { id: 'avatar2', emoji: '👨🏼' },
+ { id: 'avatar3', emoji: '👨🏽' },
+ { id: 'avatar4', emoji: '👨🏾' },
+ { id: 'avatar5', emoji: '👩🏻' },
+ { id: 'avatar6', emoji: '👩🏼' },
+ { id: 'avatar7', emoji: '👩🏽' },
+ { id: 'avatar8', emoji: '👩🏾' },
+ { id: 'avatar9', emoji: '🧔🏻' },
+ { id: 'avatar10', emoji: '🧔🏼' },
+ { id: 'avatar11', emoji: '🧔🏽' },
+ { id: 'avatar12', emoji: '🧔🏾' },
+ { id: 'avatar13', emoji: '👳🏻♂️' },
+ { id: 'avatar14', emoji: '👳🏼♂️' },
+ { id: 'avatar15', emoji: '👳🏽♂️' },
+ { id: 'avatar16', emoji: '🧕🏻' },
+ { id: 'avatar17', emoji: '🧕🏼' },
+ { id: 'avatar18', emoji: '🧕🏽' },
+ { id: 'avatar19', emoji: '👴🏻' },
+ { id: 'avatar20', emoji: '👴🏼' },
+ { id: 'avatar21', emoji: '👵🏻' },
+ { id: 'avatar22', emoji: '👵🏼' },
+ { id: 'avatar23', emoji: '👦🏻' },
+ { id: 'avatar24', emoji: '👦🏼' },
+ { id: 'avatar25', emoji: '👧🏻' },
+ { id: 'avatar26', emoji: '👧🏼' },
+];
+
+// Helper function to get emoji from avatar ID
+const getEmojiFromAvatarId = (avatarId: string): string => {
+ const avatar = AVATAR_POOL.find(a => a.id === avatarId);
+ return avatar ? avatar.emoji : '👤'; // Default to person emoji if not found
+};
+
+interface DashboardScreenProps {}
+
+const DashboardScreen: React.FC = () => {
const { t } = useTranslation();
- const navigation = useNavigation>();
+ const navigation = useNavigation>();
+ const { user } = useAuth();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
+ const [profileData, setProfileData] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [avatarModalVisible, setAvatarModalVisible] = useState(false);
+
+ // Blockchain state
+ const [tikis, setTikis] = useState([]);
+ const [scores, setScores] = useState({
+ trustScore: 0,
+ referralScore: 0,
+ stakingScore: 0,
+ tikiScore: 0,
+ totalScore: 0
+ });
+ const [kycStatus, setKycStatus] = useState('NotStarted');
+ const [loadingScores, setLoadingScores] = useState(false);
+
+ // Fetch profile data from Supabase
+ const fetchProfile = useCallback(async () => {
+ if (!user) {
+ setLoading(false);
+ return;
+ }
+
+ try {
+ const { data, error } = await supabase
+ .from('profiles')
+ .select('*')
+ .eq('id', user.id)
+ .maybeSingle();
+
+ if (error) {
+ if (__DEV__) console.warn('Profile fetch error:', error);
+ return;
+ }
+
+ setProfileData(data);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching profile:', error);
+ } finally {
+ setLoading(false);
+ }
+ }, [user]);
+
+ // Fetch blockchain data (tikis, scores, KYC)
+ const fetchBlockchainData = useCallback(async () => {
+ if (!selectedAccount || !api || !isApiReady) return;
+
+ setLoadingScores(true);
+ try {
+ // Fetch tikis
+ const userTikis = await fetchUserTikis(api, selectedAccount.address);
+ setTikis(userTikis);
+
+ // Fetch all scores
+ const allScores = await getAllScores(api, selectedAccount.address);
+ setScores(allScores);
+
+ // Fetch KYC status
+ const status = await getKycStatus(api, selectedAccount.address);
+ setKycStatus(status);
+
+ if (__DEV__) console.log('[Dashboard] Blockchain data fetched:', { tikis: userTikis, scores: allScores, kycStatus: status });
+ } catch (error) {
+ if (__DEV__) console.error('[Dashboard] Error fetching blockchain data:', error);
+ } finally {
+ setLoadingScores(false);
+ }
+ }, [selectedAccount, api, isApiReady]);
+
+ useEffect(() => {
+ fetchProfile();
+ }, [fetchProfile]);
+
+ useEffect(() => {
+ if (selectedAccount && api && isApiReady) {
+ fetchBlockchainData();
+ }
+ }, [fetchBlockchainData]);
+
+ // Check if user is a visitor (default when no blockchain wallet or no tikis)
+ const isVisitor = !selectedAccount || tikis.length === 0;
+ const primaryRole = tikis.length > 0 ? getPrimaryRole(tikis) : 'Visitor';
const showComingSoon = (featureName: string) => {
Alert.alert(
- 'Coming Soon',
- `${featureName} feature is under development and will be available soon!`,
+ t('settingsScreen.comingSoon'),
+ `${featureName} ${t('settingsScreen.comingSoonMessage')}`,
[{ text: 'OK' }]
);
};
- const quickActions = [
- {
- key: 'education',
- title: 'Education',
- image: qaEducation,
- available: true,
- onPress: () => navigation.navigate('Education'),
- },
- {
- key: 'exchange',
- title: 'Exchange',
- image: qaExchange,
- available: true,
- onPress: () => navigation.navigate('Swap'),
- },
- {
- key: 'forum',
- title: 'Forum',
- image: qaForum,
- available: true,
- onPress: () => navigation.navigate('Forum'),
- },
- {
- key: 'governance',
- title: 'Governance',
- image: qaGovernance,
- available: true,
- onPress: () => navigation.navigate('Home'), // TODO: Navigate to Governance screen
- },
- {
- key: 'trading',
- title: 'Trading',
- image: qaTrading,
- available: true,
- onPress: () => navigation.navigate('P2P'),
- },
- {
- key: 'b2b',
- title: 'B2B Trading',
- image: qaB2B,
- available: false,
- onPress: () => showComingSoon('B2B Trading'),
- },
- {
- key: 'bank',
- title: 'Banking',
- image: qaBank,
- available: false,
- onPress: () => showComingSoon('Banking'),
- },
- {
- key: 'games',
- title: 'Games',
- image: qaGames,
- available: false,
- onPress: () => showComingSoon('Games'),
- },
- {
- key: 'kurdmedia',
- title: 'Kurd Media',
- image: qaKurdMedia,
- available: false,
- onPress: () => showComingSoon('Kurd Media'),
- },
- {
- key: 'university',
- title: 'University',
- image: qaUniversity,
- available: false,
- onPress: () => showComingSoon('University'),
- },
- ];
+ const handleAvatarClick = () => {
+ setAvatarModalVisible(true);
+ };
+
+ const handleAvatarSelected = (avatarUrl: string) => {
+ // Refresh profile data to show new avatar
+ setProfileData((prev: any) => ({
+ ...prev,
+ avatar_url: avatarUrl,
+ }));
+ };
+
+ const renderAppIcon = (title: string, icon: any, onPress: () => void, isEmoji = false, comingSoon = false) => (
+
+
+ {isEmoji ? (
+ {icon}
+ ) : (
+
+ )}
+ {comingSoon && (
+
+ 🔒
+
+ )}
+
+ {title}
+
+ );
return (
-
-
- {/* Header */}
-
-
-
- Welcome!
- {t('dashboard.title')}
-
-
- PZK
-
-
-
-
- {/* Balance Card */}
-
- {t('dashboard.balance')}
- 0.00 HEZ
-
-
- {t('dashboard.totalStaked')}
- 0.00
-
-
-
- {t('dashboard.rewards')}
- 0.00
-
-
-
-
- {/* Quick Actions */}
-
- Quick Actions
-
- {quickActions.map((action) => (
-
-
+
+
+ {/* HEADER SECTION */}
+
+
+
+
+ {profileData?.avatar_url ? (
+ // Check if avatar_url is a URL (starts with http) or an emoji ID
+ profileData.avatar_url.startsWith('http') ? (
- {!action.available && (
-
- Soon
-
- )}
-
-
- {action.title}
-
-
- ))}
-
-
+ ) : (
+ // It's an emoji ID, render as emoji text
+
+
+ {getEmojiFromAvatarId(profileData.avatar_url)}
+
+
+ )
+ ) : (
+
+ )}
+ {/* Online Status Indicator */}
+
+
- {/* Active Proposals */}
-
- {t('dashboard.activeProposals')}
-
- 0
- Active Proposals
-
- View All
+ {/* Tiki Badge next to avatar - shows primary role */}
+
+
+ {getTikiEmoji(primaryRole)} {getTikiDisplayName(primaryRole)}
+
+
+
+
+
+
+ Rojbaş, {profileData?.full_name || user?.email?.split('@')[0] || 'Heval'}
+
+
+ {tikis.map((tiki, index) => (
+
+ ✓ {tiki}
+
+ ))}
+
+
+
+
+ showComingSoon('Notifications')}>
+ 🔔
+
+ navigation.navigate('Settings')}>
+ ⚙️
+
+
+
+ {/* SCORE CARDS SECTION */}
+
+
+ {/* Member Since Card */}
+
+ 📅
+ Member Since
+
+ {profileData?.created_at
+ ? new Date(profileData.created_at).toLocaleDateString('en-US', { month: 'short', year: 'numeric' })
+ : user?.created_at
+ ? new Date(user.created_at).toLocaleDateString('en-US', { month: 'short', year: 'numeric' })
+ : 'N/A'
+ }
+
+
+
+ {/* Role Card */}
+
+ {getTikiEmoji(primaryRole)}
+ Role
+ {getTikiDisplayName(primaryRole)}
+
+ {selectedAccount ? `${tikis.length} ${tikis.length === 1 ? 'role' : 'roles'}` : 'Connect wallet'}
+
+
+
+ {/* Total Score Card */}
+
+ 🏆
+ Total Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.totalScore}
+
+ All score types
+ >
+ )}
+
+
+ {/* Trust Score Card */}
+
+ 🛡️
+ Trust Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.trustScore}
+
+ pezpallet_trust
+ >
+ )}
+
+
+ {/* Referral Score Card */}
+
+ 👥
+ Referral Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.referralScore}
+
+ Referrals
+ >
+ )}
+
+
+ {/* Staking Score Card */}
+
+ 📈
+ Staking Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.stakingScore}
+
+ pezpallet_staking
+ >
+ )}
+
+
+ {/* Tiki Score Card */}
+
+ ⭐
+ Tiki Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.tikiScore}
+
+
+ {tikis.length} {tikis.length === 1 ? 'role' : 'roles'}
+
+ >
+ )}
+
+
+ {/* KYC Status Card */}
+
+
+ {kycStatus === 'Approved' ? '✅' : kycStatus === 'Pending' ? '⏳' : '📝'}
+
+ KYC Status
+
+ {kycStatus}
+
+ {kycStatus === 'NotStarted' && (
+ navigation.navigate('BeCitizen')}
+ >
+ Apply
+
+ )}
+
+
+
+
+ {/* 1. FINANCE SECTION */}
+
+
+ FINANCE 💰
+ navigation.navigate('Apps')}>
+ Hemû / All
+
+
+
+ {/* Wallet Visitors - Everyone can use */}
+ {renderAppIcon('Wallet Visitors', '👁️', () => showComingSoon('Wallet Visitors'), true)}
+
+ {/* Wallet Welati - Only Citizens can use */}
+ {renderAppIcon('Wallet Welati', '🏛️', () => {
+ if (tikis.includes('Citizen') || tikis.includes('Welati')) {
+ showComingSoon('Wallet Welati');
+ } else {
+ Alert.alert(
+ 'Citizens Only',
+ 'Wallet Welati is only available to Pezkuwi citizens. Please apply for citizenship first.',
+ [{ text: 'OK' }]
+ );
+ }
+ }, true, !tikis.includes('Citizen') && !tikis.includes('Welati'))}
+
+ {renderAppIcon('Bank', qaBank, () => showComingSoon('Bank'), false, true)}
+ {renderAppIcon('Exchange', qaExchange, () => showComingSoon('Swap'), false)}
+ {renderAppIcon('P2P', qaTrading, () => showComingSoon('P2P'), false)}
+ {renderAppIcon('B2B', qaB2B, () => showComingSoon('B2B Trading'), false, true)}
+ {renderAppIcon('Tax', '📊', () => showComingSoon('Tax/Zekat'), true, true)}
+ {renderAppIcon('Launchpad', '🚀', () => showComingSoon('Launchpad'), true, true)}
+
+
+
+ {/* 2. GOVERNANCE SECTION */}
+
+
+ GOVERNANCE 🏛️
+
+
+ {renderAppIcon('President', '👑', () => showComingSoon('Presidency'), true, true)}
+ {renderAppIcon('Assembly', qaGovernance, () => showComingSoon('Assembly'), false, true)}
+ {renderAppIcon('Vote', '🗳️', () => showComingSoon('Voting'), true, true)}
+ {renderAppIcon('Validators', '🛡️', () => showComingSoon('Validators'), true, true)}
+ {renderAppIcon('Justice', '⚖️', () => showComingSoon('Dad / Justice'), true, true)}
+ {renderAppIcon('Proposals', '📜', () => showComingSoon('Proposals'), true, true)}
+ {renderAppIcon('Polls', '📊', () => showComingSoon('Public Polls'), true, true)}
+ {renderAppIcon('Identity', '🆔', () => navigation.navigate('BeCitizen'), true)}
+
+
+
+ {/* 3. SOCIAL SECTION */}
+
+
+ SOCIAL 💬
+
+
+ {renderAppIcon('whatsKURD', '💬', () => showComingSoon('whatsKURD'), true, true)}
+ {renderAppIcon('Forum', qaForum, () => showComingSoon('Forum'), false)}
+ {renderAppIcon('KurdMedia', qaKurdMedia, () => showComingSoon('KurdMedia'), false, true)}
+ {renderAppIcon('Events', '🎭', () => showComingSoon('Çalakî / Events'), true, true)}
+ {renderAppIcon('Help', '🤝', () => showComingSoon('Harîkarî / Help'), true, true)}
+ {renderAppIcon('Music', '🎵', () => showComingSoon('Music Stream'), true, true)}
+ {renderAppIcon('VPN', '🛡️', () => showComingSoon('Decentralized VPN'), true, true)}
+ {renderAppIcon('Referral', '👥', () => navigation.navigate('Referral'), true)}
+
+
+
+ {/* 4. EDUCATION SECTION */}
+
+
+ EDUCATION 📚
+
+
+ {renderAppIcon('University', qaUniversity, () => showComingSoon('University'), false, true)}
+ {renderAppIcon('Perwerde', qaEducation, () => showComingSoon('Education'), false)}
+ {renderAppIcon('Library', '📜', () => showComingSoon('Pirtûkxane'), true, true)}
+ {renderAppIcon('Language', '🗣️', () => showComingSoon('Ziman / Language'), true, true)}
+ {renderAppIcon('Kids', '🧸', () => showComingSoon('Zarok / Kids'), true, true)}
+ {renderAppIcon('Certificates', '🏆', () => showComingSoon('Certificates'), true, true)}
+ {renderAppIcon('Research', '🔬', () => showComingSoon('Research'), true, true)}
+ {renderAppIcon('History', '🏺', () => showComingSoon('History'), true, true)}
+
+
+
+
+
+ {/* Avatar Picker Modal */}
+ setAvatarModalVisible(false)}
+ currentAvatar={profileData?.avatar_url}
+ onAvatarSelected={handleAvatarSelected}
+ />
);
};
@@ -214,180 +524,241 @@ const DashboardScreen: React.FC = ({
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: '#F5F5F5',
+ backgroundColor: '#F2F2F7',
+ },
+ scrollView: {
+ flex: 1,
+ },
+ scrollContent: {
+ paddingBottom: 40,
},
header: {
- paddingTop: 20,
- paddingBottom: 30,
+ paddingTop: Platform.OS === 'android' ? 40 : 20,
+ paddingBottom: 25,
paddingHorizontal: 20,
- borderBottomLeftRadius: 30,
- borderBottomRightRadius: 30,
+ borderBottomLeftRadius: 24,
+ borderBottomRightRadius: 24,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.2)',
+ elevation: 8,
},
- headerContent: {
+ headerTop: {
flexDirection: 'row',
+ alignItems: 'center',
justifyContent: 'space-between',
+ },
+ avatarSection: {
+ flexDirection: 'row',
alignItems: 'center',
},
- greeting: {
- fontSize: 14,
- color: KurdistanColors.spi,
- opacity: 0.9,
- },
- headerTitle: {
- fontSize: 24,
- fontWeight: 'bold',
- color: KurdistanColors.spi,
- },
- logoContainer: {
- width: 50,
- height: 50,
- borderRadius: 25,
- backgroundColor: KurdistanColors.spi,
+ avatar: {
+ width: 56,
+ height: 56,
+ borderRadius: 28,
+ borderWidth: 2,
+ borderColor: KurdistanColors.spi,
+ backgroundColor: '#ddd',
justifyContent: 'center',
alignItems: 'center',
},
- logoText: {
- fontSize: 16,
- fontWeight: 'bold',
- color: KurdistanColors.kesk,
+ avatarEmoji: {
+ fontSize: 32,
},
- balanceCard: {
- backgroundColor: KurdistanColors.spi,
- margin: 20,
- marginTop: -20,
- borderRadius: 20,
- padding: 24,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.1,
- shadowRadius: 12,
- elevation: 6,
+ tikiAvatarBadge: {
+ marginLeft: 8,
+ backgroundColor: 'rgba(255, 255, 255, 0.25)',
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ borderWidth: 1,
+ borderColor: 'rgba(255, 255, 255, 0.4)',
},
- balanceLabel: {
- fontSize: 14,
- color: '#666',
- marginBottom: 8,
+ tikiAvatarText: {
+ fontSize: 11,
+ color: KurdistanColors.spi,
+ fontWeight: '700',
},
- balanceAmount: {
- fontSize: 36,
- fontWeight: 'bold',
- color: KurdistanColors.kesk,
- marginBottom: 20,
+ statusIndicator: {
+ position: 'absolute',
+ bottom: 2,
+ right: 2,
+ width: 14,
+ height: 14,
+ borderRadius: 7,
+ backgroundColor: '#4CAF50', // Online green
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
},
- balanceStats: {
- flexDirection: 'row',
- justifyContent: 'space-around',
- },
- statItem: {
+ headerInfo: {
flex: 1,
- alignItems: 'center',
+ marginLeft: 16,
},
- statLabel: {
- fontSize: 12,
- color: '#999',
+ greeting: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
marginBottom: 4,
},
- statValue: {
- fontSize: 18,
- fontWeight: '600',
- color: KurdistanColors.reş,
- },
- statDivider: {
- width: 1,
- backgroundColor: '#E0E0E0',
- },
- section: {
- padding: 20,
- },
- sectionTitle: {
- fontSize: 18,
- fontWeight: '600',
- color: KurdistanColors.reş,
- marginBottom: 16,
- },
- quickActionsGrid: {
+ tikiContainer: {
flexDirection: 'row',
flexWrap: 'wrap',
- justifyContent: 'space-between',
},
- quickActionItem: {
- width: '30%',
- marginBottom: 16,
- alignItems: 'center',
- },
- quickActionDisabled: {
- opacity: 0.6,
- },
- quickActionImageContainer: {
- width: '100%',
- aspectRatio: 1,
- borderRadius: 12,
- overflow: 'hidden',
- marginBottom: 8,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 4,
- elevation: 3,
- position: 'relative',
- },
- quickActionImage: {
- width: '100%',
- height: '100%',
- },
- comingSoonBadge: {
- position: 'absolute',
- top: 4,
- right: 4,
- backgroundColor: KurdistanColors.zer,
- paddingHorizontal: 6,
+ tikiBadge: {
+ backgroundColor: 'rgba(255, 255, 255, 0.2)',
+ paddingHorizontal: 8,
paddingVertical: 2,
- borderRadius: 4,
+ borderRadius: 12,
+ marginRight: 6,
+ marginBottom: 4,
},
- comingSoonText: {
- fontSize: 9,
- fontWeight: '700',
- color: KurdistanColors.reş,
- },
- quickActionTitle: {
- fontSize: 12,
+ tikiText: {
+ fontSize: 11,
+ color: KurdistanColors.spi,
fontWeight: '600',
- color: KurdistanColors.reş,
- textAlign: 'center',
- lineHeight: 16,
},
- proposalsCard: {
- backgroundColor: KurdistanColors.spi,
- borderRadius: 16,
- padding: 24,
+ headerActions: {
+ flexDirection: 'row',
+ },
+ iconButton: {
+ width: 40,
+ height: 40,
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
+ borderRadius: 20,
+ justifyContent: 'center',
alignItems: 'center',
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.05,
- shadowRadius: 6,
- elevation: 3,
+ marginLeft: 8,
},
- proposalsCount: {
- fontSize: 48,
- fontWeight: 'bold',
+ headerIcon: {
+ fontSize: 18,
+ },
+ sectionContainer: {
+ backgroundColor: KurdistanColors.spi,
+ marginHorizontal: 16,
+ marginTop: 16,
+ borderRadius: 16,
+ padding: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ sectionHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ borderLeftWidth: 4,
+ paddingLeft: 10,
+ },
+ sectionTitle: {
+ fontSize: 16,
+ fontWeight: '800',
+ color: KurdistanColors.reş,
+ letterSpacing: 0.5,
+ },
+ seeAllText: {
+ fontSize: 12,
color: KurdistanColors.kesk,
- marginBottom: 8,
+ fontWeight: '600',
},
- proposalsLabel: {
- fontSize: 14,
- color: '#666',
+ appsGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'flex-start',
+ },
+ appIconContainer: {
+ width: '25%', // 4 icons per row
+ alignItems: 'center',
marginBottom: 16,
},
- proposalsButton: {
- backgroundColor: KurdistanColors.kesk,
- paddingHorizontal: 24,
- paddingVertical: 12,
+ appIconBox: {
+ width: 56,
+ height: 56,
+ borderRadius: 16,
+ backgroundColor: '#F8F9FA',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 6,
+ boxShadow: '0px 1px 2px rgba(0, 0, 0, 0.05)',
+ elevation: 1,
+ },
+ appIconDisabled: {
+ opacity: 0.5,
+ backgroundColor: '#F0F0F0',
+ },
+ imageIcon: {
+ width: 32,
+ height: 32,
borderRadius: 8,
},
- proposalsButtonText: {
- fontSize: 14,
+ emojiIcon: {
+ fontSize: 28,
+ },
+ appIconTitle: {
+ fontSize: 11,
+ color: '#333',
+ textAlign: 'center',
+ fontWeight: '500',
+ maxWidth: '90%',
+ },
+ lockBadge: {
+ position: 'absolute',
+ top: -4,
+ right: -4,
+ backgroundColor: 'transparent',
+ },
+ lockText: {
+ fontSize: 12,
+ },
+ // Score Cards Styles
+ scoreCardsContainer: {
+ marginTop: 16,
+ marginBottom: 8,
+ },
+ scoreCardsContent: {
+ paddingHorizontal: 16,
+ },
+ scoreCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginRight: 12,
+ minWidth: 140,
+ borderLeftWidth: 4,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.08)',
+ elevation: 3,
+ },
+ scoreCardIcon: {
+ fontSize: 28,
+ marginBottom: 8,
+ },
+ scoreCardLabel: {
+ fontSize: 11,
+ color: '#666',
fontWeight: '600',
+ marginBottom: 6,
+ textTransform: 'uppercase',
+ letterSpacing: 0.5,
+ },
+ scoreCardValue: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 4,
+ },
+ scoreCardSubtext: {
+ fontSize: 10,
+ color: '#999',
+ },
+ kycButton: {
+ marginTop: 8,
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 6,
+ paddingHorizontal: 12,
+ borderRadius: 8,
+ alignItems: 'center',
+ },
+ kycButtonText: {
color: KurdistanColors.spi,
+ fontSize: 11,
+ fontWeight: '700',
},
});
diff --git a/mobile/src/screens/DashboardScreen.tsx.bak b/mobile/src/screens/DashboardScreen.tsx.bak
new file mode 100644
index 00000000..f831538a
--- /dev/null
+++ b/mobile/src/screens/DashboardScreen.tsx.bak
@@ -0,0 +1,777 @@
+import React, { useState, useEffect, useCallback } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ Image,
+ Alert,
+ Dimensions,
+ Platform,
+ ActivityIndicator,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import type { NavigationProp } from '@react-navigation/native';
+import type { BottomTabParamList } from '../navigation/BottomTabNavigator';
+import type { RootStackParamList } from '../navigation/AppNavigator';
+import { KurdistanColors } from '../theme/colors';
+import { useAuth } from '../contexts/AuthContext';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { supabase } from '../lib/supabase';
+import AvatarPickerModal from '../components/AvatarPickerModal';
+import { fetchUserTikis, getPrimaryRole, getTikiDisplayName, getTikiEmoji, getTikiColor } from '@pezkuwi/lib/tiki';
+import { getAllScores, type UserScores } from '@pezkuwi/lib/scores';
+import { getKycStatus } from '@pezkuwi/lib/kyc';
+
+// Existing Quick Action Images (Reused)
+import qaEducation from '../../../shared/images/quick-actions/qa_education.png';
+import qaExchange from '../../../shared/images/quick-actions/qa_exchange.png';
+import qaForum from '../../../shared/images/quick-actions/qa_forum.jpg';
+import qaGovernance from '../../../shared/images/quick-actions/qa_governance.jpg';
+import qaTrading from '../../../shared/images/quick-actions/qa_trading.jpg';
+import qaB2B from '../../../shared/images/quick-actions/qa_b2b.png';
+import qaBank from '../../../shared/images/quick-actions/qa_bank.png';
+import qaGames from '../../../shared/images/quick-actions/qa_games.png';
+import qaKurdMedia from '../../../shared/images/quick-actions/qa_kurdmedia.jpg';
+import qaUniversity from '../../../shared/images/quick-actions/qa_university.png';
+import avatarPlaceholder from '../../../shared/images/app-image.png'; // Fallback avatar
+
+const { width } = Dimensions.get('window');
+
+// Avatar pool matching AvatarPickerModal
+const AVATAR_POOL = [
+ { id: 'avatar1', emoji: '👨🏻' },
+ { id: 'avatar2', emoji: '👨🏼' },
+ { id: 'avatar3', emoji: '👨🏽' },
+ { id: 'avatar4', emoji: '👨🏾' },
+ { id: 'avatar5', emoji: '👩🏻' },
+ { id: 'avatar6', emoji: '👩🏼' },
+ { id: 'avatar7', emoji: '👩🏽' },
+ { id: 'avatar8', emoji: '👩🏾' },
+ { id: 'avatar9', emoji: '🧔🏻' },
+ { id: 'avatar10', emoji: '🧔🏼' },
+ { id: 'avatar11', emoji: '🧔🏽' },
+ { id: 'avatar12', emoji: '🧔🏾' },
+ { id: 'avatar13', emoji: '👳🏻♂️' },
+ { id: 'avatar14', emoji: '👳🏼♂️' },
+ { id: 'avatar15', emoji: '👳🏽♂️' },
+ { id: 'avatar16', emoji: '🧕🏻' },
+ { id: 'avatar17', emoji: '🧕🏼' },
+ { id: 'avatar18', emoji: '🧕🏽' },
+ { id: 'avatar19', emoji: '👴🏻' },
+ { id: 'avatar20', emoji: '👴🏼' },
+ { id: 'avatar21', emoji: '👵🏻' },
+ { id: 'avatar22', emoji: '👵🏼' },
+ { id: 'avatar23', emoji: '👦🏻' },
+ { id: 'avatar24', emoji: '👦🏼' },
+ { id: 'avatar25', emoji: '👧🏻' },
+ { id: 'avatar26', emoji: '👧🏼' },
+];
+
+// Helper function to get emoji from avatar ID
+const getEmojiFromAvatarId = (avatarId: string): string => {
+ const avatar = AVATAR_POOL.find(a => a.id === avatarId);
+ return avatar ? avatar.emoji : '👤'; // Default to person emoji if not found
+};
+
+interface DashboardScreenProps {}
+
+const DashboardScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation>();
+ const { user } = useAuth();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
+ const [profileData, setProfileData] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [avatarModalVisible, setAvatarModalVisible] = useState(false);
+
+ // Blockchain state
+ const [tikis, setTikis] = useState([]);
+ const [scores, setScores] = useState({
+ trustScore: 0,
+ referralScore: 0,
+ stakingScore: 0,
+ tikiScore: 0,
+ totalScore: 0
+ });
+ const [kycStatus, setKycStatus] = useState('NotStarted');
+ const [loadingScores, setLoadingScores] = useState(false);
+
+ // Fetch profile data from Supabase
+ const fetchProfile = useCallback(async () => {
+ if (!user) {
+ setLoading(false);
+ return;
+ }
+
+ try {
+ const { data, error } = await supabase
+ .from('profiles')
+ .select('*')
+ .eq('id', user.id)
+ .maybeSingle();
+
+ if (error) {
+ if (__DEV__) console.warn('Profile fetch error:', error);
+ return;
+ }
+
+ setProfileData(data);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching profile:', error);
+ } finally {
+ setLoading(false);
+ }
+ }, [user]);
+
+ // Fetch blockchain data (tikis, scores, KYC)
+ const fetchBlockchainData = useCallback(async () => {
+ if (!selectedAccount || !api || !isApiReady) return;
+
+ setLoadingScores(true);
+ try {
+ // Fetch tikis
+ const userTikis = await fetchUserTikis(api, selectedAccount.address);
+ setTikis(userTikis);
+
+ // Fetch all scores
+ const allScores = await getAllScores(api, selectedAccount.address);
+ setScores(allScores);
+
+ // Fetch KYC status
+ const status = await getKycStatus(api, selectedAccount.address);
+ setKycStatus(status);
+
+ if (__DEV__) console.log('[Dashboard] Blockchain data fetched:', { tikis: userTikis, scores: allScores, kycStatus: status });
+ } catch (error) {
+ if (__DEV__) console.error('[Dashboard] Error fetching blockchain data:', error);
+ } finally {
+ setLoadingScores(false);
+ }
+ }, [selectedAccount, api, isApiReady]);
+
+ useEffect(() => {
+ fetchProfile();
+ }, [fetchProfile]);
+
+ useEffect(() => {
+ if (selectedAccount && api && isApiReady) {
+ fetchBlockchainData();
+ }
+ }, [fetchBlockchainData]);
+
+ // Check if user is a visitor (default when no blockchain wallet or no tikis)
+ const isVisitor = !selectedAccount || tikis.length === 0;
+ const primaryRole = tikis.length > 0 ? getPrimaryRole(tikis) : 'Visitor';
+
+ const showComingSoon = (featureName: string) => {
+ Alert.alert(
+ t('settingsScreen.comingSoon'),
+ `${featureName} ${t('settingsScreen.comingSoonMessage')}`,
+ [{ text: 'OK' }]
+ );
+ };
+
+ const handleAvatarClick = () => {
+ setAvatarModalVisible(true);
+ };
+
+ const handleAvatarSelected = (avatarUrl: string) => {
+ // Refresh profile data to show new avatar
+ setProfileData((prev: any) => ({
+ ...prev,
+ avatar_url: avatarUrl,
+ }));
+ };
+
+ const renderAppIcon = (title: string, icon: any, onPress: () => void, isEmoji = false, comingSoon = false) => (
+
+
+ {isEmoji ? (
+ {icon}
+ ) : (
+
+ )}
+ {comingSoon && (
+
+ 🔒
+
+ )}
+
+ {title}
+
+ );
+
+ return (
+
+
+
+ {/* HEADER SECTION */}
+
+
+
+
+ {profileData?.avatar_url ? (
+ // Check if avatar_url is a URL (starts with http) or an emoji ID
+ profileData.avatar_url.startsWith('http') ? (
+
+ ) : (
+ // It's an emoji ID, render as emoji text
+
+
+ {getEmojiFromAvatarId(profileData.avatar_url)}
+
+
+ )
+ ) : (
+
+ )}
+ {/* Online Status Indicator */}
+
+
+
+ {/* Tiki Badge next to avatar - shows primary role */}
+
+
+ {getTikiEmoji(primaryRole)} {getTikiDisplayName(primaryRole)}
+
+
+
+
+
+
+ Rojbaş, {profileData?.full_name || user?.email?.split('@')[0] || 'Heval'}
+
+
+ {tikis.map((tiki, index) => (
+
+ ✓ {tiki}
+
+ ))}
+
+
+
+
+ showComingSoon('Notifications')}>
+ 🔔
+
+ navigation.navigate('Settings')}>
+ ⚙️
+
+
+
+
+
+
+ {/* SCORE CARDS SECTION */}
+
+
+ {/* Member Since Card */}
+
+ 📅
+ Member Since
+
+ {profileData?.created_at
+ ? new Date(profileData.created_at).toLocaleDateString('en-US', { month: 'short', year: 'numeric' })
+ : user?.created_at
+ ? new Date(user.created_at).toLocaleDateString('en-US', { month: 'short', year: 'numeric' })
+ : 'N/A'
+ }
+
+
+
+ {/* Role Card */}
+
+ {getTikiEmoji(primaryRole)}
+ Role
+ {getTikiDisplayName(primaryRole)}
+
+ {selectedAccount ? `${tikis.length} ${tikis.length === 1 ? 'role' : 'roles'}` : 'Connect wallet'}
+
+
+
+ {/* Total Score Card */}
+
+ 🏆
+ Total Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.totalScore}
+
+ All score types
+ >
+ )}
+
+
+ {/* Trust Score Card */}
+
+ 🛡️
+ Trust Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.trustScore}
+
+ pezpallet_trust
+ >
+ )}
+
+
+ {/* Referral Score Card */}
+
+ 👥
+ Referral Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.referralScore}
+
+ Referrals
+ >
+ )}
+
+
+ {/* Staking Score Card */}
+
+ 📈
+ Staking Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.stakingScore}
+
+ pezpallet_staking
+ >
+ )}
+
+
+ {/* Tiki Score Card */}
+
+ ⭐
+ Tiki Score
+ {loadingScores ? (
+
+ ) : (
+ <>
+
+ {scores.tikiScore}
+
+
+ {tikis.length} {tikis.length === 1 ? 'role' : 'roles'}
+
+ >
+ )}
+
+
+ {/* KYC Status Card */}
+
+
+ {kycStatus === 'Approved' ? '✅' : kycStatus === 'Pending' ? '⏳' : '📝'}
+
+ KYC Status
+
+ {kycStatus}
+
+ {kycStatus === 'NotStarted' && (
+ navigation.navigate('BeCitizen')}
+ >
+ Apply
+
+ )}
+
+
+
+
+ {/* 1. FINANCE SECTION */}
+
+
+ FINANCE 💰
+ navigation.navigate('Apps')}>
+ Hemû / All
+
+
+
+ {/* Wallet Visitors - Everyone can use */}
+ {renderAppIcon('Wallet Visitors', '👁️', () => showComingSoon('Wallet Visitors'), true)}
+
+ {/* Wallet Welati - Only Citizens can use */}
+ {renderAppIcon('Wallet Welati', '🏛️', () => {
+ if (tikis.includes('Citizen') || tikis.includes('Welati')) {
+ showComingSoon('Wallet Welati');
+ } else {
+ Alert.alert(
+ 'Citizens Only',
+ 'Wallet Welati is only available to Pezkuwi citizens. Please apply for citizenship first.',
+ [{ text: 'OK' }]
+ );
+ }
+ }, true, !tikis.includes('Citizen') && !tikis.includes('Welati'))}
+
+ {renderAppIcon('Bank', qaBank, () => showComingSoon('Bank'), false, true)}
+ {renderAppIcon('Exchange', qaExchange, () => showComingSoon('Swap'), false)}
+ {renderAppIcon('P2P', qaTrading, () => showComingSoon('P2P'), false)}
+ {renderAppIcon('B2B', qaB2B, () => showComingSoon('B2B Trading'), false, true)}
+ {renderAppIcon('Tax', '📊', () => showComingSoon('Tax/Zekat'), true, true)}
+ {renderAppIcon('Launchpad', '🚀', () => showComingSoon('Launchpad'), true, true)}
+
+
+
+ {/* 2. GOVERNANCE SECTION */}
+
+
+ GOVERNANCE 🏛️
+
+
+ {renderAppIcon('President', '👑', () => showComingSoon('Presidency'), true, true)}
+ {renderAppIcon('Assembly', qaGovernance, () => showComingSoon('Assembly'), false, true)}
+ {renderAppIcon('Vote', '🗳️', () => showComingSoon('Voting'), true, true)}
+ {renderAppIcon('Validators', '🛡️', () => showComingSoon('Validators'), true, true)}
+ {renderAppIcon('Justice', '⚖️', () => showComingSoon('Dad / Justice'), true, true)}
+ {renderAppIcon('Proposals', '📜', () => showComingSoon('Proposals'), true, true)}
+ {renderAppIcon('Polls', '📊', () => showComingSoon('Public Polls'), true, true)}
+ {renderAppIcon('Identity', '🆔', () => navigation.navigate('BeCitizen'), true)}
+
+
+
+ {/* 3. SOCIAL SECTION */}
+
+
+ SOCIAL 💬
+
+
+ {renderAppIcon('whatsKURD', '💬', () => showComingSoon('whatsKURD'), true, true)}
+ {renderAppIcon('Forum', qaForum, () => showComingSoon('Forum'), false)}
+ {renderAppIcon('KurdMedia', qaKurdMedia, () => showComingSoon('KurdMedia'), false, true)}
+ {renderAppIcon('Events', '🎭', () => showComingSoon('Çalakî / Events'), true, true)}
+ {renderAppIcon('Help', '🤝', () => showComingSoon('Harîkarî / Help'), true, true)}
+ {renderAppIcon('Music', '🎵', () => showComingSoon('Music Stream'), true, true)}
+ {renderAppIcon('VPN', '🛡️', () => showComingSoon('Decentralized VPN'), true, true)}
+ {renderAppIcon('Referral', '👥', () => navigation.navigate('Referral'), true)}
+
+
+
+ {/* 4. EDUCATION SECTION */}
+
+
+ EDUCATION 📚
+
+
+ {renderAppIcon('University', qaUniversity, () => showComingSoon('University'), false, true)}
+ {renderAppIcon('Perwerde', qaEducation, () => showComingSoon('Education'), false)}
+ {renderAppIcon('Library', '📜', () => showComingSoon('Pirtûkxane'), true, true)}
+ {renderAppIcon('Language', '🗣️', () => showComingSoon('Ziman / Language'), true, true)}
+ {renderAppIcon('Kids', '🧸', () => showComingSoon('Zarok / Kids'), true, true)}
+ {renderAppIcon('Certificates', '🏆', () => showComingSoon('Certificates'), true, true)}
+ {renderAppIcon('Research', '🔬', () => showComingSoon('Research'), true, true)}
+ {renderAppIcon('History', '🏺', () => showComingSoon('History'), true, true)}
+
+
+
+
+
+
+ {/* Avatar Picker Modal */}
+ setAvatarModalVisible(false)}
+ currentAvatar={profileData?.avatar_url}
+ onAvatarSelected={handleAvatarSelected}
+ />
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F2F2F7',
+ },
+ scrollView: {
+ flex: 1,
+ },
+ scrollContent: {
+ paddingBottom: 40,
+ },
+ header: {
+ paddingTop: Platform.OS === 'android' ? 40 : 20,
+ paddingBottom: 25,
+ paddingHorizontal: 20,
+ borderBottomLeftRadius: 24,
+ borderBottomRightRadius: 24,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.2,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ headerTop: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ avatarSection: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ avatar: {
+ width: 56,
+ height: 56,
+ borderRadius: 28,
+ borderWidth: 2,
+ borderColor: KurdistanColors.spi,
+ backgroundColor: '#ddd',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ avatarEmoji: {
+ fontSize: 32,
+ },
+ tikiAvatarBadge: {
+ marginLeft: 8,
+ backgroundColor: 'rgba(255, 255, 255, 0.25)',
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ borderWidth: 1,
+ borderColor: 'rgba(255, 255, 255, 0.4)',
+ },
+ tikiAvatarText: {
+ fontSize: 11,
+ color: KurdistanColors.spi,
+ fontWeight: '700',
+ },
+ statusIndicator: {
+ position: 'absolute',
+ bottom: 2,
+ right: 2,
+ width: 14,
+ height: 14,
+ borderRadius: 7,
+ backgroundColor: '#4CAF50', // Online green
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
+ },
+ headerInfo: {
+ flex: 1,
+ marginLeft: 16,
+ },
+ greeting: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 4,
+ },
+ tikiContainer: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ },
+ tikiBadge: {
+ backgroundColor: 'rgba(255, 255, 255, 0.2)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 12,
+ marginRight: 6,
+ marginBottom: 4,
+ },
+ tikiText: {
+ fontSize: 11,
+ color: KurdistanColors.spi,
+ fontWeight: '600',
+ },
+ headerActions: {
+ flexDirection: 'row',
+ },
+ iconButton: {
+ width: 40,
+ height: 40,
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
+ borderRadius: 20,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginLeft: 8,
+ },
+ headerIcon: {
+ fontSize: 18,
+ },
+ sectionContainer: {
+ backgroundColor: KurdistanColors.spi,
+ marginHorizontal: 16,
+ marginTop: 16,
+ borderRadius: 16,
+ padding: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ sectionHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ borderLeftWidth: 4,
+ paddingLeft: 10,
+ },
+ sectionTitle: {
+ fontSize: 16,
+ fontWeight: '800',
+ color: KurdistanColors.reş,
+ letterSpacing: 0.5,
+ },
+ seeAllText: {
+ fontSize: 12,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ appsGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'flex-start',
+ },
+ appIconContainer: {
+ width: '25%', // 4 icons per row
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ appIconBox: {
+ width: 56,
+ height: 56,
+ borderRadius: 16,
+ backgroundColor: '#F8F9FA',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 6,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 2,
+ elevation: 1,
+ },
+ appIconDisabled: {
+ opacity: 0.5,
+ backgroundColor: '#F0F0F0',
+ },
+ imageIcon: {
+ width: 32,
+ height: 32,
+ borderRadius: 8,
+ },
+ emojiIcon: {
+ fontSize: 28,
+ },
+ appIconTitle: {
+ fontSize: 11,
+ color: '#333',
+ textAlign: 'center',
+ fontWeight: '500',
+ maxWidth: '90%',
+ },
+ lockBadge: {
+ position: 'absolute',
+ top: -4,
+ right: -4,
+ backgroundColor: 'transparent',
+ },
+ lockText: {
+ fontSize: 12,
+ },
+ // Score Cards Styles
+ scoreCardsContainer: {
+ marginTop: 16,
+ marginBottom: 8,
+ },
+ scoreCardsContent: {
+ paddingHorizontal: 16,
+ },
+ scoreCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginRight: 12,
+ minWidth: 140,
+ borderLeftWidth: 4,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.08,
+ shadowRadius: 4,
+ elevation: 3,
+ },
+ scoreCardIcon: {
+ fontSize: 28,
+ marginBottom: 8,
+ },
+ scoreCardLabel: {
+ fontSize: 11,
+ color: '#666',
+ fontWeight: '600',
+ marginBottom: 6,
+ textTransform: 'uppercase',
+ letterSpacing: 0.5,
+ },
+ scoreCardValue: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.reş,
+ marginBottom: 4,
+ },
+ scoreCardSubtext: {
+ fontSize: 10,
+ color: '#999',
+ },
+ kycButton: {
+ marginTop: 8,
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 6,
+ paddingHorizontal: 12,
+ borderRadius: 8,
+ alignItems: 'center',
+ },
+ kycButtonText: {
+ color: KurdistanColors.spi,
+ fontSize: 11,
+ fontWeight: '700',
+ },
+});
+
+export default DashboardScreen;
diff --git a/mobile/src/screens/EducationScreen.tsx b/mobile/src/screens/EducationScreen.tsx
index 9cb24235..26736f6a 100644
--- a/mobile/src/screens/EducationScreen.tsx
+++ b/mobile/src/screens/EducationScreen.tsx
@@ -1,371 +1,21 @@
-import React, { useState, useEffect, useCallback } from 'react';
-import {
- View,
- Text,
- StyleSheet,
- SafeAreaView,
- TouchableOpacity,
- FlatList,
- ActivityIndicator,
- RefreshControl,
- Alert,
-} from 'react-native';
-import { useTranslation } from 'react-i18next';
-import { Card, Button, Badge } from '../components';
-import { KurdistanColors, AppColors } from '../theme/colors';
-import { usePolkadot } from '../contexts/PolkadotContext';
-
-// Import from shared library
-import {
- getAllCourses,
- getStudentEnrollments,
- enrollInCourse,
- completeCourse,
- type Course,
- type Enrollment,
-} from '../../../shared/lib/perwerde';
-
-type TabType = 'all' | 'my-courses';
+import React from 'react';
+import { SafeAreaView, StyleSheet } from 'react-native';
+import { PezkuwiWebView } from '../components';
+/**
+ * Education (Perwerde) Screen
+ *
+ * Uses WebView to load the education platform from the web app.
+ * Includes courses, enrollments, certificates, and progress tracking.
+ * Native wallet bridge allows transaction signing for enrollments.
+ */
const EducationScreen: React.FC = () => {
- const { t: _t } = useTranslation();
- const { api, isApiReady, selectedAccount, getKeyPair } = usePolkadot();
-
- const [activeTab, setActiveTab] = useState('all');
- const [courses, setCourses] = useState([]);
- const [enrollments, setEnrollments] = useState([]);
- const [loading, setLoading] = useState(true);
- const [refreshing, setRefreshing] = useState(false);
- const [enrolling, setEnrolling] = useState(null);
-
- const fetchCourses = useCallback(async () => {
- if (!api || !isApiReady) return;
-
- try {
- setLoading(true);
- const allCourses = await getAllCourses(api);
- setCourses(allCourses);
- } catch (error) {
- if (__DEV__) console.error('Failed to fetch courses:', error);
- } finally {
- setLoading(false);
- setRefreshing(false);
- }
- }, [api, isApiReady]);
-
- const fetchEnrollments = useCallback(async () => {
- if (!selectedAccount) {
- setEnrollments([]);
- return;
- }
-
- try {
- const studentEnrollments = await getStudentEnrollments(selectedAccount.address);
- setEnrollments(studentEnrollments);
- } catch (error) {
- if (__DEV__) console.error('Failed to fetch enrollments:', error);
- }
- }, [selectedAccount]);
-
- useEffect(() => {
- fetchCourses();
- fetchEnrollments();
- }, [fetchCourses, fetchEnrollments]);
-
- const handleRefresh = () => {
- setRefreshing(true);
- fetchCourses();
- fetchEnrollments();
- };
-
- const handleEnroll = async (courseId: number) => {
- if (!api || !selectedAccount) {
- Alert.alert('Error', 'Please connect your wallet');
- return;
- }
-
- try {
- setEnrolling(courseId);
-
- const keyPair = await getKeyPair(selectedAccount.address);
- if (!keyPair) {
- throw new Error('Failed to load keypair');
- }
-
- await enrollInCourse(api, {
- address: selectedAccount.address,
- meta: {},
- type: 'sr25519',
- }, courseId);
-
- Alert.alert('Success', 'Successfully enrolled in course!');
- fetchEnrollments();
- } catch (error: unknown) {
- if (__DEV__) console.error('Enrollment failed:', error);
- Alert.alert('Enrollment Failed', error instanceof Error ? error.message : 'Failed to enroll in course');
- } finally {
- setEnrolling(null);
- }
- };
-
- const handleCompleteCourse = async (courseId: number) => {
- if (!api || !selectedAccount) {
- Alert.alert('Error', 'Please connect your wallet');
- return;
- }
-
- Alert.alert(
- 'Complete Course',
- 'Are you sure you want to mark this course as completed?',
- [
- { text: 'Cancel', style: 'cancel' },
- {
- text: 'Complete',
- onPress: async () => {
- try {
- const keyPair = await getKeyPair(selectedAccount.address);
- if (!keyPair) {
- throw new Error('Failed to load keypair');
- }
-
- await completeCourse(api, {
- address: selectedAccount.address,
- meta: {},
- type: 'sr25519',
- }, courseId);
-
- Alert.alert('Success', 'Course completed! Certificate issued.');
- fetchEnrollments();
- } catch (error: unknown) {
- if (__DEV__) console.error('Completion failed:', error);
- Alert.alert('Error', error instanceof Error ? error.message : 'Failed to complete course');
- }
- },
- },
- ]
- );
- };
-
- const isEnrolled = (courseId: number) => {
- return enrollments.some((e) => e.course_id === courseId);
- };
-
- const isCompleted = (courseId: number) => {
- return enrollments.some((e) => e.course_id === courseId && e.is_completed);
- };
-
- const getEnrollmentProgress = (courseId: number) => {
- const enrollment = enrollments.find((e) => e.course_id === courseId);
- return enrollment?.points_earned || 0;
- };
-
- const renderCourseCard = ({ item }: { item: Course }) => {
- const enrolled = isEnrolled(item.id);
- const completed = isCompleted(item.id);
- const progress = getEnrollmentProgress(item.id);
- const isEnrollingThis = enrolling === item.id;
-
- return (
-
- {/* Course Header */}
-
-
- 📚
-
-
- {item.name}
-
- By: {item.owner.slice(0, 6)}...{item.owner.slice(-4)}
-
-
- {completed && (
-
- )}
- {enrolled && !completed && (
-
- )}
-
-
- {/* Course Description */}
-
- {item.description}
-
-
- {/* Progress (if enrolled) */}
- {enrolled && !completed && (
-
- Progress
-
-
-
- {progress} points
-
- )}
-
- {/* Course Metadata */}
-
-
- 🎓
- Certificate upon completion
-
-
- 📅
-
- Created: {new Date(item.created_at).toLocaleDateString()}
-
-
-
-
- {/* Action Button */}
- {!enrolled && (
-
- )}
-
- {enrolled && !completed && (
-
- )}
-
- {completed && (
-
- )}
-
- );
- };
-
- const displayCourses =
- activeTab === 'all'
- ? courses
- : courses.filter((c) => isEnrolled(c.id));
-
- const renderEmptyState = () => (
-
-
- {activeTab === 'all' ? '📚' : '🎓'}
-
-
- {activeTab === 'all' ? 'No Courses Available' : 'No Enrolled Courses'}
-
-
- {activeTab === 'all'
- ? 'Check back later for new courses'
- : 'Browse available courses and enroll to start learning'}
-
- {activeTab === 'my-courses' && (
-
- )}
-
- );
-
return (
- {/* Header */}
-
-
- Perwerde 🎓
- Decentralized Education Platform
-
-
-
- {/* Connection Warning */}
- {!isApiReady && (
-
- Connecting to blockchain...
-
- )}
-
- {/* Tabs */}
-
- setActiveTab('all')}
- >
-
- All Courses
-
-
-
- setActiveTab('my-courses')}
- >
-
- My Courses ({enrollments.length})
-
-
-
-
- {/* Course List */}
- {loading && !refreshing ? (
-
-
- Loading courses...
-
- ) : (
- item.id.toString()}
- contentContainerStyle={styles.listContent}
- ListEmptyComponent={renderEmptyState}
- refreshControl={
-
- }
- />
- )}
+
);
};
@@ -373,187 +23,7 @@ const EducationScreen: React.FC = () => {
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: AppColors.background,
- },
- header: {
- padding: 16,
- paddingBottom: 12,
- },
- title: {
- fontSize: 28,
- fontWeight: '700',
- color: '#000',
- marginBottom: 4,
- },
- subtitle: {
- fontSize: 14,
- color: '#666',
- },
- warningBanner: {
- backgroundColor: '#FFF3CD',
- padding: 12,
- marginHorizontal: 16,
- marginBottom: 12,
- borderRadius: 8,
- borderWidth: 1,
- borderColor: '#FFE69C',
- },
- warningText: {
- fontSize: 14,
- color: '#856404',
- textAlign: 'center',
- },
- tabs: {
- flexDirection: 'row',
- paddingHorizontal: 16,
- borderBottomWidth: 1,
- borderBottomColor: '#E0E0E0',
- marginBottom: 16,
- },
- tab: {
- flex: 1,
- paddingVertical: 12,
- alignItems: 'center',
- borderBottomWidth: 2,
- borderBottomColor: 'transparent',
- },
- activeTab: {
- borderBottomColor: KurdistanColors.kesk,
- },
- tabText: {
- fontSize: 16,
- fontWeight: '600',
- color: '#666',
- },
- activeTabText: {
- color: KurdistanColors.kesk,
- },
- listContent: {
- padding: 16,
- paddingTop: 0,
- },
- courseCard: {
- padding: 16,
- marginBottom: 16,
- },
- courseHeader: {
- flexDirection: 'row',
- alignItems: 'flex-start',
- marginBottom: 12,
- },
- courseIcon: {
- width: 56,
- height: 56,
- borderRadius: 12,
- backgroundColor: '#F0F9F4',
- justifyContent: 'center',
- alignItems: 'center',
- },
- courseIconText: {
- fontSize: 28,
- },
- courseInfo: {
- flex: 1,
- marginLeft: 12,
- },
- courseName: {
- fontSize: 18,
- fontWeight: '700',
- color: '#000',
- marginBottom: 4,
- },
- courseInstructor: {
- fontSize: 14,
- color: '#666',
- },
- courseDescription: {
- fontSize: 14,
- color: '#666',
- lineHeight: 20,
- marginBottom: 16,
- },
- progressContainer: {
- marginBottom: 16,
- },
- progressLabel: {
- fontSize: 12,
- color: '#666',
- marginBottom: 8,
- },
- progressBar: {
- height: 8,
- backgroundColor: '#E0E0E0',
- borderRadius: 4,
- overflow: 'hidden',
- marginBottom: 4,
- },
- progressFill: {
- height: '100%',
- backgroundColor: KurdistanColors.kesk,
- borderRadius: 4,
- },
- progressText: {
- fontSize: 12,
- color: KurdistanColors.kesk,
- fontWeight: '600',
- },
- courseMetadata: {
- borderTopWidth: 1,
- borderTopColor: '#F0F0F0',
- paddingTop: 12,
- marginBottom: 16,
- },
- metadataItem: {
- flexDirection: 'row',
- alignItems: 'center',
- marginBottom: 8,
- },
- metadataIcon: {
- fontSize: 16,
- marginRight: 8,
- },
- metadataText: {
- fontSize: 12,
- color: '#666',
- },
- enrollButton: {
- marginTop: 8,
- },
- loadingContainer: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- },
- loadingText: {
- marginTop: 12,
- fontSize: 14,
- color: '#666',
- },
- emptyState: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- paddingVertical: 60,
- },
- emptyIcon: {
- fontSize: 64,
- marginBottom: 16,
- },
- emptyTitle: {
- fontSize: 20,
- fontWeight: '700',
- color: '#000',
- marginBottom: 8,
- },
- emptyText: {
- fontSize: 14,
- color: '#666',
- textAlign: 'center',
- marginBottom: 24,
- paddingHorizontal: 32,
- },
- browseButton: {
- minWidth: 150,
+ backgroundColor: '#FFFFFF',
},
});
diff --git a/mobile/src/screens/ForumScreen.tsx b/mobile/src/screens/ForumScreen.tsx
index 54738f3f..63209e93 100644
--- a/mobile/src/screens/ForumScreen.tsx
+++ b/mobile/src/screens/ForumScreen.tsx
@@ -1,351 +1,20 @@
-import React, { useState } from 'react';
-import {
- View,
- Text,
- StyleSheet,
- SafeAreaView,
- FlatList,
- TouchableOpacity,
- ActivityIndicator,
- RefreshControl,
-} from 'react-native';
-import { useTranslation } from 'react-i18next';
-import { Card, Badge } from '../components';
-import { KurdistanColors, AppColors } from '../theme/colors';
-import { supabase } from '../lib/supabase';
-
-interface ForumThread {
- id: string;
- title: string;
- content: string;
- author: string;
- category: string;
- replies_count: number;
- views_count: number;
- created_at: string;
- last_activity: string;
- is_pinned: boolean;
- is_locked: boolean;
-}
-
-interface ForumCategory {
- id: string;
- name: string;
- description: string;
- threads_count: number;
- icon: string;
-}
-
-const CATEGORIES: ForumCategory[] = [
- {
- id: '1',
- name: 'General Discussion',
- description: 'General topics about PezkuwiChain',
- threads_count: 42,
- icon: '💬',
- },
- {
- id: '2',
- name: 'Governance',
- description: 'Discuss proposals and governance',
- threads_count: 28,
- icon: '🏛️',
- },
- {
- id: '3',
- name: 'Technical',
- description: 'Development and technical discussions',
- threads_count: 35,
- icon: '⚙️',
- },
- {
- id: '4',
- name: 'Trading',
- description: 'Market discussions and trading',
- threads_count: 18,
- icon: '📈',
- },
-];
-
-// Mock data - will be replaced with Supabase
-const MOCK_THREADS: ForumThread[] = [
- {
- id: '1',
- title: 'Welcome to PezkuwiChain Forum!',
- content: 'Introduce yourself and join the community...',
- author: '5GrwV...xQjz',
- category: 'General Discussion',
- replies_count: 24,
- views_count: 156,
- created_at: '2024-01-15T10:00:00Z',
- last_activity: '2024-01-20T14:30:00Z',
- is_pinned: true,
- is_locked: false,
- },
- {
- id: '2',
- title: 'New Governance Proposal: Treasury Allocation',
- content: 'Discussion about treasury fund allocation...',
- author: '5HpG8...kLm2',
- category: 'Governance',
- replies_count: 45,
- views_count: 289,
- created_at: '2024-01-18T09:15:00Z',
- last_activity: '2024-01-20T16:45:00Z',
- is_pinned: false,
- is_locked: false,
- },
- {
- id: '3',
- title: 'How to stake PEZ tokens?',
- content: 'Guide for staking PEZ tokens...',
- author: '5FHne...pQr8',
- category: 'General Discussion',
- replies_count: 12,
- views_count: 98,
- created_at: '2024-01-19T11:20:00Z',
- last_activity: '2024-01-20T13:10:00Z',
- is_pinned: false,
- is_locked: false,
- },
-];
-
-type ViewType = 'categories' | 'threads';
+import React from 'react';
+import { SafeAreaView, StyleSheet } from 'react-native';
+import { PezkuwiWebView } from '../components';
+/**
+ * Forum Screen
+ *
+ * Uses WebView to load the full-featured forum from the web app.
+ * Includes categories, threads, posts, replies, and moderation features.
+ */
const ForumScreen: React.FC = () => {
- const { t: _t } = useTranslation();
-
- const [viewType, setViewType] = useState('categories');
- const [selectedCategory, setSelectedCategory] = useState(null);
- const [threads, setThreads] = useState(MOCK_THREADS);
- const [loading, setLoading] = useState(false);
- const [refreshing, setRefreshing] = useState(false);
-
- const fetchThreads = async (categoryId?: string) => {
- setLoading(true);
- try {
- // Fetch from Supabase
- let query = supabase
- .from('forum_threads')
- .select(`
- *,
- forum_categories(name)
- `)
- .order('is_pinned', { ascending: false })
- .order('last_activity', { ascending: false });
-
- // Filter by category if provided
- if (categoryId) {
- query = query.eq('category_id', categoryId);
- }
-
- const { data, error } = await query;
-
- if (error) {
- if (__DEV__) console.error('Supabase fetch error:', error);
- // Fallback to mock data on error
- setThreads(MOCK_THREADS);
- return;
- }
-
- if (data && data.length > 0) {
- // Transform Supabase data to match ForumThread interface
- const transformedThreads: ForumThread[] = data.map((thread: Record) => ({
- id: String(thread.id),
- title: String(thread.title),
- content: String(thread.content),
- author: String(thread.author_id),
- category: (thread.forum_categories as { name?: string })?.name || 'Unknown',
- replies_count: Number(thread.replies_count) || 0,
- views_count: Number(thread.views_count) || 0,
- created_at: String(thread.created_at),
- last_activity: String(thread.last_activity || thread.created_at),
- is_pinned: Boolean(thread.is_pinned),
- is_locked: Boolean(thread.is_locked),
- }));
- setThreads(transformedThreads);
- } else {
- // No data, use mock data
- setThreads(MOCK_THREADS);
- }
- } catch (error) {
- if (__DEV__) console.error('Failed to fetch threads:', error);
- // Fallback to mock data on error
- setThreads(MOCK_THREADS);
- } finally {
- setLoading(false);
- setRefreshing(false);
- }
- };
-
- const handleRefresh = () => {
- setRefreshing(true);
- fetchThreads(selectedCategory || undefined);
- };
-
- const handleCategoryPress = (categoryId: string, _categoryName: string) => {
- setSelectedCategory(categoryId);
- setViewType('threads');
- fetchThreads(categoryId);
- };
-
- const formatTimeAgo = (dateString: string) => {
- const date = new Date(dateString);
- const now = new Date();
- const seconds = Math.floor((now.getTime() - date.getTime()) / 1000);
-
- if (seconds < 60) return 'Just now';
- if (seconds < 3600) return `${Math.floor(seconds / 60)}m ago`;
- if (seconds < 86400) return `${Math.floor(seconds / 3600)}h ago`;
- return `${Math.floor(seconds / 86400)}d ago`;
- };
-
- const renderCategoryCard = ({ item }: { item: ForumCategory }) => (
- handleCategoryPress(item.id, item.name)}>
-
-
-
- {item.icon}
-
-
- {item.name}
-
- {item.description}
-
-
-
-
-
- {item.threads_count} threads
-
- →
-
-
-
- );
-
- const renderThreadCard = ({ item }: { item: ForumThread }) => (
-
-
- {/* Thread Header */}
-
- {item.is_pinned && (
-
- 📌
-
- )}
-
- {item.title}
-
- {item.is_locked && (
- 🔒
- )}
-
-
- {/* Thread Meta */}
-
- by {item.author}
-
-
-
- {/* Thread Stats */}
-
-
- 💬
- {item.replies_count}
-
-
- 👁️
- {item.views_count}
-
-
- 🕐
-
- {formatTimeAgo(item.last_activity)}
-
-
-
-
-
- );
-
- const renderEmptyState = () => (
-
- 💬
- No Threads Yet
-
- Be the first to start a discussion in this category
-
-
- );
-
return (
- {/* Header */}
-
-
-
- {viewType === 'categories' ? 'Forum' : 'Threads'}
-
-
- {viewType === 'categories'
- ? 'Join the community discussion'
- : selectedCategory || 'All threads'}
-
-
- {viewType === 'threads' && (
- setViewType('categories')}
- >
- ← Back
-
- )}
-
-
- {/* Content */}
- {loading && !refreshing ? (
-
-
- Loading...
-
- ) : viewType === 'categories' ? (
- item.id}
- contentContainerStyle={styles.listContent}
- refreshControl={
-
- }
- />
- ) : (
- item.id}
- contentContainerStyle={styles.listContent}
- ListEmptyComponent={renderEmptyState}
- refreshControl={
-
- }
- />
- )}
-
- {/* Create Thread FAB */}
- {viewType === 'threads' && (
-
- ✏️
-
- )}
+
);
};
@@ -353,196 +22,7 @@ const ForumScreen: React.FC = () => {
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: AppColors.background,
- },
- header: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'flex-start',
- padding: 16,
- paddingBottom: 12,
- },
- title: {
- fontSize: 28,
- fontWeight: '700',
- color: '#000',
- marginBottom: 4,
- },
- subtitle: {
- fontSize: 14,
- color: '#666',
- },
- backButton: {
- paddingHorizontal: 12,
- paddingVertical: 8,
- borderRadius: 8,
- backgroundColor: '#F5F5F5',
- },
- backButtonText: {
- fontSize: 14,
- fontWeight: '600',
- color: KurdistanColors.kesk,
- },
- listContent: {
- padding: 16,
- paddingTop: 8,
- },
- categoryCard: {
- padding: 16,
- marginBottom: 12,
- },
- categoryHeader: {
- flexDirection: 'row',
- alignItems: 'flex-start',
- marginBottom: 12,
- },
- categoryIcon: {
- width: 48,
- height: 48,
- borderRadius: 12,
- backgroundColor: '#F0F9F4',
- justifyContent: 'center',
- alignItems: 'center',
- marginRight: 12,
- },
- categoryIconText: {
- fontSize: 24,
- },
- categoryInfo: {
- flex: 1,
- },
- categoryName: {
- fontSize: 18,
- fontWeight: '700',
- color: '#000',
- marginBottom: 4,
- },
- categoryDescription: {
- fontSize: 14,
- color: '#666',
- lineHeight: 20,
- },
- categoryFooter: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- paddingTop: 12,
- borderTopWidth: 1,
- borderTopColor: '#F0F0F0',
- },
- categoryStats: {
- fontSize: 14,
- color: '#666',
- },
- categoryArrow: {
- fontSize: 20,
- color: KurdistanColors.kesk,
- },
- threadCard: {
- padding: 16,
- marginBottom: 12,
- },
- threadHeader: {
- flexDirection: 'row',
- alignItems: 'flex-start',
- marginBottom: 8,
- },
- pinnedBadge: {
- marginRight: 8,
- },
- pinnedIcon: {
- fontSize: 16,
- },
- threadTitle: {
- flex: 1,
- fontSize: 16,
- fontWeight: '700',
- color: '#000',
- lineHeight: 22,
- },
- lockedIcon: {
- fontSize: 16,
- marginLeft: 8,
- },
- threadMeta: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- marginBottom: 12,
- },
- threadAuthor: {
- fontSize: 12,
- color: '#666',
- },
- threadStats: {
- flexDirection: 'row',
- gap: 16,
- paddingTop: 12,
- borderTopWidth: 1,
- borderTopColor: '#F0F0F0',
- },
- statItem: {
- flexDirection: 'row',
- alignItems: 'center',
- gap: 4,
- },
- statIcon: {
- fontSize: 14,
- },
- statText: {
- fontSize: 12,
- color: '#666',
- },
- loadingContainer: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- },
- loadingText: {
- marginTop: 12,
- fontSize: 14,
- color: '#666',
- },
- emptyState: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- paddingVertical: 60,
- },
- emptyIcon: {
- fontSize: 64,
- marginBottom: 16,
- },
- emptyTitle: {
- fontSize: 20,
- fontWeight: '700',
- color: '#000',
- marginBottom: 8,
- },
- emptyText: {
- fontSize: 14,
- color: '#666',
- textAlign: 'center',
- paddingHorizontal: 32,
- },
- fab: {
- position: 'absolute',
- right: 20,
- bottom: 20,
- width: 56,
- height: 56,
- borderRadius: 28,
- backgroundColor: KurdistanColors.kesk,
- justifyContent: 'center',
- alignItems: 'center',
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
- elevation: 8,
- },
- fabIcon: {
- fontSize: 24,
+ backgroundColor: '#FFFFFF',
},
});
diff --git a/mobile/src/screens/GovernanceScreen.tsx b/mobile/src/screens/GovernanceScreen.tsx
index 28c995dc..3afe5a5d 100644
--- a/mobile/src/screens/GovernanceScreen.tsx
+++ b/mobile/src/screens/GovernanceScreen.tsx
@@ -1,1057 +1,30 @@
-import React, { useState, useEffect, useCallback } from 'react';
-import {
- View,
- Text,
- StyleSheet,
- ScrollView,
- RefreshControl,
- Alert,
- TouchableOpacity,
-} from 'react-native';
-import { usePolkadot } from '../contexts/PolkadotContext';
-import { AppColors, KurdistanColors } from '../theme/colors';
-import {
- Card,
- Button,
- BottomSheet,
- Badge,
- CardSkeleton,
-} from '../components';
-
-interface Proposal {
- index: number;
- proposer: string;
- description: string;
- value: string;
- beneficiary: string;
- bond: string;
- ayes: number;
- nays: number;
- status: 'active' | 'approved' | 'rejected';
- endBlock: number;
-}
-
-interface Election {
- id: number;
- type: 'Presidential' | 'Parliamentary' | 'Constitutional Court';
- status: 'Registration' | 'Campaign' | 'Voting' | 'Completed';
- candidates: Candidate[];
- totalVotes: number;
- endBlock: number;
- currentBlock: number;
-}
-
-interface Candidate {
- id: string;
- name: string;
- votes: number;
- percentage: number;
- party?: string;
- trustScore: number;
-}
-
-type TabType = 'proposals' | 'elections' | 'parliament';
+import React from 'react';
+import { SafeAreaView, StyleSheet } from 'react-native';
+import { PezkuwiWebView } from '../components';
/**
* Governance Screen
- * View proposals, vote, participate in governance
- * Inspired by Polkadot governance and modern DAO interfaces
+ *
+ * Uses WebView to load the governance interface from the web app.
+ * Includes elections, proposals, voting, and government role management.
+ * Native wallet bridge allows transaction signing for votes.
*/
-export default function GovernanceScreen() {
- const { api, selectedAccount, isApiReady } = usePolkadot();
- const [activeTab, setActiveTab] = useState('proposals');
- const [proposals, setProposals] = useState([]);
- const [elections, setElections] = useState([]);
- const [loading, setLoading] = useState(true);
- const [refreshing, setRefreshing] = useState(false);
- const [selectedProposal, setSelectedProposal] = useState(null);
- const [selectedElection, setSelectedElection] = useState(null);
- const [voteSheetVisible, setVoteSheetVisible] = useState(false);
- const [electionSheetVisible, setElectionSheetVisible] = useState(false);
- const [voting, setVoting] = useState(false);
- const [votedCandidates, setVotedCandidates] = useState([]);
-
- const fetchProposals = useCallback(async () => {
- try {
- setLoading(true);
-
- if (!api) return;
-
- // Fetch democracy proposals
- const proposalEntries = await api.query.democracy?.publicProps();
-
- if (!proposalEntries || proposalEntries.isEmpty) {
- setProposals([]);
- return;
- }
-
- const proposalsList: Proposal[] = [];
-
- // Parse proposals
- const publicProps = proposalEntries.toJSON() as unknown[];
-
- for (const [index, _proposal, proposer] of publicProps as Array<[unknown, unknown, unknown]>) {
- // For demo, create sample proposals
- // In production, decode actual proposal data
- proposalsList.push({
- index: index as number,
- proposer: proposer as string,
- description: `Proposal #${index}: Infrastructure Development`,
- value: '10000',
- beneficiary: '5GrwvaEF...',
- bond: '1000',
- ayes: Math.floor(Math.random() * 1000),
- nays: Math.floor(Math.random() * 200),
- status: 'active',
- endBlock: 1000000,
- });
- }
-
- setProposals(proposalsList);
- } catch (error) {
- if (__DEV__) console.error('Error fetching proposals:', error);
- Alert.alert('Error', 'Failed to load proposals');
- } finally {
- setLoading(false);
- setRefreshing(false);
- }
- }, [api]);
-
- const fetchElections = useCallback(async () => {
- try {
- // Mock elections data
- // In production, this would fetch from pallet-tiki or election pallet
- const mockElections: Election[] = [
- {
- id: 1,
- type: 'Presidential',
- status: 'Voting',
- totalVotes: 45678,
- endBlock: 1000000,
- currentBlock: 995000,
- candidates: [
- { id: '1', name: 'Candidate A', votes: 23456, percentage: 51.3, trustScore: 850 },
- { id: '2', name: 'Candidate B', votes: 22222, percentage: 48.7, trustScore: 780 }
- ]
- },
- {
- id: 2,
- type: 'Parliamentary',
- status: 'Campaign',
- totalVotes: 12340,
- endBlock: 1200000,
- currentBlock: 995000,
- candidates: [
- { id: '3', name: 'Candidate C', votes: 5678, percentage: 46.0, party: 'Green Party', trustScore: 720 },
- { id: '4', name: 'Candidate D', votes: 4567, percentage: 37.0, party: 'Democratic Alliance', trustScore: 690 },
- { id: '5', name: 'Candidate E', votes: 2095, percentage: 17.0, party: 'Independent', trustScore: 650 }
- ]
- }
- ];
- setElections(mockElections);
- } catch (error) {
- if (__DEV__) console.error('Error fetching elections:', error);
- }
- }, []);
-
- useEffect(() => {
- if (isApiReady && selectedAccount) {
- void fetchProposals();
- void fetchElections();
- }
- }, [isApiReady, selectedAccount, fetchProposals, fetchElections]);
-
- const handleVote = async (approve: boolean) => {
- if (!selectedProposal) return;
-
- try {
- setVoting(true);
-
- if (!api || !selectedAccount) return;
-
- // Vote on proposal (referendum)
- const tx = approve
- ? api.tx.democracy.vote(selectedProposal.index, { Standard: { vote: { aye: true, conviction: 'None' }, balance: '1000000000000' } })
- : api.tx.democracy.vote(selectedProposal.index, { Standard: { vote: { aye: false, conviction: 'None' }, balance: '1000000000000' } });
-
- await tx.signAndSend(selectedAccount.address, ({ status }) => {
- if (status.isInBlock) {
- Alert.alert(
- 'Success',
- `Vote ${approve ? 'FOR' : 'AGAINST'} recorded successfully!`
- );
- setVoteSheetVisible(false);
- setSelectedProposal(null);
- fetchProposals();
- }
- });
- } catch (error: unknown) {
- if (__DEV__) console.error('Voting error:', error);
- Alert.alert('Error', error instanceof Error ? error.message : 'Failed to submit vote');
- } finally {
- setVoting(false);
- }
- };
-
- const handleElectionVote = (candidateId: string) => {
- if (!selectedElection) return;
-
- if (selectedElection.type === 'Parliamentary') {
- // Multiple selection for Parliamentary
- setVotedCandidates(prev =>
- prev.includes(candidateId)
- ? prev.filter(id => id !== candidateId)
- : [...prev, candidateId]
- );
- } else {
- // Single selection for Presidential
- setVotedCandidates([candidateId]);
- }
- };
-
- const submitElectionVote = async () => {
- if (votedCandidates.length === 0) {
- Alert.alert('Error', 'Please select at least one candidate');
- return;
- }
-
- if (!api || !selectedAccount || !selectedElection) {
- Alert.alert('Error', 'Wallet not connected');
- return;
- }
-
- try {
- setVoting(true);
-
- // Submit vote to blockchain via pallet-welati
- // For single vote (Presidential): api.tx.welati.voteInElection(electionId, candidateId)
- // For multiple votes (Parliamentary): submit each vote separately
- const electionId = selectedElection.id;
-
- if (selectedElection.type === 'Parliamentary') {
- // Submit multiple votes for parliamentary elections
- const txs = votedCandidates.map(candidateId =>
- api.tx.welati.voteInElection(electionId, candidateId)
- );
-
- // Batch all votes together
- const batchTx = api.tx.utility.batch(txs);
-
- await batchTx.signAndSend(selectedAccount.address, ({ status, dispatchError }) => {
- if (dispatchError) {
- if (dispatchError.isModule) {
- const decoded = api.registry.findMetaError(dispatchError.asModule);
- throw new Error(`${decoded.section}.${decoded.name}: ${decoded.docs}`);
- } else {
- throw new Error(dispatchError.toString());
- }
- }
-
- if (status.isInBlock) {
- Alert.alert('Success', `Your ${votedCandidates.length} votes have been recorded!`);
- setElectionSheetVisible(false);
- setSelectedElection(null);
- setVotedCandidates([]);
- fetchElections();
- }
- });
- } else {
- // Single vote for presidential/other elections
- const candidateId = votedCandidates[0];
- const tx = api.tx.welati.voteInElection(electionId, candidateId);
-
- await tx.signAndSend(selectedAccount.address, ({ status, dispatchError }) => {
- if (dispatchError) {
- if (dispatchError.isModule) {
- const decoded = api.registry.findMetaError(dispatchError.asModule);
- throw new Error(`${decoded.section}.${decoded.name}: ${decoded.docs}`);
- } else {
- throw new Error(dispatchError.toString());
- }
- }
-
- if (status.isInBlock) {
- Alert.alert('Success', 'Your vote has been recorded!');
- setElectionSheetVisible(false);
- setSelectedElection(null);
- setVotedCandidates([]);
- fetchElections();
- }
- });
- }
- } catch (error: unknown) {
- if (__DEV__) console.error('Election voting error:', error);
- Alert.alert('Error', error instanceof Error ? error.message : 'Failed to submit vote');
- } finally {
- setVoting(false);
- }
- };
-
- if (loading && proposals.length === 0) {
- return (
-
-
-
-
-
- );
- }
-
+const GovernanceScreen: React.FC = () => {
return (
-
- {/* Header */}
-
- Governance
-
- Participate in digital democracy
-
-
-
- {/* Tabs */}
-
- setActiveTab('proposals')}
- >
-
- Proposals ({proposals.length})
-
-
-
- setActiveTab('elections')}
- >
-
- Elections ({elections.length})
-
-
-
- setActiveTab('parliament')}
- >
-
- Parliament
-
-
-
-
- {
- setRefreshing(true);
- fetchProposals();
- fetchElections();
- }}
- />
- }
- >
- {/* Stats */}
-
-
- {proposals.length}
- Active Proposals
-
-
- {elections.length}
- Active Elections
-
-
-
- {/* Tab Content */}
- {activeTab === 'proposals' && (
- <>
- Active Proposals
- {proposals.length === 0 ? (
-
- No active proposals
-
- Check back later for new governance proposals
-
-
- ) : (
- proposals.map((proposal) => (
- {
- setSelectedProposal(proposal);
- setVoteSheetVisible(true);
- }}
- />
- ))
- )}
- >
- )}
-
- {activeTab === 'elections' && (
- <>
- Active Elections
- {elections.length === 0 ? (
-
- No active elections
-
- Check back later for upcoming elections
-
-
- ) : (
- elections.map((election) => (
- {
- setSelectedElection(election);
- setVotedCandidates([]);
- setElectionSheetVisible(true);
- }}
- />
- ))
- )}
- >
- )}
-
- {activeTab === 'parliament' && (
- <>
- Parliament Status
-
-
- Active Members
- 0 / 27
-
-
- Current Session
-
-
-
- Pending Votes
- 5
-
-
-
- Dîwan (Constitutional Court)
-
-
- Active Judges
- 0 / 9
-
-
- Pending Reviews
- 3
-
-
- Recent Decisions
- 12
-
-
- >
- )}
-
- {/* Info Card */}
-
- 🗳️ How Voting Works
-
- Each HEZ token equals one vote. Your vote helps shape the future of Digital Kurdistan. Proposals need majority approval to pass.
-
-
-
-
- {/* Vote Bottom Sheet */}
- setVoteSheetVisible(false)}
- title="Vote on Proposal"
- height={500}
- >
- {selectedProposal && (
-
-
- {selectedProposal.description}
-
-
-
-
-
-
-
- {/* Vote Progress */}
-
-
-
-
-
- {selectedProposal.ayes} For
- {selectedProposal.nays} Against
-
-
-
- {/* Vote Buttons */}
-
-
-
- )}
-
-
- {/* Election Vote Bottom Sheet */}
- setElectionSheetVisible(false)}
- title={selectedElection ? `${selectedElection.type} Election` : 'Election'}
- height={600}
- >
- {selectedElection && (
-
-
-
-
- {selectedElection.totalVotes.toLocaleString()} votes cast
-
-
-
-
- {selectedElection.type === 'Parliamentary'
- ? 'You can select multiple candidates'
- : 'Select one candidate'}
-
-
- {/* Candidates List */}
-
- {selectedElection.candidates.map((candidate) => (
- handleElectionVote(candidate.id)}
- >
-
-
- {candidate.name}
- {candidate.party && (
- {candidate.party}
- )}
-
- Trust Score: {candidate.trustScore}
-
-
-
-
- {candidate.percentage.toFixed(1)}%
-
-
- {candidate.votes.toLocaleString()} votes
-
-
-
-
-
-
- {votedCandidates.includes(candidate.id) && (
-
- ✓ Selected
-
- )}
-
- ))}
-
-
- {/* Submit Vote Button */}
- 0 ? `(${votedCandidates.length})` : ''} Vote`}
- onPress={submitElectionVote}
- loading={voting}
- disabled={voting || votedCandidates.length === 0}
- variant="primary"
- fullWidth
- style={{ marginTop: 16 }}
- />
-
- )}
-
-
- );
-}
-
-const ElectionCard: React.FC<{
- election: Election;
- onPress: () => void;
-}> = ({ election, onPress }) => {
- const blocksLeft = election.endBlock - election.currentBlock;
-
- return (
-
-
-
- {election.type}
- {election.status}
-
-
-
-
-
-
- Candidates
- {election.candidates.length}
-
-
- Total Votes
-
- {election.totalVotes.toLocaleString()}
-
-
-
- Blocks Left
-
- {blocksLeft.toLocaleString()}
-
-
-
-
- {election.candidates.length > 0 && (
-
- Leading:
-
- {election.candidates[0].name} ({election.candidates[0].percentage.toFixed(1)}%)
-
-
- )}
-
+
+
+
);
};
-const ProposalCard: React.FC<{
- proposal: Proposal;
- onPress: () => void;
-}> = ({ proposal, onPress }) => {
- const totalVotes = proposal.ayes + proposal.nays;
- const approvalRate = totalVotes > 0 ? (proposal.ayes / totalVotes) * 100 : 0;
-
- return (
-
-
-
-
-
-
- {proposal.description}
-
-
-
- Requested
- {proposal.value} HEZ
-
-
- Approval
- 50 ? KurdistanColors.kesk : KurdistanColors.sor },
- ]}
- >
- {approvalRate.toFixed(0)}%
-
-
-
-
- );
-};
-
-const DetailRow: React.FC<{ label: string; value: string }> = ({ label, value }) => (
-
- {label}
- {value}
-
-);
-
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: AppColors.background,
- },
- content: {
- padding: 16,
- },
- header: {
- marginBottom: 24,
- },
- headerTitle: {
- fontSize: 32,
- fontWeight: '700',
- color: AppColors.text,
- marginBottom: 4,
- },
- headerSubtitle: {
- fontSize: 16,
- color: AppColors.textSecondary,
- },
- statsRow: {
- flexDirection: 'row',
- gap: 12,
- marginBottom: 24,
- },
- statCard: {
- flex: 1,
- alignItems: 'center',
- paddingVertical: 20,
- },
- statValue: {
- fontSize: 28,
- fontWeight: '700',
- color: KurdistanColors.kesk,
- marginBottom: 4,
- },
- statLabel: {
- fontSize: 12,
- color: AppColors.textSecondary,
- },
- sectionTitle: {
- fontSize: 20,
- fontWeight: '600',
- color: AppColors.text,
- marginBottom: 12,
- },
- emptyCard: {
- alignItems: 'center',
- paddingVertical: 40,
- },
- emptyText: {
- fontSize: 18,
- fontWeight: '600',
- color: AppColors.text,
- marginBottom: 8,
- },
- emptySubtext: {
- fontSize: 14,
- color: AppColors.textSecondary,
- textAlign: 'center',
- },
- proposalCard: {
- marginBottom: 12,
- },
- proposalHeader: {
- flexDirection: 'row',
- gap: 8,
- marginBottom: 12,
- },
- proposalDescription: {
- fontSize: 16,
- fontWeight: '600',
- color: AppColors.text,
- marginBottom: 12,
- },
- proposalStats: {
- flexDirection: 'row',
- gap: 24,
- },
- proposalStat: {
- flex: 1,
- },
- proposalStatLabel: {
- fontSize: 12,
- color: AppColors.textSecondary,
- marginBottom: 4,
- },
- proposalStatValue: {
- fontSize: 16,
- fontWeight: '600',
- color: AppColors.text,
- },
- infoCard: {
- marginTop: 16,
- marginBottom: 16,
- },
- infoTitle: {
- fontSize: 16,
- fontWeight: '600',
- color: AppColors.text,
- marginBottom: 8,
- },
- infoText: {
- fontSize: 14,
- color: AppColors.textSecondary,
- lineHeight: 20,
- },
- proposalTitle: {
- fontSize: 18,
- fontWeight: '600',
- color: AppColors.text,
- marginBottom: 16,
- },
- proposalDetails: {
- gap: 12,
- marginBottom: 24,
- },
- detailRow: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- },
- detailLabel: {
- fontSize: 14,
- color: AppColors.textSecondary,
- },
- detailValue: {
- fontSize: 14,
- fontWeight: '600',
- color: AppColors.text,
- flex: 1,
- textAlign: 'right',
- marginLeft: 12,
- },
- voteProgress: {
- marginBottom: 24,
- },
- progressBar: {
- height: 8,
- backgroundColor: AppColors.border,
- borderRadius: 4,
- overflow: 'hidden',
- marginBottom: 8,
- },
- progressFill: {
- height: '100%',
- backgroundColor: KurdistanColors.kesk,
- },
- progressLabels: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- },
- ayesLabel: {
- fontSize: 12,
- fontWeight: '600',
- color: KurdistanColors.kesk,
- },
- naysLabel: {
- fontSize: 12,
- fontWeight: '600',
- color: KurdistanColors.sor,
- },
- voteButtons: {
- gap: 12,
- },
- tabs: {
- flexDirection: 'row',
- paddingHorizontal: 16,
- borderBottomWidth: 1,
- borderBottomColor: '#E0E0E0',
- backgroundColor: AppColors.background,
- },
- tab: {
- flex: 1,
- paddingVertical: 12,
- alignItems: 'center',
- borderBottomWidth: 2,
- borderBottomColor: 'transparent',
- },
- activeTab: {
- borderBottomColor: KurdistanColors.kesk,
- },
- tabText: {
- fontSize: 14,
- fontWeight: '600',
- color: '#666',
- },
- activeTabText: {
- color: KurdistanColors.kesk,
- },
- electionCard: {
- marginBottom: 12,
- padding: 16,
- },
- electionCardHeader: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'flex-start',
- marginBottom: 16,
- },
- electionType: {
- fontSize: 18,
- fontWeight: '700',
- color: AppColors.text,
- marginBottom: 4,
- },
- electionStatus: {
- fontSize: 14,
- color: AppColors.textSecondary,
- },
- electionStats: {
- flexDirection: 'row',
- gap: 16,
- marginBottom: 12,
- },
- electionStat: {
- flex: 1,
- },
- electionStatLabel: {
- fontSize: 11,
- color: AppColors.textSecondary,
- marginBottom: 4,
- },
- electionStatValue: {
- fontSize: 16,
- fontWeight: '600',
- color: AppColors.text,
- },
- leadingCandidate: {
- flexDirection: 'row',
- alignItems: 'center',
- paddingTop: 12,
- borderTopWidth: 1,
- borderTopColor: AppColors.border,
- },
- leadingLabel: {
- fontSize: 12,
- color: AppColors.textSecondary,
- marginRight: 8,
- },
- leadingName: {
- fontSize: 14,
- fontWeight: '600',
- color: KurdistanColors.kesk,
- },
- electionHeader: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- marginBottom: 16,
- },
- electionVotes: {
- fontSize: 14,
- color: AppColors.textSecondary,
- },
- electionInstruction: {
- fontSize: 14,
- color: AppColors.textSecondary,
- marginBottom: 16,
- textAlign: 'center',
- },
- candidatesList: {
- maxHeight: 350,
- },
- candidateCard: {
- padding: 16,
- borderRadius: 12,
- borderWidth: 2,
- borderColor: AppColors.border,
- marginBottom: 12,
backgroundColor: '#FFFFFF',
},
- candidateCardSelected: {
- borderColor: KurdistanColors.kesk,
- backgroundColor: '#F0F9F4',
- },
- candidateHeader: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- marginBottom: 12,
- },
- candidateName: {
- fontSize: 16,
- fontWeight: '700',
- color: AppColors.text,
- marginBottom: 4,
- },
- candidateParty: {
- fontSize: 12,
- color: AppColors.textSecondary,
- marginBottom: 2,
- },
- candidateTrust: {
- fontSize: 11,
- color: '#666',
- },
- candidateStats: {
- alignItems: 'flex-end',
- },
- candidatePercentage: {
- fontSize: 20,
- fontWeight: '700',
- color: KurdistanColors.kesk,
- marginBottom: 2,
- },
- candidateVotes: {
- fontSize: 11,
- color: AppColors.textSecondary,
- },
- selectedBadge: {
- marginTop: 8,
- padding: 8,
- backgroundColor: KurdistanColors.kesk,
- borderRadius: 6,
- alignItems: 'center',
- },
- selectedText: {
- fontSize: 12,
- fontWeight: '600',
- color: '#FFFFFF',
- },
- parliamentCard: {
- marginBottom: 16,
- padding: 16,
- },
- parliamentRow: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- paddingVertical: 12,
- borderBottomWidth: 1,
- borderBottomColor: '#F0F0F0',
- },
- parliamentLabel: {
- fontSize: 14,
- color: AppColors.textSecondary,
- },
- parliamentValue: {
- fontSize: 16,
- fontWeight: '600',
- color: AppColors.text,
- },
});
+
+export default GovernanceScreen;
diff --git a/mobile/src/screens/LockScreen.tsx b/mobile/src/screens/LockScreen.tsx
index dd850bc8..d57971d9 100644
--- a/mobile/src/screens/LockScreen.tsx
+++ b/mobile/src/screens/LockScreen.tsx
@@ -222,10 +222,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
marginBottom: 24,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.1,
- shadowRadius: 12,
+ boxShadow: '0px 4px 12px rgba(0, 0, 0, 0.1)',
elevation: 8,
},
lockEmoji: {
@@ -258,10 +255,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
marginBottom: 16,
- shadowColor: KurdistanColors.kesk,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 12,
+ boxShadow: '0px 4px 12px rgba(0, 128, 0, 0.3)',
elevation: 8,
},
biometricIcon: {
diff --git a/mobile/src/screens/LockScreen.tsx.bak b/mobile/src/screens/LockScreen.tsx.bak
new file mode 100644
index 00000000..dd850bc8
--- /dev/null
+++ b/mobile/src/screens/LockScreen.tsx.bak
@@ -0,0 +1,314 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ Pressable,
+ Alert,
+} from 'react-native';
+import { useBiometricAuth } from '../contexts/BiometricAuthContext';
+import { AppColors, KurdistanColors } from '../theme/colors';
+import { Button, Input } from '../components';
+
+/**
+ * Lock Screen
+ * Shown when app is locked - requires biometric or PIN
+ *
+ * PRIVACY: All authentication happens locally
+ */
+export default function LockScreen() {
+ const {
+ isBiometricSupported,
+ isBiometricEnrolled,
+ isBiometricEnabled,
+ biometricType,
+ authenticate,
+ verifyPinCode,
+ } = useBiometricAuth();
+
+ const [showPinInput, setShowPinInput] = useState(false);
+ const [pin, setPin] = useState('');
+ const [verifying, setVerifying] = useState(false);
+
+ const handleBiometricAuth = React.useCallback(async () => {
+ const success = await authenticate();
+ if (!success) {
+ // Biometric failed, show PIN option
+ setShowPinInput(true);
+ }
+ }, [authenticate]);
+
+ useEffect(() => {
+ // Auto-trigger biometric on mount if enabled
+ if (isBiometricEnabled && isBiometricSupported && isBiometricEnrolled) {
+ handleBiometricAuth();
+ }
+ }, [isBiometricEnabled, isBiometricSupported, isBiometricEnrolled, handleBiometricAuth]);
+
+ const handlePinSubmit = async () => {
+ if (!pin || pin.length < 4) {
+ Alert.alert('Error', 'Please enter your PIN');
+ return;
+ }
+
+ try {
+ setVerifying(true);
+ const success = await verifyPinCode(pin);
+
+ if (!success) {
+ Alert.alert('Error', 'Incorrect PIN. Please try again.');
+ setPin('');
+ }
+ } catch {
+ Alert.alert('Error', 'Failed to verify PIN');
+ } finally {
+ setVerifying(false);
+ }
+ };
+
+ const getBiometricIcon = () => {
+ switch (biometricType) {
+ case 'facial': return '😊';
+ case 'fingerprint': return '👆';
+ case 'iris': return '👁️';
+ default: return '🔒';
+ }
+ };
+
+ const getBiometricLabel = () => {
+ switch (biometricType) {
+ case 'facial': return 'Face ID';
+ case 'fingerprint': return 'Fingerprint';
+ case 'iris': return 'Iris';
+ default: return 'Biometric';
+ }
+ };
+
+ return (
+
+ {/* Logo */}
+
+ 🌟
+ PezkuwiChain
+ Digital Kurdistan
+
+
+ {/* Lock Icon */}
+
+ 🔒
+
+
+ {/* Title */}
+ App Locked
+
+ Authenticate to unlock and access your wallet
+
+
+ {/* Biometric or PIN */}
+
+ {!showPinInput ? (
+ // Biometric Button
+ isBiometricEnabled && isBiometricSupported && isBiometricEnrolled ? (
+
+
+ {getBiometricIcon()}
+
+
+ Tap to use {getBiometricLabel()}
+
+ setShowPinInput(true)}
+ style={styles.usePinButton}
+ >
+ Use PIN instead
+
+
+ ) : (
+ // No biometric, show PIN immediately
+
+
+ Biometric authentication not available
+
+ setShowPinInput(true)}
+ variant="primary"
+ fullWidth
+ />
+
+ )
+ ) : (
+ // PIN Input
+
+
+
+ {isBiometricEnabled && (
+ {
+ setShowPinInput(false);
+ setPin('');
+ }}
+ style={styles.backButton}
+ >
+
+ Use {getBiometricLabel()} instead
+
+
+ )}
+
+ )}
+
+
+ {/* Privacy Notice */}
+
+
+ 🔐 Authentication happens on your device only
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: AppColors.background,
+ paddingHorizontal: 24,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ logoContainer: {
+ alignItems: 'center',
+ marginBottom: 40,
+ },
+ logo: {
+ fontSize: 64,
+ marginBottom: 8,
+ },
+ appName: {
+ fontSize: 28,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ marginBottom: 4,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: AppColors.textSecondary,
+ },
+ lockIcon: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: AppColors.surface,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 24,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.1,
+ shadowRadius: 12,
+ elevation: 8,
+ },
+ lockEmoji: {
+ fontSize: 48,
+ },
+ title: {
+ fontSize: 24,
+ fontWeight: '700',
+ color: AppColors.text,
+ marginBottom: 8,
+ },
+ description: {
+ fontSize: 16,
+ color: AppColors.textSecondary,
+ textAlign: 'center',
+ marginBottom: 40,
+ },
+ authContainer: {
+ width: '100%',
+ maxWidth: 360,
+ },
+ biometricContainer: {
+ alignItems: 'center',
+ },
+ biometricButton: {
+ width: 80,
+ height: 80,
+ borderRadius: 40,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 16,
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 12,
+ elevation: 8,
+ },
+ biometricIcon: {
+ fontSize: 40,
+ },
+ biometricLabel: {
+ fontSize: 16,
+ color: AppColors.text,
+ marginBottom: 24,
+ },
+ usePinButton: {
+ paddingVertical: 12,
+ },
+ usePinText: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ noBiometricContainer: {
+ alignItems: 'center',
+ },
+ noBiometricText: {
+ fontSize: 14,
+ color: AppColors.textSecondary,
+ marginBottom: 16,
+ textAlign: 'center',
+ },
+ pinContainer: {
+ gap: 16,
+ },
+ backButton: {
+ paddingVertical: 12,
+ alignItems: 'center',
+ },
+ backText: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ privacyNotice: {
+ position: 'absolute',
+ bottom: 40,
+ paddingHorizontal: 24,
+ },
+ privacyText: {
+ fontSize: 12,
+ color: AppColors.textSecondary,
+ textAlign: 'center',
+ },
+});
diff --git a/mobile/src/screens/NFTGalleryScreen.tsx b/mobile/src/screens/NFTGalleryScreen.tsx
index 3c856f35..9ef9bff6 100644
--- a/mobile/src/screens/NFTGalleryScreen.tsx
+++ b/mobile/src/screens/NFTGalleryScreen.tsx
@@ -8,7 +8,7 @@ import {
Dimensions,
Pressable,
} from 'react-native';
-import { usePolkadot } from '../contexts/PolkadotContext';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
import { AppColors, KurdistanColors } from '../theme/colors';
import {
Card,
@@ -39,7 +39,7 @@ interface NFT {
* Inspired by OpenSea, Rarible, and modern NFT galleries
*/
export default function NFTGalleryScreen() {
- const { api, selectedAccount, isApiReady } = usePolkadot();
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
const [nfts, setNfts] = useState([]);
const [loading, setLoading] = useState(true);
const [refreshing, setRefreshing] = useState(false);
@@ -420,10 +420,7 @@ const styles = StyleSheet.create({
backgroundColor: AppColors.surface,
borderRadius: 16,
overflow: 'hidden',
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 8,
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
elevation: 4,
},
nftCardPressed: {
diff --git a/mobile/src/screens/NFTGalleryScreen.tsx.bak b/mobile/src/screens/NFTGalleryScreen.tsx.bak
new file mode 100644
index 00000000..7eca185b
--- /dev/null
+++ b/mobile/src/screens/NFTGalleryScreen.tsx.bak
@@ -0,0 +1,566 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ ScrollView,
+ RefreshControl,
+ Dimensions,
+ Pressable,
+} from 'react-native';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { AppColors, KurdistanColors } from '../theme/colors';
+import {
+ Card,
+ Button,
+ BottomSheet,
+ Badge,
+ CardSkeleton,
+} from '../components';
+import { fetchUserTikis, getTikiDisplayName, getTikiEmoji } from '@pezkuwi/lib/tiki';
+
+const { width } = Dimensions.get('window');
+const NFT_SIZE = (width - 48) / 2; // 2 columns with padding
+
+interface NFT {
+ id: string;
+ type: 'citizenship' | 'tiki' | 'achievement';
+ name: string;
+ description: string;
+ image: string;
+ rarity: 'common' | 'rare' | 'epic' | 'legendary';
+ mintDate: string;
+ attributes: { trait: string; value: string }[];
+}
+
+/**
+ * NFT Gallery Screen
+ * Display Citizenship NFTs, Tiki Badges, Achievement NFTs
+ * Inspired by OpenSea, Rarible, and modern NFT galleries
+ */
+export default function NFTGalleryScreen() {
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
+ const [nfts, setNfts] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedNFT, setSelectedNFT] = useState(null);
+ const [detailsVisible, setDetailsVisible] = useState(false);
+ const [filter, setFilter] = useState<'all' | 'citizenship' | 'tiki' | 'achievement'>('all');
+
+ const fetchNFTs = React.useCallback(async () => {
+ try {
+ setLoading(true);
+
+ if (!api || !selectedAccount) return;
+
+ const nftList: NFT[] = [];
+
+ // 1. Check Citizenship NFT
+ const citizenNft = await api.query.tiki?.citizenNft?.(selectedAccount.address);
+
+ if (citizenNft && !citizenNft.isEmpty) {
+ const nftData = citizenNft.toJSON() as Record;
+
+ nftList.push({
+ id: 'citizenship-001',
+ type: 'citizenship',
+ name: 'Digital Kurdistan Citizenship',
+ description: 'Official citizenship NFT of Digital Kurdistan. This NFT represents your verified status as a citizen of the Pezkuwi nation.',
+ image: '🪪', // Will use emoji/icon for now
+ rarity: 'legendary',
+ mintDate: new Date(nftData?.mintedAt || Date.now()).toISOString(),
+ attributes: [
+ { trait: 'Type', value: 'Citizenship' },
+ { trait: 'Nation', value: 'Kurdistan' },
+ { trait: 'Status', value: 'Verified' },
+ { trait: 'Rights', value: 'Full Voting Rights' },
+ ],
+ });
+ }
+
+ // 2. Fetch Tiki Role Badges
+ const tikis = await fetchUserTikis(api, selectedAccount.address);
+
+ tikis.forEach((tiki, index) => {
+ nftList.push({
+ id: `tiki-${index}`,
+ type: 'tiki',
+ name: getTikiDisplayName(tiki),
+ description: `You hold the role of ${getTikiDisplayName(tiki)} in Digital Kurdistan. This badge represents your responsibilities and privileges.`,
+ image: getTikiEmoji(tiki),
+ rarity: getRarityByTiki(tiki),
+ mintDate: new Date().toISOString(),
+ attributes: [
+ { trait: 'Type', value: 'Tiki Role' },
+ { trait: 'Role', value: getTikiDisplayName(tiki) },
+ { trait: 'Native Name', value: tiki },
+ ],
+ });
+ });
+
+ // 3. Achievement NFTs (placeholder for future)
+ // Query actual achievement NFTs when implemented
+
+ setNfts(nftList);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching NFTs:', error);
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ }, [api, selectedAccount]);
+
+ useEffect(() => {
+ if (isApiReady && selectedAccount) {
+ fetchNFTs();
+ }
+ }, [isApiReady, selectedAccount, fetchNFTs]);
+
+ const getRarityByTiki = (tiki: string): NFT['rarity'] => {
+ const highRank = ['Serok', 'SerokiMeclise', 'SerokWeziran', 'Axa'];
+ const mediumRank = ['Wezir', 'Parlementer', 'EndameDiwane'];
+
+ if (highRank.includes(tiki)) return 'legendary';
+ if (mediumRank.includes(tiki)) return 'epic';
+ return 'rare';
+ };
+
+ const filteredNFTs = filter === 'all'
+ ? nfts
+ : nfts.filter(nft => nft.type === filter);
+
+ const getRarityColor = (rarity: NFT['rarity']) => {
+ switch (rarity) {
+ case 'legendary': return KurdistanColors.zer;
+ case 'epic': return '#A855F7';
+ case 'rare': return '#3B82F6';
+ default: return AppColors.textSecondary;
+ }
+ };
+
+ if (loading && nfts.length === 0) {
+ return (
+
+
+
+
+ );
+ }
+
+ return (
+
+ {/* Header */}
+
+ NFT Gallery
+
+ {nfts.length} {nfts.length === 1 ? 'NFT' : 'NFTs'} collected
+
+
+
+ {/* Filter Tabs */}
+
+ setFilter('all')}
+ />
+ n.type === 'citizenship').length}
+ active={filter === 'citizenship'}
+ onPress={() => setFilter('citizenship')}
+ />
+ n.type === 'tiki').length}
+ active={filter === 'tiki'}
+ onPress={() => setFilter('tiki')}
+ />
+ n.type === 'achievement').length}
+ active={filter === 'achievement'}
+ onPress={() => setFilter('achievement')}
+ />
+
+
+ {/* NFT Grid */}
+ {
+ setRefreshing(true);
+ fetchNFTs();
+ }}
+ />
+ }
+ >
+ {filteredNFTs.length === 0 ? (
+
+ No NFTs yet
+
+ Complete citizenship application to earn your first NFT
+
+
+ ) : (
+
+ {filteredNFTs.map((nft) => (
+ {
+ setSelectedNFT(nft);
+ setDetailsVisible(true);
+ }}
+ style={({ pressed }) => [
+ styles.nftCard,
+ pressed && styles.nftCardPressed,
+ ]}
+ >
+ {/* NFT Image/Icon */}
+
+ {nft.image}
+
+
+ {nft.rarity.toUpperCase()}
+
+
+
+
+ {/* NFT Info */}
+
+
+ {nft.name}
+
+
+
+
+ ))}
+
+ )}
+
+
+ {/* NFT Details Bottom Sheet */}
+ setDetailsVisible(false)}
+ title="NFT Details"
+ height={600}
+ >
+ {selectedNFT && (
+
+ {/* Large NFT Display */}
+
+ {selectedNFT.image}
+
+
+ {/* NFT Title & Rarity */}
+
+ {selectedNFT.name}
+
+
+
+ {/* Description */}
+
+ {selectedNFT.description}
+
+
+ {/* Attributes */}
+ Attributes
+
+ {selectedNFT.attributes.map((attr, index) => (
+
+ {attr.trait}
+ {attr.value}
+
+ ))}
+
+
+ {/* Mint Date */}
+
+ Minted
+
+ {new Date(selectedNFT.mintDate).toLocaleDateString()}
+
+
+
+ {/* Actions */}
+
+ {
+ // Open blockchain explorer
+ }}
+ />
+
+
+ )}
+
+
+ );
+}
+
+const FilterButton: React.FC<{
+ label: string;
+ count: number;
+ active: boolean;
+ onPress: () => void;
+}> = ({ label, count, active, onPress }) => (
+
+
+ {label}
+
+
+
+);
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: AppColors.background,
+ },
+ header: {
+ padding: 16,
+ paddingTop: 60,
+ backgroundColor: AppColors.surface,
+ },
+ headerTitle: {
+ fontSize: 32,
+ fontWeight: '700',
+ color: AppColors.text,
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 16,
+ color: AppColors.textSecondary,
+ },
+ filterScroll: {
+ backgroundColor: AppColors.surface,
+ borderBottomWidth: 1,
+ borderBottomColor: AppColors.border,
+ },
+ filterContainer: {
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ gap: 8,
+ flexDirection: 'row',
+ },
+ filterButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: AppColors.background,
+ gap: 8,
+ },
+ filterButtonActive: {
+ backgroundColor: `${KurdistanColors.kesk}15`,
+ },
+ filterButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: AppColors.text,
+ },
+ filterButtonTextActive: {
+ color: KurdistanColors.kesk,
+ },
+ scrollView: {
+ flex: 1,
+ },
+ content: {
+ padding: 16,
+ },
+ grid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 12,
+ },
+ nftCard: {
+ width: NFT_SIZE,
+ backgroundColor: AppColors.surface,
+ borderRadius: 16,
+ overflow: 'hidden',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ nftCardPressed: {
+ opacity: 0.8,
+ transform: [{ scale: 0.98 }],
+ },
+ nftImage: {
+ width: '100%',
+ aspectRatio: 1,
+ backgroundColor: AppColors.background,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderWidth: 3,
+ position: 'relative',
+ },
+ nftEmoji: {
+ fontSize: 64,
+ },
+ rarityBadge: {
+ position: 'absolute',
+ top: 8,
+ right: 8,
+ paddingHorizontal: 8,
+ paddingVertical: 4,
+ borderRadius: 8,
+ },
+ rarityText: {
+ fontSize: 9,
+ fontWeight: '700',
+ color: '#FFFFFF',
+ },
+ nftInfo: {
+ padding: 12,
+ gap: 8,
+ },
+ nftName: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: AppColors.text,
+ lineHeight: 18,
+ },
+ emptyCard: {
+ alignItems: 'center',
+ paddingVertical: 60,
+ },
+ emptyText: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: AppColors.text,
+ marginBottom: 8,
+ },
+ emptySubtext: {
+ fontSize: 14,
+ color: AppColors.textSecondary,
+ textAlign: 'center',
+ },
+ detailImage: {
+ width: '100%',
+ aspectRatio: 1,
+ backgroundColor: AppColors.background,
+ borderRadius: 16,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderWidth: 4,
+ marginBottom: 24,
+ },
+ detailEmoji: {
+ fontSize: 120,
+ },
+ detailHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 16,
+ gap: 12,
+ },
+ detailName: {
+ flex: 1,
+ fontSize: 24,
+ fontWeight: '700',
+ color: AppColors.text,
+ lineHeight: 30,
+ },
+ detailDescription: {
+ fontSize: 16,
+ color: AppColors.textSecondary,
+ lineHeight: 24,
+ marginBottom: 24,
+ },
+ attributesTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: AppColors.text,
+ marginBottom: 12,
+ },
+ attributes: {
+ gap: 12,
+ marginBottom: 24,
+ },
+ attribute: {
+ backgroundColor: AppColors.background,
+ padding: 16,
+ borderRadius: 12,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ attributeTrait: {
+ fontSize: 14,
+ color: AppColors.textSecondary,
+ },
+ attributeValue: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: AppColors.text,
+ },
+ mintInfo: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ paddingVertical: 16,
+ borderTopWidth: 1,
+ borderBottomWidth: 1,
+ borderColor: AppColors.border,
+ marginBottom: 24,
+ },
+ mintLabel: {
+ fontSize: 14,
+ color: AppColors.textSecondary,
+ },
+ mintDate: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: AppColors.text,
+ },
+ detailActions: {
+ gap: 12,
+ marginBottom: 20,
+ },
+});
diff --git a/mobile/src/screens/P2PPlatformScreen.tsx b/mobile/src/screens/P2PPlatformScreen.tsx
new file mode 100644
index 00000000..d8372504
--- /dev/null
+++ b/mobile/src/screens/P2PPlatformScreen.tsx
@@ -0,0 +1,542 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ Alert,
+ RefreshControl,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+import { supabaseHelpers } from '../lib/supabase';
+
+interface P2PAd {
+ id: string;
+ type: 'buy' | 'sell';
+ merchant: string;
+ rating: number;
+ trades: number;
+ price: number;
+ currency: string;
+ amount: string;
+ limits: string;
+ paymentMethods: string[];
+}
+
+// P2P ads stored in Supabase database - fetched from p2p_ads table
+
+const P2PPlatformScreen: React.FC = () => {
+ const [selectedTab, setSelectedTab] = useState<'buy' | 'sell'>('buy');
+ const [selectedFilter, setSelectedFilter] = useState<'all' | 'bank' | 'online'>('all');
+ const [ads, setAds] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+
+ const fetchAds = async () => {
+ try {
+ setLoading(true);
+
+ // Fetch P2P ads from Supabase database
+ const data = await supabaseHelpers.getP2PAds(selectedTab);
+
+ // Transform Supabase data to component format
+ const transformedAds: P2PAd[] = data.map(ad => ({
+ id: ad.id,
+ type: ad.type,
+ merchant: ad.merchant_name,
+ rating: ad.rating,
+ trades: ad.trades_count,
+ price: ad.price,
+ currency: ad.currency,
+ amount: ad.amount,
+ limits: `${ad.min_limit} - ${ad.max_limit}`,
+ paymentMethods: ad.payment_methods,
+ }));
+
+ setAds(transformedAds);
+
+ } catch (error) {
+ console.error('Failed to load P2P ads:', error);
+ // If tables don't exist yet, show empty state instead of error
+ setAds([]);
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchAds();
+ // Refresh ads every 30 seconds
+ const interval = setInterval(fetchAds, 30000);
+ return () => clearInterval(interval);
+ }, [selectedTab]); // Re-fetch when tab changes
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchAds();
+ };
+
+ const handleTrade = (ad: P2PAd) => {
+ Alert.alert(
+ 'Start Trade',
+ `Trade with ${ad.merchant}?\nPrice: $${ad.price} ${ad.currency}\nLimits: ${ad.limits}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'Continue', onPress: () => Alert.alert('Trade Modal', 'Trade modal would open here') },
+ ]
+ );
+ };
+
+ const handleCreateAd = () => {
+ Alert.alert('Create Ad', 'Create ad modal would open here');
+ };
+
+ const filteredAds = ads.filter((ad) => ad.type === selectedTab);
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ P2P Trading
+ Buy and sell crypto with local currency
+
+
+ {/* Stats Cards */}
+
+
+ ⏰
+ 0
+ Active Trades
+
+
+ ✅
+ 0
+ Completed
+
+
+ 📈
+ $0
+ Volume
+
+
+
+ {/* Create Ad Button */}
+
+ ➕ Post a New Ad
+
+
+ {/* Buy/Sell Tabs */}
+
+ setSelectedTab('buy')}
+ >
+
+ Buy HEZ
+
+
+ setSelectedTab('sell')}
+ >
+
+ Sell HEZ
+
+
+
+
+ {/* Filter Chips */}
+
+ setSelectedFilter('all')}
+ >
+
+ All Payment
+
+
+ setSelectedFilter('bank')}
+ >
+
+ Bank Transfer
+
+
+ setSelectedFilter('online')}
+ >
+
+ Online Payment
+
+
+
+
+ {/* Ads List */}
+
+ {filteredAds.length === 0 ? (
+
+ 🛒
+ No ads available
+ Be the first to post an ad!
+
+ ) : (
+ filteredAds.map((ad) => (
+
+ {/* Merchant Info */}
+
+
+ {ad.merchant}
+
+ ⭐ {ad.rating}
+ | {ad.trades} trades
+
+
+
+ {ad.type.toUpperCase()}
+
+
+
+ {/* Price Info */}
+
+
+ Price
+ ${ad.price.toLocaleString()}
+
+
+ Available
+ {ad.amount}
+
+
+
+ {/* Limits */}
+
+ Limits:
+ {ad.limits}
+
+
+ {/* Payment Methods */}
+
+ {ad.paymentMethods.map((method, index) => (
+
+ {method}
+
+ ))}
+
+
+ {/* Trade Button */}
+ handleTrade(ad)}
+ >
+
+ {ad.type === 'buy' ? 'Buy HEZ' : 'Sell HEZ'}
+
+
+
+ ))
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ P2P trading is currently in beta. Always verify merchant ratings and complete trades within the escrow system.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ statsRow: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ gap: 12,
+ marginBottom: 16,
+ },
+ statCard: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ boxShadow: '0px 1px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ statIcon: {
+ fontSize: 24,
+ marginBottom: 8,
+ },
+ statValue: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ },
+ createAdButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createAdButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ tabsContainer: {
+ flexDirection: 'row',
+ marginHorizontal: 16,
+ marginBottom: 16,
+ backgroundColor: '#E5E5E5',
+ borderRadius: 12,
+ padding: 4,
+ },
+ tab: {
+ flex: 1,
+ paddingVertical: 10,
+ alignItems: 'center',
+ borderRadius: 10,
+ },
+ tabActive: {
+ backgroundColor: '#FFFFFF',
+ },
+ tabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ tabTextActive: {
+ color: KurdistanColors.kesk,
+ },
+ filterRow: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ marginBottom: 16,
+ gap: 8,
+ },
+ filterChip: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ },
+ filterChipActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ filterChipText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: '#666',
+ },
+ filterChipTextActive: {
+ color: '#FFFFFF',
+ },
+ adsList: {
+ paddingHorizontal: 16,
+ gap: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 8,
+ },
+ emptySubtext: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ },
+ adCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ merchantRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ merchantInfo: {
+ flex: 1,
+ },
+ merchantName: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ merchantStats: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ merchantRating: {
+ fontSize: 12,
+ color: '#F59E0B',
+ fontWeight: '600',
+ },
+ merchantTrades: {
+ fontSize: 12,
+ color: '#666',
+ },
+ typeBadge: {
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 12,
+ },
+ buyBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ },
+ sellBadge: {
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ },
+ typeBadgeText: {
+ fontSize: 11,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ },
+ priceRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ },
+ priceLabel: {
+ fontSize: 12,
+ color: '#666',
+ marginBottom: 4,
+ },
+ priceValue: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ priceRightColumn: {
+ alignItems: 'flex-end',
+ },
+ amountLabel: {
+ fontSize: 12,
+ color: '#666',
+ marginBottom: 4,
+ },
+ amountValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ limitsRow: {
+ flexDirection: 'row',
+ marginBottom: 12,
+ },
+ limitsLabel: {
+ fontSize: 13,
+ color: '#666',
+ },
+ limitsValue: {
+ fontSize: 13,
+ fontWeight: '600',
+ color: '#333',
+ },
+ paymentMethodsRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 8,
+ marginBottom: 16,
+ },
+ paymentMethodChip: {
+ backgroundColor: '#F0F0F0',
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 12,
+ },
+ paymentMethodText: {
+ fontSize: 11,
+ fontWeight: '500',
+ color: '#666',
+ },
+ tradeButton: {
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ buyButton: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ sellButton: {
+ backgroundColor: '#EF4444',
+ },
+ tradeButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#FEF3C7',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#92400E',
+ lineHeight: 18,
+ },
+});
+
+export default P2PPlatformScreen;
diff --git a/mobile/src/screens/P2PPlatformScreen.tsx.bak b/mobile/src/screens/P2PPlatformScreen.tsx.bak
new file mode 100644
index 00000000..b7e0b6a2
--- /dev/null
+++ b/mobile/src/screens/P2PPlatformScreen.tsx.bak
@@ -0,0 +1,548 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ Alert,
+ RefreshControl,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+import { supabaseHelpers } from '../lib/supabase';
+
+interface P2PAd {
+ id: string;
+ type: 'buy' | 'sell';
+ merchant: string;
+ rating: number;
+ trades: number;
+ price: number;
+ currency: string;
+ amount: string;
+ limits: string;
+ paymentMethods: string[];
+}
+
+// P2P ads stored in Supabase database - fetched from p2p_ads table
+
+const P2PPlatformScreen: React.FC = () => {
+ const [selectedTab, setSelectedTab] = useState<'buy' | 'sell'>('buy');
+ const [selectedFilter, setSelectedFilter] = useState<'all' | 'bank' | 'online'>('all');
+ const [ads, setAds] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+
+ const fetchAds = async () => {
+ try {
+ setLoading(true);
+
+ // Fetch P2P ads from Supabase database
+ const data = await supabaseHelpers.getP2PAds(selectedTab);
+
+ // Transform Supabase data to component format
+ const transformedAds: P2PAd[] = data.map(ad => ({
+ id: ad.id,
+ type: ad.type,
+ merchant: ad.merchant_name,
+ rating: ad.rating,
+ trades: ad.trades_count,
+ price: ad.price,
+ currency: ad.currency,
+ amount: ad.amount,
+ limits: `${ad.min_limit} - ${ad.max_limit}`,
+ paymentMethods: ad.payment_methods,
+ }));
+
+ setAds(transformedAds);
+
+ } catch (error) {
+ console.error('Failed to load P2P ads:', error);
+ // If tables don't exist yet, show empty state instead of error
+ setAds([]);
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchAds();
+ // Refresh ads every 30 seconds
+ const interval = setInterval(fetchAds, 30000);
+ return () => clearInterval(interval);
+ }, [selectedTab]); // Re-fetch when tab changes
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchAds();
+ };
+
+ const handleTrade = (ad: P2PAd) => {
+ Alert.alert(
+ 'Start Trade',
+ `Trade with ${ad.merchant}?\nPrice: $${ad.price} ${ad.currency}\nLimits: ${ad.limits}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'Continue', onPress: () => Alert.alert('Trade Modal', 'Trade modal would open here') },
+ ]
+ );
+ };
+
+ const handleCreateAd = () => {
+ Alert.alert('Create Ad', 'Create ad modal would open here');
+ };
+
+ const filteredAds = ads.filter((ad) => ad.type === selectedTab);
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ P2P Trading
+ Buy and sell crypto with local currency
+
+
+ {/* Stats Cards */}
+
+
+ ⏰
+ 0
+ Active Trades
+
+
+ ✅
+ 0
+ Completed
+
+
+ 📈
+ $0
+ Volume
+
+
+
+ {/* Create Ad Button */}
+
+ ➕ Post a New Ad
+
+
+ {/* Buy/Sell Tabs */}
+
+ setSelectedTab('buy')}
+ >
+
+ Buy HEZ
+
+
+ setSelectedTab('sell')}
+ >
+
+ Sell HEZ
+
+
+
+
+ {/* Filter Chips */}
+
+ setSelectedFilter('all')}
+ >
+
+ All Payment
+
+
+ setSelectedFilter('bank')}
+ >
+
+ Bank Transfer
+
+
+ setSelectedFilter('online')}
+ >
+
+ Online Payment
+
+
+
+
+ {/* Ads List */}
+
+ {filteredAds.length === 0 ? (
+
+ 🛒
+ No ads available
+ Be the first to post an ad!
+
+ ) : (
+ filteredAds.map((ad) => (
+
+ {/* Merchant Info */}
+
+
+ {ad.merchant}
+
+ ⭐ {ad.rating}
+ | {ad.trades} trades
+
+
+
+ {ad.type.toUpperCase()}
+
+
+
+ {/* Price Info */}
+
+
+ Price
+ ${ad.price.toLocaleString()}
+
+
+ Available
+ {ad.amount}
+
+
+
+ {/* Limits */}
+
+ Limits:
+ {ad.limits}
+
+
+ {/* Payment Methods */}
+
+ {ad.paymentMethods.map((method, index) => (
+
+ {method}
+
+ ))}
+
+
+ {/* Trade Button */}
+ handleTrade(ad)}
+ >
+
+ {ad.type === 'buy' ? 'Buy HEZ' : 'Sell HEZ'}
+
+
+
+ ))
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ P2P trading is currently in beta. Always verify merchant ratings and complete trades within the escrow system.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ statsRow: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ gap: 12,
+ marginBottom: 16,
+ },
+ statCard: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ statIcon: {
+ fontSize: 24,
+ marginBottom: 8,
+ },
+ statValue: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ },
+ createAdButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createAdButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ tabsContainer: {
+ flexDirection: 'row',
+ marginHorizontal: 16,
+ marginBottom: 16,
+ backgroundColor: '#E5E5E5',
+ borderRadius: 12,
+ padding: 4,
+ },
+ tab: {
+ flex: 1,
+ paddingVertical: 10,
+ alignItems: 'center',
+ borderRadius: 10,
+ },
+ tabActive: {
+ backgroundColor: '#FFFFFF',
+ },
+ tabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ tabTextActive: {
+ color: KurdistanColors.kesk,
+ },
+ filterRow: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ marginBottom: 16,
+ gap: 8,
+ },
+ filterChip: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ },
+ filterChipActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ filterChipText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: '#666',
+ },
+ filterChipTextActive: {
+ color: '#FFFFFF',
+ },
+ adsList: {
+ paddingHorizontal: 16,
+ gap: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 8,
+ },
+ emptySubtext: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ },
+ adCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ merchantRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ merchantInfo: {
+ flex: 1,
+ },
+ merchantName: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ merchantStats: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ merchantRating: {
+ fontSize: 12,
+ color: '#F59E0B',
+ fontWeight: '600',
+ },
+ merchantTrades: {
+ fontSize: 12,
+ color: '#666',
+ },
+ typeBadge: {
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 12,
+ },
+ buyBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ },
+ sellBadge: {
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ },
+ typeBadgeText: {
+ fontSize: 11,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ },
+ priceRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ },
+ priceLabel: {
+ fontSize: 12,
+ color: '#666',
+ marginBottom: 4,
+ },
+ priceValue: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ priceRightColumn: {
+ alignItems: 'flex-end',
+ },
+ amountLabel: {
+ fontSize: 12,
+ color: '#666',
+ marginBottom: 4,
+ },
+ amountValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ limitsRow: {
+ flexDirection: 'row',
+ marginBottom: 12,
+ },
+ limitsLabel: {
+ fontSize: 13,
+ color: '#666',
+ },
+ limitsValue: {
+ fontSize: 13,
+ fontWeight: '600',
+ color: '#333',
+ },
+ paymentMethodsRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 8,
+ marginBottom: 16,
+ },
+ paymentMethodChip: {
+ backgroundColor: '#F0F0F0',
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 12,
+ },
+ paymentMethodText: {
+ fontSize: 11,
+ fontWeight: '500',
+ color: '#666',
+ },
+ tradeButton: {
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ buyButton: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ sellButton: {
+ backgroundColor: '#EF4444',
+ },
+ tradeButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#FEF3C7',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#92400E',
+ lineHeight: 18,
+ },
+});
+
+export default P2PPlatformScreen;
diff --git a/mobile/src/screens/P2PScreen.tsx b/mobile/src/screens/P2PScreen.tsx
index 456389a5..c1af39f2 100644
--- a/mobile/src/screens/P2PScreen.tsx
+++ b/mobile/src/screens/P2PScreen.tsx
@@ -1,462 +1,21 @@
-import React, { useState, useEffect } from 'react';
-import {
- View,
- Text,
- StyleSheet,
- SafeAreaView,
- ScrollView,
- TouchableOpacity,
- FlatList,
- ActivityIndicator,
- RefreshControl,
- Modal,
- TextInput,
- Alert,
-} from 'react-native';
-import { useTranslation } from 'react-i18next';
-import { Card, Button, Badge } from '../components';
-import { KurdistanColors, AppColors } from '../theme/colors';
-import { usePolkadot } from '../contexts/PolkadotContext';
-
-// Import from shared library
-import {
- getActiveOffers,
- type P2PFiatOffer,
- type P2PReputation,
-} from '../../../shared/lib/p2p-fiat';
-
-interface OfferWithReputation extends P2PFiatOffer {
- seller_reputation?: P2PReputation;
- payment_method_name?: string;
-}
-
-type TabType = 'buy' | 'sell' | 'my-offers';
+import React from 'react';
+import { SafeAreaView, StyleSheet } from 'react-native';
+import { PezkuwiWebView } from '../components';
+/**
+ * P2P Trading Screen
+ *
+ * Uses WebView to load the full-featured P2P trading interface from the web app.
+ * The web app handles all P2P logic (offers, trades, escrow, chat, disputes).
+ * Native wallet bridge allows transaction signing from the mobile app.
+ */
const P2PScreen: React.FC = () => {
- const { t: _t } = useTranslation();
- const { selectedAccount } = usePolkadot();
-
- const [activeTab, setActiveTab] = useState('buy');
- const [offers, setOffers] = useState([]);
- const [loading, setLoading] = useState(true);
- const [refreshing, setRefreshing] = useState(false);
- const [showCreateOffer, setShowCreateOffer] = useState(false);
- const [showTradeModal, setShowTradeModal] = useState(false);
- const [selectedOffer, setSelectedOffer] = useState(null);
- const [tradeAmount, setTradeAmount] = useState('');
-
- const fetchOffers = React.useCallback(async () => {
- setLoading(true);
- try {
- let offersData: P2PFiatOffer[] = [];
-
- if (activeTab === 'buy') {
- // Buy = looking for sell offers
- offersData = await getActiveOffers();
- } else if (activeTab === 'my-offers' && selectedAccount) {
- // TODO: Implement getUserOffers from shared library
- offersData = [];
- }
-
- // Enrich with reputation (simplified for now)
- const enrichedOffers: OfferWithReputation[] = offersData.map((offer) => ({
- ...offer,
- }));
-
- setOffers(enrichedOffers);
- } catch (error) {
- if (__DEV__) console.error('Fetch offers error:', error);
- } finally {
- setLoading(false);
- setRefreshing(false);
- }
- }, [activeTab, selectedAccount]);
-
- useEffect(() => {
- fetchOffers();
- }, [fetchOffers]);
-
- const handleRefresh = () => {
- setRefreshing(true);
- fetchOffers();
- };
-
- const getTrustLevelColor = (
- level: 'new' | 'basic' | 'intermediate' | 'advanced' | 'verified'
- ) => {
- const colors = {
- new: '#999',
- basic: KurdistanColors.zer,
- intermediate: '#2196F3',
- advanced: KurdistanColors.kesk,
- verified: '#9C27B0',
- };
- return colors[level];
- };
-
- const getTrustLevelLabel = (
- level: 'new' | 'basic' | 'intermediate' | 'advanced' | 'verified'
- ) => {
- const labels = {
- new: 'New',
- basic: 'Basic',
- intermediate: 'Intermediate',
- advanced: 'Advanced',
- verified: 'Verified',
- };
- return labels[level];
- };
-
- const renderOfferCard = ({ item }: { item: OfferWithReputation }) => (
-
- {/* Seller Info */}
-
-
-
-
- {item.seller_wallet.slice(0, 2).toUpperCase()}
-
-
-
-
- {item.seller_wallet.slice(0, 6)}...{item.seller_wallet.slice(-4)}
-
- {item.seller_reputation && (
-
-
-
- {item.seller_reputation.completed_trades} trades
-
-
- )}
-
-
-
- {item.seller_reputation?.verified_merchant && (
-
- ✓
-
- )}
-
-
- {/* Offer Details */}
-
-
- Amount
-
- {item.amount_crypto} {item.token}
-
-
-
-
- Price
-
- {item.price_per_unit.toFixed(2)} {item.fiat_currency}/{item.token}
-
-
-
-
- Total
-
- {item.fiat_amount.toFixed(2)} {item.fiat_currency}
-
-
-
- {item.payment_method_name && (
-
- Payment
-
-
- )}
-
-
- Limits
-
- {item.min_order_amount || 0} - {item.max_order_amount || item.fiat_amount}{' '}
- {item.fiat_currency}
-
-
-
-
- Time Limit
- {item.time_limit_minutes} min
-
-
-
- {/* Action Button */}
- {
- setSelectedOffer(item);
- setShowTradeModal(true);
- }}
- style={styles.tradeButton}
- >
- Buy {item.token}
-
-
- );
-
- const renderEmptyState = () => (
-
- 📭
- No Offers Available
-
- {activeTab === 'my-offers'
- ? 'You haven\'t created any offers yet'
- : 'No active offers at the moment'}
-
- {activeTab === 'my-offers' && (
- setShowCreateOffer(true)}
- style={styles.createButton}
- >
- Create Your First Offer
-
- )}
-
- );
-
return (
- {/* Header */}
-
-
- P2P Trading
- Buy and sell crypto with local currency
-
- setShowCreateOffer(true)}
- >
- + Post Ad
-
-
-
- {/* Tabs */}
-
- setActiveTab('buy')}
- >
-
- Buy
-
-
-
- setActiveTab('sell')}
- >
-
- Sell
-
-
-
- setActiveTab('my-offers')}
- >
-
- My Offers
-
-
-
-
- {/* Offer List */}
- {loading && !refreshing ? (
-
-
- Loading offers...
-
- ) : (
- item.id}
- contentContainerStyle={styles.listContent}
- ListEmptyComponent={renderEmptyState}
- refreshControl={
-
- }
- />
- )}
-
- {/* Trade Modal */}
- setShowTradeModal(false)}
- >
-
-
-
-
- Buy {selectedOffer?.token || 'Token'}
-
- {
- setShowTradeModal(false);
- setTradeAmount('');
- }}
- >
- ✕
-
-
-
-
- {selectedOffer && (
- <>
- {/* Seller Info */}
-
- Trading with
-
- {selectedOffer.seller_wallet.slice(0, 6)}...
- {selectedOffer.seller_wallet.slice(-4)}
-
-
-
- {/* Price Info */}
-
-
- Price
-
- {selectedOffer.price_per_unit.toFixed(2)}{' '}
- {selectedOffer.fiat_currency}
-
-
-
- Available
-
- {selectedOffer.remaining_amount} {selectedOffer.token}
-
-
-
-
- {/* Amount Input */}
-
-
- Amount to Buy ({selectedOffer.token})
-
-
- {selectedOffer.min_order_amount && (
-
- Min: {selectedOffer.min_order_amount} {selectedOffer.token}
-
- )}
- {selectedOffer.max_order_amount && (
-
- Max: {selectedOffer.max_order_amount} {selectedOffer.token}
-
- )}
-
-
- {/* Calculation */}
- {parseFloat(tradeAmount) > 0 && (
-
- You will pay
-
- {(parseFloat(tradeAmount) * selectedOffer.price_per_unit).toFixed(2)}{' '}
- {selectedOffer.fiat_currency}
-
-
- )}
-
- {/* Trade Button */}
- {
- if (!selectedAccount) {
- Alert.alert('Error', 'Please connect your wallet first');
- return;
- }
- if (!tradeAmount || parseFloat(tradeAmount) <= 0) {
- Alert.alert('Error', 'Please enter a valid amount');
- return;
- }
- // TODO: Implement blockchain trade initiation
- Alert.alert(
- 'Coming Soon',
- 'P2P trading blockchain integration will be available soon. UI is ready!'
- );
- setShowTradeModal(false);
- setTradeAmount('');
- }}
- style={styles.tradeModalButton}
- >
- Initiate Trade
-
- >
- )}
-
-
-
-
-
- {/* Create Offer Modal */}
- setShowCreateOffer(false)}
- >
-
-
-
- Create Offer
- setShowCreateOffer(false)}>
- ✕
-
-
-
-
-
- 🚧
- Coming Soon
-
- Create P2P offer functionality will be available in the next update.
- The blockchain integration is ready and waiting for final testing!
-
- setShowCreateOffer(false)}
- style={styles.comingSoonButton}
- >
- Close
-
-
-
-
-
-
+
);
};
@@ -464,312 +23,7 @@ const P2PScreen: React.FC = () => {
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: AppColors.background,
- },
- header: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'flex-start',
- padding: 16,
- paddingBottom: 12,
- },
- title: {
- fontSize: 28,
- fontWeight: '700',
- color: '#000',
- marginBottom: 4,
- },
- subtitle: {
- fontSize: 14,
- color: '#666',
- },
- createButton: {
- backgroundColor: KurdistanColors.kesk,
- paddingHorizontal: 16,
- paddingVertical: 10,
- borderRadius: 8,
- },
- createButtonText: {
- color: '#FFFFFF',
- fontSize: 14,
- fontWeight: '600',
- },
- tabs: {
- flexDirection: 'row',
- paddingHorizontal: 16,
- borderBottomWidth: 1,
- borderBottomColor: '#E0E0E0',
- marginBottom: 16,
- },
- tab: {
- flex: 1,
- paddingVertical: 12,
- alignItems: 'center',
- borderBottomWidth: 2,
- borderBottomColor: 'transparent',
- },
- activeTab: {
- borderBottomColor: KurdistanColors.kesk,
- },
- tabText: {
- fontSize: 16,
- fontWeight: '600',
- color: '#666',
- },
- activeTabText: {
- color: KurdistanColors.kesk,
- },
- listContent: {
- padding: 16,
- paddingTop: 0,
- },
- offerCard: {
- padding: 16,
- marginBottom: 16,
- },
- sellerRow: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'flex-start',
- marginBottom: 16,
- paddingBottom: 16,
- borderBottomWidth: 1,
- borderBottomColor: '#F0F0F0',
- },
- sellerInfo: {
- flexDirection: 'row',
- alignItems: 'center',
- },
- sellerAvatar: {
- width: 48,
- height: 48,
- borderRadius: 24,
- backgroundColor: KurdistanColors.kesk,
- justifyContent: 'center',
- alignItems: 'center',
- },
- sellerAvatarText: {
- fontSize: 18,
- fontWeight: '700',
- color: '#FFFFFF',
- },
- sellerDetails: {
- marginLeft: 12,
- },
- sellerName: {
- fontSize: 16,
- fontWeight: '600',
- color: '#000',
- marginBottom: 4,
- },
- reputationRow: {
- flexDirection: 'row',
- alignItems: 'center',
- gap: 8,
- },
- tradesCount: {
- fontSize: 12,
- color: '#666',
- },
- verifiedBadge: {
- width: 24,
- height: 24,
- borderRadius: 12,
- backgroundColor: KurdistanColors.kesk,
- justifyContent: 'center',
- alignItems: 'center',
- },
- verifiedIcon: {
- fontSize: 14,
- color: '#FFFFFF',
- fontWeight: '700',
- },
- offerDetails: {
- marginBottom: 16,
- },
- detailRow: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- paddingVertical: 8,
- },
- detailLabel: {
- fontSize: 14,
- color: '#666',
- },
- detailValue: {
- fontSize: 14,
- fontWeight: '600',
- color: '#000',
- },
- totalValue: {
- fontSize: 16,
- color: KurdistanColors.kesk,
- },
- tradeButton: {
- marginTop: 8,
- },
- loadingContainer: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- },
- loadingText: {
- marginTop: 12,
- fontSize: 14,
- color: '#666',
- },
- emptyState: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- paddingVertical: 60,
- },
- emptyIcon: {
- fontSize: 64,
- marginBottom: 16,
- },
- emptyTitle: {
- fontSize: 20,
- fontWeight: '700',
- color: '#000',
- marginBottom: 8,
- },
- emptyText: {
- fontSize: 14,
- color: '#666',
- textAlign: 'center',
- marginBottom: 24,
- },
- modalOverlay: {
- flex: 1,
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
- justifyContent: 'flex-end',
- },
- modalContent: {
backgroundColor: '#FFFFFF',
- borderTopLeftRadius: 20,
- borderTopRightRadius: 20,
- paddingTop: 20,
- paddingHorizontal: 20,
- paddingBottom: 40,
- maxHeight: '90%',
- },
- modalHeader: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- marginBottom: 20,
- paddingBottom: 16,
- borderBottomWidth: 1,
- borderBottomColor: '#E0E0E0',
- },
- modalTitle: {
- fontSize: 20,
- fontWeight: '700',
- color: '#000',
- },
- modalClose: {
- fontSize: 24,
- color: '#666',
- fontWeight: '600',
- },
- modalSection: {
- marginBottom: 20,
- },
- modalSectionTitle: {
- fontSize: 12,
- color: '#666',
- marginBottom: 8,
- textTransform: 'uppercase',
- },
- modalAddress: {
- fontSize: 16,
- fontWeight: '600',
- color: '#000',
- },
- priceSection: {
- backgroundColor: '#F5F5F5',
- padding: 16,
- borderRadius: 12,
- },
- priceRow: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- marginBottom: 8,
- },
- priceLabel: {
- fontSize: 14,
- color: '#666',
- },
- priceValue: {
- fontSize: 16,
- fontWeight: '700',
- color: KurdistanColors.kesk,
- },
- inputLabel: {
- fontSize: 14,
- fontWeight: '600',
- color: '#000',
- marginBottom: 8,
- },
- modalInput: {
- backgroundColor: '#F5F5F5',
- borderRadius: 12,
- padding: 16,
- fontSize: 16,
- borderWidth: 1,
- borderColor: '#E0E0E0',
- },
- inputHint: {
- fontSize: 12,
- color: '#666',
- marginTop: 4,
- },
- calculationSection: {
- backgroundColor: 'rgba(0, 169, 79, 0.1)',
- padding: 16,
- borderRadius: 12,
- borderWidth: 1,
- borderColor: 'rgba(0, 169, 79, 0.3)',
- },
- calculationLabel: {
- fontSize: 12,
- color: '#666',
- marginBottom: 4,
- },
- calculationValue: {
- fontSize: 24,
- fontWeight: '700',
- color: KurdistanColors.kesk,
- },
- tradeModalButton: {
- marginTop: 20,
- },
- comingSoonContainer: {
- alignItems: 'center',
- paddingVertical: 40,
- },
- comingSoonIcon: {
- fontSize: 64,
- marginBottom: 16,
- },
- comingSoonTitle: {
- fontSize: 20,
- fontWeight: '700',
- color: '#000',
- marginBottom: 12,
- },
- comingSoonText: {
- fontSize: 14,
- color: '#666',
- textAlign: 'center',
- marginBottom: 24,
- lineHeight: 20,
- },
- comingSoonButton: {
- minWidth: 120,
},
});
diff --git a/mobile/src/screens/PoolBrowserScreen.tsx b/mobile/src/screens/PoolBrowserScreen.tsx
new file mode 100644
index 00000000..3a397a5f
--- /dev/null
+++ b/mobile/src/screens/PoolBrowserScreen.tsx
@@ -0,0 +1,527 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ TextInput,
+ ActivityIndicator,
+ RefreshControl,
+ Alert,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+
+interface PoolInfo {
+ id: string;
+ asset1: number;
+ asset2: number;
+ asset1Symbol: string;
+ asset2Symbol: string;
+ asset1Decimals: number;
+ asset2Decimals: number;
+ reserve1: string;
+ reserve2: string;
+ feeRate?: string;
+ volume24h?: string;
+ apr7d?: string;
+}
+
+const PoolBrowserScreen: React.FC = () => {
+ const { api, isApiReady } = usePezkuwi();
+
+ const [pools, setPools] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [refreshing, setRefreshing] = useState(false);
+ const [searchTerm, setSearchTerm] = useState('');
+
+ const fetchPools = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch all pools from chain
+ const poolsEntries = await api.query.assetConversion.pools.entries();
+
+ const poolsData: PoolInfo[] = [];
+
+ for (const [key, value] of poolsEntries) {
+ const poolAccount = value.toString();
+
+ // Parse pool assets from key
+ const keyData = key.toHuman() as any;
+ const assets = keyData[0];
+
+ if (!assets || assets.length !== 2) continue;
+
+ const asset1 = parseInt(assets[0]);
+ const asset2 = parseInt(assets[1]);
+
+ // Fetch metadata for both assets
+ let asset1Symbol = asset1 === 0 ? 'wHEZ' : 'Unknown';
+ let asset2Symbol = asset2 === 0 ? 'wHEZ' : 'Unknown';
+ let asset1Decimals = 12;
+ let asset2Decimals = 12;
+
+ try {
+ if (asset1 !== 0) {
+ const metadata1 = await api.query.assets.metadata(asset1);
+ const meta1 = metadata1.toJSON() as any;
+ asset1Symbol = meta1.symbol || `Asset ${asset1}`;
+ asset1Decimals = meta1.decimals || 12;
+ }
+
+ if (asset2 !== 0) {
+ const metadata2 = await api.query.assets.metadata(asset2);
+ const meta2 = metadata2.toJSON() as any;
+ asset2Symbol = meta2.symbol || `Asset ${asset2}`;
+ asset2Decimals = meta2.decimals || 12;
+ }
+ } catch (error) {
+ console.error('Failed to fetch asset metadata:', error);
+ }
+
+ // Fetch pool reserves
+ let reserve1 = '0';
+ let reserve2 = '0';
+
+ try {
+ if (asset1 === 0) {
+ // Native token (wHEZ)
+ const balance1 = await api.query.system.account(poolAccount);
+ reserve1 = balance1.data.free.toString();
+ } else {
+ const balance1 = await api.query.assets.account(asset1, poolAccount);
+ reserve1 = balance1.isSome ? balance1.unwrap().balance.toString() : '0';
+ }
+
+ if (asset2 === 0) {
+ const balance2 = await api.query.system.account(poolAccount);
+ reserve2 = balance2.data.free.toString();
+ } else {
+ const balance2 = await api.query.assets.account(asset2, poolAccount);
+ reserve2 = balance2.isSome ? balance2.unwrap().balance.toString() : '0';
+ }
+ } catch (error) {
+ console.error('Failed to fetch reserves:', error);
+ }
+
+ poolsData.push({
+ id: `${asset1}-${asset2}`,
+ asset1,
+ asset2,
+ asset1Symbol,
+ asset2Symbol,
+ asset1Decimals,
+ asset2Decimals,
+ reserve1,
+ reserve2,
+ feeRate: '0.3', // 0.3% default
+ volume24h: 'N/A',
+ apr7d: 'N/A',
+ });
+ }
+
+ setPools(poolsData);
+ } catch (error) {
+ console.error('Failed to load pools:', error);
+ Alert.alert('Error', 'Failed to load liquidity pools');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchPools();
+
+ // Refresh pools every 10 seconds
+ const interval = setInterval(fetchPools, 10000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchPools();
+ };
+
+ const filteredPools = pools.filter((pool) => {
+ if (!searchTerm) return true;
+ const search = searchTerm.toLowerCase();
+ return (
+ pool.asset1Symbol.toLowerCase().includes(search) ||
+ pool.asset2Symbol.toLowerCase().includes(search) ||
+ pool.id.toLowerCase().includes(search)
+ );
+ });
+
+ const formatBalance = (balance: string, decimals: number): string => {
+ return (Number(balance) / Math.pow(10, decimals)).toFixed(2);
+ };
+
+ const calculateExchangeRate = (pool: PoolInfo): string => {
+ const reserve1Num = Number(pool.reserve1);
+ const reserve2Num = Number(pool.reserve2);
+
+ if (reserve1Num === 0) return '0';
+
+ const rate = reserve2Num / reserve1Num;
+ return rate.toFixed(4);
+ };
+
+ const handleAddLiquidity = (pool: PoolInfo) => {
+ Alert.alert('Add Liquidity', `Adding liquidity to ${pool.asset1Symbol}/${pool.asset2Symbol} pool`);
+ // TODO: Navigate to AddLiquidityModal
+ };
+
+ const handleRemoveLiquidity = (pool: PoolInfo) => {
+ Alert.alert('Remove Liquidity', `Removing liquidity from ${pool.asset1Symbol}/${pool.asset2Symbol} pool`);
+ // TODO: Navigate to RemoveLiquidityModal
+ };
+
+ const handleSwap = (pool: PoolInfo) => {
+ Alert.alert('Swap', `Swapping in ${pool.asset1Symbol}/${pool.asset2Symbol} pool`);
+ // TODO: Navigate to SwapScreen with pool pre-selected
+ };
+
+ if (loading && pools.length === 0) {
+ return (
+
+
+
+ Loading liquidity pools...
+
+
+ );
+ }
+
+ return (
+
+
+ }
+ >
+ {/* Header */}
+
+ Liquidity Pools
+
+
+ {/* Search Bar */}
+
+ 🔍
+
+
+
+ {/* Pools List */}
+ {filteredPools.length === 0 ? (
+
+ 💧
+
+ {searchTerm
+ ? 'No pools found matching your search'
+ : 'No liquidity pools available yet'}
+
+
+ ) : (
+
+ {filteredPools.map((pool) => (
+
+ {/* Pool Header */}
+
+
+ {pool.asset1Symbol}
+ /
+ {pool.asset2Symbol}
+
+
+ Active
+
+
+
+ {/* Reserves */}
+
+
+ Reserve {pool.asset1Symbol}
+
+ {formatBalance(pool.reserve1, pool.asset1Decimals)} {pool.asset1Symbol}
+
+
+
+ Reserve {pool.asset2Symbol}
+
+ {formatBalance(pool.reserve2, pool.asset2Decimals)} {pool.asset2Symbol}
+
+
+
+
+ {/* Exchange Rate */}
+
+ Exchange Rate
+
+ 1 {pool.asset1Symbol} = {calculateExchangeRate(pool)} {pool.asset2Symbol}
+
+
+
+ {/* Stats Row */}
+
+
+ Fee
+ {pool.feeRate}%
+
+
+ Volume 24h
+ {pool.volume24h}
+
+
+ APR
+
+ {pool.apr7d}
+
+
+
+
+ {/* Action Buttons */}
+
+ handleAddLiquidity(pool)}
+ >
+ 💧 Add
+
+ handleRemoveLiquidity(pool)}
+ >
+ Remove
+
+ handleSwap(pool)}
+ >
+ 📈 Swap
+
+
+
+ ))}
+
+ )}
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ centerContent: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 40,
+ },
+ loadingText: {
+ marginTop: 16,
+ fontSize: 16,
+ color: '#666',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ searchContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 20,
+ marginBottom: 20,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ borderRadius: 12,
+ boxShadow: '0px 1px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ searchIcon: {
+ fontSize: 18,
+ marginRight: 8,
+ },
+ searchInput: {
+ flex: 1,
+ fontSize: 16,
+ color: '#333',
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ poolsList: {
+ padding: 16,
+ gap: 16,
+ },
+ poolCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ poolHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ poolTitleRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ poolAsset1: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ poolSeparator: {
+ fontSize: 18,
+ color: '#999',
+ marginHorizontal: 4,
+ },
+ poolAsset2: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#F59E0B',
+ },
+ activeBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 12,
+ paddingVertical: 4,
+ borderRadius: 12,
+ borderWidth: 1,
+ borderColor: 'rgba(0, 143, 67, 0.3)',
+ },
+ activeBadgeText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ reservesSection: {
+ gap: 8,
+ marginBottom: 16,
+ },
+ reserveRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ reserveLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ reserveValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ fontFamily: 'monospace',
+ },
+ exchangeRateCard: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 16,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ exchangeRateLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ exchangeRateValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#3B82F6',
+ fontFamily: 'monospace',
+ },
+ statsRow: {
+ flexDirection: 'row',
+ gap: 8,
+ paddingTop: 16,
+ borderTopWidth: 1,
+ borderTopColor: '#E5E5E5',
+ marginBottom: 16,
+ },
+ statBox: {
+ flex: 1,
+ alignItems: 'center',
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ marginBottom: 4,
+ },
+ statValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ statValuePositive: {
+ color: KurdistanColors.kesk,
+ },
+ actionButtons: {
+ flexDirection: 'row',
+ gap: 8,
+ },
+ actionButton: {
+ flex: 1,
+ paddingVertical: 10,
+ borderRadius: 12,
+ alignItems: 'center',
+ borderWidth: 1,
+ },
+ addButton: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderColor: 'rgba(0, 143, 67, 0.3)',
+ },
+ removeButton: {
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ borderColor: 'rgba(239, 68, 68, 0.3)',
+ },
+ swapButton: {
+ backgroundColor: 'rgba(59, 130, 246, 0.1)',
+ borderColor: 'rgba(59, 130, 246, 0.3)',
+ },
+ actionButtonText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: '#333',
+ },
+});
+
+export default PoolBrowserScreen;
diff --git a/mobile/src/screens/PoolBrowserScreen.tsx.bak b/mobile/src/screens/PoolBrowserScreen.tsx.bak
new file mode 100644
index 00000000..4e6bea45
--- /dev/null
+++ b/mobile/src/screens/PoolBrowserScreen.tsx.bak
@@ -0,0 +1,533 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ TextInput,
+ ActivityIndicator,
+ RefreshControl,
+ Alert,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+
+interface PoolInfo {
+ id: string;
+ asset1: number;
+ asset2: number;
+ asset1Symbol: string;
+ asset2Symbol: string;
+ asset1Decimals: number;
+ asset2Decimals: number;
+ reserve1: string;
+ reserve2: string;
+ feeRate?: string;
+ volume24h?: string;
+ apr7d?: string;
+}
+
+const PoolBrowserScreen: React.FC = () => {
+ const { api, isApiReady } = usePezkuwi();
+
+ const [pools, setPools] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [refreshing, setRefreshing] = useState(false);
+ const [searchTerm, setSearchTerm] = useState('');
+
+ const fetchPools = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch all pools from chain
+ const poolsEntries = await api.query.assetConversion.pools.entries();
+
+ const poolsData: PoolInfo[] = [];
+
+ for (const [key, value] of poolsEntries) {
+ const poolAccount = value.toString();
+
+ // Parse pool assets from key
+ const keyData = key.toHuman() as any;
+ const assets = keyData[0];
+
+ if (!assets || assets.length !== 2) continue;
+
+ const asset1 = parseInt(assets[0]);
+ const asset2 = parseInt(assets[1]);
+
+ // Fetch metadata for both assets
+ let asset1Symbol = asset1 === 0 ? 'wHEZ' : 'Unknown';
+ let asset2Symbol = asset2 === 0 ? 'wHEZ' : 'Unknown';
+ let asset1Decimals = 12;
+ let asset2Decimals = 12;
+
+ try {
+ if (asset1 !== 0) {
+ const metadata1 = await api.query.assets.metadata(asset1);
+ const meta1 = metadata1.toJSON() as any;
+ asset1Symbol = meta1.symbol || `Asset ${asset1}`;
+ asset1Decimals = meta1.decimals || 12;
+ }
+
+ if (asset2 !== 0) {
+ const metadata2 = await api.query.assets.metadata(asset2);
+ const meta2 = metadata2.toJSON() as any;
+ asset2Symbol = meta2.symbol || `Asset ${asset2}`;
+ asset2Decimals = meta2.decimals || 12;
+ }
+ } catch (error) {
+ console.error('Failed to fetch asset metadata:', error);
+ }
+
+ // Fetch pool reserves
+ let reserve1 = '0';
+ let reserve2 = '0';
+
+ try {
+ if (asset1 === 0) {
+ // Native token (wHEZ)
+ const balance1 = await api.query.system.account(poolAccount);
+ reserve1 = balance1.data.free.toString();
+ } else {
+ const balance1 = await api.query.assets.account(asset1, poolAccount);
+ reserve1 = balance1.isSome ? balance1.unwrap().balance.toString() : '0';
+ }
+
+ if (asset2 === 0) {
+ const balance2 = await api.query.system.account(poolAccount);
+ reserve2 = balance2.data.free.toString();
+ } else {
+ const balance2 = await api.query.assets.account(asset2, poolAccount);
+ reserve2 = balance2.isSome ? balance2.unwrap().balance.toString() : '0';
+ }
+ } catch (error) {
+ console.error('Failed to fetch reserves:', error);
+ }
+
+ poolsData.push({
+ id: `${asset1}-${asset2}`,
+ asset1,
+ asset2,
+ asset1Symbol,
+ asset2Symbol,
+ asset1Decimals,
+ asset2Decimals,
+ reserve1,
+ reserve2,
+ feeRate: '0.3', // 0.3% default
+ volume24h: 'N/A',
+ apr7d: 'N/A',
+ });
+ }
+
+ setPools(poolsData);
+ } catch (error) {
+ console.error('Failed to load pools:', error);
+ Alert.alert('Error', 'Failed to load liquidity pools');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchPools();
+
+ // Refresh pools every 10 seconds
+ const interval = setInterval(fetchPools, 10000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchPools();
+ };
+
+ const filteredPools = pools.filter((pool) => {
+ if (!searchTerm) return true;
+ const search = searchTerm.toLowerCase();
+ return (
+ pool.asset1Symbol.toLowerCase().includes(search) ||
+ pool.asset2Symbol.toLowerCase().includes(search) ||
+ pool.id.toLowerCase().includes(search)
+ );
+ });
+
+ const formatBalance = (balance: string, decimals: number): string => {
+ return (Number(balance) / Math.pow(10, decimals)).toFixed(2);
+ };
+
+ const calculateExchangeRate = (pool: PoolInfo): string => {
+ const reserve1Num = Number(pool.reserve1);
+ const reserve2Num = Number(pool.reserve2);
+
+ if (reserve1Num === 0) return '0';
+
+ const rate = reserve2Num / reserve1Num;
+ return rate.toFixed(4);
+ };
+
+ const handleAddLiquidity = (pool: PoolInfo) => {
+ Alert.alert('Add Liquidity', `Adding liquidity to ${pool.asset1Symbol}/${pool.asset2Symbol} pool`);
+ // TODO: Navigate to AddLiquidityModal
+ };
+
+ const handleRemoveLiquidity = (pool: PoolInfo) => {
+ Alert.alert('Remove Liquidity', `Removing liquidity from ${pool.asset1Symbol}/${pool.asset2Symbol} pool`);
+ // TODO: Navigate to RemoveLiquidityModal
+ };
+
+ const handleSwap = (pool: PoolInfo) => {
+ Alert.alert('Swap', `Swapping in ${pool.asset1Symbol}/${pool.asset2Symbol} pool`);
+ // TODO: Navigate to SwapScreen with pool pre-selected
+ };
+
+ if (loading && pools.length === 0) {
+ return (
+
+
+
+ Loading liquidity pools...
+
+
+ );
+ }
+
+ return (
+
+
+ }
+ >
+ {/* Header */}
+
+ Liquidity Pools
+
+
+ {/* Search Bar */}
+
+ 🔍
+
+
+
+ {/* Pools List */}
+ {filteredPools.length === 0 ? (
+
+ 💧
+
+ {searchTerm
+ ? 'No pools found matching your search'
+ : 'No liquidity pools available yet'}
+
+
+ ) : (
+
+ {filteredPools.map((pool) => (
+
+ {/* Pool Header */}
+
+
+ {pool.asset1Symbol}
+ /
+ {pool.asset2Symbol}
+
+
+ Active
+
+
+
+ {/* Reserves */}
+
+
+ Reserve {pool.asset1Symbol}
+
+ {formatBalance(pool.reserve1, pool.asset1Decimals)} {pool.asset1Symbol}
+
+
+
+ Reserve {pool.asset2Symbol}
+
+ {formatBalance(pool.reserve2, pool.asset2Decimals)} {pool.asset2Symbol}
+
+
+
+
+ {/* Exchange Rate */}
+
+ Exchange Rate
+
+ 1 {pool.asset1Symbol} = {calculateExchangeRate(pool)} {pool.asset2Symbol}
+
+
+
+ {/* Stats Row */}
+
+
+ Fee
+ {pool.feeRate}%
+
+
+ Volume 24h
+ {pool.volume24h}
+
+
+ APR
+
+ {pool.apr7d}
+
+
+
+
+ {/* Action Buttons */}
+
+ handleAddLiquidity(pool)}
+ >
+ 💧 Add
+
+ handleRemoveLiquidity(pool)}
+ >
+ Remove
+
+ handleSwap(pool)}
+ >
+ 📈 Swap
+
+
+
+ ))}
+
+ )}
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ centerContent: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 40,
+ },
+ loadingText: {
+ marginTop: 16,
+ fontSize: 16,
+ color: '#666',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ searchContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 20,
+ marginBottom: 20,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ borderRadius: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ searchIcon: {
+ fontSize: 18,
+ marginRight: 8,
+ },
+ searchInput: {
+ flex: 1,
+ fontSize: 16,
+ color: '#333',
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ poolsList: {
+ padding: 16,
+ gap: 16,
+ },
+ poolCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ poolHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ poolTitleRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ poolAsset1: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ poolSeparator: {
+ fontSize: 18,
+ color: '#999',
+ marginHorizontal: 4,
+ },
+ poolAsset2: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#F59E0B',
+ },
+ activeBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 12,
+ paddingVertical: 4,
+ borderRadius: 12,
+ borderWidth: 1,
+ borderColor: 'rgba(0, 143, 67, 0.3)',
+ },
+ activeBadgeText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ reservesSection: {
+ gap: 8,
+ marginBottom: 16,
+ },
+ reserveRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ reserveLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ reserveValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ fontFamily: 'monospace',
+ },
+ exchangeRateCard: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 16,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ exchangeRateLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ exchangeRateValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#3B82F6',
+ fontFamily: 'monospace',
+ },
+ statsRow: {
+ flexDirection: 'row',
+ gap: 8,
+ paddingTop: 16,
+ borderTopWidth: 1,
+ borderTopColor: '#E5E5E5',
+ marginBottom: 16,
+ },
+ statBox: {
+ flex: 1,
+ alignItems: 'center',
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ marginBottom: 4,
+ },
+ statValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ statValuePositive: {
+ color: KurdistanColors.kesk,
+ },
+ actionButtons: {
+ flexDirection: 'row',
+ gap: 8,
+ },
+ actionButton: {
+ flex: 1,
+ paddingVertical: 10,
+ borderRadius: 12,
+ alignItems: 'center',
+ borderWidth: 1,
+ },
+ addButton: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderColor: 'rgba(0, 143, 67, 0.3)',
+ },
+ removeButton: {
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ borderColor: 'rgba(239, 68, 68, 0.3)',
+ },
+ swapButton: {
+ backgroundColor: 'rgba(59, 130, 246, 0.1)',
+ borderColor: 'rgba(59, 130, 246, 0.3)',
+ },
+ actionButtonText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: '#333',
+ },
+});
+
+export default PoolBrowserScreen;
diff --git a/mobile/src/screens/ProfileScreen.tsx b/mobile/src/screens/ProfileScreen.tsx
index d6c21e8b..940300a9 100644
--- a/mobile/src/screens/ProfileScreen.tsx
+++ b/mobile/src/screens/ProfileScreen.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState, useEffect } from 'react';
import {
View,
Text,
@@ -7,152 +7,242 @@ import {
SafeAreaView,
ScrollView,
StatusBar,
+ Image,
+ ActivityIndicator,
Alert,
} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
import { useTranslation } from 'react-i18next';
-import { useLanguage } from '../contexts/LanguageContext';
-import { languages } from '../i18n';
+import { useNavigation } from '@react-navigation/native';
+import { useAuth } from '../contexts/AuthContext';
import { KurdistanColors } from '../theme/colors';
+import { supabase } from '../lib/supabase';
+import AvatarPickerModal from '../components/AvatarPickerModal';
-interface SettingsScreenProps {
- onBack: () => void;
- onLogout: () => void;
+// Avatar pool matching AvatarPickerModal
+const AVATAR_POOL = [
+ { id: 'avatar1', emoji: '👨🏻' },
+ { id: 'avatar2', emoji: '👨🏼' },
+ { id: 'avatar3', emoji: '👨🏽' },
+ { id: 'avatar4', emoji: '👨🏾' },
+ { id: 'avatar5', emoji: '👩🏻' },
+ { id: 'avatar6', emoji: '👩🏼' },
+ { id: 'avatar7', emoji: '👩🏽' },
+ { id: 'avatar8', emoji: '👩🏾' },
+ { id: 'avatar9', emoji: '🧔🏻' },
+ { id: 'avatar10', emoji: '🧔🏼' },
+ { id: 'avatar11', emoji: '🧔🏽' },
+ { id: 'avatar12', emoji: '🧔🏾' },
+ { id: 'avatar13', emoji: '👳🏻♂️' },
+ { id: 'avatar14', emoji: '👳🏼♂️' },
+ { id: 'avatar15', emoji: '👳🏽♂️' },
+ { id: 'avatar16', emoji: '🧕🏻' },
+ { id: 'avatar17', emoji: '🧕🏼' },
+ { id: 'avatar18', emoji: '🧕🏽' },
+ { id: 'avatar19', emoji: '👴🏻' },
+ { id: 'avatar20', emoji: '👴🏼' },
+ { id: 'avatar21', emoji: '👵🏻' },
+ { id: 'avatar22', emoji: '👵🏼' },
+ { id: 'avatar23', emoji: '👦🏻' },
+ { id: 'avatar24', emoji: '👦🏼' },
+ { id: 'avatar25', emoji: '👧🏻' },
+ { id: 'avatar26', emoji: '👧🏼' },
+];
+
+// Helper function to get emoji from avatar ID
+const getEmojiFromAvatarId = (avatarId: string): string => {
+ const avatar = AVATAR_POOL.find(a => a.id === avatarId);
+ return avatar ? avatar.emoji : '👤'; // Default to person emoji if not found
+};
+
+interface ProfileData {
+ full_name: string | null;
+ avatar_url: string | null;
+ wallet_address: string | null;
+ created_at: string;
+ referral_code: string | null;
+ referral_count: number;
}
-const SettingsScreen: React.FC = ({ onBack, onLogout }) => {
+const ProfileScreen: React.FC = () => {
const { t } = useTranslation();
- const { currentLanguage, changeLanguage } = useLanguage();
+ const navigation = useNavigation();
+ const { user, signOut } = useAuth();
+ const [profileData, setProfileData] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [avatarModalVisible, setAvatarModalVisible] = useState(false);
- const handleLanguageChange = async (languageCode: string) => {
- if (languageCode === currentLanguage) return;
+ useEffect(() => {
+ fetchProfileData();
+ }, [user]);
+ const fetchProfileData = async () => {
+ if (!user) {
+ setLoading(false);
+ return;
+ }
+
+ try {
+ const { data, error} = await supabase
+ .from('profiles')
+ .select('*')
+ .eq('id', user.id)
+ .single();
+
+ if (error) throw error;
+
+ setProfileData(data);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching profile:', error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ const handleLogout = () => {
Alert.alert(
- 'Change Language',
- `Switch to ${languages.find(l => l.code === languageCode)?.nativeName}?`,
+ 'Logout',
+ 'Are you sure you want to logout?',
[
- { text: t('common.cancel'), style: 'cancel' },
+ { text: 'Cancel', style: 'cancel' },
{
- text: t('common.confirm'),
+ text: 'Logout',
+ style: 'destructive',
onPress: async () => {
- await changeLanguage(languageCode);
- Alert.alert(
- t('common.success'),
- 'Language updated successfully! The app will now use your selected language.'
- );
+ await signOut();
},
},
]
);
};
- const handleLogout = () => {
- Alert.alert(
- t('settings.logout'),
- 'Are you sure you want to logout?',
- [
- { text: t('common.cancel'), style: 'cancel' },
- {
- text: t('settings.logout'),
- style: 'destructive',
- onPress: onLogout,
- },
- ]
- );
+ const handleAvatarSelected = (avatarUrl: string) => {
+ setProfileData(prev => prev ? { ...prev, avatar_url: avatarUrl } : null);
};
+ const ProfileCard = ({ icon, title, value, onPress }: { icon: string; title: string; value: string; onPress?: () => void }) => (
+
+ {icon}
+
+ {title}
+ {value}
+
+ {onPress && →}
+
+ );
+
+ if (loading) {
+ return (
+
+
+
+
+
+ );
+ }
+
return (
-
-
- {/* Header */}
-
-
- ←
-
- {t('settings.title')}
-
-
+
- {/* Language Section */}
-
- {t('settings.language')}
- {languages.map((language) => (
- handleLanguageChange(language.code)}
- >
-
-
- {language.nativeName}
-
- {language.name}
-
- {currentLanguage === language.code && (
-
- ✓
+ {/* Header with Gradient */}
+
+
+ setAvatarModalVisible(true)} style={styles.avatarWrapper}>
+ {profileData?.avatar_url ? (
+ // Check if avatar_url is a URL (starts with http) or an emoji ID
+ profileData.avatar_url.startsWith('http') ? (
+
+ ) : (
+ // It's an emoji ID, render as emoji text
+
+
+ {getEmojiFromAvatarId(profileData.avatar_url)}
+
+
+ )
+ ) : (
+
+
+ {profileData?.full_name?.charAt(0)?.toUpperCase() || user?.email?.charAt(0)?.toUpperCase() || '?'}
+
)}
+
+ 📷
+
- ))}
-
-
- {/* Theme Section */}
-
- {t('settings.theme')}
-
- Dark Mode
- Off
-
-
-
- {/* Notifications Section */}
-
- {t('settings.notifications')}
-
- Push Notifications
- Enabled
-
-
- Transaction Alerts
- Enabled
-
-
-
- {/* Security Section */}
-
- {t('settings.security')}
-
- Biometric Login
- Disabled
-
-
- Change Password
- →
-
-
-
- {/* About Section */}
-
- {t('settings.about')}
-
- Version
- 1.0.0
+
+ {profileData?.full_name || user?.email?.split('@')[0] || 'User'}
+
+ {user?.email}
-
- Terms of Service
- →
+
+
+ {/* Profile Info Cards */}
+
+
+
+
+
+ (navigation as any).navigate('Referral')}
+ />
+
+ {profileData?.referral_code && (
+
+ )}
+
+ {profileData?.wallet_address && (
+
+ )}
+
+
+ {/* Action Buttons */}
+
+ Alert.alert('Coming Soon', 'Edit profile feature will be available soon')}
+ >
+ ✏️
+ Edit Profile
+ →
-
- Privacy Policy
- →
+
+ Alert.alert(
+ 'About Pezkuwi',
+ 'Pezkuwi is a decentralized blockchain platform for Digital Kurdistan.\n\nVersion: 1.0.0\n\n© 2026 Digital Kurdistan',
+ [{ text: 'OK' }]
+ )}
+ >
+ ℹ️
+ About Pezkuwi
+ →
@@ -162,15 +252,24 @@ const SettingsScreen: React.FC = ({ onBack, onLogout }) =>
onPress={handleLogout}
activeOpacity={0.8}
>
- {t('settings.logout')}
+ Logout
Pezkuwi Blockchain • {new Date().getFullYear()}
+ Version 1.0.0
+
+ {/* Avatar Picker Modal */}
+ setAvatarModalVisible(false)}
+ currentAvatar={profileData?.avatar_url || undefined}
+ onAvatarSelected={handleAvatarSelected}
+ />
);
};
@@ -180,130 +279,165 @@ const styles = StyleSheet.create({
flex: 1,
backgroundColor: '#F5F5F5',
},
- header: {
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-between',
- padding: 20,
- backgroundColor: KurdistanColors.spi,
- borderBottomWidth: 1,
- borderBottomColor: '#E0E0E0',
- },
- backButton: {
- width: 40,
- height: 40,
+ loadingContainer: {
+ flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
- backButtonText: {
- fontSize: 24,
- color: KurdistanColors.kesk,
- },
- headerTitle: {
- fontSize: 18,
- fontWeight: '600',
- color: KurdistanColors.reş,
- },
- placeholder: {
- width: 40,
- },
- section: {
- marginTop: 20,
- paddingHorizontal: 20,
- },
- sectionTitle: {
- fontSize: 14,
- fontWeight: '600',
- color: '#999',
- marginBottom: 12,
- textTransform: 'uppercase',
- },
- languageItem: {
- flexDirection: 'row',
+ header: {
+ paddingTop: 40,
+ paddingBottom: 30,
alignItems: 'center',
- justifyContent: 'space-between',
- backgroundColor: KurdistanColors.spi,
- padding: 16,
- borderRadius: 12,
- marginBottom: 8,
- borderWidth: 2,
- borderColor: 'transparent',
},
- languageItemActive: {
- borderColor: KurdistanColors.kesk,
- backgroundColor: '#F0FAF5',
+ avatarContainer: {
+ alignItems: 'center',
},
- languageInfo: {
- flex: 1,
+ avatarWrapper: {
+ position: 'relative',
+ marginBottom: 16,
},
- languageName: {
+ avatar: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ borderWidth: 4,
+ borderColor: '#FFFFFF',
+ },
+ avatarPlaceholder: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: 'rgba(255, 255, 255, 0.3)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderWidth: 4,
+ borderColor: '#FFFFFF',
+ },
+ avatarText: {
+ fontSize: 40,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ avatarEmojiLarge: {
+ fontSize: 60,
+ },
+ editAvatarButton: {
+ position: 'absolute',
+ bottom: 0,
+ right: 0,
+ backgroundColor: '#FFFFFF',
+ width: 32,
+ height: 32,
+ borderRadius: 16,
+ justifyContent: 'center',
+ alignItems: 'center',
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)',
+ elevation: 4,
+ },
+ editAvatarIcon: {
fontSize: 16,
- fontWeight: '600',
- color: KurdistanColors.reş,
+ },
+ name: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
marginBottom: 4,
},
- languageNameActive: {
- color: KurdistanColors.kesk,
- },
- languageSubtext: {
+ email: {
fontSize: 14,
- color: '#999',
+ color: 'rgba(255, 255, 255, 0.9)',
},
- checkmark: {
- width: 24,
- height: 24,
- borderRadius: 12,
- backgroundColor: KurdistanColors.kesk,
- justifyContent: 'center',
- alignItems: 'center',
+ cardsContainer: {
+ padding: 16,
},
- checkmarkText: {
- color: KurdistanColors.spi,
- fontSize: 14,
- fontWeight: 'bold',
- },
- settingItem: {
+ profileCard: {
flexDirection: 'row',
alignItems: 'center',
- justifyContent: 'space-between',
- backgroundColor: KurdistanColors.spi,
- padding: 16,
+ backgroundColor: '#FFFFFF',
borderRadius: 12,
- marginBottom: 8,
+ padding: 16,
+ marginBottom: 12,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
+ elevation: 2,
},
- settingText: {
+ cardIcon: {
+ fontSize: 32,
+ marginRight: 16,
+ },
+ cardContent: {
+ flex: 1,
+ },
+ cardTitle: {
+ fontSize: 12,
+ color: '#999',
+ marginBottom: 4,
+ },
+ cardValue: {
fontSize: 16,
+ fontWeight: '600',
color: KurdistanColors.reş,
},
- settingValue: {
+ cardArrow: {
+ fontSize: 20,
+ color: '#999',
+ marginLeft: 8,
+ },
+ actionsContainer: {
+ paddingHorizontal: 16,
+ marginBottom: 16,
+ },
+ actionButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
+ elevation: 2,
+ },
+ actionIcon: {
+ fontSize: 24,
+ marginRight: 12,
+ },
+ actionText: {
+ flex: 1,
fontSize: 16,
+ fontWeight: '500',
+ color: KurdistanColors.reş,
+ },
+ actionArrow: {
+ fontSize: 20,
color: '#999',
},
logoutButton: {
backgroundColor: KurdistanColors.sor,
- margin: 20,
+ marginHorizontal: 16,
+ marginBottom: 16,
padding: 16,
borderRadius: 12,
alignItems: 'center',
- shadowColor: KurdistanColors.sor,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
+ boxShadow: '0px 4px 6px rgba(255, 0, 0, 0.3)',
elevation: 6,
},
logoutButtonText: {
fontSize: 16,
fontWeight: 'bold',
- color: KurdistanColors.spi,
+ color: '#FFFFFF',
},
footer: {
alignItems: 'center',
- paddingVertical: 20,
+ paddingVertical: 24,
},
footerText: {
fontSize: 12,
color: '#999',
+ marginBottom: 4,
+ },
+ footerVersion: {
+ fontSize: 10,
+ color: '#CCC',
},
});
-export default SettingsScreen;
+export default ProfileScreen;
diff --git a/mobile/src/screens/ProfileScreen.tsx.bak b/mobile/src/screens/ProfileScreen.tsx.bak
new file mode 100644
index 00000000..9d2afdcf
--- /dev/null
+++ b/mobile/src/screens/ProfileScreen.tsx.bak
@@ -0,0 +1,455 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ Image,
+ ActivityIndicator,
+ Alert,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import { useAuth } from '../contexts/AuthContext';
+import { KurdistanColors } from '../theme/colors';
+import { supabase } from '../lib/supabase';
+import AvatarPickerModal from '../components/AvatarPickerModal';
+
+// Avatar pool matching AvatarPickerModal
+const AVATAR_POOL = [
+ { id: 'avatar1', emoji: '👨🏻' },
+ { id: 'avatar2', emoji: '👨🏼' },
+ { id: 'avatar3', emoji: '👨🏽' },
+ { id: 'avatar4', emoji: '👨🏾' },
+ { id: 'avatar5', emoji: '👩🏻' },
+ { id: 'avatar6', emoji: '👩🏼' },
+ { id: 'avatar7', emoji: '👩🏽' },
+ { id: 'avatar8', emoji: '👩🏾' },
+ { id: 'avatar9', emoji: '🧔🏻' },
+ { id: 'avatar10', emoji: '🧔🏼' },
+ { id: 'avatar11', emoji: '🧔🏽' },
+ { id: 'avatar12', emoji: '🧔🏾' },
+ { id: 'avatar13', emoji: '👳🏻♂️' },
+ { id: 'avatar14', emoji: '👳🏼♂️' },
+ { id: 'avatar15', emoji: '👳🏽♂️' },
+ { id: 'avatar16', emoji: '🧕🏻' },
+ { id: 'avatar17', emoji: '🧕🏼' },
+ { id: 'avatar18', emoji: '🧕🏽' },
+ { id: 'avatar19', emoji: '👴🏻' },
+ { id: 'avatar20', emoji: '👴🏼' },
+ { id: 'avatar21', emoji: '👵🏻' },
+ { id: 'avatar22', emoji: '👵🏼' },
+ { id: 'avatar23', emoji: '👦🏻' },
+ { id: 'avatar24', emoji: '👦🏼' },
+ { id: 'avatar25', emoji: '👧🏻' },
+ { id: 'avatar26', emoji: '👧🏼' },
+];
+
+// Helper function to get emoji from avatar ID
+const getEmojiFromAvatarId = (avatarId: string): string => {
+ const avatar = AVATAR_POOL.find(a => a.id === avatarId);
+ return avatar ? avatar.emoji : '👤'; // Default to person emoji if not found
+};
+
+interface ProfileData {
+ full_name: string | null;
+ avatar_url: string | null;
+ wallet_address: string | null;
+ created_at: string;
+ referral_code: string | null;
+ referral_count: number;
+}
+
+const ProfileScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const { user, signOut } = useAuth();
+ const [profileData, setProfileData] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [avatarModalVisible, setAvatarModalVisible] = useState(false);
+
+ useEffect(() => {
+ fetchProfileData();
+ }, [user]);
+
+ const fetchProfileData = async () => {
+ if (!user) {
+ setLoading(false);
+ return;
+ }
+
+ try {
+ const { data, error} = await supabase
+ .from('profiles')
+ .select('*')
+ .eq('id', user.id)
+ .single();
+
+ if (error) throw error;
+
+ setProfileData(data);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching profile:', error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ const handleLogout = () => {
+ Alert.alert(
+ 'Logout',
+ 'Are you sure you want to logout?',
+ [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Logout',
+ style: 'destructive',
+ onPress: async () => {
+ await signOut();
+ },
+ },
+ ]
+ );
+ };
+
+ const handleAvatarSelected = (avatarUrl: string) => {
+ setProfileData(prev => prev ? { ...prev, avatar_url: avatarUrl } : null);
+ };
+
+ const ProfileCard = ({ icon, title, value, onPress }: { icon: string; title: string; value: string; onPress?: () => void }) => (
+
+ {icon}
+
+ {title}
+ {value}
+
+ {onPress && →}
+
+ );
+
+ if (loading) {
+ return (
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ {/* Header with Gradient */}
+
+
+ setAvatarModalVisible(true)} style={styles.avatarWrapper}>
+ {profileData?.avatar_url ? (
+ // Check if avatar_url is a URL (starts with http) or an emoji ID
+ profileData.avatar_url.startsWith('http') ? (
+
+ ) : (
+ // It's an emoji ID, render as emoji text
+
+
+ {getEmojiFromAvatarId(profileData.avatar_url)}
+
+
+ )
+ ) : (
+
+
+ {profileData?.full_name?.charAt(0)?.toUpperCase() || user?.email?.charAt(0)?.toUpperCase() || '?'}
+
+
+ )}
+
+ 📷
+
+
+
+ {profileData?.full_name || user?.email?.split('@')[0] || 'User'}
+
+ {user?.email}
+
+
+
+ {/* Profile Info Cards */}
+
+
+
+
+
+ (navigation as any).navigate('Referral')}
+ />
+
+ {profileData?.referral_code && (
+
+ )}
+
+ {profileData?.wallet_address && (
+
+ )}
+
+
+ {/* Action Buttons */}
+
+ Alert.alert('Coming Soon', 'Edit profile feature will be available soon')}
+ >
+ ✏️
+ Edit Profile
+ →
+
+
+ Alert.alert(
+ 'About Pezkuwi',
+ 'Pezkuwi is a decentralized blockchain platform for Digital Kurdistan.\n\nVersion: 1.0.0\n\n© 2026 Digital Kurdistan',
+ [{ text: 'OK' }]
+ )}
+ >
+ ℹ️
+ About Pezkuwi
+ →
+
+
+
+ {/* Logout Button */}
+
+ Logout
+
+
+
+
+ Pezkuwi Blockchain • {new Date().getFullYear()}
+
+ Version 1.0.0
+
+
+
+ {/* Avatar Picker Modal */}
+ setAvatarModalVisible(false)}
+ currentAvatar={profileData?.avatar_url || undefined}
+ onAvatarSelected={handleAvatarSelected}
+ />
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ loadingContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ header: {
+ paddingTop: 40,
+ paddingBottom: 30,
+ alignItems: 'center',
+ },
+ avatarContainer: {
+ alignItems: 'center',
+ },
+ avatarWrapper: {
+ position: 'relative',
+ marginBottom: 16,
+ },
+ avatar: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ borderWidth: 4,
+ borderColor: '#FFFFFF',
+ },
+ avatarPlaceholder: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: 'rgba(255, 255, 255, 0.3)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderWidth: 4,
+ borderColor: '#FFFFFF',
+ },
+ avatarText: {
+ fontSize: 40,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ avatarEmojiLarge: {
+ fontSize: 60,
+ },
+ editAvatarButton: {
+ position: 'absolute',
+ bottom: 0,
+ right: 0,
+ backgroundColor: '#FFFFFF',
+ width: 32,
+ height: 32,
+ borderRadius: 16,
+ justifyContent: 'center',
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.2,
+ shadowRadius: 4,
+ elevation: 4,
+ },
+ editAvatarIcon: {
+ fontSize: 16,
+ },
+ name: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ marginBottom: 4,
+ },
+ email: {
+ fontSize: 14,
+ color: 'rgba(255, 255, 255, 0.9)',
+ },
+ cardsContainer: {
+ padding: 16,
+ },
+ profileCard: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ cardIcon: {
+ fontSize: 32,
+ marginRight: 16,
+ },
+ cardContent: {
+ flex: 1,
+ },
+ cardTitle: {
+ fontSize: 12,
+ color: '#999',
+ marginBottom: 4,
+ },
+ cardValue: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ },
+ cardArrow: {
+ fontSize: 20,
+ color: '#999',
+ marginLeft: 8,
+ },
+ actionsContainer: {
+ paddingHorizontal: 16,
+ marginBottom: 16,
+ },
+ actionButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ actionIcon: {
+ fontSize: 24,
+ marginRight: 12,
+ },
+ actionText: {
+ flex: 1,
+ fontSize: 16,
+ fontWeight: '500',
+ color: KurdistanColors.reş,
+ },
+ actionArrow: {
+ fontSize: 20,
+ color: '#999',
+ },
+ logoutButton: {
+ backgroundColor: KurdistanColors.sor,
+ marginHorizontal: 16,
+ marginBottom: 16,
+ padding: 16,
+ borderRadius: 12,
+ alignItems: 'center',
+ shadowColor: KurdistanColors.sor,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ logoutButtonText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ footer: {
+ alignItems: 'center',
+ paddingVertical: 24,
+ },
+ footerText: {
+ fontSize: 12,
+ color: '#999',
+ marginBottom: 4,
+ },
+ footerVersion: {
+ fontSize: 10,
+ color: '#CCC',
+ },
+});
+
+export default ProfileScreen;
diff --git a/mobile/src/screens/ReferralScreen.tsx b/mobile/src/screens/ReferralScreen.tsx
index 39887430..e538f04e 100644
--- a/mobile/src/screens/ReferralScreen.tsx
+++ b/mobile/src/screens/ReferralScreen.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState, useEffect, useCallback } from 'react';
import {
View,
Text,
@@ -10,17 +10,26 @@ import {
Share,
Alert,
Clipboard,
+ ActivityIndicator,
} from 'react-native';
import { LinearGradient } from 'expo-linear-gradient';
import { useTranslation } from 'react-i18next';
-import { usePolkadot } from '../contexts/PolkadotContext';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
import { KurdistanColors } from '../theme/colors';
+import {
+ getReferralStats,
+ getMyReferrals,
+ calculateReferralScore,
+ type ReferralStats as BlockchainReferralStats,
+} from '@pezkuwi/lib/referral';
interface ReferralStats {
totalReferrals: number;
activeReferrals: number;
totalEarned: string;
pendingRewards: string;
+ referralScore: number;
+ whoInvitedMe: string | null;
}
interface Referral {
@@ -33,28 +42,86 @@ interface Referral {
const ReferralScreen: React.FC = () => {
const { t: _t } = useTranslation();
- const { selectedAccount, api: _api, connectWallet } = usePolkadot();
+ const { selectedAccount, api, connectWallet, isApiReady } = usePezkuwi();
const isConnected = !!selectedAccount;
- // Removed setState in effect - derive from selectedAccount directly
+ // State for blockchain data
+ const [stats, setStats] = useState({
+ totalReferrals: 0,
+ activeReferrals: 0,
+ totalEarned: '0.00 HEZ',
+ pendingRewards: '0.00 HEZ',
+ referralScore: 0,
+ whoInvitedMe: null,
+ });
+ const [referrals, setReferrals] = useState([]);
+ const [loading, setLoading] = useState(false);
// Generate referral code from wallet address
const referralCode = selectedAccount
? `PZK-${selectedAccount.address.slice(0, 8).toUpperCase()}`
: 'PZK-CONNECT-WALLET';
- // Mock stats - will be fetched from pallet_referral
- // TODO: Fetch real stats from blockchain
- const stats: ReferralStats = {
- totalReferrals: 0,
- activeReferrals: 0,
- totalEarned: '0.00 HEZ',
- pendingRewards: '0.00 HEZ',
- };
+ // Fetch referral data from blockchain
+ const fetchReferralData = useCallback(async () => {
+ if (!api || !isApiReady || !selectedAccount) {
+ setStats({
+ totalReferrals: 0,
+ activeReferrals: 0,
+ totalEarned: '0.00 HEZ',
+ pendingRewards: '0.00 HEZ',
+ referralScore: 0,
+ whoInvitedMe: null,
+ });
+ setReferrals([]);
+ return;
+ }
- // Mock referrals - will be fetched from blockchain
- // TODO: Query pallet-trust or referral pallet for actual referrals
- const referrals: Referral[] = [];
+ setLoading(true);
+
+ try {
+ const [blockchainStats, myReferralsList] = await Promise.all([
+ getReferralStats(api, selectedAccount.address),
+ getMyReferrals(api, selectedAccount.address),
+ ]);
+
+ // Calculate rewards (placeholder for now - will be from pallet_rewards)
+ const scoreValue = blockchainStats.referralScore;
+ const earnedAmount = (scoreValue * 0.1).toFixed(2);
+
+ setStats({
+ totalReferrals: blockchainStats.referralCount,
+ activeReferrals: blockchainStats.referralCount,
+ totalEarned: `${earnedAmount} HEZ`,
+ pendingRewards: '0.00 HEZ',
+ referralScore: blockchainStats.referralScore,
+ whoInvitedMe: blockchainStats.whoInvitedMe,
+ });
+
+ // Transform blockchain referrals to UI format
+ const referralData: Referral[] = myReferralsList.map((address, index) => ({
+ id: address,
+ address,
+ joinedDate: 'KYC Completed',
+ status: 'active' as const,
+ earned: `+${index < 10 ? 10 : index < 50 ? 5 : index < 100 ? 4 : 0} points`,
+ }));
+
+ setReferrals(referralData);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching referral data:', error);
+ Alert.alert('Error', 'Failed to load referral data from blockchain');
+ } finally {
+ setLoading(false);
+ }
+ }, [api, isApiReady, selectedAccount]);
+
+ // Fetch data on mount and when connection changes
+ useEffect(() => {
+ if (isConnected && api && isApiReady) {
+ fetchReferralData();
+ }
+ }, [isConnected, api, isApiReady, fetchReferralData]);
const handleConnectWallet = async () => {
try {
@@ -131,6 +198,13 @@ const ReferralScreen: React.FC = () => {
+ {loading && (
+
+
+ Loading referral data...
+
+ )}
+
{/* Referral Code Card */}
Your Referral Code
@@ -155,6 +229,19 @@ const ReferralScreen: React.FC = () => {
+ {/* Who Invited Me */}
+ {stats.whoInvitedMe && (
+
+
+ 🎁
+ You Were Invited By
+
+
+ {stats.whoInvitedMe.slice(0, 10)}...{stats.whoInvitedMe.slice(-8)}
+
+
+ )}
+
{/* Stats Grid */}
@@ -178,6 +265,94 @@ const ReferralScreen: React.FC = () => {
+ {/* Score Breakdown */}
+
+ Score Calculation
+
+ How referrals contribute to your trust score
+
+
+
+
+ 1-10 referrals
+ 10 points each
+
+
+
+
+
+ 11-50 referrals
+ 100 + 5 points each
+
+
+
+
+
+ 51-100 referrals
+ 300 + 4 points each
+
+
+
+
+
+ 101+ referrals
+ 500 points (max)
+
+
+
+
+ {/* Leaderboard */}
+
+ Top Referrers
+ Community leaderboard
+
+
+
+
+ 🥇
+
+
+ 5GrwvaEF...KutQY
+ 156 referrals
+
+ 500 pts
+
+
+
+
+
+
+ 🥈
+
+
+ 5FHneW46...94ty
+ 89 referrals
+
+ 456 pts
+
+
+
+
+
+
+ 🥉
+
+
+ 5FLSigC9...hXcS59Y
+ 67 referrals
+
+ 385 pts
+
+
+
+
+ ℹ️
+
+ Leaderboard updates every 24 hours. Keep inviting to climb the ranks!
+
+
+
+
{/* How It Works */}
How It Works
@@ -283,10 +458,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
marginBottom: 20,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.3)',
elevation: 8,
},
logoText: {
@@ -310,10 +482,7 @@ const styles = StyleSheet.create({
paddingHorizontal: 40,
paddingVertical: 16,
borderRadius: 12,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
+ boxShadow: '0px 4px 6px rgba(0, 0, 0, 0.3)',
elevation: 6,
},
connectButtonText: {
@@ -345,10 +514,7 @@ const styles = StyleSheet.create({
borderRadius: 16,
padding: 20,
marginBottom: 20,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.1,
- shadowRadius: 8,
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
elevation: 4,
},
codeLabel: {
@@ -407,10 +573,7 @@ const styles = StyleSheet.create({
borderRadius: 12,
padding: 16,
alignItems: 'center',
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.05,
- shadowRadius: 6,
+ boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
elevation: 3,
},
statValue: {
@@ -430,18 +593,99 @@ const styles = StyleSheet.create({
fontSize: 18,
fontWeight: '600',
color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ sectionSubtitle: {
+ fontSize: 14,
+ color: '#666',
marginBottom: 16,
},
+ scoreCard: {
+ backgroundColor: 'rgba(0, 0, 0, 0.03)',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 8,
+ },
+ scoreRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ scoreRange: {
+ fontSize: 14,
+ color: '#666',
+ },
+ scorePoints: {
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ leaderboardCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
+ elevation: 3,
+ },
+ leaderboardRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ leaderboardRank: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ leaderboardRankText: {
+ fontSize: 20,
+ },
+ leaderboardInfo: {
+ flex: 1,
+ },
+ leaderboardAddress: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 2,
+ fontFamily: 'monospace',
+ },
+ leaderboardStats: {
+ fontSize: 12,
+ color: '#666',
+ },
+ leaderboardScore: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ leaderboardNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ borderRadius: 12,
+ padding: 12,
+ marginTop: 8,
+ gap: 8,
+ },
+ leaderboardNoteIcon: {
+ fontSize: 16,
+ },
+ leaderboardNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
stepCard: {
flexDirection: 'row',
backgroundColor: KurdistanColors.spi,
borderRadius: 12,
padding: 16,
marginBottom: 12,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.05,
- shadowRadius: 6,
+ boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
elevation: 3,
},
stepNumber: {
@@ -498,10 +742,7 @@ const styles = StyleSheet.create({
borderRadius: 12,
padding: 16,
marginBottom: 12,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.05,
- shadowRadius: 6,
+ boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
elevation: 3,
},
referralInfo: {
@@ -538,6 +779,48 @@ const styles = StyleSheet.create({
fontWeight: '600',
color: KurdistanColors.sor,
},
+ loadingOverlay: {
+ padding: 20,
+ alignItems: 'center',
+ backgroundColor: 'rgba(255, 255, 255, 0.9)',
+ borderRadius: 12,
+ marginBottom: 20,
+ },
+ loadingText: {
+ marginTop: 12,
+ fontSize: 14,
+ color: '#666',
+ },
+ invitedByCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 20,
+ borderLeftWidth: 4,
+ borderLeftColor: KurdistanColors.kesk,
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
+ elevation: 4,
+ },
+ invitedByHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 8,
+ },
+ invitedByIcon: {
+ fontSize: 20,
+ marginRight: 8,
+ },
+ invitedByTitle: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ invitedByAddress: {
+ fontSize: 14,
+ fontFamily: 'monospace',
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
});
export default ReferralScreen;
diff --git a/mobile/src/screens/ReferralScreen.tsx.bak b/mobile/src/screens/ReferralScreen.tsx.bak
new file mode 100644
index 00000000..6f355e44
--- /dev/null
+++ b/mobile/src/screens/ReferralScreen.tsx.bak
@@ -0,0 +1,850 @@
+import React, { useState, useEffect, useCallback } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ Share,
+ Alert,
+ Clipboard,
+ ActivityIndicator,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { KurdistanColors } from '../theme/colors';
+import {
+ getReferralStats,
+ getMyReferrals,
+ calculateReferralScore,
+ type ReferralStats as BlockchainReferralStats,
+} from '@pezkuwi/lib/referral';
+
+interface ReferralStats {
+ totalReferrals: number;
+ activeReferrals: number;
+ totalEarned: string;
+ pendingRewards: string;
+ referralScore: number;
+ whoInvitedMe: string | null;
+}
+
+interface Referral {
+ id: string;
+ address: string;
+ joinedDate: string;
+ status: 'active' | 'pending';
+ earned: string;
+}
+
+const ReferralScreen: React.FC = () => {
+ const { t: _t } = useTranslation();
+ const { selectedAccount, api, connectWallet, isApiReady } = usePezkuwi();
+ const isConnected = !!selectedAccount;
+
+ // State for blockchain data
+ const [stats, setStats] = useState({
+ totalReferrals: 0,
+ activeReferrals: 0,
+ totalEarned: '0.00 HEZ',
+ pendingRewards: '0.00 HEZ',
+ referralScore: 0,
+ whoInvitedMe: null,
+ });
+ const [referrals, setReferrals] = useState([]);
+ const [loading, setLoading] = useState(false);
+
+ // Generate referral code from wallet address
+ const referralCode = selectedAccount
+ ? `PZK-${selectedAccount.address.slice(0, 8).toUpperCase()}`
+ : 'PZK-CONNECT-WALLET';
+
+ // Fetch referral data from blockchain
+ const fetchReferralData = useCallback(async () => {
+ if (!api || !isApiReady || !selectedAccount) {
+ setStats({
+ totalReferrals: 0,
+ activeReferrals: 0,
+ totalEarned: '0.00 HEZ',
+ pendingRewards: '0.00 HEZ',
+ referralScore: 0,
+ whoInvitedMe: null,
+ });
+ setReferrals([]);
+ return;
+ }
+
+ setLoading(true);
+
+ try {
+ const [blockchainStats, myReferralsList] = await Promise.all([
+ getReferralStats(api, selectedAccount.address),
+ getMyReferrals(api, selectedAccount.address),
+ ]);
+
+ // Calculate rewards (placeholder for now - will be from pallet_rewards)
+ const scoreValue = blockchainStats.referralScore;
+ const earnedAmount = (scoreValue * 0.1).toFixed(2);
+
+ setStats({
+ totalReferrals: blockchainStats.referralCount,
+ activeReferrals: blockchainStats.referralCount,
+ totalEarned: `${earnedAmount} HEZ`,
+ pendingRewards: '0.00 HEZ',
+ referralScore: blockchainStats.referralScore,
+ whoInvitedMe: blockchainStats.whoInvitedMe,
+ });
+
+ // Transform blockchain referrals to UI format
+ const referralData: Referral[] = myReferralsList.map((address, index) => ({
+ id: address,
+ address,
+ joinedDate: 'KYC Completed',
+ status: 'active' as const,
+ earned: `+${index < 10 ? 10 : index < 50 ? 5 : index < 100 ? 4 : 0} points`,
+ }));
+
+ setReferrals(referralData);
+ } catch (error) {
+ if (__DEV__) console.error('Error fetching referral data:', error);
+ Alert.alert('Error', 'Failed to load referral data from blockchain');
+ } finally {
+ setLoading(false);
+ }
+ }, [api, isApiReady, selectedAccount]);
+
+ // Fetch data on mount and when connection changes
+ useEffect(() => {
+ if (isConnected && api && isApiReady) {
+ fetchReferralData();
+ }
+ }, [isConnected, api, isApiReady, fetchReferralData]);
+
+ const handleConnectWallet = async () => {
+ try {
+ await connectWallet();
+ Alert.alert('Connected', 'Your wallet has been connected to the referral system!');
+ } catch (error) {
+ if (__DEV__) console.error('Wallet connection error:', error);
+ Alert.alert('Error', 'Failed to connect wallet. Please try again.');
+ }
+ };
+
+ const handleCopyCode = () => {
+ Clipboard.setString(referralCode);
+ Alert.alert('Copied!', 'Referral code copied to clipboard');
+ };
+
+ const handleShareCode = async () => {
+ try {
+ const result = await Share.share({
+ message: `Join Pezkuwi using my referral code: ${referralCode}\n\nGet rewards for becoming a citizen!`,
+ title: 'Join Pezkuwi',
+ });
+
+ if (result.action === Share.sharedAction) {
+ if (__DEV__) console.warn('Shared successfully');
+ }
+ } catch (error) {
+ if (__DEV__) console.error('Error sharing:', error);
+ }
+ };
+
+ if (!isConnected) {
+ return (
+
+
+
+
+
+ 🤝
+
+ Referral Program
+
+ Connect your wallet to access your referral dashboard
+
+
+ Connect Wallet
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ {/* Header */}
+
+ Referral Program
+ Earn rewards by inviting friends
+
+
+
+ {loading && (
+
+
+ Loading referral data...
+
+ )}
+
+ {/* Referral Code Card */}
+
+ Your Referral Code
+
+ {referralCode}
+
+
+
+ 📋
+ Copy
+
+
+ 📤
+ Share
+
+
+
+
+ {/* Who Invited Me */}
+ {stats.whoInvitedMe && (
+
+
+ 🎁
+ You Were Invited By
+
+
+ {stats.whoInvitedMe.slice(0, 10)}...{stats.whoInvitedMe.slice(-8)}
+
+
+ )}
+
+ {/* Stats Grid */}
+
+
+ {stats.totalReferrals}
+ Total Referrals
+
+
+ {stats.activeReferrals}
+ Active
+
+
+
+
+
+ {stats.totalEarned}
+ Total Earned
+
+
+ {stats.pendingRewards}
+ Pending
+
+
+
+ {/* Score Breakdown */}
+
+ Score Calculation
+
+ How referrals contribute to your trust score
+
+
+
+
+ 1-10 referrals
+ 10 points each
+
+
+
+
+
+ 11-50 referrals
+ 100 + 5 points each
+
+
+
+
+
+ 51-100 referrals
+ 300 + 4 points each
+
+
+
+
+
+ 101+ referrals
+ 500 points (max)
+
+
+
+
+ {/* Leaderboard */}
+
+ Top Referrers
+ Community leaderboard
+
+
+
+
+ 🥇
+
+
+ 5GrwvaEF...KutQY
+ 156 referrals
+
+ 500 pts
+
+
+
+
+
+
+ 🥈
+
+
+ 5FHneW46...94ty
+ 89 referrals
+
+ 456 pts
+
+
+
+
+
+
+ 🥉
+
+
+ 5FLSigC9...hXcS59Y
+ 67 referrals
+
+ 385 pts
+
+
+
+
+ ℹ️
+
+ Leaderboard updates every 24 hours. Keep inviting to climb the ranks!
+
+
+
+
+ {/* How It Works */}
+
+ How It Works
+
+
+ 1
+
+
+ Share Your Code
+
+ Share your unique referral code with friends
+
+
+
+
+
+
+ 2
+
+
+ Friend Joins
+
+ They use your code when applying for citizenship
+
+
+
+
+
+
+ 3
+
+
+ Earn Rewards
+
+ Get HEZ tokens when they become active citizens
+
+
+
+
+
+ {/* Referrals List */}
+
+ Your Referrals
+ {referrals.length === 0 ? (
+
+ 👥
+ No referrals yet
+
+ Start inviting friends to earn rewards!
+
+
+ ) : (
+ referrals.map((referral) => (
+
+
+
+ {referral.address.substring(0, 8)}...
+ {referral.address.substring(referral.address.length - 6)}
+
+ {referral.joinedDate}
+
+
+
+ {referral.status}
+
+ {referral.earned}
+
+
+ ))
+ )}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5F5F5',
+ },
+ connectGradient: {
+ flex: 1,
+ },
+ connectContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 20,
+ },
+ logoContainer: {
+ width: 100,
+ height: 100,
+ borderRadius: 50,
+ backgroundColor: KurdistanColors.spi,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 20,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ logoText: {
+ fontSize: 48,
+ },
+ connectTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 12,
+ },
+ connectSubtitle: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ textAlign: 'center',
+ opacity: 0.9,
+ marginBottom: 40,
+ },
+ connectButton: {
+ backgroundColor: KurdistanColors.spi,
+ paddingHorizontal: 40,
+ paddingVertical: 16,
+ borderRadius: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ connectButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.sor,
+ },
+ header: {
+ padding: 20,
+ paddingTop: 40,
+ },
+ headerTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: KurdistanColors.spi,
+ opacity: 0.9,
+ },
+ content: {
+ flex: 1,
+ padding: 20,
+ },
+ codeCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 16,
+ padding: 20,
+ marginBottom: 20,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ codeLabel: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 12,
+ },
+ codeContainer: {
+ backgroundColor: '#F5F5F5',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 16,
+ },
+ codeText: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: KurdistanColors.sor,
+ textAlign: 'center',
+ fontFamily: 'monospace',
+ },
+ codeActions: {
+ flexDirection: 'row',
+ gap: 12,
+ },
+ codeButton: {
+ flex: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ padding: 12,
+ borderRadius: 8,
+ gap: 8,
+ },
+ copyButton: {
+ backgroundColor: '#F0F0F0',
+ },
+ shareButton: {
+ backgroundColor: KurdistanColors.sor,
+ },
+ codeButtonIcon: {
+ fontSize: 16,
+ },
+ codeButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ },
+ statsGrid: {
+ flexDirection: 'row',
+ gap: 12,
+ marginBottom: 12,
+ },
+ statCard: {
+ flex: 1,
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 6,
+ elevation: 3,
+ },
+ statValue: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.sor,
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 12,
+ color: '#666',
+ },
+ section: {
+ marginTop: 20,
+ },
+ sectionTitle: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ sectionSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 16,
+ },
+ scoreCard: {
+ backgroundColor: 'rgba(0, 0, 0, 0.03)',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 8,
+ },
+ scoreRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ scoreRange: {
+ fontSize: 14,
+ color: '#666',
+ },
+ scorePoints: {
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ leaderboardCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 6,
+ elevation: 3,
+ },
+ leaderboardRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ leaderboardRank: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ leaderboardRankText: {
+ fontSize: 20,
+ },
+ leaderboardInfo: {
+ flex: 1,
+ },
+ leaderboardAddress: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 2,
+ fontFamily: 'monospace',
+ },
+ leaderboardStats: {
+ fontSize: 12,
+ color: '#666',
+ },
+ leaderboardScore: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ leaderboardNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ borderRadius: 12,
+ padding: 12,
+ marginTop: 8,
+ gap: 8,
+ },
+ leaderboardNoteIcon: {
+ fontSize: 16,
+ },
+ leaderboardNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+ stepCard: {
+ flexDirection: 'row',
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 6,
+ elevation: 3,
+ },
+ stepNumber: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: KurdistanColors.sor,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 16,
+ },
+ stepNumberText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ stepContent: {
+ flex: 1,
+ },
+ stepTitle: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 4,
+ },
+ stepDescription: {
+ fontSize: 14,
+ color: '#666',
+ },
+ emptyState: {
+ alignItems: 'center',
+ padding: 40,
+ },
+ emptyStateIcon: {
+ fontSize: 48,
+ marginBottom: 16,
+ },
+ emptyStateText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ emptyStateSubtext: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ },
+ referralCard: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 6,
+ elevation: 3,
+ },
+ referralInfo: {
+ flex: 1,
+ },
+ referralAddress: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 4,
+ fontFamily: 'monospace',
+ },
+ referralDate: {
+ fontSize: 12,
+ color: '#666',
+ },
+ referralStats: {
+ alignItems: 'flex-end',
+ },
+ referralStatus: {
+ fontSize: 12,
+ fontWeight: '600',
+ marginBottom: 4,
+ textTransform: 'uppercase',
+ },
+ statusActive: {
+ color: KurdistanColors.kesk,
+ },
+ statusPending: {
+ color: KurdistanColors.zer,
+ },
+ referralEarned: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.sor,
+ },
+ loadingOverlay: {
+ padding: 20,
+ alignItems: 'center',
+ backgroundColor: 'rgba(255, 255, 255, 0.9)',
+ borderRadius: 12,
+ marginBottom: 20,
+ },
+ loadingText: {
+ marginTop: 12,
+ fontSize: 14,
+ color: '#666',
+ },
+ invitedByCard: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 20,
+ borderLeftWidth: 4,
+ borderLeftColor: KurdistanColors.kesk,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ invitedByHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 8,
+ },
+ invitedByIcon: {
+ fontSize: 20,
+ marginRight: 8,
+ },
+ invitedByTitle: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ invitedByAddress: {
+ fontSize: 14,
+ fontFamily: 'monospace',
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+});
+
+export default ReferralScreen;
diff --git a/mobile/src/screens/SignInScreen.tsx b/mobile/src/screens/SignInScreen.tsx
index 6ad6fc21..6b1a7428 100644
--- a/mobile/src/screens/SignInScreen.tsx
+++ b/mobile/src/screens/SignInScreen.tsx
@@ -179,10 +179,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
marginBottom: 16,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.3)',
elevation: 8,
},
logoText: {
@@ -205,10 +202,7 @@ const styles = StyleSheet.create({
backgroundColor: KurdistanColors.spi,
borderRadius: 20,
padding: 24,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.2,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.2)',
elevation: 8,
},
inputGroup: {
@@ -242,10 +236,7 @@ const styles = StyleSheet.create({
borderRadius: 12,
padding: 16,
alignItems: 'center',
- shadowColor: KurdistanColors.kesk,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
+ boxShadow: '0px 4px 6px rgba(0, 128, 0, 0.3)',
elevation: 6,
},
signInButtonText: {
diff --git a/mobile/src/screens/SignInScreen.tsx.bak b/mobile/src/screens/SignInScreen.tsx.bak
new file mode 100644
index 00000000..6ad6fc21
--- /dev/null
+++ b/mobile/src/screens/SignInScreen.tsx.bak
@@ -0,0 +1,287 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+ StatusBar,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useAuth } from '../contexts/AuthContext';
+import { KurdistanColors } from '../theme/colors';
+
+interface SignInScreenProps {
+ onSignIn: () => void;
+ onNavigateToSignUp: () => void;
+}
+
+const SignInScreen: React.FC = ({ onSignIn, onNavigateToSignUp }) => {
+ const { t } = useTranslation();
+ const { signIn } = useAuth();
+ const [email, setEmail] = useState('');
+ const [password, setPassword] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+
+ const handleSignIn = async () => {
+ if (!email || !password) {
+ Alert.alert('Error', 'Please enter both email and password');
+ return;
+ }
+
+ setIsLoading(true);
+
+ try {
+ const { error } = await signIn(email, password);
+
+ if (error) {
+ Alert.alert('Sign In Failed', error.message);
+ return;
+ }
+
+ // Success - navigate to app
+ onSignIn();
+ } catch (error) {
+ Alert.alert('Error', 'An unexpected error occurred');
+ if (__DEV__) console.error('Sign in error:', error);
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ return (
+
+
+
+
+
+ {/* Header */}
+
+
+ PZK
+
+ {t('auth.welcomeBack')}
+ {t('auth.signIn')}
+
+
+ {/* Form */}
+
+
+ {t('auth.email')}
+
+
+
+
+ {t('auth.password')}
+
+
+
+
+
+ {t('auth.forgotPassword')}
+
+
+
+
+ {isLoading ? (
+
+ ) : (
+ {t('auth.signIn')}
+ )}
+
+
+
+
+ or
+
+
+
+
+
+ {t('auth.noAccount')}{' '}
+ {t('auth.signUp')}
+
+
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: KurdistanColors.kesk,
+ },
+ gradient: {
+ flex: 1,
+ },
+ keyboardView: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ padding: 20,
+ paddingTop: 60,
+ },
+ header: {
+ alignItems: 'center',
+ marginBottom: 40,
+ },
+ logoContainer: {
+ width: 80,
+ height: 80,
+ borderRadius: 40,
+ backgroundColor: KurdistanColors.spi,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ logoText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ title: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 8,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ opacity: 0.9,
+ },
+ form: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 20,
+ padding: 24,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.2,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ inputGroup: {
+ marginBottom: 20,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ input: {
+ backgroundColor: '#F5F5F5',
+ borderRadius: 12,
+ padding: 16,
+ fontSize: 16,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ },
+ forgotPassword: {
+ alignItems: 'flex-end',
+ marginBottom: 24,
+ },
+ forgotPasswordText: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ fontWeight: '600',
+ },
+ signInButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ signInButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ buttonDisabled: {
+ opacity: 0.6,
+ },
+ divider: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginVertical: 24,
+ },
+ dividerLine: {
+ flex: 1,
+ height: 1,
+ backgroundColor: '#E0E0E0',
+ },
+ dividerText: {
+ marginHorizontal: 12,
+ fontSize: 14,
+ color: '#999',
+ },
+ signUpPrompt: {
+ alignItems: 'center',
+ },
+ signUpPromptText: {
+ fontSize: 14,
+ color: '#666',
+ },
+ signUpLink: {
+ color: KurdistanColors.kesk,
+ fontWeight: 'bold',
+ },
+});
+
+export default SignInScreen;
diff --git a/mobile/src/screens/SignUpScreen.tsx b/mobile/src/screens/SignUpScreen.tsx
index 6858bd09..baafff72 100644
--- a/mobile/src/screens/SignUpScreen.tsx
+++ b/mobile/src/screens/SignUpScreen.tsx
@@ -204,10 +204,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
marginBottom: 16,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.3)',
elevation: 8,
},
logoText: {
@@ -230,10 +227,7 @@ const styles = StyleSheet.create({
backgroundColor: KurdistanColors.spi,
borderRadius: 20,
padding: 24,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.2,
- shadowRadius: 8,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.2)',
elevation: 8,
},
inputGroup: {
@@ -259,10 +253,7 @@ const styles = StyleSheet.create({
padding: 16,
alignItems: 'center',
marginTop: 8,
- shadowColor: KurdistanColors.sor,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
+ boxShadow: '0px 4px 6px rgba(255, 0, 0, 0.3)',
elevation: 6,
},
signUpButtonText: {
diff --git a/mobile/src/screens/SignUpScreen.tsx.bak b/mobile/src/screens/SignUpScreen.tsx.bak
new file mode 100644
index 00000000..6858bd09
--- /dev/null
+++ b/mobile/src/screens/SignUpScreen.tsx.bak
@@ -0,0 +1,304 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+ StatusBar,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useAuth } from '../contexts/AuthContext';
+import { KurdistanColors } from '../theme/colors';
+
+interface SignUpScreenProps {
+ onSignUp: () => void;
+ onNavigateToSignIn: () => void;
+}
+
+const SignUpScreen: React.FC = ({ onSignUp, onNavigateToSignIn }) => {
+ const { t } = useTranslation();
+ const { signUp } = useAuth();
+ const [email, setEmail] = useState('');
+ const [password, setPassword] = useState('');
+ const [confirmPassword, setConfirmPassword] = useState('');
+ const [username, setUsername] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+
+ const handleSignUp = async () => {
+ if (!email || !password || !username) {
+ Alert.alert('Error', 'Please fill all required fields');
+ return;
+ }
+
+ if (password !== confirmPassword) {
+ Alert.alert('Error', 'Passwords do not match');
+ return;
+ }
+
+ setIsLoading(true);
+
+ try {
+ const { error } = await signUp(email, password, username);
+
+ if (error) {
+ Alert.alert('Sign Up Failed', error.message);
+ return;
+ }
+
+ // Success - navigate to app
+ onSignUp();
+ } catch (error) {
+ Alert.alert('Error', 'An unexpected error occurred');
+ if (__DEV__) console.error('Sign up error:', error);
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ return (
+
+
+
+
+
+ {/* Header */}
+
+
+ PZK
+
+ {t('auth.getStarted')}
+ {t('auth.createAccount')}
+
+
+ {/* Form */}
+
+
+ {t('auth.email')}
+
+
+
+
+ {t('auth.username')}
+
+
+
+
+ {t('auth.password')}
+
+
+
+
+ {t('auth.confirmPassword')}
+
+
+
+
+ {isLoading ? (
+
+ ) : (
+ {t('auth.signUp')}
+ )}
+
+
+
+
+ or
+
+
+
+
+
+ {t('auth.haveAccount')}{' '}
+ {t('auth.signIn')}
+
+
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: KurdistanColors.sor,
+ },
+ gradient: {
+ flex: 1,
+ },
+ keyboardView: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ padding: 20,
+ paddingTop: 60,
+ },
+ header: {
+ alignItems: 'center',
+ marginBottom: 40,
+ },
+ logoContainer: {
+ width: 80,
+ height: 80,
+ borderRadius: 40,
+ backgroundColor: KurdistanColors.spi,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ logoText: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: KurdistanColors.sor,
+ },
+ title: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ marginBottom: 8,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: KurdistanColors.spi,
+ opacity: 0.9,
+ },
+ form: {
+ backgroundColor: KurdistanColors.spi,
+ borderRadius: 20,
+ padding: 24,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.2,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ inputGroup: {
+ marginBottom: 20,
+ },
+ label: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: KurdistanColors.reş,
+ marginBottom: 8,
+ },
+ input: {
+ backgroundColor: '#F5F5F5',
+ borderRadius: 12,
+ padding: 16,
+ fontSize: 16,
+ borderWidth: 1,
+ borderColor: '#E0E0E0',
+ },
+ signUpButton: {
+ backgroundColor: KurdistanColors.sor,
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 8,
+ shadowColor: KurdistanColors.sor,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 6,
+ elevation: 6,
+ },
+ signUpButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: KurdistanColors.spi,
+ },
+ buttonDisabled: {
+ opacity: 0.6,
+ },
+ divider: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginVertical: 24,
+ },
+ dividerLine: {
+ flex: 1,
+ height: 1,
+ backgroundColor: '#E0E0E0',
+ },
+ dividerText: {
+ marginHorizontal: 12,
+ fontSize: 14,
+ color: '#999',
+ },
+ signInPrompt: {
+ alignItems: 'center',
+ },
+ signInPromptText: {
+ fontSize: 14,
+ color: '#666',
+ },
+ signInLink: {
+ color: KurdistanColors.sor,
+ fontWeight: 'bold',
+ },
+});
+
+export default SignUpScreen;
diff --git a/mobile/src/screens/StakingScreen.tsx b/mobile/src/screens/StakingScreen.tsx
index bc17da2d..885f88c7 100644
--- a/mobile/src/screens/StakingScreen.tsx
+++ b/mobile/src/screens/StakingScreen.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react';
+import React, { useState, useEffect, useCallback } from 'react';
import {
View,
Text,
@@ -7,7 +7,7 @@ import {
RefreshControl,
Alert,
} from 'react-native';
-import { usePolkadot } from '../contexts/PolkadotContext';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
import { AppColors, KurdistanColors } from '../theme/colors';
import {
Card,
@@ -15,105 +15,103 @@ import {
Input,
BottomSheet,
Badge,
+ ValidatorSelectionSheet,
CardSkeleton,
} from '../components';
-import {
- calculateTikiScore,
- calculateWeightedScore,
- calculateMonthlyPEZReward,
- SCORE_WEIGHTS,
-} from '@pezkuwi/lib/staking';
-import { fetchUserTikis } from '@pezkuwi/lib/tiki';
+import { getStakingInfo } from '@pezkuwi/lib/staking';
+import { getAllScores } from '@pezkuwi/lib/scores';
import { formatBalance } from '@pezkuwi/lib/wallet';
-interface StakingData {
+// Helper types derived from shared lib
+interface StakingScreenData {
stakedAmount: string;
unbondingAmount: string;
- totalRewards: string;
monthlyReward: string;
tikiScore: number;
+ stakingScore: number;
weightedScore: number;
estimatedAPY: string;
+ unlocking: { amount: string; era: number; blocksRemaining: number }[];
+ currentEra: number;
}
-/**
- * Staking Screen
- * View staking status, stake/unstake, track rewards
- * Inspired by Polkadot.js and Argent staking interfaces
- */
+const SCORE_WEIGHTS = {
+ tiki: 40,
+ citizenship: 30,
+ staking: 30,
+};
+
export default function StakingScreen() {
- const { api, selectedAccount, isApiReady } = usePolkadot();
- const [stakingData, setStakingData] = useState(null);
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
+
const [loading, setLoading] = useState(true);
const [refreshing, setRefreshing] = useState(false);
+ const [processing, setProcessing] = useState(false);
+ const [stakingData, setStakingData] = useState(null);
+
+ // Modal states
const [stakeSheetVisible, setStakeSheetVisible] = useState(false);
const [unstakeSheetVisible, setUnstakeSheetVisible] = useState(false);
+ const [validatorSheetVisible, setValidatorSheetVisible] = useState(false);
+
const [stakeAmount, setStakeAmount] = useState('');
const [unstakeAmount, setUnstakeAmount] = useState('');
- const [processing, setProcessing] = useState(false);
- const fetchStakingData = React.useCallback(async () => {
+ const fetchStakingData = useCallback(async () => {
try {
- setLoading(true);
+ if (!refreshing) setLoading(true);
- if (!api || !selectedAccount) return;
+ if (!api || !selectedAccount || !isApiReady) return;
- // Get staking info from chain
- const stakingInfo = await api.query.staking?.ledger(selectedAccount.address);
+ // 1. Get Staking Info
+ const stakingInfo = await getStakingInfo(api, selectedAccount.address);
+
+ // 2. Get Scores
+ const scores = await getAllScores(api, selectedAccount.address);
- let stakedAmount = '0';
- let unbondingAmount = '0';
+ // 3. Get Current Era
+ const currentEraOpt = await api.query.staking.currentEra();
+ const currentEra = currentEraOpt.unwrapOrDefault().toNumber();
- if (stakingInfo && stakingInfo.isSome) {
- const ledger = stakingInfo.unwrap();
- stakedAmount = ledger.active.toString();
+ // Calculations
+ const stakedAmount = stakingInfo.bonded;
+ const unbondingAmount = stakingInfo.unlocking.reduce(
+ (acc, chunk) => acc + parseFloat(formatBalance(chunk.amount, 12)),
+ 0
+ ).toString(); // Keep as string for now to match UI expectations if needed, or re-format
- // Calculate unbonding
- if (ledger.unlocking && ledger.unlocking.length > 0) {
- unbondingAmount = ledger.unlocking
- .reduce((sum: bigint, unlock: { value: { toString: () => string } }) => sum + BigInt(unlock.value.toString()), BigInt(0))
- .toString();
- }
- }
+ // Estimate Monthly Reward (Simplified)
+ // 15% APY Base + Score Bonus (up to 5% extra)
+ const baseAPY = 0.15;
+ const scoreBonus = (scores.totalScore / 1000) * 0.05; // Example logic
+ const totalAPY = baseAPY + scoreBonus;
+
+ const stakedNum = parseFloat(stakedAmount);
+ const monthlyReward = stakedNum > 0
+ ? ((stakedNum * totalAPY) / 12).toFixed(2)
+ : '0.00';
+
+ const estimatedAPY = (totalAPY * 100).toFixed(2);
- // Get user's tiki roles
- const tikis = await fetchUserTikis(api, selectedAccount.address);
- const tikiScore = calculateTikiScore(tikis);
-
- // Get citizenship status score
- const citizenStatus = await api.query.identityKyc?.kycStatus(selectedAccount.address);
- const citizenshipScore = citizenStatus && !citizenStatus.isEmpty ? 100 : 0;
-
- // Calculate weighted score
- const weightedScore = calculateWeightedScore(
- tikiScore,
- citizenshipScore,
- 0 // NFT score (would need to query NFT ownership)
- );
-
- // Calculate monthly reward
- const monthlyReward = calculateMonthlyPEZReward(weightedScore);
-
- // Get total rewards (would need historical data)
- const totalRewards = '0'; // Placeholder
-
- // Estimated APY (simplified calculation)
- const stakedAmountNum = parseFloat(formatBalance(stakedAmount, 12));
- const monthlyRewardNum = monthlyReward;
- const yearlyReward = monthlyRewardNum * 12;
- const estimatedAPY = stakedAmountNum > 0
- ? ((yearlyReward / stakedAmountNum) * 100).toFixed(2)
- : '0';
+ // Unlocking Chunks
+ const unlocking = stakingInfo.unlocking.map(u => ({
+ amount: u.amount,
+ era: u.era,
+ blocksRemaining: u.blocksRemaining
+ }));
setStakingData({
- stakedAmount,
- unbondingAmount,
- totalRewards,
- monthlyReward: monthlyReward.toFixed(2),
- tikiScore,
- weightedScore,
+ stakedAmount: stakedAmount,
+ unbondingAmount: unbondingAmount, // This might need formatting depending on formatBalance output
+ monthlyReward,
+ tikiScore: scores.tikiScore,
+ stakingScore: scores.stakingScore,
+ weightedScore: scores.totalScore, // Using total score as weighted score
estimatedAPY,
+ unlocking,
+ currentEra
});
+
} catch (error) {
if (__DEV__) console.error('Error fetching staking data:', error);
Alert.alert('Error', 'Failed to load staking data');
@@ -121,11 +119,11 @@ export default function StakingScreen() {
setLoading(false);
setRefreshing(false);
}
- }, [api, selectedAccount]);
+ }, [api, selectedAccount, isApiReady, refreshing]);
useEffect(() => {
if (isApiReady && selectedAccount) {
- void fetchStakingData();
+ fetchStakingData();
}
}, [isApiReady, selectedAccount, fetchStakingData]);
@@ -137,14 +135,18 @@ export default function StakingScreen() {
try {
setProcessing(true);
-
if (!api || !selectedAccount) return;
- // Convert amount to planck (smallest unit)
+ // Convert amount to planck
const amountPlanck = BigInt(Math.floor(parseFloat(stakeAmount) * 1e12));
- // Bond tokens
- const tx = api.tx.staking.bond(amountPlanck.toString(), 'Staked');
+ // Bond tokens (or bond_extra if already bonding)
+ // For simplicity, using bond_extra if already bonded, otherwise bond
+ // But UI should handle controller/stash logic. Assuming simple setup.
+ // This part is simplified.
+
+ const tx = api.tx.staking.bondExtra(amountPlanck);
+
await tx.signAndSend(selectedAccount.address, ({ status }) => {
if (status.isInBlock) {
Alert.alert('Success', `Successfully staked ${stakeAmount} HEZ!`);
@@ -169,18 +171,16 @@ export default function StakingScreen() {
try {
setProcessing(true);
-
if (!api || !selectedAccount) return;
const amountPlanck = BigInt(Math.floor(parseFloat(unstakeAmount) * 1e12));
- // Unbond tokens
- const tx = api.tx.staking.unbond(amountPlanck.toString());
+ const tx = api.tx.staking.unbond(amountPlanck);
await tx.signAndSend(selectedAccount.address, ({ status }) => {
if (status.isInBlock) {
Alert.alert(
'Success',
- `Successfully initiated unstaking of ${unstakeAmount} HEZ!\n\nTokens will be available after the unbonding period (28 eras / ~28 days).`
+ `Successfully initiated unstaking of ${unstakeAmount} HEZ!\n\nTokens will be available after unbonding period.`
);
setUnstakeSheetVisible(false);
setUnstakeAmount('');
@@ -194,14 +194,63 @@ export default function StakingScreen() {
setProcessing(false);
}
};
+
+ const handleWithdrawUnbonded = async () => {
+ try {
+ setProcessing(true);
+ if (!api || !selectedAccount) return;
+
+ // Withdraw all available unbonded funds
+ // num_slashing_spans is usually 0 for simple stakers
+ const tx = api.tx.staking.withdrawUnbonded(0);
+ await tx.signAndSend(selectedAccount.address, ({ status }) => {
+ if (status.isInBlock) {
+ Alert.alert('Success', 'Successfully withdrawn unbonded tokens!');
+ fetchStakingData();
+ }
+ });
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Withdraw error:', error);
+ Alert.alert('Error', error instanceof Error ? error.message : 'Failed to withdraw tokens');
+ } finally {
+ setProcessing(false);
+ }
+ };
+
+ const handleNominateValidators = async (validators: string[]) => {
+ if (!validators || validators.length === 0) {
+ Alert.alert('Error', 'Please select at least one validator.');
+ return;
+ }
+ if (!api || !selectedAccount) return;
+
+ setProcessing(true);
+ try {
+ const tx = api.tx.staking.nominate(validators);
+ await tx.signAndSend(selectedAccount.address, ({ status }) => {
+ if (status.isInBlock) {
+ Alert.alert('Success', 'Nomination transaction sent!');
+ setValidatorSheetVisible(false);
+ fetchStakingData();
+ }
+ });
+ } catch (error: unknown) {
+ if (__DEV__) console.error('Nomination error:', error);
+ Alert.alert('Error', error instanceof Error ? error.message : 'Failed to nominate validators.');
+ } finally {
+ setProcessing(false);
+ }
+ };
if (loading && !stakingData) {
return (
-
-
-
-
-
+
+
+
+
+
+
+
);
}
@@ -209,7 +258,7 @@ export default function StakingScreen() {
return (
- Failed to load staking data
+ No staking data available
@@ -231,10 +280,10 @@ export default function StakingScreen() {
Total Staked
- {formatBalance(stakingData.stakedAmount, 12)} HEZ
+ {stakingData.stakedAmount} HEZ
- ≈ ${(parseFloat(formatBalance(stakingData.stakedAmount, 12)) * 0.15).toFixed(2)} USD
+ ≈ ${(parseFloat(stakingData.stakedAmount) * 0.15).toFixed(2)} USD
@@ -253,7 +302,7 @@ export default function StakingScreen() {
{/* Score Card */}
- Your Staking Score
+ Your Total Score
@@ -263,26 +312,59 @@ export default function StakingScreen() {
weight={SCORE_WEIGHTS.tiki}
/>
- Higher score = Higher monthly PEZ rewards
+ Higher score = Higher rewards & voting power
{/* Unbonding Card */}
- {parseFloat(formatBalance(stakingData.unbondingAmount, 12)) > 0 && (
+ {(parseFloat(stakingData.unbondingAmount) > 0 || stakingData.unlocking.length > 0) && (
- Unbonding
-
- {formatBalance(stakingData.unbondingAmount, 12)} HEZ
-
-
- Available after unbonding period (~28 days)
-
+
+ Unbonding
+
+ {stakingData.unbondingAmount} HEZ
+
+
+
+
+ {stakingData.unlocking.map((chunk, index) => {
+ const remainingEras = Math.max(0, chunk.era - stakingData.currentEra);
+ const isReady = remainingEras === 0;
+
+ return (
+
+
+
+ {formatBalance(chunk.amount, 12)} HEZ
+
+
+ {isReady ? 'Ready to withdraw' : `Available in ~${remainingEras} eras`}
+
+
+ {isReady && (
+
+ )}
+
+ );
+ })}
+
+
+ {stakingData.unlocking.some(chunk => chunk.era <= stakingData.currentEra) && (
+
+ )}
)}
@@ -300,6 +382,12 @@ export default function StakingScreen() {
variant="outline"
fullWidth
/>
+ setValidatorSheetVisible(true)}
+ variant="secondary"
+ fullWidth
+ />
{/* Info Card */}
@@ -359,6 +447,13 @@ export default function StakingScreen() {
style={{ marginTop: 16 }}
/>
+
+ {/* Validator Selection Bottom Sheet */}
+ setValidatorSheetVisible(false)}
+ onConfirmNominations={handleNominateValidators}
+ />
);
}
@@ -486,18 +581,38 @@ const styles = StyleSheet.create({
marginBottom: 16,
backgroundColor: `${KurdistanColors.zer}10`,
},
+ unbondingHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'baseline',
+ marginBottom: 12,
+ },
unbondingTitle: {
fontSize: 14,
color: AppColors.textSecondary,
- marginBottom: 4,
},
- unbondingAmount: {
- fontSize: 24,
+ unbondingTotal: {
+ fontSize: 20,
fontWeight: '700',
color: AppColors.text,
- marginBottom: 4,
},
- unbondingNote: {
+ chunksList: {
+ gap: 8,
+ },
+ chunkItem: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: 10,
+ backgroundColor: 'rgba(255, 255, 255, 0.5)',
+ borderRadius: 8,
+ },
+ chunkAmount: {
+ fontSize: 15,
+ fontWeight: '600',
+ color: AppColors.text,
+ },
+ chunkRemaining: {
fontSize: 12,
color: AppColors.textSecondary,
},
@@ -527,4 +642,4 @@ const styles = StyleSheet.create({
backgroundColor: `${KurdistanColors.sor}10`,
borderRadius: 8,
},
-});
+});
\ No newline at end of file
diff --git a/mobile/src/screens/SwapScreen.tsx b/mobile/src/screens/SwapScreen.tsx
index fac04aa3..2ce64d26 100644
--- a/mobile/src/screens/SwapScreen.tsx
+++ b/mobile/src/screens/SwapScreen.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useCallback } from 'react';
+import React, { useState, useEffect, useMemo } from 'react';
import {
View,
Text,
@@ -7,682 +7,477 @@ import {
ScrollView,
TouchableOpacity,
TextInput,
+ Modal,
ActivityIndicator,
Alert,
- Modal,
+ Platform,
+ Image,
} from 'react-native';
-import { useTranslation } from 'react-i18next';
-import { usePolkadot } from '../contexts/PolkadotContext';
-import { TokenSelector, Token } from '../components/TokenSelector';
-import { Button, Card } from '../components';
-import { KurdistanColors, AppColors } from '../theme/colors';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
-// Import shared utilities
-import {
- formatTokenBalance,
- parseTokenInput,
- calculatePriceImpact,
- getAmountOut,
- calculateMinAmount,
-} from '../../../shared/utils/dex';
+// Token Images
+const hezLogo = require('../../../shared/images/hez_logo.png');
+const pezLogo = require('../../../shared/images/pez_logo.jpg');
+const usdtLogo = require('../../../shared/images/USDT(hez)logo.png');
-interface SwapState {
- fromToken: Token | null;
- toToken: Token | null;
- fromAmount: string;
- toAmount: string;
- slippage: number;
- loading: boolean;
- swapping: boolean;
+interface TokenInfo {
+ symbol: string;
+ name: string;
+ assetId: number;
+ decimals: number;
+ logo: any;
}
-// Available tokens for swapping
-const AVAILABLE_TOKENS: Token[] = [
- { symbol: 'HEZ', name: 'Pezkuwi Native', decimals: 12 },
- { symbol: 'wHEZ', name: 'Wrapped HEZ', assetId: 0, decimals: 12 },
- { symbol: 'PEZ', name: 'Pezkuwi Token', assetId: 1, decimals: 12 },
- { symbol: 'wUSDT', name: 'Wrapped USDT', assetId: 2, decimals: 6 },
+const TOKENS: TokenInfo[] = [
+ { symbol: 'HEZ', name: 'Hemuwelet', assetId: 0, decimals: 12, logo: hezLogo },
+ { symbol: 'PEZ', name: 'Pezkunel', assetId: 1, decimals: 12, logo: pezLogo },
+ { symbol: 'USDT', name: 'Tether USD', assetId: 1000, decimals: 6, logo: usdtLogo },
];
+type TransactionStatus = 'idle' | 'signing' | 'submitting' | 'success' | 'error';
+
const SwapScreen: React.FC = () => {
- const { t: _t } = useTranslation();
- const { api, isApiReady, selectedAccount, getKeyPair } = usePolkadot();
+ const { api, isApiReady, selectedAccount, getKeyPair } = usePezkuwi();
- const [state, setState] = useState({
- fromToken: null,
- toToken: null,
- fromAmount: '',
- toAmount: '',
- slippage: 1, // 1% default slippage
- loading: false,
- swapping: false,
- });
+ const [fromToken, setFromToken] = useState(TOKENS[0]);
+ const [toToken, setToToken] = useState(TOKENS[1]);
+ const [fromAmount, setFromAmount] = useState('');
+ const [toAmount, setToAmount] = useState('');
+ const [slippage, setSlippage] = useState(0.5); // 0.5% default
- const [balances, setBalances] = useState<{ [key: string]: string }>({});
- const [poolReserves, setPoolReserves] = useState<{
- reserve1: string;
- reserve2: string;
- } | null>(null);
- const [priceImpact, setPriceImpact] = useState('0');
- const [settingsModalVisible, setSettingsModalVisible] = useState(false);
- const [tempSlippage, setTempSlippage] = useState('1');
+ const [fromBalance, setFromBalance] = useState('0');
+ const [toBalance, setToBalance] = useState('0');
- // Fetch user balances for all tokens
- const fetchBalances = useCallback(async () => {
- if (!api || !isApiReady || !selectedAccount) return;
+ const [txStatus, setTxStatus] = useState('idle');
+ const [errorMessage, setErrorMessage] = useState('');
+
+ const [showTokenSelector, setShowTokenSelector] = useState<'from' | 'to' | null>(null);
+ const [showSettings, setShowSettings] = useState(false);
+ const [showConfirm, setShowConfirm] = useState(false);
+
+ // Fetch balances
+ useEffect(() => {
+ const fetchBalances = async () => {
+ if (!api || !isApiReady || !selectedAccount) return;
+
+ // Fetch From Token Balance
+ try {
+ if (fromToken.symbol === 'HEZ') {
+ const accountInfo = await api.query.system.account(selectedAccount.address);
+ setFromBalance(accountInfo.data.free.toString());
+ } else {
+ const balanceData = await api.query.assets.account(fromToken.assetId, selectedAccount.address);
+ setFromBalance(balanceData.isSome ? balanceData.unwrap().balance.toString() : '0');
+ }
+ } catch (error) {
+ console.error('Failed to fetch from balance:', error);
+ setFromBalance('0');
+ }
+
+ // Fetch To Token Balance
+ try {
+ if (toToken.symbol === 'HEZ') {
+ const accountInfo = await api.query.system.account(selectedAccount.address);
+ setToBalance(accountInfo.data.free.toString());
+ } else {
+ const balanceData = await api.query.assets.account(toToken.assetId, selectedAccount.address);
+ setToBalance(balanceData.isSome ? balanceData.unwrap().balance.toString() : '0');
+ }
+ } catch (error) {
+ console.error('Failed to fetch to balance:', error);
+ setToBalance('0');
+ }
+ };
+
+ fetchBalances();
+ }, [api, isApiReady, selectedAccount, fromToken, toToken]);
+
+ // Calculate output amount (simple 1:1 for now - should use pool reserves)
+ useEffect(() => {
+ if (!fromAmount || parseFloat(fromAmount) <= 0) {
+ setToAmount('');
+ return;
+ }
+
+ // TODO: Implement proper AMM calculation using pool reserves
+ // For now, simple 1:1 conversion (placeholder)
+ const calculatedAmount = (parseFloat(fromAmount) * 0.97).toFixed(6); // 3% fee simulation
+ setToAmount(calculatedAmount);
+ }, [fromAmount, fromToken, toToken]);
+
+ // Calculate formatted balances
+ const fromBalanceFormatted = useMemo(() => {
+ return (Number(fromBalance) / Math.pow(10, fromToken.decimals)).toFixed(4);
+ }, [fromBalance, fromToken]);
+
+ const toBalanceFormatted = useMemo(() => {
+ return (Number(toBalance) / Math.pow(10, toToken.decimals)).toFixed(4);
+ }, [toBalance, toToken]);
+
+ const hasInsufficientBalance = useMemo(() => {
+ const amountNum = parseFloat(fromAmount || '0');
+ const balanceNum = parseFloat(fromBalanceFormatted);
+ return amountNum > 0 && amountNum > balanceNum;
+ }, [fromAmount, fromBalanceFormatted]);
+
+ const handleSwapDirection = () => {
+ const tempToken = fromToken;
+ const tempBalance = fromBalance;
+ const tempAmount = fromAmount;
+
+ setFromToken(toToken);
+ setToToken(tempToken);
+ setFromBalance(toBalance);
+ setToBalance(tempBalance);
+ setFromAmount(toAmount);
+ setToAmount(tempAmount);
+ };
+
+ const handleMaxClick = () => {
+ setFromAmount(fromBalanceFormatted);
+ };
+
+ const handleTokenSelect = (token: TokenInfo) => {
+ if (showTokenSelector === 'from') {
+ if (token.symbol === toToken.symbol) {
+ Alert.alert('Error', 'Cannot select the same token for both sides');
+ return;
+ }
+ setFromToken(token);
+ } else if (showTokenSelector === 'to') {
+ if (token.symbol === fromToken.symbol) {
+ Alert.alert('Error', 'Cannot select the same token for both sides');
+ return;
+ }
+ setToToken(token);
+ }
+ setShowTokenSelector(null);
+ };
+
+ const handleConfirmSwap = async () => {
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet');
+ return;
+ }
+
+ setTxStatus('signing');
+ setShowConfirm(false);
+ setErrorMessage('');
try {
- const newBalances: { [key: string]: string } = {};
+ const keypair = await getKeyPair(selectedAccount.address);
+ if (!keypair) throw new Error('Failed to load keypair');
- // Fetch HEZ (native) balance
- const { data } = await api.query.system.account(selectedAccount.address);
- newBalances.HEZ = formatTokenBalance(data.free.toString(), 12, 4);
+ const amountIn = BigInt(Math.floor(parseFloat(fromAmount) * Math.pow(10, fromToken.decimals)));
+ const minAmountOut = BigInt(
+ Math.floor(parseFloat(toAmount) * (1 - slippage / 100) * Math.pow(10, toToken.decimals))
+ );
- // Fetch asset balances
- for (const token of AVAILABLE_TOKENS) {
- if (token.assetId !== undefined) {
- try {
- const assetData = await api.query.assets.account(
- token.assetId,
- selectedAccount.address
- );
+ let tx;
- if (assetData.isSome) {
- const balance = assetData.unwrap().balance.toString();
- newBalances[token.symbol] = formatTokenBalance(
- balance,
- token.decimals,
- 4
- );
- } else {
- newBalances[token.symbol] = '0.0000';
- }
- } catch {
- if (__DEV__) console.warn(`No balance for ${token.symbol}`);
- newBalances[token.symbol] = '0.0000';
+ if (fromToken.symbol === 'HEZ' && toToken.symbol === 'PEZ') {
+ // HEZ → PEZ: wrap(HEZ→wHEZ) then swap(wHEZ→PEZ)
+ const wrapTx = api.tx.tokenWrapper.wrap(amountIn.toString());
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [0, 1], // wHEZ → PEZ
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ tx = api.tx.utility.batchAll([wrapTx, swapTx]);
+
+ } else if (fromToken.symbol === 'PEZ' && toToken.symbol === 'HEZ') {
+ // PEZ → HEZ: swap(PEZ→wHEZ) then unwrap(wHEZ→HEZ)
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [1, 0], // PEZ → wHEZ
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ const unwrapTx = api.tx.tokenWrapper.unwrap(minAmountOut.toString());
+ tx = api.tx.utility.batchAll([swapTx, unwrapTx]);
+
+ } else if (fromToken.symbol === 'HEZ') {
+ // HEZ → Any Asset: wrap(HEZ→wHEZ) then swap(wHEZ→Asset)
+ const wrapTx = api.tx.tokenWrapper.wrap(amountIn.toString());
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [0, toToken.assetId],
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ tx = api.tx.utility.batchAll([wrapTx, swapTx]);
+
+ } else if (toToken.symbol === 'HEZ') {
+ // Any Asset → HEZ: swap(Asset→wHEZ) then unwrap(wHEZ→HEZ)
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [fromToken.assetId, 0],
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ const unwrapTx = api.tx.tokenWrapper.unwrap(minAmountOut.toString());
+ tx = api.tx.utility.batchAll([swapTx, unwrapTx]);
+
+ } else {
+ // Direct swap between assets (PEZ ↔ USDT, etc.)
+ tx = api.tx.assetConversion.swapExactTokensForTokens(
+ [fromToken.assetId, toToken.assetId],
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ }
+
+ setTxStatus('submitting');
+
+ await tx.signAndSend(keypair, ({ status, dispatchError }) => {
+ if (status.isInBlock) {
+ if (dispatchError) {
+ const errorMsg = dispatchError.toString();
+ setErrorMessage(errorMsg);
+ setTxStatus('error');
+ Alert.alert('Transaction Failed', errorMsg);
+ } else {
+ setTxStatus('success');
+ Alert.alert('Success!', `Swapped ${fromAmount} ${fromToken.symbol} for ~${toAmount} ${toToken.symbol}`);
+ setTimeout(() => {
+ setFromAmount('');
+ setToAmount('');
+ setTxStatus('idle');
+ }, 2000);
}
}
- }
-
- setBalances(newBalances);
- } catch (error) {
- if (__DEV__) console.error('Failed to fetch balances:', error);
- }
- }, [api, isApiReady, selectedAccount]);
-
- // Fetch pool reserves
- const fetchPoolReserves = useCallback(async () => {
- if (
- !api ||
- !isApiReady ||
- !state.fromToken ||
- !state.toToken ||
- state.fromToken.assetId === undefined ||
- state.toToken.assetId === undefined
- ) {
- return;
- }
-
- try {
- setState((prev) => ({ ...prev, loading: true }));
-
- // Get pool account
- const poolAccount = await api.query.assetConversion.pools([
- state.fromToken.assetId,
- state.toToken.assetId,
- ]);
-
- if (poolAccount.isNone) {
- Alert.alert('Pool Not Found', 'No liquidity pool exists for this pair.');
- setPoolReserves(null);
- setState((prev) => ({ ...prev, loading: false }));
- return;
- }
-
- // Get reserves
- const reserve1Data = await api.query.assets.account(
- state.fromToken.assetId,
- poolAccount.unwrap()
- );
- const reserve2Data = await api.query.assets.account(
- state.toToken.assetId,
- poolAccount.unwrap()
- );
-
- const reserve1 = reserve1Data.isSome
- ? reserve1Data.unwrap().balance.toString()
- : '0';
- const reserve2 = reserve2Data.isSome
- ? reserve2Data.unwrap().balance.toString()
- : '0';
-
- setPoolReserves({ reserve1, reserve2 });
- setState((prev) => ({ ...prev, loading: false }));
- } catch (error) {
- if (__DEV__) console.error('Failed to fetch pool reserves:', error);
- Alert.alert('Error', 'Failed to fetch pool information.');
- setState((prev) => ({ ...prev, loading: false }));
- }
- }, [api, isApiReady, state.fromToken, state.toToken]);
-
- // Calculate output amount when input changes
- useEffect(() => {
- if (
- !state.fromAmount ||
- !state.fromToken ||
- !state.toToken ||
- !poolReserves
- ) {
- setState((prev) => ({ ...prev, toAmount: '' }));
- setPriceImpact('0');
- return;
- }
-
- try {
- const fromAmountRaw = parseTokenInput(
- state.fromAmount,
- state.fromToken.decimals
- );
-
- if (fromAmountRaw === '0') {
- setState((prev) => ({ ...prev, toAmount: '' }));
- setPriceImpact('0');
- return;
- }
-
- // Calculate output amount
- const toAmountRaw = getAmountOut(
- fromAmountRaw,
- poolReserves.reserve1,
- poolReserves.reserve2,
- 30 // 0.3% fee
- );
-
- const toAmountFormatted = formatTokenBalance(
- toAmountRaw,
- state.toToken.decimals,
- 6
- );
-
- // Calculate price impact
- const impact = calculatePriceImpact(
- poolReserves.reserve1,
- poolReserves.reserve2,
- fromAmountRaw
- );
-
- setState((prev) => ({ ...prev, toAmount: toAmountFormatted }));
- setPriceImpact(impact);
- } catch (error) {
- if (__DEV__) console.error('Calculation error:', error);
- setState((prev) => ({ ...prev, toAmount: '' }));
- }
- }, [state.fromAmount, state.fromToken, state.toToken, poolReserves]);
-
- // Load balances on mount
- useEffect(() => {
- fetchBalances();
- }, [fetchBalances]);
-
- // Load pool reserves when tokens change
- useEffect(() => {
- if (state.fromToken && state.toToken) {
- fetchPoolReserves();
- }
- }, [state.fromToken, state.toToken, fetchPoolReserves]);
-
- // Handle token selection
- const handleFromTokenSelect = (token: Token) => {
- // Prevent selecting same token
- if (state.toToken && token.symbol === state.toToken.symbol) {
- setState((prev) => ({
- ...prev,
- fromToken: token,
- toToken: null,
- fromAmount: '',
- toAmount: '',
- }));
- } else {
- setState((prev) => ({
- ...prev,
- fromToken: token,
- fromAmount: '',
- toAmount: '',
- }));
- }
- };
-
- const handleToTokenSelect = (token: Token) => {
- // Prevent selecting same token
- if (state.fromToken && token.symbol === state.fromToken.symbol) {
- setState((prev) => ({
- ...prev,
- toToken: token,
- fromToken: null,
- fromAmount: '',
- toAmount: '',
- }));
- } else {
- setState((prev) => ({
- ...prev,
- toToken: token,
- fromAmount: '',
- toAmount: '',
- }));
- }
- };
-
- // Swap token positions
- const handleSwapTokens = () => {
- setState((prev) => ({
- ...prev,
- fromToken: prev.toToken,
- toToken: prev.fromToken,
- fromAmount: prev.toAmount,
- toAmount: prev.fromAmount,
- }));
- };
-
- // Execute swap
- const handleSwap = async () => {
- if (
- !api ||
- !isApiReady ||
- !selectedAccount ||
- !state.fromToken ||
- !state.toToken ||
- !state.fromAmount ||
- !state.toAmount ||
- state.fromToken.assetId === undefined ||
- state.toToken.assetId === undefined
- ) {
- Alert.alert('Error', 'Please fill in all fields.');
- return;
- }
-
- try {
- setState((prev) => ({ ...prev, swapping: true }));
-
- // Get keypair for signing
- const keyPair = await getKeyPair(selectedAccount.address);
- if (!keyPair) {
- throw new Error('Failed to load keypair');
- }
-
- // Parse amounts
- const amountIn = parseTokenInput(
- state.fromAmount,
- state.fromToken.decimals
- );
- const amountOutExpected = parseTokenInput(
- state.toAmount,
- state.toToken.decimals
- );
- const amountOutMin = calculateMinAmount(
- amountOutExpected,
- state.slippage
- );
-
- // Create swap path
- const path = [state.fromToken.assetId, state.toToken.assetId];
-
- if (__DEV__) {
- if (__DEV__) console.warn('Swap params:', {
- path,
- amountIn,
- amountOutMin,
- slippage: state.slippage,
- });
- }
-
- // Create transaction
- const tx = api.tx.assetConversion.swapTokensForExactTokens(
- path,
- amountOutMin,
- amountIn,
- selectedAccount.address,
- false // keep_alive
- );
-
- // Sign and send
- await new Promise((resolve, reject) => {
- let unsub: (() => void) | undefined;
-
- tx.signAndSend(keyPair, ({ status, events: _events, dispatchError }) => {
- if (__DEV__) console.warn('Transaction status:', status.type);
-
- if (dispatchError) {
- if (dispatchError.isModule) {
- const decoded = api.registry.findMetaError(
- dispatchError.asModule
- );
- reject(
- new Error(`${decoded.section}.${decoded.name}: ${decoded.docs}`)
- );
- } else {
- reject(new Error(dispatchError.toString()));
- }
- if (unsub) unsub();
- return;
- }
-
- if (status.isInBlock || status.isFinalized) {
- if (__DEV__) console.warn('Transaction included in block');
- resolve();
- if (unsub) unsub();
- }
- })
- .then((unsubscribe) => {
- unsub = unsubscribe;
- })
- .catch(reject);
});
-
- // Success!
- Alert.alert(
- 'Swap Successful',
- `Swapped ${state.fromAmount} ${state.fromToken.symbol} for ${state.toAmount} ${state.toToken.symbol}`,
- [
- {
- text: 'OK',
- onPress: () => {
- // Reset form
- setState((prev) => ({
- ...prev,
- fromAmount: '',
- toAmount: '',
- swapping: false,
- }));
- // Refresh balances
- fetchBalances();
- },
- },
- ]
- );
- } catch (error: unknown) {
- if (__DEV__) console.error('Swap failed:', error);
- Alert.alert('Swap Failed', error instanceof Error ? error.message : 'An error occurred.');
- setState((prev) => ({ ...prev, swapping: false }));
+ } catch (error: any) {
+ console.error('Swap failed:', error);
+ setErrorMessage(error.message || 'Transaction failed');
+ setTxStatus('error');
+ Alert.alert('Error', error.message || 'Swap transaction failed');
}
};
- // Save slippage settings
- const handleSaveSettings = () => {
- const slippageValue = parseFloat(tempSlippage);
- if (isNaN(slippageValue) || slippageValue < 0.1 || slippageValue > 50) {
- Alert.alert('Invalid Slippage', 'Please enter a value between 0.1% and 50%');
- return;
- }
- setState((prev) => ({ ...prev, slippage: slippageValue }));
- setSettingsModalVisible(false);
- };
-
- const availableFromTokens = AVAILABLE_TOKENS.map((token) => ({
- ...token,
- balance: balances[token.symbol] || '0.0000',
- }));
-
- const availableToTokens = AVAILABLE_TOKENS.filter(
- (token) => token.symbol !== state.fromToken?.symbol
- ).map((token) => ({
- ...token,
- balance: balances[token.symbol] || '0.0000',
- }));
-
- const canSwap =
- !state.swapping &&
- !state.loading &&
- state.fromToken &&
- state.toToken &&
- state.fromAmount &&
- state.toAmount &&
- parseFloat(state.fromAmount) > 0 &&
- selectedAccount;
-
- const impactLevel =
- parseFloat(priceImpact) < 1
- ? 'low'
- : parseFloat(priceImpact) < 3
- ? 'medium'
- : 'high';
+ if (!selectedAccount) {
+ return (
+
+
+ 💱
+ Connect your wallet to swap tokens
+
+
+ );
+ }
return (
-
+ {/* Transaction Loading Overlay */}
+ {(txStatus === 'signing' || txStatus === 'submitting') && (
+
+
+
+
+ {txStatus === 'signing' ? 'Waiting for signature...' : 'Processing swap...'}
+
+
+
+ )}
+
+
{/* Header */}
- Swap Tokens
- {
- setTempSlippage(state.slippage.toString());
- setSettingsModalVisible(true);
- }}
- >
+ Swap Tokens
+ setShowSettings(true)} style={styles.settingsButton}>
⚙️
- {!isApiReady && (
-
- Connecting to blockchain...
-
- )}
-
- {!selectedAccount && (
-
- Please connect your wallet
-
- )}
-
- {/* Swap Card */}
-
- {/* From Token */}
-
-
+ {/* From Token Card */}
+
+
+ From
+
+ Balance: {fromBalanceFormatted} {fromToken.symbol}
+
+
+
- setState((prev) => ({ ...prev, fromAmount: text }))
- }
- placeholder="0.00"
+ placeholder="0.0"
+ placeholderTextColor="#999"
keyboardType="decimal-pad"
- editable={!state.loading && !state.swapping}
+ value={fromAmount}
+ onChangeText={setFromAmount}
/>
-
- {state.fromToken && (
-
- Balance: {balances[state.fromToken.symbol] || '0.0000'}{' '}
- {state.fromToken.symbol}
-
- )}
+ setShowTokenSelector('from')}
+ >
+
+ {fromToken.symbol}
+ ▼
+
- {/* Swap Button */}
-
-
- ⇅
-
+
+ MAX
+
- {/* To Token */}
-
-
+ {/* Swap Direction Button */}
+
+
+ ⇅
+
+
+ {/* To Token Card */}
+
+
+ To
+
+ Balance: {toBalanceFormatted} {toToken.symbol}
+
+
+
+
-
- {state.toToken && (
-
- Balance: {balances[state.toToken.symbol] || '0.0000'}{' '}
- {state.toToken.symbol}
-
- )}
+ setShowTokenSelector('to')}
+ >
+
+ {toToken.symbol}
+ ▼
+
-
+
{/* Swap Details */}
- {state.fromToken && state.toToken && state.toAmount && (
-
- Swap Details
+
+
+ ℹ️ Exchange Rate
+ 1 {fromToken.symbol} ≈ 1 {toToken.symbol}
+
+
+ Slippage Tolerance
+ {slippage}%
+
+
-
- Price Impact
-
- {priceImpact}%
-
-
-
-
- Slippage Tolerance
- {state.slippage}%
-
-
-
- Minimum Received
-
- {formatTokenBalance(
- calculateMinAmount(
- parseTokenInput(state.toAmount, state.toToken.decimals),
- state.slippage
- ),
- state.toToken.decimals,
- 6
- )}{' '}
- {state.toToken.symbol}
-
-
-
-
- Fee (0.3%)
-
- {formatTokenBalance(
- (
- BigInt(
- parseTokenInput(state.fromAmount, state.fromToken.decimals)
- ) *
- BigInt(30) /
- BigInt(10000)
- ).toString(),
- state.fromToken.decimals,
- 6
- )}{' '}
- {state.fromToken.symbol}
-
-
-
+ {/* Warnings */}
+ {hasInsufficientBalance && (
+
+ ⚠️
+ Insufficient {fromToken.symbol} balance
+
)}
{/* Swap Button */}
- setShowConfirm(true)}
+ disabled={!fromAmount || hasInsufficientBalance || txStatus !== 'idle'}
>
- {state.swapping ? (
-
- ) : state.loading ? (
- 'Loading...'
- ) : !selectedAccount ? (
- 'Connect Wallet'
- ) : !state.fromToken || !state.toToken ? (
- 'Select Tokens'
- ) : !state.fromAmount ? (
- 'Enter Amount'
- ) : (
- 'Swap'
- )}
-
+
+ {hasInsufficientBalance
+ ? `Insufficient ${fromToken.symbol} Balance`
+ : 'Swap Tokens'}
+
+
+ {/* Token Selector Modal */}
+ setShowTokenSelector(null)}>
+
+
+ Select Token
+ {TOKENS.map((token) => (
+ handleTokenSelect(token)}
+ >
+
+
+ {token.symbol}
+ {token.name}
+
+
+ ))}
+ setShowTokenSelector(null)}>
+ Cancel
+
+
+
+
+
{/* Settings Modal */}
- setSettingsModalVisible(false)}
- >
-
-
- Swap Settings
-
- Slippage Tolerance (%)
-
-
-
- {['0.5', '1.0', '2.0', '5.0'].map((value) => (
+ setShowSettings(false)}>
+
+
+ Swap Settings
+ Slippage Tolerance
+
+ {[0.1, 0.5, 1.0, 2.0].map((val) => (
setTempSlippage(value)}
+ key={val}
+ style={[styles.slippageButton, slippage === val && styles.slippageButtonActive]}
+ onPress={() => setSlippage(val)}
>
-
- {value}%
+
+ {val}%
))}
+ setShowSettings(false)}>
+ Close
+
+
+
+
-
- setSettingsModalVisible(false)}
- >
- Cancel
+ {/* Confirm Modal */}
+ setShowConfirm(false)}>
+
+
+ Confirm Swap
+
+
+ You Pay
+ {fromAmount} {fromToken.symbol}
+
+
+ You Receive
+ {toAmount} {toToken.symbol}
+
+
+ Slippage
+ {slippage}%
+
+
+
+ setShowConfirm(false)}>
+ Cancel
-
-
- Save
+
+ Confirm Swap
@@ -695,12 +490,27 @@ const SwapScreen: React.FC = () => {
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: AppColors.background,
+ backgroundColor: '#F8F9FA',
},
- scrollView: {
+ centerContent: {
flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 40,
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
},
scrollContent: {
+ flex: 1,
+ },
+ scrollContentContainer: {
padding: 16,
},
header: {
@@ -709,88 +519,124 @@ const styles = StyleSheet.create({
alignItems: 'center',
marginBottom: 20,
},
- title: {
- fontSize: 28,
- fontWeight: '700',
- color: '#000',
+ headerTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: '#333',
},
settingsButton: {
- padding: 8,
- },
- settingsIcon: {
- fontSize: 24,
- },
- warningCard: {
- padding: 16,
- marginBottom: 16,
- backgroundColor: '#FFF3CD',
- borderColor: '#FFE69C',
- },
- warningText: {
- fontSize: 14,
- color: '#856404',
- textAlign: 'center',
- },
- swapCard: {
- padding: 20,
- marginBottom: 16,
- },
- swapSection: {
- marginBottom: 8,
- },
- amountInput: {
- fontSize: 32,
- fontWeight: '700',
- color: '#000',
- padding: 16,
- backgroundColor: '#F5F5F5',
- borderRadius: 12,
- marginTop: 8,
- borderWidth: 1,
- borderColor: '#E0E0E0',
- },
- disabledInput: {
- opacity: 0.6,
- },
- balanceText: {
- fontSize: 12,
- color: '#666',
- marginTop: 4,
- textAlign: 'right',
- },
- swapIconContainer: {
- alignItems: 'center',
- marginVertical: 8,
- },
- swapIcon: {
width: 40,
height: 40,
borderRadius: 20,
- backgroundColor: KurdistanColors.kesk,
+ backgroundColor: '#F5F5F5',
justifyContent: 'center',
alignItems: 'center',
},
- swapIconText: {
+ settingsIcon: {
+ fontSize: 20,
+ },
+ tokenCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 8,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ tokenCardHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ },
+ tokenCardLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ tokenCardBalance: {
+ fontSize: 12,
+ color: '#999',
+ },
+ tokenInputRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 12,
+ },
+ amountInput: {
+ flex: 1,
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ padding: 0,
+ },
+ tokenSelector: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#F5F5F5',
+ paddingHorizontal: 12,
+ paddingVertical: 8,
+ borderRadius: 12,
+ gap: 8,
+ },
+ tokenLogo: {
+ width: 24,
+ height: 24,
+ },
+ tokenSymbol: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ tokenSelectorArrow: {
+ fontSize: 10,
+ color: '#666',
+ },
+ maxButton: {
+ alignSelf: 'flex-start',
+ marginTop: 8,
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderRadius: 8,
+ borderWidth: 1,
+ borderColor: 'rgba(0, 143, 67, 0.3)',
+ },
+ maxButtonText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ swapDirectionContainer: {
+ alignItems: 'center',
+ marginVertical: -12,
+ zIndex: 10,
+ },
+ swapDirectionButton: {
+ width: 48,
+ height: 48,
+ borderRadius: 24,
+ backgroundColor: '#FFFFFF',
+ borderWidth: 2,
+ borderColor: '#E5E5E5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
+ elevation: 3,
+ },
+ swapDirectionIcon: {
fontSize: 24,
- color: '#FFFFFF',
+ color: '#333',
},
detailsCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
padding: 16,
+ marginTop: 16,
marginBottom: 16,
},
- detailsTitle: {
- fontSize: 16,
- fontWeight: '700',
- color: '#000',
- marginBottom: 12,
- },
detailRow: {
flexDirection: 'row',
justifyContent: 'space-between',
- alignItems: 'center',
paddingVertical: 8,
- borderBottomWidth: 1,
- borderBottomColor: '#F0F0F0',
},
detailLabel: {
fontSize: 14,
@@ -798,102 +644,217 @@ const styles = StyleSheet.create({
},
detailValue: {
fontSize: 14,
+ color: '#333',
+ fontWeight: '500',
+ },
+ detailValueHighlight: {
+ fontSize: 14,
+ color: '#3B82F6',
fontWeight: '600',
- color: '#000',
},
- highImpact: {
- color: KurdistanColors.sor,
+ warningCard: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FEF3C7',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 16,
+ gap: 8,
},
- mediumImpact: {
- color: KurdistanColors.zer,
+ errorCard: {
+ backgroundColor: '#FEE2E2',
+ },
+ warningIcon: {
+ fontSize: 20,
+ },
+ warningText: {
+ flex: 1,
+ fontSize: 14,
+ color: '#991B1B',
},
swapButton: {
- marginTop: 8,
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 16,
+ padding: 18,
+ alignItems: 'center',
+ marginBottom: 20,
},
- modalContainer: {
+ swapButtonDisabled: {
+ backgroundColor: '#CCC',
+ },
+ swapButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ loadingOverlay: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ backgroundColor: 'rgba(0,0,0,0.7)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ zIndex: 1000,
+ },
+ loadingCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 20,
+ padding: 32,
+ alignItems: 'center',
+ gap: 16,
+ },
+ loadingText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ modalOverlay: {
flex: 1,
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
+ backgroundColor: 'rgba(0,0,0,0.5)',
justifyContent: 'center',
alignItems: 'center',
padding: 20,
},
- modalContent: {
+ modalCard: {
backgroundColor: '#FFFFFF',
borderRadius: 20,
padding: 24,
width: '100%',
maxWidth: 400,
},
- modalTitle: {
- fontSize: 20,
- fontWeight: '700',
- color: '#000',
+ modalHeader: {
+ fontSize: 22,
+ fontWeight: 'bold',
+ color: '#333',
marginBottom: 20,
- },
- inputLabel: {
- fontSize: 14,
- fontWeight: '600',
- color: '#666',
- marginBottom: 8,
- },
- settingsInput: {
- fontSize: 18,
- padding: 16,
- backgroundColor: '#F5F5F5',
- borderRadius: 12,
- borderWidth: 1,
- borderColor: '#E0E0E0',
- marginBottom: 16,
- },
- presetContainer: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- marginBottom: 24,
- },
- presetButton: {
- flex: 1,
- padding: 12,
- backgroundColor: '#F5F5F5',
- borderRadius: 8,
- borderWidth: 1,
- borderColor: '#E0E0E0',
- marginHorizontal: 4,
- },
- presetButtonActive: {
- backgroundColor: KurdistanColors.kesk,
- borderColor: KurdistanColors.kesk,
- },
- presetText: {
- fontSize: 14,
- fontWeight: '600',
- color: '#666',
textAlign: 'center',
},
- presetTextActive: {
+ tokenOption: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#F8F9FA',
+ marginBottom: 8,
+ gap: 12,
+ },
+ tokenOptionLogo: {
+ width: 40,
+ height: 40,
+ },
+ tokenOptionInfo: {
+ flex: 1,
+ },
+ tokenOptionSymbol: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ tokenOptionName: {
+ fontSize: 12,
+ color: '#666',
+ },
+ modalCloseButton: {
+ backgroundColor: '#EEE',
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 12,
+ },
+ modalCloseButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ settingsLabel: {
+ fontSize: 14,
+ fontWeight: '500',
+ color: '#666',
+ marginBottom: 12,
+ },
+ slippageButtons: {
+ flexDirection: 'row',
+ gap: 8,
+ marginBottom: 20,
+ },
+ slippageButton: {
+ flex: 1,
+ padding: 12,
+ borderRadius: 12,
+ backgroundColor: '#F5F5F5',
+ alignItems: 'center',
+ },
+ slippageButtonActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ slippageButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ slippageButtonTextActive: {
color: '#FFFFFF',
},
- modalButtons: {
+ confirmDetails: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 20,
+ },
+ confirmRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingVertical: 8,
+ },
+ confirmRowBorder: {
+ borderTopWidth: 1,
+ borderTopColor: '#E5E5E5',
+ marginTop: 8,
+ paddingTop: 16,
+ },
+ confirmLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ confirmValue: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ confirmLabelSmall: {
+ fontSize: 12,
+ color: '#999',
+ },
+ confirmValueSmall: {
+ fontSize: 12,
+ color: '#666',
+ },
+ confirmButtons: {
flexDirection: 'row',
gap: 12,
},
- modalButton: {
+ confirmCancelButton: {
flex: 1,
padding: 16,
borderRadius: 12,
+ backgroundColor: '#EEE',
alignItems: 'center',
},
- cancelButton: {
- backgroundColor: '#F5F5F5',
- },
- cancelButtonText: {
+ confirmCancelButtonText: {
fontSize: 16,
fontWeight: '600',
- color: '#666',
+ color: '#333',
},
- saveButton: {
+ confirmSwapButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center',
},
- saveButtonText: {
+ confirmSwapButtonText: {
fontSize: 16,
fontWeight: '600',
color: '#FFFFFF',
diff --git a/mobile/src/screens/SwapScreen.tsx.bak b/mobile/src/screens/SwapScreen.tsx.bak
new file mode 100644
index 00000000..f99209a2
--- /dev/null
+++ b/mobile/src/screens/SwapScreen.tsx.bak
@@ -0,0 +1,870 @@
+import React, { useState, useEffect, useMemo } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ TextInput,
+ Modal,
+ ActivityIndicator,
+ Alert,
+ Platform,
+ Image,
+} from 'react-native';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+
+// Token Images
+const hezLogo = require('../../../shared/images/hez_logo.png');
+const pezLogo = require('../../../shared/images/pez_logo.jpg');
+const usdtLogo = require('../../../shared/images/USDT(hez)logo.png');
+
+interface TokenInfo {
+ symbol: string;
+ name: string;
+ assetId: number;
+ decimals: number;
+ logo: any;
+}
+
+const TOKENS: TokenInfo[] = [
+ { symbol: 'HEZ', name: 'Hemuwelet', assetId: 0, decimals: 12, logo: hezLogo },
+ { symbol: 'PEZ', name: 'Pezkunel', assetId: 1, decimals: 12, logo: pezLogo },
+ { symbol: 'USDT', name: 'Tether USD', assetId: 1000, decimals: 6, logo: usdtLogo },
+];
+
+type TransactionStatus = 'idle' | 'signing' | 'submitting' | 'success' | 'error';
+
+const SwapScreen: React.FC = () => {
+ const { api, isApiReady, selectedAccount, getKeyPair } = usePezkuwi();
+
+ const [fromToken, setFromToken] = useState(TOKENS[0]);
+ const [toToken, setToToken] = useState(TOKENS[1]);
+ const [fromAmount, setFromAmount] = useState('');
+ const [toAmount, setToAmount] = useState('');
+ const [slippage, setSlippage] = useState(0.5); // 0.5% default
+
+ const [fromBalance, setFromBalance] = useState('0');
+ const [toBalance, setToBalance] = useState('0');
+
+ const [txStatus, setTxStatus] = useState('idle');
+ const [errorMessage, setErrorMessage] = useState('');
+
+ const [showTokenSelector, setShowTokenSelector] = useState<'from' | 'to' | null>(null);
+ const [showSettings, setShowSettings] = useState(false);
+ const [showConfirm, setShowConfirm] = useState(false);
+
+ // Fetch balances
+ useEffect(() => {
+ const fetchBalances = async () => {
+ if (!api || !isApiReady || !selectedAccount) return;
+
+ // Fetch From Token Balance
+ try {
+ if (fromToken.symbol === 'HEZ') {
+ const accountInfo = await api.query.system.account(selectedAccount.address);
+ setFromBalance(accountInfo.data.free.toString());
+ } else {
+ const balanceData = await api.query.assets.account(fromToken.assetId, selectedAccount.address);
+ setFromBalance(balanceData.isSome ? balanceData.unwrap().balance.toString() : '0');
+ }
+ } catch (error) {
+ console.error('Failed to fetch from balance:', error);
+ setFromBalance('0');
+ }
+
+ // Fetch To Token Balance
+ try {
+ if (toToken.symbol === 'HEZ') {
+ const accountInfo = await api.query.system.account(selectedAccount.address);
+ setToBalance(accountInfo.data.free.toString());
+ } else {
+ const balanceData = await api.query.assets.account(toToken.assetId, selectedAccount.address);
+ setToBalance(balanceData.isSome ? balanceData.unwrap().balance.toString() : '0');
+ }
+ } catch (error) {
+ console.error('Failed to fetch to balance:', error);
+ setToBalance('0');
+ }
+ };
+
+ fetchBalances();
+ }, [api, isApiReady, selectedAccount, fromToken, toToken]);
+
+ // Calculate output amount (simple 1:1 for now - should use pool reserves)
+ useEffect(() => {
+ if (!fromAmount || parseFloat(fromAmount) <= 0) {
+ setToAmount('');
+ return;
+ }
+
+ // TODO: Implement proper AMM calculation using pool reserves
+ // For now, simple 1:1 conversion (placeholder)
+ const calculatedAmount = (parseFloat(fromAmount) * 0.97).toFixed(6); // 3% fee simulation
+ setToAmount(calculatedAmount);
+ }, [fromAmount, fromToken, toToken]);
+
+ // Calculate formatted balances
+ const fromBalanceFormatted = useMemo(() => {
+ return (Number(fromBalance) / Math.pow(10, fromToken.decimals)).toFixed(4);
+ }, [fromBalance, fromToken]);
+
+ const toBalanceFormatted = useMemo(() => {
+ return (Number(toBalance) / Math.pow(10, toToken.decimals)).toFixed(4);
+ }, [toBalance, toToken]);
+
+ const hasInsufficientBalance = useMemo(() => {
+ const amountNum = parseFloat(fromAmount || '0');
+ const balanceNum = parseFloat(fromBalanceFormatted);
+ return amountNum > 0 && amountNum > balanceNum;
+ }, [fromAmount, fromBalanceFormatted]);
+
+ const handleSwapDirection = () => {
+ const tempToken = fromToken;
+ const tempBalance = fromBalance;
+ const tempAmount = fromAmount;
+
+ setFromToken(toToken);
+ setToToken(tempToken);
+ setFromBalance(toBalance);
+ setToBalance(tempBalance);
+ setFromAmount(toAmount);
+ setToAmount(tempAmount);
+ };
+
+ const handleMaxClick = () => {
+ setFromAmount(fromBalanceFormatted);
+ };
+
+ const handleTokenSelect = (token: TokenInfo) => {
+ if (showTokenSelector === 'from') {
+ if (token.symbol === toToken.symbol) {
+ Alert.alert('Error', 'Cannot select the same token for both sides');
+ return;
+ }
+ setFromToken(token);
+ } else if (showTokenSelector === 'to') {
+ if (token.symbol === fromToken.symbol) {
+ Alert.alert('Error', 'Cannot select the same token for both sides');
+ return;
+ }
+ setToToken(token);
+ }
+ setShowTokenSelector(null);
+ };
+
+ const handleConfirmSwap = async () => {
+ if (!api || !selectedAccount) {
+ Alert.alert('Error', 'Please connect your wallet');
+ return;
+ }
+
+ setTxStatus('signing');
+ setShowConfirm(false);
+ setErrorMessage('');
+
+ try {
+ const keypair = await getKeyPair(selectedAccount.address);
+ if (!keypair) throw new Error('Failed to load keypair');
+
+ const amountIn = BigInt(Math.floor(parseFloat(fromAmount) * Math.pow(10, fromToken.decimals)));
+ const minAmountOut = BigInt(
+ Math.floor(parseFloat(toAmount) * (1 - slippage / 100) * Math.pow(10, toToken.decimals))
+ );
+
+ let tx;
+
+ if (fromToken.symbol === 'HEZ' && toToken.symbol === 'PEZ') {
+ // HEZ → PEZ: wrap(HEZ→wHEZ) then swap(wHEZ→PEZ)
+ const wrapTx = api.tx.tokenWrapper.wrap(amountIn.toString());
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [0, 1], // wHEZ → PEZ
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ tx = api.tx.utility.batchAll([wrapTx, swapTx]);
+
+ } else if (fromToken.symbol === 'PEZ' && toToken.symbol === 'HEZ') {
+ // PEZ → HEZ: swap(PEZ→wHEZ) then unwrap(wHEZ→HEZ)
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [1, 0], // PEZ → wHEZ
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ const unwrapTx = api.tx.tokenWrapper.unwrap(minAmountOut.toString());
+ tx = api.tx.utility.batchAll([swapTx, unwrapTx]);
+
+ } else if (fromToken.symbol === 'HEZ') {
+ // HEZ → Any Asset: wrap(HEZ→wHEZ) then swap(wHEZ→Asset)
+ const wrapTx = api.tx.tokenWrapper.wrap(amountIn.toString());
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [0, toToken.assetId],
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ tx = api.tx.utility.batchAll([wrapTx, swapTx]);
+
+ } else if (toToken.symbol === 'HEZ') {
+ // Any Asset → HEZ: swap(Asset→wHEZ) then unwrap(wHEZ→HEZ)
+ const swapTx = api.tx.assetConversion.swapExactTokensForTokens(
+ [fromToken.assetId, 0],
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ const unwrapTx = api.tx.tokenWrapper.unwrap(minAmountOut.toString());
+ tx = api.tx.utility.batchAll([swapTx, unwrapTx]);
+
+ } else {
+ // Direct swap between assets (PEZ ↔ USDT, etc.)
+ tx = api.tx.assetConversion.swapExactTokensForTokens(
+ [fromToken.assetId, toToken.assetId],
+ amountIn.toString(),
+ minAmountOut.toString(),
+ selectedAccount.address,
+ true
+ );
+ }
+
+ setTxStatus('submitting');
+
+ await tx.signAndSend(keypair, ({ status, dispatchError }) => {
+ if (status.isInBlock) {
+ if (dispatchError) {
+ const errorMsg = dispatchError.toString();
+ setErrorMessage(errorMsg);
+ setTxStatus('error');
+ Alert.alert('Transaction Failed', errorMsg);
+ } else {
+ setTxStatus('success');
+ Alert.alert('Success!', `Swapped ${fromAmount} ${fromToken.symbol} for ~${toAmount} ${toToken.symbol}`);
+ setTimeout(() => {
+ setFromAmount('');
+ setToAmount('');
+ setTxStatus('idle');
+ }, 2000);
+ }
+ }
+ });
+ } catch (error: any) {
+ console.error('Swap failed:', error);
+ setErrorMessage(error.message || 'Transaction failed');
+ setTxStatus('error');
+ Alert.alert('Error', error.message || 'Swap transaction failed');
+ }
+ };
+
+ if (!selectedAccount) {
+ return (
+
+
+ 💱
+ Connect your wallet to swap tokens
+
+
+ );
+ }
+
+ return (
+
+ {/* Transaction Loading Overlay */}
+ {(txStatus === 'signing' || txStatus === 'submitting') && (
+
+
+
+
+ {txStatus === 'signing' ? 'Waiting for signature...' : 'Processing swap...'}
+
+
+
+ )}
+
+
+ {/* Header */}
+
+ Swap Tokens
+ setShowSettings(true)} style={styles.settingsButton}>
+ ⚙️
+
+
+
+ {/* From Token Card */}
+
+
+ From
+
+ Balance: {fromBalanceFormatted} {fromToken.symbol}
+
+
+
+
+
+ setShowTokenSelector('from')}
+ >
+
+ {fromToken.symbol}
+ ▼
+
+
+
+
+ MAX
+
+
+
+ {/* Swap Direction Button */}
+
+
+ ⇅
+
+
+
+ {/* To Token Card */}
+
+
+ To
+
+ Balance: {toBalanceFormatted} {toToken.symbol}
+
+
+
+
+
+ setShowTokenSelector('to')}
+ >
+
+ {toToken.symbol}
+ ▼
+
+
+
+
+ {/* Swap Details */}
+
+
+ ℹ️ Exchange Rate
+ 1 {fromToken.symbol} ≈ 1 {toToken.symbol}
+
+
+ Slippage Tolerance
+ {slippage}%
+
+
+
+ {/* Warnings */}
+ {hasInsufficientBalance && (
+
+ ⚠️
+ Insufficient {fromToken.symbol} balance
+
+ )}
+
+ {/* Swap Button */}
+ setShowConfirm(true)}
+ disabled={!fromAmount || hasInsufficientBalance || txStatus !== 'idle'}
+ >
+
+ {hasInsufficientBalance
+ ? `Insufficient ${fromToken.symbol} Balance`
+ : 'Swap Tokens'}
+
+
+
+
+ {/* Token Selector Modal */}
+ setShowTokenSelector(null)}>
+
+
+ Select Token
+ {TOKENS.map((token) => (
+ handleTokenSelect(token)}
+ >
+
+
+ {token.symbol}
+ {token.name}
+
+
+ ))}
+ setShowTokenSelector(null)}>
+ Cancel
+
+
+
+
+
+ {/* Settings Modal */}
+ setShowSettings(false)}>
+
+
+ Swap Settings
+ Slippage Tolerance
+
+ {[0.1, 0.5, 1.0, 2.0].map((val) => (
+ setSlippage(val)}
+ >
+
+ {val}%
+
+
+ ))}
+
+ setShowSettings(false)}>
+ Close
+
+
+
+
+
+ {/* Confirm Modal */}
+ setShowConfirm(false)}>
+
+
+ Confirm Swap
+
+
+ You Pay
+ {fromAmount} {fromToken.symbol}
+
+
+ You Receive
+ {toAmount} {toToken.symbol}
+
+
+ Slippage
+ {slippage}%
+
+
+
+ setShowConfirm(false)}>
+ Cancel
+
+
+ Confirm Swap
+
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ centerContent: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 40,
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ scrollContentContainer: {
+ padding: 16,
+ },
+ header: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 20,
+ },
+ headerTitle: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ settingsButton: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ settingsIcon: {
+ fontSize: 20,
+ },
+ tokenCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 8,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ tokenCardHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ },
+ tokenCardLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ tokenCardBalance: {
+ fontSize: 12,
+ color: '#999',
+ },
+ tokenInputRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 12,
+ },
+ amountInput: {
+ flex: 1,
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ padding: 0,
+ },
+ tokenSelector: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#F5F5F5',
+ paddingHorizontal: 12,
+ paddingVertical: 8,
+ borderRadius: 12,
+ gap: 8,
+ },
+ tokenLogo: {
+ width: 24,
+ height: 24,
+ },
+ tokenSymbol: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ tokenSelectorArrow: {
+ fontSize: 10,
+ color: '#666',
+ },
+ maxButton: {
+ alignSelf: 'flex-start',
+ marginTop: 8,
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderRadius: 8,
+ borderWidth: 1,
+ borderColor: 'rgba(0, 143, 67, 0.3)',
+ },
+ maxButtonText: {
+ fontSize: 12,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ swapDirectionContainer: {
+ alignItems: 'center',
+ marginVertical: -12,
+ zIndex: 10,
+ },
+ swapDirectionButton: {
+ width: 48,
+ height: 48,
+ borderRadius: 24,
+ backgroundColor: '#FFFFFF',
+ borderWidth: 2,
+ borderColor: '#E5E5E5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 3,
+ },
+ swapDirectionIcon: {
+ fontSize: 24,
+ color: '#333',
+ },
+ detailsCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginTop: 16,
+ marginBottom: 16,
+ },
+ detailRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingVertical: 8,
+ },
+ detailLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ detailValue: {
+ fontSize: 14,
+ color: '#333',
+ fontWeight: '500',
+ },
+ detailValueHighlight: {
+ fontSize: 14,
+ color: '#3B82F6',
+ fontWeight: '600',
+ },
+ warningCard: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FEF3C7',
+ borderRadius: 12,
+ padding: 12,
+ marginBottom: 16,
+ gap: 8,
+ },
+ errorCard: {
+ backgroundColor: '#FEE2E2',
+ },
+ warningIcon: {
+ fontSize: 20,
+ },
+ warningText: {
+ flex: 1,
+ fontSize: 14,
+ color: '#991B1B',
+ },
+ swapButton: {
+ backgroundColor: KurdistanColors.kesk,
+ borderRadius: 16,
+ padding: 18,
+ alignItems: 'center',
+ marginBottom: 20,
+ },
+ swapButtonDisabled: {
+ backgroundColor: '#CCC',
+ },
+ swapButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ loadingOverlay: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ backgroundColor: 'rgba(0,0,0,0.7)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ zIndex: 1000,
+ },
+ loadingCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 20,
+ padding: 32,
+ alignItems: 'center',
+ gap: 16,
+ },
+ loadingText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 20,
+ },
+ modalCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 20,
+ padding: 24,
+ width: '100%',
+ maxWidth: 400,
+ },
+ modalHeader: {
+ fontSize: 22,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 20,
+ textAlign: 'center',
+ },
+ tokenOption: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#F8F9FA',
+ marginBottom: 8,
+ gap: 12,
+ },
+ tokenOptionLogo: {
+ width: 40,
+ height: 40,
+ },
+ tokenOptionInfo: {
+ flex: 1,
+ },
+ tokenOptionSymbol: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ tokenOptionName: {
+ fontSize: 12,
+ color: '#666',
+ },
+ modalCloseButton: {
+ backgroundColor: '#EEE',
+ borderRadius: 12,
+ padding: 16,
+ alignItems: 'center',
+ marginTop: 12,
+ },
+ modalCloseButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ settingsLabel: {
+ fontSize: 14,
+ fontWeight: '500',
+ color: '#666',
+ marginBottom: 12,
+ },
+ slippageButtons: {
+ flexDirection: 'row',
+ gap: 8,
+ marginBottom: 20,
+ },
+ slippageButton: {
+ flex: 1,
+ padding: 12,
+ borderRadius: 12,
+ backgroundColor: '#F5F5F5',
+ alignItems: 'center',
+ },
+ slippageButtonActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ slippageButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ slippageButtonTextActive: {
+ color: '#FFFFFF',
+ },
+ confirmDetails: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ padding: 16,
+ marginBottom: 20,
+ },
+ confirmRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingVertical: 8,
+ },
+ confirmRowBorder: {
+ borderTopWidth: 1,
+ borderTopColor: '#E5E5E5',
+ marginTop: 8,
+ paddingTop: 16,
+ },
+ confirmLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ confirmValue: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ confirmLabelSmall: {
+ fontSize: 12,
+ color: '#999',
+ },
+ confirmValueSmall: {
+ fontSize: 12,
+ color: '#666',
+ },
+ confirmButtons: {
+ flexDirection: 'row',
+ gap: 12,
+ },
+ confirmCancelButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#EEE',
+ alignItems: 'center',
+ },
+ confirmCancelButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333',
+ },
+ confirmSwapButton: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center',
+ },
+ confirmSwapButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+});
+
+export default SwapScreen;
diff --git a/mobile/src/screens/WalletScreen.tsx b/mobile/src/screens/WalletScreen.tsx
index 53e6894c..a654df3d 100644
--- a/mobile/src/screens/WalletScreen.tsx
+++ b/mobile/src/screens/WalletScreen.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react';
+import React, { useState, useEffect, useCallback } from 'react';
import {
View,
Text,
@@ -11,11 +11,29 @@ import {
TextInput,
Alert,
ActivityIndicator,
+ RefreshControl,
+ Image,
+ Platform,
+ Clipboard,
+ Share,
} from 'react-native';
import { LinearGradient } from 'expo-linear-gradient';
import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import QRCode from 'react-native-qrcode-svg';
import { KurdistanColors } from '../theme/colors';
-import { usePolkadot } from '../contexts/PolkadotContext';
+import { usePezkuwi, NetworkType, NETWORKS } from '../contexts/PezkuwiContext';
+import { AddTokenModal } from '../components/wallet/AddTokenModal';
+
+// Token Images - From shared/images
+const hezLogo = require('../../../shared/images/hez_logo.png');
+const pezLogo = require('../../../shared/images/pez_logo.jpg');
+const usdtLogo = require('../../../shared/images/USDT(hez)logo.png');
+const dotLogo = require('../../../shared/images/dot.png');
+const btcLogo = require('../../../shared/images/bitcoin.png');
+const ethLogo = require('../../../shared/images/etherium.png');
+const bnbLogo = require('../../../shared/images/BNB_logo.png');
+const adaLogo = require('../../../shared/images/ADAlogo.png');
interface Token {
symbol: string;
@@ -23,12 +41,26 @@ interface Token {
balance: string;
value: string;
change: string;
- logo: string;
- isLive: boolean; // true = canlı blockchain, false = coming soon
+ logo: any; // Image source
+ assetId?: number;
+ isLive: boolean;
+}
+
+interface Transaction {
+ hash: string;
+ method: string;
+ section: string;
+ from: string;
+ to?: string;
+ amount?: string;
+ blockNumber: number;
+ timestamp?: number;
+ isIncoming: boolean;
}
const WalletScreen: React.FC = () => {
const { t } = useTranslation();
+ const navigation = useNavigation();
const {
api,
isApiReady,
@@ -38,20 +70,32 @@ const WalletScreen: React.FC = () => {
disconnectWallet,
createWallet,
getKeyPair,
- error: polkadotError
- } = usePolkadot();
+ currentNetwork,
+ switchNetwork,
+ error: pezkuwiError
+ } = usePezkuwi();
const [selectedToken, setSelectedToken] = useState(null);
const [sendModalVisible, setSendModalVisible] = useState(false);
const [receiveModalVisible, setReceiveModalVisible] = useState(false);
const [createWalletModalVisible, setCreateWalletModalVisible] = useState(false);
+ const [importWalletModalVisible, setImportWalletModalVisible] = useState(false);
+ const [backupModalVisible, setBackupModalVisible] = useState(false);
+ const [networkSelectorVisible, setNetworkSelectorVisible] = useState(false);
+ const [addTokenModalVisible, setAddTokenModalVisible] = useState(false);
const [recipientAddress, setRecipientAddress] = useState('');
const [sendAmount, setSendAmount] = useState('');
const [walletName, setWalletName] = useState('');
+ const [importMnemonic, setImportMnemonic] = useState('');
+ const [importWalletName, setImportWalletName] = useState('');
+ const [userMnemonic, setUserMnemonic] = useState('');
const [isSending, setIsSending] = useState(false);
const [isLoadingBalances, setIsLoadingBalances] = useState(false);
+
+ // Transaction History State
+ const [transactions, setTransactions] = useState([]);
+ const [isLoadingHistory, setIsLoadingHistory] = useState(false);
- // Token balances from blockchain
const [balances, setBalances] = useState<{ [key: string]: string }>({
HEZ: '0.00',
PEZ: '0.00',
@@ -65,8 +109,8 @@ const WalletScreen: React.FC = () => {
balance: balances.HEZ,
value: '$0.00',
change: '+0.00%',
- logo: '🟡',
- isLive: true,
+ logo: hezLogo,
+ isLive: true
},
{
symbol: 'PEZ',
@@ -74,8 +118,9 @@ const WalletScreen: React.FC = () => {
balance: balances.PEZ,
value: '$0.00',
change: '+0.00%',
- logo: '🟣',
- isLive: true,
+ logo: pezLogo,
+ assetId: 1,
+ isLive: true
},
{
symbol: 'USDT',
@@ -83,166 +128,98 @@ const WalletScreen: React.FC = () => {
balance: balances.USDT,
value: '$0.00',
change: '+0.00%',
- logo: '💵',
- isLive: true,
- },
- {
- symbol: 'ETH',
- name: 'Ethereum',
- balance: '0.00',
- value: '$0.00',
- change: '+0.00%',
- logo: '⟠',
- isLive: false,
- },
- {
- symbol: 'BTC',
- name: 'Bitcoin',
- balance: '0.00',
- value: '$0.00',
- change: '+0.00%',
- logo: '₿',
- isLive: false,
- },
- {
- symbol: 'DOT',
- name: 'Polkadot',
- balance: '0.00',
- value: '$0.00',
- change: '+0.00%',
- logo: '●',
- isLive: false,
- },
- {
- symbol: 'BNB',
- name: 'Binance Coin',
- balance: '0.00',
- value: '$0.00',
- change: '+0.00%',
- logo: '◆',
- isLive: false,
+ logo: usdtLogo,
+ assetId: 1000,
+ isLive: true
},
];
- // Fetch token balances from blockchain
- useEffect(() => {
- const fetchBalances = async () => {
- if (!api || !isApiReady || !selectedAccount) {
- return;
- }
+ // Fetch balances and history
+ const fetchData = useCallback(async () => {
+ if (!api || !isApiReady || !selectedAccount) return;
- setIsLoadingBalances(true);
+ setIsLoadingBalances(true);
+ try {
+ // 1. Fetch Balances
+ const accountInfo = await api.query.system.account(selectedAccount.address);
+ const hezBalance = (Number(accountInfo.data.free.toString()) / 1e12).toFixed(2);
+
+ let pezBalance = '0.00';
try {
- // Fetch HEZ balance (native token)
- const accountInfo = await api.query.system.account(selectedAccount.address);
- const freeBalance = accountInfo.data.free.toString();
- const hezBalance = (Number(freeBalance) / 1e12).toFixed(2);
-
- // Fetch PEZ balance (asset ID 1)
- let pezBalance = '0.00';
- try {
- if (api.query.assets?.account) {
- const pezAsset = await api.query.assets.account(1, selectedAccount.address);
- if (pezAsset.isSome) {
- const pezData = pezAsset.unwrap();
- pezBalance = (Number(pezData.balance.toString()) / 1e12).toFixed(2);
- }
- }
- } catch {
- if (__DEV__) console.warn('PEZ asset not found or not accessible');
+ if (api.query.assets?.account) {
+ const pezAsset = await api.query.assets.account(1, selectedAccount.address);
+ if (pezAsset.isSome) pezBalance = (Number(pezAsset.unwrap().balance.toString()) / 1e12).toFixed(2);
}
+ } catch {}
- // Fetch USDT balance (wUSDT - asset ID 2)
- let usdtBalance = '0.00';
- try {
- if (api.query.assets?.account) {
- const usdtAsset = await api.query.assets.account(2, selectedAccount.address);
- if (usdtAsset.isSome) {
- const usdtData = usdtAsset.unwrap();
- usdtBalance = (Number(usdtData.balance.toString()) / 1e12).toFixed(2);
- }
+ let usdtBalance = '0.00';
+ try {
+ if (api.query.assets?.account) {
+ // Check ID 1000 first (as per constants), fallback to 2 just in case
+ let usdtAsset = await api.query.assets.account(1000, selectedAccount.address);
+ if (usdtAsset.isNone) {
+ usdtAsset = await api.query.assets.account(2, selectedAccount.address);
+ }
+
+ if (usdtAsset.isSome) {
+ // USDT uses 6 decimals usually, checking constants or assuming standard
+ usdtBalance = (Number(usdtAsset.unwrap().balance.toString()) / 1e6).toFixed(2);
}
- } catch {
- if (__DEV__) console.warn('USDT asset not found or not accessible');
}
+ } catch {}
- setBalances({
- HEZ: hezBalance,
- PEZ: pezBalance,
- USDT: usdtBalance,
- });
- } catch (_err) {
- if (__DEV__) console.error('Failed to fetch balances:', _err);
- Alert.alert('Error', 'Failed to fetch token balances');
- } finally {
- setIsLoadingBalances(false);
+ setBalances({ HEZ: hezBalance, PEZ: pezBalance, USDT: usdtBalance });
+
+ // 2. Fetch History from Indexer API (MUCH FASTER)
+ setIsLoadingHistory(true);
+ try {
+ const INDEXER_URL = 'http://172.31.134.70:3001'; // Update this to your local IP for physical device testing
+ const response = await fetch(`${INDEXER_URL}/api/history/${selectedAccount.address}`);
+ const data = await response.json();
+
+ const txList = data.map((tx: any) => ({
+ hash: tx.hash,
+ method: tx.asset_id ? 'transfer' : 'transfer',
+ section: tx.asset_id ? 'assets' : 'balances',
+ from: tx.sender,
+ to: tx.receiver,
+ amount: tx.amount,
+ blockNumber: tx.block_number,
+ isIncoming: tx.receiver === selectedAccount.address,
+ }));
+
+ setTransactions(txList);
+ } catch (e) {
+ console.warn('Indexer API unreachable, history not updated', e);
}
- };
- fetchBalances();
-
- // Refresh balances every 30 seconds
- const interval = setInterval(fetchBalances, 30000);
- return () => clearInterval(interval);
+ } catch (error) {
+ console.error('Fetch error:', error);
+ } finally {
+ setIsLoadingBalances(false);
+ setIsLoadingHistory(false);
+ }
}, [api, isApiReady, selectedAccount]);
- const handleConnectWallet = async () => {
- try {
- if (accounts.length === 0) {
- // No wallet exists, show create wallet modal
- setCreateWalletModalVisible(true);
- return;
- }
-
- // Connect existing wallet
- await connectWallet();
- Alert.alert('Connected', 'Wallet connected successfully!');
- } catch (err) {
- if (__DEV__) console.error('Failed to connect wallet:', err);
- Alert.alert('Error', 'Failed to connect wallet');
- }
- };
-
- const handleCreateWallet = async () => {
- if (!walletName.trim()) {
- Alert.alert('Error', 'Please enter a wallet name');
- return;
- }
-
- try {
- const { address, mnemonic } = await createWallet(walletName);
- setCreateWalletModalVisible(false);
- setWalletName('');
-
- Alert.alert(
- 'Wallet Created',
- `Your wallet has been created!\n\nAddress: ${address.substring(0, 10)}...\n\nIMPORTANT: Save your recovery phrase:\n${mnemonic}\n\nStore it securely - you'll need it to recover your wallet!`,
- [{ text: 'OK', onPress: () => connectWallet() }]
- );
- } catch (err) {
- if (__DEV__) console.error('Failed to create wallet:', err);
- Alert.alert('Error', 'Failed to create wallet');
- }
- };
+ useEffect(() => {
+ fetchData();
+ const interval = setInterval(fetchData, 30000);
+ return () => clearInterval(interval);
+ }, [fetchData]);
const handleTokenPress = (token: Token) => {
- if (!token.isLive) {
- Alert.alert(
- 'Coming Soon',
- `${token.name} (${token.symbol}) support is coming soon!`,
- [{ text: 'OK' }]
- );
- return;
- }
+ if (!token.isLive) return;
setSelectedToken(token);
+ setSendModalVisible(true);
};
const handleSend = () => {
- if (!selectedToken) return;
+ setSelectedToken(tokens[0]); // Default to HEZ
setSendModalVisible(true);
};
const handleReceive = () => {
+ setSelectedToken(tokens[0]);
setReceiveModalVisible(true);
};
@@ -251,316 +228,466 @@ const WalletScreen: React.FC = () => {
Alert.alert('Error', 'Please enter recipient address and amount');
return;
}
-
- const amount = parseFloat(sendAmount);
- if (isNaN(amount) || amount <= 0) {
- Alert.alert('Error', 'Please enter a valid amount');
- return;
- }
-
- Alert.alert(
- 'Confirm Transaction',
- `Send ${sendAmount} ${selectedToken.symbol} to ${recipientAddress.substring(0, 10)}...?`,
- [
- { text: 'Cancel', style: 'cancel' },
- {
- text: 'Confirm',
- onPress: async () => {
- setIsSending(true);
- try {
- const keypair = await getKeyPair(selectedAccount.address);
- if (!keypair) {
- throw new Error('Failed to load keypair');
- }
-
- // Convert amount to blockchain units (12 decimals)
- const amountInUnits = BigInt(Math.floor(amount * 1e12));
-
- let tx;
- if (selectedToken.symbol === 'HEZ') {
- // Send native token
- tx = api.tx.balances.transfer(recipientAddress, amountInUnits);
- } else if (selectedToken.symbol === 'PEZ') {
- // Send PEZ asset (asset ID 1)
- tx = api.tx.assets.transfer(1, recipientAddress, amountInUnits);
- } else if (selectedToken.symbol === 'USDT') {
- // Send USDT (wUSDT on blockchain - asset ID 2)
- tx = api.tx.assets.transfer(2, recipientAddress, amountInUnits);
- } else {
- throw new Error('Unsupported token');
- }
-
- // Sign and send transaction
- await tx.signAndSend(keypair, ({ status }) => {
- if (status.isInBlock) {
- if (__DEV__) console.warn(`Transaction included in block: ${status.asInBlock}`);
- } else if (status.isFinalized) {
- if (__DEV__) console.warn(`Transaction finalized: ${status.asFinalized}`);
-
- setSendModalVisible(false);
- setRecipientAddress('');
- setSendAmount('');
- setIsSending(false);
-
- Alert.alert(
- 'Success',
- `Successfully sent ${sendAmount} ${selectedToken.symbol}!`
- );
-
- // Refresh balances
- // The useEffect will automatically refresh after 30s, but we could trigger it manually here
- }
- });
- } catch (_err) {
- console.error('Transaction failed:', _err);
- setIsSending(false);
- Alert.alert('Error', `Transaction failed: ${_err instanceof Error ? _err.message : 'Unknown error'}`);
+
+ setIsSending(true);
+ try {
+ const keypair = await getKeyPair(selectedAccount.address);
+ if (!keypair) throw new Error('Failed to load keypair');
+
+ // Adjust decimals based on token
+ const decimals = selectedToken.symbol === 'USDT' ? 1e6 : 1e12;
+ const amountInUnits = BigInt(Math.floor(parseFloat(sendAmount) * decimals));
+
+ let tx;
+ if (selectedToken.symbol === 'HEZ') {
+ tx = api.tx.balances.transfer(recipientAddress, amountInUnits);
+ } else if (selectedToken.assetId !== undefined) {
+ tx = api.tx.assets.transfer(selectedToken.assetId, recipientAddress, amountInUnits);
+ } else {
+ throw new Error('Unknown token type');
+ }
+
+ await tx.signAndSend(keypair, ({ status }) => {
+ if (status.isFinalized) {
+ setSendModalVisible(false);
+ setIsSending(false);
+ Alert.alert('Success', 'Transaction Sent!');
+ fetchData();
}
- },
- },
- ]
- );
+ });
+ } catch (e: any) {
+ setIsSending(false);
+ Alert.alert('Error', e.message);
+ }
};
- // Show loading state while API is initializing
- if (!isApiReady) {
- return (
-
-
-
- Connecting to blockchain...
-
-
- );
- }
+ // Connect/Create Wallet handlers
+ const handleConnectWallet = async () => {
+ if (accounts.length === 0) setCreateWalletModalVisible(true);
+ else await connectWallet();
+ };
+
+ const handleCreateWallet = async () => {
+ try {
+ const { address, mnemonic } = await createWallet(walletName);
+ setUserMnemonic(mnemonic); // Save for backup
+ setCreateWalletModalVisible(false);
+ Alert.alert('Wallet Created', `Save this mnemonic:\n${mnemonic}`, [{ text: 'OK', onPress: () => connectWallet() }]);
+ } catch (e) { Alert.alert('Error', 'Failed'); }
+ };
+
+ // Copy Address Handler
+ const handleCopyAddress = () => {
+ if (!selectedAccount) return;
+ Clipboard.setString(selectedAccount.address);
+ Alert.alert('Copied!', 'Address copied to clipboard');
+ };
+
+ // Import Wallet Handler
+ const handleImportWallet = async () => {
+ if (!importMnemonic.trim()) {
+ Alert.alert('Error', 'Please enter a valid mnemonic');
+ return;
+ }
+ try {
+ // Use createWallet but inject mnemonic (you may need to modify PezkuwiContext)
+ // For now, basic implementation:
+ const { Keyring } = await import('@pezkuwi/keyring');
+ const keyring = new Keyring({ type: 'sr25519' });
+ const pair = keyring.addFromMnemonic(importMnemonic.trim());
+
+ // Store in AsyncStorage (via context method ideally)
+ Alert.alert('Success', `Wallet imported: ${pair.address.slice(0,8)}...`);
+ setImportWalletModalVisible(false);
+ setImportMnemonic('');
+ connectWallet();
+ } catch (e: any) {
+ Alert.alert('Error', e.message || 'Invalid mnemonic');
+ }
+ };
+
+ // Backup Mnemonic Handler
+ const handleBackupMnemonic = async () => {
+ // Retrieve mnemonic from secure storage
+ // For demo, we show the saved one or prompt user
+ if (userMnemonic) {
+ setBackupModalVisible(true);
+ } else {
+ Alert.alert('No Backup', 'Mnemonic not available. Create a new wallet or import existing one.');
+ }
+ };
+
+ // Share QR Code
+ const handleShareQR = async () => {
+ if (!selectedAccount) return;
+ try {
+ await Share.share({
+ message: `My Pezkuwichain Address:\n${selectedAccount.address}`,
+ });
+ } catch (e) {
+ console.error(e);
+ }
+ };
+
+ // Network Switch Handler
+ const handleNetworkSwitch = async (network: NetworkType) => {
+ try {
+ await switchNetwork(network);
+ setNetworkSelectorVisible(false);
+ Alert.alert('Success', `Switched to ${NETWORKS[network].displayName}`);
+ } catch (e: any) {
+ Alert.alert('Error', e.message || 'Failed to switch network');
+ }
+ };
- // Show connect/create wallet screen if no account is selected
if (!selectedAccount) {
- return (
-
-
-
-
-
- 👛
-
- {t('wallet.title')}
-
- {accounts.length === 0
- ? 'Create a new wallet to get started'
- : 'Connect your wallet to manage your tokens'}
-
-
+
-
- {accounts.length === 0 ? 'Create Wallet' : t('wallet.connect')}
-
-
- {polkadotError && (
- {polkadotError}
- )}
-
-
+
+ 🔐
+ Welcome to
+ Pezkuwichain Wallet
+
+ Secure, Fast & Decentralized
+
+
+
- {/* Create Wallet Modal */}
- setCreateWalletModalVisible(false)}
- >
-
-
- Create New Wallet
-
-
- setCreateWalletModalVisible(false)}
+
+
+
- {t('common.cancel')}
-
-
- Create
-
+
+ ➕
+
+
+ Create New Wallet
+
+ Get started in seconds
+
+
+
+
+
+ setImportWalletModalVisible(true)}
+ activeOpacity={0.8}
+ >
+
+
+ 📥
+
+
+ Import Existing Wallet
+
+ Use your seed phrase
+
+
+
+
+
+
+ 🛡️
+
+ Your keys are encrypted and stored locally on your device
+
-
-
-
- );
+
+ {/* Create Wallet Modal */}
+ setCreateWalletModalVisible(false)}>
+
+
+ Create New Wallet
+
+
+ setCreateWalletModalVisible(false)}>Cancel
+ Create
+
+
+
+
+
+ {/* Import Wallet Modal */}
+ setImportWalletModalVisible(false)}>
+
+
+ Import Wallet
+ Enter your 12 or 24 word mnemonic phrase
+
+
+ setImportWalletModalVisible(false)}>Cancel
+ Import
+
+
+
+
+
+ );
}
return (
-
+
- {/* Header */}
- }
+ showsVerticalScrollIndicator={false}
>
- {t('wallet.title')}
-
- {t('wallet.address')}:
-
- {selectedAccount.address.substring(0, 8)}...{selectedAccount.address.substring(selectedAccount.address.length - 6)}
-
-
- {isLoadingBalances && (
-
- )}
-
- {t('wallet.disconnect')}
-
-
-
- {/* Tokens List */}
-
- Your Tokens
- {tokens.map((token, index) => (
- handleTokenPress(token)}
- activeOpacity={0.7}
- >
-
-
- {token.logo}
-
-
- {token.symbol}
- {token.name}
-
-
-
- {token.balance}
- {token.value}
-
- {!token.isLive && (
-
- Coming Soon
-
- )}
+ {/* Header */}
+
+ pezkuwi wallet
+ setNetworkSelectorVisible(true)}>
+ 🌐 {NETWORKS[currentNetwork].displayName}
- ))}
+
+
+ {/* Main Token Cards - HEZ and PEZ side by side */}
+
+ {/* HEZ Card */}
+ handleTokenPress(tokens[0])}>
+
+ HEZ
+ {balances.HEZ}
+ Hemuwelet Token
+
+
+ {/* PEZ Card */}
+ handleTokenPress(tokens[1])}>
+
+ PEZ
+ {balances.PEZ}
+ Pezkunel Token
+
+
+
+ {/* Action Buttons Grid - 2x4 */}
+
+ {/* Row 1 */}
+
+ ↑
+ Send
+
+
+
+ ↓
+ Receive
+
+
+ Alert.alert('Scan', 'QR Scanner coming soon')}>
+ ⊡
+ Scan
+
+
+ Alert.alert('P2P', 'Navigate to P2P Platform')}>
+ 👥
+ P2P
+
+
+ {/* Row 2 */}
+ Alert.alert('Vote', 'Navigate to Governance')}>
+ 🗳️
+ Vote
+
+
+ Alert.alert('Dapps', 'Navigate to Apps')}>
+ ⊞
+ Dapps
+
+
+ Alert.alert('Staking', 'Navigate to Staking')}>
+ 🥩
+ Staking
+
+
+ setNetworkSelectorVisible(true)}>
+ 🔗
+ Connect
+
+
+
+ {/* Tokens List */}
+
+
+ Tokens
+
+
+ 🔍
+
+ setAddTokenModalVisible(true)}>
+ ➕
+
+
+ ⚙️
+
+
+
+
+ {/* USDT */}
+
+
+
+ USDT
+ PEZ Network
+
+
+ {balances.USDT}
+ $0.00
+
+
+
+ {/* DOT */}
+
+
+
+ DOT
+ Polkadot
+
+
+ 0.00
+ $0.00
+
+
+
+
+
- {/* Action Buttons */}
- {selectedToken && selectedToken.isLive && (
-
-
- 📤
- {t('wallet.send')}
-
-
- 📥
- {t('wallet.receive')}
-
-
- )}
-
- {/* Send Modal */}
- !isSending && setSendModalVisible(false)}
- >
+ {/* Modals */}
+ setSendModalVisible(false)}>
-
-
- Send {selectedToken?.symbol}
-
-
- Available: {selectedToken?.balance} {selectedToken?.symbol}
-
-
-
-
- setSendModalVisible(false)}
- disabled={isSending}
- >
- {t('common.cancel')}
-
-
- {isSending ? (
-
- ) : (
- {t('common.confirm')}
- )}
-
+
+ Send {selectedToken?.symbol}
+
+ {selectedToken && }
+
+
+
+
+ setSendModalVisible(false)}>Cancel
+
+ {isSending ? 'Sending...' : 'Confirm'}
+
+
-
- {/* Receive Modal */}
- setReceiveModalVisible(false)}
- >
+ setReceiveModalVisible(false)}>
-
- Receive {selectedToken?.symbol}
- QR Code Here
- {selectedAccount.address}
- setReceiveModalVisible(false)}
- >
- {t('common.close')}
-
-
+
+ Receive Address
+
+ {selectedAccount && }
+
+ {selectedAccount?.address}
+
+
+ 📋 Copy
+
+
+ 📤 Share
+
+
+ setReceiveModalVisible(false)}>
+ Close
+
+
+
+ {/* Backup Mnemonic Modal */}
+ setBackupModalVisible(false)}>
+
+
+ 🔐 Backup Mnemonic
+
+ ⚠️ NEVER share this with anyone! Write it down and store safely.
+
+
+ {userMnemonic}
+
+
+ {
+ Clipboard.setString(userMnemonic);
+ Alert.alert('Copied', 'Mnemonic copied to clipboard');
+ }}>
+ 📋 Copy
+
+ setBackupModalVisible(false)}>
+ Close
+
+
+
+
+
+
+ {/* Network Selector Modal */}
+ setNetworkSelectorVisible(false)}>
+
+
+ 🌐 Select Network
+
+ Choose the network you want to connect to
+
+ {(Object.keys(NETWORKS) as NetworkType[]).map((networkKey) => {
+ const network = NETWORKS[networkKey];
+ const isSelected = networkKey === currentNetwork;
+ return (
+ handleNetworkSwitch(networkKey)}
+ >
+
+
+ {network.displayName}
+
+
+ {network.type === 'mainnet' ? '🟢 Mainnet' : network.type === 'testnet' ? '🟡 Testnet' : '🟠 Canary'}
+
+
+ {isSelected && ✓}
+
+ );
+ })}
+ setNetworkSelectorVisible(false)}>
+ Close
+
+
+
+
+
+ {/* Add Token Modal */}
+ setAddTokenModalVisible(false)}
+ onTokenAdded={fetchData}
+ />
+
);
};
@@ -568,316 +695,382 @@ const WalletScreen: React.FC = () => {
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: '#F5F5F5',
+ backgroundColor: '#F8F9FA'
},
- loadingContainer: {
+ scrollContent: {
flex: 1,
- justifyContent: 'center',
+ },
+
+ // Header Styles (New Design)
+ headerContainer: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
alignItems: 'center',
- padding: 20,
- },
- loadingText: {
- marginTop: 16,
- fontSize: 16,
- color: '#666',
- },
- errorText: {
- marginTop: 20,
- fontSize: 14,
- color: KurdistanColors.sor,
- textAlign: 'center',
paddingHorizontal: 20,
+ paddingTop: Platform.OS === 'android' ? 16 : 12,
+ paddingBottom: 16,
+ backgroundColor: '#FFFFFF',
},
- connectGradient: {
- flex: 1,
- },
- connectContainer: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- padding: 20,
- },
- logoContainer: {
- width: 100,
- height: 100,
- borderRadius: 50,
- backgroundColor: KurdistanColors.spi,
- justifyContent: 'center',
- alignItems: 'center',
- marginBottom: 20,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 8,
- elevation: 8,
- },
- logoText: {
- fontSize: 48,
- },
- connectTitle: {
- fontSize: 28,
+ walletTitle: {
+ fontSize: 22,
fontWeight: 'bold',
- color: KurdistanColors.spi,
+ color: '#333',
+ },
+ networkBadge: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 16,
+ overflow: 'hidden',
+ },
+
+ // Main Token Cards (HEZ & PEZ) - New Design
+ mainTokensRow: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ paddingVertical: 16,
+ gap: 12,
+ },
+ mainTokenCard: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 20,
+ padding: 20,
+ alignItems: 'center',
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.08)',
+ elevation: 4,
+ },
+ mainTokenLogo: {
+ width: 56,
+ height: 56,
marginBottom: 12,
},
- connectSubtitle: {
- fontSize: 16,
- color: KurdistanColors.spi,
- textAlign: 'center',
- opacity: 0.9,
- marginBottom: 40,
- },
- connectButton: {
- backgroundColor: KurdistanColors.spi,
- paddingHorizontal: 40,
- paddingVertical: 16,
- borderRadius: 12,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
- elevation: 6,
- },
- connectButtonText: {
+ mainTokenSymbol: {
fontSize: 18,
fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ mainTokenBalance: {
+ fontSize: 24,
+ fontWeight: 'bold',
color: KurdistanColors.kesk,
+ marginBottom: 4,
},
- header: {
- padding: 20,
- paddingTop: 40,
+ mainTokenSubtitle: {
+ fontSize: 11,
+ color: '#888',
},
- headerTitle: {
- fontSize: 24,
- fontWeight: 'bold',
- color: KurdistanColors.spi,
- marginBottom: 12,
- },
- addressContainer: {
+
+ // Action Buttons Grid (2x4) - New Design
+ actionsGrid: {
flexDirection: 'row',
- alignItems: 'center',
- marginBottom: 12,
- },
- addressLabel: {
- fontSize: 14,
- color: KurdistanColors.spi,
- opacity: 0.9,
- marginRight: 8,
- },
- addressText: {
- fontSize: 14,
- color: KurdistanColors.spi,
- fontFamily: 'monospace',
- },
- disconnectButton: {
- alignSelf: 'flex-start',
+ flexWrap: 'wrap',
paddingHorizontal: 16,
paddingVertical: 8,
- backgroundColor: 'rgba(255, 255, 255, 0.2)',
- borderRadius: 8,
- },
- disconnectButtonText: {
- fontSize: 12,
- color: KurdistanColors.spi,
- fontWeight: '600',
- },
- tokensContainer: {
- flex: 1,
- padding: 20,
- },
- sectionTitle: {
- fontSize: 18,
- fontWeight: '600',
- color: KurdistanColors.reş,
- marginBottom: 16,
- },
- tokenCard: {
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-between',
- backgroundColor: KurdistanColors.spi,
- borderRadius: 16,
- padding: 16,
- marginBottom: 12,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.05,
- shadowRadius: 6,
- elevation: 3,
- },
- tokenCardDisabled: {
- opacity: 0.6,
- },
- tokenInfo: {
- flexDirection: 'row',
- alignItems: 'center',
- flex: 1,
- },
- tokenLogoContainer: {
- width: 48,
- height: 48,
- borderRadius: 24,
- backgroundColor: '#F0F0F0',
- justifyContent: 'center',
- alignItems: 'center',
- marginRight: 12,
- },
- tokenLogo: {
- fontSize: 24,
- },
- tokenDetails: {
- flex: 1,
- },
- tokenSymbol: {
- fontSize: 16,
- fontWeight: '600',
- color: KurdistanColors.reş,
- marginBottom: 4,
- },
- tokenName: {
- fontSize: 14,
- color: '#666',
- },
- tokenBalance: {
- alignItems: 'flex-end',
- },
- balanceAmount: {
- fontSize: 16,
- fontWeight: '600',
- color: KurdistanColors.reş,
- marginBottom: 4,
- },
- balanceValue: {
- fontSize: 14,
- color: '#666',
- },
- comingSoonBadge: {
- position: 'absolute',
- top: 8,
- right: 8,
- backgroundColor: KurdistanColors.zer,
- paddingHorizontal: 8,
- paddingVertical: 4,
- borderRadius: 4,
- },
- comingSoonText: {
- fontSize: 10,
- fontWeight: 'bold',
- color: KurdistanColors.reş,
- },
- actionsContainer: {
- flexDirection: 'row',
- padding: 20,
gap: 12,
},
actionButton: {
- flex: 1,
- backgroundColor: KurdistanColors.kesk,
- borderRadius: 12,
- padding: 16,
+ width: '23%',
+ aspectRatio: 1,
+ borderRadius: 16,
+ justifyContent: 'center',
alignItems: 'center',
- shadowColor: KurdistanColors.kesk,
- shadowOffset: { width: 0, height: 4 },
- shadowOpacity: 0.3,
- shadowRadius: 6,
- elevation: 6,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
+ elevation: 3,
},
actionIcon: {
fontSize: 24,
- marginBottom: 8,
+ color: '#FFFFFF',
+ marginBottom: 4,
},
- actionText: {
- fontSize: 14,
+ actionLabel: {
+ fontSize: 11,
fontWeight: '600',
- color: KurdistanColors.spi,
+ color: '#FFFFFF',
},
- modalOverlay: {
- flex: 1,
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
- justifyContent: 'center',
+
+ // Tokens List Section - New Design
+ tokensSection: {
+ paddingHorizontal: 16,
+ paddingTop: 20,
+ },
+ tokensSectionHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
alignItems: 'center',
- padding: 20,
+ marginBottom: 16,
+ paddingHorizontal: 4,
},
- modalContent: {
- backgroundColor: KurdistanColors.spi,
- borderRadius: 20,
- padding: 24,
- width: '100%',
- maxWidth: 400,
- },
- modalTitle: {
+ tokensTitle: {
fontSize: 20,
fontWeight: 'bold',
- color: KurdistanColors.reş,
- marginBottom: 12,
- textAlign: 'center',
+ color: '#333',
},
- balanceHint: {
- fontSize: 14,
- color: '#666',
- marginBottom: 20,
- textAlign: 'center',
- },
- input: {
- backgroundColor: '#F5F5F5',
- borderRadius: 12,
- padding: 16,
- fontSize: 16,
- marginBottom: 16,
- borderWidth: 1,
- borderColor: '#E0E0E0',
- },
- modalButtons: {
+ tokenHeaderIcons: {
flexDirection: 'row',
gap: 12,
},
- modalButton: {
+ tokenHeaderIcon: {
+ width: 36,
+ height: 36,
+ borderRadius: 18,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ tokenListItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 12,
+ boxShadow: '0px 1px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ tokenListLogo: {
+ width: 44,
+ height: 44,
+ marginRight: 12,
+ },
+ tokenListInfo: {
+ flex: 1,
+ },
+ tokenListSymbol: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 2,
+ },
+ tokenListNetwork: {
+ fontSize: 12,
+ color: '#888',
+ },
+ tokenListBalance: {
+ alignItems: 'flex-end',
+ },
+ tokenListAmount: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 2,
+ },
+ tokenListUsdValue: {
+ fontSize: 12,
+ color: '#888',
+ },
+
+ // Modal Styles
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 20
+ },
+ modalCard: {
+ backgroundColor: 'white',
+ borderRadius: 20,
+ padding: 24,
+ width: '100%',
+ alignItems: 'center'
+ },
+ modalHeader: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ marginBottom: 20
+ },
+ inputField: {
+ width: '100%',
+ backgroundColor: '#F5F5F5',
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 12
+ },
+ modalActions: {
+ flexDirection: 'row',
+ width: '100%',
+ gap: 12,
+ marginTop: 10
+ },
+ btnCancel: {
flex: 1,
padding: 16,
borderRadius: 12,
- alignItems: 'center',
+ backgroundColor: '#EEE',
+ alignItems: 'center'
},
- cancelButton: {
- backgroundColor: '#E0E0E0',
- },
- cancelButtonText: {
- fontSize: 16,
- fontWeight: '600',
- color: '#666',
- },
- confirmButton: {
- backgroundColor: KurdistanColors.kesk,
- },
- confirmButtonText: {
- fontSize: 16,
- fontWeight: '600',
- color: KurdistanColors.spi,
- },
- disabledButton: {
- opacity: 0.5,
- },
- qrPlaceholder: {
- width: 200,
- height: 200,
- backgroundColor: '#F0F0F0',
+ btnConfirm: {
+ flex: 1,
+ padding: 16,
borderRadius: 12,
- alignSelf: 'center',
- marginBottom: 20,
- textAlign: 'center',
- lineHeight: 200,
- fontSize: 16,
- color: '#999',
+ backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center'
},
- addressDisplay: {
- fontSize: 12,
- fontFamily: 'monospace',
- color: '#666',
+ addrFull: {
textAlign: 'center',
- marginBottom: 20,
- padding: 12,
+ color: '#666',
+ fontSize: 12,
+ marginVertical: 10,
+ fontFamily: 'monospace'
+ },
+
+ // Network Selector Styles
+ networkOption: {
+ flexDirection: 'row',
+ width: '100%',
+ padding: 16,
+ borderRadius: 12,
backgroundColor: '#F5F5F5',
- borderRadius: 8,
+ marginBottom: 8,
+ alignItems: 'center'
+ },
+ networkOptionSelected: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk
+ },
+ networkName: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333'
+ },
+ networkType: {
+ fontSize: 12,
+ color: '#666',
+ marginTop: 4
+ },
+
+ // Welcome Screen Styles
+ welcomeGradient: {
+ flex: 0.45,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderBottomLeftRadius: 32,
+ borderBottomRightRadius: 32,
+ },
+ welcomeContent: {
+ alignItems: 'center',
+ paddingHorizontal: 20,
+ },
+ welcomeEmoji: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ welcomeTitle: {
+ fontSize: 18,
+ color: 'rgba(255,255,255,0.8)',
+ marginBottom: 8,
+ },
+ welcomeBrand: {
+ fontSize: 32,
+ fontWeight: 'bold',
+ color: 'white',
+ marginBottom: 8,
+ textAlign: 'center',
+ },
+ welcomeSubtitle: {
+ fontSize: 16,
+ color: 'rgba(255,255,255,0.7)',
+ textAlign: 'center',
+ },
+
+ // Button Container (Welcome Screen)
+ buttonContainer: {
+ flex: 0.55,
+ paddingHorizontal: 24,
+ paddingTop: 32,
+ justifyContent: 'flex-start',
+ },
+
+ // Primary Button (Welcome Screen)
+ primaryWalletButton: {
+ marginBottom: 16,
+ borderRadius: 16,
+ overflow: 'hidden',
+ boxShadow: '0px 4px 8px rgba(0, 128, 0, 0.3)',
+ elevation: 8,
+ },
+ buttonGradient: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 20,
+ borderRadius: 16,
+ },
+ buttonIcon: {
+ width: 52,
+ height: 52,
+ borderRadius: 26,
+ backgroundColor: 'rgba(255,255,255,0.2)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 16,
+ },
+ buttonIconText: {
+ fontSize: 24,
+ color: 'white',
+ },
+ buttonTextContainer: {
+ flex: 1,
+ },
+ primaryButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: 'white',
+ marginBottom: 4,
+ },
+ primaryButtonSubtext: {
+ fontSize: 14,
+ color: 'rgba(255,255,255,0.8)',
+ },
+
+ // Secondary Button (Welcome Screen)
+ secondaryWalletButton: {
+ backgroundColor: 'white',
+ borderRadius: 16,
+ marginBottom: 24,
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
+ elevation: 4,
+ },
+ secondaryButtonContent: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 20,
+ },
+ secondaryButtonText: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 4,
+ },
+ secondaryButtonSubtext: {
+ fontSize: 14,
+ color: '#666',
+ },
+
+ // Security Notice (Welcome Screen)
+ securityNotice: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: 'rgba(0,105,62,0.05)',
+ padding: 16,
+ borderRadius: 12,
+ marginTop: 'auto',
+ marginBottom: 20,
+ },
+ securityIcon: {
+ fontSize: 20,
+ marginRight: 12,
+ },
+ securityText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#666',
+ lineHeight: 18,
},
});
-export default WalletScreen;
+export default WalletScreen;
\ No newline at end of file
diff --git a/mobile/src/screens/WalletScreen.tsx.bak b/mobile/src/screens/WalletScreen.tsx.bak
new file mode 100644
index 00000000..c9089e4f
--- /dev/null
+++ b/mobile/src/screens/WalletScreen.tsx.bak
@@ -0,0 +1,1091 @@
+import React, { useState, useEffect, useCallback } from 'react';
+import {
+ View,
+ Text,
+ TouchableOpacity,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ StatusBar,
+ Modal,
+ TextInput,
+ Alert,
+ ActivityIndicator,
+ RefreshControl,
+ Image,
+ Platform,
+ Clipboard,
+ Share,
+} from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useTranslation } from 'react-i18next';
+import { useNavigation } from '@react-navigation/native';
+import QRCode from 'react-native-qrcode-svg';
+import { KurdistanColors } from '../theme/colors';
+import { usePezkuwi, NetworkType, NETWORKS } from '../contexts/PezkuwiContext';
+import { AddTokenModal } from '../components/wallet/AddTokenModal';
+
+// Token Images - From shared/images
+const hezLogo = require('../../../shared/images/hez_logo.png');
+const pezLogo = require('../../../shared/images/pez_logo.jpg');
+const usdtLogo = require('../../../shared/images/USDT(hez)logo.png');
+const dotLogo = require('../../../shared/images/dot.png');
+const btcLogo = require('../../../shared/images/bitcoin.png');
+const ethLogo = require('../../../shared/images/etherium.png');
+const bnbLogo = require('../../../shared/images/BNB_logo.png');
+const adaLogo = require('../../../shared/images/ADAlogo.png');
+
+interface Token {
+ symbol: string;
+ name: string;
+ balance: string;
+ value: string;
+ change: string;
+ logo: any; // Image source
+ assetId?: number;
+ isLive: boolean;
+}
+
+interface Transaction {
+ hash: string;
+ method: string;
+ section: string;
+ from: string;
+ to?: string;
+ amount?: string;
+ blockNumber: number;
+ timestamp?: number;
+ isIncoming: boolean;
+}
+
+const WalletScreen: React.FC = () => {
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const {
+ api,
+ isApiReady,
+ accounts,
+ selectedAccount,
+ connectWallet,
+ disconnectWallet,
+ createWallet,
+ getKeyPair,
+ currentNetwork,
+ switchNetwork,
+ error: pezkuwiError
+ } = usePezkuwi();
+
+ const [selectedToken, setSelectedToken] = useState(null);
+ const [sendModalVisible, setSendModalVisible] = useState(false);
+ const [receiveModalVisible, setReceiveModalVisible] = useState(false);
+ const [createWalletModalVisible, setCreateWalletModalVisible] = useState(false);
+ const [importWalletModalVisible, setImportWalletModalVisible] = useState(false);
+ const [backupModalVisible, setBackupModalVisible] = useState(false);
+ const [networkSelectorVisible, setNetworkSelectorVisible] = useState(false);
+ const [addTokenModalVisible, setAddTokenModalVisible] = useState(false);
+ const [recipientAddress, setRecipientAddress] = useState('');
+ const [sendAmount, setSendAmount] = useState('');
+ const [walletName, setWalletName] = useState('');
+ const [importMnemonic, setImportMnemonic] = useState('');
+ const [importWalletName, setImportWalletName] = useState('');
+ const [userMnemonic, setUserMnemonic] = useState('');
+ const [isSending, setIsSending] = useState(false);
+ const [isLoadingBalances, setIsLoadingBalances] = useState(false);
+
+ // Transaction History State
+ const [transactions, setTransactions] = useState([]);
+ const [isLoadingHistory, setIsLoadingHistory] = useState(false);
+
+ const [balances, setBalances] = useState<{ [key: string]: string }>({
+ HEZ: '0.00',
+ PEZ: '0.00',
+ USDT: '0.00',
+ });
+
+ const tokens: Token[] = [
+ {
+ symbol: 'HEZ',
+ name: 'Pezkuwi',
+ balance: balances.HEZ,
+ value: '$0.00',
+ change: '+0.00%',
+ logo: hezLogo,
+ isLive: true
+ },
+ {
+ symbol: 'PEZ',
+ name: 'Pezkuwi Token',
+ balance: balances.PEZ,
+ value: '$0.00',
+ change: '+0.00%',
+ logo: pezLogo,
+ assetId: 1,
+ isLive: true
+ },
+ {
+ symbol: 'USDT',
+ name: 'Tether USD',
+ balance: balances.USDT,
+ value: '$0.00',
+ change: '+0.00%',
+ logo: usdtLogo,
+ assetId: 1000,
+ isLive: true
+ },
+ ];
+
+ // Fetch balances and history
+ const fetchData = useCallback(async () => {
+ if (!api || !isApiReady || !selectedAccount) return;
+
+ setIsLoadingBalances(true);
+ try {
+ // 1. Fetch Balances
+ const accountInfo = await api.query.system.account(selectedAccount.address);
+ const hezBalance = (Number(accountInfo.data.free.toString()) / 1e12).toFixed(2);
+
+ let pezBalance = '0.00';
+ try {
+ if (api.query.assets?.account) {
+ const pezAsset = await api.query.assets.account(1, selectedAccount.address);
+ if (pezAsset.isSome) pezBalance = (Number(pezAsset.unwrap().balance.toString()) / 1e12).toFixed(2);
+ }
+ } catch {}
+
+ let usdtBalance = '0.00';
+ try {
+ if (api.query.assets?.account) {
+ // Check ID 1000 first (as per constants), fallback to 2 just in case
+ let usdtAsset = await api.query.assets.account(1000, selectedAccount.address);
+ if (usdtAsset.isNone) {
+ usdtAsset = await api.query.assets.account(2, selectedAccount.address);
+ }
+
+ if (usdtAsset.isSome) {
+ // USDT uses 6 decimals usually, checking constants or assuming standard
+ usdtBalance = (Number(usdtAsset.unwrap().balance.toString()) / 1e6).toFixed(2);
+ }
+ }
+ } catch {}
+
+ setBalances({ HEZ: hezBalance, PEZ: pezBalance, USDT: usdtBalance });
+
+ // 2. Fetch History from Indexer API (MUCH FASTER)
+ setIsLoadingHistory(true);
+ try {
+ const INDEXER_URL = 'http://172.31.134.70:3001'; // Update this to your local IP for physical device testing
+ const response = await fetch(`${INDEXER_URL}/api/history/${selectedAccount.address}`);
+ const data = await response.json();
+
+ const txList = data.map((tx: any) => ({
+ hash: tx.hash,
+ method: tx.asset_id ? 'transfer' : 'transfer',
+ section: tx.asset_id ? 'assets' : 'balances',
+ from: tx.sender,
+ to: tx.receiver,
+ amount: tx.amount,
+ blockNumber: tx.block_number,
+ isIncoming: tx.receiver === selectedAccount.address,
+ }));
+
+ setTransactions(txList);
+ } catch (e) {
+ console.warn('Indexer API unreachable, history not updated', e);
+ }
+
+ } catch (error) {
+ console.error('Fetch error:', error);
+ } finally {
+ setIsLoadingBalances(false);
+ setIsLoadingHistory(false);
+ }
+ }, [api, isApiReady, selectedAccount]);
+
+ useEffect(() => {
+ fetchData();
+ const interval = setInterval(fetchData, 30000);
+ return () => clearInterval(interval);
+ }, [fetchData]);
+
+ const handleTokenPress = (token: Token) => {
+ if (!token.isLive) return;
+ setSelectedToken(token);
+ setSendModalVisible(true);
+ };
+
+ const handleSend = () => {
+ setSelectedToken(tokens[0]); // Default to HEZ
+ setSendModalVisible(true);
+ };
+
+ const handleReceive = () => {
+ setSelectedToken(tokens[0]);
+ setReceiveModalVisible(true);
+ };
+
+ const handleConfirmSend = async () => {
+ if (!recipientAddress || !sendAmount || !selectedToken || !selectedAccount || !api) {
+ Alert.alert('Error', 'Please enter recipient address and amount');
+ return;
+ }
+
+ setIsSending(true);
+ try {
+ const keypair = await getKeyPair(selectedAccount.address);
+ if (!keypair) throw new Error('Failed to load keypair');
+
+ // Adjust decimals based on token
+ const decimals = selectedToken.symbol === 'USDT' ? 1e6 : 1e12;
+ const amountInUnits = BigInt(Math.floor(parseFloat(sendAmount) * decimals));
+
+ let tx;
+ if (selectedToken.symbol === 'HEZ') {
+ tx = api.tx.balances.transfer(recipientAddress, amountInUnits);
+ } else if (selectedToken.assetId !== undefined) {
+ tx = api.tx.assets.transfer(selectedToken.assetId, recipientAddress, amountInUnits);
+ } else {
+ throw new Error('Unknown token type');
+ }
+
+ await tx.signAndSend(keypair, ({ status }) => {
+ if (status.isFinalized) {
+ setSendModalVisible(false);
+ setIsSending(false);
+ Alert.alert('Success', 'Transaction Sent!');
+ fetchData();
+ }
+ });
+ } catch (e: any) {
+ setIsSending(false);
+ Alert.alert('Error', e.message);
+ }
+ };
+
+ // Connect/Create Wallet handlers
+ const handleConnectWallet = async () => {
+ if (accounts.length === 0) setCreateWalletModalVisible(true);
+ else await connectWallet();
+ };
+
+ const handleCreateWallet = async () => {
+ try {
+ const { address, mnemonic } = await createWallet(walletName);
+ setUserMnemonic(mnemonic); // Save for backup
+ setCreateWalletModalVisible(false);
+ Alert.alert('Wallet Created', `Save this mnemonic:\n${mnemonic}`, [{ text: 'OK', onPress: () => connectWallet() }]);
+ } catch (e) { Alert.alert('Error', 'Failed'); }
+ };
+
+ // Copy Address Handler
+ const handleCopyAddress = () => {
+ if (!selectedAccount) return;
+ Clipboard.setString(selectedAccount.address);
+ Alert.alert('Copied!', 'Address copied to clipboard');
+ };
+
+ // Import Wallet Handler
+ const handleImportWallet = async () => {
+ if (!importMnemonic.trim()) {
+ Alert.alert('Error', 'Please enter a valid mnemonic');
+ return;
+ }
+ try {
+ // Use createWallet but inject mnemonic (you may need to modify PezkuwiContext)
+ // For now, basic implementation:
+ const { Keyring } = await import('@pezkuwi/keyring');
+ const keyring = new Keyring({ type: 'sr25519' });
+ const pair = keyring.addFromMnemonic(importMnemonic.trim());
+
+ // Store in AsyncStorage (via context method ideally)
+ Alert.alert('Success', `Wallet imported: ${pair.address.slice(0,8)}...`);
+ setImportWalletModalVisible(false);
+ setImportMnemonic('');
+ connectWallet();
+ } catch (e: any) {
+ Alert.alert('Error', e.message || 'Invalid mnemonic');
+ }
+ };
+
+ // Backup Mnemonic Handler
+ const handleBackupMnemonic = async () => {
+ // Retrieve mnemonic from secure storage
+ // For demo, we show the saved one or prompt user
+ if (userMnemonic) {
+ setBackupModalVisible(true);
+ } else {
+ Alert.alert('No Backup', 'Mnemonic not available. Create a new wallet or import existing one.');
+ }
+ };
+
+ // Share QR Code
+ const handleShareQR = async () => {
+ if (!selectedAccount) return;
+ try {
+ await Share.share({
+ message: `My Pezkuwichain Address:\n${selectedAccount.address}`,
+ });
+ } catch (e) {
+ console.error(e);
+ }
+ };
+
+ // Network Switch Handler
+ const handleNetworkSwitch = async (network: NetworkType) => {
+ try {
+ await switchNetwork(network);
+ setNetworkSelectorVisible(false);
+ Alert.alert('Success', `Switched to ${NETWORKS[network].displayName}`);
+ } catch (e: any) {
+ Alert.alert('Error', e.message || 'Failed to switch network');
+ }
+ };
+
+ if (!selectedAccount) {
+ return (
+
+
+
+ 🔐
+ Welcome to
+ Pezkuwichain Wallet
+
+ Secure, Fast & Decentralized
+
+
+
+
+
+
+
+
+ ➕
+
+
+ Create New Wallet
+
+ Get started in seconds
+
+
+
+
+
+ setImportWalletModalVisible(true)}
+ activeOpacity={0.8}
+ >
+
+
+ 📥
+
+
+ Import Existing Wallet
+
+ Use your seed phrase
+
+
+
+
+
+
+ 🛡️
+
+ Your keys are encrypted and stored locally on your device
+
+
+
+
+ {/* Create Wallet Modal */}
+ setCreateWalletModalVisible(false)}>
+
+
+ Create New Wallet
+
+
+ setCreateWalletModalVisible(false)}>Cancel
+ Create
+
+
+
+
+
+ {/* Import Wallet Modal */}
+ setImportWalletModalVisible(false)}>
+
+
+ Import Wallet
+ Enter your 12 or 24 word mnemonic phrase
+
+
+ setImportWalletModalVisible(false)}>Cancel
+ Import
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ }
+ showsVerticalScrollIndicator={false}
+ >
+ {/* Header */}
+
+ pezkuwi wallet
+ setNetworkSelectorVisible(true)}>
+ 🌐 {NETWORKS[currentNetwork].displayName}
+
+
+
+ {/* Main Token Cards - HEZ and PEZ side by side */}
+
+ {/* HEZ Card */}
+ handleTokenPress(tokens[0])}>
+
+ HEZ
+ {balances.HEZ}
+ Hemuwelet Token
+
+
+ {/* PEZ Card */}
+ handleTokenPress(tokens[1])}>
+
+ PEZ
+ {balances.PEZ}
+ Pezkunel Token
+
+
+
+ {/* Action Buttons Grid - 2x4 */}
+
+ {/* Row 1 */}
+
+ ↑
+ Send
+
+
+
+ ↓
+ Receive
+
+
+ Alert.alert('Scan', 'QR Scanner coming soon')}>
+ ⊡
+ Scan
+
+
+ Alert.alert('P2P', 'Navigate to P2P Platform')}>
+ 👥
+ P2P
+
+
+ {/* Row 2 */}
+ Alert.alert('Vote', 'Navigate to Governance')}>
+ 🗳️
+ Vote
+
+
+ Alert.alert('Dapps', 'Navigate to Apps')}>
+ ⊞
+ Dapps
+
+
+ Alert.alert('Staking', 'Navigate to Staking')}>
+ 🥩
+ Staking
+
+
+ setNetworkSelectorVisible(true)}>
+ 🔗
+ Connect
+
+
+
+ {/* Tokens List */}
+
+
+ Tokens
+
+
+ 🔍
+
+ setAddTokenModalVisible(true)}>
+ ➕
+
+
+ ⚙️
+
+
+
+
+ {/* USDT */}
+
+
+
+ USDT
+ PEZ Network
+
+
+ {balances.USDT}
+ $0.00
+
+
+
+ {/* DOT */}
+
+
+
+ DOT
+ Polkadot
+
+
+ 0.00
+ $0.00
+
+
+
+
+
+
+
+ {/* Modals */}
+ setSendModalVisible(false)}>
+
+
+ Send {selectedToken?.symbol}
+
+ {selectedToken && }
+
+
+
+
+ setSendModalVisible(false)}>Cancel
+
+ {isSending ? 'Sending...' : 'Confirm'}
+
+
+
+
+
+
+ setReceiveModalVisible(false)}>
+
+
+ Receive Address
+
+ {selectedAccount && }
+
+ {selectedAccount?.address}
+
+
+ 📋 Copy
+
+
+ 📤 Share
+
+
+ setReceiveModalVisible(false)}>
+ Close
+
+
+
+
+
+ {/* Backup Mnemonic Modal */}
+ setBackupModalVisible(false)}>
+
+
+ 🔐 Backup Mnemonic
+
+ ⚠️ NEVER share this with anyone! Write it down and store safely.
+
+
+ {userMnemonic}
+
+
+ {
+ Clipboard.setString(userMnemonic);
+ Alert.alert('Copied', 'Mnemonic copied to clipboard');
+ }}>
+ 📋 Copy
+
+ setBackupModalVisible(false)}>
+ Close
+
+
+
+
+
+
+ {/* Network Selector Modal */}
+ setNetworkSelectorVisible(false)}>
+
+
+ 🌐 Select Network
+
+ Choose the network you want to connect to
+
+ {(Object.keys(NETWORKS) as NetworkType[]).map((networkKey) => {
+ const network = NETWORKS[networkKey];
+ const isSelected = networkKey === currentNetwork;
+ return (
+ handleNetworkSwitch(networkKey)}
+ >
+
+
+ {network.displayName}
+
+
+ {network.type === 'mainnet' ? '🟢 Mainnet' : network.type === 'testnet' ? '🟡 Testnet' : '🟠 Canary'}
+
+
+ {isSelected && ✓}
+
+ );
+ })}
+ setNetworkSelectorVisible(false)}>
+ Close
+
+
+
+
+
+ {/* Add Token Modal */}
+ setAddTokenModalVisible(false)}
+ onTokenAdded={fetchData}
+ />
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA'
+ },
+ scrollContent: {
+ flex: 1,
+ },
+
+ // Header Styles (New Design)
+ headerContainer: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ paddingHorizontal: 20,
+ paddingTop: Platform.OS === 'android' ? 16 : 12,
+ paddingBottom: 16,
+ backgroundColor: '#FFFFFF',
+ },
+ walletTitle: {
+ fontSize: 22,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ networkBadge: {
+ fontSize: 14,
+ color: KurdistanColors.kesk,
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 16,
+ overflow: 'hidden',
+ },
+
+ // Main Token Cards (HEZ & PEZ) - New Design
+ mainTokensRow: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ paddingVertical: 16,
+ gap: 12,
+ },
+ mainTokenCard: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 20,
+ padding: 20,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.08,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ mainTokenLogo: {
+ width: 56,
+ height: 56,
+ marginBottom: 12,
+ },
+ mainTokenSymbol: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ mainTokenBalance: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginBottom: 4,
+ },
+ mainTokenSubtitle: {
+ fontSize: 11,
+ color: '#888',
+ },
+
+ // Action Buttons Grid (2x4) - New Design
+ actionsGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ gap: 12,
+ },
+ actionButton: {
+ width: '23%',
+ aspectRatio: 1,
+ borderRadius: 16,
+ justifyContent: 'center',
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 4,
+ elevation: 3,
+ },
+ actionIcon: {
+ fontSize: 24,
+ color: '#FFFFFF',
+ marginBottom: 4,
+ },
+ actionLabel: {
+ fontSize: 11,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+
+ // Tokens List Section - New Design
+ tokensSection: {
+ paddingHorizontal: 16,
+ paddingTop: 20,
+ },
+ tokensSectionHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ paddingHorizontal: 4,
+ },
+ tokensTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ tokenHeaderIcons: {
+ flexDirection: 'row',
+ gap: 12,
+ },
+ tokenHeaderIcon: {
+ width: 36,
+ height: 36,
+ borderRadius: 18,
+ backgroundColor: '#F5F5F5',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ tokenListItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ tokenListLogo: {
+ width: 44,
+ height: 44,
+ marginRight: 12,
+ },
+ tokenListInfo: {
+ flex: 1,
+ },
+ tokenListSymbol: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 2,
+ },
+ tokenListNetwork: {
+ fontSize: 12,
+ color: '#888',
+ },
+ tokenListBalance: {
+ alignItems: 'flex-end',
+ },
+ tokenListAmount: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 2,
+ },
+ tokenListUsdValue: {
+ fontSize: 12,
+ color: '#888',
+ },
+
+ // Modal Styles
+ modalOverlay: {
+ flex: 1,
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 20
+ },
+ modalCard: {
+ backgroundColor: 'white',
+ borderRadius: 20,
+ padding: 24,
+ width: '100%',
+ alignItems: 'center'
+ },
+ modalHeader: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ marginBottom: 20
+ },
+ inputField: {
+ width: '100%',
+ backgroundColor: '#F5F5F5',
+ padding: 16,
+ borderRadius: 12,
+ marginBottom: 12
+ },
+ modalActions: {
+ flexDirection: 'row',
+ width: '100%',
+ gap: 12,
+ marginTop: 10
+ },
+ btnCancel: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#EEE',
+ alignItems: 'center'
+ },
+ btnConfirm: {
+ flex: 1,
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: KurdistanColors.kesk,
+ alignItems: 'center'
+ },
+ addrFull: {
+ textAlign: 'center',
+ color: '#666',
+ fontSize: 12,
+ marginVertical: 10,
+ fontFamily: 'monospace'
+ },
+
+ // Network Selector Styles
+ networkOption: {
+ flexDirection: 'row',
+ width: '100%',
+ padding: 16,
+ borderRadius: 12,
+ backgroundColor: '#F5F5F5',
+ marginBottom: 8,
+ alignItems: 'center'
+ },
+ networkOptionSelected: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk
+ },
+ networkName: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#333'
+ },
+ networkType: {
+ fontSize: 12,
+ color: '#666',
+ marginTop: 4
+ },
+
+ // Welcome Screen Styles
+ welcomeGradient: {
+ flex: 0.45,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderBottomLeftRadius: 32,
+ borderBottomRightRadius: 32,
+ },
+ welcomeContent: {
+ alignItems: 'center',
+ paddingHorizontal: 20,
+ },
+ welcomeEmoji: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ welcomeTitle: {
+ fontSize: 18,
+ color: 'rgba(255,255,255,0.8)',
+ marginBottom: 8,
+ },
+ welcomeBrand: {
+ fontSize: 32,
+ fontWeight: 'bold',
+ color: 'white',
+ marginBottom: 8,
+ textAlign: 'center',
+ },
+ welcomeSubtitle: {
+ fontSize: 16,
+ color: 'rgba(255,255,255,0.7)',
+ textAlign: 'center',
+ },
+
+ // Button Container (Welcome Screen)
+ buttonContainer: {
+ flex: 0.55,
+ paddingHorizontal: 24,
+ paddingTop: 32,
+ justifyContent: 'flex-start',
+ },
+
+ // Primary Button (Welcome Screen)
+ primaryWalletButton: {
+ marginBottom: 16,
+ borderRadius: 16,
+ overflow: 'hidden',
+ shadowColor: KurdistanColors.kesk,
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.3,
+ shadowRadius: 8,
+ elevation: 8,
+ },
+ buttonGradient: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 20,
+ borderRadius: 16,
+ },
+ buttonIcon: {
+ width: 52,
+ height: 52,
+ borderRadius: 26,
+ backgroundColor: 'rgba(255,255,255,0.2)',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 16,
+ },
+ buttonIconText: {
+ fontSize: 24,
+ color: 'white',
+ },
+ buttonTextContainer: {
+ flex: 1,
+ },
+ primaryButtonText: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: 'white',
+ marginBottom: 4,
+ },
+ primaryButtonSubtext: {
+ fontSize: 14,
+ color: 'rgba(255,255,255,0.8)',
+ },
+
+ // Secondary Button (Welcome Screen)
+ secondaryWalletButton: {
+ backgroundColor: 'white',
+ borderRadius: 16,
+ marginBottom: 24,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.1,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ secondaryButtonContent: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 20,
+ },
+ secondaryButtonText: {
+ fontSize: 18,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 4,
+ },
+ secondaryButtonSubtext: {
+ fontSize: 14,
+ color: '#666',
+ },
+
+ // Security Notice (Welcome Screen)
+ securityNotice: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: 'rgba(0,105,62,0.05)',
+ padding: 16,
+ borderRadius: 12,
+ marginTop: 'auto',
+ marginBottom: 20,
+ },
+ securityIcon: {
+ fontSize: 20,
+ marginRight: 12,
+ },
+ securityText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#666',
+ lineHeight: 18,
+ },
+});
+
+export default WalletScreen;
\ No newline at end of file
diff --git a/mobile/src/screens/__tests__/BeCitizenScreen.test.tsx b/mobile/src/screens/__tests__/BeCitizenScreen.test.tsx
index b6ede908..7e61d83c 100644
--- a/mobile/src/screens/__tests__/BeCitizenScreen.test.tsx
+++ b/mobile/src/screens/__tests__/BeCitizenScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import BeCitizenScreen from '../BeCitizenScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const BeCitizenScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/EducationScreen.test.tsx b/mobile/src/screens/__tests__/EducationScreen.test.tsx
index bc56c335..dd0afdb0 100644
--- a/mobile/src/screens/__tests__/EducationScreen.test.tsx
+++ b/mobile/src/screens/__tests__/EducationScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import EducationScreen from '../EducationScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const EducationScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/GovernanceScreen.test.tsx b/mobile/src/screens/__tests__/GovernanceScreen.test.tsx
index bacc96c3..787659be 100644
--- a/mobile/src/screens/__tests__/GovernanceScreen.test.tsx
+++ b/mobile/src/screens/__tests__/GovernanceScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import GovernanceScreen from '../GovernanceScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const GovernanceScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/NFTGalleryScreen.test.tsx b/mobile/src/screens/__tests__/NFTGalleryScreen.test.tsx
index b1fe471d..4f478f80 100644
--- a/mobile/src/screens/__tests__/NFTGalleryScreen.test.tsx
+++ b/mobile/src/screens/__tests__/NFTGalleryScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import NFTGalleryScreen from '../NFTGalleryScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const NFTGalleryScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/P2PScreen.test.tsx b/mobile/src/screens/__tests__/P2PScreen.test.tsx
index 24101a32..5f8a592a 100644
--- a/mobile/src/screens/__tests__/P2PScreen.test.tsx
+++ b/mobile/src/screens/__tests__/P2PScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import P2PScreen from '../P2PScreen';
jest.mock('@react-navigation/native', () => ({
@@ -12,9 +12,9 @@ jest.mock('@react-navigation/native', () => ({
// Wrapper with required providers
const P2PScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/ReferralScreen.test.tsx b/mobile/src/screens/__tests__/ReferralScreen.test.tsx
index 3e27c1f1..148103b3 100644
--- a/mobile/src/screens/__tests__/ReferralScreen.test.tsx
+++ b/mobile/src/screens/__tests__/ReferralScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import ReferralScreen from '../ReferralScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const ReferralScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/StakingScreen.test.tsx b/mobile/src/screens/__tests__/StakingScreen.test.tsx
index b5aa5813..09567f7c 100644
--- a/mobile/src/screens/__tests__/StakingScreen.test.tsx
+++ b/mobile/src/screens/__tests__/StakingScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import StakingScreen from '../StakingScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const StakingScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/SwapScreen.test.tsx b/mobile/src/screens/__tests__/SwapScreen.test.tsx
index 58596304..9692952a 100644
--- a/mobile/src/screens/__tests__/SwapScreen.test.tsx
+++ b/mobile/src/screens/__tests__/SwapScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import SwapScreen from '../SwapScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const SwapScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/__tests__/WalletScreen.test.tsx b/mobile/src/screens/__tests__/WalletScreen.test.tsx
index 1cbede0b..f228830b 100644
--- a/mobile/src/screens/__tests__/WalletScreen.test.tsx
+++ b/mobile/src/screens/__tests__/WalletScreen.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
-import { PolkadotProvider } from '../../contexts/PolkadotContext';
+import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import WalletScreen from '../WalletScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,9 +11,9 @@ jest.mock('@react-navigation/native', () => ({
const WalletScreenWrapper = () => (
-
+
-
+
);
diff --git a/mobile/src/screens/governance/DelegationScreen.tsx b/mobile/src/screens/governance/DelegationScreen.tsx
new file mode 100644
index 00000000..839e4380
--- /dev/null
+++ b/mobile/src/screens/governance/DelegationScreen.tsx
@@ -0,0 +1,795 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ TextInput,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface Delegate {
+ id: string;
+ address: string;
+ name: string;
+ description: string;
+ reputation: number;
+ successRate: number;
+ totalDelegated: string;
+ delegatorCount: number;
+ activeProposals: number;
+ categories: string[];
+}
+
+interface UserDelegation {
+ id: string;
+ delegate: string;
+ delegateAddress: string;
+ amount: string;
+ conviction: number;
+ category?: string;
+ status: 'active' | 'revoked';
+}
+
+// Mock data removed - using real democracy.voting queries
+
+const DelegationScreen: React.FC = () => {
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
+
+ const [delegates, setDelegates] = useState([]);
+ const [userDelegations, setUserDelegations] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedView, setSelectedView] = useState<'explore' | 'my-delegations'>('explore');
+ const [selectedDelegate, setSelectedDelegate] = useState(null);
+ const [delegationAmount, setDelegationAmount] = useState('');
+
+ // Stats
+ const stats = {
+ activeDelegates: delegates.length,
+ totalDelegated: delegates.reduce((sum, d) => sum + parseFloat(d.totalDelegated.replace(/[^0-9]/g, '') || '0'), 0).toLocaleString(),
+ avgSuccessRate: delegates.length > 0 ? Math.round(delegates.reduce((sum, d) => sum + d.successRate, 0) / delegates.length) : 0,
+ userDelegated: userDelegations.reduce((sum, d) => sum + parseFloat(d.amount.replace(/,/g, '') || '0'), 0).toLocaleString(),
+ };
+
+ const formatBalance = (balance: string, decimals: number = 12): string => {
+ const value = BigInt(balance);
+ const divisor = BigInt(10 ** decimals);
+ const wholePart = value / divisor;
+ return wholePart.toLocaleString();
+ };
+
+ const fetchDelegationData = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch voting delegations from democracy pallet
+ if (api.query.democracy?.voting) {
+ const votingEntries = await api.query.democracy.voting.entries();
+ const delegatesMap = new Map();
+
+ votingEntries.forEach(([key, value]: any) => {
+ const voter = key.args[0].toString();
+ const voting = value;
+
+ if (voting.isDelegating) {
+ const delegating = voting.asDelegating;
+ const target = delegating.target.toString();
+ const balance = BigInt(delegating.balance.toString());
+
+ if (delegatesMap.has(target)) {
+ const existing = delegatesMap.get(target)!;
+ delegatesMap.set(target, {
+ delegated: existing.delegated + balance,
+ count: existing.count + 1,
+ });
+ } else {
+ delegatesMap.set(target, { delegated: balance, count: 1 });
+ }
+ }
+ });
+
+ // Convert to delegates array
+ const delegatesData: Delegate[] = Array.from(delegatesMap.entries()).map(([address, data]) => ({
+ id: address,
+ address,
+ name: `Delegate ${address.slice(0, 8)}`,
+ description: 'Community delegate',
+ reputation: data.count * 10,
+ successRate: 90,
+ totalDelegated: formatBalance(data.delegated.toString()),
+ delegatorCount: data.count,
+ activeProposals: 0,
+ categories: ['Governance'],
+ }));
+
+ setDelegates(delegatesData);
+
+ // Fetch user's delegations
+ if (selectedAccount) {
+ const userVoting = await api.query.democracy.voting(selectedAccount.address);
+ if (userVoting.isDelegating) {
+ const delegating = userVoting.asDelegating;
+ setUserDelegations([{
+ id: '1',
+ delegate: `Delegate ${delegating.target.toString().slice(0, 8)}`,
+ delegateAddress: delegating.target.toString(),
+ amount: formatBalance(delegating.balance.toString()),
+ conviction: delegating.conviction.toNumber(),
+ status: 'active' as const,
+ }]);
+ } else {
+ setUserDelegations([]);
+ }
+ }
+ }
+ } catch (error) {
+ console.error('Failed to load delegation data:', error);
+ Alert.alert('Error', 'Failed to load delegation data from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchDelegationData();
+ const interval = setInterval(fetchDelegationData, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchDelegationData();
+ };
+
+ const handleDelegatePress = (delegate: Delegate) => {
+ setSelectedDelegate(delegate);
+ };
+
+ const handleDelegate = async () => {
+ if (!selectedDelegate || !delegationAmount) {
+ Alert.alert('Error', 'Please enter delegation amount');
+ return;
+ }
+
+ Alert.alert(
+ 'Confirm Delegation',
+ `Delegate ${delegationAmount} HEZ to ${selectedDelegate.name}?`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Confirm',
+ onPress: async () => {
+ // TODO: Submit delegation transaction
+ // const tx = api.tx.delegation.delegate(selectedDelegate.address, delegationAmount);
+ // await tx.signAndSend(selectedAccount.address);
+ Alert.alert('Success', `Delegated ${delegationAmount} HEZ to ${selectedDelegate.name}`);
+ setSelectedDelegate(null);
+ setDelegationAmount('');
+ },
+ },
+ ]
+ );
+ };
+
+ const handleRevokeDelegation = (delegation: UserDelegation) => {
+ Alert.alert(
+ 'Revoke Delegation',
+ `Revoke delegation of ${delegation.amount} HEZ to ${delegation.delegate}?`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Revoke',
+ onPress: async () => {
+ // TODO: Submit revoke transaction
+ // const tx = api.tx.delegation.undelegate(delegation.delegateAddress);
+ // await tx.signAndSend(selectedAccount.address);
+ Alert.alert('Success', 'Delegation revoked successfully');
+ },
+ },
+ ]
+ );
+ };
+
+ const getCategoryColor = (category: string) => {
+ const colors: Record = {
+ Treasury: '#F59E0B',
+ Technical: '#3B82F6',
+ Security: '#EF4444',
+ Governance: KurdistanColors.kesk,
+ Community: '#8B5CF6',
+ Education: '#EC4899',
+ };
+ return colors[category] || '#666';
+ };
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Delegation
+ Delegate your voting power
+
+
+ {/* Stats Overview */}
+
+
+ 👥
+ {stats.activeDelegates}
+ Active Delegates
+
+
+ 💰
+ {stats.totalDelegated}
+ Total Delegated
+
+
+ 📊
+ {stats.avgSuccessRate}%
+ Avg Success Rate
+
+
+ 🎯
+ {stats.userDelegated}
+ Your Delegated
+
+
+
+ {/* View Toggle */}
+
+ setSelectedView('explore')}
+ >
+
+ Explore Delegates
+
+
+ setSelectedView('my-delegations')}
+ >
+
+ My Delegations
+
+
+
+
+ {/* Explore Delegates View */}
+ {selectedView === 'explore' && (
+
+ {delegates.map((delegate) => (
+ handleDelegatePress(delegate)}
+ >
+ {/* Delegate Header */}
+
+
+ {delegate.name.substring(0, 2).toUpperCase()}
+
+
+ {delegate.name}
+
+ {delegate.successRate}% success
+
+
+
+
+ {/* Address */}
+
+ {delegate.address.slice(0, 10)}...{delegate.address.slice(-6)}
+
+
+ {/* Description */}
+
+ {delegate.description}
+
+
+ {/* Categories */}
+
+ {delegate.categories.map((cat) => (
+
+ {cat}
+
+ ))}
+
+
+ {/* Stats Row */}
+
+
+ ⭐
+ {delegate.reputation} rep
+
+
+ 💰
+ {delegate.totalDelegated}
+
+
+ 👥
+ {delegate.delegatorCount} delegators
+
+
+ 📋
+ {delegate.activeProposals} active
+
+
+
+ ))}
+
+ )}
+
+ {/* My Delegations View */}
+ {selectedView === 'my-delegations' && (
+
+ {userDelegations.length === 0 ? (
+
+ 🎯
+
+ {selectedAccount
+ ? "You haven't delegated any voting power yet"
+ : 'Connect your wallet to view delegations'}
+
+
+ ) : (
+ userDelegations.map((delegation) => (
+
+ {/* Delegation Header */}
+
+
+ {delegation.delegate}
+
+ {delegation.delegateAddress.slice(0, 10)}...{delegation.delegateAddress.slice(-6)}
+
+
+
+ {delegation.status.toUpperCase()}
+
+
+
+ {/* Delegation Info */}
+
+
+ Amount
+ {delegation.amount} HEZ
+
+
+ Conviction
+ {delegation.conviction}x
+
+ {delegation.category && (
+
+ Category
+ {delegation.category}
+
+ )}
+
+
+ {/* Action Buttons */}
+
+ Alert.alert('Modify Delegation', 'Modify delegation modal would open here')}
+ >
+ Modify
+
+ handleRevokeDelegation(delegation)}
+ >
+ Revoke
+
+
+
+ ))
+ )}
+
+ )}
+
+ {/* Delegation Form (when delegate selected) */}
+ {selectedDelegate && (
+
+
+ Delegate to {selectedDelegate.name}
+ setSelectedDelegate(null)}>
+ ✕
+
+
+
+
+ Amount (HEZ)
+
+
+ Minimum delegation: 100 HEZ
+
+
+ Confirm Delegation
+
+
+
+ )}
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Delegating allows trusted community members to vote on your behalf. You can revoke delegation at any time.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ statsGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ paddingHorizontal: 16,
+ gap: 12,
+ marginBottom: 20,
+ },
+ statCard: {
+ flex: 1,
+ minWidth: '45%',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ borderLeftWidth: 4,
+ boxShadow: '0px 1px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ statIcon: {
+ fontSize: 24,
+ marginBottom: 8,
+ },
+ statValue: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ },
+ viewToggle: {
+ flexDirection: 'row',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ backgroundColor: '#E5E5E5',
+ borderRadius: 12,
+ padding: 4,
+ },
+ viewToggleButton: {
+ flex: 1,
+ paddingVertical: 10,
+ alignItems: 'center',
+ borderRadius: 10,
+ },
+ viewToggleButtonActive: {
+ backgroundColor: '#FFFFFF',
+ },
+ viewToggleText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ viewToggleTextActive: {
+ color: KurdistanColors.kesk,
+ },
+ section: {
+ paddingHorizontal: 16,
+ gap: 16,
+ },
+ delegateCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ delegateHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ delegateAvatar: {
+ width: 48,
+ height: 48,
+ borderRadius: 24,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ delegateAvatarText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ delegateHeaderInfo: {
+ flex: 1,
+ },
+ delegateName: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ successBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ alignSelf: 'flex-start',
+ },
+ successBadgeText: {
+ fontSize: 11,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ delegateAddress: {
+ fontSize: 12,
+ color: '#999',
+ fontFamily: 'monospace',
+ marginBottom: 8,
+ },
+ delegateDescription: {
+ fontSize: 14,
+ color: '#666',
+ lineHeight: 20,
+ marginBottom: 12,
+ },
+ categoriesRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 6,
+ marginBottom: 12,
+ },
+ categoryBadge: {
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ categoryBadgeText: {
+ fontSize: 11,
+ fontWeight: '600',
+ },
+ delegateStats: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 12,
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ delegateStat: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 4,
+ },
+ delegateStatIcon: {
+ fontSize: 14,
+ },
+ delegateStatText: {
+ fontSize: 12,
+ color: '#666',
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ delegationCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ delegationHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 12,
+ },
+ delegationDelegate: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ delegationAddress: {
+ fontSize: 11,
+ color: '#999',
+ fontFamily: 'monospace',
+ },
+ statusBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ },
+ delegationInfo: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ paddingVertical: 12,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ paddingHorizontal: 12,
+ },
+ delegationInfoItem: {
+ alignItems: 'center',
+ },
+ delegationInfoLabel: {
+ fontSize: 11,
+ color: '#999',
+ marginBottom: 4,
+ },
+ delegationInfoValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ delegationActions: {
+ flexDirection: 'row',
+ gap: 8,
+ },
+ delegationActionButton: {
+ flex: 1,
+ paddingVertical: 10,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ modifyButton: {
+ backgroundColor: '#E5E5E5',
+ },
+ revokeButton: {
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ },
+ delegationActionButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ delegationForm: {
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 16,
+ marginBottom: 16,
+ borderRadius: 16,
+ padding: 16,
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
+ boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',
+ elevation: 4,
+ },
+ formHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ formTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ formClose: {
+ fontSize: 24,
+ color: '#999',
+ },
+ formContent: {
+ gap: 12,
+ },
+ formLabel: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 4,
+ },
+ formInput: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ fontSize: 16,
+ color: '#333',
+ borderWidth: 1,
+ borderColor: '#E5E5E5',
+ },
+ formHint: {
+ fontSize: 12,
+ color: '#999',
+ },
+ confirmButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ marginTop: 8,
+ },
+ confirmButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+});
+
+export default DelegationScreen;
diff --git a/mobile/src/screens/governance/DelegationScreen.tsx.bak b/mobile/src/screens/governance/DelegationScreen.tsx.bak
new file mode 100644
index 00000000..ea19f34e
--- /dev/null
+++ b/mobile/src/screens/governance/DelegationScreen.tsx.bak
@@ -0,0 +1,807 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ TextInput,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface Delegate {
+ id: string;
+ address: string;
+ name: string;
+ description: string;
+ reputation: number;
+ successRate: number;
+ totalDelegated: string;
+ delegatorCount: number;
+ activeProposals: number;
+ categories: string[];
+}
+
+interface UserDelegation {
+ id: string;
+ delegate: string;
+ delegateAddress: string;
+ amount: string;
+ conviction: number;
+ category?: string;
+ status: 'active' | 'revoked';
+}
+
+// Mock data removed - using real democracy.voting queries
+
+const DelegationScreen: React.FC = () => {
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
+
+ const [delegates, setDelegates] = useState([]);
+ const [userDelegations, setUserDelegations] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedView, setSelectedView] = useState<'explore' | 'my-delegations'>('explore');
+ const [selectedDelegate, setSelectedDelegate] = useState(null);
+ const [delegationAmount, setDelegationAmount] = useState('');
+
+ // Stats
+ const stats = {
+ activeDelegates: delegates.length,
+ totalDelegated: delegates.reduce((sum, d) => sum + parseFloat(d.totalDelegated.replace(/[^0-9]/g, '') || '0'), 0).toLocaleString(),
+ avgSuccessRate: delegates.length > 0 ? Math.round(delegates.reduce((sum, d) => sum + d.successRate, 0) / delegates.length) : 0,
+ userDelegated: userDelegations.reduce((sum, d) => sum + parseFloat(d.amount.replace(/,/g, '') || '0'), 0).toLocaleString(),
+ };
+
+ const formatBalance = (balance: string, decimals: number = 12): string => {
+ const value = BigInt(balance);
+ const divisor = BigInt(10 ** decimals);
+ const wholePart = value / divisor;
+ return wholePart.toLocaleString();
+ };
+
+ const fetchDelegationData = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch voting delegations from democracy pallet
+ if (api.query.democracy?.voting) {
+ const votingEntries = await api.query.democracy.voting.entries();
+ const delegatesMap = new Map();
+
+ votingEntries.forEach(([key, value]: any) => {
+ const voter = key.args[0].toString();
+ const voting = value;
+
+ if (voting.isDelegating) {
+ const delegating = voting.asDelegating;
+ const target = delegating.target.toString();
+ const balance = BigInt(delegating.balance.toString());
+
+ if (delegatesMap.has(target)) {
+ const existing = delegatesMap.get(target)!;
+ delegatesMap.set(target, {
+ delegated: existing.delegated + balance,
+ count: existing.count + 1,
+ });
+ } else {
+ delegatesMap.set(target, { delegated: balance, count: 1 });
+ }
+ }
+ });
+
+ // Convert to delegates array
+ const delegatesData: Delegate[] = Array.from(delegatesMap.entries()).map(([address, data]) => ({
+ id: address,
+ address,
+ name: `Delegate ${address.slice(0, 8)}`,
+ description: 'Community delegate',
+ reputation: data.count * 10,
+ successRate: 90,
+ totalDelegated: formatBalance(data.delegated.toString()),
+ delegatorCount: data.count,
+ activeProposals: 0,
+ categories: ['Governance'],
+ }));
+
+ setDelegates(delegatesData);
+
+ // Fetch user's delegations
+ if (selectedAccount) {
+ const userVoting = await api.query.democracy.voting(selectedAccount.address);
+ if (userVoting.isDelegating) {
+ const delegating = userVoting.asDelegating;
+ setUserDelegations([{
+ id: '1',
+ delegate: `Delegate ${delegating.target.toString().slice(0, 8)}`,
+ delegateAddress: delegating.target.toString(),
+ amount: formatBalance(delegating.balance.toString()),
+ conviction: delegating.conviction.toNumber(),
+ status: 'active' as const,
+ }]);
+ } else {
+ setUserDelegations([]);
+ }
+ }
+ }
+ } catch (error) {
+ console.error('Failed to load delegation data:', error);
+ Alert.alert('Error', 'Failed to load delegation data from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchDelegationData();
+ const interval = setInterval(fetchDelegationData, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchDelegationData();
+ };
+
+ const handleDelegatePress = (delegate: Delegate) => {
+ setSelectedDelegate(delegate);
+ };
+
+ const handleDelegate = async () => {
+ if (!selectedDelegate || !delegationAmount) {
+ Alert.alert('Error', 'Please enter delegation amount');
+ return;
+ }
+
+ Alert.alert(
+ 'Confirm Delegation',
+ `Delegate ${delegationAmount} HEZ to ${selectedDelegate.name}?`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Confirm',
+ onPress: async () => {
+ // TODO: Submit delegation transaction
+ // const tx = api.tx.delegation.delegate(selectedDelegate.address, delegationAmount);
+ // await tx.signAndSend(selectedAccount.address);
+ Alert.alert('Success', `Delegated ${delegationAmount} HEZ to ${selectedDelegate.name}`);
+ setSelectedDelegate(null);
+ setDelegationAmount('');
+ },
+ },
+ ]
+ );
+ };
+
+ const handleRevokeDelegation = (delegation: UserDelegation) => {
+ Alert.alert(
+ 'Revoke Delegation',
+ `Revoke delegation of ${delegation.amount} HEZ to ${delegation.delegate}?`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ {
+ text: 'Revoke',
+ onPress: async () => {
+ // TODO: Submit revoke transaction
+ // const tx = api.tx.delegation.undelegate(delegation.delegateAddress);
+ // await tx.signAndSend(selectedAccount.address);
+ Alert.alert('Success', 'Delegation revoked successfully');
+ },
+ },
+ ]
+ );
+ };
+
+ const getCategoryColor = (category: string) => {
+ const colors: Record = {
+ Treasury: '#F59E0B',
+ Technical: '#3B82F6',
+ Security: '#EF4444',
+ Governance: KurdistanColors.kesk,
+ Community: '#8B5CF6',
+ Education: '#EC4899',
+ };
+ return colors[category] || '#666';
+ };
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Delegation
+ Delegate your voting power
+
+
+ {/* Stats Overview */}
+
+
+ 👥
+ {stats.activeDelegates}
+ Active Delegates
+
+
+ 💰
+ {stats.totalDelegated}
+ Total Delegated
+
+
+ 📊
+ {stats.avgSuccessRate}%
+ Avg Success Rate
+
+
+ 🎯
+ {stats.userDelegated}
+ Your Delegated
+
+
+
+ {/* View Toggle */}
+
+ setSelectedView('explore')}
+ >
+
+ Explore Delegates
+
+
+ setSelectedView('my-delegations')}
+ >
+
+ My Delegations
+
+
+
+
+ {/* Explore Delegates View */}
+ {selectedView === 'explore' && (
+
+ {delegates.map((delegate) => (
+ handleDelegatePress(delegate)}
+ >
+ {/* Delegate Header */}
+
+
+ {delegate.name.substring(0, 2).toUpperCase()}
+
+
+ {delegate.name}
+
+ {delegate.successRate}% success
+
+
+
+
+ {/* Address */}
+
+ {delegate.address.slice(0, 10)}...{delegate.address.slice(-6)}
+
+
+ {/* Description */}
+
+ {delegate.description}
+
+
+ {/* Categories */}
+
+ {delegate.categories.map((cat) => (
+
+ {cat}
+
+ ))}
+
+
+ {/* Stats Row */}
+
+
+ ⭐
+ {delegate.reputation} rep
+
+
+ 💰
+ {delegate.totalDelegated}
+
+
+ 👥
+ {delegate.delegatorCount} delegators
+
+
+ 📋
+ {delegate.activeProposals} active
+
+
+
+ ))}
+
+ )}
+
+ {/* My Delegations View */}
+ {selectedView === 'my-delegations' && (
+
+ {userDelegations.length === 0 ? (
+
+ 🎯
+
+ {selectedAccount
+ ? "You haven't delegated any voting power yet"
+ : 'Connect your wallet to view delegations'}
+
+
+ ) : (
+ userDelegations.map((delegation) => (
+
+ {/* Delegation Header */}
+
+
+ {delegation.delegate}
+
+ {delegation.delegateAddress.slice(0, 10)}...{delegation.delegateAddress.slice(-6)}
+
+
+
+ {delegation.status.toUpperCase()}
+
+
+
+ {/* Delegation Info */}
+
+
+ Amount
+ {delegation.amount} HEZ
+
+
+ Conviction
+ {delegation.conviction}x
+
+ {delegation.category && (
+
+ Category
+ {delegation.category}
+
+ )}
+
+
+ {/* Action Buttons */}
+
+ Alert.alert('Modify Delegation', 'Modify delegation modal would open here')}
+ >
+ Modify
+
+ handleRevokeDelegation(delegation)}
+ >
+ Revoke
+
+
+
+ ))
+ )}
+
+ )}
+
+ {/* Delegation Form (when delegate selected) */}
+ {selectedDelegate && (
+
+
+ Delegate to {selectedDelegate.name}
+ setSelectedDelegate(null)}>
+ ✕
+
+
+
+
+ Amount (HEZ)
+
+
+ Minimum delegation: 100 HEZ
+
+
+ Confirm Delegation
+
+
+
+ )}
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Delegating allows trusted community members to vote on your behalf. You can revoke delegation at any time.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ statsGrid: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ paddingHorizontal: 16,
+ gap: 12,
+ marginBottom: 20,
+ },
+ statCard: {
+ flex: 1,
+ minWidth: '45%',
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 16,
+ borderLeftWidth: 4,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ statIcon: {
+ fontSize: 24,
+ marginBottom: 8,
+ },
+ statValue: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ },
+ viewToggle: {
+ flexDirection: 'row',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ backgroundColor: '#E5E5E5',
+ borderRadius: 12,
+ padding: 4,
+ },
+ viewToggleButton: {
+ flex: 1,
+ paddingVertical: 10,
+ alignItems: 'center',
+ borderRadius: 10,
+ },
+ viewToggleButtonActive: {
+ backgroundColor: '#FFFFFF',
+ },
+ viewToggleText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ viewToggleTextActive: {
+ color: KurdistanColors.kesk,
+ },
+ section: {
+ paddingHorizontal: 16,
+ gap: 16,
+ },
+ delegateCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ delegateHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ delegateAvatar: {
+ width: 48,
+ height: 48,
+ borderRadius: 24,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ delegateAvatarText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ delegateHeaderInfo: {
+ flex: 1,
+ },
+ delegateName: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ successBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ alignSelf: 'flex-start',
+ },
+ successBadgeText: {
+ fontSize: 11,
+ fontWeight: '600',
+ color: KurdistanColors.kesk,
+ },
+ delegateAddress: {
+ fontSize: 12,
+ color: '#999',
+ fontFamily: 'monospace',
+ marginBottom: 8,
+ },
+ delegateDescription: {
+ fontSize: 14,
+ color: '#666',
+ lineHeight: 20,
+ marginBottom: 12,
+ },
+ categoriesRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 6,
+ marginBottom: 12,
+ },
+ categoryBadge: {
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ categoryBadgeText: {
+ fontSize: 11,
+ fontWeight: '600',
+ },
+ delegateStats: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 12,
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ delegateStat: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 4,
+ },
+ delegateStatIcon: {
+ fontSize: 14,
+ },
+ delegateStatText: {
+ fontSize: 12,
+ color: '#666',
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ delegationCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ delegationHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 12,
+ },
+ delegationDelegate: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ delegationAddress: {
+ fontSize: 11,
+ color: '#999',
+ fontFamily: 'monospace',
+ },
+ statusBadge: {
+ backgroundColor: 'rgba(0, 143, 67, 0.1)',
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ color: KurdistanColors.kesk,
+ },
+ delegationInfo: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ paddingVertical: 12,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ paddingHorizontal: 12,
+ },
+ delegationInfoItem: {
+ alignItems: 'center',
+ },
+ delegationInfoLabel: {
+ fontSize: 11,
+ color: '#999',
+ marginBottom: 4,
+ },
+ delegationInfoValue: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ delegationActions: {
+ flexDirection: 'row',
+ gap: 8,
+ },
+ delegationActionButton: {
+ flex: 1,
+ paddingVertical: 10,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ modifyButton: {
+ backgroundColor: '#E5E5E5',
+ },
+ revokeButton: {
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
+ },
+ delegationActionButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ delegationForm: {
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 16,
+ marginBottom: 16,
+ borderRadius: 16,
+ padding: 16,
+ borderWidth: 2,
+ borderColor: KurdistanColors.kesk,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 4 },
+ shadowOpacity: 0.1,
+ shadowRadius: 8,
+ elevation: 4,
+ },
+ formHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ formTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ formClose: {
+ fontSize: 24,
+ color: '#999',
+ },
+ formContent: {
+ gap: 12,
+ },
+ formLabel: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ marginBottom: 4,
+ },
+ formInput: {
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ fontSize: 16,
+ color: '#333',
+ borderWidth: 1,
+ borderColor: '#E5E5E5',
+ },
+ formHint: {
+ fontSize: 12,
+ color: '#999',
+ },
+ confirmButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ marginTop: 8,
+ },
+ confirmButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+});
+
+export default DelegationScreen;
diff --git a/mobile/src/screens/governance/ElectionsScreen.tsx b/mobile/src/screens/governance/ElectionsScreen.tsx
new file mode 100644
index 00000000..57630314
--- /dev/null
+++ b/mobile/src/screens/governance/ElectionsScreen.tsx
@@ -0,0 +1,543 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface ElectionInfo {
+ id: string;
+ type: 'presidential' | 'parliamentary' | 'speaker' | 'constitutional_court';
+ status: 'active' | 'completed' | 'scheduled';
+ endBlock: number;
+ candidates: number;
+ totalVotes: number;
+}
+
+interface Candidate {
+ address: string;
+ name: string;
+ votes: number;
+ platform: string;
+}
+
+// Mock data removed - using dynamicCommissionCollective pallet for elections
+
+const ElectionsScreen: React.FC = () => {
+ const { api, isApiReady, error: connectionError } = usePezkuwi();
+
+ const [elections, setElections] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedType, setSelectedType] = useState<'all' | 'presidential' | 'parliamentary' | 'speaker' | 'constitutional_court'>('all');
+
+ const fetchElections = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch commission proposals (acting as elections)
+ if (api.query.dynamicCommissionCollective?.proposals) {
+ const proposalHashes = await api.query.dynamicCommissionCollective.proposals();
+
+ const electionsData: ElectionInfo[] = [];
+
+ for (const hash of proposalHashes) {
+ const voting = await api.query.dynamicCommissionCollective.voting(hash);
+ if (voting.isSome) {
+ const voteData = voting.unwrap();
+ electionsData.push({
+ id: hash.toString(),
+ type: 'parliamentary' as const,
+ status: 'active' as const,
+ endBlock: voteData.end?.toNumber() || 0,
+ candidates: voteData.threshold?.toNumber() || 0,
+ totalVotes: (voteData.ayes?.length || 0) + (voteData.nays?.length || 0),
+ });
+ }
+ }
+
+ setElections(electionsData);
+ }
+ } catch (error) {
+ console.error('Failed to load elections:', error);
+ Alert.alert('Error', 'Failed to load elections data from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchElections();
+ const interval = setInterval(fetchElections, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchElections();
+ };
+
+ const handleElectionPress = (election: ElectionInfo) => {
+ Alert.alert(
+ getElectionTypeLabel(election.type),
+ `Candidates: ${election.candidates}\nTotal Votes: ${election.totalVotes}\nStatus: ${election.status}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'View Details', onPress: () => Alert.alert('Election Details', 'ElectionDetailsScreen would open here') },
+ ]
+ );
+ };
+
+ const handleRegisterAsCandidate = () => {
+ Alert.alert('Register as Candidate', 'Candidate registration form would open here');
+ };
+
+ const getElectionTypeLabel = (type: string): string => {
+ const labels: Record = {
+ presidential: '👑 Presidential Election',
+ parliamentary: '🏛️ Parliamentary Election',
+ speaker: '🎤 Speaker Election',
+ constitutional_court: '⚖️ Constitutional Court',
+ };
+ return labels[type] || type;
+ };
+
+ const getElectionIcon = (type: string): string => {
+ const icons: Record = {
+ presidential: '👑',
+ parliamentary: '🏛️',
+ speaker: '🎤',
+ constitutional_court: '⚖️',
+ };
+ return icons[type] || '🗳️';
+ };
+
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case 'active':
+ return KurdistanColors.kesk;
+ case 'completed':
+ return '#999';
+ case 'scheduled':
+ return '#F59E0B';
+ default:
+ return '#666';
+ }
+ };
+
+ const filteredElections = selectedType === 'all'
+ ? elections
+ : elections.filter(e => e.type === selectedType);
+
+ // Show error state
+ if (connectionError && !api) {
+ return (
+
+
+ ⚠️
+ Connection Failed
+ {connectionError}
+
+ • Check your internet connection{'\n'}
+ • Connection will retry automatically
+
+
+ Retry Now
+
+
+
+ );
+ }
+
+ // Show loading state
+ if (!isApiReady || (loading && elections.length === 0)) {
+ return (
+
+
+
+ Connecting to blockchain...
+ Please wait
+
+
+ );
+ }
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Elections
+ Democratic governance for Kurdistan
+
+
+ {/* Register Button */}
+
+ ➕ Register as Candidate
+
+
+ {/* Filter Tabs */}
+
+
+ setSelectedType('all')}
+ >
+
+ All
+
+
+ setSelectedType('presidential')}
+ >
+
+ 👑 Presidential
+
+
+ setSelectedType('parliamentary')}
+ >
+
+ 🏛️ Parliamentary
+
+
+ setSelectedType('speaker')}
+ >
+
+ 🎤 Speaker
+
+
+
+
+
+ {/* Elections List */}
+
+ {filteredElections.length === 0 ? (
+
+ 🗳️
+ No elections available
+
+ ) : (
+ filteredElections.map((election) => (
+ handleElectionPress(election)}
+ >
+ {/* Election Header */}
+
+
+ {getElectionIcon(election.type)}
+ {getElectionTypeLabel(election.type)}
+
+
+
+ {election.status.toUpperCase()}
+
+
+
+
+ {/* Election Stats */}
+
+
+ 👥
+ Candidates
+ {election.candidates}
+
+
+
+ 🗳️
+ Total Votes
+ {election.totalVotes.toLocaleString()}
+
+
+
+ ⏰
+ End Block
+ {election.endBlock.toLocaleString()}
+
+
+
+ {/* Vote Button */}
+ {election.status === 'active' && (
+
+ View Candidates & Vote
+
+ )}
+
+ {election.status === 'completed' && (
+
+ View Results
+
+ )}
+
+ ))
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Only citizens with verified citizenship status can vote in elections. Your vote is anonymous and recorded on-chain.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ registerButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ registerButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ filterTabs: {
+ marginBottom: 20,
+ paddingHorizontal: 16,
+ },
+ filterTab: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ marginRight: 8,
+ },
+ filterTabActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ filterTabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ filterTabTextActive: {
+ color: '#FFFFFF',
+ },
+ electionsList: {
+ paddingHorizontal: 16,
+ gap: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ electionCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ electionHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ electionTitleRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ flex: 1,
+ },
+ electionIcon: {
+ fontSize: 24,
+ marginRight: 8,
+ },
+ electionTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ flex: 1,
+ },
+ statusBadge: {
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 11,
+ fontWeight: '700',
+ },
+ electionStats: {
+ flexDirection: 'row',
+ marginBottom: 16,
+ paddingVertical: 12,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ },
+ statItem: {
+ flex: 1,
+ alignItems: 'center',
+ },
+ statDivider: {
+ width: 1,
+ backgroundColor: '#E5E5E5',
+ },
+ statIcon: {
+ fontSize: 20,
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ marginBottom: 4,
+ },
+ statValue: {
+ fontSize: 14,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ voteButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ voteButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ resultsButton: {
+ backgroundColor: '#E5E5E5',
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ resultsButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+ // Error & Loading States
+ centerContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ },
+ errorIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ errorHint: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ lineHeight: 20,
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ loadingText: {
+ fontSize: 16,
+ color: '#333',
+ marginTop: 16,
+ },
+ loadingHint: {
+ fontSize: 12,
+ color: '#999',
+ marginTop: 8,
+ },
+});
+
+export default ElectionsScreen;
diff --git a/mobile/src/screens/governance/ElectionsScreen.tsx.bak b/mobile/src/screens/governance/ElectionsScreen.tsx.bak
new file mode 100644
index 00000000..07f24cd0
--- /dev/null
+++ b/mobile/src/screens/governance/ElectionsScreen.tsx.bak
@@ -0,0 +1,546 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface ElectionInfo {
+ id: string;
+ type: 'presidential' | 'parliamentary' | 'speaker' | 'constitutional_court';
+ status: 'active' | 'completed' | 'scheduled';
+ endBlock: number;
+ candidates: number;
+ totalVotes: number;
+}
+
+interface Candidate {
+ address: string;
+ name: string;
+ votes: number;
+ platform: string;
+}
+
+// Mock data removed - using dynamicCommissionCollective pallet for elections
+
+const ElectionsScreen: React.FC = () => {
+ const { api, isApiReady, error: connectionError } = usePezkuwi();
+
+ const [elections, setElections] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedType, setSelectedType] = useState<'all' | 'presidential' | 'parliamentary' | 'speaker' | 'constitutional_court'>('all');
+
+ const fetchElections = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch commission proposals (acting as elections)
+ if (api.query.dynamicCommissionCollective?.proposals) {
+ const proposalHashes = await api.query.dynamicCommissionCollective.proposals();
+
+ const electionsData: ElectionInfo[] = [];
+
+ for (const hash of proposalHashes) {
+ const voting = await api.query.dynamicCommissionCollective.voting(hash);
+ if (voting.isSome) {
+ const voteData = voting.unwrap();
+ electionsData.push({
+ id: hash.toString(),
+ type: 'parliamentary' as const,
+ status: 'active' as const,
+ endBlock: voteData.end?.toNumber() || 0,
+ candidates: voteData.threshold?.toNumber() || 0,
+ totalVotes: (voteData.ayes?.length || 0) + (voteData.nays?.length || 0),
+ });
+ }
+ }
+
+ setElections(electionsData);
+ }
+ } catch (error) {
+ console.error('Failed to load elections:', error);
+ Alert.alert('Error', 'Failed to load elections data from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchElections();
+ const interval = setInterval(fetchElections, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchElections();
+ };
+
+ const handleElectionPress = (election: ElectionInfo) => {
+ Alert.alert(
+ getElectionTypeLabel(election.type),
+ `Candidates: ${election.candidates}\nTotal Votes: ${election.totalVotes}\nStatus: ${election.status}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'View Details', onPress: () => Alert.alert('Election Details', 'ElectionDetailsScreen would open here') },
+ ]
+ );
+ };
+
+ const handleRegisterAsCandidate = () => {
+ Alert.alert('Register as Candidate', 'Candidate registration form would open here');
+ };
+
+ const getElectionTypeLabel = (type: string): string => {
+ const labels: Record = {
+ presidential: '👑 Presidential Election',
+ parliamentary: '🏛️ Parliamentary Election',
+ speaker: '🎤 Speaker Election',
+ constitutional_court: '⚖️ Constitutional Court',
+ };
+ return labels[type] || type;
+ };
+
+ const getElectionIcon = (type: string): string => {
+ const icons: Record = {
+ presidential: '👑',
+ parliamentary: '🏛️',
+ speaker: '🎤',
+ constitutional_court: '⚖️',
+ };
+ return icons[type] || '🗳️';
+ };
+
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case 'active':
+ return KurdistanColors.kesk;
+ case 'completed':
+ return '#999';
+ case 'scheduled':
+ return '#F59E0B';
+ default:
+ return '#666';
+ }
+ };
+
+ const filteredElections = selectedType === 'all'
+ ? elections
+ : elections.filter(e => e.type === selectedType);
+
+ // Show error state
+ if (connectionError && !api) {
+ return (
+
+
+ ⚠️
+ Connection Failed
+ {connectionError}
+
+ • Check your internet connection{'\n'}
+ • Connection will retry automatically
+
+
+ Retry Now
+
+
+
+ );
+ }
+
+ // Show loading state
+ if (!isApiReady || (loading && elections.length === 0)) {
+ return (
+
+
+
+ Connecting to blockchain...
+ Please wait
+
+
+ );
+ }
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Elections
+ Democratic governance for Kurdistan
+
+
+ {/* Register Button */}
+
+ ➕ Register as Candidate
+
+
+ {/* Filter Tabs */}
+
+
+ setSelectedType('all')}
+ >
+
+ All
+
+
+ setSelectedType('presidential')}
+ >
+
+ 👑 Presidential
+
+
+ setSelectedType('parliamentary')}
+ >
+
+ 🏛️ Parliamentary
+
+
+ setSelectedType('speaker')}
+ >
+
+ 🎤 Speaker
+
+
+
+
+
+ {/* Elections List */}
+
+ {filteredElections.length === 0 ? (
+
+ 🗳️
+ No elections available
+
+ ) : (
+ filteredElections.map((election) => (
+ handleElectionPress(election)}
+ >
+ {/* Election Header */}
+
+
+ {getElectionIcon(election.type)}
+ {getElectionTypeLabel(election.type)}
+
+
+
+ {election.status.toUpperCase()}
+
+
+
+
+ {/* Election Stats */}
+
+
+ 👥
+ Candidates
+ {election.candidates}
+
+
+
+ 🗳️
+ Total Votes
+ {election.totalVotes.toLocaleString()}
+
+
+
+ ⏰
+ End Block
+ {election.endBlock.toLocaleString()}
+
+
+
+ {/* Vote Button */}
+ {election.status === 'active' && (
+
+ View Candidates & Vote
+
+ )}
+
+ {election.status === 'completed' && (
+
+ View Results
+
+ )}
+
+ ))
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Only citizens with verified citizenship status can vote in elections. Your vote is anonymous and recorded on-chain.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ registerButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ registerButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ filterTabs: {
+ marginBottom: 20,
+ paddingHorizontal: 16,
+ },
+ filterTab: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ marginRight: 8,
+ },
+ filterTabActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ filterTabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ filterTabTextActive: {
+ color: '#FFFFFF',
+ },
+ electionsList: {
+ paddingHorizontal: 16,
+ gap: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ electionCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ electionHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ electionTitleRow: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ flex: 1,
+ },
+ electionIcon: {
+ fontSize: 24,
+ marginRight: 8,
+ },
+ electionTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ flex: 1,
+ },
+ statusBadge: {
+ paddingHorizontal: 12,
+ paddingVertical: 6,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 11,
+ fontWeight: '700',
+ },
+ electionStats: {
+ flexDirection: 'row',
+ marginBottom: 16,
+ paddingVertical: 12,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 12,
+ },
+ statItem: {
+ flex: 1,
+ alignItems: 'center',
+ },
+ statDivider: {
+ width: 1,
+ backgroundColor: '#E5E5E5',
+ },
+ statIcon: {
+ fontSize: 20,
+ marginBottom: 4,
+ },
+ statLabel: {
+ fontSize: 11,
+ color: '#999',
+ marginBottom: 4,
+ },
+ statValue: {
+ fontSize: 14,
+ fontWeight: 'bold',
+ color: '#333',
+ },
+ voteButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ voteButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ resultsButton: {
+ backgroundColor: '#E5E5E5',
+ paddingVertical: 12,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ resultsButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+ // Error & Loading States
+ centerContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ },
+ errorIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ errorHint: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ lineHeight: 20,
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ loadingText: {
+ fontSize: 16,
+ color: '#333',
+ marginTop: 16,
+ },
+ loadingHint: {
+ fontSize: 12,
+ color: '#999',
+ marginTop: 8,
+ },
+});
+
+export default ElectionsScreen;
diff --git a/mobile/src/screens/governance/ForumScreen.tsx b/mobile/src/screens/governance/ForumScreen.tsx
new file mode 100644
index 00000000..395abf19
--- /dev/null
+++ b/mobile/src/screens/governance/ForumScreen.tsx
@@ -0,0 +1,716 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ TextInput,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface Category {
+ id: string;
+ name: string;
+ icon: string;
+ color: string;
+}
+
+interface Discussion {
+ id: string;
+ categoryId: string;
+ title: string;
+ content: string;
+ authorName: string;
+ authorAddress: string;
+ isPinned: boolean;
+ isLocked: boolean;
+ viewsCount: number;
+ repliesCount: number;
+ upvotes: number;
+ tags: string[];
+ createdAt: string;
+ lastActivityAt: string;
+}
+
+// Forum data stored in Supabase - categories and discussions fetched from database
+
+const ForumScreen: React.FC = () => {
+ const { selectedAccount } = usePezkuwi();
+
+ const [categories, setCategories] = useState([]);
+ const [discussions, setDiscussions] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedCategory, setSelectedCategory] = useState(null);
+ const [searchQuery, setSearchQuery] = useState('');
+ const [sortBy, setSortBy] = useState<'recent' | 'popular' | 'replies'>('recent');
+
+ // Stats calculated from real data
+ const stats = {
+ totalDiscussions: discussions.length,
+ totalReplies: discussions.reduce((sum, d) => sum + d.repliesCount, 0),
+ totalMembers: 0, // Will be fetched from Supabase
+ onlineNow: 0, // Will be calculated from active sessions
+ };
+
+ const fetchForumData = async () => {
+ try {
+ setLoading(true);
+
+ // Note: Forum uses Supabase database, not blockchain
+ // This is a web2 component for community discussions
+ // TODO: Implement Supabase client and fetch real data
+ // const { data: categoriesData } = await supabase.from('forum_categories').select('*');
+ // const { data: discussionsData } = await supabase.from('forum_discussions').select('*');
+
+ // For now, set empty arrays - will be populated when Supabase is configured
+ setCategories([]);
+ setDiscussions([]);
+
+ } catch (error) {
+ console.error('Failed to load forum data:', error);
+ Alert.alert('Error', 'Failed to load forum data from database');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchForumData();
+ }, []);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchForumData();
+ };
+
+ const handleCreateTopic = () => {
+ if (!selectedAccount) {
+ Alert.alert('Login Required', 'You need to connect your wallet to create topics');
+ return;
+ }
+ Alert.alert('Create Topic', 'Create topic modal would open here');
+ // TODO: Navigate to CreateTopicScreen
+ };
+
+ const handleDiscussionPress = (discussion: Discussion) => {
+ Alert.alert(
+ discussion.title,
+ `${discussion.content.substring(0, 200)}...\n\nAuthor: ${discussion.authorName}\nReplies: ${discussion.repliesCount} | Views: ${discussion.viewsCount} | Upvotes: ${discussion.upvotes}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'View Thread', onPress: () => Alert.alert('Thread View', 'Thread details screen would open here') },
+ ]
+ );
+ };
+
+ const getCategoryById = (categoryId: string): Category | undefined => {
+ return CATEGORIES.find(c => c.id === categoryId);
+ };
+
+ const getTimeAgo = (dateString: string): string => {
+ const date = new Date(dateString);
+ const now = new Date();
+ const diffMs = now.getTime() - date.getTime();
+ const diffMins = Math.floor(diffMs / 60000);
+ const diffHours = Math.floor(diffMins / 60);
+ const diffDays = Math.floor(diffHours / 24);
+
+ if (diffMins < 60) return `${diffMins}m ago`;
+ if (diffHours < 24) return `${diffHours}h ago`;
+ return `${diffDays}d ago`;
+ };
+
+ const filteredDiscussions = discussions
+ .filter(d => !selectedCategory || d.categoryId === selectedCategory)
+ .filter(d => !searchQuery || d.title.toLowerCase().includes(searchQuery.toLowerCase()) || d.content.toLowerCase().includes(searchQuery.toLowerCase()))
+ .sort((a, b) => {
+ if (a.isPinned && !b.isPinned) return -1;
+ if (!a.isPinned && b.isPinned) return 1;
+
+ switch (sortBy) {
+ case 'popular':
+ return b.viewsCount - a.viewsCount;
+ case 'replies':
+ return b.repliesCount - a.repliesCount;
+ default:
+ return new Date(b.lastActivityAt).getTime() - new Date(a.lastActivityAt).getTime();
+ }
+ });
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Community Forum
+ Discuss, share ideas, and connect
+
+
+ {/* Stats Grid */}
+
+
+ 📋
+ {stats.totalDiscussions}
+ Topics
+
+
+ 💬
+ {stats.totalReplies}
+ Replies
+
+
+ 👥
+ {stats.totalMembers}
+ Members
+
+
+
+ {stats.onlineNow}
+ Online
+
+
+
+ {/* Create Topic Button */}
+
+ ➕ Create New Topic
+
+
+ {/* Search Bar */}
+
+ 🔍
+
+
+
+ {/* Categories Filter */}
+
+ Categories
+
+ setSelectedCategory(null)}
+ >
+
+ 📋 All Topics
+
+
+ {CATEGORIES.map((category) => (
+ setSelectedCategory(category.id)}
+ >
+
+ {category.icon} {category.name}
+
+
+ ))}
+
+
+
+ {/* Sort Tabs */}
+
+ setSortBy('recent')}
+ >
+
+ ⏰ Recent
+
+
+ setSortBy('popular')}
+ >
+
+ 👁️ Popular
+
+
+ setSortBy('replies')}
+ >
+
+ 💬 Replies
+
+
+
+
+ {/* Discussions List */}
+
+ {filteredDiscussions.length === 0 ? (
+
+ 💬
+
+ {searchQuery ? 'No discussions found matching your search' : 'No discussions yet'}
+
+ {!searchQuery && (
+
+ Create First Topic
+
+ )}
+
+ ) : (
+ filteredDiscussions.map((discussion) => {
+ const category = getCategoryById(discussion.categoryId);
+ return (
+ handleDiscussionPress(discussion)}
+ >
+ {/* Discussion Header */}
+
+
+
+ {discussion.authorName.charAt(0).toUpperCase()}
+
+
+
+ {discussion.authorName}
+ {getTimeAgo(discussion.lastActivityAt)}
+
+
+
+ {/* Badges */}
+
+ {discussion.isPinned && (
+
+ 📌 PINNED
+
+ )}
+ {discussion.isLocked && (
+
+ 🔒 LOCKED
+
+ )}
+ {category && (
+
+
+ {category.icon} {category.name}
+
+
+ )}
+
+
+ {/* Title */}
+
+ {discussion.title}
+
+
+ {/* Content Preview */}
+
+ {discussion.content}
+
+
+ {/* Tags */}
+ {discussion.tags.length > 0 && (
+
+ {discussion.tags.slice(0, 3).map((tag, idx) => (
+
+ #{tag}
+
+ ))}
+ {discussion.tags.length > 3 && (
+ +{discussion.tags.length - 3} more
+ )}
+
+ )}
+
+ {/* Stats */}
+
+
+ 💬
+ {discussion.repliesCount}
+
+
+ 👁️
+ {discussion.viewsCount}
+
+
+ 👍
+
+ {discussion.upvotes}
+
+
+
+
+ );
+ })
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Connect your wallet to create topics, reply to discussions, and upvote helpful content.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ statsGrid: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ gap: 12,
+ marginBottom: 20,
+ },
+ statCard: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 12,
+ alignItems: 'center',
+ boxShadow: '0px 1px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ statIcon: {
+ fontSize: 20,
+ marginBottom: 4,
+ },
+ statValue: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 2,
+ },
+ statLabel: {
+ fontSize: 10,
+ color: '#999',
+ },
+ onlineIndicator: {
+ width: 8,
+ height: 8,
+ borderRadius: 4,
+ backgroundColor: KurdistanColors.kesk,
+ marginBottom: 4,
+ },
+ createButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ searchContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ borderRadius: 12,
+ boxShadow: '0px 1px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ searchIcon: {
+ fontSize: 18,
+ marginRight: 8,
+ },
+ searchInput: {
+ flex: 1,
+ fontSize: 16,
+ color: '#333',
+ },
+ categoriesSection: {
+ marginBottom: 20,
+ },
+ sectionTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ paddingHorizontal: 16,
+ marginBottom: 12,
+ },
+ categoriesScroll: {
+ paddingHorizontal: 16,
+ },
+ categoryChip: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ marginRight: 8,
+ },
+ categoryChipActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ categoryChipText: {
+ fontSize: 13,
+ fontWeight: '600',
+ color: '#666',
+ },
+ categoryChipTextActive: {
+ color: '#FFFFFF',
+ },
+ sortTabs: {
+ flexDirection: 'row',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ gap: 8,
+ },
+ sortTab: {
+ flex: 1,
+ paddingVertical: 8,
+ borderRadius: 12,
+ backgroundColor: '#E5E5E5',
+ alignItems: 'center',
+ },
+ sortTabActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ sortTabText: {
+ fontSize: 13,
+ fontWeight: '600',
+ color: '#666',
+ },
+ sortTabTextActive: {
+ color: '#FFFFFF',
+ },
+ discussionsList: {
+ paddingHorizontal: 16,
+ gap: 12,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ emptyButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 12,
+ },
+ emptyButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ discussionCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 12,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ discussionCardPinned: {
+ borderWidth: 1,
+ borderColor: '#F59E0B',
+ },
+ discussionHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ discussionAvatar: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ discussionAvatarText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ discussionHeaderInfo: {
+ flex: 1,
+ },
+ discussionAuthor: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ discussionTime: {
+ fontSize: 12,
+ color: '#999',
+ },
+ badgesRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 6,
+ marginBottom: 8,
+ },
+ pinnedBadge: {
+ backgroundColor: 'rgba(245, 158, 11, 0.1)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ },
+ pinnedBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ color: '#F59E0B',
+ },
+ lockedBadge: {
+ backgroundColor: 'rgba(102, 102, 102, 0.1)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ },
+ lockedBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ color: '#666',
+ },
+ categoryBadge: {
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ },
+ categoryBadgeText: {
+ fontSize: 10,
+ fontWeight: '600',
+ },
+ discussionTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ lineHeight: 22,
+ },
+ discussionContent: {
+ fontSize: 14,
+ color: '#666',
+ lineHeight: 20,
+ marginBottom: 12,
+ },
+ tagsRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 6,
+ marginBottom: 12,
+ },
+ tag: {
+ backgroundColor: '#F0F0F0',
+ paddingHorizontal: 8,
+ paddingVertical: 3,
+ borderRadius: 12,
+ },
+ tagText: {
+ fontSize: 11,
+ color: '#666',
+ },
+ tagsMore: {
+ fontSize: 11,
+ color: '#999',
+ alignSelf: 'center',
+ },
+ discussionStats: {
+ flexDirection: 'row',
+ gap: 16,
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ discussionStat: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 4,
+ },
+ discussionStatIcon: {
+ fontSize: 14,
+ },
+ discussionStatText: {
+ fontSize: 13,
+ color: '#666',
+ fontWeight: '500',
+ },
+ discussionStatUpvotes: {
+ color: KurdistanColors.kesk,
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+});
+
+export default ForumScreen;
diff --git a/mobile/src/screens/governance/ForumScreen.tsx.bak b/mobile/src/screens/governance/ForumScreen.tsx.bak
new file mode 100644
index 00000000..fcea2ca9
--- /dev/null
+++ b/mobile/src/screens/governance/ForumScreen.tsx.bak
@@ -0,0 +1,725 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ TextInput,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface Category {
+ id: string;
+ name: string;
+ icon: string;
+ color: string;
+}
+
+interface Discussion {
+ id: string;
+ categoryId: string;
+ title: string;
+ content: string;
+ authorName: string;
+ authorAddress: string;
+ isPinned: boolean;
+ isLocked: boolean;
+ viewsCount: number;
+ repliesCount: number;
+ upvotes: number;
+ tags: string[];
+ createdAt: string;
+ lastActivityAt: string;
+}
+
+// Forum data stored in Supabase - categories and discussions fetched from database
+
+const ForumScreen: React.FC = () => {
+ const { selectedAccount } = usePezkuwi();
+
+ const [categories, setCategories] = useState([]);
+ const [discussions, setDiscussions] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedCategory, setSelectedCategory] = useState(null);
+ const [searchQuery, setSearchQuery] = useState('');
+ const [sortBy, setSortBy] = useState<'recent' | 'popular' | 'replies'>('recent');
+
+ // Stats calculated from real data
+ const stats = {
+ totalDiscussions: discussions.length,
+ totalReplies: discussions.reduce((sum, d) => sum + d.repliesCount, 0),
+ totalMembers: 0, // Will be fetched from Supabase
+ onlineNow: 0, // Will be calculated from active sessions
+ };
+
+ const fetchForumData = async () => {
+ try {
+ setLoading(true);
+
+ // Note: Forum uses Supabase database, not blockchain
+ // This is a web2 component for community discussions
+ // TODO: Implement Supabase client and fetch real data
+ // const { data: categoriesData } = await supabase.from('forum_categories').select('*');
+ // const { data: discussionsData } = await supabase.from('forum_discussions').select('*');
+
+ // For now, set empty arrays - will be populated when Supabase is configured
+ setCategories([]);
+ setDiscussions([]);
+
+ } catch (error) {
+ console.error('Failed to load forum data:', error);
+ Alert.alert('Error', 'Failed to load forum data from database');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchForumData();
+ }, []);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchForumData();
+ };
+
+ const handleCreateTopic = () => {
+ if (!selectedAccount) {
+ Alert.alert('Login Required', 'You need to connect your wallet to create topics');
+ return;
+ }
+ Alert.alert('Create Topic', 'Create topic modal would open here');
+ // TODO: Navigate to CreateTopicScreen
+ };
+
+ const handleDiscussionPress = (discussion: Discussion) => {
+ Alert.alert(
+ discussion.title,
+ `${discussion.content.substring(0, 200)}...\n\nAuthor: ${discussion.authorName}\nReplies: ${discussion.repliesCount} | Views: ${discussion.viewsCount} | Upvotes: ${discussion.upvotes}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'View Thread', onPress: () => Alert.alert('Thread View', 'Thread details screen would open here') },
+ ]
+ );
+ };
+
+ const getCategoryById = (categoryId: string): Category | undefined => {
+ return CATEGORIES.find(c => c.id === categoryId);
+ };
+
+ const getTimeAgo = (dateString: string): string => {
+ const date = new Date(dateString);
+ const now = new Date();
+ const diffMs = now.getTime() - date.getTime();
+ const diffMins = Math.floor(diffMs / 60000);
+ const diffHours = Math.floor(diffMins / 60);
+ const diffDays = Math.floor(diffHours / 24);
+
+ if (diffMins < 60) return `${diffMins}m ago`;
+ if (diffHours < 24) return `${diffHours}h ago`;
+ return `${diffDays}d ago`;
+ };
+
+ const filteredDiscussions = discussions
+ .filter(d => !selectedCategory || d.categoryId === selectedCategory)
+ .filter(d => !searchQuery || d.title.toLowerCase().includes(searchQuery.toLowerCase()) || d.content.toLowerCase().includes(searchQuery.toLowerCase()))
+ .sort((a, b) => {
+ if (a.isPinned && !b.isPinned) return -1;
+ if (!a.isPinned && b.isPinned) return 1;
+
+ switch (sortBy) {
+ case 'popular':
+ return b.viewsCount - a.viewsCount;
+ case 'replies':
+ return b.repliesCount - a.repliesCount;
+ default:
+ return new Date(b.lastActivityAt).getTime() - new Date(a.lastActivityAt).getTime();
+ }
+ });
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Community Forum
+ Discuss, share ideas, and connect
+
+
+ {/* Stats Grid */}
+
+
+ 📋
+ {stats.totalDiscussions}
+ Topics
+
+
+ 💬
+ {stats.totalReplies}
+ Replies
+
+
+ 👥
+ {stats.totalMembers}
+ Members
+
+
+
+ {stats.onlineNow}
+ Online
+
+
+
+ {/* Create Topic Button */}
+
+ ➕ Create New Topic
+
+
+ {/* Search Bar */}
+
+ 🔍
+
+
+
+ {/* Categories Filter */}
+
+ Categories
+
+ setSelectedCategory(null)}
+ >
+
+ 📋 All Topics
+
+
+ {CATEGORIES.map((category) => (
+ setSelectedCategory(category.id)}
+ >
+
+ {category.icon} {category.name}
+
+
+ ))}
+
+
+
+ {/* Sort Tabs */}
+
+ setSortBy('recent')}
+ >
+
+ ⏰ Recent
+
+
+ setSortBy('popular')}
+ >
+
+ 👁️ Popular
+
+
+ setSortBy('replies')}
+ >
+
+ 💬 Replies
+
+
+
+
+ {/* Discussions List */}
+
+ {filteredDiscussions.length === 0 ? (
+
+ 💬
+
+ {searchQuery ? 'No discussions found matching your search' : 'No discussions yet'}
+
+ {!searchQuery && (
+
+ Create First Topic
+
+ )}
+
+ ) : (
+ filteredDiscussions.map((discussion) => {
+ const category = getCategoryById(discussion.categoryId);
+ return (
+ handleDiscussionPress(discussion)}
+ >
+ {/* Discussion Header */}
+
+
+
+ {discussion.authorName.charAt(0).toUpperCase()}
+
+
+
+ {discussion.authorName}
+ {getTimeAgo(discussion.lastActivityAt)}
+
+
+
+ {/* Badges */}
+
+ {discussion.isPinned && (
+
+ 📌 PINNED
+
+ )}
+ {discussion.isLocked && (
+
+ 🔒 LOCKED
+
+ )}
+ {category && (
+
+
+ {category.icon} {category.name}
+
+
+ )}
+
+
+ {/* Title */}
+
+ {discussion.title}
+
+
+ {/* Content Preview */}
+
+ {discussion.content}
+
+
+ {/* Tags */}
+ {discussion.tags.length > 0 && (
+
+ {discussion.tags.slice(0, 3).map((tag, idx) => (
+
+ #{tag}
+
+ ))}
+ {discussion.tags.length > 3 && (
+ +{discussion.tags.length - 3} more
+ )}
+
+ )}
+
+ {/* Stats */}
+
+
+ 💬
+ {discussion.repliesCount}
+
+
+ 👁️
+ {discussion.viewsCount}
+
+
+ 👍
+
+ {discussion.upvotes}
+
+
+
+
+ );
+ })
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Connect your wallet to create topics, reply to discussions, and upvote helpful content.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ statsGrid: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ gap: 12,
+ marginBottom: 20,
+ },
+ statCard: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ borderRadius: 12,
+ padding: 12,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ statIcon: {
+ fontSize: 20,
+ marginBottom: 4,
+ },
+ statValue: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 2,
+ },
+ statLabel: {
+ fontSize: 10,
+ color: '#999',
+ },
+ onlineIndicator: {
+ width: 8,
+ height: 8,
+ borderRadius: 4,
+ backgroundColor: KurdistanColors.kesk,
+ marginBottom: 4,
+ },
+ createButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ searchContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ borderRadius: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 1 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ searchIcon: {
+ fontSize: 18,
+ marginRight: 8,
+ },
+ searchInput: {
+ flex: 1,
+ fontSize: 16,
+ color: '#333',
+ },
+ categoriesSection: {
+ marginBottom: 20,
+ },
+ sectionTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ paddingHorizontal: 16,
+ marginBottom: 12,
+ },
+ categoriesScroll: {
+ paddingHorizontal: 16,
+ },
+ categoryChip: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ marginRight: 8,
+ },
+ categoryChipActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ categoryChipText: {
+ fontSize: 13,
+ fontWeight: '600',
+ color: '#666',
+ },
+ categoryChipTextActive: {
+ color: '#FFFFFF',
+ },
+ sortTabs: {
+ flexDirection: 'row',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ gap: 8,
+ },
+ sortTab: {
+ flex: 1,
+ paddingVertical: 8,
+ borderRadius: 12,
+ backgroundColor: '#E5E5E5',
+ alignItems: 'center',
+ },
+ sortTabActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ sortTabText: {
+ fontSize: 13,
+ fontWeight: '600',
+ color: '#666',
+ },
+ sortTabTextActive: {
+ color: '#FFFFFF',
+ },
+ discussionsList: {
+ paddingHorizontal: 16,
+ gap: 12,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ emptyButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 12,
+ },
+ emptyButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ discussionCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ discussionCardPinned: {
+ borderWidth: 1,
+ borderColor: '#F59E0B',
+ },
+ discussionHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 12,
+ },
+ discussionAvatar: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: KurdistanColors.kesk,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginRight: 12,
+ },
+ discussionAvatarText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#FFFFFF',
+ },
+ discussionHeaderInfo: {
+ flex: 1,
+ },
+ discussionAuthor: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#333',
+ },
+ discussionTime: {
+ fontSize: 12,
+ color: '#999',
+ },
+ badgesRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 6,
+ marginBottom: 8,
+ },
+ pinnedBadge: {
+ backgroundColor: 'rgba(245, 158, 11, 0.1)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ },
+ pinnedBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ color: '#F59E0B',
+ },
+ lockedBadge: {
+ backgroundColor: 'rgba(102, 102, 102, 0.1)',
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ },
+ lockedBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ color: '#666',
+ },
+ categoryBadge: {
+ paddingHorizontal: 8,
+ paddingVertical: 2,
+ borderRadius: 8,
+ },
+ categoryBadgeText: {
+ fontSize: 10,
+ fontWeight: '600',
+ },
+ discussionTitle: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ lineHeight: 22,
+ },
+ discussionContent: {
+ fontSize: 14,
+ color: '#666',
+ lineHeight: 20,
+ marginBottom: 12,
+ },
+ tagsRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 6,
+ marginBottom: 12,
+ },
+ tag: {
+ backgroundColor: '#F0F0F0',
+ paddingHorizontal: 8,
+ paddingVertical: 3,
+ borderRadius: 12,
+ },
+ tagText: {
+ fontSize: 11,
+ color: '#666',
+ },
+ tagsMore: {
+ fontSize: 11,
+ color: '#999',
+ alignSelf: 'center',
+ },
+ discussionStats: {
+ flexDirection: 'row',
+ gap: 16,
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ discussionStat: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 4,
+ },
+ discussionStatIcon: {
+ fontSize: 14,
+ },
+ discussionStatText: {
+ fontSize: 13,
+ color: '#666',
+ fontWeight: '500',
+ },
+ discussionStatUpvotes: {
+ color: KurdistanColors.kesk,
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#E0F2FE',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#0C4A6E',
+ lineHeight: 18,
+ },
+});
+
+export default ForumScreen;
diff --git a/mobile/src/screens/governance/ProposalsScreen.tsx b/mobile/src/screens/governance/ProposalsScreen.tsx
new file mode 100644
index 00000000..fc039aff
--- /dev/null
+++ b/mobile/src/screens/governance/ProposalsScreen.tsx
@@ -0,0 +1,575 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface Proposal {
+ id: string;
+ title: string;
+ description: string;
+ proposer: string;
+ status: 'active' | 'passed' | 'rejected' | 'expired';
+ votesFor: number;
+ votesAgainst: number;
+ endBlock: number;
+ deposit: string;
+}
+
+// Mock data removed - using real blockchain queries from democracy pallet
+
+const ProposalsScreen: React.FC = () => {
+ const { api, isApiReady, selectedAccount, error: connectionError } = usePezkuwi();
+
+ const [proposals, setProposals] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedFilter, setSelectedFilter] = useState<'all' | 'active' | 'passed' | 'rejected'>('all');
+
+ const formatBalance = (balance: string, decimals: number = 12): string => {
+ const value = BigInt(balance);
+ const divisor = BigInt(10 ** decimals);
+ const wholePart = value / divisor;
+ return wholePart.toLocaleString();
+ };
+
+ const fetchProposals = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch democracy referenda
+ if (api.query.democracy?.referendumInfoOf) {
+ const referendaData = await api.query.democracy.referendumInfoOf.entries();
+ const parsedProposals: Proposal[] = referendaData.map(([key, value]: any) => {
+ const index = key.args[0].toNumber();
+ const info = value.unwrap();
+
+ if (info.isOngoing) {
+ const ongoing = info.asOngoing;
+ const ayeVotes = ongoing.tally?.ayes ? BigInt(ongoing.tally.ayes.toString()) : BigInt(0);
+ const nayVotes = ongoing.tally?.nays ? BigInt(ongoing.tally.nays.toString()) : BigInt(0);
+
+ return {
+ id: `${index}`,
+ title: `Referendum #${index}`,
+ description: `Proposal hash: ${ongoing.proposalHash?.toString().slice(0, 20)}...`,
+ proposer: 'Unknown',
+ status: 'active' as const,
+ votesFor: Number(ayeVotes / BigInt(10 ** 12)),
+ votesAgainst: Number(nayVotes / BigInt(10 ** 12)),
+ endBlock: ongoing.end?.toNumber() || 0,
+ deposit: '0',
+ };
+ }
+
+ return null;
+ }).filter(Boolean) as Proposal[];
+
+ setProposals(parsedProposals);
+ }
+ } catch (error) {
+ console.error('Failed to load proposals:', error);
+ Alert.alert('Error', 'Failed to load proposals from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchProposals();
+ const interval = setInterval(fetchProposals, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchProposals();
+ };
+
+ const handleProposalPress = (proposal: Proposal) => {
+ Alert.alert(
+ proposal.title,
+ `${proposal.description}\n\nProposer: ${proposal.proposer.slice(0, 10)}...\nDeposit: ${proposal.deposit}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'Vote', onPress: () => handleVote(proposal) },
+ ]
+ );
+ };
+
+ const handleVote = (proposal: Proposal) => {
+ Alert.alert(
+ 'Cast Your Vote',
+ `Vote on: ${proposal.title}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'Vote Yes', onPress: () => submitVote(proposal, true) },
+ { text: 'Vote No', onPress: () => submitVote(proposal, false) },
+ ]
+ );
+ };
+
+ const submitVote = async (proposal: Proposal, voteYes: boolean) => {
+ Alert.alert('Success', `Voted ${voteYes ? 'YES' : 'NO'} on "${proposal.title}"`);
+ // TODO: Submit vote to chain
+ };
+
+ const handleCreateProposal = () => {
+ Alert.alert('Create Proposal', 'Create proposal form would open here');
+ };
+
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case 'active':
+ return KurdistanColors.kesk;
+ case 'passed':
+ return '#3B82F6';
+ case 'rejected':
+ return '#EF4444';
+ case 'expired':
+ return '#999';
+ default:
+ return '#666';
+ }
+ };
+
+ const calculateVotePercentage = (proposal: Proposal) => {
+ const total = proposal.votesFor + proposal.votesAgainst;
+ if (total === 0) return { forPercentage: 0, againstPercentage: 0 };
+ return {
+ forPercentage: Math.round((proposal.votesFor / total) * 100),
+ againstPercentage: Math.round((proposal.votesAgainst / total) * 100),
+ };
+ };
+
+ const filteredProposals = selectedFilter === 'all'
+ ? proposals
+ : proposals.filter(p => p.status === selectedFilter);
+
+ // Show error state
+ if (connectionError && !api) {
+ return (
+
+
+ ⚠️
+ Connection Failed
+ {connectionError}
+
+ • Check your internet connection{'\n'}
+ • Connection will retry automatically
+
+
+ Retry Now
+
+
+
+ );
+ }
+
+ // Show loading state
+ if (!isApiReady || (loading && proposals.length === 0)) {
+ return (
+
+
+
+ Connecting to blockchain...
+ Please wait
+
+
+ );
+ }
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Proposals
+ Vote on governance proposals
+
+
+ {/* Create Proposal Button */}
+
+ ➕ Create Proposal
+
+
+ {/* Filter Tabs */}
+
+ setSelectedFilter('all')}
+ >
+
+ All
+
+
+ setSelectedFilter('active')}
+ >
+
+ Active
+
+
+ setSelectedFilter('passed')}
+ >
+
+ Passed
+
+
+ setSelectedFilter('rejected')}
+ >
+
+ Rejected
+
+
+
+
+ {/* Proposals List */}
+
+ {filteredProposals.length === 0 ? (
+
+ 📋
+ No proposals found
+
+ ) : (
+ filteredProposals.map((proposal) => {
+ const { forPercentage, againstPercentage } = calculateVotePercentage(proposal);
+ return (
+ handleProposalPress(proposal)}
+ >
+ {/* Proposal Header */}
+
+ {proposal.title}
+
+
+ {proposal.status.toUpperCase()}
+
+
+
+
+ {/* Description */}
+
+ {proposal.description}
+
+
+ {/* Proposer */}
+
+ By: {proposal.proposer.slice(0, 10)}...{proposal.proposer.slice(-6)}
+
+
+ {/* Vote Progress Bar */}
+
+
+
+
+
+
+ ✅
+ {proposal.votesFor.toLocaleString()} ({forPercentage}%)
+
+
+ ❌
+ {proposal.votesAgainst.toLocaleString()} ({againstPercentage}%)
+
+
+
+
+ {/* Metadata */}
+
+ 📦 Deposit: {proposal.deposit}
+ ⏰ Block: {proposal.endBlock.toLocaleString()}
+
+
+ {/* Vote Button */}
+ {proposal.status === 'active' && (
+ handleVote(proposal)}
+ >
+ Vote Now
+
+ )}
+
+ );
+ })
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Creating a proposal requires a deposit that will be returned if the proposal passes. Only citizens can vote.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ createButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ filterTabs: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ marginBottom: 20,
+ gap: 8,
+ },
+ filterTab: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ },
+ filterTabActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ filterTabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ filterTabTextActive: {
+ color: '#FFFFFF',
+ },
+ proposalsList: {
+ paddingHorizontal: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ proposalCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ proposalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 12,
+ },
+ proposalTitle: {
+ flex: 1,
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginRight: 8,
+ },
+ statusBadge: {
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ },
+ proposalDescription: {
+ fontSize: 14,
+ color: '#666',
+ lineHeight: 20,
+ marginBottom: 8,
+ },
+ proposer: {
+ fontSize: 12,
+ color: '#999',
+ fontFamily: 'monospace',
+ marginBottom: 16,
+ },
+ voteProgressContainer: {
+ marginBottom: 12,
+ },
+ voteProgressBar: {
+ height: 8,
+ backgroundColor: '#FEE2E2',
+ borderRadius: 4,
+ overflow: 'hidden',
+ marginBottom: 8,
+ },
+ voteProgressFor: {
+ height: '100%',
+ backgroundColor: KurdistanColors.kesk,
+ },
+ voteStats: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ voteStat: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 4,
+ },
+ voteStatIcon: {
+ fontSize: 14,
+ },
+ voteStatText: {
+ fontSize: 13,
+ color: '#666',
+ fontWeight: '500',
+ },
+ proposalMetadata: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ metadataItem: {
+ fontSize: 12,
+ color: '#999',
+ },
+ voteButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 10,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ voteButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#FEF3C7',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#92400E',
+ lineHeight: 18,
+ },
+ // Error & Loading States
+ centerContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ },
+ errorIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ errorHint: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ lineHeight: 20,
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ loadingText: {
+ fontSize: 16,
+ color: '#333',
+ marginTop: 16,
+ },
+ loadingHint: {
+ fontSize: 12,
+ color: '#999',
+ marginTop: 8,
+ },
+});
+
+export default ProposalsScreen;
diff --git a/mobile/src/screens/governance/ProposalsScreen.tsx.bak b/mobile/src/screens/governance/ProposalsScreen.tsx.bak
new file mode 100644
index 00000000..8ccb9d97
--- /dev/null
+++ b/mobile/src/screens/governance/ProposalsScreen.tsx.bak
@@ -0,0 +1,578 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface Proposal {
+ id: string;
+ title: string;
+ description: string;
+ proposer: string;
+ status: 'active' | 'passed' | 'rejected' | 'expired';
+ votesFor: number;
+ votesAgainst: number;
+ endBlock: number;
+ deposit: string;
+}
+
+// Mock data removed - using real blockchain queries from democracy pallet
+
+const ProposalsScreen: React.FC = () => {
+ const { api, isApiReady, selectedAccount, error: connectionError } = usePezkuwi();
+
+ const [proposals, setProposals] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+ const [selectedFilter, setSelectedFilter] = useState<'all' | 'active' | 'passed' | 'rejected'>('all');
+
+ const formatBalance = (balance: string, decimals: number = 12): string => {
+ const value = BigInt(balance);
+ const divisor = BigInt(10 ** decimals);
+ const wholePart = value / divisor;
+ return wholePart.toLocaleString();
+ };
+
+ const fetchProposals = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch democracy referenda
+ if (api.query.democracy?.referendumInfoOf) {
+ const referendaData = await api.query.democracy.referendumInfoOf.entries();
+ const parsedProposals: Proposal[] = referendaData.map(([key, value]: any) => {
+ const index = key.args[0].toNumber();
+ const info = value.unwrap();
+
+ if (info.isOngoing) {
+ const ongoing = info.asOngoing;
+ const ayeVotes = ongoing.tally?.ayes ? BigInt(ongoing.tally.ayes.toString()) : BigInt(0);
+ const nayVotes = ongoing.tally?.nays ? BigInt(ongoing.tally.nays.toString()) : BigInt(0);
+
+ return {
+ id: `${index}`,
+ title: `Referendum #${index}`,
+ description: `Proposal hash: ${ongoing.proposalHash?.toString().slice(0, 20)}...`,
+ proposer: 'Unknown',
+ status: 'active' as const,
+ votesFor: Number(ayeVotes / BigInt(10 ** 12)),
+ votesAgainst: Number(nayVotes / BigInt(10 ** 12)),
+ endBlock: ongoing.end?.toNumber() || 0,
+ deposit: '0',
+ };
+ }
+
+ return null;
+ }).filter(Boolean) as Proposal[];
+
+ setProposals(parsedProposals);
+ }
+ } catch (error) {
+ console.error('Failed to load proposals:', error);
+ Alert.alert('Error', 'Failed to load proposals from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchProposals();
+ const interval = setInterval(fetchProposals, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchProposals();
+ };
+
+ const handleProposalPress = (proposal: Proposal) => {
+ Alert.alert(
+ proposal.title,
+ `${proposal.description}\n\nProposer: ${proposal.proposer.slice(0, 10)}...\nDeposit: ${proposal.deposit}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'Vote', onPress: () => handleVote(proposal) },
+ ]
+ );
+ };
+
+ const handleVote = (proposal: Proposal) => {
+ Alert.alert(
+ 'Cast Your Vote',
+ `Vote on: ${proposal.title}`,
+ [
+ { text: 'Cancel', style: 'cancel' },
+ { text: 'Vote Yes', onPress: () => submitVote(proposal, true) },
+ { text: 'Vote No', onPress: () => submitVote(proposal, false) },
+ ]
+ );
+ };
+
+ const submitVote = async (proposal: Proposal, voteYes: boolean) => {
+ Alert.alert('Success', `Voted ${voteYes ? 'YES' : 'NO'} on "${proposal.title}"`);
+ // TODO: Submit vote to chain
+ };
+
+ const handleCreateProposal = () => {
+ Alert.alert('Create Proposal', 'Create proposal form would open here');
+ };
+
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case 'active':
+ return KurdistanColors.kesk;
+ case 'passed':
+ return '#3B82F6';
+ case 'rejected':
+ return '#EF4444';
+ case 'expired':
+ return '#999';
+ default:
+ return '#666';
+ }
+ };
+
+ const calculateVotePercentage = (proposal: Proposal) => {
+ const total = proposal.votesFor + proposal.votesAgainst;
+ if (total === 0) return { forPercentage: 0, againstPercentage: 0 };
+ return {
+ forPercentage: Math.round((proposal.votesFor / total) * 100),
+ againstPercentage: Math.round((proposal.votesAgainst / total) * 100),
+ };
+ };
+
+ const filteredProposals = selectedFilter === 'all'
+ ? proposals
+ : proposals.filter(p => p.status === selectedFilter);
+
+ // Show error state
+ if (connectionError && !api) {
+ return (
+
+
+ ⚠️
+ Connection Failed
+ {connectionError}
+
+ • Check your internet connection{'\n'}
+ • Connection will retry automatically
+
+
+ Retry Now
+
+
+
+ );
+ }
+
+ // Show loading state
+ if (!isApiReady || (loading && proposals.length === 0)) {
+ return (
+
+
+
+ Connecting to blockchain...
+ Please wait
+
+
+ );
+ }
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Proposals
+ Vote on governance proposals
+
+
+ {/* Create Proposal Button */}
+
+ ➕ Create Proposal
+
+
+ {/* Filter Tabs */}
+
+ setSelectedFilter('all')}
+ >
+
+ All
+
+
+ setSelectedFilter('active')}
+ >
+
+ Active
+
+
+ setSelectedFilter('passed')}
+ >
+
+ Passed
+
+
+ setSelectedFilter('rejected')}
+ >
+
+ Rejected
+
+
+
+
+ {/* Proposals List */}
+
+ {filteredProposals.length === 0 ? (
+
+ 📋
+ No proposals found
+
+ ) : (
+ filteredProposals.map((proposal) => {
+ const { forPercentage, againstPercentage } = calculateVotePercentage(proposal);
+ return (
+ handleProposalPress(proposal)}
+ >
+ {/* Proposal Header */}
+
+ {proposal.title}
+
+
+ {proposal.status.toUpperCase()}
+
+
+
+
+ {/* Description */}
+
+ {proposal.description}
+
+
+ {/* Proposer */}
+
+ By: {proposal.proposer.slice(0, 10)}...{proposal.proposer.slice(-6)}
+
+
+ {/* Vote Progress Bar */}
+
+
+
+
+
+
+ ✅
+ {proposal.votesFor.toLocaleString()} ({forPercentage}%)
+
+
+ ❌
+ {proposal.votesAgainst.toLocaleString()} ({againstPercentage}%)
+
+
+
+
+ {/* Metadata */}
+
+ 📦 Deposit: {proposal.deposit}
+ ⏰ Block: {proposal.endBlock.toLocaleString()}
+
+
+ {/* Vote Button */}
+ {proposal.status === 'active' && (
+ handleVote(proposal)}
+ >
+ Vote Now
+
+ )}
+
+ );
+ })
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Creating a proposal requires a deposit that will be returned if the proposal passes. Only citizens can vote.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ createButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 20,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ filterTabs: {
+ flexDirection: 'row',
+ paddingHorizontal: 16,
+ marginBottom: 20,
+ gap: 8,
+ },
+ filterTab: {
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ borderRadius: 20,
+ backgroundColor: '#E5E5E5',
+ },
+ filterTabActive: {
+ backgroundColor: KurdistanColors.kesk,
+ },
+ filterTabText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#666',
+ },
+ filterTabTextActive: {
+ color: '#FFFFFF',
+ },
+ proposalsList: {
+ paddingHorizontal: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ proposalCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 16,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ proposalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 12,
+ },
+ proposalTitle: {
+ flex: 1,
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginRight: 8,
+ },
+ statusBadge: {
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ },
+ proposalDescription: {
+ fontSize: 14,
+ color: '#666',
+ lineHeight: 20,
+ marginBottom: 8,
+ },
+ proposer: {
+ fontSize: 12,
+ color: '#999',
+ fontFamily: 'monospace',
+ marginBottom: 16,
+ },
+ voteProgressContainer: {
+ marginBottom: 12,
+ },
+ voteProgressBar: {
+ height: 8,
+ backgroundColor: '#FEE2E2',
+ borderRadius: 4,
+ overflow: 'hidden',
+ marginBottom: 8,
+ },
+ voteProgressFor: {
+ height: '100%',
+ backgroundColor: KurdistanColors.kesk,
+ },
+ voteStats: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ voteStat: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 4,
+ },
+ voteStatIcon: {
+ fontSize: 14,
+ },
+ voteStatText: {
+ fontSize: 13,
+ color: '#666',
+ fontWeight: '500',
+ },
+ proposalMetadata: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ marginBottom: 12,
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ metadataItem: {
+ fontSize: 12,
+ color: '#999',
+ },
+ voteButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingVertical: 10,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ voteButtonText: {
+ fontSize: 14,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#FEF3C7',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#92400E',
+ lineHeight: 18,
+ },
+ // Error & Loading States
+ centerContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ },
+ errorIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ errorHint: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ lineHeight: 20,
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ loadingText: {
+ fontSize: 16,
+ color: '#333',
+ marginTop: 16,
+ },
+ loadingHint: {
+ fontSize: 12,
+ color: '#999',
+ marginTop: 8,
+ },
+});
+
+export default ProposalsScreen;
diff --git a/mobile/src/screens/governance/TreasuryScreen.tsx b/mobile/src/screens/governance/TreasuryScreen.tsx
new file mode 100644
index 00000000..5880a069
--- /dev/null
+++ b/mobile/src/screens/governance/TreasuryScreen.tsx
@@ -0,0 +1,467 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface TreasuryProposal {
+ id: string;
+ title: string;
+ beneficiary: string;
+ amount: string;
+ status: 'pending' | 'approved' | 'rejected';
+ proposer: string;
+ bond: string;
+}
+
+// Mock data removed - using real blockchain queries
+
+const TreasuryScreen: React.FC = () => {
+ const { api, isApiReady, error: connectionError } = usePezkuwi();
+
+ const [treasuryBalance, setTreasuryBalance] = useState('0');
+ const [proposals, setProposals] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+
+ const formatBalance = (balance: string, decimals: number = 12): string => {
+ const value = BigInt(balance);
+ const divisor = BigInt(10 ** decimals);
+ const wholePart = value / divisor;
+ return wholePart.toLocaleString();
+ };
+
+ const fetchTreasuryData = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch treasury balance
+ if (api.query.treasury?.treasury) {
+ const treasuryAccount = await api.query.treasury.treasury();
+ if (treasuryAccount) {
+ setTreasuryBalance(formatBalance(treasuryAccount.toString()));
+ }
+ }
+
+ // Fetch treasury proposals
+ if (api.query.treasury?.proposals) {
+ const proposalsData = await api.query.treasury.proposals.entries();
+ const parsedProposals: TreasuryProposal[] = proposalsData.map(([key, value]: any) => {
+ const proposalIndex = key.args[0].toNumber();
+ const proposal = value.unwrap();
+
+ return {
+ id: `${proposalIndex}`,
+ title: `Treasury Proposal #${proposalIndex}`,
+ beneficiary: proposal.beneficiary.toString(),
+ amount: formatBalance(proposal.value.toString()),
+ status: 'pending' as const,
+ proposer: proposal.proposer.toString(),
+ bond: formatBalance(proposal.bond.toString()),
+ };
+ });
+ setProposals(parsedProposals);
+ }
+ } catch (error) {
+ console.error('Failed to load treasury data:', error);
+ Alert.alert('Error', 'Failed to load treasury data from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchTreasuryData();
+ const interval = setInterval(fetchTreasuryData, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchTreasuryData();
+ };
+
+ const handleProposalPress = (proposal: TreasuryProposal) => {
+ Alert.alert(
+ proposal.title,
+ `Amount: ${proposal.amount}\nBeneficiary: ${proposal.beneficiary.slice(0, 10)}...\nBond: ${proposal.bond}\nStatus: ${proposal.status}`,
+ [
+ { text: 'OK' },
+ ]
+ );
+ };
+
+ const handleCreateProposal = () => {
+ Alert.alert('Create Spending Proposal', 'Spending proposal form would open here');
+ };
+
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case 'pending':
+ return '#F59E0B';
+ case 'approved':
+ return KurdistanColors.kesk;
+ case 'rejected':
+ return '#EF4444';
+ default:
+ return '#666';
+ }
+ };
+
+ // Show error state
+ if (connectionError && !api) {
+ return (
+
+
+ ⚠️
+ Connection Failed
+ {connectionError}
+
+ • Check your internet connection{'\n'}
+ • Connection will retry automatically
+
+
+ Retry Now
+
+
+
+ );
+ }
+
+ // Show loading state
+ if (!isApiReady || (loading && proposals.length === 0)) {
+ return (
+
+
+
+ Connecting to blockchain...
+ Please wait
+
+
+ );
+ }
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Treasury
+ Community fund management
+
+
+ {/* Treasury Balance Card */}
+
+ 💰 Total Treasury Balance
+ {treasuryBalance} HEZ
+
+ Funds allocated through democratic governance
+
+
+
+ {/* Create Proposal Button */}
+
+ ➕ Propose Spending
+
+
+ {/* Spending Proposals */}
+
+ Spending Proposals
+
+ {proposals.length === 0 ? (
+
+ 📋
+ No spending proposals
+
+ ) : (
+ proposals.map((proposal) => (
+ handleProposalPress(proposal)}
+ >
+ {/* Proposal Header */}
+
+ {proposal.title}
+
+
+ {proposal.status.toUpperCase()}
+
+
+
+
+ {/* Amount */}
+
+ Requested Amount:
+ {proposal.amount}
+
+
+ {/* Beneficiary */}
+
+ Beneficiary: {proposal.beneficiary.slice(0, 10)}...{proposal.beneficiary.slice(-6)}
+
+
+ {/* Proposer & Bond */}
+
+
+ 👤 {proposal.proposer.slice(0, 8)}...
+
+
+ 📦 Bond: {proposal.bond}
+
+
+
+ ))
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Spending proposals require council approval. A bond is required when creating a proposal and will be returned if approved.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ balanceCard: {
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ padding: 24,
+ borderRadius: 16,
+ alignItems: 'center',
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ balanceLabel: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 8,
+ },
+ balanceValue: {
+ fontSize: 32,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginBottom: 8,
+ },
+ balanceSubtext: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ },
+ createButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 24,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ section: {
+ paddingHorizontal: 16,
+ },
+ sectionTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ proposalCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 12,
+ boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)',
+ elevation: 2,
+ },
+ proposalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 12,
+ },
+ proposalTitle: {
+ flex: 1,
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginRight: 8,
+ },
+ statusBadge: {
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ },
+ amountRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 8,
+ paddingVertical: 8,
+ paddingHorizontal: 12,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ },
+ amountLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ amountValue: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ beneficiary: {
+ fontSize: 12,
+ color: '#666',
+ fontFamily: 'monospace',
+ marginBottom: 12,
+ },
+ metadataRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ metadataItem: {
+ fontSize: 12,
+ color: '#999',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#FEF3C7',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#92400E',
+ lineHeight: 18,
+ },
+ // Error & Loading States
+ centerContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ },
+ errorIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ errorHint: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ lineHeight: 20,
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ loadingText: {
+ fontSize: 16,
+ color: '#333',
+ marginTop: 16,
+ },
+ loadingHint: {
+ fontSize: 12,
+ color: '#999',
+ marginTop: 8,
+ },
+});
+
+export default TreasuryScreen;
diff --git a/mobile/src/screens/governance/TreasuryScreen.tsx.bak b/mobile/src/screens/governance/TreasuryScreen.tsx.bak
new file mode 100644
index 00000000..57d7292d
--- /dev/null
+++ b/mobile/src/screens/governance/TreasuryScreen.tsx.bak
@@ -0,0 +1,473 @@
+import React, { useState, useEffect } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ ScrollView,
+ TouchableOpacity,
+ RefreshControl,
+ Alert,
+ ActivityIndicator,
+} from 'react-native';
+import { KurdistanColors } from '../../theme/colors';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
+
+interface TreasuryProposal {
+ id: string;
+ title: string;
+ beneficiary: string;
+ amount: string;
+ status: 'pending' | 'approved' | 'rejected';
+ proposer: string;
+ bond: string;
+}
+
+// Mock data removed - using real blockchain queries
+
+const TreasuryScreen: React.FC = () => {
+ const { api, isApiReady, error: connectionError } = usePezkuwi();
+
+ const [treasuryBalance, setTreasuryBalance] = useState('0');
+ const [proposals, setProposals] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [refreshing, setRefreshing] = useState(false);
+
+ const formatBalance = (balance: string, decimals: number = 12): string => {
+ const value = BigInt(balance);
+ const divisor = BigInt(10 ** decimals);
+ const wholePart = value / divisor;
+ return wholePart.toLocaleString();
+ };
+
+ const fetchTreasuryData = async () => {
+ if (!api || !isApiReady) return;
+
+ try {
+ setLoading(true);
+
+ // Fetch treasury balance
+ if (api.query.treasury?.treasury) {
+ const treasuryAccount = await api.query.treasury.treasury();
+ if (treasuryAccount) {
+ setTreasuryBalance(formatBalance(treasuryAccount.toString()));
+ }
+ }
+
+ // Fetch treasury proposals
+ if (api.query.treasury?.proposals) {
+ const proposalsData = await api.query.treasury.proposals.entries();
+ const parsedProposals: TreasuryProposal[] = proposalsData.map(([key, value]: any) => {
+ const proposalIndex = key.args[0].toNumber();
+ const proposal = value.unwrap();
+
+ return {
+ id: `${proposalIndex}`,
+ title: `Treasury Proposal #${proposalIndex}`,
+ beneficiary: proposal.beneficiary.toString(),
+ amount: formatBalance(proposal.value.toString()),
+ status: 'pending' as const,
+ proposer: proposal.proposer.toString(),
+ bond: formatBalance(proposal.bond.toString()),
+ };
+ });
+ setProposals(parsedProposals);
+ }
+ } catch (error) {
+ console.error('Failed to load treasury data:', error);
+ Alert.alert('Error', 'Failed to load treasury data from blockchain');
+ } finally {
+ setLoading(false);
+ setRefreshing(false);
+ }
+ };
+
+ useEffect(() => {
+ fetchTreasuryData();
+ const interval = setInterval(fetchTreasuryData, 30000);
+ return () => clearInterval(interval);
+ }, [api, isApiReady]);
+
+ const handleRefresh = () => {
+ setRefreshing(true);
+ fetchTreasuryData();
+ };
+
+ const handleProposalPress = (proposal: TreasuryProposal) => {
+ Alert.alert(
+ proposal.title,
+ `Amount: ${proposal.amount}\nBeneficiary: ${proposal.beneficiary.slice(0, 10)}...\nBond: ${proposal.bond}\nStatus: ${proposal.status}`,
+ [
+ { text: 'OK' },
+ ]
+ );
+ };
+
+ const handleCreateProposal = () => {
+ Alert.alert('Create Spending Proposal', 'Spending proposal form would open here');
+ };
+
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case 'pending':
+ return '#F59E0B';
+ case 'approved':
+ return KurdistanColors.kesk;
+ case 'rejected':
+ return '#EF4444';
+ default:
+ return '#666';
+ }
+ };
+
+ // Show error state
+ if (connectionError && !api) {
+ return (
+
+
+ ⚠️
+ Connection Failed
+ {connectionError}
+
+ • Check your internet connection{'\n'}
+ • Connection will retry automatically
+
+
+ Retry Now
+
+
+
+ );
+ }
+
+ // Show loading state
+ if (!isApiReady || (loading && proposals.length === 0)) {
+ return (
+
+
+
+ Connecting to blockchain...
+ Please wait
+
+
+ );
+ }
+
+ return (
+
+ }
+ >
+ {/* Header */}
+
+ Treasury
+ Community fund management
+
+
+ {/* Treasury Balance Card */}
+
+ 💰 Total Treasury Balance
+ {treasuryBalance} HEZ
+
+ Funds allocated through democratic governance
+
+
+
+ {/* Create Proposal Button */}
+
+ ➕ Propose Spending
+
+
+ {/* Spending Proposals */}
+
+ Spending Proposals
+
+ {proposals.length === 0 ? (
+
+ 📋
+ No spending proposals
+
+ ) : (
+ proposals.map((proposal) => (
+ handleProposalPress(proposal)}
+ >
+ {/* Proposal Header */}
+
+ {proposal.title}
+
+
+ {proposal.status.toUpperCase()}
+
+
+
+
+ {/* Amount */}
+
+ Requested Amount:
+ {proposal.amount}
+
+
+ {/* Beneficiary */}
+
+ Beneficiary: {proposal.beneficiary.slice(0, 10)}...{proposal.beneficiary.slice(-6)}
+
+
+ {/* Proposer & Bond */}
+
+
+ 👤 {proposal.proposer.slice(0, 8)}...
+
+
+ 📦 Bond: {proposal.bond}
+
+
+
+ ))
+ )}
+
+
+ {/* Info Note */}
+
+ ℹ️
+
+ Spending proposals require council approval. A bond is required when creating a proposal and will be returned if approved.
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F8F9FA',
+ },
+ scrollContent: {
+ flex: 1,
+ },
+ header: {
+ padding: 20,
+ paddingBottom: 16,
+ },
+ headerTitle: {
+ fontSize: 28,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 4,
+ },
+ headerSubtitle: {
+ fontSize: 14,
+ color: '#666',
+ },
+ balanceCard: {
+ backgroundColor: '#FFFFFF',
+ marginHorizontal: 16,
+ marginBottom: 20,
+ padding: 24,
+ borderRadius: 16,
+ alignItems: 'center',
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ balanceLabel: {
+ fontSize: 14,
+ color: '#666',
+ marginBottom: 8,
+ },
+ balanceValue: {
+ fontSize: 32,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ marginBottom: 8,
+ },
+ balanceSubtext: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ },
+ createButton: {
+ backgroundColor: KurdistanColors.kesk,
+ marginHorizontal: 16,
+ marginBottom: 24,
+ paddingVertical: 14,
+ borderRadius: 12,
+ alignItems: 'center',
+ },
+ createButtonText: {
+ fontSize: 16,
+ fontWeight: '600',
+ color: '#FFFFFF',
+ },
+ section: {
+ paddingHorizontal: 16,
+ },
+ sectionTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 16,
+ },
+ emptyContainer: {
+ padding: 40,
+ alignItems: 'center',
+ },
+ emptyIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ emptyText: {
+ fontSize: 16,
+ color: '#666',
+ textAlign: 'center',
+ },
+ proposalCard: {
+ backgroundColor: '#FFFFFF',
+ borderRadius: 16,
+ padding: 16,
+ marginBottom: 12,
+ shadowColor: '#000',
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.05,
+ shadowRadius: 4,
+ elevation: 2,
+ },
+ proposalHeader: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ marginBottom: 12,
+ },
+ proposalTitle: {
+ flex: 1,
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: '#333',
+ marginRight: 8,
+ },
+ statusBadge: {
+ paddingHorizontal: 10,
+ paddingVertical: 4,
+ borderRadius: 12,
+ },
+ statusBadgeText: {
+ fontSize: 10,
+ fontWeight: '700',
+ },
+ amountRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ marginBottom: 8,
+ paddingVertical: 8,
+ paddingHorizontal: 12,
+ backgroundColor: '#F8F9FA',
+ borderRadius: 8,
+ },
+ amountLabel: {
+ fontSize: 14,
+ color: '#666',
+ },
+ amountValue: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ color: KurdistanColors.kesk,
+ },
+ beneficiary: {
+ fontSize: 12,
+ color: '#666',
+ fontFamily: 'monospace',
+ marginBottom: 12,
+ },
+ metadataRow: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ paddingTop: 12,
+ borderTopWidth: 1,
+ borderTopColor: '#F0F0F0',
+ },
+ metadataItem: {
+ fontSize: 12,
+ color: '#999',
+ },
+ infoNote: {
+ flexDirection: 'row',
+ backgroundColor: '#FEF3C7',
+ marginHorizontal: 16,
+ marginTop: 16,
+ marginBottom: 24,
+ padding: 16,
+ borderRadius: 12,
+ gap: 12,
+ },
+ infoNoteIcon: {
+ fontSize: 20,
+ },
+ infoNoteText: {
+ flex: 1,
+ fontSize: 12,
+ color: '#92400E',
+ lineHeight: 18,
+ },
+ // Error & Loading States
+ centerContainer: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 32,
+ },
+ errorIcon: {
+ fontSize: 64,
+ marginBottom: 16,
+ },
+ errorTitle: {
+ fontSize: 20,
+ fontWeight: 'bold',
+ color: '#333',
+ marginBottom: 8,
+ },
+ errorMessage: {
+ fontSize: 14,
+ color: '#666',
+ textAlign: 'center',
+ marginBottom: 16,
+ },
+ errorHint: {
+ fontSize: 12,
+ color: '#999',
+ textAlign: 'center',
+ lineHeight: 20,
+ marginBottom: 24,
+ },
+ retryButton: {
+ backgroundColor: KurdistanColors.kesk,
+ paddingHorizontal: 24,
+ paddingVertical: 12,
+ borderRadius: 8,
+ },
+ retryButtonText: {
+ color: '#FFFFFF',
+ fontSize: 14,
+ fontWeight: '600',
+ },
+ loadingText: {
+ fontSize: 16,
+ color: '#333',
+ marginTop: 16,
+ },
+ loadingHint: {
+ fontSize: 12,
+ color: '#999',
+ marginTop: 8,
+ },
+});
+
+export default TreasuryScreen;
diff --git a/mobile/src/screens/governance/__tests__/ElectionsScreen.test.tsx b/mobile/src/screens/governance/__tests__/ElectionsScreen.test.tsx
new file mode 100644
index 00000000..7b488601
--- /dev/null
+++ b/mobile/src/screens/governance/__tests__/ElectionsScreen.test.tsx
@@ -0,0 +1,344 @@
+/**
+ * ElectionsScreen Test Suite
+ *
+ * Tests for Elections feature with real dynamicCommissionCollective integration
+ */
+
+import React from 'react';
+import { render, waitFor, fireEvent, act } from '@testing-library/react-native';
+import { Alert } from 'react-native';
+import ElectionsScreen from '../ElectionsScreen';
+import { usePezkuwi } from '../../../contexts/PezkuwiContext';
+
+jest.mock('../../../contexts/PezkuwiContext');
+
+// Mock Alert.alert
+jest.spyOn(Alert, 'alert').mockImplementation(() => {});
+
+describe('ElectionsScreen', () => {
+ const mockApi = {
+ query: {
+ dynamicCommissionCollective: {
+ proposals: jest.fn(),
+ voting: jest.fn(),
+ },
+ },
+ };
+
+ const mockUsePezkuwi = {
+ api: mockApi,
+ isApiReady: true,
+ selectedAccount: {
+ address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
+ meta: { name: 'Test Account' },
+ },
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ (usePezkuwi as jest.Mock).mockReturnValue(mockUsePezkuwi);
+ });
+
+ describe('Data Fetching', () => {
+ it('should fetch commission proposals on mount', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ '0xabcdef1234567890',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+
+ render();
+
+ await waitFor(() => {
+ expect(mockApi.query.dynamicCommissionCollective.proposals).toHaveBeenCalled();
+ });
+ });
+
+ it('should handle fetch errors', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockRejectedValue(
+ new Error('Network error')
+ );
+
+ render();
+
+ await waitFor(() => {
+ expect(Alert.alert).toHaveBeenCalledWith(
+ 'Error',
+ 'Failed to load elections data from blockchain'
+ );
+ });
+ });
+
+ it('should fetch voting data for each proposal', async () => {
+ const proposalHash = '0x1234567890abcdef';
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([proposalHash]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+
+ render();
+
+ await waitFor(() => {
+ expect(mockApi.query.dynamicCommissionCollective.voting).toHaveBeenCalledWith(
+ proposalHash
+ );
+ });
+ });
+
+ it('should skip proposals with no voting data', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: false,
+ });
+
+ const { queryByText } = render();
+
+ await waitFor(() => {
+ expect(queryByText(/Parliamentary Election/)).toBeNull();
+ });
+ });
+ });
+
+ describe('UI Rendering', () => {
+ beforeEach(() => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+ });
+
+ it('should display election card', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/Parliamentary Election/)).toBeTruthy();
+ });
+ });
+
+ it('should display candidate count', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText('3')).toBeTruthy(); // threshold = candidates
+ });
+ });
+
+ it('should display total votes', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText('7')).toBeTruthy(); // ayes(5) + nays(2)
+ });
+ });
+
+ it('should display end block', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/2,000/)).toBeTruthy();
+ });
+ });
+
+ it('should display empty state when no elections', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText('No elections available')).toBeTruthy();
+ });
+ });
+ });
+
+ describe('Election Type Filtering', () => {
+ beforeEach(() => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+ });
+
+ it('should show all elections by default', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/Parliamentary Election/)).toBeTruthy();
+ });
+ });
+
+ it('should filter by parliamentary type', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ const parliamentaryTab = getByText(/🏛️ Parliamentary/);
+ fireEvent.press(parliamentaryTab);
+ });
+
+ await waitFor(() => {
+ expect(getByText(/Parliamentary Election/)).toBeTruthy();
+ });
+ });
+ });
+
+ describe('User Interactions', () => {
+ beforeEach(() => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+ });
+
+ it('should handle election card press', async () => {
+ const { getByText } = render();
+
+ await waitFor(async () => {
+ const electionCard = getByText(/Parliamentary Election/);
+ fireEvent.press(electionCard);
+ });
+
+ expect(Alert.alert).toHaveBeenCalled();
+ });
+
+ it('should handle register button press', async () => {
+ const { getByText } = render();
+
+ const registerButton = getByText(/Register as Candidate/);
+ fireEvent.press(registerButton);
+
+ expect(Alert.alert).toHaveBeenCalledWith(
+ 'Register as Candidate',
+ 'Candidate registration form would open here'
+ );
+ });
+
+ it('should have pull-to-refresh capability', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([]);
+
+ const { UNSAFE_root } = render();
+
+ // Wait for initial load
+ await waitFor(() => {
+ expect(mockApi.query.dynamicCommissionCollective.proposals).toHaveBeenCalled();
+ });
+
+ // Verify RefreshControl is present (pull-to-refresh enabled)
+ const refreshControls = UNSAFE_root.findAllByType('RCTRefreshControl');
+ expect(refreshControls.length).toBeGreaterThan(0);
+
+ // Note: Refresh behavior is fully tested via auto-refresh test
+ // which uses the same fetchElections() function
+ });
+ });
+
+ describe('Election Status', () => {
+ it('should show active status badge', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText('ACTIVE')).toBeTruthy();
+ });
+ });
+
+ it('should show vote button for active elections', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([
+ '0x1234567890abcdef',
+ ]);
+
+ mockApi.query.dynamicCommissionCollective.voting.mockResolvedValue({
+ isSome: true,
+ unwrap: () => ({
+ end: { toNumber: () => 2000 },
+ threshold: { toNumber: () => 3 },
+ ayes: { length: 5 },
+ nays: { length: 2 },
+ }),
+ });
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText('View Candidates & Vote')).toBeTruthy();
+ });
+ });
+ });
+
+ describe('Auto-refresh', () => {
+ jest.useFakeTimers();
+
+ it('should auto-refresh every 30 seconds', async () => {
+ mockApi.query.dynamicCommissionCollective.proposals.mockResolvedValue([]);
+
+ render();
+
+ await waitFor(() => {
+ expect(mockApi.query.dynamicCommissionCollective.proposals).toHaveBeenCalledTimes(1);
+ });
+
+ jest.advanceTimersByTime(30000);
+
+ await waitFor(() => {
+ expect(mockApi.query.dynamicCommissionCollective.proposals).toHaveBeenCalledTimes(2);
+ });
+ });
+ });
+});
diff --git a/mobile/src/screens/governance/__tests__/ProposalsScreen.test.tsx b/mobile/src/screens/governance/__tests__/ProposalsScreen.test.tsx
new file mode 100644
index 00000000..2c4ca310
--- /dev/null
+++ b/mobile/src/screens/governance/__tests__/ProposalsScreen.test.tsx
@@ -0,0 +1,379 @@
+/**
+ * ProposalsScreen Test Suite
+ *
+ * Tests for Proposals feature with real democracy pallet integration
+ */
+
+import React from 'react';
+import { render, waitFor, fireEvent, act } from '@testing-library/react-native';
+import { Alert } from 'react-native';
+import ProposalsScreen from '../ProposalsScreen';
+import { usePezkuwi } from '../../../contexts/PezkuwiContext';
+
+jest.mock('../../../contexts/PezkuwiContext');
+
+// Mock Alert.alert
+jest.spyOn(Alert, 'alert').mockImplementation(() => {});
+
+describe('ProposalsScreen', () => {
+ const mockApi = {
+ query: {
+ democracy: {
+ referendumInfoOf: {
+ entries: jest.fn(),
+ },
+ },
+ },
+ };
+
+ const mockUsePezkuwi = {
+ api: mockApi,
+ isApiReady: true,
+ selectedAccount: {
+ address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
+ meta: { name: 'Test Account' },
+ },
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ (usePezkuwi as jest.Mock).mockReturnValue(mockUsePezkuwi);
+ });
+
+ describe('Data Fetching', () => {
+ it('should fetch referenda on mount', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0x1234567890abcdef1234567890abcdef' },
+ tally: {
+ ayes: { toString: () => '100000000000000' },
+ nays: { toString: () => '50000000000000' },
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(mockApi.query.democracy.referendumInfoOf.entries).toHaveBeenCalled();
+ expect(getByText(/Referendum #0/)).toBeTruthy();
+ });
+ });
+
+ it('should handle fetch errors', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockRejectedValue(
+ new Error('Connection failed')
+ );
+
+ render();
+
+ await waitFor(() => {
+ expect(Alert.alert).toHaveBeenCalledWith(
+ 'Error',
+ 'Failed to load proposals from blockchain'
+ );
+ });
+ });
+
+ it('should filter out non-ongoing proposals', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: false,
+ }),
+ },
+ ],
+ ]);
+
+ const { queryByText } = render();
+
+ await waitFor(() => {
+ expect(queryByText(/Referendum #0/)).toBeNull();
+ });
+ });
+ });
+
+ describe('UI Rendering', () => {
+ it('should display referendum title', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 5 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '0' },
+ nays: { toString: () => '0' },
+ },
+ end: { toNumber: () => 2000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/Referendum #5/)).toBeTruthy();
+ });
+ });
+
+ it('should display vote counts', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '200000000000000' }, // 200 HEZ
+ nays: { toString: () => '100000000000000' }, // 100 HEZ
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/200/)).toBeTruthy(); // Votes for
+ expect(getByText(/100/)).toBeTruthy(); // Votes against
+ });
+ });
+
+ it('should display empty state when no proposals', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/No proposals found/)).toBeTruthy();
+ });
+ });
+ });
+
+ describe('Vote Percentage Calculation', () => {
+ it('should calculate vote percentages correctly', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '750000000000000' }, // 75%
+ nays: { toString: () => '250000000000000' }, // 25%
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/75%/)).toBeTruthy();
+ expect(getByText(/25%/)).toBeTruthy();
+ });
+ });
+
+ it('should handle zero votes', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '0' },
+ nays: { toString: () => '0' },
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getAllByText } = render();
+
+ await waitFor(() => {
+ const percentages = getAllByText(/0%/);
+ expect(percentages.length).toBeGreaterThan(0);
+ });
+ });
+ });
+
+ describe('Filtering', () => {
+ beforeEach(() => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '100000000000000' },
+ nays: { toString: () => '50000000000000' },
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+ });
+
+ it('should show all proposals by default', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/Referendum #0/)).toBeTruthy();
+ });
+ });
+
+ it('should filter by active status', async () => {
+ const { getByText } = render();
+
+ await waitFor(() => {
+ const activeTab = getByText('Active');
+ fireEvent.press(activeTab);
+ });
+
+ await waitFor(() => {
+ expect(getByText(/Referendum #0/)).toBeTruthy();
+ });
+ });
+ });
+
+ describe('User Interactions', () => {
+ it('should handle proposal press', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '0' },
+ nays: { toString: () => '0' },
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(async () => {
+ const proposal = getByText(/Referendum #0/);
+ fireEvent.press(proposal);
+ });
+
+ expect(Alert.alert).toHaveBeenCalled();
+ });
+
+ it('should handle vote button press', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ isOngoing: true,
+ asOngoing: {
+ proposalHash: { toString: () => '0xabcdef' },
+ tally: {
+ ayes: { toString: () => '0' },
+ nays: { toString: () => '0' },
+ },
+ end: { toNumber: () => 1000 },
+ },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(async () => {
+ const voteButton = getByText('Vote Now');
+ fireEvent.press(voteButton);
+ });
+
+ expect(Alert.alert).toHaveBeenCalledWith(
+ 'Cast Your Vote',
+ expect.any(String),
+ expect.any(Array)
+ );
+ });
+
+ it('should have pull-to-refresh capability', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([]);
+
+ const { UNSAFE_root } = render();
+
+ // Wait for initial load
+ await waitFor(() => {
+ expect(mockApi.query.democracy.referendumInfoOf.entries).toHaveBeenCalled();
+ });
+
+ // Verify RefreshControl is present (pull-to-refresh enabled)
+ const refreshControls = UNSAFE_root.findAllByType('RCTRefreshControl');
+ expect(refreshControls.length).toBeGreaterThan(0);
+
+ // Note: Refresh behavior is fully tested via auto-refresh test
+ // which uses the same fetchProposals() function
+ });
+ });
+
+ describe('Auto-refresh', () => {
+ jest.useFakeTimers();
+
+ it('should auto-refresh every 30 seconds', async () => {
+ mockApi.query.democracy.referendumInfoOf.entries.mockResolvedValue([]);
+
+ render();
+
+ await waitFor(() => {
+ expect(mockApi.query.democracy.referendumInfoOf.entries).toHaveBeenCalledTimes(1);
+ });
+
+ jest.advanceTimersByTime(30000);
+
+ await waitFor(() => {
+ expect(mockApi.query.democracy.referendumInfoOf.entries).toHaveBeenCalledTimes(2);
+ });
+ });
+ });
+});
diff --git a/mobile/src/screens/governance/__tests__/TreasuryScreen.test.tsx b/mobile/src/screens/governance/__tests__/TreasuryScreen.test.tsx
new file mode 100644
index 00000000..d3f5c93c
--- /dev/null
+++ b/mobile/src/screens/governance/__tests__/TreasuryScreen.test.tsx
@@ -0,0 +1,274 @@
+/**
+ * TreasuryScreen Test Suite
+ *
+ * Tests for Treasury feature with real blockchain integration
+ */
+
+import React from 'react';
+import { render, waitFor, fireEvent, act } from '@testing-library/react-native';
+import { Alert } from 'react-native';
+import TreasuryScreen from '../TreasuryScreen';
+import { usePezkuwi } from '../../../contexts/PezkuwiContext';
+
+// Mock dependencies
+jest.mock('../../../contexts/PezkuwiContext');
+
+// Mock Alert.alert
+jest.spyOn(Alert, 'alert').mockImplementation(() => {});
+
+describe('TreasuryScreen', () => {
+ const mockApi = {
+ query: {
+ treasury: {
+ treasury: jest.fn(),
+ proposals: {
+ entries: jest.fn(),
+ },
+ },
+ },
+ };
+
+ const mockUsePezkuwi = {
+ api: mockApi,
+ isApiReady: true,
+ selectedAccount: {
+ address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
+ meta: { name: 'Test Account' },
+ },
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ (usePezkuwi as jest.Mock).mockReturnValue(mockUsePezkuwi);
+ });
+
+ describe('Data Fetching', () => {
+ it('should fetch treasury balance on mount', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '1000000000000000', // 1000 HEZ
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(mockApi.query.treasury.treasury).toHaveBeenCalled();
+ expect(getByText(/1,000/)).toBeTruthy();
+ });
+ });
+
+ it('should fetch treasury proposals on mount', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '0',
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ beneficiary: { toString: () => '5GrwvaEF...' },
+ value: { toString: () => '100000000000000' },
+ proposer: { toString: () => '5FHneW46...' },
+ bond: { toString: () => '10000000000000' },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(mockApi.query.treasury.proposals.entries).toHaveBeenCalled();
+ expect(getByText(/Treasury Proposal #0/)).toBeTruthy();
+ });
+ });
+
+ it('should handle fetch errors gracefully', async () => {
+ mockApi.query.treasury.treasury.mockRejectedValue(new Error('Network error'));
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ render();
+
+ await waitFor(() => {
+ expect(Alert.alert).toHaveBeenCalledWith(
+ 'Error',
+ 'Failed to load treasury data from blockchain'
+ );
+ });
+ });
+ });
+
+ describe('UI Rendering', () => {
+ it('should display treasury balance correctly', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '500000000000000', // 500 HEZ
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/500/)).toBeTruthy();
+ });
+ });
+
+ it('should display empty state when no proposals', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '0',
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/No spending proposals/)).toBeTruthy();
+ });
+ });
+
+ it('should display proposal list when proposals exist', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '0',
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ beneficiary: { toString: () => '5GrwvaEF...' },
+ value: { toString: () => '100000000000000' },
+ proposer: { toString: () => '5FHneW46...' },
+ bond: { toString: () => '10000000000000' },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/Treasury Proposal #0/)).toBeTruthy();
+ });
+ });
+ });
+
+ describe('User Interactions', () => {
+ it('should have pull-to-refresh capability', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '1000000000000000',
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ const { UNSAFE_root } = render();
+
+ // Wait for initial load
+ await waitFor(() => {
+ expect(mockApi.query.treasury.treasury).toHaveBeenCalled();
+ });
+
+ // Verify RefreshControl is present (pull-to-refresh enabled)
+ const refreshControls = UNSAFE_root.findAllByType('RCTRefreshControl');
+ expect(refreshControls.length).toBeGreaterThan(0);
+
+ // Note: Refresh behavior is fully tested via auto-refresh test
+ // which uses the same fetchTreasuryData() function
+ });
+
+ it('should handle proposal press', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue({
+ toString: () => '0',
+ });
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([
+ [
+ { args: [{ toNumber: () => 0 }] },
+ {
+ unwrap: () => ({
+ beneficiary: { toString: () => '5GrwvaEF...' },
+ value: { toString: () => '100000000000000' },
+ proposer: { toString: () => '5FHneW46...' },
+ bond: { toString: () => '10000000000000' },
+ }),
+ },
+ ],
+ ]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ const proposalCard = getByText(/Treasury Proposal #0/);
+ fireEvent.press(proposalCard);
+ });
+
+ expect(Alert.alert).toHaveBeenCalled();
+ });
+ });
+
+ describe('Balance Formatting', () => {
+ it('should format large balances with commas', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue('1000000000000000000'); // 1,000,000 HEZ
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/1,000,000/)).toBeTruthy();
+ });
+ });
+
+ it('should handle zero balance', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue('0');
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ const { getByText } = render();
+
+ await waitFor(() => {
+ expect(getByText(/0/)).toBeTruthy();
+ });
+ });
+ });
+
+ describe('API State Handling', () => {
+ it('should not fetch when API is not ready', () => {
+ (usePezkuwi as jest.Mock).mockReturnValue({
+ ...mockUsePezkuwi,
+ isApiReady: false,
+ });
+
+ render();
+
+ expect(mockApi.query.treasury.treasury).not.toHaveBeenCalled();
+ });
+
+ it('should not fetch when API is null', () => {
+ (usePezkuwi as jest.Mock).mockReturnValue({
+ ...mockUsePezkuwi,
+ api: null,
+ });
+
+ render();
+
+ expect(mockApi.query.treasury.treasury).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('Auto-refresh', () => {
+ jest.useFakeTimers();
+
+ it('should refresh data every 30 seconds', async () => {
+ mockApi.query.treasury.treasury.mockResolvedValue('1000000000000000');
+ mockApi.query.treasury.proposals.entries.mockResolvedValue([]);
+
+ render();
+
+ await waitFor(() => {
+ expect(mockApi.query.treasury.treasury).toHaveBeenCalledTimes(1);
+ });
+
+ // Fast-forward 30 seconds
+ jest.advanceTimersByTime(30000);
+
+ await waitFor(() => {
+ expect(mockApi.query.treasury.treasury).toHaveBeenCalledTimes(2);
+ });
+ });
+ });
+});
diff --git a/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/production.ts b/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/production.ts
index b46d5415..01e37b58 100644
--- a/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/production.ts
+++ b/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/production.ts
@@ -4,7 +4,7 @@
import type { EndpointOption } from './types.js';
import { ZKVERIFY_GENESIS } from '../api/constants.js';
-import { chains3dpassSVG, chainsAnalogSVG, chainsBittensorPNG, chainsChainflipPNG, chainsCommuneaiPNG, chainsCreditcoinPNG, chainsDebioSVG, chainsFragnovaPNG, chainsJurPNG, chainsLiberlandPNG, chainsLogionPNG, chainsMyriadPNG, chainsPolkadotCircleSVG, chainsSpannerPNG, chainsTanglePNG, chainsTorusPNG, chainsVaraPNG, chainsVtbPNG } from '../ui/logos/chains/index.js';
+import { chains3dpassSVG, chainsAnalogSVG, chainsBittensorPNG, chainsChainflipPNG, chainsCommuneaiPNG, chainsCreditcoinPNG, chainsDebioSVG, chainsFragnovaPNG, chainsJurPNG, chainsLiberlandPNG, chainsLogionPNG, chainsMyriadPNG, chainsPezkuwiPNG, chainsPolkadotCircleSVG, chainsSpannerPNG, chainsTanglePNG, chainsTorusPNG, chainsVaraPNG, chainsVtbPNG } from '../ui/logos/chains/index.js';
import { nodesAresOdysseySVG, nodesAutonomysPNG, nodesCentrifugePNG, nodesCereSVG, nodesChainxSVG, nodesCompetitorsClubPNG, nodesCrownSterlingPNG, nodesCrustSVG, nodesDatahighwayPNG, nodesDockPNG, nodesEdgewareWhitePNG, nodesEfinitySVG, nodesElysiumPNG, nodesHanyonycashPNG, nodesHumanodePNG, nodesInnovatorPNG, nodesJoystreamSVG, nodesKulupuSVG, nodesKusariSVG, nodesMathSVG, nodesMinixPNG, nodesNftmartPNG, nodesNodleSVG, nodesPolkadexSVG, nodesPolymeshSVG, nodesRiochainSVG, nodesRobonomicsSVG, nodesSherpaxPNG, nodesSoraSubstrateSVG, nodesStafiPNG, nodesSubgameSVG, nodesSubsocialSVG, nodesSwapdexSVG, nodesTanssiSVG, nodesTernoaSVG, nodesThebifrostPNG, nodesTscsPNG, nodesUniartsPNG, nodesUnitnetworkPNG, nodesVFlowPNG, nodesZkVerifyPNG } from '../ui/logos/nodes/index.js';
export * from './productionRelayDicle.js';
@@ -486,12 +486,12 @@ export const prodChains: Omit[] = [
info: 'pezkuwi',
homepage: 'https://pezkuwichain.app',
providers: {
- Pezkuwi: 'wss://pezkuwichain.app:9944'
+ Pezkuwi: 'wss://mainnet.pezkuwichain.io'
},
text: 'Pezkuwi',
ui: {
color: '#00A94F', // Kurdistan Green (Kesk)
- logo: chainsPolkadotCircleSVG // TODO: Replace with chainsPezkuwiPNG after running build:images
+ logo: chainsPezkuwiPNG
}
},
{
diff --git a/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/testing.ts b/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/testing.ts
index 9e7bb4c3..ea22dd9a 100644
--- a/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/testing.ts
+++ b/pezkuwi-sdk-ui/packages/apps-config/src/endpoints/testing.ts
@@ -4,7 +4,7 @@
import type { EndpointOption } from './types.js';
import { ZKVERIFY_VOLTA_GENESIS } from '../api/constants.js';
-import { chains3dpassSVG, chainsAcalaSVG, chainsAlephSVG, chainsAllfeatSVG, chainsAnalogSVG, chainsArgonSVG, chainsBrainstormPNG, chainsChainflipPNG, chainsCreditcoinTestPNG, chainsDebioSVG, chainsEquilibriumSVG, chainsFerrumPNG, chainsFragnovaPNG, chainsJurPNG, chainsKintsugiPNG, chainsLiberlandPNG, chainsLogionPNG, chainsMyriadPNG, chainsQfNetworkPNG, chainsSkyekiwiPNG, chainsTanglePNG, chainsVaraTestnetPNG } from '../ui/logos/chains/index.js';
+import { chains3dpassSVG, chainsAcalaSVG, chainsAlephSVG, chainsAllfeatSVG, chainsAnalogSVG, chainsArgonSVG, chainsBrainstormPNG, chainsChainflipPNG, chainsCreditcoinTestPNG, chainsDebioSVG, chainsEquilibriumSVG, chainsFerrumPNG, chainsFragnovaPNG, chainsJurPNG, chainsKintsugiPNG, chainsLiberlandPNG, chainsLogionPNG, chainsMyriadPNG, chainsPezkuwiPNG, chainsQfNetworkPNG, chainsSkyekiwiPNG, chainsTanglePNG, chainsVaraTestnetPNG } from '../ui/logos/chains/index.js';
import { nodesArcticPNG, nodesAresGladiosSVG, nodesAutonomysPNG, nodesBifrostSVG, nodesBitcountryPNG, nodesCereSVG, nodesCessPNG, nodesCloverSVG, nodesCrustMaxwellSVG, nodesCurioSVG, nodesDancelightSVG, nodesDatahighwayPNG, nodesDockPNG, nodesDolphinSVG, nodesDotmogSVG, nodesEdgewareWhitePNG, nodesEncointerBlueSVG, nodesFantourPNG, nodesGalitalLogoPNG, nodesGamepowerSVG, nodesGeekSVG, nodesInterlaySVG, nodesIpsePNG, nodesJazPNG, nodesJupiterSVG, nodesKarmachainSVG, nodesKhalaSVG, nodesKlugPNG, nodesKylinPNG, nodesLaminarCircleSVG, nodesMantaPNG, nodesMathSVG, nodesMinixPNG, nodesMoonbaseAlphaSVG, nodesMybankPNG, nodesNftmartPNG, nodesNodleSVG, nodesOpportunityPNG, nodesPhalaSVG, nodesPhoenixPNG, nodesPhykenNetworkPNG, nodesPichiuPNG, nodesPolkadexSVG, nodesPolkafoundrySVG, nodesPolymeshSVG, nodesPontemSVG, nodesPrismPNG, nodesRealisPNG, nodesRiochainSVG, nodesSherpaxPNG, nodesSoonsocialPNG, nodesSoraSubstrateSVG, nodesSubdaoPNG, nodesSubgameSVG, nodesSubspacePNG, nodesSubstrateHexagonSVG, nodesTernoaSVG, nodesThebifrostPNG, nodesUniartsPNG, nodesUniqueSVG, nodesUnitnetworkPNG, nodesVFlowPNG, nodesWeb3gamesSVG, nodesZCloakSVG, nodesZeroSVG, nodesZkVerifyPNG } from '../ui/logos/nodes/index.js';
export * from './testingRelayTeyrChain.js';
@@ -704,6 +704,17 @@ export const testChains: Omit[] = [
logo: nodesPhalaSVG
}
},
+ {
+ info: 'pezkuwi-testnet',
+ providers: {
+ Pezkuwi: 'wss://testnet.pezkuwichain.io'
+ },
+ text: 'Pezkuwi Testnet (Beta)',
+ ui: {
+ color: '#00A94F',
+ logo: chainsPezkuwiPNG
+ }
+ },
{
info: 'phoenix',
providers: {
diff --git a/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/generated/pezkuwiPNG.ts b/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/generated/pezkuwiPNG.ts
index 8bf36ac7..2f303543 100644
--- a/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/generated/pezkuwiPNG.ts
+++ b/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/generated/pezkuwiPNG.ts
@@ -3,4 +3,4 @@
// Do not edit. Auto-generated via node scripts/imgConvert.mjs
-export const chainsPezkuwiPNG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAA9CAYAAABC4behAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nNV9958Uxdb3TtocYHfZTN5ADsvuklSUjCIZRJAgEkRyBkFBkgh6yaCgVzAgSo5Klsyygc0JzPe+z/P5vH/E9/2cU1093TM9Mz0z632e94f6TOquPlV14vecqgmxWOwwala37xwur0bXGN9vs9hhtzj4VTQHf6Zm5Sb6tfro00zT9kF9S3p99ev83Tk+i4n7zdOsnz9xX7BjNjc2blaXV5NzaWat/e3L//6c6+Bp3sVaB9aXxa0/4989r6kxDabX1urfGgS7FlraQvxhNH8GYrMKQQ+hh4TYEBJiQUiI1b1ZbHy9VBBWoz4DYFrDfkz26zrphhNu1F+Ai2C2D78WPgB6AnpOoGM1tb7CQHjkP2vj0WUN+H53JeyxLz952ef6NkJ/JhWAy4S7PlzzngTfaiXBJwG3IMwaimxHLAZGNsPkqHTMim2Bt6KbY3RkCvpGJCDDHsWTyNdbbbBZHbAa9W1yoOrke6LRtfk72Z7u9WchfNEVLEMEyxge1jagfrzNn9m+Xa8zut/ommDX1tqIaxHImM326Q89Lp/NKQDXCfFAhBQ+svgdw+LwTlwr7E/shJMp3XE5JQ9XUvJxNTUf11LzcSU1DxdS83A8pRs+SWiPSTFpSHFEsFfASiRQ78On4jDRn+nF01ond/fPFMM2hrAa9ufHvJkRVDNz6GnuPQmwhz5Nz503gfm7BdTij3A6DFoAfbrNlwnPyIdi808BeGlsxUNsiLeFY1mTtriQkodrqQW4mJKH0ym5OEEtubuzpeTiVGouzqb0wOVUujYf3yV1xYToNNg1fZpmZI+MZYJxfU2+lzE74z4vfXtjXCOmN7MWPqyU6djTkDHccRCnm+xjnCaFSIv9BCYA7utqypX3g0es/vKc1VyfHsNTn31p+/ERHpkcr2cF4HMB9fE2CX+yPQJ7kzrhx7QCnEjpIYQ8JRenU3pwO5OSqzR6T9/l4nRyLk4lC+VAyuB6WgGWNm0TFDDmZK5g4jsjIEgP2jVW/KhnNhMLqrtO74WYBha9Kjbj996u89WHX3Plw+PQAqiB8Yhn2qwe4nr/+M/zmM336bqW/gKMnpWOli7/MAAvk0iu+7vxbXE9vSd+YKEn4e+B06lS+LUtjxUBKwBFCTgVQS6upRVgaGQyYwgEJJrTsiYn2Q/L4jdy7QeN/guB9wU2pNEPOvxiUhPrYbo/n+vgCEyhBBtaWfzvK1jE31OfwShzX81vBeCmTRhIsCElNArfpnZjgSfXngU/VRF47at8r3oEiiegNMILfkzNx8aEbJEhCGYhPcWJwcRVZmPSQMMNLwJlWjC9xn2+XVz+3mh8wSrhRoi7dbQ1Qn8WXzTq5sKPcNTP9Q1oXYPt0x8FQJaYEHp5s0TrhQKwonVYNE6kCqvPlt9V8NnqU9MogFRFAbDCEO1kSi7Op+bhk8R2cHA2QSy69vnis2h+C4KrMP8nJ950P0Eoj/8EwzVmH43V39/dp6Wx19i3cJqmL4jx+lQAHIfQhUrengVRcfn5d0VII2yhOJTUGZdS8nAyWRv3S08gT+8BsPBLy99DbT9QxiCtAEuatmFcQTxPCAQ9k+oFLFxXIGoIRNrxb2Zaj/cEAFB6ZNQAUHujfq2NqESCZX6vzBkEGt6Y9Fm88X4QtHlYW58hS7Bj9NS3K+8or14VAAkbC5nFjh4RTVkoP0lsj+0J7fF6TDqiraEs/A4lAzAiKgU3Ugs4lv8huTu/aoXb2TTxPymD5B44ndyD4//zpEBScpHtiOE+mYYQG1qERmFxk9bYldgeHybk4M3Y5mhJ11iswj02mCxXYE0/+QG4cy59mwLuvAqA/rP5ajYzzRFYJkW9150+U4zWWEwb1HoENlcWHd8EBwRaAsEsPIzLGy3+9udKp0cFwFV8IVak2SOxIT4LF9PycDktn3P3l1Lz8HNaAbYkZCPcFqoyGimL8TFpbOEvpOSLTEByLnsE1EghUFaAX5Xv6PcfknNZCVxNycfJpG7oGx6vWnsS/taOaPwzqQsup+ZzeCDThqeSu2NmbHP2PoSick2TmJwsk8zlqULQv37dMwlmaTD67C2V5i9d+pSfHs1uTJTdaA6NBMeTYAVLkycaLUHxiTvq7n8/rulXdz7zJ4vga+48ZgFECa+Vi3m+SuoqhI1jeyHAlN77PiUXV9MLMCw6idF6LuVVQoUuYXHYGp+D88k9cCU1nwX2vBIOSMEn1P9cSg8OGah9m9QNi+NaobkjkoXZzhiDAyFWO9bHZ3E/3yd3Y4VxIkXUEpAHcSUtD5sTc9DEFqaEKFLIPKSJfGhGvxfOzzgsMKVhpAD83AdgOpTxkUI1MX/+fO+5XxP1FSZp85WutPq5Fr7m8O/ITgSaCfB1n4sCEPE2CVL70BgcT+6GC6lkyYW7LpF7LuxJ7Y4Lafl4Lz6LBVYOmoA6tt5WO7qENcGsmBb4MD4Hnyd1xvGk7qoH8F2zrjiQ2BFrmmRiRFQy0ljwCVdwxvUk/EmOSPyQ0o2VBacWpUdBSiClO45T1iBNgIZxpASIFjOYgL+L4Bo/BQvyNGZsa6bPxoiZ/47xBkKTmT6tjdifNUCBbIz+zPKy0qfPMNJljnQKQLgENiTYwxnQu5iWz/G4CtZp0HpK9VFYcCi5M8JsTrSe+iElIvsSuXw74mzhXPef6YhG29BopNojEWUPg4X2AHAjwRVeBBHGQKPFiuywGJxKy8PJVGc4wdgChQ0KbaQMbqTlY118W1istuAZzqygByIERv0a3uMjdvfF+P7SGaByC5hxdc/1UkbtjyIxO87/CQVsacT+AqHPqF9XD0AU9Niwsmlb/Kgp6BHWX9NICaTk4mJqHg4nd0G4RgE43UfhTTBqL5WBWxMeA6cUXQiVmYb2YXH4Ic1ZVXiG8QIXWlJzOXvwU3o+RkSn6AuIPE6GI2hBdcbfZqv3fNHSWEBbkBkFN7r9LLUNgDFNucxeBd2PsljX+60m6PBrvL7n3/o/NXcu94Xo434b+kQ1w+WMnjidlo8zaXk4k660NE1Lz8PptDxcSi/A7mYdNKCHcdytzdvzNmFls49RLb3WiyAFQej/6bQeOKd9vtJOaxp5CefS83EktRsSQymc0MbJEhMIBBEXtMl7gy8zdgS2n8AkAxhlJ/zDHbRzph1/YON1BxT15yGYYmSDtTACFs0rJycfWF0yJaYQey9rqh+vMeDrT99GIKBrCbk/a+K6FhoPwAFbiBVbI1vhfFxnnIjtgNNxHXE6roOzxXbAKaV9H9seF+M6YVlMSx0GICfaGLU2TnW5KhCrRgE0cYTj66btcTauA07EdcBJDQ2nmzhpOxnXAd/FtcPFJh3xelgzBZgM1QmYJ0DLfQIdfxNopGU01002GppMu3pGljnwjICe+YNNS/opVF7G7BRQ47LgwGgzJ3T+9mWKNp+eqfcyb4/PMOGNGGYBBHAXgvyWmbg6fg7Oj3gTF0bOwMVRb+Hi6LdwacxbuKxrM3F+1AzcHD8XI1t24Hu5Ss/FdRZFQg6EOhyw28iltyMuSryn6xx2xf3XhgDqvcr9IRZs6jUY1ya8jfOjZ+DS2Jm4NJpoexMXR1Kbjgsjp+ECvY56E1fHzMLXr05BXHSs8AIkXX7FU37G3j4W1BfTewUtzTKit9AlmDjU6NWUUGgY2Ux87HM9/Ng12Ngxt9WILzy999Gn3/MY7Fi9KzuhAOyhLMTvvb8B9b/+jsdPylFSXoWSCn0rVlslSqqqcb/kCbLaKQqA6gE0zGy3OeBgobehU+sYtG9JhT0W9O/eBM2a0L5/G/p1iUOYQ9QRsFJwGZjdQam9EEycMg21v/yGx2UVKK6sRnFlFYrL9U3SWFReiaq6BgwYMIjvpT6CZhBfzGGmT3+FwEx/Zhjjf2KsZvvxV0gbc6zWRqYzkHmzBtmXP7R56DtEWFkrwsOjcOLEKVRW1qDocQmKi5+gpKgUJcWiFVMrEq+PC4tRV/sUu3ftVYRfWHHuUAESm0aHoaB9E+47u3kMZrxC4JwVC8akoFObaMTHhGPJePrOhoTYMORmi8o/taKPsAIq8AkJQWpqOn6+dQdPnlSgiGl6omnOz0Rb4cMi1Nc9xcqVqwVtlGkIUgjYG7E5mB7qj1+VxuMOlsn8ZVqvffqJczQ2o/kac2OOtbGUh/VvUpy6OQmy7FmzD6dRxqtcoyiAELRo3hqFj4pQWlouhL9EEaoS2Uj4n6CouBRFxSUoK6tE7959hZUlobAKgYiNCmfXnoT5rVfS0C0rFqF2B3bOb4FQmwObZjRHj5xYvNonAQvHCcR+5vAkdGwdzQoiOiIUEWFhsHJ/Djjs4fyMFctXo6HhFxQWFgvaXBrRxvQ9LkF1dR0OHfqCaTDGHUy4lMpn8o7kHBk1rltQlIFPRjZsAQqsh9+Nwg1aG7stjJtXIfNIn9F7/2kzS6/v5gdNnujyMl6r1cE8TfNlSsH7oNP0GE0ruOBAY20LkVY2t1sPlJVXoUhaVq1glZSpnwsfF6Gu/im2bNmmxP4EtCmFOyEOdvVHPUcgnBUdW0Xhi1WZiAwLw4ElLTE4LwF7FmRgWM947JzfHAN6xGFAblN8/E4GK4Ks9GiMfi4e4aFC6EQT9DVrloyrV6+jgtx88gI0NEllxQqrqBQVFdU4e/YCHI5w3jjkCczyvTACgyBFlJCQjNatM5Gd0wHZ2e2Rk9MBLVq0RlhYpKIMLJ6VgBGTmQCi/OlLCyq63c8buZwKy9ezAq7m83CP38i6B+bXgpPawjOad7tZb8wAZLO6vbdplLwAuM2sg3ufwZ36zIpIUdzsbQYNQntRAAUFvVEuFUCJcXv8uIRDhGvXbyItLUOvALiJXXrj+jXD5pnNYbGEYsfcltg0oyXem5aBI+9m4vj7rbF7fkuc2ZSJCS82w+UdOeieGYPcrBjsXNACKfHiXECrVRQGketDgkzPeuWVV9m6czhiRKeqAKpw4fwlhPIZg2YXUN/kvDzXtx++/voYfvrpGu7df4Sioid4XERe0BPcufMAJ0+ewapVa9C2bRZfT6GCWcHwVwD8H4PwXLKycrDtox2YO3c+QkNpLm2m6PpP0OhvX64ZD2F4pHKz+mkVHW4CR4o8Ib4Z1q3bgPfWrUdCoih11yuXIC2vCU/JaVSlIrJ4zGI1igIgq1b6pJytvXT7dcJfVIwnZeUcAvTs2UeJ/cNUpL9JTBheyo1DSrwQ1rVvpODo6hYY+0Iz3NmVifNbM/HoQA7u7snGwwM5uP5JDn7emY2DS1tifL9E/Li9NdqmC+Hvlh2Lrm0jYVVjbYcKCM6btxANT39BURHhFOQJaOksY++gsqoGx459p9CmVAZazMd5ghFsiIiIxrlzF/DLL7+zd1RX9xT19c+4kRdUW1ePyspq1NbUobDwMSZOnKRiIgExRLAxrkt/pIyInoMHD+HPP/+N2toG9Ool185kyNIYMbJp99sPRcBjsyCuSVNMmzYDb8+dj7R0YZS8egJemk0Bw5cvX4k//vgLf/71b7z99jtqmBtQuOZpLvk7z30R/zkcoRg1eiyWr1iF7t17uBuYYPEQJwZgRWRkDM6dv4jyimo8JuFSY3+y/MUsVCWlZRgyeJgCrgnUXzZK8bVvFY3Ns9Kw9LUUpDeLwaFlLXF3dzauf5yJh/uzcWdPNu7uyWKFcHd3Jh7sy8KlrW1ZMQzvnYi8dk3x8fwMTB7SDJHhtBjONJ4oExaLvnrNWlYCJPDklXCoorRHhcWMFWxYv9GQTo8MpWUEJexo1aoNHtx/wMrm0aMifPHFEezdexBbP9yOT3buxtffHmMlVF5WwbSQYhg3boJvAWtMgffQl7Rm0dFNcPXqDTx5Us4YT9cu3T3T11hgoCvzG90fJJAncZnNW7fhl1//wG+//YkDBz51WmuzfVv1/ZIsHDlyFOVllagor8Rrr03SKABjfjE1hwEoohlvzcazX37j9uOPV9C0aaJfXqZX2qSiEQ8U1nX69Lfw669/sCAVFhWjsLgEJU8qWNiIifr2fZ6vI5dc5u75PAC7AxFhQpE4bA6seSMDVz7JwT9XtsGD/Tm4tycbd3ZnsfDf3ZMp2u5M3N6VicL9Wbi4tQ2OrmmLkxszkdcuTpwDYHMgLFRfJSfBthCLBbNmv81AZE1tHYpKSlH4uBiPCovwpLwCpU8q0LVrrlg48lLccvEOUwswaOAQDnkqK6vw7TffclgiXE2LyhT0nG+/Pc7XUZbi559vIyUlVW+J/GQGbxWLZt1A6dl16dKdFTjhIleuXEVcXFMDl9akIAci/I3ZlH6lcotrkoB79x5yOFhTU4/vvvtBhI8B0GlVFEpSUiquXbvJ4TCFlN26+lCY2vX1MgemsQ+N8j761Tc8LjLIDx8WonnzVipfNRawGCLBCvpAQMqKFauZkenBVdW1uHPnPlavXscTI5leBWKYUAeaRIdiWM84LBibiLkjkzAoP57R/uJPc3BnN1n9bNzdqxF+VgBCIdzenYVHB7JxYWsmewGjnkvAvNFJmDwoEV3aRCr7BOTzZDpOLFb37nn47LPDrLCI3praBjx8VITRY8YpEyXPKvAE9hg3GqNwBVeJfmvqsfGDzfxdaGiEAsqEaZgmGefPX0JpKdFRg9GjxxhaDSncToDTj7MBDFxvPfinr5STY5gw4XVUV9eisqIShw9TZsRiqFSMmMp0NaCs//BToAP9azQ5VhL2zZs+RE1tPfPpiy8OUJS+sfelm3fN8XJWjcLs1q0He5RlTypx48YtNG3aTFUA2vu8N32ZsetzfXkPkpap02awYSHlvWDBYhVz0/btbYxmFHGIO+hgRbucDhg//jUMGjQUKSlpKsAikUgd8myVR3TZ0axpOCYNTMBXa1vjx+3ZuL1TEX62/AYKYHem2q7tyMLJD7IZLMzNjoXDQQtsLBi80UiZJLvdgfbtO2HC+IkYO3YCmjdv7axMdKvFNgnQKYL92aeHUF1Vw8DjaxNeF96PXfF+lCazAAsXLUFNTS2qqmqwcaNQFuRZqWXInFoKV7dLiyZSiHZKNXqgw+5Sd+CtMRIulZgyPwRk1dbWcyOF5mrNGMTla+kPWcQGLhVdVxB2LdO5MqwUDG2f8rNMDXsScjF2BeH2Ili6ugtNnT3xXURkFAst1YoYxf/E07J2Q/xFnZh7uR5W5XpS6nT/+PETUE3rWFmFQ4cOi+fz/c5106Z9XdF+bSm13eC58n4j46BPG4qamA7tO6Fjxy4CFJcl98r8auddvA/T/Q2fnk7jDV363YBKh665bvcB64mOjQxDdkYk+nSKxeCCplg0LhU/bs/CfU3cryoAFvi2GuHP4vDgwb5s7F/SEq8PbIb+PeLQPSsaqQkRoqZAox1VN1BhDD1S6kzHGaZMfIJYMu1ISHASrl69xmFGackTdO7cTVE44pmi4tEBB6PqIXj99TfYYyJl8fHH/9BYDcFcMrVEr+RFhIVF8KtYLFlMpd1P4XBJR5lpWusu/mbt6NGvUVlRhaqqarz88nAdoMVeDKcFrYiKjFXeS2bRpg7F+Y/uTUuf3rPwil7LEm3N/UbpSXFdqAst2jW16p9DsbG6xlIAhTK3hFg4K0QKm5q818qKLlStN9m0cTOqa+p0CtNqFf9WFRERwwVzlFalMNCpbPRWXQLXkjYKmcPCI/lesebie2FE9MKvNch6GXRulXebX40c0NhiY5uqhkkoEgPlKjEP1x+k1pIXcUGEkbbSENMqNZJDgJnDm2HdG6nYs7A5K4B7e109AL3VlwqAv9+bha/WtcGGGRmYNzYZ4/onIL9dDCLDnZ6AERPR5Grpc6XfPxTbqQApvKBQqLy8EteuXUezZilOAEbti54vLMfcufMYZScFsG3bdtUVlf3FxjbBhAkTsXfvfpw9ex5nlEbpuby8AhWwdCphK+Li4rFkyXJs3LQF76/fiA0bNmPjxi1q27RpKzZv/pBfd3y8E6+/PlkIvoJhJKek4dat2ygrr8DjwiJ07NhZVUwyRIiJicO6devx8893sGzZCh4Tfd+8RUt8tH0HPtr+MTKat3QZu1L1GWLFm2/OxBdffInhw0dqmNqB2bPn8Fh7FvRymzeZnSCQdf2GTVyCbmTB5dzl5/fE3j0HMHnyVM33FqSnt2Bv67333kdCgtgAJl1fYQ0tCA0NQ//+g7Ft2w6cOX2O08MUrh04+Bl7jGHhEUoxlzA033xzjL24qqo6jB49lp8/YMBgHDr0Oa5cvYafrlzDzp17kJPdXg0zXYVfYkU9ehTw2E6cPI2LF3/Epcs/8doTzfn5vVR6xZideJEE5qdOfZPndsiQYarxoaxWeHgklixdjoMHP0OPHvnqOs6aOQenT53FjRs/4/KPV7BmzVrExyfoMR8XWdApAKm1bDY7axHKDDgtlNBqRsCH0+2woUOrGLw/vQVu7VLAP1cFoIYBzs/kAVCW4Ku1bfBqn0TERIrjvdSThzVa0SnoTq1ntdkQHR2HyCg6JJQskdVFUN3dLE+fpWBQCETCXFVViy/+edRptTSxlXTR6foD+w+yla2rbcDct+epeAG9Pv98P1y4cImtSkPDUzx79gunFklhUGqRQMaRI0e5CefkyVPw3//9fzm78PTZb6I9/RXPnv2GX379zZmSrKM+f2UhT0mmkE0w4EsvDUB5RRXKyipw8eJlREfFKuklYe1atWqLY8eOq3TdvHkLsQwShmDt2vdEKuzPPzFn9hwdpiEFs3PnrqioqMRvv/2By5d+RBT3H4K+fZ5DXV0d3/v98ePuyoPn2YGvjn7NoPNf//o/XEuhDU9kGJacnIob16/ht19/Q1lZGZqzMhI8+cHGzfjjj3/hzz//wvjxE1UahfCL+ofPD38hUrW1DdxovsS61vBckgKVCon6vnXzJsqelHPWpEOHTnj77Xm8pnV1DTyPlAqnub5+/ZZCi9PTk2B606YJ2LBhE548KROp47pnvGbUCE8iGuj5s2e9rYarMgSXyrtd+44c+//++5+4cOEir5n8beiQoXj27Bn+9a9/Y+c/dnN2gIDopw3Uby1X8xKtdO++fftV5aYts3dTALLirm/fF1jrXLlyA+fOXcK2D7cjV9EyTCAvkBZIcSAmMhSD8ptg/fRUfLq0BVa9nobNM5rjwT6R93c2rRIQ7+/szsSjg9k4vTETC8elYsfc5ti3qAVmjUhCZnqU5ll6LSvcnQiMGjUOn356GJcu/cSNFlQWKQn30b+UiZzkDes/QE11LWpq6rByldhXwIvAsTZ5ReR5iGuff64fpwOLHhdzuCBTbQzCjZ+oZBKEVbl9+x527trLFvzChcsMOJWXlePWzVtc7ShwBsFIL740ALdv38XPt+/yfQR03b37gF+vXbvBmQ9C+O8/eMRMtWfPfp0SmzN7LjNvVWUtW2Nt37169+WMBQlHGe+xKMFgxdLQXH/5z6Mc/hBDvfrqKJ0CkPjCa6+9zhhJeXkFPj34qeIVhCA3N48LpogRr1y5hoSEJKe7rQjnyBGjGDO5d+8BC8Ou3WJfiRqTK3NL80RrUF5ejsOHDqneUWhYBE6eOIUnzOyVGDhwsOAJOgsiJAR9+jyPe3cf8DNIoAnVv3LlOs6cOc/eTmVVLRoanjG6LuedslyV5ZT+q8CJH05yzcnTp89YaO/ff6R6hA8ePMLThqdYsniJ4rk5lU56WnP88MNpNNQ/YyVCRWlk/T/66GPs2PEPts6PFT6hue3WLVe3mU7Wu5AB4rUpq8A333wnjtlT1m7F8lV8b3VVFdatfR87dnyC//qv/+I0PWVF6JnEj48ePWYefuGFF3XKVReqiQUNUyeNJpO0FuW2KXasr29AaWkZVq9ey26GJETGTpQFSIgJQ2Z6JGMBZGH690jA+Q+z8dP2LNzeJYRf9QSky8+xfyaHCVe2Z+LGP7KxeVZLNIkhq2lHemIEWiaH845CrcKRk5CT057jWwlw0QJTI8v6/fETSrqLwB73QRuisKrrZWPFQn1QHpgm8OWXX1GZU1of0ax44YWXWDipAIno+PSzz5Sj0IQlJOEuKSlhxiE3PjklXe2DwopTp84yoxCTDxk8VCdo1H9Scipat8lCq9ZtkZmVw+XIGRmt2KWtqKxGYWERC/+hw19yWozPQVDW8x+f7GRGqaurx4IFC1XvjtK9JJy0riQgP/10RU2bcugR2xTXlVQYpdh65Obr0HWpgN9fv4EVQG1NLZavWKncb0N8fDPcunmbc+mPHj5Gu5yOyv3Cs4uNjcPZM+f494cPHjPgdvToUXX+5Rr36tWbBYDLvovLVGHh06rTMnD/3kOe3/v37qNNm0x1XbKz27GQEv0V5VWcQx885GU0aZLItFNo9M68hfjyy6MYM4bqNsR6TZv6JvN+aUkZu9BFRUW4e+cuJk2eiqysdiwf589fVBRjDf75xZeKey2AvsjIKHzz1beoq63nPqhSdPSY8exJy9RxSko6hwEkX6UlpcjtnucM/xTcgj6T+04eS011HdauXa8ob+G5kYEmfiGeO/79KV6DI0e/Qt/nXkTzFq0wbfoMlJSWc40MjWfGmzNVReXK/6oHQJNKHROzPHpUiOLiEhQXlbC2IitF7gtpoqSkFENtQhMQHRmGReNS8M26NhjzQhI+eac1nhzugJv/oBhfqQUgwd9FSkB8pjDh5q4cDO+ThPemZuCLla3Rq4OoBVCBIcVdka5rn77Ps9WjCSL6qBXTDsbHJXj0oJCVwMyZs3XCZKZJVzAjvSVbhpISocH7DxjEzEthBrmkVDX56qsjsX//pyzYJCTEEFQq3E7ZHh0dHYvTp84oSqQGq1a/qygRcsEj1HCLvBfW5tV1GKwUWcktzKKSUSoc8UrhzcqVa1DFuzZLuejpk3/sQWSk2EzFgKMiRCdPnmbrTLS99FJ/fiYpDlJUtKbk1h7+/AjSM1roQpaC/J5sQchykrVMZAsp9kRoFfHx4yfYSlGacU8jWb8AAByCSURBVOy48ZpQMYyVM42dnt2n93MqQEWvs2bNYaVFQiKsagWuXruuhBAi7KMquC+/PMJ9EE8uXbpCZ+Gff+5F9ly47PvCJfVeahQbV1fXsLt+6sw5pCoeoQAdZbiqB7npdeuWbSwwVPRF63Ht+g1kKbG+3S68mzlz5rLw0biPf3dCCdkEXy5cuBj1dQ0oelyEu/fuo2s3IdwMBLNgW9Q9LSS0BDJTCtkZBiiZtRA7Dh/+J3uNRM/EiZPVawgXIk+Xxk101jc8xZ69BxkXkOOhDNqxY9+z8qNxEDagVeA6uZWxFgEqDx4UslVQS2yLNZuAyNLUUbHFcY5xJNou0220/XdMv3j06ya8hBF9EnBlRxaWjEvD7V1Z+HlXNocEZPGpFPjWzmwUHsjB/sWt8NGc5vj63VZ8JkBqQjgm9k9EXk4Mx4uyks8JzvXAw4ek3SvFzkB1K7B4pd2A5LJR+Ssvuivw5wUEVOv/n+vH8Zfc/Uhu2+nT53DixBkuEqG6g8qqaq6OpPkiL+nqtRso6NlbXQQCkKRn8sP3p9QFkpaAmGLS5CmixLq0DHfv3uc1UK2BImhEk8wWEC6za+ceXgcKN6gUefWadWoGwZl2CmFP4e69h+zFkav/3PP9cOTIV3ja8AsrTJq/laveRWgYMa+FrQspJrp34uuTUFvTgIqKChz79piCfYiSatl/y5atmWayhmShpQchlcjmLVu5RLq6qhpTpkzVWO503Lh5k5XGhYs/4vyFy6wAyYtKTUln5qdrJ016g68hC3/q1BlEK96nzLpMn/YW6usJP6nBfq4AFFacrDS7wGS8CovQRSnkobHJHLxUUlZFkcm1P378e1ZYZFmpmKxXr76q4gpVlBfhMlWV1ey1fP31N4rSsTAeQGECKTWy2lJoaT7IsMiQpid7NZUsmLTHJFQW1RGYqGSgSMivXL3OniEpx169hAKlRkAuyaMseT995gLimsSrIapQNDZ89tnn/AyShalT3lQUnftuUHUvQNduPRSXz8NGG6q2Kyxii7NnrwAWaFASEwgPFSf/0ADy28XiqzUt0SI5CismZeCrdZn4+O0WuPRRNs5vzcJ377XB+a1tsXxCGi5vz0HzpCjMHZWED94kTS20NJUCkxVwgmJWRop/+ukqKisrUfio0G0nIE9MsdgNePr0WXEf7wVw+YdhD026X8JCPUUhbS2uqmWwiMpNCbCi9xRXU/EJpYvu3LmLVavXOON3xUvZs3efAJuqa7m2PD2tBTq074z+/Qdh/vyFjDYTOk/M+vTZU8yYOUsXCxLNMstB35PgkFYnq03MTQVH0xXXzmoT3ovWSxo2bDhbKhLOu3fu4+bNn5m5ybMhwVLdQo0wyHup1Lq29ikzz3q1pDpMUchijgYNHsL9kfIiPEKUqVpVCz1nzjuorannZ8m6CHZtV7/LtFdVVWDk6DHYsnUbzzWdMSHr3TMyWuDmzdvs/lNpOmEh0puTXtpHH20XoGt9A+bNF+ENNcpoyGzM5i0fqmtiuOZWJ+ZDOzvv3L3LW91pXZcpKUBZ9SoV26JFS3leSLFt+1DsiKVGJeAUChHN585dRExsnBMzUz2AEMyY8RZbfwq9tm7d5iwuszvBXwJXaY0J9Lx5S268E4Zj2LBX+F6SRZqb/gME9mFX6KQ1iIqKwanTIsQi/h069BXjsnitAsjNzecNL8bCr98RWN/wjFNO2rhChAEidp81PBmxUWFIjY/A+W3ZaJMRgz0LmmPqkCQcWNIcE/sn4Mi7rfFSbhMsGp+BtVPFAAfkxXMdgYhNnEi7TPvQASQErhC4QQrJiD4Cs8g9O3PmnKoN1cMUPGYCBEIqtfQnn+xk16uk9Am+/uYYu/qffvY5Dnx6GJ8d+oK9i/fe+wCjRo5FRoaSIqM/M1EUVUREFE6eOKlak9u37/MeBXpPAkx167///hcz6o2bP2PSlOlKDYCeLgnYZWZmM4rPAveENmQ9wajRotpR5rqlcpNMNH/+Ijx9Ks5PYFSY3eVqsX71TzFz1myncOj2dNi4YpCuJTedqtEkk5K3J/vftWuPki6r4RSZdN0liPXSSwPZoJACPPLlV8J6dejE5dqkmI5//4O68Yb4iWiUYNWGDRtZeVD78MPtOgCWaCSM5ocTJzk8IAU6aJAQAkk7MT0J2fDhrzoVh/aUaE0a167iDX3ZqyOFee/+A7Ru1UZXTSrlhABcWR06e85cVQFs2fIhz0VtbR3eW7/BqTw0BTv0+vnn5NpX8xxMmTpdoU/UOoQqynPsuAmswDjMOH5C4CLKvC5dupzDG8q+kEfH3p/CN5JGyu7QOpeWEM5Tjo6durgrACmzMhZt0yaLa44JSdSeB+B+8EYpazmyKDJ3q1aLWUOREh+J2CghsNOGJmHEcxQu2HFoeTqaRodjy6x0FHSIwRuDEjHjFcrd2rF5VnNkJEXxQDOaRSAqgpSKmDAJaA0Z8jJPyuPHRSzknhVAKTPAV19R7b5rmayXwz55HmyIiorD2XMXUFZeye6lPPTEZvNUlCNAUbKiUlE1S0zB1SvXxPZqttYU49fwolBe/uzZc9i9ex8mTZrCoJBkAm25qRR+qhG4desWI9Pktt++cxe9lJhaCoVwH0WKUmZzdu/axQAmWVZSGqTcyYMgGohRKW6OiY7V5K4daphx/fpNdlOpUTjEz7KHqwzaVwGLSbnQrsh316zVKCPxfALl6Hd6FuXdHfZQ7Nj+CSs9ik2HDn2Zr5s9a65Iz9U9xSsvD2cMRW7EIc9CxO8Ubop6FHpPSpeyITS/Dx8+ZkyG+mraJAHnz13g+ysrKpAv6ytcqhRlbYuVDkpR5pl2FLJlr67FP784qlZpOkvehWWl3aEMAlbXYsBAcewc9fv551+yS07jlSlJmjOBZ4Sr2REKEYgniJf7DxjI31O1rajREFaeCpDIABEtW7cKBSg9kH37DgrXvroOM2bMMkzP9uvXX6R/yyt5G3tiovBOjQqC1N2AMdFNcOHCjyirqOK4VJz8Y9xIi9c1PMPChUv0m4OUB5BQU2pwcB4dCWZDm9RILBxHqSAblk1MRresaGQ0i8SSCUSYFTktotCnE8V4spZZYWqloo+E45tvv2OBpG235KYJWsjlf+JOW/0zrF+/SQN8+E4FSteSYmdiXJq8u3cesGKUMbKu7JZcNk2ZrDN3bUF8fBIuX/5JzUy89dZsViSdOnZFamoGmihovVaRyENQtUz56vCRwtUjIKy2DhcvXVJBKYpLJSM7szJC2YWHRTKjkqCRMiecYsJrkxEVHcupR+qP4u5himso+xAxZlcUPiKlUcExbevWbQUDKkxMBTeUSiNGJ0+MhHeismNOKiSpSCj9Rcx6/foNTmtRfyTo+ziEFLH+mNHj+Rqun5g7D/v2H2QrSv1LYNGZfgxT03UCPKzC5ctXERNNGR8bwsKjeENQZYUAJqUHQHNFdAmB1FYf2lVkfcvmbWyVCbdZrQC2kq9liq95RksGeinseVxYiPbtRXaD2n6uAyHXvg6TJ03h78LDopQ+aKwWVvpEFykASuF26txVCPyKVbh06bJyVgP1dYCtP3lqVGgllVhMdBxjURUVlHqtUjEK4eE4vb8pU6axMqI+xP4P5wYi1/0XIVrNsf2jj/HHsz9RUVqJ6vIaVJVXc6umVlaNmvIa8X1ZNRpqnuLGlZto2iRRV2nEg7XYeSef2CFo4/P+CtqJM/9Gv5CAlilkSewY+VxTRISJbb90FJi8XwqD1JxDBw3DL3W/ovJJFarLapiOmrIapokb0yhoq3xSjd+e/oHRYyf4lQWQsS3lwkn4KcVGZyTK+81uXJFKgCyCRPfpIA6xCFYdEEiu2soVqzB92nQlTlUq0kJC8MaU6ezGkvBS27vvIO99197vbDT/zvw8pcEo/UbuH6WDBgwcol67ePFS1YU8rHXdFSang2HEaUui5eX1VO+ldCSds1BVXc1ZGAoXSRCpalIwqQhHhBdi5QwHCfz9+w+5gk7gNaVsCWWfVBFH3xOtBLCyV1H3lO+V/xblitFMmzadAUba4ETCIuveRfi2iy05GYuDBz5TDqlxzhllZ16fOAmzZs5GbEwTNW1KGS4SGBLiV14Z4QxvFSCaPvfo0ZPpZMXz40+IjyfeF/1T/YksMJI1F/RMi0V4iStWrBH4TXEpr+ftu/eR0KwZ0tMzcPfeA9RU16Nzxy5My+XLV9jLLisrV3fgCuPUlrML9D3NqQSNrXYnCEyf1659nxUZ0bJsmUjPaveJ6NOAmtLM7L65GH94BUbuXoARexdixJ6F/Dpq/0KM3r9IaYsxau9CjNw9D6MPLEJix9YqEa4Iu1QGTWPC+JgvEvQWyZHqe/ISqCLMcCsl0cVnC4agyxsD8dqRVRi5bxFGH1jMzyVaRu5bgBF75mPE7nkYsXs+Ru6ez9+P2r0Q8anivEG1Ak3bt2tGgJlLKJs5c+ejqqaeFcD6DR/oXUhP5cSa76S1oB2JFEOTBaddgkuXrUCHDp3Zw6BFpTwvxf9cHVZdjdZthKUlmue8PY83pHB6s6gE9+8/wOKly9kazJu/iBUKNQLa6FraDCMtFr0OHDQEFZVVKK+oxLfHjrO1lczRvn0H4eExyFTBVYrae6n6jcIo+p08hbPnL2LuOwu4IIcKkH799Tfs3XcAV2/cYkVJ2Q+RJnRaGRm+vPvuOgHwKedLkGBv2fqRYEglpqVx373/QDnPQSgd8uKoEs7dfVfSdVtlvF2LmbPm6FzkQYOHMkBb+Ogx00+Vcv1eeImtJZXWklInBfHXH3/hxRf78z3p6c1x/cZNXqei4iK0a9dRFzPLuaOzAcj1J+VCCl47b0OHvKykEB+jpLQUS5atQH7PXmxQCBCmTNGNm7dx6dIV9lAeFhYxiEv9kGK4dvUGIsKjkNk2m5UgKRkKF4k2kWkIwUv9B6KiqpoP7jn+wwk+sEZubGJFqYQtR45+wzRSmDBy5GjnWFxlQK0DoC+o3j7MjpDp2QhZ3AUhCzojZKFsnRCyoJPy2lm0eZ0QsqIbrC+2EJsjbAbW0Ju1NChL1DexWcTqCIN1akeELO6MkPkdBQ2LOiFkMbXOCFmkNKJzXkeELOmCkCEKTabQf+E2Swuya/c+VFbWsms7+Q2RvmIvwM89/WQJP965m0t2SeOTN0B5259v3+MFJMGgNB65jFQGS/MnYv5e7A6T8BMjkCCSQBLTUgaGwhtZAkxI/R9//JvDjfCIKFWRz5w9h89JIEu/cdMm585ExTshEJMsDtFE26mdzC72ERw7/j1q6xvwgGohSpVy1vpn+POPf2HTlm149dXRqK17yq4oudwSbHVW8QmBGTN2Aqpr69ltplCksLBEDWGEx0VxdSyfNUGW9f79Qg4tSQk7LbBzuzH/BbwtFKdOnhWptJo6DFLr5MUGJ+pz60fbOWtD80Zj5L39fGALZTbqeB6PHT+BRGV/R15+T66rIBquXr+BeN5XoMTMGs9qwwebUK0AgJRClc/lf7O2h+HgZ4fxlI6vV47Oo3WmVyrRra+vx5Chr2Ddexvwy6+/s4cmlEk1K4A3pk4TYd+IMWx8SHlRkRifiqV4IIsWL+M5J0/jw2079PG/ks5vGt8MV67e4PFSlqCHZp+JkZw59wKQFqESyz7NEfZeX4Qt64nQZb0Quqyn8l68hi2n1gvhy3oifE0fOF7vJJSHkTuseeX3LtZT94cYRgqCmCouGqELCxC2rBfClgoawmUjOqit1LQ1feFolcBjcUf/PbntzjCI3Cc6PotSgCp6KlNzJvpyhgFWREXHYNWqdxmoIsaRdfwkFGQBvvjyCFeoUXGQZLK+z72AKnbRqc6AtheLVlEp4r4ypT0pq0RxaTn3tXvPfl0F3dgxE5jJWUBkcRGfcus8/7G4tAy///EXn24kxuh0danijtzxBkp5Ut16dS0rg+XL17BSpp2RxGBUcDVf2afOSLbLZh+qSiNXl/YwVNc2YPacdzT5aLmn38JZFqrpp/6+PPKNKGoi5W9w/BUj/V8cwe9//Atnz19CAgNczk01Eqxbs/Z9pTqzgYFKUmDkEVHBEVnnhESxeYjoyczMYeVMmZktHwrBshmEHlQ9SAJeXlWDF/sLAJCBQmW85Ant2f8pqqrr1H0etHZXrt7EmLGvCW+2c3fcufuAeYGuISzgrdlvcyqXfu/V53kUl1Xi6bNf8fY783Vexrx5i5jGhoZfMXa89qQih+YEqDicOXsBv/35L3z73QlEKgVSnrZbaxSA8AKsYaGwzegC24qesC3Kg21pvtrsaiuAY0kBQlf2hGN2d+H+sxIweAh5BrSQ3LQCrnwnN9i4Kg52aaywpTdF6JICfqZ9WT7sywrgWJYPx9J88bpEeb8oD441vWEbkQ2rmvpzj9s9xfFaFHzEyLFsicUWV++nr3j62zG5f4EWqWWrthg77jUsXboSixcvY5SYwgF185X2gAqrnQuKqCqQdqENHDSUhZgUhWjDMGjQMI7rX+o/iA/BkIVZMmVFOxTp+759+2n+eNV5LgFbvYJemPDaJGXzjxbDEb9TUc6kSVOxcsUaTJs6A5mZ7VRFQdd37dodAwcO5ZScYDCXw0oUZUMhxTvvLEC/Fweyh6HbM68UviQmJnF4M/mNaUo9gUHoplmjtLTmGD16HOfutaGH67xnZbXnMl465IY29dB+AaEw5DbZUPH/eDyeXAwfPko3H9rTfTm9GxnNa0FZGHfaaO5JCTv4dxrz8hWr8eqI0apHIbMYVNY9a9bbfKpVdraoHBWnGlNfNvTq/TwGD3lFqZykbd2y1DiW974MHvyyIvj6LdRy7dpmZmPChElIT1dS1Br5cuVT/XZgFjoLrG3iYVveE7YlBbAtcVUAijAuKYBjBSmAXFjp3320XgANRGpvsuLUJwkTCSZdx43e03dWoXhcTmlRFUCreH4OCb59OQm/bIrgL1GEf2lP2N/KhTUmUjzTGsix1No96kL4TR8EaeDJqEeYefxPAWFd3BbFrzMAFGZ2UUTaZ7jSp93TIJhIPz5h/bR77Z0ls85Mj7Oi0eiMCNfnuAqq1vvS7/c32r+uXQMnbbzr08OpOJ7nXYB+2tOsLZrxeD6XQAinfl5d5s3wfAoBAoqzF+Q5CFoQVymx1gioc75cwWfX5xs3dSx8PJqBcXXNAugttiJ4PdNhW9MbdlIApAi0wq8oAPvyXrC/0UXPYMpffJELzuhksxjYuqXAOrA1rGNyYJvQDrbRObANawtb73TYMhNgjY5QFIHYxisr28iSW1Ni4FhZAPsK8gBEUy2/Ivx2Ev6lPWFt2dQZ+2tp8tbcFlqkiwwPQPFUUuwVG1DOrafdg8oZ785TcIz70Kb3fDUZ27v2o57j4AEHkRWWnqyDqPQUfZBHodv7YTW+36iJ9JukxXi+uMDI4Uxn+lK2siDJWTVpvAZMo9Kvmi71cFyYTTMe54EvLl6NpobAk2Fg5UMpYpoz+ao7qMT5LN3ZFZqmTe269i3Ho1tXw7Wl9KPv/6nQhwDqewVRfKEl7KtICRTAtljxAhQhtC/Kh31NH9heai0subT6ZNkdDtg6p8A+qaPwHtb0gn1tb9jf7QX76p6wr+oJ+5qesK8ugH1lPmwLe8A2Ngc28jykGyeLMByhsM/oCsfynrAvznOGARSGLM6HY6XwDmztmilgpI8/A/UjltfNTSP0J/d8Nyp9jT1WT30a/R4MXWoffnpY/8n5s/jRnz+0+aLT37GaWQsP/YZ4vYkscrdU2BcXwE7xNQka4QKL8mFb1YvDA7LwquDR9clxsL3RmX+3k3Cyt5AP++J88aoNJaQyoevW9WalYBuWBUs47WgjhUKhhRX2rimwU39LesC+MBf2JXmwU1iwrjds73SHtRVZfoux8De2sLv1a/Lvsv5uptV93wjHRgdCn/Y6Q7r8HGtjz53PebM3Po2NzXuBrqvfCkBVAhbYkmJgfzkL9rm5sK/oBduynrC92Q3WNgka4bfBmhzL1txOFp+EnZoUcl+Nry+A/d2+sI1tL8IHjYDZ+rYU16zpBdvyfNhmdmUPxRod7qTBbQyup9rq/z7LL4Y2bCasl6tQBLKARkwSbD+NSdP/Ctr0fxkWaF9Wt8+ez9PTvTccu/6kZlMnIJvgOfeCHg80mhijdwXAHQnLztY9LhK2tomwUpotPEzE+RItDbHDNqE9bO/2FtbeRcAdy7UxvMtv5M7L10X5cKztC1tButOqEx30rKZRsGUncqxvjVAEn0AbF+F3PwLcz390MWAC15RmIMdZO/vSAlpB/s2Urk9jwMf//twZLrC+3E+iNTpF1x9B0Aq5FqUPZNxWg34CnTNPvBfonOnnXp+RCGw99MrIiwIw0ibO479V5F5TtsvCmRAN+0LCCWTKzrhJFF/9joReXs/35nM6zz65k0bLGjxfpvqUa4JdOG8L6YlpVEY1ZV30YJspen32bcK6+HAfPY2xMefU1P8L+GGh3epLPPVjok+r2bGqc+jqUcpX/QnBPpWbSUvvmsL2f/69z7tvD8CVcJm7137HsX+Mki6kjIFvl9/VC9AqBI73p3SBheoLdEysqRtojDjN37H76i+YmM80Y5i0mo0RO3qbw2D7MKLX61g9MLKnuQt2LSzmx+uz4tXj3AXg/XmavwBbSKMxg90B+/QusK0W4KAv4feoACjbsK4PbIMyleyCRgn4osnThP9dwIzBdQEJZyALana8KqOZZLbGoM3sOujoa4T+jOY6kLWw+q+UTfflco9PD8bMmL3xnSuvuPRrTgEYEaXrUKkdyEkU2QEqIqI0ISuCfHMKYKki/Kt7w/5OHsf7ws33Y+KNBunjXp9us09mCKBIKBBFZIY5vN7vxYL6SZ/fezyCGaen8QbSZzBKw2KiX29rboZffNEXyNi98UzAHoAb6KIc202hQPtk2OflibQhpeqWyvSfpohIifupkk/NFJDbT/e82RW21Dg1xjcdKxswqRMA1DJucECPHjhyxrZekWeDhXMFdowAM3/pMv4uMJDRFbRz0hbo/HkGaj3On4k+3cGxwAFBiz9xtwkF6ewzGABaC2Lry9v9mjOFXu0ccdWhfwvoDmTpiFE8AWt8FOxD28A+Lxf2lVT801u8atsq5XsC/KjI562usPXK4OyCrpovCMYwYjQd/SYX0Qgl9o+xnPNnOG+NjLL7BMcMx+n+B6Pe5s/3uF15JZhsgmu/zpOezAuD5zDI6rcy8gQEGq+t/+urXQf3dQkkA6D/b0DnvIUEmw7TDZCYjFNyhNZbYYmOgC0nCbYXW8E+vh3s0zrDPrMbC7v9jU6wjcyBrU8L2FrEK/sJlP+g81TNZ4LZPDZP7nygrp+nvt0svetCmESHg6XN7xDBiLm9zJ+Ze1znwIc76vN+X56W13lzN2AWX30GMXdWX7xnwBfae73SFwAPe+I7LwogiAo33g+g7BDklJ2yEYgEm5B95RAQq0ta0avgW73R5JKVMNOCESRv8aNXOv2gzwydjdWPN8YKZu7+0+vhT3/Wv6G/xl4Py9/fl3kPIBAilL3hukIduWuQ71OUgWmL7/j/i8n+7r4s/2H6GrPP//Tc/R0CZWlknnPp09oY9PngnRAzwqW69z4e7hovu/VpWsg9x1jyObpJ89Cf62nAriGM14XwikG4Vmv5E4L4utZLys4PoXQHjwz60Y1Z/9faxutg0iv0yNxm59SbQBnR4Zler+69JfgqTFf6PPGVx2IoA8F3n0tXEDDATILKr873/w8iBKpv/RGafAAAAABJRU5ErkJggg==';
+export const chainsPezkuwiPNG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAADsCAYAAABdY7u7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAJnKSURBVHhe7L13nB11vf///MzM6dv7brLpvRFSIPQiEEARROyNYkO9V/QqXxuK13b92cWreOXalWsBRUUp0iIJJCG9bPr2fvbs6W1mPp/fHzPnsFlSNgUIYZ88Dtls5rSZeX0+78+7fYRSSjHOOOOc1mijfzHOOOOcfowLfZxxXgWMC32ccV4FjAt9nHFeBYwLfZxxXgWMC32ccV4FjAt9nHFeBYwLfZxxXgWMC32ccV4FjAt9nHFeBYwLfZxxXgWMC32ccV4FjAt9nHFeBYwLfZxxXgWMC32ccV4FjAt9nHFeBYwLfZxxXgWMC/00RCqJrWwU482DxnEQ462kXnmoEf+N/Hvh5z3xvdhJm/kN89CFjhBi1CuM82pjXOivMBQKG5s8efIqT4YMj2Qe5fvZ75EvzaN0RS6Xw/M7H3dWfYHrr34Duj4u9lc740I/RVEo5Kj/cjJHzIoRIcLt3M4WsQVb2ORlnoydBaHQUhrakI7/wQDfqPsGN7753RiGMS70VznjQj8FkUiyKkuSJANqgM3mFu6z/8gj3kdQSoEF0pSoqIIhAcMCvUMn0B+kLFtGaaSUCdYEvvfx7zBj6nQ0bdwV82pnXOgvM4WZ28YmKZP00MMAA+y0drJVbuOP1h8wNRM7bmMnbfRBA2+/j/JsOYEDAcrC5VRpVdTatUytm8K5K85l2ZlLCPiD+DxedG3cbB9nXOgvKwqFrWy67W726ftYa6/lUfUom9VmktkkxAWiS8AQhHaVMDE6kdmls5moNTO7fhZVpVVMnzyN+XPn4fV6DxK0QIwLfJwi40J/ibGxsbDIqRxPmU+xxbOFvfm9bGMbe5N7sSIWeo+B0eIhFCthRenZ1FHHjJIZTK+ZxhkLFlFfV48mNHRNR9M0NE0bF/U4R2Rc6C8BI0Nf3VY3j/EYa7W1rDZXs0fbgzVgo3Vq6Bs9eLZ7uWDCeZxTdw7TG6dzxoxF1FTVUFNTPb7WHue4GRf6i4yNjYlJp9XJ7+zfsUpfxT57HwPmIPYBG323jndrgMXqDN596TtpCjQxsXYC9dX1lIRKirO2EOOm+DjHz7jQXwRGhsTSKs2vs7/mHs89dFqdJM0UqgWMdR68z/mYGp3KXV/8DhOrmqmrqSXgD4wLepyTzrjQTzIKRY4cWZXlg5Fb+UfF37GkhZ2wkTsU3n/68W/0c8O8N/Klz/wnQV8AQ/egaxqacNbb44xzshkX+kmgECLLqzz9aoDfpn/Djz3/w4Dqxw5LjF6D0ofKqW2rY6F3AR9/30dZMG8BXo933JE2zkvCuNBPAnmVp0f1sFlt5m51N6vkKqxuC9UtqHiwkoXmQq6eeRXveMPbqKmqQRPPr7nHRT7OS8G40I+TQs55TMZ4zH6Mv8u/87B6mGh/FK3doHxNBfOT8zi/5nyuX/kGZk6bgdfrQ8C4uMd5yRkX+nFiY7M9v51f6b/ij9Yf6cp0IbZolG+o5JzMCi5puJhLll3CogULx83zcV52xoV+jJiYxO04fxJ/4o/mH/mX/Bdyt0JfbTC9dTpvP+PtXLHscmZMmkHA7x9PQR3nlGBc6GOgUO8tkaw31/O//C+PaY/RM9yDeEKn7JlyrvSu5MbXv4cz555JeXnZuPd8nFOKcaEfhULBSVqluU/dx7fVt+m0OzHX2xj/Mpi0ejLf/sw3WTh9IVUVlXgMz7iTbZxTjnGhHwGJxMRkv9zPrdatbNQ2Yg1a8KxG8Lchvnj1F3j3m9+F3+PH43EEfkqhlPOQ0vnzaCiFUoritxDCeRwGBVDwP4xbMKc040I/DBJJhgw75U5WspJ0Jo3crQg9UkLDv5r45Vd/xhnzFzmtmjQN7QiCeFlQCmXbqHQa1d+PME0Ax+s/+ljAikZJPPoo2ZZdaENhqm+/HaOx8QUCdu4Whe2KW5WVoVdWIrze50U/zinHuNAPgYlJWIZ5gif4cPbDpGNp9PUG9asbuZRL+cg7P8T8OfPweryjn/qiowqztBCIwmxt2yjTROXzkEyiursRySQqmSK7dw/mT3+KLxxGut1ANcByBW8BwueDyZOhoQGEQNuzB7OnBy8CWwg0nFleA2wFHhRJQOg6uXPOofINb4DKSkQgAOXl6E1NqGAQ4fOheb2g60XrQOBaCuO8pIwL/RDssnfxK/tX/Lf8IanBJN4HfCw8sIh3L34316+8jrq6upel3ltKSTIaRebyhCrK0UwT0d6OvW0bYngYolHo7MR+5BFUXx8AllLEARNIIEgDWQFxBAqICoEnFMIzdSrBxkYwDPItLSSHwtQIjaFkkoBt4wGCKCqVIqjAhyIIBAHDHTRsTcNsbsb7mtegGhuRlZVQV4e2ZAmishLbMPD4fHh9vpf83L3aGRe6i0KRJ882tY2783fzF/kXEhuSeNd5ubjjEm69/oNcuPwCfF4fuq6PfvqLi2uGZ/v6iGzdhhrop7a7Gy0WQ+zdS+7ZZ5G5HAmlyCpFWCmGECR0jX7dIB8M4q2rIxcKYXo8lDc30zihCdvrw9Z1dJ8PGQzS2tpKR0cHZjrNReeeQ0V5OeloDI+U6Ci8tk12YJDBAweQ6TTlpkm+pwd/PE6NbVNj25RKSakm8AqBJjRy5WV4Vq5EzppFqqyMmG7gXTCfSYsX4/H7R3/TcV4kxoVeELnKs0qu4i5xF09nnib5dJLQn0t5S8Obef+172fRgoUYhjH6qS8ehcuiFCqfR+7ejb15M3YqhRgexvjlL4l0dmIB7UKwR2j0CkG7YVC1aCGhxiYmzptHaNIkggE//qpqAsEAuuGhrqGe+vp6fO7MqpQinU7zxz/ex0MPP8xFF17AW9/6VsrKDg4TSikZGhqit6uLTCaLZuaJDQ4i4nHyg2GGWloY3rkDtf8ATZk0jVIxSdeoaGzEP3UqufJyOoaH+Ud5Obf86EdU1Nc//33HeVEZFzqQIcPT8mk+b3+e7f3bUWsUEx9p5otv+SIr5p7NhIYJL23LZNsGy8KKRMj95jcEnnkGmUxiT5oEs2cT1XW2P/QQWzZspLuslJoVK6hobiZYXU3TrFlMnDIFfyhEeWUloZKS58N9I/LrR2brKaVIJBL84Q9/5NFHH2Xq1Kl89KP/Tm1t7QusFyklSkrXoe9485WU5LJZEtEoyeFhzGiM9u3biHZ1Edmzh4rBQWY3NFCDoKuzg/+Nxfn6Y/+kfuLEg157nBePV7XQJRILi61qK++030lndyf2320Wb13MV97+Fc5Zfi5Bf2D0004+I8Ngto1MJMj9+Md4/vQn7N5eUvE4/SUlpJYsYXjFCuIVFbTs2k0kk+HDn/wEgbIy/H4/Hq+XQCBwzIOSUopoNMrvfv97nnjiCcKDg/z4xz9mypQpx2XFSCnJZjLkcjmyqRThjg5WPfh3hlpa6Nqzh7nXXcstn/wkZRUVo586zovEqzb4WYiRb5abWWmupLW7Fe2PGpdsuZQf3PoDLlhxAX6vb/TTXhykhHweuXMn+Y9+FLl0Kfo3vkFk927+lkjwQ8Pga7rODwyDbV4vg7pOyfTpzF6+jIlTp1JfX09FZSUlJSXHLHJcoSt3ZkYpstmsM3Mf5xygaRqBYJDyigpq6utpmjWL0PRpPJNKUnvNNbzpAx8gVFIy+mnjvIi86oReSGVNqiT3Zu7lsvxlZPZkCN4f5HXdr+NrH/oqi+YuKtaKv2hICaYJkQhq507s738f8/WvJ33vvbRFo9wrBF+qqeHBGTPouepqvvTUU/z3b37D2eedh+7xoHsMTNtG03XncYLtpmzbxrZtd83uhvFOgMLyQAF79+9n1Zo1WEpx3oUX0DhhAtpL7dB8lfMi3smnJgpFlCh/ln/mds/tZFuyBP8c5C2Zt3Dnh+5k4YKFeAzP6KedXJSCbBa1Zg18//vISy4h8aUvsWVwkJ8qxV3z5rHukks47847+e9Vq/j+L35O85QpBIJBJjY3F51kbW1tdHZ2IqUc/Q7HjGVZmKbpZLsd31hxSIaHh/nrX/9KMpEgGAwSDAbHC31eBl41Qi/Uj7fTzj3yHu6w7yCxJ0Hpr0u5qfom7rj5DqZNmfbi3YTuDK6Gh5GPPYb9s59hvfvdDH/3uzxrWfy6pIT7zz6b6E038Z7vfIdv/PKXvPFtb8MXDGJ4PMVZu6GhgVAohKZpNDY28rvf/Q7btk94BjZNk1wuB0qdlCw/pRSWZbFnzx7a2tpIp9OUlpZSVlZ2UgeSccbGq0boEkmbbOO/5X/z7fy36dndg+d7Hm5fcDt3vOsOmuqbXtSZXGYy5Neswf7ud1G3307uU59i/cAA/y0lf1y4EPsTn+ANX/0qd37nOyxZsYJgSQke7wuXD4W/a5qG1+tleHiYfD5/0DHHilIK27aRUhbN/xMd7JRSmKbJM888g23bmKbJzJkzaW5uHn3oOC8Bp73QC7uhtFqtfCv3LX6T+A2RnRFKflrCpxZ9in97+78RCoRO6ixTcGxJy0JmMthdXZg//zl87nOkf/hDNu7bx397vfx6xgwCH/84b/nqV/nAhz7E0mXLXiDs0YwMjWmahq7rrFq1avRhJ8SJiryAbdv09fVhWRalpaUsXLiQ8vLy0YcdNwWrwTRNTNM8KUuY05Uj31WnARLJkD3Ej1M/5l51L+F9YfTf6VwfvJ4br78Rn+FkurlZ2CcHpQj39bH/iSeI/uxn8L73ob7zHbo2bOD/Mhl+4Pejbr6Zd/3oR9z4b//GWeedhz8QGFMoSwjB7Nmzi9VyZWVl7N69+4RN94Ln3XHGndhr4b5ePp8nGo2Sy+Worq5mzpw5L4jLHy8FK2Tv3r1873vf409/+hPpdHr0YeO4nNZCVyiyKsvdqbv5uf/nJFoT+B7wcY26htvedRu1NbVHnUGPByuTwV63jon791MSDhPbt48nhob4kc/HzvPP56af/YxbPvlJlp51FpWVlcc0g2qadpD5axgGyWTyhMJhuMI5mTOiUopHHnmEfD6PaZpUVVUxY8aMk3K+C581Fotx9913s2HDBp577jl6enpGHzqOy4mf9VMUhcLEpMPq4FvBbxHvi2PcZ7Csexm3XX8bs6c/PyueNNx4uPXss1S1tODN50n5/Wxctoz/Ky2l6tZbueOXv+T8lSuprKnB667Bj+UzCCEwDIOKigo0TcPj8WAYBhs3bjwhoeq6PiaLYiwUhLhhw4ai2b548eIXbAR5vBTW/9/85jfp6+sjFosxODjoOBPHOSSnrdBtbPbKvVxgXkAmksH3Vx8X9V3EF2/5ImctP+vFcbwlEpiPP47nu9/FfuopwqkUW3w+ts+bx5kf/Sj/9ulPU1FVhe560I8XIQRLlizB4/Hg9/sRQrB+/Xosyxp96JgQQqDr+kkb+JSbOx+JRLAsC6UUjY2Now87bqSUbN68mY6ODtLpNMPDw0yePJnJkyePPnQcl+O/205hLCw6VSc3mzeTEin0x3UWbVnEp97xKVYsW4GhGyflhi5iWdDXh/zZz7A/+Un6V6/mHwcOcM/u3WxXCr28nJr6evoHBrDcpJQTpbGxsThgFLLhTsR093g8xRm3YGUcz+csrJ0ffPBBTNPEsiy8Xi+zZ88efehxYVkW7e3t/OIXv8A0TbLZLCtWrODWW28lGAyOPnwcl9NS6AMMcJe8i936buzNNvV/rOfmS27mwhUXvjjNIgYHUd/9LubXv86+/fv5hWXxYGUlvpkzKauqQmgaAwMDPPjggxw4cGD0s48LTdOYNm0aQgj8fj9KKbq6ukYfNiYKrxEMBhFCUFtbi8dz/BZPLpdj27ZtxWy7mTNnnjRv+9DQEL///e+JxWIkk0k0TePWW2+ltrb2pC09TkdOK6Hb2CRIcK+6lz/wB/I78pR+p5TbVt7GW69/6zGvh4+KZaH6+rC/+lXiP/kJz6bT/La0FOu663jr5z/PB//937n00ksxTROfz0cymWTPnj3E4/ETWk8XZt2ZM2diWRaGYTA4OMiWLVtGH3oYFEpJt/rMBmVjGFBealBWIrjqykupKA8hhEIp2324x7tbQB+JdDqNaZpFoV9++eUn7G0vrMvXrFnD/v37yWazhMNh3vrWtzJ58uQTWgq9Gjitzo6FxYM8yE/UT+jt68X4lsHXXvc1bnn7LQR8J3mXUimRkQjyk58k/Mtf8ng2y/+VleF95zt52+c+x2uuuoqS0lJqamqYO3cuuVyOsrIyenp66OzsxLbt0a94TGiaRm1tLeXl5cU19gvFpNyHLD6UsjBzcVKJDjKJfeTT+8ml9mOndzG7uZMbVsL5C/eh2fvIJvaTjjmPVKyVTGoA28od9HrPv8fzA0Aul0NKiW3bZLNZZs2adYjPdmxIKWlvb2fDhg3EYjH6+/t55zvfydvf/nZ8vpeo+OgVzGlRplrou75BbeAO7mBVZhXq+4oPyw/zhY9+gWDAya8+KSgFto29fz/q//0/Ek8+yZNC8PjEiSy++WauetObqKuvx3BNX9u26e3t5a9//WvRWVZRUcHVV19dDK0d7wBk2zYbNmxg27ZtpFNJFixcwEUXXoTQBAIJyiSb6iSf2oVPbkaYe5Ayhy5MlMojsBGAEh4kldjSQAgblT+ArnsQwnD6uykwLYHCwOPxYXjLkKHXkc5XonknUlI2EYQOwkApjb6+Pr75zW+yb99+zj//fD7+8Y8fV1VdAaUU3d3dPPDAA6xdu5be3l6qqqr44Q9/SEVFxQkPIq8GTguh29iEVZjvyu/yffV97Pttpt07jT9/+8/MmDzjhMR0EEo55vqOHdi3387QunX8XikemzmT//ja11i0fDnlo2qslZu9tXHjRh5//HHKy8uRUtLc3MzKlSuLXV6OBykl8ViUJ5/8J1ZumLrqPHPmn0tN7RRU+l/kwr/BozqQdhqhUiDTICCXF2SyAp8P/B7oHfJjMolgWRMlQZ10bDfxWA8aNmUhRWV5oRmsM3MLoaO0CqQykPiQlGEZS6DkKozgPDZtWsuDf3uIDRt3cdd//4jp049/RpdSkslkePjhh3nggQeIxWL09vby05/+lNmzZ5/QAPJq4rQQeooU98v7+bf8v5HclGTiDyfy23/7LUvPXIrXODmxW6QEKbFWrYI77qBv+3Ye1DTWzJzJN//8Zypqahwv+CFuaKUUmUyGtWvXsm3btmKSyznnnMO555573CJQSmJbGRJDWyC3HZ/owmf/C6wulDSxbEksIekdVJgW9PQL2nsNsnmdTFajq09jOKFTU+Wjtm4CureGWBIS0VZ01U/ILwAnJl5RpmiqU0ybKJkxyaK63ELTFIam0HUNTdMxVQ0pOZOhaJDOXotVa/Zy+xcfxO8vR2jHF+kwTZOWlhbuuece+vr66O7u5q1vfSs33ngjJW73nHGOzita6AqFhcUGawPvtt5NZ28nnu95+cTk/+BD7/oQlZWVxy2iIk5xNqRSqFWrML/+dYY2beKPXi//WriQ7/7yl9Q1NqIbR76RpdtvbfXq1fT09KCUYigS4SMf/nAx+eXIuJdJWSg7ATKOkmnszG40cw+2qMTMxxnqfozIwG4Ghw12t/tIZvwMRT30DflpmDiLc885j9LSKoIlpUybOo3S0jIQgngsxl//9iDr1q9n+bKlXHvt6yktKUFK211z20QiYQYH+ujv7+WZp/9CVckg05vzTG3MUFuZoaKyDm+gGU33oMkhRH47w+ZF+GrfRrBsFkqU4PFVoOkehNCPWg8rpWRwcJB7/vd/2bFjB/19fUyc2MznPvdZpk6dOu5lPwZe0UK3sYnICDelb+JR9Sihv4a4dP2lfO6Wz3HG/DOOKLwxIyWk08gHH8T+5jdp27WLPwId55zDf3z/+0yZPv2oIi+glGLLli0899xzWJaFbdsYhsFNN900hmQVCTIB+f3kIg8iUg8i873kbYO4dQ5pcTaRmM7mzRtp7YhTXTuLqdNmMn3mXGpr66ivb0DXjUP0VXfi7/l8nr/97W/885//5Morr+Syyy4jGAggNO35QaYoTYUCbMuku7uL/ftb2LzhMeqrFdVlearKklQF9tJQ3o7fJ8mbgoFICTnjPOqmvAFPaD6hsilo+uFDnYUlzzPPPMM999xDNBplYGCQz3/+DlauXHnyIyinOa9YoUskOZXjh7kf8kX1RXJrcpz11Fl85aqvsGLZipMTL1cKMhnMe+9F3nUXffv28XePh5Zly3jff/0XsxcuxGMYrhjGRi6XY9WqVRw4cMDxh0vJ+eedx7x589A0bdTM7oS/lEyhstshswYr/gjpeCuDEYvWTkFvpATTOIeK+rPJ5uHAgU6uuGIlCxYswuv1oGlH7z6jlCIWj/OXBx5g9eo1CAF3fP7zNNTXH9EiUm4hjBNGMxkK9/PQP+6jp3Mb1SVhzlteTia6ntqKNBWlklBAkbPKGc4vw195Gb6K86momgTCcGf457Ftm7Vr1/Lb3/6W/v5+otEoy5cv59Zbbx0vdT0Oxn6HnkIUSk//nPgzX+JLZDoyVDxWyVUTr2L54uUnNb1Vdndjf/WrDO3Zw1+kYuvChVx3++3MnDfPySQ7BpEDeL1ezjzzTKqqqhzhKcWTTz51iFx1hZIWMrUGIt/D6v8isY7vsX37Tv7yWJ6f3u9je89l2GUfZPKcNzNx0kKECFBdU088nkQIgcfjxTCMo85+SinyuRz5vImmawwMDJLLZo+aaSfceL6Tihskl1cMRRX7OgT1M26mdNKdxDwfoz3xJlZvqaCzV+LTh6gPPIzZ+2kyPV8h2vVLzHzyIKtBKUUqleL//u93DEUiDA1FaGxq4h3veAdNTU0HfYZxxsax3aWnCApFREb4nvY9MmYW7xofS3JLedPlbyrmfp8ISkqUaSL7+pCf+xyRgUEe9flpO2cFb/j4x1l61ll4TyB2W1VVxdlnn42ZNzEMD7qu097ejm1bzg2vsljxf6EGP4018BUGWn/Bpq37+cMjAf7vkQno1bdyyeu+yrVvvp13vPO9XHjhhUyZMpmKigoC/gAbNmykv7//mJJypJRIJdE1Hc8xFp8ot1305s2b6e7qJpPJsuTMJUyYMIlLV97Cmed9gmlL/osB9RH+uXE+2w+U4vNpVOoPo0e/RWTf7bS3/IxseggpLSzT5KGHHiaRTGKZFn6/n+uuvZbZs2ePwZdx7BSsEulWAB55eHtlcvLP2otMobnjN8Q32OXfBdsU9dvrueU1NzN5wuRjukEPhZSSTCxGeuNG1G23YT3yCJuFYNeiRVz72c9y7mWXUV5eftw3XMGEbmpqYv78eZhmHq/PQzabZP++FpSdwo7+DiJfRcbuo6VlF//3d8HvH6lDlr6HN7/ne1x5zQd4zeVvYPr0Wfh8frxeL2VlZVRVVaPrOkopWtvajknoQgh0zYkaeI/qLzgYKSV9/f3s3befVDpFJpNG0zR0w4m7V1ZPZN4Z1zBv2UeYd+53ENWfY92u6fQMCAKeCKX2A+jRb9G+/RvEIgcwrRzbt2/Ftiyi0RgzZ87ioosuwhijL2SsKLfKLpVKsW3bdp577jmi0ajTDfc04/ju1pcRiWRQDrKWtWQGMnjWeJneMYOVF11xwl5YJSWD3d30PfUUasMGZGMjm5on8bfZs7nuzjs569xzT0rhRMHkPeuss0gkU3g9GhPqLKo9f8Pufjdm/7fo7d7D7x7ycfd9Ewk1fYhPfPZe3vbOj3DG4uVUVla+YKAxDAOP1+ktV9/QgGUeWyWbUgqEW67qOTZB5fN5Ojs6GegfIJvJsXjxmZSUlh70GYUQlJdXMHnqQhYseTMXvO5XPLP/bfxjTR2JtJeasgiTyh5Ghv8/tj/3v5i5CJlsmjPPXMynPnX7ScuVH4lt2/T39/PrX/+G//mf/+Hb3/kev733/4jFYqMPfcXzihO6icn94n7acm2oHij7Uzl3fe37BAPBF9z8x4yUeKNR6sJh/Lkc2YkTCb/tbXjPXsGC5cvc6q4TfA8XTdPw+/287rVXEw4POeLXy0llA6zdavHDewMMyvfwzbse4t03/hv1jZMpL6/E4/G8YM0t3Bp14d68Ho+HnTtbiqboWFBKIRAYhgeP59i+ZzKZpK29Hcu2yGSzvOG666hwU3MLFAY3Xffg95dQUt7MW97zFS647iE2dN/Ixr3N5OxyyoMJZtZu4MpzYlQF27n9kx+lvu7kFqwUPPoDAwP84L9/xOo1zzAYHqKvvw/LtI5pkHulMPareQpgK5sN5gbute9lIDmA96d+vvjB/2TqpClox3BjHhalCEWjeLdvJzY4yHO6QW9pKWcsXcLAYJhsNusWdpwcNE1j1qxZXHrpZfQMwK62ABv2LeJvq+dy1Zu+w60fvA2/P4RnDDOspmkEQyGnnbKuI6VkeHh4zEIXwjG1DUPH5/Ohac4WTmMhn8+TTCRQShEIBhzL4kgOQFf0huGlvLKBldd+momLvseBwbOIxIME/HkWz9jN21aGScd2YFm5MX+Po6HcUOLuPXv5ylf/i9a2VuKJOL29vUyfPp3LL7+M0tLS0U97xXMS1PHSYGPTZ/XxM/NnPJd5DuNBD/MG53HDtW/AYxzbmvKQKAXRKMaTT5J6ahVPr1vPur5+slKSzeV45NFHWbPmmYOaKZwoQgg8Hg8zZ85kYvMM2nt0eoZqmDHvcqZMnYNueN0UzyOIZgTTpk5lUnMzHo+Huvo6nl69GnuMraCFcAYLXTec2bOwl/lRsG2bSCRCX38/+bzJpOZmykpLj/p5hRAIoaFpBkJ4qW1chOW/gtVbq2nZm8DOD3LWggyq/5P0tf6BVLwNJcf2XQ5FYT0ej8d5bsMG7r77xwwPDxONRknEE6xceQV3fPYzzJo188Qtw1OQV8w3srHZwhbWqXXY+yUl68q480OfJxRwepyfEEqhTBP11FOk//BHnmpr45FkikBtLeUVFSSTSSzLomXXblavXkN3d/dxd3MZjRCCQCDI1GnTMTwhcnmBx+Onta39mG9qXdfxeAx0Xcfr9dLa2oZpmqMPOzQjKuA0TR+TyJVS5HI52ts7kFIiBFx44QU0NDSMPvSIpNNp9uzZT384S8/wFLZ3LGJP/3LCw4K68h58sTvp3PEtopG9KHV8VX9KKcLhME888SS//e3/MRgeZGBwkEQ8yZve9CZuv/2TTJ48+aQ7/E4VTlAhLx1DDPFP45/szxxA32Dw1oVv4azFZx0xoWPMWBZs347105+yv7WV1VXVnP3ud/OeW27mypVXMG3qVFKpFKDo6e1l3fr1bNu2nVzu5JiUmqbR1NjI1GlTkUqhGzp79+5l67Ztx2Q9aJpGY2MTpaWl6LpOMBhk7969Y3q+oGBOOzP6WG72gtC73ZRevz9AeVn5mK+JcuPla555hvvv/xMPPfQIwWAJl155K83z7yAT+AA94RDloQwV2l/p3fUVYuFtSNsc8xJKuaGzAwcOOO/x8CMMDAwwMDBIY0MDH/rQB7nxPe8+5kjDK41XhNAVir1qL3+Sf8LqtqjeUsObz30T1RVVJ15+qhSqrw/ru9+l59lneVDTaHz961n5husoKSultraW17zmUmbPnsXw8DCmaTI4GGbTpk2s+te/xmwaH4mCM23KlClUVVUhpcTr9bJ9+w7a28c+s2uaRkNDfXGzxaqqKvYfaB192CFRytm8weMxxtzEUSlFJpNlODKMaVrMnDmDqVOnjtnCklISjcVYvXoN/QMD9A8MUFpWRmVVLU3NC5iy4DaM2k/Q2ltKVVmGOt/DDOz5Cul4K4yhCcbzIm/ld7//A6vXPENPTy+tbW288x1v4+Mfu423vPlNBAInnntxqjO2K/IyYmMzYA/w28S9dGe78azzcrH/YpoqG0/84kgJuRxq7VrMhx9mJ4LIWWdxwQ1vpKqmuuhQKisr4+KLLuKcc87Bsiwsd9OA/fsO8ODf/0EikTgmD/fhqKmu5txzVlBW5jiDhBCsf+45MpnMmGPiQgg0TbhONWcnF+Wmqh4J23b2PXcy6cZ2XpVSbNu+HenOrg0NDdTW1ozpuii3Y8xDDz1MLBYnkUxQVVnJtKlTiwON119C04x3Epr8/9EaPhvDMGgoeZbh/Z8kGW9H2qbjWzkEUkqy2SybN2/hZz//Bbt27WZoaIihyBD/8fGP8aYbbmDhwgVj+qynA68IofeLfh7wP4A8oKjfV891F15LQ92xrQMPiZSoaBTrzjvZk8nwVHk5C667jnlnLCoWmTjC0SgtLeWC88/jda97LX6/H8u2USh6urt5+JFH6enpPWGx67pOfX09U6ZMweNxMubyOZPHn3hyzEIHqKmpwef14TE8hEIh2ts7xvC5FJrupLOO9eaXUhUr8UpKS6h1S3WP9nzlOsZaW1vZvXs32VwWy7K45JKLmTdvrmsRCITQMbxlNE19LZXTPstA5gJAURdcR/uG99Dftw8pDzbjC7N4JpPhF7/8Fb/45S9pa2tjMBzGlpJPf+p2Xv/6awiFQmNeopwOnPJCt7D4rvVdookoYr3GeTXnsWz+khMvWlEKTJPM664h1dXFPw0vxsqVXPXG6/EHAqOPRtM0fD4f06dN47VXX0U+n8cyTYSmMRQO8/jjj7Nr1+4TNuU1TWPRwoUEAn4MQ8fjNchkMmzfvmNMryuEYMrkyYRCIXw+L6UlJbS2HhjTQKFrTstnXXc7yxwB5cai47E44GTVBUNjSyZSbojrD3+8HzNvks/mWL5sGa+/5nVuaO/521IIgW54qW1aQvnkzzCYXo5tC6bW7qdl1RvZtfMZbOv5veeUUgwNDfHlr3yFtWvXEg4P0dfXx8QJE/jut7/JFZdfTuAkpEm/0jhlhV7Y/TRmx3hKPIWM2gR3BDizYvGJNwNUTqcYuW4dxv599CpF4szFvOW976Wuvv6wr12Y3RsbG7npxvdQUlpCNpNBKkUqnWbtunVs2bKFVCp1QoLXdZ3zzj0Xy7LRNR3bsujt6yUWi41JsEIISkqcGUvTNGKx+FGjBAoQmhPu844hbi+lZNeuFnRdQwiYOHECs2bOHH3YCyiY7P/852Pkshnypkl9Qz1vfOP1h+2241hWHuoaFxBq/iyR/BIMj8aZs6IMtNzO7h1PYVl55zz19vLDH91NX28fyWSSvr5e5i+Yx1e+/J/FrawKS7JXE4e+o08BFApTmfwi9Qu6VTeiVWPe0HzOmLXoxC+UUo7Jfttt9No294VK8CxbytRZM4vm+uEoiL28vIJ3vP3tzJ49GyUllmmSz+fYuGkTzz23gXA4PCZRHgpN06iurmbZsqXFUFlkKML69evHtL+Y5jaO1HUnLdbr9dLV1T36sINRCk3T8BiuM+4IAbaC6d3e3lE8H5UVFWNq0mhZFrt27WLr1q3k83mktLniisuZPGnSEb31QgiEplE/YTFWxaeJ5hbg98OZM7tI9PyEvp49JFNJVq36F93d3USGh+nq6mL5smV8/Wtfo7bW2X7rSNf2dOaUFnqWLPf470EOKMqfK+PSeZeweNHi0YceG4XZ/IEHEAMDbNc02qdO5S0330zgGPLYHYeXwaWXXsJFF11ISUkIM29imRZ79+7h2WfX0tHRcUzhsZEIIZg+bRoTJk5ASptgKEg8nqDLjeEf7TXr3Vpyj+Fs2TQ4ODj6kINQgCY01+vuOZrlTj6fJ51OI4TA7/MxZcrRrSylFL29vax55hmyuSypVIqzli/n3HPOOeoA6yAQwmDS1LPIl32G1v5JePw1zGxO03fgPjZvXMX+/ftIJpNUVVZyzTXXcOedX8Dv9x/1s53unLLfXqG4P3c/ffSheiXTYtN405U3UF52gsUNSmG3t8PPf05fLMZDfj8XveudTJ8x45jzqTV33T5nzhwuu+wy6upqyWYzmKZFX18fzz679rh3OhVuyG3+vHlOS2cEQhN0dnQ4FVZHeM2CaLxeL7ruiNfjOfJ3M3THS+/xevF6nXXy4YSnlKLNrY4TQuD3+5h0lBlZuX3ztm7dxnAkQiadYfr06dxwwxsPa7IfCue7GTRNPhdR9TH64zMJllRQW7qP/Tvup7LCz1VXruSjH/0o/+/2TxIMnoQaiNOAU/YM2Mrmp+KnWLaF9zkv03PTmTN7zolftFwOfvc78q2tPK3r7Kys5Jo3v/mozqcjoes6TU1NXHzxxZxxhtPCSilFKpVk06ZNbNq0GdM0jyjOwxEIBJg5cyamaeL1eEmn0xxobT1qso4Qgrq6WrxeL4FAANu23eXEoZ9TKHUtLyujurrqqIPewMAAhqGj6xoTJ06kqqpq9CEH4TgUt9Pe3kYunyeRiHPDDW8s7g5zLAgBQmhMm3M1MftCYkkvdRUJZjW1MGuSxTWvW8mCBfNP/F45jTglz4REEpVR+o1+7E6bim0VXLbssjEnchwWpZA7d8KTT9KVTPKEYfC1//kfgifYTVS46aN1dXWsWLGCCy443y2AUWSzWbZvd2qdjybOQ6HrOg0NDcyYMR3btvD5fAyFw8UZ9Uiv19DQgBACn8+HbdsMD0ddI/1gpJRomiPYWbNmsWDBAuyjbDChjciiK2wNdbhzqNy+7Fu2bCGdTpNMJLj55ptpamo6ZjEqpbBtiW1LwkNxpGc+u1sFdraVWRO7sWL3Y+UGxxTmezVxbGf5JSJHjk9Yn6DP7EMP69QM1HDZJZcd0UF0VKREWRbqwQfJbtzIM0LQPWUKZyxdetLiqUIIAoEAs2bN4i1veTNDQ0NIKbFtiz179rJ69WqGhoaOySPvmMZ+5syZw/Tp0zFcZ9nu3bvJZDJHfB2v10tVVRXl5eVMmDCBqqpKbHf3lFwuV/wcuq5TWlpKY2Mjzc3NTJ06lYqKCoQQxePj8TjDw8NkMhny+TxlZWWUlJQwadKkotAPhXT3MS9so5TNZikpKWXmzJnHLEbl7tL6wAMP8OUvf5m77voBz67bSeWE69nf20jQr6gr6+D+3/+ARGJsEYpXC6ek0Afzg7RpbeRVHv1hnQumXEB1ZfXow44NKVEbNyKfeopYJsNmj4e7770XzQ1BnSyEuzaur6/nox/9KOl0mmw2Cyg6Ozt56qmn6OrqGpNDrUBhVi4tLcXj7odeUVHBunXrUEfIehNCUFNTQ1NTE01NTVRWVmIYBn6/H5/PVxRawSIpzNCFZJ3C7wvvXVFRgdfr5C9MmTKFuXPnMnnyZHS3q82hPovtNncYWQj0zne+g7KysjGfd+XG7CORCL/4xS94/PHH6enpobW1lRkzZzN7/qXUzfoc6/cu4W9PemjZl8K2D31OXq2M7Uy/xKyT6+iVvchtEs9mD7fceAtezwma7aaJ2LqVXEsL6zWN8IQJ6MV2xiefgjg/8IEPMHPmzKLZnkqlWLVqFbt27TrqjDwSTdOYNGkS9fX14HaU8Xq97Nmz56CZqyC2QppuSUkJgUCgGFM/nnNYGAwKwvf7/VRUVNDc3ExDQwPRaJTh4WHS6fRBA5hye8lt374dXE/9ZZddVhwcxoJy4+779u3j17/+NS0tLaTTacLhMBMmTODiiy/G4/XTMHEFlVNvp7z5g3zi9i8X96Qbx+HFucuPE4XCUhYP6Q/RqTrRu3Wask3MnV1Iizx2lFLYpkmuowNr2zbClsXTpaXMu+oqQqPaHZ1MhBtf9vl8nH/++Zx11lkHJWts376dHTt2EI1Gx2xiCiGYOHFisWjF4/EwPDxc9AcoN/3Tsix0N/4+ctY+mRREX1JSQlVVFX6/n0QiUfw8zpLFprOzk2zWSXFtaGhg4sSJY/a1SDdffdu2bTz44IPs2+eEzmzb5oorruDLX/6yO4DpCM1gwaJz+NBHPkHThInHPagdDdu2yefzDA4OMjw8fEzLsJeTF+cuPwHidpy4iGNnbIxnDG5+3c1oY2y8cCiUbdO9cyfJtWsRySQD8+dTf9VVvON976PsBJo8jhVN0wgEAixYsIALLriA6urq4nc5cOAAGzdupLe3d8w3SzAYpL6+vmjCl5WVEYvFsN0upprbfvnF/l4FCoIPBoPU1tYSCoXIZrOO0y2ZZGhoCKUUwWCQs88+m8bGxtEvcUiUmya7ceNGHnroIdrb24lEIoRCId7+9rdz4403EggEDvqezrLDi3aiFY2HwbIsurq6WLNmDffddx/33Xcfe/fuHfNA/XJySm3gYGKy2lrN/7P/Hxv2baDkcyWs/tpqZs2Yddy92q1slqfvuYcl+Twe0+S5bJaB5mZmLlnC1OnTi8kUYzUlj5fCjBuJRNi/fz+tra1FczoUCjF37lyamppe6KBS7pZQwmntpJRCSUlPby/5XI6y8nJCoRBerxdN13Aqy18+ClZFQeytra309PQwceJEFi5cOKaYuWVZtLe3s3fvXp577jkikQjZbJbm5mYuv/xy5s2b96InwSg3+892O+js3r2bwcFB9u/fX7QskskkF154Ibfddhsed/fcU5VTSuhJmeQueRffsr5F/OE4jd9pZOP9GykvL8fQjxzXPRxWKsWGO+5goRAkKitZFwzSYRgES0uprq4mFArR2NjInDlzijfg0W7EE0G5Ibf9+/ezYcOG4loyEAgwffr0F5q2ponV1oYxaRLK43VErBS2tMmbebw+ZwZTQiBdiQsJGgqhnO2kpVAoIdDUwQNI8W9CoBDuRkvOEkoIEMp5neef4/ybEsI1BgVCuQNL4cWE8yrK9ROkUimSySQVpWWUhkKga7hbs76AwmC4ZcsWNm3aRGdnJ8lkknQ6zYoVK7jkkktoaGg4aoz/RCjIQUpJJBLhiSeeoKOjg9bWVmKxGKZpkk6nGRoaIpfLcccdd3D11VcXnZSnKqeU0FvNVu6Ud/L7yO9R/6v48Rk/5m0r34bhMY67+aNMJun8yEeobmlha20t/2xsxGxooKKiouhlDgQC1NTUMHXqVGbMmHGQ1/nFQLkOpp6eHp544gmqqqrweDz4fD4mTJjApEmTCAQCzvvbNirSD5XVKN2DQCFcS1EBQkiUENhoFFoxCCXQpHJ/I7HcrY41obliBYGFkHmEMJz90ZXmPFsolLTRhHNbiKKNoKGUQmC576eD0NGk5hwjnHbRyn0eqOL5k7ZCKNeppwk4RL17YWBwEow2Ffu5pdNprr/+ehYtWlTsp/9iXRfL7TUQDof561//Sl9fHz09PaRSKUzTJB6PE41GSaVS3HLLLSxevJhly5YRCp2EdmYvMqeU0Nfl1/Ep+1OsiazB+3kvz33xOWZOcApNjhc7kaDz/e8n99hj/M0w+GdTE76JE6murqa+vv6g/mY+nw+fz8fEiRNZvnx58QK+WDO9bdsMDAzw8MMPU1lZWfSOl5SUMH/+fFfsIJTpiFEoNLcts1KaI3ghkQJsAQpnBFBKc2ZjIdGkRKGh0IotnJWmgCwqH0HTggitFJTHHSZsLJlB2Dk0w4cSHgQeUBooG03LO05ToYPwodmiOEAI90/n707Zq7OJo3AGGPX8gDDyXBasnE2bNrF161ZSqRRDQ0P09vby2c9+lubm5jE78MZKwXoY+diwYQP//Oc/CYfDRKNRcrkcpmkSiUTo7+9n7ty5fPCDH2Ty5MnU1dUVnaKvBE4ZoSsUP1U/5VZuRfxDUP7tctb+fC1TJ04dfegxYeVybHjoIX5+22345szhLZ/5DEvOOotcLsd//ud/EolEqKqqorKyklAodNBMPmXKFFasWEFpaSmG4TRdPJkodx2YSCTYuHEjqVSq+BkAli5dSiAQQCkwNHfGVY7pbGuO0J0JVGELBUh3ICjM9gKlJJqSSDRsdHQhkJgIkcBOdoBeicfXAML53kqZSCtKPhMmUFKHrSoRyuOa9ha6YaKUhRIeNOFHs5ylgXRNfOfUOT9r2kgTW6AktHe0UVVVSVlZWfE8F77/nj17yGQyhMNhbNvmjjvuKJ73ky1yKSWmaRKLxVi9ejUPPfSQ02PADUvmcjnC4TDJZJJLL72UO+64o+j8KzzEixDNeLE4JYSuUKRlmu9b3+ez1mfx/8HPnd47+cDrPkB56YkVsUjbJh6LsXHjRpqampg+YwYerxfbtouhqD179vCXv/wF0zQJBALFZJJCt5WSkhKWL19ObW0twWDQcXydxAtdWA/u3LmTXC5XfH9d15k2bRpVtbXoyjHJAaRwJ1hlO79TAiVsQKFJ4cysSoEwUJjY+X6EBspwRAugEcNMtmDZQfzl00APItBBpcmnO7Byw4QqpqNUHeBBYiJlDGWn8XgrUAQQuo5m20iBa/rjGPruOTnYnHV+l0olaW9vZ8qUKcUc/AMHDvDss8+SSqWIxWI0NjZy3XXXFZtcngyklEVxJ5NJtyPsE2zatAnTNIshwEKosqSkhIsuuoh3vetdxQjHi+kbeLE5JYRuY9NhdnBH9g5+K39L+V3l/OGKP3DBmRfg8xy9xvloKFmYb9x1ouu9xh3dC392dXXx9NNP09PTQz6fR7h91wsjeSgUYtKkSUycOJGamhrKyspO2o2o3I6qra2t9Pf3o7sZacFgkNnz56Ah0NCKDjdNKRR5lBAopQM2mtIQUgOks15GR9kZbHMvtp3EG5qIpipABBEqSj61hVw6S6ByJngbERgIO0w6ugNpW5RWLUTojSihI+UQ2XQHhq7j9U1FUoLUFYZ0WmpJHDPdeRSWO8+LXoxYuyeTKYaHh6moqCCXy7F+/fpi5ty0adOKVtTJWvdalkU8HmdwcJCOjg7Wrl1La2trsdTWNE00Nww6adIkbrnllmKTy5GD+ckY1F8uTgmhm5hssbfwEesjrG9bT8MPG7j37feyYslJ2ud8jBRm+eHhYVpaWmhra6O/v59sNksgEMDv9+PxePB4PEyYMMHNH68iGAwWUzpP5OZUbmiqs7OzuP9XbW0NDU11KCEQGEgEQoFuK4Sw3PW5QCiF7prySoAUGrYtMFQOabaRTO7D4/cS8M1C0+qABGZ+K9nhTvxlU6B0IUJ50fKtJMMbEXoFobplCL0BYZlY+RYyqTZ8oSl4vbNQogRTSHRlO74BzfHCo7TnPfJumobQHC9+wUEnpSKZTDIwMEA0GqWvrw+Px0NzczOTJ09+QXz8WBlpmnd3d9PZ2UlbWxu7d+9mYGCgGPqzLIvGxkYmTZrEjBkzWLZsGRMmTCjO4KcTp4TQsyrLP8x/cJN5E4kNCeb+ai4/ff9POXPxmS9bfFK5nvEdO3bQ1tZGIpEoir6kpKQYx62qqioWhDQ1NVFTM7YuqEdCucUbhTV7IOjDWXlrzp9KohfKTYVwZnUkwk6hzBQYfpQeBGWgKwtpDRKPrkXm2yivOBvDOwslctjmDjLhzXhD9RhVF6JkAC2zg/TQOvBNI9hwLogKtNwwVnwteTuOUXEuhmcK4MPGRpN5FKCEhtA0BEZR6MrxuyE0d+0ulOsQdIplIpEIO3bsQNd1li1bdnK2vHYde3v37mXfvn3s3buX9vZ20uk0mUyGWCyGEIJZs2YxZ84czj77bObPn49vDN1xXsmcEkIfsof4ZuKbfE//Hrm/5/hY+mPc/rrbqamuOaGR/UQpzAwF029gYICenh727t3L0NAQoVCIkpISNE0rVorV1tYWvfkjU16PFeWGmzRNez60qJzwlVLSiXorHYSGQAI2QsbIpbuRKocnUIvhaQApkCpNPvUs2cjTBEPz8ZacCUYAO7ubzMATGL4QvporEJQjE8+Riz+HCiwi2HAJKC8q0YIV24oI1qAqLwWtHk1JsFMIewDTNND8teiGH+F6+FHO8sgxfV2haxSFXhhI29raSCaTLF68+CAz+VgoWGKDg4NFYbe1tdHX10c+nycejxOPx6mpqWHZsmXMmjWLmTNnMmnSpBfF2XcqckoIvdvq5iPRj/B3+Xfsn9jcs+Qe3nPle07Jk5/JZBgaGmJgYIC+vj7Wrl1LIBCgstLZ6bQQHisvL6eqqooFCxYcdCMdy3eybac5pFKOyHEFjVJIgeNsk8IJoykLRRbL6iYd34GOn1D5HDBqUQKUuYPs4GOovMBfsQQ9MAWZ7ybT91cMQ+GtugKhV2NF12KntiFDSwg2vAZlZrEGHyOfH8ZbsxTKL0RpJehWAjLdZJN70QLNeELzQHgRYsRa/XmjwzHlBU4R0QgfidPAsY/6+npKx7BnW+F5yg2JSSnp6Ohg3bp19PT0EA6HSSQSRa95LBZj0qRJXHPNNUybNo1JkyYdctvp051TQuj77H1cnbiatngb1b+p5kfn/ojrLrpu9GGnBIWbq7AGTKVS7Nu3j/vvv5/y8vJitp2Td+0ploTW1dUxf/58dF0f001WKEwRQoB0mnEoIRFKIhyVg645ySjSXQ2LLEobJhvfRS66hWAogFG2As3TiJJRcpGnyQ1vxF8yEW/5cpQ0yfQ8gKYSeCrOQ/NVkY9sRGXaoGw5/oazkfE2zMHHsH0N+BquQvfNQ2FCdgup8BYsrYHyhvNQ+kTA6TVn27Y7O7trdHfZASD05y2cwrkMh8NkMhmam5uP6twszN7ZbJY///nPDA0NkUwmSSQSZDIZEokE0WiUSCTC29/+di655BIqKiqKJb5jPf+nG6eE0HfJXZyVO4tsa5bmnzZz12vv4upLrh592CmJch1o+Xyebdu28cgjjwBQV1dXTG/V3Fx6n9tfbtKkSQd5dEfPYtLtxVb8vXSaX0tho5RASN1xdWl5lDTB9qCEB6XbCJFFmINkh1aRi2/BVzUJf/mZQA1Wah/Z8AMImSRQeRbC34jZ8zhYg2ihWWj+UvLx/WBGIXQG/opGMkNbEWYnonQFvtorgSAqvYdcfAO5XJKShuvRgvNAK3M+GwrpzraOaAuzu7Nm13TdyY4bQTabpbu7m5KSEurq6g4aCAp/FgbXtrY2nnrqKQYHB8nlcuRyOfL5PIlEgr6+PnK5HF/4whc444wz8Hq9xXqCVzunhNBbVAtL8kuQGyVzfjeH79zwHS49/9LRh52yFMzIwiOTyfDoo48SDoeLnnrDMA6Kj0+YMIGJEycSCASKM02BQwpdWUghsYUApaMr0FWaXHoATVho3lKUXgLoCDuDsDrJDP4DM/8cnuBU/OXnIJROfuiv2KldaN46jOBMZGwfuhzG8pShGR6kGXU2MfRNxeezySf2g1GKXnYZ3tIzsVNt2NENzvZNNSvQyy5BajWuzyCLtPJIqaN7Qmi63zHTHecCKA1N114gdNvtZ5fNZmloaCjmjdu2XWzcsXfvXjZv3lzscJNKpcjlcqTTaZRbHXfDDTewbNmy4rkrCHz0QPpq5GUVusIRxka5kfPUeWhPady892Y+d/3naKwbWznjqUhh9pFSMjAwwPr167EsC+lunlhItdXdjRAL6ZQjw0ojb05lS2d/s0IueTEVVmJnezCTBxDKwghWo/lqkAQRMotKbyUT+ROYHXj9k/EE52Jn9mKmWhAiB8qLIU00pbCFx33tLErY2ATwYiHsHKanDm/JMqT0YyZ2ISwbb+XZ6DWXoPQmx+tuDWOZA1j5PIa3Ho9/MkIvdzL2NMsJ7SvDndFHnKwRnvLe3l7KysqorKwkn8/T2dlZrBrLZp320NlstrgXXSgUYvLkyVx77bV4vd7TJixW2MvueOs7DsXLLnRTmdwTv4fbvLfhe9DHp3Of5mM3fIyA74XbIr3SGGl69vX1sXPnTuLxOLZtF5NhfD5f0YHX3NxcTBQZKXRpSydfXIATi5aOp10pBCnsTBu56H4UMTwBP7q/Gc1oRFhpzNiT5IYfQKgEuqcZTVhYuX50kULHRlO6m+euo4SF0vIoYSMRGNIJl9miDM2oxjLT2GYSPXAG3rqrEd5pTtKOOYCZ6idnKbyhJnyl00GrQ2mlzkSOsxmikK7QRy3DC+epIOjS0lI6OjrYsWNHcdaOx+NkMhkCgQDV1dXMmjWL888//6BzdTrM3ApFOB0mZ+VoKm06aWJ/WYUukWRVllsTt3KvuJeav9Vwh3YHN73hJvxe/+jDX9FIKcnlcgwNDTE8PEwikSjGdEOhUDEWX+NuVDj6uUhRzO4DJ7wmpEJoCqVS2LlO8qnNWNk9aAi83gl4vA0oewgz+U+s7E40JZ2yUyXRlEBzy0ydEUQ59a1CIp1CVTQ0kE6oTCCQSiE9leil5yACs1C2jZUZRNkmwqhCD81BK5mB8Faj8LoDiEDiZM8hNXRDP+xurdlslq6uLmKxGJ2dnUSjUeLxOKZpUltbS0NDAxMmTGDy5MnFPIbTaf0tlaQ338v389+nP9LPdV3XcfXZV+MxPCfcZeBlFbqNTVqleUvqLfwz/U+m/2U6X6z5ItdefS0+7+mdwJBKpYhEIiQSCbLZLKFQiPr6+kP2OpNSOZE1HKeck+4qQXkQQkcJGyWSqNwBcrFnycaexiOTBIxaNKMUpboxs/vQVNzNjTdQUkN3C1mcFy/UpzuOMxDObCwlAhuhFDYe8NaBfyLSFig7gWUrCJyBv/oS9OB0lFaJEh4nOca2HaG7tfIKgaEfvuTYtm36+vrYsWNHMQ9e0zTKy8tpbGykurr6BYPg6YSlLNbE1nBj4EZ6Bno493/P5S+f+gshX+gF98Sxcugz/hLh3LY2++39qLxCyzm9wk909HolEAwGmTBhAjNmzGD27NlFx9whL6gSCKEQwkYTOTSRAj2BFDHQUoCJwgOeifgqlhOsOBOlwExuQ8WeRSb3oFtZNNODsDxo0oOGhkK6g4RbyV7w6CtHTEpJ0GyEZoImUUJh2VGsdAt2fieZfAStfD7+hgvRS2eDUeZ6yHNIOwV6FPRhNJFEF1axxv1waG6+eSE6sXTpUpYvX878+fMPaemcbmhCY0ZgBn7Djwoq+ujDtEzHGjpBXlah45rvQ94hyIKIFUzJ05+CV9jr9RIKhfD7/Ue5kRVKmlh2hmw+RirVj5nbj53firI3o1m70RhEM7z4yuYSKF+E8JRiE0XIKAYWutKdwhcckx9hO8nx7nxe6DKjUNhuUo4UTrgMoaEbAk3LookECINQxXx8VUvRfBUgByG/C2FuReR3YKV3k4x1kElGyOdyTrwfJyx4JEpKSigpKSEUCjnpvyM62J7uaGjU+GrwCA+qVJEJZGjZ1TL6sOPilDh7UklIgWEZePWT22DglcLIcNBonLAdCE3H4/Hh8wXx+gyE2YcZf5Z0/19I9txHtuevmAOrkMleDG8VIjSJvCeA0n1ORZluIXQTpeWQ5JDY2EpiO4WtSCGRmoUSlruWFyjlQRJAKcPxCUgbJQ08xgQMfSIkB8gPriLd/0fSvX8g1/snzPBj2MldeDQwvJUY3mrQgqhiKeuhEW61YMhtMPlqRCAoSZcgbEHKl2L9xvWjDzkujnzmX2QUiogZwTac7X8qtArqap9PmDhWCnnpox+FbCrb7ZQ6Ou5deLxcFN57pNBHfh7h7jUGBkr5EKIEj6ceb9k8vBXL8YTmI/Bjp1qxI09j9v+dfPhxZLYNjwAhDGfmFrZrqqtClYlrFkq3O43jyQcbjTwaJqCQGthCIXHq33WlQ34A030vM/IY+fgOLMtGeafgKV1MsPIMfMFmdE8ZUjOcrjaFJcIoRp/70tJS1q8/OTf4iTDy3iiES223h8HIh2mamKZJPp8nn89jn2AL6EnaJIQusP02eT0/+p+Pi5fVGZdXeX7e93M+VvYxcs/lePP2N/ODt/2AysrKYxa7lJLh4eHiNki4F6qQ8qi5bZALZrLhbsN0sKCc1sWHm1lfLAo30OEq9WzbdnzgwvGOK0AIGxsTgYlQCUS2FTu+FTu5DfL7EXIQDcspFZU2QtigrKJTrPitC+vmQqWZ2+xRKIkSGpamuz54hQ5oQndy7JXAkhqICmxfE1poFp6SRWiB2aDXgvCjpMBCQwq3I4tU6MI44qYZSimi0SibNm3i4osvfsmvRUHYoyeFXC5XjOMXxG6a5kH3WkH41dXVTJs2rXiPHQsWFh9If4DfGr/F/1c//97773z+w59HHx2TPEZeVqHnVI7373o/v5v0O6zVFjfvvZm7b70bcYi00COh3B1QnnnmGXbs2PEC8eLOlsFgkJqaGioqKvD5nK2BCxeycEwh6UK4WyuVl5cf1Fq4cGzB1NbdrYwKn7nwfof7/If6vXTz5g9XKmnbNiiBphUGJieWroQFynYbPcZQVg8qtxsrsR5SO9HtYYRd6AZruzO3m45alPrzM/nzn00glOZ0lhUglGMBCFFo7CiQGEitHBGcjlZyBnpgNniqQasAFUApL0L3IKWGREcIwxmsNL2YAz+awrnN5XI899xznHPOOYf1WxSOPdTtW7imo4+R7oYQpmliWVax+MU0TTKZTFG4hZTmQpKTlJJUKsXg4CDRaJR8Pl+M71sjdqax3V4G06ZN42tf+9pxtaS2sPhA7gP8VvwW4x8Gt+y8hW996luvfKFfv+d6Hm16FPspm/d2vpcf3/rj0YcdlYLQH3/8cR5//HFs2y6mmhaEWPiz8HPh7xxGfMJtwVxdXV0sRRUjLADhzv4ej6e4I0ooFKK8vByf27u8cLxyRWS4HWdHZ28VZo7D3dS2XWj7KlHKBJVDCBNkFk1lkHYM2xpEWv1g9UC+DS3birAG0ZTp9p5y4ufO64CbfeP87A4excaOAMJA4nR41Ue0sJK6QAkDMNA8pahQA8qYgBT1IEoQegXCqEBq5ehGJUIFESKEpgdAMxCa4RSoHwHLsti2bRvTpk07qLdcATWiXr9gJqsRfdgLWXSFGvR8Pl8cTNPpdDE/vrBpZDabLYq+MEMz4rqMfN/Cn3LEMrEwwxdy7q+44go+/elPH9fe7BYWH0g5M7r+d52btt/Edz/33Ve+0F+/9/U80fQE9uM279v/Pu7+2N2jDxsTUkr6+/vZs2cP+byzrsnlcnR3dxMOhzFNk6GhIRKJxEEiLXh0Cyb7yAHC43aTKTwKxxZEXPi5cLzf7ycUChXTW0ceWxhYCrnvupv+WsiEO5KZZ9sKoWyUlcI2I1i5AWxzCGn2oqwhkHE0OYxmD6PJBBpJFGk0cmjCRFcKpNtY0nWyHUTxDnDErsCdzTVnTe4m1jgVdApNNxDKg0THNHxISlCqHKFKkXoFtqcCW6/C629G1+swfHXo3gqEEUJoTh++IyGlLPZRX7BgAdlslv7+fpLJ5EEiTqVSRbGNFF7W3bW1IOKC0Avm+MifC6IdLdyRx+i6Tk1NTTGOX/i3wgCuuzvVNDY2UldXx5IlS4qVeEf7rqOxsPjg0Af5Tclv0B/XuWXrLXz79m+/8oV+Tdc1PFnxJPbfbd7X+z7uvu34hF6gcOGU29igcFMUzLPCRS/Mtrlcjv7+fnp6ekgmk0Sj0WIds5QSwy03LeSojxR+Ib965J8+nw+v11t8jDTvC4IuDCKFFlQNDQ2UlJSM/ipFLFs56207hbIjSCuCsgtCj6CsBFgxlJlAWBmwEwgRQyOBIOcmvDgT9lgut3IqYwHhdKkTwmkZLTQ0DTTlrNht/Nh6LVKrROgV6FoFwihDeUrBU4nwT0BoVWh6GeghIDhmoff19bF3716CwSCxWIxYLFYscCmY3wUTfORjpGALM/fIR+F5BZPdsiwMw6CysrJovRWssoqKCpYsWYLf7ycQCByU51A4j5rr//F6vZSWlhI6wR7vFha3hm/l16W/RjwmeOv6t/KTz//kNBD6/mt4sv5J7H/YvK/1fdz9/05M6CMpmHSFR+F3IymMzqNHctt2IgG4ZvrIm9N0O4kODAwUd+3YsWMHiUQC3S1HLQi+kABSEH7hZ7/fj9/vp7KykunTpx/SRMWdbE0pQZk4ri3LcacJx4wXKgcyDTKJkklUPopKt0NyHSLfgiDvzMRKoRXN9KPhVJoJBQILdBtb+LA1A6GDJg2k0lGeaozQWRCYhfA1IIxy0IIgfCACSOl3PP7Oqh+FB6F5j+iMw70mg4OD7Ny5s7gmzmQyxRk66+7vPlL0uDH4yspKKioqCLnbVBVmYIBQKHTQ9tEj74WCVVYYmAszdcGXU7g2h7pGBUYed7xYWPx777/zs6qfIddKrnnwGn73X7975Qv9dX2v46mSp7AfsXlf54nP6C8FoweQkaZcwZGTy+UOmlVisRgHDhwgHA6juRlggUCAhoYGFi9efNDmi6OxpJuDrpzBRwgNIXSEwplxVRZUEiX7IbcH4lshvgWZb0UI0/G0K6fJ09iE7mznoivDOV7PYwsvtvCidCcLXikdoZehe6YiAtMR5XMQ/tlIrRZUAKEKveOUE7pToNDRdCf//XDfFVfovb29rFu3jvLycvL5PC0tLUgpi0ud8vJypkyZQmVlJfX19UVxjn6MRIxYbo3+t1MFC4tPDn+SuwN3Y6+yueKJK3jgqw+88oX+2r7Xsiq0CvmA5H3d7+NHn/rR6MNOWQ5nJRyKkccoNxSDe/NZlkUoFBpx9MFIW7n+K4kUjgidAFkeoeJg9aPSbZiJFvLJXehmH4ZMoJNGiYzTQVbojvdcKddOODIKiSZ1J96u5Z3gmvCA5jSjlMqHIoAmDCSlSNGAXjoPo2IuwpgAejVChEBzvPdK6UjleN0Pl+teQEpJV1cX69ev56qrrjpsNGIko4U7+u8FDvf7UwULi4/3fZyfVP4Ea63FZX+4jL99/28nLPQjn/GXAsfqAu8p8WmOicLMUFinHelRMA0L6/VCi6mCOX8knFwTJ0ym2yaanYJ8GDtzgHz8ObL9j5Lu/zu5+Hq3HLUCzTsRdKeK7HlZF2LoTgPHIz1AR2oCqdnO4IJEKBNkDmVLEH6Etw4RnAb+RoRHIdO7yPc9RX54A/nUAex8P9KMg8qjhERqzmc4FkY6S4/0GH2+R8/sp/IsPpq8x9n2ChM078kRxcl5lROgePLtU+HTvLSM9cZznOQCpERaKaxML7nUXvKJ7VipdpQFum8yntIVeMtfg1F5KXrFmYhgI2g+p9x0hJ/iaDgFNIV8eKfaTWAgpIZmC3QlMTQDw1+PUXYBnupr8Na8Fm/NBWil87AowTbjmJkO7FwP0kwgleUMMmP7ykXH2qsR27Ydqy0v8NiesRhgR+Vll5bIuQ0VnHTscQ6B1ByTXeGoXuDDMCrwlU4mULEQf+35+OquwFdzGZ7K5Qh/FaYVxrJ6QWTc9NaRCTEH84JZT+CkyioF0uNs46RE0eRXEiwrST7dhZ3uRuh+RHAeouxcjMpz8VUtwlc2FU+oEd1b5ezRJoW7rdTod38hhaXNK2kWPpk46cKOc88fOjl9GV52aRnK8coqQ6G8Y7gLTlMONdsq5WaiC4UUEqVpCE8peqABIzgd3TcfETgDEVqACExH81Ug7WGyiU1kUhsxrR4UPpQIoYT3kE6w0X93f+t0nFEGShju3uu2Y8YbAaSnAUsrx7SHMVNrMOPPoKwBx5z31KF7G9E8E9F80xGeiQitHF150W3p+AnGQC6Xo7S0dPSvXx24qtRMnYAIHOtq55C87EL3m34wgCqwhJNddKib/nSlMGuNDOcd9G+AJp20Vaf/hIbSDJTmVJXZyo8tFcqMYcdbyA8+hRnf4eycEliAKL0QPbAQoSqKl/toM6VQOjpOaExpYGsKWwNT6Jh6OVrpEjzVr0ErW4ql+zHTu7GG/4VM7wJ72E3LdTrMCOFxnHgYY16fK7eH3JQpU4rr7VcTSlMIBIbUT3iT0QIvu9A1r5N9hYCEnWB4eHj0IacdI0NzhUHtSOtRTYJmq2LbJ4lAKg0ldbAstHwfdmIdmfDTWOlBPIFpBGquwd/wdoyK88FTjdJ0nGZtmis4Udw1ZeTDLWlBSNAECE2i6Qa6HsLQSkAKbCuP4WsmUHkl/spr0HxzyGciZIafxUpuBnMQaZsIoZzkGyGwhVPcMhatF9bnjY2NiBFpxK+WCcA2nApDPa1T5i8b/c/HxcsudD3thA2EJcilcqQzTvve05WRCTqFRyEGf7jvLVxRPj+zCYSmoesWmpbEjO0nE92L4fUSajqXQPNb8VbdgPCciWXrpFJhcgryog5LVCNxvPzOnm2up72odQFomMpZJwqlIUQATW9G06eiSS8y3YnKxNBoRgtegq/mKnwVZ2Arm1S8FTPfi9BSWFYG27aQsmAVOF7/I6HcjMZCyjGjztmRBsTTAYUiThwlFcIrCHgDR23WMRZeVqELBJOtyU6M0A95I0824+xP/UpGyueTaPL5fHEnkXg8TmdnJ1u3bmPduvWsX7+ezZs309bWVszuOhRSA0tIbGyn0aK0UXYWKYfJploxpYm//Gx8NW9ElF4B+hyECCGtPnLx58BOgGcqovIi9LKFCL0EJRSm5sPSvY4AXdE7e6H7sI0ypFEFhJAihAwuQFS+BkLzsfGST3Yg850IbJTWhFZ6HsG61+GpWETOlpj5MDpOnr3ARmC6zSdHf7sXksk4mW+xWIx4IsHevXtZs2YNa9eu5cCBVgYHBwmHh4hEIsXEpJG56690eoI9Tk1Bp4ZHOzm7Cet33nnnnaN/+VIhhdNv9D7/fdgJm5rWWs6pPJeJEyagH6aS61RHSkksFmN4OEoymaSnp5ddu3fR3t5Oe0cH4XCYdMrJvS/k39u2kzBzuO2CnUIUx3TXlJNrLpQCO4dSGt5gI0ZgCsJXB0bISTfN95ALryaf2ofXPwFf5Vl4SiZBrg2VbcXGgwjMdjzyMoGGH12vQuLFxgBPI4Z/ItLWkCqHbTShl5+BHpgMwiBrD6H0GB5/E2jVoJWj61UYnkp0LYQmgujC2VBCCem2rXI2jDzSDKWUore3l/6BASorK9myZQutBw4QiQwzMDDI/v372bZ9O9u3bWfXrt1omkYmkyEajWJZVrE09JW6rreVzQ+zP2TQHsT/TIALvReyYumKE/4+L7yrXmLmVc1DQ4cSyJAllU6NPuSUQ7mprpbbfCCVStHa1sauXbto2bWLdevXs3r1alavXsOOHTsYHBhkaMiZgYbCzgaNvb29DA8PU1HhbMYohDjsrO4I3Kkic2QiEBjoWgm+QDO6txn0Sqd8VOVQ1gD56HbyqX78oTn4qi9GLzkD8CKtKJZUCN90vBUrUHqVsyurXgv+mdh6PWgBhFGHKFuKCC3CJoQlY0iRh+AcjOqL8ZTNIZtPk0vvBzXk1LxLH0KVYejVaHo5SvkK7SoQOIPUkcJrBSdc/8AAlRUV1NXVUVlZCQgSyYRTdpp1CpOy2SzRaJTHHn+C++//E/fddz8PPvh3nl69hnXr1rNr1y63JNUpZnHM/sMvj04FFIqUlcL22iDBGHZ29zkZvKwpsBYWMRljZmQmiVySuX+dx5eav8RVl6/E627Lc6phWRbpdLq45zYIstksPb29ZDIZwO00YlqY7ho8nzedjqoKpkyZTHPzRHTdoLy8nLlz5yCEIJfLYds2wWDwBaO3kgpR6GSCW3EqQBMSgdPtRWgKQRalhskn9pBL7MLj8eEPLUJ4G0BlsNMbyIfvAzuLr/YKtOAcMr2/R2Ra0EML0Utmk090oOXbwDcXb/3lSCtHZugf2DKGr/IcPGVXIbRypNVBNrEDOxvGXzYXw78AKHXnDun0uMPvRN41Z0YXblur0d+vgFPMEmbzli2ce84KQqEQpmly4MABBgfDxdTY1tZW8qaJbdtOVELXQSlst9wUoKqyipkzZxTLf2tra5k+fTrl5WVHLAl+OZFKsje9j9d7r6E10krj1ybyk+v+h8suuvSoacNH4+UVurJIyiQL+hcwIAaY/I+p3Fl9Jzdcdf3L2te9sNaT7qYLqXSaofAQ/f195PNOb7BwOOzUvQtH6NmsU/boPPJ4PV5CJSHOPuusYuMKTXNuuOrq6qJ5WfjTtiWWZRZTZA/+QG6OutveXbqxdYREl5rT2VUoUGmsXC/ZdCser4E3OAElap1iEtlGLvIYVnwHvpJZGJUXIzSDbPfP0cwO9IqL0MrmYMX3oOKbUZ4Z+BqvQhnl2LH1ZOPr0Xz1+CqvR3ibna2b7EFktgfTAk9wAoZeh1JBpHL1rhwvu7OzjHIdis62yYcin8+zf/9+2traufDCCwgGgzDqegwNDdE/MIBt2SglsaWko6OTbdu2kUwmUUqh64XKtOdv7ZKSEmprawn4/Xi9XqZOm0pzczMBv5/y8vIXpM++HJjK5JHhR/hQ6Yfoy/Qx7TMzeeLOf1JXXffKFrqtbNJ2mjc+cQNr+tbQsKmRzy35HG9/81tf9Bl95Ncu/KzcjKxIZJi2tlZ6+/pcz7hNLpslnc4gpU3WbSNUqI8WQlBZWUl5eTkLFy6gob4Br9eDz+enrq622HHmaDgWAfj9/oOOV0q5fRWdUhaFcvY0Q6IphSaFI3SZxzZjKJFE84aAcpTyY4kMwtpEfuBhNBXCX3EuWnAOqDDZ7p9hEEOvuQaC05HJ3Zjhp5GeOgINV6OMyYh8N/nYKsxcFH/Fxeih2aD5ne69VgqpMiAMdK0S8CNxwnLOWS0sNZyqN2d/9OJXO4hoNMrWbduYOGECkyZNKlakHQkpJfF4nPDQEGY+T29fH88+s5ahSIS+/n78Ph9+v3P+lRvZEEIUa8cNw0MwEKC5eSILFixgwoQmfD6/a308/96Fn4/2eU6ErMryncR3+Hbg2yT2JZnzjXn86wdPUhIoOeH3fVmFrlDYymZH205+9ttfMH/aPN648g1UVFQc0il1MihcbDliI8Tevj76evvo6Ox02hNZjtltmibKbVOVSqVIJlNkMhlyuRxer5c5c2ZzzeteR3V1lVNYoev4vF50w3BMymMsiUyn00XzfaQzUuFM4yM7PSl34ySEM9sJcPZNV076qhCuux6dvJYgn16DjDxLqGQpRtkylF6KkF1ken+Dx2OjV78J5ZmIyLSSGXgSPDqB2tegjLloMoOd3U4uthsj1Ig3NA+l1WMrP0pJdE0ipELhQQoBmu12fBWAjiY1t+msPOyMLqWkvaOD9rZ2zjhjERUVFWM+b4UZvzBQZ90GjqZp0dHRyeOPP85gOMzAwAC6oRetRaVU8RoZhuH0CfD5mDptKlMmTyYUCjFjxgxKSx2LrFA8M9bPdaxkVIZPRz7NL0p+Qa4lzxt/cwM//tKPCPgOs7HHMfCyCr2Ac1Ecs9VzmE6ox0Lhohd+ft70U5hmnq7ubrq7u9m3b39RzCNvlnQ6TSKRIJVy2hXl83mampqYPXsWkydPZtHCBZSWlhbN7JN18QuDSqFJRYHCmhzl7qJaFLyNLQSWW4KqSSfujRvS0jSFFBZSRkhFt6KZ/YSqlqP5pjr95+xOUoMP4Av4McqvRVGDsIfIDa0Fuxtf7Qps70I0pSPsYWcnVTuCEZqPMqYghR9NL3wuDamEm1XvDEDOORFuio4zUjlCP3gQL5zzlpZdVFdX0zypGeMkRV0KTtPC0mjTps3sbNnFxo0bGRoaoqS0FL/PV1zbFwbmwkPXdcrLy5k1aybz589jxvTpB834Qgg0XUcr/HwCE1RapfmE+gS/sX6Ddb/kG+ob3Hz9Tfi8J77XwSkh9ILAjmX2OxK5XI602zYqk86w/8B+BgYGCIeHsNyunSOTVtKZDOl0Gk1oSLeJoMdjcNFFFzFj+vSiw4xDmHAn6zMz4oYXQiMQeN58Vwps4QhI4Ihdk4W1uobtloTpSjqNKMBpUqErpMojzF7MVD+eQAjd1wyqHLBRsotUZBWB0ip0//lAGagMMr0LM7kZX/VC8p5FaPjRZA5hDWCnu9F8dShfE0oEMYTuWBGuwFWxXZVEaI7vYES+nTObjzpftm0zMDhIZ2cnkyZNoq629oQEM5LRg/7I35mmyabNm3nuuQ1s3rIFTWj4fL5i9xqhaXjc1l+Fa2EYBlWVlZS4A31jYwPLli4lGAo6vy8pHf31xkyKFLdmP8Sf8vfDbzS+V/Zd3vmmd+DxHL391tE4JYR+slBuD7idLbtoaWlhcHAQ6SauFBxltu20/I0n4qSSKSZOnICmaVRUVrJ86VKmTp1KVZXTamhkrfOJnugjUbjxpJQkEkmklJSVlRa9w8oGpTvNminkskmFUgIbze3vBpqS6Dg587ZwurYKmUezBlFWDj1QgxJBsL0IZSFVN5nELgKltWjGLBABlJIIexAzvhFPySQszyyE5kdTTicbacWREoS3FBs/HuUF4SwlCkNRodLN0ap0xa47X8JR/EHfPZPJ0tHRQSqVYsqUycWNJl+K8267bcMc30yEvr5+tmzZwu49exBCI5vL0dfXiyaebwVeoPAZlVJ4PB7OP/88rrpyJZWVlcc1UCVI8E75Th4dehTP1/w88u6HWLZw6UnJKTmthC6lpKu7m8cff4LOzk53ZHYa7yeSSQxdZ8qUyQSDQSzLQtN03vymN1JXV0cwFHqBj+jFvMlGYlkW0WiMbNZJ/NA0jfr6eioqKpyLLB3tqGIDCOmY71K5lWU6CqcyTHPNZyk0lAJD5RFknR1NtUBxzaxhoeQA+cwgnmAlmlbrxOGFQKgsVnI/wihF8zYiNR1dODe0FBIsEzQdW+ho0kArCF0A6M7yAXfiFs56XRTi6aNELqVkYGCAAwdasW2bmpoaPB4PtrRpbGg4bC+9k8mhJKCUIpFIsGPnTh5//AkQAq/HQyaTYffuPSSTSbwFRx+CWCxGPp/ns5/5NCtWnH1cS9D91n7ex/t4pvUZfP8ZpOuedkp8h28aeiycVkJXShGLxfj1b37LuvXricXi6LrOdde+HiEE5WVlLFiwoDhjGx4PnpO4xj4WCjd5PB6nr6+PaDRGLpcj51bvNdTXMX36dEpKSpBKOOvbwtrXzZIrOOakEI7ZjOOQc37SnFlVWW5mmoZUumNAK4FAolQaJXPoug8l/CjctSkWKh8DdDCC7k4rhtsWXqApZwsn5Si5UBPn/N1tEe38ysmQkUh3t3WnT3xhRJXu7jq7du0mPDRU/J1lWeRzOWpqa6msqGDRooXFjrovJYUZ31nj25iWxVB4iC1btxKPx4nH4/zjoYcx3X7xCxcu4D8+/jGmT5t2XLPw3dm7+QpfYXBHmLLPVtDxt1b8xsmpRz+thF5g+/btdHR2YZomwUCAiy668EUP1x0LyvUO79m7l+jwMIlEEtMySafS2NJmzuw5NDY2gBu2w+NFF6q4/hYIx8OO2ySiaDg7D4Hzg3BneedfnXbNBzWHVM4sXAh+FXBsAtNZbwsNJXQnt005QhXK+Z8zoDjPEMJtU+WW1lJoToNTwYZwM+MKn1kpMpkMO3a2EA6HmT5tKvF4grb29qLXPJ/PI6Vi+vRpzJ0zh4aGBjTt5PlETgSlFMPDw6xevYa869CdO2c2s2fPfmEexBj5WP5j/JAfIf6hccGfL+RvP3kAn3Fy8klOS6Fbto1067uFGzo5VW4Oy7Lo7u6hq6uLYTc/O5FIkE6lKa8o58zFZzB58mR8Pp+TmBMZRm+opVKAF+UkTijNWYBTUF1hMxan4sx5M3d3Fucv7p/u3w5zyZ8/RxJb2W6CtOMz15VjCWg4L+eUn7pjjXpefM5e64XByBkKnGPdrik4M75lWbS3d7B3714WL15MbW0N+XyegYFBNmzYQDyRwHS3SFIK/D4fU6ZO5szFi4udYF/ua1qwPgrnUzeM44oWFMLMH1Ef4X/T/4v/VwG+oN/Jv9/8EbzGyZmgTkuhn0oUTq9jpidoaWmhf2AAy7JIJVNEY1GUUixauJDly5cVY+jCTfAYjg6Ts2xqq6rQddf0HTH7qoP2TBshaVWcUl8g9DFTHDQKgj7or86rFmbwEd/1UPp7/nM5x/X29rJl6zbOWLSIhganXTOuBz6TydDe3s4TT61Cc5tyWG6JakVFBZdccjETJ07EGNHi+ZWMjU04H+aj4qP8kT9SekcFd6/4Ede/7jo8xrGv9Q/FuNBfZKS7Qd/OnS3sP3AA6W70Fx2OkkwlWbpkKStXXo42qntpAdu2CQ+F8fv8lJWVHnaDwlcKtm0TiUTYsmUrfr+fc85Z8YLZ2ZnFnfDXQw8/zIEDbShVmD3BskyWLl3CBeefj8/nO2UstuMlp3L8zPo5X1R3MrRniIr/qmb797ZQVV513MuA0YwL/UVAueGybDZHJDLEli3bGBgcIJfLkYgnyGQz1NXWctnllzHZTfU8nKNJKUU+nycSiVBaWnpcG/cdidEWwYuJlJLhaJSWlhbSqTQXX3zREWPEhdBoX38/Tz+9mu6eHvI5Z/9x599tXvOaS5k3bx4loVAxeelFRSmUZSF7epyipepqgqWlTmHNcZJWab6b+y5fs79GfqvJrG/N4emfPkVJqOS4nHqH4mWtRz9dyWSzhMNhdu5sYe3a9YTDYSLDEcJDQ/i8XpYtW8rVr72a+rq6I4qcET4GXddJJpPF2P7hxHGsnKzXORq2bZNMpujs6iQajXH+eecetQZAuHHqsrIypk6dgs/nL+6Pp9xMx7a2Nvr6+tA1Hb/f94I6gZOOlNh795K+7Tb2/uY3rBc6MxefgX4CM29SJnlSe5JnrbWIxzQ+POdDXLD4/JNqqYwL/SRQMIps22ZgYJCWXS1s2ryF1tZWotEoff39SKk45+yzWbnyCubNm4t/1J5eR0K62XqRyDDJZBIAj+fkhgVfrJm9YIJHozF6e3sZCg9RXl5GXV0dmq47XvwjvK9wlzKGYdDU2EhdXS1KKgxDJxIZRilJJBJh7779xOJxUFBS4szuheefVPJ5cj/4Afqf/8zWSJQn/H5e8/prTsjEPmAf4Hf279kb3ov2oMH7l72XudPmntTrO266nwSUm1yxf/8BWtva6O3tJRqNMjgYJpNJc/HFFzN9+jSWLV16xNn7UBRi7T09vYSHwuRyeUpCISZMmEBDQ/0RTd+XG2f5kqW3t4+Ojg4y2axTBKMb1NXW4vV5mTd37jF/fsuy6OnpYdv2HbTsamGgf6DoOayoqGDu3DmsvOLyYreZk4ZSkEqRv+EGUqtX89+hMuz3v4/bP/MpAv7ji3crpfiD+Qc+oD5AcksK/5dDPP6VR1m2YOkxn5cjMS70E0BKiWXbDPQP8NyGDfT39zM8PMxQJMJQOMz1119PdVUVCxcuxO93nEZjpbDOD4fDtLa2FRM0mpqaaJ7U7GwnHI1RV1d72BZULxeFzx5PJOho72AoEqG+vo7SkhL6+vrp7et1YuS2ZMmSJUydOuWY1qKO2e5YOZ1dXezc2cLq1WsAp3mDruvMnT2HsvJSrr7qquLa/YTPkVJYf/sb6j/+g129vdw1aQqf+OPvmTZz5jFd2wIKRcpO8UPzR3xG+zTef/h5/dZr+db7/z8m1E8YffgJMW66HyOFcVFKSSwW5x8P/YM9e/bQ2dlFd3cP7e3tNDY0csMN13POinOYNm3qcWV1KaXo7+9n1+7dRKPO/uAlJSEWLVxIfX09fnfftvb2dgB8Puc9hBuWO5mzwbGgXOfh4GCYXbt3MTAwyKKFC5k4YQJVVVX4fF76+53tpk3TZCgSoaKivLg//Fg+t3DX7oZhUF1VxYSmJhobGhgKDzE0FEEpxeCg065r9+49JJIJJjQ1FQeTsbzHC1AKpETddRfZZ57lEU1n+DWv4a03vgfjONJdASSSAXuAP+b+yGZzM8G/lvD+me9j2cKlJ73xyrHdfeM44bJ0mmfXruW++++no6OTAwfa2L17N11dXVx44QW895abWLZ0KX7/8V0sKSXxRIItW7cRi8YYGgoTi0Wpra0t1mkLTSMUCjJ9+jSyuSwHDrSSSCSQL1M7ZOUmA0WjUXbt2s1zzz1HKpXmkosvoq6utpj7XVlZyZKlS9DdfctjsRhrnnmW3t7e4/7soVCIhQsXcPPNN3LxRRciXH9JLpenvb2DRx79Jz/+yT3s2bOnWJZ8zEiJSqehp4dh02StP8Br3/ymQycNjBGJpMPo4OHAw4geDaPfYGLDBLyek5MkM5Jx030MFExF27Zpa2vnmWefJRwOO6ZjZxeR4QiLzziDm258N+Xl5a6X/DhMOdfkjcVirF23nmQySTweJ5VKsXz5MpYvW/YCB03hsw0PDzM0FKGqqpKSkhI8Hk/x2OOawY5C4bYpvH8ulyMSGaajo4PBcJiLLrqQ0mILrYPnE+n2fnv88ScxLaf3W11dHRdccD7VbqPM4/nMhWuUyWT47x/+iH7XCaqURNN0AgE/K1dewdIlS/D7/cWIx5jeK5fD+tnPsL7+ddYMhvlu8yTuXfcsgWDwuENrGZXh79bfuTF3I5lnc1zx9BX8f2/6L+bMnnNcS4EjMW66HwUpJZlMht6+PtY88yxr165laGiI7p4e9h9oxWMYvPaqq7jpxvcQ8HuwrRRSgaYde2hEKUU8Hue55zYwNDTE8PAwsWiMc89ZwbKlTrni6NcsiCIQCJDJZujp7iEWi5FIJGBUl5vRzz1eCrN3LufE97u7e+gfGGBwcJBYPM6Ks8+myi3VHC3yAiUlpWQyGYYiEceEHxoiFotRU1193D6Hgknv9Xo5Z8UK5s+bR3tnJ9lMlnw+T9402dnSwubNWzAMg9LSEgKBsXVvkV1d8LOfEdm0id94vCz7939j2XnnOd2ExvD8QxEnzq9yv2J96jnEA4IPz/owV5x/BZ4TeM3DMS70Q1CYWU3TpL9/gE2bN/Ovfz1NR0cH4fAQPb19oBRz5s7hs5/5FAsWLMAwNKzkZoa7fkNHRxcl5ZPwevxjzmRTrud+27btdHf3EI1GGR6OsmDBfC684IJDinwkpmkyODBIOBxmYHAQq9BUI50hnU4VK7CkLHR+GTvPC9tp6BGLxejr66etrY1weIhUOo207WIxSklJSbEDz6HeqzDoNDY2It0yVdMyGY4Mk05nqK+rw+96sQ/1/CNReG1N0ygtLWXRwoV4vE55aSaTxTItMpkM23fsoKu7h1BJCEPXizH9F7yfuza377sP6557eMayeXbGDD75zW/gD4UO/ZwxIJG0y3a+YHyBZGeCkqfKuHbWNZw5d/FxDXJHY1zoh0ApRV9/P3v37WPdunXs3rOHgYEBWtvaUVKycOECbnjj9Vz7+msIBALomkY2HSE78HMq5U/p6thG2ppCde0MtDGY8MptIbVl6zb27d9PZChCb18vZ521nJUrryjmdB8OKSXh8BBdXZ3EYjGEECxduoSJE5vRNEEsFicajREZjhCNRrEtR/CmaZHNOj3wTNPpbpvP58nlcmQyTmfbfN4pwQwPDdHR2UlXZxfRaIxkMomm6UyePImZM2ZQU1NDPJEgGovR19+PZVtH7BRTEGNVdRVmPk84PEQul6e/vx/TtJg4ccIJhQ4Lr+/z+Zg5YwbTp08D4dSNJ5NJFBAZjrBp02bSqRSlpaWUlJS80GSWErq74be/JbZuPX/1B1jysdtYdPbZeI+S8HM4CkUsf0/9nXv5P7QtBue3X8BbL34LTQ1Now8/KYwL3eX5tW6UPXv2sGHDRmd27emhp6eHZDLF4jMWsXLlFVxx+eVOUcUIE8u2soR712Gnt9JQk6O7uwstuJiS0hrnmMPcEAeJfN8+hoaG6OvrY9HChaxceQW+MXjs0+k0+/bvY2goQiQSYerUqTRPasbjMQgEAlRWVlBSUorX40XTBKlUkkhkmEhkiO7uHuLxBNlcjoH+Afr6+ukfGCAyHCGTyRKLRhkcHKS3t5d8Lk9tXS0TmiYwYUITU6ZMpqzM6ZNuGAbR4WjRd9HW1sbsWbOOKFbhJsJUVVUilSQyFCGXz9PT00N0OMr06dOKgj1eCjNuMBhkypTJ1NfXU1ZWRmdnB8p12vUPDNDV1c3gwCCBQIDQyJk6n0c99RTZH/yA59IZWs5cwms//CFq652En+NBIsmS5Yv2FzmQPEDJ46W8teYtvO7yq09aEctoXvVCLziVcvk8e/fsZd26dexsaaGrq4uu7m4OtLYibcmNN76bK1dewaxZs4pryMINLITA4w1iU8JweC+lvh5K/WF27+ulecZVCE0/pAlfMIl3trSwY8dOhoaG6OjoZP78eVx91ZWUlZWj6y983kiklPT3D3Bg/wESyQQDg4MsWDCf+rq64md0ZjYvpaUllJeXk06nGRgYZCgSQQiYMnky5WXl+AN+QsEQpaWllJeXU1Hh9Dvv6ekhl8vR0NDAnDmzKS8vO2jro8J7WJZJeGjI7XOfBQQTJkx4XjSHQAiB1+ulurrGMeMHB8nlcnR3d9PT08PMWbPwHmGwGCuFtXtDQwNTp0yhobGBUDDErl27ARgejjpdaNvbyeayTGpuRtc0RE8P/OhHRLZs4e9CY+5HPsKySy857tkcV+h75B6+ylfJteaZtGEyb5h1HfNmzzumfIJj4VUt9ILQhoeH+cdDD9Gyq4Wenl66u3s4cKCVofAQd3zus1x+xWUsWrjw4JH+EHj8lSQyIexsC1UlUXTVy5Yd3UyafrHbRul50Sq3e8mOHTvZvHmL4+Dr7mbu3Lm89uqrqK2tdcpSD/NeuK+Ry+XYsWMH0WiUaDRKU2MjC+bPJxQKjT4c3IGhkLmXSCapqa5h5syZhEJBSktKKCsrpby8jNLSMkLurjHtHe3kcjlKS0toaGg47M3o8/kcJ2I0ihCCtrY2pk+bVjxvh0fg9XqoqalB1zT6+vqdqr3wEO3tTvvnI533Y0EIgcfjoaGxkSmTJzFhwgR27dmNZVoAxGJOFmI8FmX21KnITZvIf+c7bLQsei++hItvvomGiRNP6PNYWPwk/ROelE/CU4KL2i7mI+/5EKHg0c7T8XPk6eI0xRGZUy56/5/+xP/97ve0trbR3d3Drl272blzJ7Nnz+Ku73+XRYsWMXvWLHxjyE03DD+TZlxNPnQreVlDU02GKeV/45E/34GUeZR6vqW0bUt27tzJunXrGI5EaGtvZ/r06Vz/huuor68fU0GDUopweIjBwUFS6TSR4WFqamqKySeHwsniTJPP50mnU9i2hXBnZM3tXe48nIEpl8s720uZJi0tu+jq6hr9kkU8Hg9z5swhFAodFI4sWE2HQ7itk0OhEGedtZzm5olulxpFV1cXf/nLXw9q8HCiCCHwGAYVFRWcc84K7vz8HVx15Up32yxFKpFg6+o1bP7if5L/8Y8Jh0L8s6wM/wUXMGHq1KPeB0dCIsmrPPcE7sFOSso3VbBg6nyqq5zde14sXrxXPkUprMX37NnN//zkHtra2gmHw+zdu4/t23cQDAT4+n99jc999jM0NzePSXAFhBAYHj+TZ99AWL8dRZCJtUnm1t7Pg3/8NPl8pij27du38fTTq4nH47S1tVNXW8v1b3iDM6sdZsYcjVKK9o4O0pkMQ+EwM2fO4MwlZx6lMaFjxZimSSadOWIFmRBOxl3Bg59MJsnmcqMPKyLcHVAMXce2bXxeL0+vXj1mkQrXjL/+DdfR0NAAwllDb9u+nadXrzn+ZJfDUDDnq6urufba1/Pxj3+MqVOnEPJ6mJ3Ps2Q4gqe0lKF58wisOJdFS5bgDwRGv8yYUSjy5PkqXyWqoug7dRYGFvLet988+tCTzqtO6AA9Pb2sWvUvhoeH6e3tZc+ePeRyWa59/TV85StfZsGC+Xi9Xjeh4tAiODRuvFrzMnnW9ezovYRoQqehOsOs2sfZtu7n5LNOmeWWLVtJJpO0tbVh2RbLli6lrs7xUh9OeCORblZZa+sBMm466YQJEyhz2ywdjpGe9WQyeVSzWtd1Z4ljO7vXFFp0HQpHqB6WL1+O1+t1Q3mwffuOYg350RBC4PF4efe730lDfT1CCJLJJKtWrWLduvVks9mTKnbhbtLg8XiYOWMGH//YbXzuM5/hrMoKVDxOn2WxtqSECeedw6LFZ4x5ED4cw/Yw/8o/jZkyCbQEONt3NuVlFaMPO+kc/o44TVFKkUwm6OrqYuvWrfR0d7Ns2VK+eOcXePe730Vlpdti+QQQQkNoHqYs/CxtQ8tJZ2BSfYKawHq6O55h86a1hMMDtLe3o+s6N9zwRq68cuULQzuHoWCVbNmyhVw2R2TYKRo5Y5Gzlj0SsViMVCpJOpMmnUkzsbn5iM/RdZ3KygqUVGQzzjbER6O6uorGhvqi+f7Ms88QjUZHH3ZYdF0jEAhwyy0309TYgCYEsWiUx594nJaWFswxWgjHiq7reD0eyvw+puZNzK1b2dTVzTPxOLbfP+bkmsOhUNyXu489Yjd2m6T0sVIuvegSPGMIwZ4orzqhC3cL3WnTprJs6VLe8c538MEPfIApU5wKqrHOqEdHo7K6icln/Ccd0bOwtanU11Wi5TaRGt5MJNzJ5CnNvOtd7+CC888/5vcdHBykra2NZMpJk62qqhpTp9uBgQHi8YSzn1wyhf8IpjsjZjwpnY0OMpn0EU3xwvFnnXWWY1koRSIeZ9euXYd9zqEQQuDz+bj88suZMHECuq4zODDIY489zvZt28i7bbFPJgIQUiIffxxx3x9p6e3lsb5eFq5YwYUXXXRCQrexGZADPOp/lHgyjuchD8ualnH+uecd0QI7Wbz473CKIYSgpqaGm266ic985tNc+/rXH9SQ8WQhhEDTPVTXzqRkwsdpj16ELWporMlyxvQ2JtW08c63v5kzzzwT7zHuraWUoqWlhWw2x0B/P4aus9RNkT0aqVSKTCZNKpkkk0mP6X2lW44L0NHRQTweP6LINLcrzBlnLEIqRTaXo6Oj45jMbuHG2KdNm8bll13GpEmO5dHe3sZf/vIXduzYgXR7y500pIStW+Guu4iHw/xZ1ym78kre8/73M3v27DGdq8NhYfGofJQd1g6sbouyTaX8+9v/HV07coehk8WL/w6vcoTQCZVPZWdbNVt3W8SGe6gv2cmVZ+8h2vFDbDOFtE3G2qlVugUhXV1dJJNJIpEINbW1NDU1HfVGdLLhTCzLIpPJUlZWNvqQF6BpGsFgEGnbKKXYv39/sZXTkRBCcMYZZ1BaWooA+vr62Ldv35jX6gU8Hg8zZszg0ksvZcqUyXg8HsLhMPf/6U8nVPF2KFQqhfzVr4hv385TQtA9Zw7v+eAHqaqqGn3oMZNRGZ4Vz9Jn9aE9pXPd9OtYdubSE973fKy8NO/yKkVKSTaX4+nVz9DZnWDVM4M88fR+Bvp7aaiKU6Xdz7anP8KeXWtQ0nI2VDgKtm2za9cuotEoAwP95HI5Xnv11WMy/QtrZstyUl+XLFky+pAXoOs6VVVV2K7Q4/H4mGZm4RbazJo5EyEEw8PD7Nixo1hsM1YKJvyMGTM477zzivuaDUci/M///A/pdPrExa4U2Dbqb3/DevhhtqbT/Njj4X1f/RpTpk93N4s88rk9HM72GZIHrAf4q/1XzM0mxkM6733Le/F5j7xsOpmMC/1FQrqlm7/85S/Zt28/vX2DmKqGhed9md789UTiQapK00yrfops13+ye/sjSHl0R9eWLVvYv38/8Xic/v5+li5dSnNz8+jDXkBBmLa74WQ2m6W6uvqoN5pwE0wKz1cjdic9EgXTe+7cuUUn4969e+np6Rl96Jjwer0sXryYyy+/nPJyJ2NvaGiIr3/962456gmY8aYJDz+M/N73CHd28qhhsOiGGzjzrOUnVJ2GGzePyig71A76In3oq3Sun3s9s6bPGtPgfLIYF/qLgJSSfD7Pr3/9ayKRCENDQ7S3d1Df0MT0mYtZeuEXaYm8n72dJfgMk7nNuwmlPkfHrp9jW3GUNJ3kjRHmvHI97dFolFQqxeDgIPF4nPe+971HzCcfSSaTKaanZrNZ5syZM/qQFyDcRJZ6N9Ql3A42Y0G4OeaFZUU4HC7mwh/8GgqQKGliWxmkbbnf/3k0t0Bl6dKlXHnllcXqtsHBQX7wgx/Q1dV1zMuCwkwuIxHsVasY2LWLe6VkXXMzt3/pSxhuktSJYGLyd+3v/Nj+MXKfJLQrxMdu+hh+74vcrXYUJ/Ytxjkkqf+/vTMPj6q8+/7nnFmzTDJZCSSyhCWALBIEBRQEpaiAFLWIFvVVRNsH92pbrfVp6+PCU7W+faW2vWxFaxW1ti64sqqgIGERkAghZF9mErJMZp9z7vv9Y2ZSTBETJijI+cyV64IrM3NmTs73/O77t/p8bNiwobPGuqKiggkTJrBo0SKsVhuqycbU791Chf9WtuwdwKE26ONsJD30EDW77qGtaTdaJPAlMUgpaWxsxO124/V6aWpqYubMmd12IgohqKyspL6+nkAgWrGWnJzc9WlHxGq1knSMiSKpqamcffbZWK1WbDYb77zzDpWVlV9ebkuJ1P0E2nfyxc6/UVWx8wg3gygWi4WzzjqL6dOnY7FYMJlMuN1uVqxYQU1NTc+W8UIg29uRzz5L6Mkn2aFp7MzN5eb77sOZkdEt5+bRkEhc0sWH8kNCLSGUjQp3XXAXgwsGY/4GQmqHYwi9FxFC4PV62bJlC3v27KG1tZXKykomT57MrbfeGiuGiRa4qKqVC+feyIBxj1PVei71hzKwWQTpvE5z2c9prX0Zv6caKcIgo3vrmpoa6urqaG5uRgjB1KlTu738k7F6d5/PRygUIiN2IX/da7ta8e4u3eOoqkpubi5Dhw5FVVUCgQCNjQ1omgYIEEFE6CCRlueQrrsQTQ/y0nP/TYen7T+sOoeF784//3zGjRuHzWbDYrFQUVHB66+/TkNDQ/cse6w1lHzpJfy//S1bNY33cnKYfuedTPve9xIqWiG2ZPdLP2vDa3k+9DzKPoXBpYMZ23csyUnRGoJvEkPovYjf72f37t18/vnnuFwuSktLKSwsZOnSpf8xWEBVVcxmK4OGns2ISY/SLBZT7h6O1y8ocH6Gtf1+fHWP43GtJhTqiM1Ob+0U68yZMzvF0x3ie/NoLDzAhAkTup3eG/2s5k4BxR1z3UFVVTIyMhgxYgQOhwO7zcq2rZsIBgMgdWRwB3rzMnT3QzTW7+Wz0gA19e1fadGJid1qtbJgwYLOeL3NZqO0tJQ1a9bg8Xi6vuTLyGgzCe2DD9AfeIAKr5e1DgcDFixg1mWXkZae3q3zcjR0dPaG9vJX/a+Em8OkbUpj8VmLmVg8sdtbrd6ke1eJwVGJW/Jdu3axbds26urqKC8vZ8yYMVx33XVHySdXUBSVNGceI8YvJuW0X+COXMmBuj7ouiBDfQ2t6WG8Dc/jqvmA1uYDBPztTJgwnrlz53xNTvuXiee367FOMLmxMtbuYLPZcDgcCCEQQrBp0yb8fn/Xp30liqLQv/9pjB0zkiED7QzIrUe0PY9ofhjN/TDNte+wcVuEF99OZlf1FKZMX0yqI/2Ipb1xlJg3ftasWZx99tmYYy2dS0pK2Lhx41d746UETUN88gn6I4/Q2NrKKquVjvPOY84115CXl4fSzfPyVQgEmtR4XH+c7eHt8AGcYzqHuTPnkub4+pDm8SCxb2QAsfzx/fv3U1JSQlVVFeXl5QwbNozrr7++W1ZXVU2kpDgZOGQag8f+BD39Nj75PB93SwSHtY4kduC0bGfs4DqKhzcx5awhOJ0OTCYl1s/iyJbvcGSsLDYaQw90e8mvxLzu8f28lJIPP/wQn8/X9alfgQQkaY5UJhQP4fwpDs6doJCkvUfA9SxffL6Zl9/WeG/LEApG3sFV/+d+5l96BampR8/ZJ7ZayMzM5IILLmDMmDGYTCZCoRDr169n9erV/7nyiDnfwiUlyF/9itbt23kDqB47livuvJOBQ4d2aztzNOLhtA8DH/K25W0iZRFs622MTR1L0ZBjn52eKEc/kwZHRcbq2RsaGti4cSMNDQ1UVFTQt29fFi1axGlfk0feFUVRSHfmUTTmcs48/880mx5izfaRtPhySbLpDM5vZca4SpIC/5fGg68htA6EHojG4L9G7HGhB4NB/H5/j1YDAOnp6WRlZWGxWDqr2Y6OBKmDjIDwo0TKyDKvoiCzGrtVxd2eyXubc3jqH9lYspdw3Y9/z/zLrmXUqFHYbD2bepKVlcVFF13EiBHRMUZ+v5/Vq1ezYsWKf8f8Y8t1uXkz6v33E966lbUmE5uGDWPhffdRXFzc43NyJCQSv/TzsOVhgq1BbNtszMqYxZVzruzRtdDbGEI/RmQs3OV2u/lXLEursrKS7OxsFi9eTFFR9O7dkz+uokT7tSclp9MnfwzDxixg5NkPU/K5nfLqMEF/E5mOFgZk7iJPeYBg+cXU7vgRDZXrkCIYc9xFYgL7cnguHA4TCAQ6K9ccDkf0eN38fKmpqTidzs62UaFQ6DBrGbXa0eNqIMMgQkjho6NmGXrND9Brf4hsW8GhQy6271V5Z6OTtzb1Y/ZlD3Hl1XcwYuQ40tMzMJujbap7gsViIT8/nwsuuICCggKINcv8+OOPWb58eTSrLxIhvHMnkQcfpH3zZl7TdV5xOrnjqac469xzsfZCKE0i0dF5gifYyU7YAwP3DeSmC29iQMGArk//Rknsm53CCCFoamriueeeo6WlhcrKSsxmM4sWLYp1he2ZyP8TBavVRnJqLvsqzbzyTpiHnvLy91Vm9pSZ6ehoxywOku9Yi711CXveH8PezT/D33EAobchROhLXmuz2YzVakHTok4up9PZows7/nqTqmK1WjCbDws9SYEUYaTwgN6M7lmDXnkBonw0lo4/0tywnc8+b+Qv//Dx+xWtrPlEobzWTF6/Is6dOp3U1OhNJxFUVWXw4MHMnDmzM2XVarXS4nbjbW5GVFdjfvJJIps2sV3XWZmWxvW/+x1njB+P7RjnpnVFQ2O32M1KsZJATQDbahvF3mKmT53+rS3Z45zSraSOhbglb2pq4vnnn6ejo4Oamho8Hg+XXnops2bN6qyCSxSv18fateuorq4lIzOHxTfdy/jJN7J9j58DlR68viAWs8Ck6mSkBslO/gJr4GX87lfRhAWzIlDEIRThIxQK4GqswN1Yzg8uv5Thw4dHxSrjqbcSJbYCkOggdRQEoCPRMZsUOjyNtLdU40zxceb4IlLsXtAakJFawm1rCdbeh978GOHW1/F1tFDVIPh0l8IH21JZV1KAkjqHaxffy8xZc9i2bQc+n5+mpiYKCgpITU1NWOyKopCXl0dOTg5ul4tIIMDgcJisnTtx/OtfeN56i9VS8mKfPlz4058y/4orsHSj+WZ3kEgaaWSZXMaW9i3o63VGvj2Sp373FBnp0bTdbxNjUksP0XWd5uZmVq1aRWVlZWc11/z581m4cGGvhU50XWfNmjVs2bKF5uZmBg4cyO23346CRCIpP7Cfd996kRSri6zUetRIKX2zfOT3kTgdYLUqqKqColiR1lH41PNoae2gsaGGrOwBFAwchySJSESAasZmz8Jk64MQKpGgC0V6sdui3W11LYKiQltLLWFfOVbFhaLX4bBVY1E8SCnwByQt7ZLGZkl1vUL9oXQ08+kE9SwysouYNesSCgsHg6Ki6zrLli2LtsDy+Rg2bBi33nrrUaIT3Sce5w/6/axauZLhJSUMDYUI1NXxcVkZH2ZlMX7pUuYuWEBSrCdeosQ7xzzMw/w+/Hu8W71kPJDB8h8tZ97seb2wukscQ+g9pKGhgY8++oi9e/dSU1NDY2MjV111FZdffjmW2BikRJFSEggEePrpp3G73ZSXl1NcXMzdd9/d+Xtd1xFCRwoNt6uaPTvfxde2Fz14kPSUDuzmZjIdYbIyVJyZ/TE7JiOlGRk6AKHPUFUNf8BMMKShqFYczkFYU0egaeBvL0ORTaSnKoSCHsLhABZrKqakUWDphx7x0Na0E5+nmg6fQlOLSmOzlRafk0AkC0vyCLLzhnLhhZeQmZWDokT70MWXr7qus3r1at5//30CgQApKSksWbKEIUOGJJyNBrFkmHCY0ObN8NRT+FNS2BUKsbKujolXXMGlCxfiSEvrnWMBIUJsYhP3Re5ja8VWcv+Qy5K+S/j5HT/Hau6dFUOiGELvIatXr+ajjz6itraW+vp6rr/+er7//e/3miUnJoS9e/fyxhtv4HK5cLlc3HDDDcycObPrU79EXV0dZWVlhENtoLkIeA7S3nKA3FwnjrRckmwRCJVi0vZgMwcAUFVJkh3SUkFRwOuDiAZmE9is0NYB7V7QRAqWlLHopiF4vGH2lX5GXUMzOX1OJ6ffGaiWLFId2TgzchkzZizp6eldP14nQkQbcy5btozW1laklJxzzjnMmzevM4f9mJESGQrBhg3oy5fTXlHB5qIiNlutNCcnc+PSpYzrRtVed5FItrGNe7iHjY0bEcsFt6Xcxi+X/pKUlJQTQuQYQu85Gzdu5Pnnn6epqYnLLruMyy67rNcseRyfz8err75KeXk5+/btIysri4ceeuio4uGwMlSIDhb0tLfidruQQqfi4H4++2wLkWAT+X1TSEu1UFe7n2ZXBUgdIRVMJgWrRUTDzcJKanoe6c5skpIzUNRUVHMGrR5Be7uf1rZDzJ49n7y+Ayg4rT82W3T8lBJLUT3a+YivSHbu3MkLL7xAIBAgOzubRYsWUVRU1PXp3ScSQbhc8Je/oK9axb4vvmC1xcKOoiJyJ07krClTmHH++WRlZXV95TGho9NEE4+KR3lSPInpVRPnfXwey368jOFDhicck+9NDKH3kPb2durr65FS0r9/f5KTk496UfcUKSVbt25lw4YN1NbWcuDAAa699lrmz5/frVZRXZFS4vV6Wb9+Pe+++y5Tpkxh8uTJWCxmgoEOAn4Pui7RdFAVMJujll1IE2ZLEkl2Oza7DUUxEQyGWLt2LQcOlNPR4eG3v/1t51TSY8Hv9/Poo4/S3NyM3+9n7ty5zJ07t0dhP4hacYQgsn8/PPEEyqpVuFpaeNpkYvfQYdz66G8pGDiQ7JwcUlJSjvnzHo5EEiDAWtayNLKU+pJ6cp7M4bF5jzFvzjxSko/cV//boveu0FMEh8PB0KFDKSoqIrmXnDlx4pauoqICv99PY6OLfv36MXv27GMOz8QjBLt37yYSieB0ZlBQUEDfvL4MHDSMESPHc/ro8Yw9Yzyjx45nxOnjGT5yPCNPH0dR0XD6DxhEXl4+ffr06UyYkVLg9fqoq6vrergeYbFYuOiiizqdVTt37uTgwYNHTl09GuEwlJSg3nsv8pVX2NTezt1JSew/7zyWv/kGZ02ZQv8BA0iNjXFOFIkkQoTNcjM36TfRVNaM9c82lo6/mYtnXZz49uM4kPi3PsVQYwUe8eVpbwpdCMGOHTuoqanpnKN2yy3xqrdj+1NpmtY5UikSiSCEjslkwhRLfDFbLFgs1iP8WDCbLYd9VxNWqxVVNSFltPPMoUOHDkua6TmqqlJQUEB6uhO7PYnKyirKyw92I+su6nAjEkF6PIgPP0RbupTGdet4JRTi6bR0Ln7kEZ5+6SWy8vKw2myYY7nwif69BIIIEdzSzQ36DTTXN2N9zcI1qddw7RXX4Ex3YlITXzH0Nsd29RgcF/x+P7W1tbR7PLjdbkaPHs3QoUMSujjjBTearhMKhxHi2ISpKAp2u71z+2A2m3nub39LWOgORxqjR4/GZI565V9//fWjToOBmMMtEEBu30H4llsJL1jAwdJS3gDWDirkR8+uYME112CLbSsSOX9d0dEpp5wpcgp1zXUoa1TmeObwvw8vO26TUHsDQ+gnCFJKDhw4QFnZAdra2mltbeP8889P2Jsv4yOgNJ1IONI5/uhYUBSFtDQHVpsNq83GgQPlCQldURSSk5M4Y9wZ9MntQ1JyMm1tbdTW1h65nbOUEAohq6uJvPoqoTmzaf3nq2zRdf6WkUnJ5Cnc8IflTJg6FYvNhtqLIo+PUtout3ONfg3uQ27Uj00MXj2Y6SNn4EiJzoM/UTGEfgIgpSQcmxHu8XhoamomP78f06ZN7RWh+/0BNE0jFA5DTx1dXRg2bBgZGRmdDR+8Xt9/CrIHqKpKZkYGQ4ZEu66kpKayYcMHeL3eL+/VY2EzuWYNctkyQnfcQbnXyytC8uLAQTiWLOGuxx5lUixvPZHveCR0qbNN28Y9+j3satuN9pEg59VcfjLrJ1yz8OpeP15vYwj9BEAIQV1dPfvLymhr99De3s7lP7j8mLzsXYlEIlRVVxOORAiFwshjXLrHyczMIim2JLbZbNTW1iQkdGIFM0VFw8nIzCDJnkRNbS2RSCT6S10Hnw9ZUgKPPkrg/vupe+EFPtI0nktN4+D06cy7/5fccMvNDB02rNcFFy873apt5QHtAUraSuBjSHstjSVjl/DDhVed0JY8jiH0EwC/388X+/bR0NDAoUOHGDlyBGPHjDlmT/vh6LpOa2sbmqajqApmS2LvqZrUWPvjaFeXlpbWnnvJu2AymRg0aCBDhw7BbDaRkpREOBiMitzjQb70EvrPf473iScoK/2CV4TkLxmZFP/mN1z7wANcMG8emZmZvXK+uiIQNIpGVoqVrJPrCG4NYX3NzpIRN3LDNddjtURn9J3oGEL/lomGv5rZvXsPHR1e3E1NTJp0NtnZ2cfsaY8jhKCtrb3T4o4cMYLCQYVdn9YjrBYLqhJteGG1Wtn08cdHHdHULRSF1NRUxo0ew6C8PM40mbCveBblmWcQP/gBoQcfpH5rCf8MR3jEmUHHokX87O/PM/uHVzJq9KjjIrR4yWkrraxUVvIqr6JvFaS87uCnE+7mluv+i5zsnF5fQRwvEruSDBJCxhpXuNxu2tvbaW1tZcrkyUycMDHhAo+4Ey7aGVUnHA4zePAQ+vf/+h7wR8NsNne2WrLZ7Hz++d7ELLqUKEKg6DqDCvK5KjOD+VoEZ3UV+jPP4N+2jY1Nzdxns/PO5Ckseeav3PzAbyg+6yxS09I6w2a9SVzk7bSzTPwvD0YepHV3K0nPpXDvxHu46fIbycvJOyGKVbpL754hgx4hpcTr87F+/QZ8Ph+ejg5GjxpFXl60h3qiSCkJBAPoenSYhKpG01MTQVVV8vr0wWKxdN6MxLFacxlt7YTXC4cOYd6/H+fBg1iCIYJmC59nZvKLvL48NXUai198gT+/+HfOnX4eTmfiE2+/irjIPdLD1YGrWe57ko5PvaT+NY1fjLqX6y+9jqyMzF6/uRxvTq5P+x1DSklVVRWBQICWlhbOLC5m2rSpR72Ipa4jw2FkN6yoEIKWltZo6yddi+5hE7yBqKrKpElnk5yUhN1uw2wyE+7GKOVOdB3C4Wiiy549iI8+InT77QRnzKBt9hwqXnmF3T4fr1ks/KlPX8T0Gfzl+eeYNPVcHE4nltjc+t64EXYlLnKXdHGz/2bW6+uRJZD9Vg5LCpdw7VXXkJ4arXo7Hsc/nhhC/xaJhr781NfX4/P5GDpsKFlZR7cWkf37af/gA7SvaWksYw0yqqtrooUuEpLsSSR6eaqxhoyqyQQooESnpXQX2dCAXL8e/e9/R7vkEvzz5uFe+RLbKir5h9/Pk5rO23l9qcvPB7udu3/2UxwOR8Jhxu6go1NGGY+Jx3jT+ibaFkH2m7ncMuQW7lx8O31yc496Ez6RMYpavkXiQvznP/9Ffn4/Lrlk7ldORJGaRnjfPgIPP4z3k0/IuuoqRL9+qOPHYyksRLFaUW02MJlQVBUR6xP3+ONP0NDYCMC1117NGWPHJuyd1nWdxx57nKbmZloOtbB48XVMmjQpehOJL8eFQGoa0utFVlSg7toF4Qja53vQ332XttZW6oWgQlE4YLXjGTAAa3ExfceO4eJL5hKKRNi/bz8zZkzv8VjpnqKjE5ZhPuZjnpRP8kHLBwT3hejzTB43n3czSxf8GIspOhXmZMUQ+kmCCAapfvY5gv/zP+Q2uUmTEDCbUCdPxlxUhJaUjCjIR5k0CduwYZhSU4loGn/5f8spr6ig38AB/OTuu6JvlqBodF3n6T/9GVdFBR6fj6uvvpoxZ01ERiKItjb0+nqsq1dDayuyrQ2xbx9aSQneUIg2FPapKttNJhqcGTB4MBMvmUvuiBFMnDiB7Ozsroc7rkgkXullnVzHI/IRSlwlKB+Z6Lcqn1/P/m+uvLT3ugZ9mxhCP0mQuk57RQUf/unPuFatIr/JTUEkQiaQBlgUBelwoA4ahLlvX+S556INH07Zhg3U19SgOp2ce9tt2LOzIb41UBQwmaL//5oLWdH1qKWObQtK33ob95bNJLW0MrBfX7KGDEHdvBnhcqF7PFBaijcUAl3nCympVk3Umky4cnIwDy/ivMsvJyUzi6TsLEaefjrm2N77m7SaESK4hZuX5cusECsoqz0Ab0HR3hHcP/c+Ljr/wpPekscxhH6S4W5ooL2ujqrt29m9di3eT7fSr7WFkbqgrxQkSUmSyUTSiBEo06ejh0JEqqqQBw9iT0lB2myEVBO6qiCdTpTiYuyFheg2GwogFQWhKJgUJVohJiVmXUdWVaF8+inoOqacHDSHAy0QwNLSAnv2INraCLa0oIbDVCgKNapKo6Kyw2Si2ZFG7qjTGTdjBqOnTMaZk8OAAQN6JfPvWIg73Wr0Gm4M3EipWkpjnQvbizamNJ7DPYt+xuTxk4/7luGbxBD6SYbQdYQQaOEwkWAQEQrha2lhx8aN7Hzvfeq3lTAoEmHksGGMLi5GSIlt3z7U3buxt7WhKgpmYhNeVBXVaoXD4sHxi0GJ/zs+VFHT0cMhJOAzW0i5+CI8zgw6ggFat25lR3U1TcB+1USL2ULu8GGMmXYe5198EXkFBZitVqx2e7TYRFW/Nc91fFzSnsgeLuVS3FoTYo/A9JKZy5Mv4+4f3sWQwiFYzdZoBmDXNzhJMYT+HUAIga5p0Z9IhEgoROX+Mta8+w4Wn4+G0lIsFRWk+f04dZ2+UiKBPkIQ0HUcmoYuJVYp0WKhGL+i4ABciopNgRaTiZDJRJOi4lNVnNOmEu7TB18wyJYD5QwbOoRRxcVk5ORQfOaZpDudmC3RevbeqANPFBF7+PCxyr+KOy130u5pRxyQpCxPYcGgK7jvpnvJz8tHSbDw50TEEPp3gZhwpYyNHop1qnn77bd5++13cKansfj660lPS8PV0IDP60UPh/F0dFC/fz9le/fic7sJhcOYgYDJRKbdTiDdSV5KMkpKKvn9T+O0wkJS0tKx2m1EdJ333nufiooKxo0bx9Kbl3aG3JR4KWxMMCeCaIIySAMNLFOW8bL2Ml6XF/VNlczVmSwcupBf//LXJNujbcFOhM/b2xhC/44ihKC5uZk//vGPzJ49m9GjR2OxWBBCxG4IIGV0OqoQ4t8JOFL+2zF3mFAVVf2SCKI5+k288MILzJo1i9GjR5+QAtHQOMQhPtE/YYVcwXrPeoI1QWwv2JmmTmNq7rn8103/9a3MLP8mMYT+HUbGLPtR98Ox1cDXcaTXH37pHOn3JwL11PN7fs8/wv+gsqkSda1K/539mZt6Cffc8nOyMrO+s1b8cAyhG3yniDdudGku/mD6A/Winn96/oleqmNeZ2ZqaBpXjFvAvO/NI9mefPSb4HcIQ+gG3wlk7BEUQdaylmf1Z1mlrCJSFcG0xUTGexksHL6Q6+Zcz8iiEd+JJJieYAjd4KRHRydChApZwRPaE2xgA7WeWrRSDeu/rIwPjeeuy+6ieGQxOVk5mE0nT3lpb2EI3eCkJN7iSUenUTTynPYcL8oXqVKq0Ko11LUqqa86uG7Gddxy7c3kZOZgs9m6vs0pgyF0g5OO+D68Xbbzlv4Wv9J/hVtxo9cJlO2Q/rqTC7Iu4A8PLsdusWNSoz34VeWrqwK/6xhCNzgpiFvvAAFc0sV+sZ8/Rf7EOm0deouOslch49MsBtcN5scX38TsGbNJSe6d8UvfBQyhG5wUtMpWymQZ29nOSrGSraGtRFojyE8hqyyLMa6xzB59MVfMXkB2VrTf3qlswbtiCN3ghCO+/44QoY021og1lMpSPtA/oNRbir8lgGmnCftBO5ckXcLI9JHMmTSH/qf1x26Ntrc61ZxtX4chdIMThnjqjkBQpVXxjOkZGmnkDfEGLb5WZJ1A2WLC8pmF+dnzmTRwEgsvXEDmSdjD7ZvGELrBt4pEosUeXuHlRe1FPjV9ilu42SK2oDVp6AcFll1WHF+kce3EqxlfMJ6xhWM4re9pWC3RUlLDgh8dQ+gG3wjxhJbDHwJBu+ahSlTyhvom65S1VOgVtOgtiGqBWmbGvtlO/+oBzDlrNnMnzWHIgCFkZ2YZwu4hhtANjitxUetSjya2KBEqwpWUmvdyX/g+gtYgET1CIBIg3BRGlipY9ltJ3pjM1Lxp3H/HL8hJzyHZmoTdZsdkMmMyluk9xhC6QcIIBLrUkUpsjy2jjjSBIEyYFr2Fz4K72KaWsMq8ijpRR4QIuk9H+sHsNmHdYce+N4mc6lymDz+Pn956F5lpGVjM0VZOhgVPDEPoBgnTITqo1CsJqAF0k4477GZ7ZDuHTIdYp66j0lSJCAsIguyQ0KCgeBScFRlk7s2i0DaIKYPO4YKzZ3D6iNOxxFJUVSVaVWaIPHEMoRskhC51PvJv5PbQbVRZq5AWiR7UEUIiwwLZDopXwVRnIrXOQb7MJ7s9m/SgkzMLxjNu6BmcOW48dpsds9mM2ZRYK2qDI2MI3eCYkUgieoSVzS9xg+cGRECgtCtRi92qYGoxU6gNYmTaCDKCWQxOLmTCmDMZXDiYfn37fknUhtU+vhhCN0gIIQU7XDu55417qdhdwaRRZ1OYVYiDNCyahYF9BlI0YBjpqWmkOdK+tOc2xP3NYQjdIGF8fh/7yvZxqLmFwkGF9MnNJSkpycgzP4EwhG6QMEIIdKGj8O8ec0am2omFIXQDg1MA47ZrYHAKYAjdwOAUwBC6gcEpgCF0A4NTAEPoBganAIbQDQxOAQyhGxicAhhCNzA4BTCEbmBwCmAI3cDgFMAQuoHBKYAhdAODUwBD6AYGpwCG0A0MTgEMoRsYnAL8fz8vxbuSmvJXAAAAAElFTkSuQmCC';
diff --git a/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/pezkuwi.png b/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/pezkuwi.png
index af12133d..0e2befbb 100644
Binary files a/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/pezkuwi.png and b/pezkuwi-sdk-ui/packages/apps-config/src/ui/logos/chains/pezkuwi.png differ
diff --git a/pezkuwi-sdk-ui/packages/apps/public/favicon.ico b/pezkuwi-sdk-ui/packages/apps/public/favicon.ico
index ec3c167a..f1f6bf58 100644
Binary files a/pezkuwi-sdk-ui/packages/apps/public/favicon.ico and b/pezkuwi-sdk-ui/packages/apps/public/favicon.ico differ
diff --git a/pezkuwi-sdk-ui/packages/apps/webpack.config.cjs b/pezkuwi-sdk-ui/packages/apps/webpack.config.cjs
index 2dd73846..c0381a5b 100644
--- a/pezkuwi-sdk-ui/packages/apps/webpack.config.cjs
+++ b/pezkuwi-sdk-ui/packages/apps/webpack.config.cjs
@@ -22,7 +22,7 @@ module.exports = merge(
plugins: [
new SubresourceIntegrityPlugin(),
new HtmlWebpackPlugin({
- PAGE_TITLE: 'Polkadot/Substrate Portal',
+ PAGE_TITLE: 'Pezkuwi Explorer',
minify: false,
template: path.join(context, `${hasPublic ? 'public/' : ''}index.html`)
})
diff --git a/pezkuwi-sdk-ui/packages/page-contracts/package.json b/pezkuwi-sdk-ui/packages/page-contracts/package.json
index 1e01c1fb..5ab66714 100644
--- a/pezkuwi-sdk-ui/packages/page-contracts/package.json
+++ b/pezkuwi-sdk-ui/packages/page-contracts/package.json
@@ -16,7 +16,7 @@
"type": "module",
"version": "0.168.2-0-x",
"dependencies": {
- "@pezkuwi/api-contract": "16.5.2",
+ "@pezkuwi/api-contract": "^16.5.9",
"eventemitter3": "^5.0.1"
},
"peerDependencies": {
diff --git a/pezkuwi-sdk-ui/yarn.lock b/pezkuwi-sdk-ui/yarn.lock
deleted file mode 100644
index 0e05cae4..00000000
--- a/pezkuwi-sdk-ui/yarn.lock
+++ /dev/null
@@ -1,23220 +0,0 @@
-# This file is generated by running "yarn install" inside your project.
-# Manual changes might be lost - proceed with caution!
-
-__metadata:
- version: 8
- cacheKey: 10
-
-"7zip-bin@npm:~5.2.0":
- version: 5.2.0
- resolution: "7zip-bin@npm:5.2.0"
- checksum: 10/5339c7a56f57f8d7d16ac8d15f588d155e5705cd4822e0d161ea45e6fbfe4a5226b464a331ec555a1ec9376ad04e5f61c125656cf3a1507900c1968ccbcfe80b
- languageName: node
- linkType: hard
-
-"@acala-network/chopsticks-core@npm:^1.2.1":
- version: 1.2.5
- resolution: "@acala-network/chopsticks-core@npm:1.2.5"
- dependencies:
- "@acala-network/chopsticks-executor": "npm:1.2.5"
- "@polkadot/rpc-provider": "npm:^16.4.1"
- "@polkadot/types": "npm:^16.4.1"
- "@polkadot/types-codec": "npm:^16.4.1"
- "@polkadot/types-known": "npm:^16.4.1"
- "@polkadot/util": "npm:^13.5.3"
- "@polkadot/util-crypto": "npm:^13.5.3"
- comlink: "npm:^4.4.2"
- eventemitter3: "npm:^5.0.1"
- lodash: "npm:^4.17.21"
- lru-cache: "npm:^11.1.0"
- pino: "npm:^9.7.0"
- pino-pretty: "npm:^13.0.0"
- rxjs: "npm:^7.8.2"
- zod: "npm:^3.25.76"
- checksum: 10/25e10af36a5eb9d56e6d3922277c37a906dee715d3c071149d25c1b60a80adffe1cf4e479d4892b12a8dcbbd5a4033a4bc2abfcd12520343c9c41478e7a527c2
- languageName: node
- linkType: hard
-
-"@acala-network/chopsticks-executor@npm:1.2.5":
- version: 1.2.5
- resolution: "@acala-network/chopsticks-executor@npm:1.2.5"
- dependencies:
- "@polkadot/util": "npm:^13.5.3"
- "@polkadot/wasm-util": "npm:^7.4.1"
- checksum: 10/897da956ac210e115070edeac0f6fcce59acf4c0c566b832a5c3085b536fc434617bc5b0af459b8826bcd3ce2281d65d8c153fb154b765bc00c71f475cddda02
- languageName: node
- linkType: hard
-
-"@acala-network/type-definitions@npm:5.1.2":
- version: 5.1.2
- resolution: "@acala-network/type-definitions@npm:5.1.2"
- peerDependencies:
- "@polkadot/types": ^10.5.1
- checksum: 10/3af053d76b87c5586139448add02347b90f168ce2bb956d946d71955f8a754e41924944832e0e160464fdbe69ff85946fc879d86c2d7ab91ab061cc7fdd816d1
- languageName: node
- linkType: hard
-
-"@adobe/css-tools@npm:^4.0.1":
- version: 4.4.4
- resolution: "@adobe/css-tools@npm:4.4.4"
- checksum: 10/0abd4715737877e5aa5d730d6ec2cffae2131102ddc8310ac5ba3f457ffb2ef453324dbb5b927e3cbc3f81bdd29ce485754014c6e64f4577a49540c76e26ac6b
- languageName: node
- linkType: hard
-
-"@adraffy/ens-normalize@npm:^1.8.8":
- version: 1.11.1
- resolution: "@adraffy/ens-normalize@npm:1.11.1"
- checksum: 10/dd19274d9fcaf99bf08a62b64e54f4748de11b235767addbd3f7385ae1b7777bd704d17ff003ffaa3295a0b9d035929381cf3b38329c96260bff96aab8ad7b37
- languageName: node
- linkType: hard
-
-"@asamuzakjp/css-color@npm:^3.2.0":
- version: 3.2.0
- resolution: "@asamuzakjp/css-color@npm:3.2.0"
- dependencies:
- "@csstools/css-calc": "npm:^2.1.3"
- "@csstools/css-color-parser": "npm:^3.0.9"
- "@csstools/css-parser-algorithms": "npm:^3.0.4"
- "@csstools/css-tokenizer": "npm:^3.0.3"
- lru-cache: "npm:^10.4.3"
- checksum: 10/870f661460173174fef8bfebea0799ba26566f3aa7b307e5adabb7aae84fed2da68e40080104ed0c83b43c5be632ee409e65396af13bfe948a3ef4c2c729ecd9
- languageName: node
- linkType: hard
-
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.27.1":
- version: 7.27.1
- resolution: "@babel/code-frame@npm:7.27.1"
- dependencies:
- "@babel/helper-validator-identifier": "npm:^7.27.1"
- js-tokens: "npm:^4.0.0"
- picocolors: "npm:^1.1.1"
- checksum: 10/721b8a6e360a1fa0f1c9fe7351ae6c874828e119183688b533c477aa378f1010f37cc9afbfc4722c686d1f5cdd00da02eab4ba7278a0c504fa0d7a321dcd4fdf
- languageName: node
- linkType: hard
-
-"@babel/helper-string-parser@npm:^7.27.1":
- version: 7.27.1
- resolution: "@babel/helper-string-parser@npm:7.27.1"
- checksum: 10/0ae29cc2005084abdae2966afdb86ed14d41c9c37db02c3693d5022fba9f5d59b011d039380b8e537c34daf117c549f52b452398f576e908fb9db3c7abbb3a00
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.27.1, @babel/helper-validator-identifier@npm:^7.28.5":
- version: 7.28.5
- resolution: "@babel/helper-validator-identifier@npm:7.28.5"
- checksum: 10/8e5d9b0133702cfacc7f368bf792f0f8ac0483794877c6dca5fcb73810ee138e27527701826fb58a40a004f3a5ec0a2f3c3dd5e326d262530b119918f3132ba7
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.21.4":
- version: 7.28.5
- resolution: "@babel/parser@npm:7.28.5"
- dependencies:
- "@babel/types": "npm:^7.28.5"
- bin:
- parser: ./bin/babel-parser.js
- checksum: 10/8d9bfb437af6c97a7f6351840b9ac06b4529ba79d6d3def24d6c2996ab38ff7f1f9d301e868ca84a93a3050fadb3d09dbc5105b24634cd281671ac11eebe8df7
- languageName: node
- linkType: hard
-
-"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.28.4, @babel/runtime@npm:^7.9.2":
- version: 7.28.4
- resolution: "@babel/runtime@npm:7.28.4"
- checksum: 10/6c9a70452322ea80b3c9b2a412bcf60771819213a67576c8cec41e88a95bb7bf01fc983754cda35dc19603eef52df22203ccbf7777b9d6316932f9fb77c25163
- languageName: node
- linkType: hard
-
-"@babel/types@npm:^7.28.5":
- version: 7.28.5
- resolution: "@babel/types@npm:7.28.5"
- dependencies:
- "@babel/helper-string-parser": "npm:^7.27.1"
- "@babel/helper-validator-identifier": "npm:^7.28.5"
- checksum: 10/4256bb9fb2298c4f9b320bde56e625b7091ea8d2433d98dcf524d4086150da0b6555aabd7d0725162670614a9ac5bf036d1134ca13dedc9707f988670f1362d7
- languageName: node
- linkType: hard
-
-"@balena/dockerignore@npm:^1.0.2":
- version: 1.0.2
- resolution: "@balena/dockerignore@npm:1.0.2"
- checksum: 10/13d654fdd725008577d32e721c720275bdc48f72bce612326363d5bed449febbed856c517a0b23c7c40d87cb531e63432804550b4ecc13e365d26fee38fb6c8a
- languageName: node
- linkType: hard
-
-"@bifrost-finance/type-definitions@npm:1.11.3":
- version: 1.11.3
- resolution: "@bifrost-finance/type-definitions@npm:1.11.3"
- peerDependencies:
- "@polkadot/api": ^10.7.3
- checksum: 10/af6ad64f87a2a58d7c11db9a4d3016661efa42495a95bc9938cbbc725a17bfc3750fa351211f290b6c3c0eccb778bc8d36d868ac38916b7002918a958e2dd1a6
- languageName: node
- linkType: hard
-
-"@biomejs/biome@npm:*":
- version: 2.3.11
- resolution: "@biomejs/biome@npm:2.3.11"
- dependencies:
- "@biomejs/cli-darwin-arm64": "npm:2.3.11"
- "@biomejs/cli-darwin-x64": "npm:2.3.11"
- "@biomejs/cli-linux-arm64": "npm:2.3.11"
- "@biomejs/cli-linux-arm64-musl": "npm:2.3.11"
- "@biomejs/cli-linux-x64": "npm:2.3.11"
- "@biomejs/cli-linux-x64-musl": "npm:2.3.11"
- "@biomejs/cli-win32-arm64": "npm:2.3.11"
- "@biomejs/cli-win32-x64": "npm:2.3.11"
- dependenciesMeta:
- "@biomejs/cli-darwin-arm64":
- optional: true
- "@biomejs/cli-darwin-x64":
- optional: true
- "@biomejs/cli-linux-arm64":
- optional: true
- "@biomejs/cli-linux-arm64-musl":
- optional: true
- "@biomejs/cli-linux-x64":
- optional: true
- "@biomejs/cli-linux-x64-musl":
- optional: true
- "@biomejs/cli-win32-arm64":
- optional: true
- "@biomejs/cli-win32-x64":
- optional: true
- bin:
- biome: bin/biome
- checksum: 10/37b6ec783ddf8ce994e6f9df3e170b8233a99d49c4fbd75c1f65a41715edd42c7d15d981928a8765e1b7109271806ccdd96c6b098f036c61112dde2003e80509
- languageName: node
- linkType: hard
-
-"@biomejs/cli-darwin-arm64@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-darwin-arm64@npm:2.3.11"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"@biomejs/cli-darwin-x64@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-darwin-x64@npm:2.3.11"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@biomejs/cli-linux-arm64-musl@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-linux-arm64-musl@npm:2.3.11"
- conditions: os=linux & cpu=arm64 & libc=musl
- languageName: node
- linkType: hard
-
-"@biomejs/cli-linux-arm64@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-linux-arm64@npm:2.3.11"
- conditions: os=linux & cpu=arm64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@biomejs/cli-linux-x64-musl@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-linux-x64-musl@npm:2.3.11"
- conditions: os=linux & cpu=x64 & libc=musl
- languageName: node
- linkType: hard
-
-"@biomejs/cli-linux-x64@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-linux-x64@npm:2.3.11"
- conditions: os=linux & cpu=x64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@biomejs/cli-win32-arm64@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-win32-arm64@npm:2.3.11"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
-"@biomejs/cli-win32-x64@npm:2.3.11":
- version: 2.3.11
- resolution: "@biomejs/cli-win32-x64@npm:2.3.11"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@bizinikiwi/connect-extension-protocol@npm:^2.2.2":
- version: 2.2.2
- resolution: "@bizinikiwi/connect-extension-protocol@npm:2.2.2"
- checksum: 10/67cc8effc49e86802ddec12f28f254eab32a2d1ca138e73313458bbaa66e0d09f5e80d193ab7c8c949804c2bd3910db9a4ef7646c20b63866d7f67fdf20f8e0e
- languageName: node
- linkType: hard
-
-"@bizinikiwi/connect-known-chains@npm:^1.10.3":
- version: 1.10.3
- resolution: "@bizinikiwi/connect-known-chains@npm:1.10.3"
- checksum: 10/fc3661ababce5090067ce936ee5b377c37db021c680019ee809230551f9e6cdbb6c2aea3ad804bbc32b18a68847e33bde259f67d73ca88a9f3f1d13200efc309
- languageName: node
- linkType: hard
-
-"@bizinikiwi/connect@npm:2.1.9":
- version: 2.1.9
- resolution: "@bizinikiwi/connect@npm:2.1.9"
- dependencies:
- "@bizinikiwi/connect-extension-protocol": "npm:^2.2.2"
- "@bizinikiwi/connect-known-chains": "npm:^1.10.3"
- "@bizinikiwi/smoldot-discovery": "npm:^2.0.3"
- smoldot: "npm:^2.0.34"
- checksum: 10/e8c211e556fff0611b6b010d36b6ec3da303088b3e0d958aab72ffb19eb1ff469c31827e307965dc56a636617258085f1a2b64ebbfd60517dba39df52452015c
- languageName: node
- linkType: hard
-
-"@bizinikiwi/discovery@npm:^0.2.2":
- version: 0.2.2
- resolution: "@bizinikiwi/discovery@npm:0.2.2"
- checksum: 10/bde24be332f9012d716ae2abb4780fbbddda1f30f0f4e112275a015df2bf525808708c03c1aa9d6d27f3a5d53688d81847c3b3ea37218c1e25a282dd909f3349
- languageName: node
- linkType: hard
-
-"@bizinikiwi/smoldot-discovery@npm:^2.0.3":
- version: 2.0.3
- resolution: "@bizinikiwi/smoldot-discovery@npm:2.0.3"
- dependencies:
- "@bizinikiwi/discovery": "npm:^0.2.2"
- checksum: 10/0a9f1ff86b1603c6d377aa9815b3448fbcb61ff48c2746ebd25788947c407896ebfe9453bbb00ef31c80d4f831c2c6e9791d6efec607d23f9ec885b9cd341e59
- languageName: node
- linkType: hard
-
-"@chainsafe/is-ip@npm:^2.0.1":
- version: 2.1.0
- resolution: "@chainsafe/is-ip@npm:2.1.0"
- checksum: 10/0055a6bc67b08c6e87a00e6059d78e2141684d76ec1227897c670fcae27bc52ed3e4c2f0532a38717dea5ac5a86b864e3c3af0a1d7f02a4d3d4270a4d2fc8ac4
- languageName: node
- linkType: hard
-
-"@chainsafe/netmask@npm:^2.0.0":
- version: 2.0.0
- resolution: "@chainsafe/netmask@npm:2.0.0"
- dependencies:
- "@chainsafe/is-ip": "npm:^2.0.1"
- checksum: 10/fa696cdffd8b80efc76b988902655976aae4fd80cf1ff51db849c0476cc477d1bb0e50bf2700162dfa2aa5602b8594e7d92d6fa2235cdeb0246e4afc7f64947f
- languageName: node
- linkType: hard
-
-"@crustio/crust-pin@npm:^1.0.0":
- version: 1.0.0
- resolution: "@crustio/crust-pin@npm:1.0.0"
- dependencies:
- "@crustio/type-definitions": "npm:^1.2.0"
- "@polkadot/api": "npm:^4.2.1"
- checksum: 10/3450f436b51e1b920371827cdf0677b663e3487a227e7e8748abaf6dd558fb9a87fc0661b6f559321c2abc82069415d7e2f9ded9cc3c52754add224612d38556
- languageName: node
- linkType: hard
-
-"@crustio/type-definitions@npm:1.3.0, @crustio/type-definitions@npm:^1.2.0":
- version: 1.3.0
- resolution: "@crustio/type-definitions@npm:1.3.0"
- dependencies:
- "@open-web3/orml-type-definitions": "npm:^0.9.4-7"
- checksum: 10/e257d118530824f184bbb38fababcd27a0ed2aa0914ec74f9b73ef255ffb4eb55b301d6a759d957b817d11c3fd68d78b2c2fe48d652d659ace50d941e5e40b62
- languageName: node
- linkType: hard
-
-"@csstools/color-helpers@npm:^5.1.0":
- version: 5.1.0
- resolution: "@csstools/color-helpers@npm:5.1.0"
- checksum: 10/0138b3d5ccbe77aeccf6721fd008a53523c70e932f0c82dca24a1277ca780447e1d8357da47512ebf96358476f8764de57002f3e491920d67e69202f5a74c383
- languageName: node
- linkType: hard
-
-"@csstools/css-calc@npm:^2.1.3, @csstools/css-calc@npm:^2.1.4":
- version: 2.1.4
- resolution: "@csstools/css-calc@npm:2.1.4"
- peerDependencies:
- "@csstools/css-parser-algorithms": ^3.0.5
- "@csstools/css-tokenizer": ^3.0.4
- checksum: 10/06975b650c0f44c60eeb7afdb3fd236f2dd607b2c622e0bc908d3f54de39eb84e0692833320d03dac04bd6c1ab0154aa3fa0dd442bd9e5f917cf14d8e2ba8d74
- languageName: node
- linkType: hard
-
-"@csstools/css-color-parser@npm:^3.0.9":
- version: 3.1.0
- resolution: "@csstools/css-color-parser@npm:3.1.0"
- dependencies:
- "@csstools/color-helpers": "npm:^5.1.0"
- "@csstools/css-calc": "npm:^2.1.4"
- peerDependencies:
- "@csstools/css-parser-algorithms": ^3.0.5
- "@csstools/css-tokenizer": ^3.0.4
- checksum: 10/4741095fdc4501e8e7ada4ed14fbf9dbbe6fea9b989818790ebca15657c29c62defbebacf18592cde2aa638a1d098bbe86d742d2c84ba932fbc00fac51cb8805
- languageName: node
- linkType: hard
-
-"@csstools/css-parser-algorithms@npm:^3.0.4":
- version: 3.0.5
- resolution: "@csstools/css-parser-algorithms@npm:3.0.5"
- peerDependencies:
- "@csstools/css-tokenizer": ^3.0.4
- checksum: 10/e93083b5cb36a3c1e7a47ce10cf62961d05bd1e4c608bb3ee50186ff740157ab0ec16a3956f7b86251efd10703034d849693201eea858ae904848c68d2d46ada
- languageName: node
- linkType: hard
-
-"@csstools/css-tokenizer@npm:^3.0.3":
- version: 3.0.4
- resolution: "@csstools/css-tokenizer@npm:3.0.4"
- checksum: 10/eb6c84c086312f6bb8758dfe2c85addd7475b0927333c5e39a4d59fb210b9810f8c346972046f95e60a721329cffe98895abe451e51de753ad1ca7a8c24ec65f
- languageName: node
- linkType: hard
-
-"@darwinia/types-known@npm:2.8.10":
- version: 2.8.10
- resolution: "@darwinia/types-known@npm:2.8.10"
- checksum: 10/297021426f62a257754e67431ca7240b80a8d6cdcba8ec381917ed54b89d03409b3b4f0513633cc8b7b451baf66732692bafb9b8be5a0ac53f6fed045f140e06
- languageName: node
- linkType: hard
-
-"@darwinia/types@npm:2.8.10":
- version: 2.8.10
- resolution: "@darwinia/types@npm:2.8.10"
- checksum: 10/74d963cfcf3cc7062923d037e690f1a03191ecb61169a3cf6dbd19725a5a2994010a1f34802d5d9d6c4127dbcc8a3beb781f74e0ec00c9b3408746ae4bb4871c
- languageName: node
- linkType: hard
-
-"@dependents/detective-less@npm:^3.0.1":
- version: 3.0.2
- resolution: "@dependents/detective-less@npm:3.0.2"
- dependencies:
- gonzales-pe: "npm:^4.3.0"
- node-source-walk: "npm:^5.0.1"
- checksum: 10/2c263ab64fcd1f76117bc35f2b29a150c64bd2b105c96a909a63ce2f2baf07efd93d9ae80e612161d003fb71fbe46598292375f5cc3f447a1b83cfb545dc8f8f
- languageName: node
- linkType: hard
-
-"@develar/schema-utils@npm:~2.6.5":
- version: 2.6.5
- resolution: "@develar/schema-utils@npm:2.6.5"
- dependencies:
- ajv: "npm:^6.12.0"
- ajv-keywords: "npm:^3.4.1"
- checksum: 10/a219d60afca9abe708171d7b361907e36526fa8e6e7c480c6c8b05c6611d7e0989b11c1b21b7bceff5d7ccdc92315d364358ec3fd8bc5113d4e869288f32ae9c
- languageName: node
- linkType: hard
-
-"@digitalnative/type-definitions@npm:1.1.27":
- version: 1.1.27
- resolution: "@digitalnative/type-definitions@npm:1.1.27"
- dependencies:
- "@polkadot/keyring": "npm:^6.9.1"
- "@polkadot/types": "npm:^4.13.1"
- checksum: 10/25b064ca94ef6fe2ca625bf566338eaaba15cf5d2a56de2d1f8235b99e1ec73422b3e421b9a9c7e2e55b9a3afa011d9c01c8121593637821a235d026715e4753
- languageName: node
- linkType: hard
-
-"@discoveryjs/json-ext@npm:^0.5.0":
- version: 0.5.7
- resolution: "@discoveryjs/json-ext@npm:0.5.7"
- checksum: 10/b95682a852448e8ef50d6f8e3b7ba288aab3fd98a2bafbe46881a3db0c6e7248a2debe9e1ee0d4137c521e4743ca5bbcb1c0765c9d7b3e0ef53231506fec42b4
- languageName: node
- linkType: hard
-
-"@docknetwork/node-types@npm:0.16.0":
- version: 0.16.0
- resolution: "@docknetwork/node-types@npm:0.16.0"
- checksum: 10/a552cbfa4ad2c0437f9912ae4cab3db6ff150a24a93fe72b506d761560c94ea8ec064c34c5c5f28bc56ae912ef6e31288c17787c288ac1ea0488ae6a45737f23
- languageName: node
- linkType: hard
-
-"@edgeware/node-types@npm:3.6.2-wako":
- version: 3.6.2-wako
- resolution: "@edgeware/node-types@npm:3.6.2-wako"
- checksum: 10/f320f99c9018a65b11a2f84a98eee326d44756318162c72fe5d997a92fb77e76b811daed3ff2f2fd980cf0fb1a8ad73837041346fe411fb4a392f849bb63313f
- languageName: node
- linkType: hard
-
-"@electron/asar@npm:^3.2.1":
- version: 3.4.1
- resolution: "@electron/asar@npm:3.4.1"
- dependencies:
- commander: "npm:^5.0.0"
- glob: "npm:^7.1.6"
- minimatch: "npm:^3.0.4"
- bin:
- asar: bin/asar.js
- checksum: 10/c41c6b0a5e112e0209b7f6b6eec7d83d3162a8061233375c76ca9f94afcff326a3447e5f53889b35049a855648a09f203c9850c2dbb6cd4690b54a2075eae266
- languageName: node
- linkType: hard
-
-"@electron/get@npm:^2.0.0":
- version: 2.0.3
- resolution: "@electron/get@npm:2.0.3"
- dependencies:
- debug: "npm:^4.1.1"
- env-paths: "npm:^2.2.0"
- fs-extra: "npm:^8.1.0"
- global-agent: "npm:^3.0.0"
- got: "npm:^11.8.5"
- progress: "npm:^2.0.3"
- semver: "npm:^6.2.0"
- sumchecker: "npm:^3.0.1"
- dependenciesMeta:
- global-agent:
- optional: true
- checksum: 10/ac736cdeac52513b23038c761ebcb9fd315d443675f12c975805d7bcddcdabe5be492310ce5f6f1915d27013bcdcf19d0dac73c72353120948bbdf01fb3e11bf
- languageName: node
- linkType: hard
-
-"@electron/notarize@npm:2.1.0":
- version: 2.1.0
- resolution: "@electron/notarize@npm:2.1.0"
- dependencies:
- debug: "npm:^4.1.1"
- fs-extra: "npm:^9.0.1"
- promise-retry: "npm:^2.0.1"
- checksum: 10/0509c3bd922dd1ed6d1a2042dd78cefd3bd1530000b79c1b9983effb5d3816d5da7d22cfd1ec4d2191d536b1b9cd25f3bfb5202a6ffe58543b22fdf3b468c69f
- languageName: node
- linkType: hard
-
-"@electron/osx-sign@npm:1.0.5":
- version: 1.0.5
- resolution: "@electron/osx-sign@npm:1.0.5"
- dependencies:
- compare-version: "npm:^0.1.2"
- debug: "npm:^4.3.4"
- fs-extra: "npm:^10.0.0"
- isbinaryfile: "npm:^4.0.8"
- minimist: "npm:^1.2.6"
- plist: "npm:^3.0.5"
- bin:
- electron-osx-flat: bin/electron-osx-flat.js
- electron-osx-sign: bin/electron-osx-sign.js
- checksum: 10/b8df7c097954e754fec99544d5c6787bcc53de5125557399978ec17084bfb7e8d94b6857b5b2b14f6b2c030cd1086f05f816615a6480a7b581ac8584e2120fcf
- languageName: node
- linkType: hard
-
-"@electron/universal@npm:1.4.1":
- version: 1.4.1
- resolution: "@electron/universal@npm:1.4.1"
- dependencies:
- "@electron/asar": "npm:^3.2.1"
- "@malept/cross-spawn-promise": "npm:^1.1.0"
- debug: "npm:^4.3.1"
- dir-compare: "npm:^3.0.0"
- fs-extra: "npm:^9.0.1"
- minimatch: "npm:^3.0.4"
- plist: "npm:^3.0.4"
- checksum: 10/41c03ff5a1928c49c0f05e5f4a17278f1d7142f72530a2a7b9c4a49308dd4a280d7576f4961315ee9d45755a772f0d7fdff2d67f5f2e61e962b7c1aa94c40185
- languageName: node
- linkType: hard
-
-"@emnapi/core@npm:^1.4.3":
- version: 1.8.1
- resolution: "@emnapi/core@npm:1.8.1"
- dependencies:
- "@emnapi/wasi-threads": "npm:1.1.0"
- tslib: "npm:^2.4.0"
- checksum: 10/904ea60c91fc7d8aeb4a8f2c433b8cfb47c50618f2b6f37429fc5093c857c6381c60628a5cfbc3a7b0d75b0a288f21d4ed2d4533e82f92c043801ef255fd6a5c
- languageName: node
- linkType: hard
-
-"@emnapi/runtime@npm:^1.4.3":
- version: 1.8.1
- resolution: "@emnapi/runtime@npm:1.8.1"
- dependencies:
- tslib: "npm:^2.4.0"
- checksum: 10/26725e202d4baefdc4a6ba770f703dfc80825a27c27a08c22bac1e1ce6f8f75c47b4fe9424d9b63239463c33ef20b650f08d710da18dfa1164a95e5acb865dba
- languageName: node
- linkType: hard
-
-"@emnapi/wasi-threads@npm:1.1.0":
- version: 1.1.0
- resolution: "@emnapi/wasi-threads@npm:1.1.0"
- dependencies:
- tslib: "npm:^2.4.0"
- checksum: 10/0d557e75262d2f4c95cb2a456ba0785ef61f919ce488c1d76e5e3acfd26e00c753ef928cd80068363e0c166ba8cc0141305daf0f81aad5afcd421f38f11e0f4e
- languageName: node
- linkType: hard
-
-"@emotion/is-prop-valid@npm:1.2.2":
- version: 1.2.2
- resolution: "@emotion/is-prop-valid@npm:1.2.2"
- dependencies:
- "@emotion/memoize": "npm:^0.8.1"
- checksum: 10/0fa3960abfbe845d40cc230ab8c9408e1f33d3c03b321980359911c7212133cdcb0344d249e9dab23342b304567eece7a10ec44b986f7230e0640ba00049dceb
- languageName: node
- linkType: hard
-
-"@emotion/memoize@npm:^0.8.1":
- version: 0.8.1
- resolution: "@emotion/memoize@npm:0.8.1"
- checksum: 10/a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0
- languageName: node
- linkType: hard
-
-"@emotion/unitless@npm:0.8.1":
- version: 0.8.1
- resolution: "@emotion/unitless@npm:0.8.1"
- checksum: 10/918f73c46ac0b7161e3c341cc07d651ce87e31ab1695e74b12adb7da6bb98dfbff8c69cf68a4e40d9eb3d820ca055dc1267aeb3007927ce88f98b885bf729b63
- languageName: node
- linkType: hard
-
-"@equilab/definitions@npm:1.4.18":
- version: 1.4.18
- resolution: "@equilab/definitions@npm:1.4.18"
- checksum: 10/76a1e92781e5ded7d7c2a200f896cb86402252cc21c0d6fae3d001b01b3588b8f8ec04c16d63e6775fbeec06e63f144b887331a5e4da11b75c2ed47438769091
- languageName: node
- linkType: hard
-
-"@esbuild/aix-ppc64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/aix-ppc64@npm:0.27.2"
- conditions: os=aix & cpu=ppc64
- languageName: node
- linkType: hard
-
-"@esbuild/android-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/android-arm64@npm:0.27.2"
- conditions: os=android & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/android-arm@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/android-arm@npm:0.27.2"
- conditions: os=android & cpu=arm
- languageName: node
- linkType: hard
-
-"@esbuild/android-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/android-x64@npm:0.27.2"
- conditions: os=android & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/darwin-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/darwin-arm64@npm:0.27.2"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/darwin-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/darwin-x64@npm:0.27.2"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/freebsd-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/freebsd-arm64@npm:0.27.2"
- conditions: os=freebsd & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/freebsd-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/freebsd-x64@npm:0.27.2"
- conditions: os=freebsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/linux-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-arm64@npm:0.27.2"
- conditions: os=linux & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/linux-arm@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-arm@npm:0.27.2"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
-"@esbuild/linux-ia32@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-ia32@npm:0.27.2"
- conditions: os=linux & cpu=ia32
- languageName: node
- linkType: hard
-
-"@esbuild/linux-loong64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-loong64@npm:0.27.2"
- conditions: os=linux & cpu=loong64
- languageName: node
- linkType: hard
-
-"@esbuild/linux-mips64el@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-mips64el@npm:0.27.2"
- conditions: os=linux & cpu=mips64el
- languageName: node
- linkType: hard
-
-"@esbuild/linux-ppc64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-ppc64@npm:0.27.2"
- conditions: os=linux & cpu=ppc64
- languageName: node
- linkType: hard
-
-"@esbuild/linux-riscv64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-riscv64@npm:0.27.2"
- conditions: os=linux & cpu=riscv64
- languageName: node
- linkType: hard
-
-"@esbuild/linux-s390x@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-s390x@npm:0.27.2"
- conditions: os=linux & cpu=s390x
- languageName: node
- linkType: hard
-
-"@esbuild/linux-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/linux-x64@npm:0.27.2"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/netbsd-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/netbsd-arm64@npm:0.27.2"
- conditions: os=netbsd & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/netbsd-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/netbsd-x64@npm:0.27.2"
- conditions: os=netbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/openbsd-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/openbsd-arm64@npm:0.27.2"
- conditions: os=openbsd & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/openbsd-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/openbsd-x64@npm:0.27.2"
- conditions: os=openbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/openharmony-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/openharmony-arm64@npm:0.27.2"
- conditions: os=openharmony & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/sunos-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/sunos-x64@npm:0.27.2"
- conditions: os=sunos & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/win32-arm64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/win32-arm64@npm:0.27.2"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
-"@esbuild/win32-ia32@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/win32-ia32@npm:0.27.2"
- conditions: os=win32 & cpu=ia32
- languageName: node
- linkType: hard
-
-"@esbuild/win32-x64@npm:0.27.2":
- version: 0.27.2
- resolution: "@esbuild/win32-x64@npm:0.27.2"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
- version: 4.9.1
- resolution: "@eslint-community/eslint-utils@npm:4.9.1"
- dependencies:
- eslint-visitor-keys: "npm:^3.4.3"
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- checksum: 10/863b5467868551c9ae34d03eefe634633d08f623fc7b19d860f8f26eb6f303c1a5934253124163bee96181e45ed22bf27473dccc295937c3078493a4a8c9eddd
- languageName: node
- linkType: hard
-
-"@eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
- version: 4.12.2
- resolution: "@eslint-community/regexpp@npm:4.12.2"
- checksum: 10/049b280fddf71dd325514e0a520024969431dc3a8b02fa77476e6820e9122f28ab4c9168c11821f91a27982d2453bcd7a66193356ea84e84fb7c8d793be1ba0c
- languageName: node
- linkType: hard
-
-"@eslint/eslintrc@npm:^2.1.4":
- version: 2.1.4
- resolution: "@eslint/eslintrc@npm:2.1.4"
- dependencies:
- ajv: "npm:^6.12.4"
- debug: "npm:^4.3.2"
- espree: "npm:^9.6.0"
- globals: "npm:^13.19.0"
- ignore: "npm:^5.2.0"
- import-fresh: "npm:^3.2.1"
- js-yaml: "npm:^4.1.0"
- minimatch: "npm:^3.1.2"
- strip-json-comments: "npm:^3.1.1"
- checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8
- languageName: node
- linkType: hard
-
-"@eslint/js@npm:8.57.1, @eslint/js@npm:^8.56.0":
- version: 8.57.1
- resolution: "@eslint/js@npm:8.57.1"
- checksum: 10/7562b21be10c2adbfa4aa5bb2eccec2cb9ac649a3569560742202c8d1cb6c931ce634937a2f0f551e078403a1c1285d6c2c0aa345dafc986149665cd69fe8b59
- languageName: node
- linkType: hard
-
-"@ethereumjs/rlp@npm:^4.0.1":
- version: 4.0.1
- resolution: "@ethereumjs/rlp@npm:4.0.1"
- bin:
- rlp: bin/rlp
- checksum: 10/bfdffd634ce72f3b17e3d085d071f2fe7ce9680aebdf10713d74b30afd80ef882d17f19ff7175fcb049431a56e800bd3558d3b028bd0d82341927edb303ab450
- languageName: node
- linkType: hard
-
-"@ethereumjs/rlp@npm:^5.0.2":
- version: 5.0.2
- resolution: "@ethereumjs/rlp@npm:5.0.2"
- bin:
- rlp: bin/rlp.cjs
- checksum: 10/2af80d98faf7f64dfb6d739c2df7da7350ff5ad52426c3219897e843ee441215db0ffa346873200a6be6d11142edb9536e66acd62436b5005fa935baaf7eb6bd
- languageName: node
- linkType: hard
-
-"@fastify/busboy@npm:^2.0.0":
- version: 2.1.1
- resolution: "@fastify/busboy@npm:2.1.1"
- checksum: 10/2bb8a7eca8289ed14c9eb15239bc1019797454624e769b39a0b90ed204d032403adc0f8ed0d2aef8a18c772205fa7808cf5a1b91f21c7bfc7b6032150b1062c5
- languageName: node
- linkType: hard
-
-"@fortawesome/fontawesome-common-types@npm:6.7.2":
- version: 6.7.2
- resolution: "@fortawesome/fontawesome-common-types@npm:6.7.2"
- checksum: 10/3c2e938afe6f5939bd63181faaec7b062902d9ed970c75d6becb1fd8e5ca0ed937e7d1513bd7ae545da407d0682039e50730cdb3136b58656128838ea2c58ac0
- languageName: node
- linkType: hard
-
-"@fortawesome/fontawesome-svg-core@npm:^6.5.1":
- version: 6.7.2
- resolution: "@fortawesome/fontawesome-svg-core@npm:6.7.2"
- dependencies:
- "@fortawesome/fontawesome-common-types": "npm:6.7.2"
- checksum: 10/a3767631329aaa8c1bfafc9470718628533ceb42365774cd0c121477e0f3125f3cce4c2447058deee2874829ce11aa7a3fe183b0000bad81cf5ed0449c8470ef
- languageName: node
- linkType: hard
-
-"@fortawesome/free-solid-svg-icons@npm:^6.5.1":
- version: 6.7.2
- resolution: "@fortawesome/free-solid-svg-icons@npm:6.7.2"
- dependencies:
- "@fortawesome/fontawesome-common-types": "npm:6.7.2"
- checksum: 10/efcd90cd5d333995ff4012a9d77a8b23523e246fa418524edf08bb6af8b14db2ee0b08ee5f7460a86474d352af06e1a2581cc827ee3706e9c0e92e178b50e27f
- languageName: node
- linkType: hard
-
-"@fortawesome/react-fontawesome@npm:^0.2.0":
- version: 0.2.6
- resolution: "@fortawesome/react-fontawesome@npm:0.2.6"
- dependencies:
- prop-types: "npm:^15.8.1"
- peerDependencies:
- "@fortawesome/fontawesome-svg-core": ~1 || ~6 || ~7
- react: ^16.3 || ^17.0.0 || ^18.0.0 || ^19.0.0
- checksum: 10/e1660d528e3b76eb7e8080a6179188adb9a9eb6ec76a3d18443a8a30bb4a12515fdec456c5c23ae805cdff75c8bae636249863d587f66745a889f3df630d05a4
- languageName: node
- linkType: hard
-
-"@fragnova/api-augment@npm:0.1.0-spec-1.0.4-mainnet":
- version: 0.1.0-spec-1.0.4-mainnet
- resolution: "@fragnova/api-augment@npm:0.1.0-spec-1.0.4-mainnet"
- dependencies:
- "@polkadot/api": "npm:^9.13.2"
- "@polkadot/rpc-provider": "npm:^9.13.2"
- "@polkadot/types": "npm:^9.13.2"
- checksum: 10/1ec7be09bb043cb911dbe7078f8f8acd8d600753b2d7b6b6a8e6d6af98904fdc90cdf5fe6f60a4f540ef31d6c7cbb492ebcc11a09a64bc997a91c0c737e1034d
- languageName: node
- linkType: hard
-
-"@frequency-chain/api-augment@npm:1.11.1":
- version: 1.11.1
- resolution: "@frequency-chain/api-augment@npm:1.11.1"
- dependencies:
- "@polkadot/api": "npm:^10.9.1"
- "@polkadot/rpc-provider": "npm:^10.9.1"
- "@polkadot/types": "npm:^10.9.1"
- checksum: 10/a6a10f9d98da168d307a7e1571843969114189c63a2de0b1aa02cce3a7f898b5ab3954bc95864dba16c67967c4912cff21474dbd2be789980e0e250a55348834
- languageName: node
- linkType: hard
-
-"@grpc/grpc-js@npm:^1.11.1":
- version: 1.14.3
- resolution: "@grpc/grpc-js@npm:1.14.3"
- dependencies:
- "@grpc/proto-loader": "npm:^0.8.0"
- "@js-sdsl/ordered-map": "npm:^4.4.2"
- checksum: 10/bb9bfe2f749179ae5ac7774d30486dfa2e0b004518c28de158b248e0f6f65f40138f01635c48266fa540670220f850216726e3724e1eb29d078817581c96e4db
- languageName: node
- linkType: hard
-
-"@grpc/proto-loader@npm:^0.7.13":
- version: 0.7.15
- resolution: "@grpc/proto-loader@npm:0.7.15"
- dependencies:
- lodash.camelcase: "npm:^4.3.0"
- long: "npm:^5.0.0"
- protobufjs: "npm:^7.2.5"
- yargs: "npm:^17.7.2"
- bin:
- proto-loader-gen-types: build/bin/proto-loader-gen-types.js
- checksum: 10/2e2b33ace8bc34211522751a9e654faf9ac997577a9e9291b1619b4c05d7878a74d2101c3bc43b2b2b92bca7509001678fb191d4eb100684cc2910d66f36c373
- languageName: node
- linkType: hard
-
-"@grpc/proto-loader@npm:^0.8.0":
- version: 0.8.0
- resolution: "@grpc/proto-loader@npm:0.8.0"
- dependencies:
- lodash.camelcase: "npm:^4.3.0"
- long: "npm:^5.0.0"
- protobufjs: "npm:^7.5.3"
- yargs: "npm:^17.7.2"
- bin:
- proto-loader-gen-types: build/bin/proto-loader-gen-types.js
- checksum: 10/216813bdca52cd3a84ac355ad93c2c3f54252be47327692fe666fd85baa5b1d50aa681ebc5626ab08926564fb2deae3b2ea435aa5bd883197650bbe56f2ae108
- languageName: node
- linkType: hard
-
-"@gulpjs/to-absolute-glob@npm:^4.0.0":
- version: 4.0.0
- resolution: "@gulpjs/to-absolute-glob@npm:4.0.0"
- dependencies:
- is-negated-glob: "npm:^1.0.0"
- checksum: 10/30ec7825064422b6f02c1975ab6c779ff73409411c37bec2e984262459935afd196c1dbe960075e914967a047743ccf726fce3d3ebb4417ca2e3c34538fbceb8
- languageName: node
- linkType: hard
-
-"@humanwhocodes/config-array@npm:^0.13.0":
- version: 0.13.0
- resolution: "@humanwhocodes/config-array@npm:0.13.0"
- dependencies:
- "@humanwhocodes/object-schema": "npm:^2.0.3"
- debug: "npm:^4.3.1"
- minimatch: "npm:^3.0.5"
- checksum: 10/524df31e61a85392a2433bf5d03164e03da26c03d009f27852e7dcfdafbc4a23f17f021dacf88e0a7a9fe04ca032017945d19b57a16e2676d9114c22a53a9d11
- languageName: node
- linkType: hard
-
-"@humanwhocodes/module-importer@npm:^1.0.1":
- version: 1.0.1
- resolution: "@humanwhocodes/module-importer@npm:1.0.1"
- checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3
- languageName: node
- linkType: hard
-
-"@humanwhocodes/object-schema@npm:^2.0.3":
- version: 2.0.3
- resolution: "@humanwhocodes/object-schema@npm:2.0.3"
- checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3
- languageName: node
- linkType: hard
-
-"@hypnosphi/create-react-context@npm:^0.3.1":
- version: 0.3.1
- resolution: "@hypnosphi/create-react-context@npm:0.3.1"
- dependencies:
- gud: "npm:^1.0.0"
- warning: "npm:^4.0.3"
- peerDependencies:
- prop-types: ^15.0.0
- react: ">=0.14.0"
- checksum: 10/79b697d150f9b4aa6cadfb8026f20e023c05fefc4be841b1cdd5567c3fd970ccaae84a0ea6279f579fe2cc9844c201e80713a2691b24e59cc7d6925fa8130c34
- languageName: node
- linkType: hard
-
-"@inquirer/external-editor@npm:^1.0.0":
- version: 1.0.3
- resolution: "@inquirer/external-editor@npm:1.0.3"
- dependencies:
- chardet: "npm:^2.1.1"
- iconv-lite: "npm:^0.7.0"
- peerDependencies:
- "@types/node": ">=18"
- peerDependenciesMeta:
- "@types/node":
- optional: true
- checksum: 10/c95d7237a885b32031715089f92820525731d4d3c2bd7afdb826307dc296cc2b39e7a644b0bb265441963348cca42e7785feb29c3aaf18fd2b63131769bf6587
- languageName: node
- linkType: hard
-
-"@interlay/interbtc-types@npm:1.13.0":
- version: 1.13.0
- resolution: "@interlay/interbtc-types@npm:1.13.0"
- checksum: 10/8c338d075e20c85beace6dd0f661c37dc6ec37207cb6f9c76abbd81cc4f446e36ad82c82006054c0b8bedf318cdf8c9ec2cf1e5ae35bc0abeca55a54cd2d8eb1
- languageName: node
- linkType: hard
-
-"@isaacs/balanced-match@npm:^4.0.1":
- version: 4.0.1
- resolution: "@isaacs/balanced-match@npm:4.0.1"
- checksum: 10/102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8
- languageName: node
- linkType: hard
-
-"@isaacs/brace-expansion@npm:^5.0.0":
- version: 5.0.0
- resolution: "@isaacs/brace-expansion@npm:5.0.0"
- dependencies:
- "@isaacs/balanced-match": "npm:^4.0.1"
- checksum: 10/cf3b7f206aff12128214a1df764ac8cdbc517c110db85249b945282407e3dfc5c6e66286383a7c9391a059fc8e6e6a8ca82262fc9d2590bd615376141fbebd2d
- languageName: node
- linkType: hard
-
-"@isaacs/cliui@npm:^8.0.2":
- version: 8.0.2
- resolution: "@isaacs/cliui@npm:8.0.2"
- dependencies:
- string-width: "npm:^5.1.2"
- string-width-cjs: "npm:string-width@^4.2.0"
- strip-ansi: "npm:^7.0.1"
- strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
- wrap-ansi: "npm:^8.1.0"
- wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
- checksum: 10/e9ed5fd27c3aec1095e3a16e0c0cf148d1fee55a38665c35f7b3f86a9b5d00d042ddaabc98e8a1cb7463b9378c15f22a94eb35e99469c201453eb8375191f243
- languageName: node
- linkType: hard
-
-"@isaacs/fs-minipass@npm:^4.0.0":
- version: 4.0.1
- resolution: "@isaacs/fs-minipass@npm:4.0.1"
- dependencies:
- minipass: "npm:^7.0.4"
- checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5
- languageName: node
- linkType: hard
-
-"@jamton/parachain-ts-interfaces@npm:1.10.4":
- version: 1.10.4
- resolution: "@jamton/parachain-ts-interfaces@npm:1.10.4"
- dependencies:
- "@polkadot/api": "npm:^15.0.0"
- checksum: 10/4b94986dfc5ed2b829e5b904994b7ce98007bcb235f35fde6de74fb0e7a466deb943b4c7c487a53b873630dbe8274b03d1cd3071d2e5b702aa8da932a796558a
- languageName: node
- linkType: hard
-
-"@jest/diff-sequences@npm:30.0.1":
- version: 30.0.1
- resolution: "@jest/diff-sequences@npm:30.0.1"
- checksum: 10/0ddb7c7ba92d6057a2ee51a9cfc2155b77cca707fe959167466ea02dcb0687018cc3c22b9622f25f3a417d6ad370e2d4dcfedf9f1410dc9c02954a7484423cc7
- languageName: node
- linkType: hard
-
-"@jest/expect-utils@npm:30.2.0":
- version: 30.2.0
- resolution: "@jest/expect-utils@npm:30.2.0"
- dependencies:
- "@jest/get-type": "npm:30.1.0"
- checksum: 10/f2442f1bceb3411240d0f16fd0074377211b4373d3b8b2dc28929e861b6527a6deb403a362c25afa511d933cda4dfbdc98d4a08eeb51ee4968f7cb0299562349
- languageName: node
- linkType: hard
-
-"@jest/get-type@npm:30.1.0":
- version: 30.1.0
- resolution: "@jest/get-type@npm:30.1.0"
- checksum: 10/e2a95fbb49ce2d15547db8af5602626caf9b05f62a5e583b4a2de9bd93a2bfe7175f9bbb2b8a5c3909ce261d467b6991d7265bb1d547cb60e7e97f571f361a70
- languageName: node
- linkType: hard
-
-"@jest/pattern@npm:30.0.1":
- version: 30.0.1
- resolution: "@jest/pattern@npm:30.0.1"
- dependencies:
- "@types/node": "npm:*"
- jest-regex-util: "npm:30.0.1"
- checksum: 10/afd03b4d3eadc9c9970cf924955dee47984a7e767901fe6fa463b17b246f0ddeec07b3e82c09715c54bde3c8abb92074160c0d79967bd23778724f184e7f5b7b
- languageName: node
- linkType: hard
-
-"@jest/schemas@npm:30.0.5":
- version: 30.0.5
- resolution: "@jest/schemas@npm:30.0.5"
- dependencies:
- "@sinclair/typebox": "npm:^0.34.0"
- checksum: 10/40df4db55d4aeed09d1c7e19caf23788309cea34490a1c5d584c913494195e698b9967e996afc27226cac6d76e7512fe73ae6b9584480695c60dd18a5459cdba
- languageName: node
- linkType: hard
-
-"@jest/types@npm:30.2.0":
- version: 30.2.0
- resolution: "@jest/types@npm:30.2.0"
- dependencies:
- "@jest/pattern": "npm:30.0.1"
- "@jest/schemas": "npm:30.0.5"
- "@types/istanbul-lib-coverage": "npm:^2.0.6"
- "@types/istanbul-reports": "npm:^3.0.4"
- "@types/node": "npm:*"
- "@types/yargs": "npm:^17.0.33"
- chalk: "npm:^4.1.2"
- checksum: 10/f50fcaea56f873a51d19254ab16762f2ea8ca88e3e08da2e496af5da2b67c322915a4fcd0153803cc05063ffe87ebef2ab4330e0a1b06ab984a26c916cbfc26b
- languageName: node
- linkType: hard
-
-"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5":
- version: 0.3.13
- resolution: "@jridgewell/gen-mapping@npm:0.3.13"
- dependencies:
- "@jridgewell/sourcemap-codec": "npm:^1.5.0"
- "@jridgewell/trace-mapping": "npm:^0.3.24"
- checksum: 10/902f8261dcf450b4af7b93f9656918e02eec80a2169e155000cb2059f90113dd98f3ccf6efc6072cee1dd84cac48cade51da236972d942babc40e4c23da4d62a
- languageName: node
- linkType: hard
-
-"@jridgewell/resolve-uri@npm:^3.1.0":
- version: 3.1.2
- resolution: "@jridgewell/resolve-uri@npm:3.1.2"
- checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d
- languageName: node
- linkType: hard
-
-"@jridgewell/source-map@npm:^0.3.3":
- version: 0.3.11
- resolution: "@jridgewell/source-map@npm:0.3.11"
- dependencies:
- "@jridgewell/gen-mapping": "npm:^0.3.5"
- "@jridgewell/trace-mapping": "npm:^0.3.25"
- checksum: 10/847f1177d3d133a0966ef61ca29abea0d79788a0652f90ee1893b3da968c190b7e31c3534cc53701179dd6b14601eef3d78644e727e05b1a08c68d281aedc4ba
- languageName: node
- linkType: hard
-
-"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5":
- version: 1.5.5
- resolution: "@jridgewell/sourcemap-codec@npm:1.5.5"
- checksum: 10/5d9d207b462c11e322d71911e55e21a4e2772f71ffe8d6f1221b8eb5ae6774458c1d242f897fb0814e8714ca9a6b498abfa74dfe4f434493342902b1a48b33a5
- languageName: node
- linkType: hard
-
-"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
- version: 0.3.31
- resolution: "@jridgewell/trace-mapping@npm:0.3.31"
- dependencies:
- "@jridgewell/resolve-uri": "npm:^3.1.0"
- "@jridgewell/sourcemap-codec": "npm:^1.4.14"
- checksum: 10/da0283270e691bdb5543806077548532791608e52386cfbbf3b9e8fb00457859d1bd01d512851161c886eb3a2f3ce6fd9bcf25db8edf3bddedd275bd4a88d606
- languageName: node
- linkType: hard
-
-"@js-sdsl/ordered-map@npm:^4.4.2":
- version: 4.4.2
- resolution: "@js-sdsl/ordered-map@npm:4.4.2"
- checksum: 10/ac64e3f0615ecc015461c9f527f124d2edaa9e68de153c1e270c627e01e83d046522d7e872692fd57a8c514578b539afceff75831c0d8b2a9a7a347fbed35af4
- languageName: node
- linkType: hard
-
-"@kiltprotocol/type-definitions@npm:^1.11502.1":
- version: 1.11502.1
- resolution: "@kiltprotocol/type-definitions@npm:1.11502.1"
- peerDependencies:
- "@polkadot/types": ^12.2.0
- checksum: 10/dc00532617383022d02583705122914f1e57036efdfd3d0b134f1298dfa75f1071316fb8dd2dd62c6b6ae74419f59f27011afecaa019f9f8e96eb5f12aad7ff4
- languageName: node
- linkType: hard
-
-"@kurkle/color@npm:^0.3.0":
- version: 0.3.4
- resolution: "@kurkle/color@npm:0.3.4"
- checksum: 10/a15bfb55eec4ff92ee27cdacff54e85c7497ec1f9e8e0e8eaec3d39320cc90b82eb7f716d92792a8235fad1617003c6e0c0d2cd07f6a79b7b138ca17ec5eb6e7
- languageName: node
- linkType: hard
-
-"@laminar/type-definitions@npm:0.3.1":
- version: 0.3.1
- resolution: "@laminar/type-definitions@npm:0.3.1"
- dependencies:
- "@open-web3/orml-type-definitions": "npm:^0.8.2-9"
- checksum: 10/3d5b833f52f17b43c7626d3ed635dbeb8f11d7c55b15329a474fe8709b7485e57af5218eb06c0c62a1007dc3451133ead54ff2cfe4e3551d1eb383bc429e658b
- languageName: node
- linkType: hard
-
-"@ledgerhq/devices@npm:8.5.0":
- version: 8.5.0
- resolution: "@ledgerhq/devices@npm:8.5.0"
- dependencies:
- "@ledgerhq/errors": "npm:^6.24.0"
- "@ledgerhq/logs": "npm:^6.13.0"
- rxjs: "npm:^7.8.1"
- semver: "npm:^7.3.5"
- checksum: 10/0b2c9aab492a25d575816a5d0d4013dc5ad8f55750d69462dbf4784d07477809922fab54264c4352b16be5f896d08399fd479511d27c6a1b52af90e0116484e5
- languageName: node
- linkType: hard
-
-"@ledgerhq/devices@npm:8.8.0, @ledgerhq/devices@npm:^8.4.4":
- version: 8.8.0
- resolution: "@ledgerhq/devices@npm:8.8.0"
- dependencies:
- "@ledgerhq/errors": "npm:^6.28.0"
- "@ledgerhq/logs": "npm:^6.13.0"
- rxjs: "npm:7.8.2"
- semver: "npm:^7.3.5"
- checksum: 10/cf70da13afd7cff7d61cc21405ce89ae69b19b47a207bd5c68a7535fe03281fdbdd45028ebba2c9b0e56cad2360ae330106100e9d82803edf0d3dc0daf8f4253
- languageName: node
- linkType: hard
-
-"@ledgerhq/errors@npm:^6.19.1, @ledgerhq/errors@npm:^6.24.0, @ledgerhq/errors@npm:^6.28.0":
- version: 6.28.0
- resolution: "@ledgerhq/errors@npm:6.28.0"
- checksum: 10/5a9497c5dc092ecba369cf60ef576c4d1efdaa7862e31e8d53fa3587d479b2aa79756b5df6ab64316c98bfc2dcc383e8a7f6ff7082a08ff65018a0671d5ae62a
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport-node-hid-noevents@npm:^6.30.16":
- version: 6.30.16
- resolution: "@ledgerhq/hw-transport-node-hid-noevents@npm:6.30.16"
- dependencies:
- "@ledgerhq/devices": "npm:8.8.0"
- "@ledgerhq/errors": "npm:^6.28.0"
- "@ledgerhq/hw-transport": "npm:6.31.15"
- "@ledgerhq/logs": "npm:^6.13.0"
- node-hid: "npm:2.1.2"
- checksum: 10/ef3f38d217afe88c323550f063ba70ab61342a67189fd4578a49b371cd66af71adb26b3dfe5d8966751b08b25109a826266c5123f2c23c53f42ab460355631a1
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport-node-hid-singleton@npm:^6.31.5":
- version: 6.31.16
- resolution: "@ledgerhq/hw-transport-node-hid-singleton@npm:6.31.16"
- dependencies:
- "@ledgerhq/devices": "npm:8.8.0"
- "@ledgerhq/errors": "npm:^6.28.0"
- "@ledgerhq/hw-transport": "npm:6.31.15"
- "@ledgerhq/hw-transport-node-hid-noevents": "npm:^6.30.16"
- "@ledgerhq/logs": "npm:^6.13.0"
- node-hid: "npm:2.1.2"
- usb: "npm:2.9.0"
- checksum: 10/914562390444e47364e55449e4bccecbfa0af6c7903b5b249d73b6fff85dfc60585957bfd3d21eece9ac6520e23371707c612860096c59aaeaa040152cd4639d
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport-webhid@npm:^6.29.4":
- version: 6.30.11
- resolution: "@ledgerhq/hw-transport-webhid@npm:6.30.11"
- dependencies:
- "@ledgerhq/devices": "npm:8.8.0"
- "@ledgerhq/errors": "npm:^6.28.0"
- "@ledgerhq/hw-transport": "npm:6.31.15"
- "@ledgerhq/logs": "npm:^6.13.0"
- checksum: 10/d9e7d4c5443e0c8144c4d4126e31c0489133bf27e911840a406736de6d7c525ac577ab4c99da29f1e39b4df3bab1f25a284e7494970427ba8c3e51daa90ea15d
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport-webusb@npm:^6.29.4":
- version: 6.29.15
- resolution: "@ledgerhq/hw-transport-webusb@npm:6.29.15"
- dependencies:
- "@ledgerhq/devices": "npm:8.8.0"
- "@ledgerhq/errors": "npm:^6.28.0"
- "@ledgerhq/hw-transport": "npm:6.31.15"
- "@ledgerhq/logs": "npm:^6.13.0"
- checksum: 10/099163b563254a518ba288d036534b2e13677aa1de2d013efe0cb6c6030aca2e42aa3358450a513386ca62ba06216ca8870b94b910cff5eea4d5c263e20e4ef6
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport@npm:6.31.15, @ledgerhq/hw-transport@npm:^6.31.4":
- version: 6.31.15
- resolution: "@ledgerhq/hw-transport@npm:6.31.15"
- dependencies:
- "@ledgerhq/devices": "npm:8.8.0"
- "@ledgerhq/errors": "npm:^6.28.0"
- "@ledgerhq/logs": "npm:^6.13.0"
- events: "npm:^3.3.0"
- checksum: 10/2a38ff10082f8a55114bff4d95e581f0356345446e625f6da5fd3c988552ac8ff0772cf4e381186dd29b864d5e15cb3b48f96ea0e1bc691f1855dae4b3c67b72
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport@npm:6.31.4":
- version: 6.31.4
- resolution: "@ledgerhq/hw-transport@npm:6.31.4"
- dependencies:
- "@ledgerhq/devices": "npm:^8.4.4"
- "@ledgerhq/errors": "npm:^6.19.1"
- "@ledgerhq/logs": "npm:^6.12.0"
- events: "npm:^3.3.0"
- checksum: 10/cf101e5b818e95e59031241d556dbec24658f54104910e414be493bc4b90b0aea50f5d4b3339a237dd0b12845bb2683c845f3a82f2ea9da4e077b68d1e1f7e48
- languageName: node
- linkType: hard
-
-"@ledgerhq/hw-transport@npm:6.31.9":
- version: 6.31.9
- resolution: "@ledgerhq/hw-transport@npm:6.31.9"
- dependencies:
- "@ledgerhq/devices": "npm:8.5.0"
- "@ledgerhq/errors": "npm:^6.24.0"
- "@ledgerhq/logs": "npm:^6.13.0"
- events: "npm:^3.3.0"
- checksum: 10/e12728604ddddc20453425fa020dea84c770bfbb0900a59dd91148783fb25db38d1e0768c964c5546cdbc3ed95575de5918c480639d22f7c5b8c3e3c65f9022f
- languageName: node
- linkType: hard
-
-"@ledgerhq/logs@npm:^6.12.0, @ledgerhq/logs@npm:^6.13.0":
- version: 6.13.0
- resolution: "@ledgerhq/logs@npm:6.13.0"
- checksum: 10/3ac984bdc533505359cd1d8bc74175547fcfa51fef6294a9fd832e8ea88d462a385be5cfe68ccfa1b77cd68b840243e6f79c2be66fe28f123ae57c58625edf5f
- languageName: node
- linkType: hard
-
-"@leichtgewicht/ip-codec@npm:^2.0.1":
- version: 2.0.5
- resolution: "@leichtgewicht/ip-codec@npm:2.0.5"
- checksum: 10/cb98c608392abe59457a14e00134e7dfa57c0c9b459871730cd4e907bb12b834cbd03e08ad8663fea9e486f260da7f1293ccd9af0376bf5524dd8536192f248c
- languageName: node
- linkType: hard
-
-"@logion/node-api@npm:0.27.0-4":
- version: 0.27.0-4
- resolution: "@logion/node-api@npm:0.27.0-4"
- dependencies:
- "@polkadot/api": "npm:^10.10.1"
- "@polkadot/util": "npm:^12.5.1"
- "@polkadot/util-crypto": "npm:^12.5.1"
- "@types/uuid": "npm:^9.0.2"
- fast-sha256: "npm:^1.3.0"
- uuid: "npm:^9.0.0"
- checksum: 10/a6ef4741b7a8d56405f77a6f7ac19d69a5d535a0e0930d0a055b1b515172d511f6595cd35d57d1c5f02a4a489cd3dfb4a67352dc6adc1615d9aa5f5c1be5e278
- languageName: node
- linkType: hard
-
-"@malept/cross-spawn-promise@npm:^1.1.0":
- version: 1.1.1
- resolution: "@malept/cross-spawn-promise@npm:1.1.1"
- dependencies:
- cross-spawn: "npm:^7.0.1"
- checksum: 10/8f04dcbe023e7ee4e82040e32aa29c1774a2d79a36d4a1df2da381281f99419e51a950c77d54662cfd2bc9195db2fbb0068e0f790ac08d7ad981180687051e96
- languageName: node
- linkType: hard
-
-"@malept/flatpak-bundler@npm:^0.4.0":
- version: 0.4.0
- resolution: "@malept/flatpak-bundler@npm:0.4.0"
- dependencies:
- debug: "npm:^4.1.1"
- fs-extra: "npm:^9.0.0"
- lodash: "npm:^4.17.15"
- tmp-promise: "npm:^3.0.2"
- checksum: 10/14e04215bcc3dc4cafe8343893ab869f69ad768272563cbb39e7d2e876dc5e03dde9f0c1b0506308a4d90d945871491b05b77c26521b2b4b38245aeed8085d3b
- languageName: node
- linkType: hard
-
-"@mangata-finance/type-definitions@npm:^2.1.2":
- version: 2.1.2
- resolution: "@mangata-finance/type-definitions@npm:2.1.2"
- peerDependencies:
- "@polkadot/types": ^10.9.1
- checksum: 10/268209142e7a2b8a4cf45ac9a6f7c8c2f4244fb99972e245eb2be57385252ab893ae2d295f1b2001ddd0c86b20169a249b76b90c12863355343022f79e3da048
- languageName: node
- linkType: hard
-
-"@metamask/detect-provider@npm:^2.0.0":
- version: 2.0.0
- resolution: "@metamask/detect-provider@npm:2.0.0"
- checksum: 10/5d108f87f0ae4197a479928cbfb6a15522b6cf8bbb26e1ef717814d71e9b5b4ac06c6aae7dc0bdcc4f4aaf36a24b2364d5d6f3732f73c8de6cac6c98b8a8cb9d
- languageName: node
- linkType: hard
-
-"@metaverse-network-sdk/type-definitions@npm:0.0.1-16":
- version: 0.0.1-16
- resolution: "@metaverse-network-sdk/type-definitions@npm:0.0.1-16"
- dependencies:
- lodash.merge: "npm:^4.6.2"
- checksum: 10/8e60e11381036594aad2c00d0caeb76f5d619abf789bdd67581fb12c245e2f128505c110d096e4a681f0165049883fa6a638aff0137d3174e1640ad1dacf597d
- languageName: node
- linkType: hard
-
-"@moonbeam-network/types-bundle@npm:1.0.2":
- version: 1.0.2
- resolution: "@moonbeam-network/types-bundle@npm:1.0.2"
- dependencies:
- "@biomejs/biome": "npm:*"
- "@polkadot/api": "npm:*"
- "@polkadot/api-base": "npm:*"
- "@polkadot/rpc-core": "npm:*"
- "@polkadot/typegen": "npm:*"
- "@polkadot/types": "npm:*"
- "@polkadot/types-codec": "npm:*"
- tsup: "npm:*"
- typescript: "npm:*"
- checksum: 10/994927e345515684ca067ab23b10b4d4a70a5ef1fa5e282dcc3b86d143eae103bbc4b19bc5526f3b850e92732b1b3e292527b868ecd095a40a5346a979d2b30c
- languageName: node
- linkType: hard
-
-"@multiformats/dns@npm:^1.0.3":
- version: 1.0.11
- resolution: "@multiformats/dns@npm:1.0.11"
- dependencies:
- buffer: "npm:^6.0.3"
- dns-packet: "npm:^5.6.1"
- hashlru: "npm:^2.3.0"
- p-queue: "npm:^9.0.0"
- progress-events: "npm:^1.0.0"
- uint8arrays: "npm:^5.0.2"
- checksum: 10/551305a0e0524888f27f7d51d65ff7b73eaecc9025c911e5f9ba0d465886a15a2db9d04abbf9a897a1e909628fa1e7bb218b3a84da3be4c5199a56d0020a6dd1
- languageName: node
- linkType: hard
-
-"@multiformats/mafmt@npm:^12.1.6":
- version: 12.1.6
- resolution: "@multiformats/mafmt@npm:12.1.6"
- dependencies:
- "@multiformats/multiaddr": "npm:^12.0.0"
- checksum: 10/53492ea6332e0d65a7952358b4ec67c9e07f10cc771886295820b14678786e74ee80ba94b779e308796e9298c14acccc910179a5458ac92a4b5d08155dbfec52
- languageName: node
- linkType: hard
-
-"@multiformats/multiaddr@npm:^12.0.0, @multiformats/multiaddr@npm:^12.1.14":
- version: 12.5.1
- resolution: "@multiformats/multiaddr@npm:12.5.1"
- dependencies:
- "@chainsafe/is-ip": "npm:^2.0.1"
- "@chainsafe/netmask": "npm:^2.0.0"
- "@multiformats/dns": "npm:^1.0.3"
- abort-error: "npm:^1.0.1"
- multiformats: "npm:^13.0.0"
- uint8-varint: "npm:^2.0.1"
- uint8arrays: "npm:^5.0.0"
- checksum: 10/3db0235ea276f4be55a606501ea240e48f39705a4e98a262d25ccd6eeb5e2adbf1ccb24452f8b2f5cf41cda5450ecda237920b672aee0e3e6033f3d56bc0d071
- languageName: node
- linkType: hard
-
-"@napi-rs/wasm-runtime@npm:^0.2.11":
- version: 0.2.12
- resolution: "@napi-rs/wasm-runtime@npm:0.2.12"
- dependencies:
- "@emnapi/core": "npm:^1.4.3"
- "@emnapi/runtime": "npm:^1.4.3"
- "@tybys/wasm-util": "npm:^0.10.0"
- checksum: 10/5fd518182427980c28bc724adf06c5f32f9a8915763ef560b5f7d73607d30cd15ac86d0cbd2eb80d4cfab23fc80d0876d89ca36a9daadcb864bc00917c94187c
- languageName: node
- linkType: hard
-
-"@noble/curves@npm:1.4.2, @noble/curves@npm:~1.4.0":
- version: 1.4.2
- resolution: "@noble/curves@npm:1.4.2"
- dependencies:
- "@noble/hashes": "npm:1.4.0"
- checksum: 10/f433a2e8811ae345109388eadfa18ef2b0004c1f79417553241db4f0ad0d59550be6298a4f43d989c627e9f7551ffae6e402a4edf0173981e6da95fc7cab5123
- languageName: node
- linkType: hard
-
-"@noble/curves@npm:^1.3.0, @noble/curves@npm:~1.9.2":
- version: 1.9.7
- resolution: "@noble/curves@npm:1.9.7"
- dependencies:
- "@noble/hashes": "npm:1.8.0"
- checksum: 10/3cfe2735ea94972988ca9e217e0ebb2044372a7160b2079bf885da789492a6291fc8bf76ca3d8bf8dee477847ee2d6fac267d1e6c4f555054059f5e8c4865d44
- languageName: node
- linkType: hard
-
-"@noble/hashes@npm:1.0.0":
- version: 1.0.0
- resolution: "@noble/hashes@npm:1.0.0"
- checksum: 10/cbe27966ed82daa0d6d984b168928719f139c8d96567cbc8b055b59a9fbd99ed9674d03e881cc93753b4f1cc94ffd466f116a68c0f25a8818bf220851b8e3bee
- languageName: node
- linkType: hard
-
-"@noble/hashes@npm:1.2.0":
- version: 1.2.0
- resolution: "@noble/hashes@npm:1.2.0"
- checksum: 10/c295684a2799f4ddad10a855efd9b82c70c27ac5f7437642df9700e120087c796851dd95b12d2e7596802303fe6afbfdf0f8733b5c7453f70c4c080746dde6ff
- languageName: node
- linkType: hard
-
-"@noble/hashes@npm:1.4.0, @noble/hashes@npm:~1.4.0":
- version: 1.4.0
- resolution: "@noble/hashes@npm:1.4.0"
- checksum: 10/e156e65794c473794c52fa9d06baf1eb20903d0d96719530f523cc4450f6c721a957c544796e6efd0197b2296e7cd70efeb312f861465e17940a3e3c7e0febc6
- languageName: node
- linkType: hard
-
-"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3, @noble/hashes@npm:~1.8.0":
- version: 1.8.0
- resolution: "@noble/hashes@npm:1.8.0"
- checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e
- languageName: node
- linkType: hard
-
-"@noble/hashes@npm:^2.0.1":
- version: 2.0.1
- resolution: "@noble/hashes@npm:2.0.1"
- checksum: 10/f4d00e7564eb4ff4e6d16be151dd0e404aede35f91e4372b0a8a6ec888379c1dd1e02c721b480af8e7853bea9637185b5cb9533970c5b77d60c254ead0cfd8f7
- languageName: node
- linkType: hard
-
-"@noble/secp256k1@npm:1.5.5":
- version: 1.5.5
- resolution: "@noble/secp256k1@npm:1.5.5"
- checksum: 10/7d8478ca71bff32f48d197c1dd4fbbb4cebf9c29b46b40dc89a49c680e73bbddd9e3ce8362817d730748d219406161909caf1a01155fda0c947955a3a726c8e3
- languageName: node
- linkType: hard
-
-"@noble/secp256k1@npm:1.7.1":
- version: 1.7.1
- resolution: "@noble/secp256k1@npm:1.7.1"
- checksum: 10/214d4756c20ed20809d948d0cc161e95664198cb127266faf747fd7deffe5444901f05fe9f833787738f2c6e60b09e544c2f737f42f73b3699e3999ba15b1b63
- languageName: node
- linkType: hard
-
-"@nodelib/fs.scandir@npm:2.1.5":
- version: 2.1.5
- resolution: "@nodelib/fs.scandir@npm:2.1.5"
- dependencies:
- "@nodelib/fs.stat": "npm:2.0.5"
- run-parallel: "npm:^1.1.9"
- checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b
- languageName: node
- linkType: hard
-
-"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
- version: 2.0.5
- resolution: "@nodelib/fs.stat@npm:2.0.5"
- checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0
- languageName: node
- linkType: hard
-
-"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
- version: 1.2.8
- resolution: "@nodelib/fs.walk@npm:1.2.8"
- dependencies:
- "@nodelib/fs.scandir": "npm:2.1.5"
- fastq: "npm:^1.6.0"
- checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0
- languageName: node
- linkType: hard
-
-"@nolyfill/is-core-module@npm:1.0.39":
- version: 1.0.39
- resolution: "@nolyfill/is-core-module@npm:1.0.39"
- checksum: 10/0d6e098b871eca71d875651288e1f0fa770a63478b0b50479c99dc760c64175a56b5b04f58d5581bbcc6b552b8191ab415eada093d8df9597ab3423c8cac1815
- languageName: node
- linkType: hard
-
-"@npmcli/agent@npm:^4.0.0":
- version: 4.0.0
- resolution: "@npmcli/agent@npm:4.0.0"
- dependencies:
- agent-base: "npm:^7.1.0"
- http-proxy-agent: "npm:^7.0.0"
- https-proxy-agent: "npm:^7.0.1"
- lru-cache: "npm:^11.2.1"
- socks-proxy-agent: "npm:^8.0.3"
- checksum: 10/1a81573becc60515031accc696e6405e9b894e65c12b98ef4aeee03b5617c41948633159dbf6caf5dde5b47367eeb749bdc7b7dfb21960930a9060a935c6f636
- languageName: node
- linkType: hard
-
-"@npmcli/fs@npm:^5.0.0":
- version: 5.0.0
- resolution: "@npmcli/fs@npm:5.0.0"
- dependencies:
- semver: "npm:^7.3.5"
- checksum: 10/4935c7719d17830d0f9fa46c50be17b2a3c945cec61760f6d0909bce47677c42e1810ca673305890f9e84f008ec4d8e841182f371e42100a8159d15f22249208
- languageName: node
- linkType: hard
-
-"@octokit/auth-token@npm:^3.0.0":
- version: 3.0.4
- resolution: "@octokit/auth-token@npm:3.0.4"
- checksum: 10/8e21e567e38ba307fa30497ad77801135e25c328ce8b363c1622a4afb408a7d3315d54082527b38ecd5b3a5449680d89cfca9cb10c516cacf3dfa01e4c8b7195
- languageName: node
- linkType: hard
-
-"@octokit/core@npm:^4.2.1":
- version: 4.2.4
- resolution: "@octokit/core@npm:4.2.4"
- dependencies:
- "@octokit/auth-token": "npm:^3.0.0"
- "@octokit/graphql": "npm:^5.0.0"
- "@octokit/request": "npm:^6.0.0"
- "@octokit/request-error": "npm:^3.0.0"
- "@octokit/types": "npm:^9.0.0"
- before-after-hook: "npm:^2.2.0"
- universal-user-agent: "npm:^6.0.0"
- checksum: 10/53ba8f990ce2c0ea4583d8c142377770c3ac8fb9221b563d82dbca9d642f19be49607b9e9b472767075e4afa16c2203339680d75f3ebf5ad853af2646e8604ca
- languageName: node
- linkType: hard
-
-"@octokit/endpoint@npm:^7.0.0":
- version: 7.0.6
- resolution: "@octokit/endpoint@npm:7.0.6"
- dependencies:
- "@octokit/types": "npm:^9.0.0"
- is-plain-object: "npm:^5.0.0"
- universal-user-agent: "npm:^6.0.0"
- checksum: 10/e8b9cc09aa8306d63cb0e5b65ac5d29fc421522c92810a9d70bbfef997bc8750fc339f1f4f60e1604c22db77457ea493c51849b0d61cbfcb8655b0c4f2640e4b
- languageName: node
- linkType: hard
-
-"@octokit/graphql@npm:^5.0.0":
- version: 5.0.6
- resolution: "@octokit/graphql@npm:5.0.6"
- dependencies:
- "@octokit/request": "npm:^6.0.0"
- "@octokit/types": "npm:^9.0.0"
- universal-user-agent: "npm:^6.0.0"
- checksum: 10/6014690d184d7b2bfb56ab9be5ddbe4f5c77aa6031d71ec2caf5f56cbd32f4a5b0601049cef7dce1ca8010b89a9fc8bb07ce7833e6213c5bc77b7a564b1f40b9
- languageName: node
- linkType: hard
-
-"@octokit/openapi-types@npm:^18.0.0":
- version: 18.1.1
- resolution: "@octokit/openapi-types@npm:18.1.1"
- checksum: 10/bd2920a238f74c6ccc1e2ee916bd3e17adeeef3bbb1726f821b8722dceaeff5ea2786b3170cc25dd51775cb9179d3cdf448a3526e70b8a1fc21cdd8aa52e5d4c
- languageName: node
- linkType: hard
-
-"@octokit/plugin-paginate-rest@npm:^6.1.2":
- version: 6.1.2
- resolution: "@octokit/plugin-paginate-rest@npm:6.1.2"
- dependencies:
- "@octokit/tsconfig": "npm:^1.0.2"
- "@octokit/types": "npm:^9.2.3"
- peerDependencies:
- "@octokit/core": ">=4"
- checksum: 10/6d5b97fb44a3ed8ff25196b56ebe7bdac64f4023c165792f77938c77876934c01b46e79b83712e26cd3f2f9e36e0735bd3c292a37e8060a2b259f3a6456116dc
- languageName: node
- linkType: hard
-
-"@octokit/plugin-request-log@npm:^1.0.4":
- version: 1.0.4
- resolution: "@octokit/plugin-request-log@npm:1.0.4"
- peerDependencies:
- "@octokit/core": ">=3"
- checksum: 10/2086db00056aee0f8ebd79797b5b57149ae1014e757ea08985b71eec8c3d85dbb54533f4fd34b6b9ecaa760904ae6a7536be27d71e50a3782ab47809094bfc0c
- languageName: node
- linkType: hard
-
-"@octokit/plugin-rest-endpoint-methods@npm:^7.1.2":
- version: 7.2.3
- resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3"
- dependencies:
- "@octokit/types": "npm:^10.0.0"
- peerDependencies:
- "@octokit/core": ">=3"
- checksum: 10/59fb4e786ab85a5f3ad701e1b193dd3113833cfd1f2657cb06864e45b80a53a1f9ba6c3c66a855c4bf2593c539299fdfe51db639e3a87dc16ffa7602fe9bb999
- languageName: node
- linkType: hard
-
-"@octokit/request-error@npm:^3.0.0":
- version: 3.0.3
- resolution: "@octokit/request-error@npm:3.0.3"
- dependencies:
- "@octokit/types": "npm:^9.0.0"
- deprecation: "npm:^2.0.0"
- once: "npm:^1.4.0"
- checksum: 10/5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0
- languageName: node
- linkType: hard
-
-"@octokit/request@npm:^6.0.0":
- version: 6.2.8
- resolution: "@octokit/request@npm:6.2.8"
- dependencies:
- "@octokit/endpoint": "npm:^7.0.0"
- "@octokit/request-error": "npm:^3.0.0"
- "@octokit/types": "npm:^9.0.0"
- is-plain-object: "npm:^5.0.0"
- node-fetch: "npm:^2.6.7"
- universal-user-agent: "npm:^6.0.0"
- checksum: 10/47188fa08d28e5e9e6a22f84058fc13f108cdcb68aea97686da4718d32d3ddda8fde8a5c9f189057e3d466560b67c2305a2e343d1eed9517b47a13f68cb329e7
- languageName: node
- linkType: hard
-
-"@octokit/rest@npm:^19.0.5":
- version: 19.0.13
- resolution: "@octokit/rest@npm:19.0.13"
- dependencies:
- "@octokit/core": "npm:^4.2.1"
- "@octokit/plugin-paginate-rest": "npm:^6.1.2"
- "@octokit/plugin-request-log": "npm:^1.0.4"
- "@octokit/plugin-rest-endpoint-methods": "npm:^7.1.2"
- checksum: 10/7fbee09a2f832be6802a026713aa93cbf82dcfc8103d68c585b23214caf0accfced6efe2c49169158d39875d5c5ad3994b83b02e26537b75687ac16d0572c212
- languageName: node
- linkType: hard
-
-"@octokit/tsconfig@npm:^1.0.2":
- version: 1.0.2
- resolution: "@octokit/tsconfig@npm:1.0.2"
- checksum: 10/74d56f3e9f326a8dd63700e9a51a7c75487180629c7a68bbafee97c612fbf57af8347369bfa6610b9268a3e8b833c19c1e4beb03f26db9a9dce31f6f7a19b5b1
- languageName: node
- linkType: hard
-
-"@octokit/types@npm:^10.0.0":
- version: 10.0.0
- resolution: "@octokit/types@npm:10.0.0"
- dependencies:
- "@octokit/openapi-types": "npm:^18.0.0"
- checksum: 10/6345e605d30c99639a0207cfc7bea5bf29d9007e93cdcd78be3f8218830a462a0f0fbb976f5c2d9ebe70ee2aa33d1b72243cdb955478581ee2cead059ac4f030
- languageName: node
- linkType: hard
-
-"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3":
- version: 9.3.2
- resolution: "@octokit/types@npm:9.3.2"
- dependencies:
- "@octokit/openapi-types": "npm:^18.0.0"
- checksum: 10/4bcd18850d5397e5835f5686be88ad95e5d7c23e7d53f898b82a8ca5fc1f6a7b53816ef6f9f3b7a06799c0b030d259bf2bd50a258a1656df2dc7f3e533e334f8
- languageName: node
- linkType: hard
-
-"@open-web3/orml-type-definitions@npm:1.1.4, @open-web3/orml-type-definitions@npm:^1.1.4":
- version: 1.1.4
- resolution: "@open-web3/orml-type-definitions@npm:1.1.4"
- dependencies:
- lodash.merge: "npm:^4.6.2"
- checksum: 10/a57d7b29aa9110ddb7d4d5fd0613b248ce5883fbf879fa8d510418f0339de4431f85070b21c4be25f51d7a3c1731063c2f60e547177e9d0285fb894e5c77f78e
- languageName: node
- linkType: hard
-
-"@open-web3/orml-type-definitions@npm:^0.8.2-9":
- version: 0.8.2-11
- resolution: "@open-web3/orml-type-definitions@npm:0.8.2-11"
- checksum: 10/4a4b8380c6a4ae66513ce7db0379e60880fead9b22b9bb7460da058bad5fbd9b429d7ce8aa88adb59b3e2e5ccaab3865be061a8006a339e84b504ded83d61aee
- languageName: node
- linkType: hard
-
-"@open-web3/orml-type-definitions@npm:^0.9.4-38, @open-web3/orml-type-definitions@npm:^0.9.4-7":
- version: 0.9.4-38
- resolution: "@open-web3/orml-type-definitions@npm:0.9.4-38"
- dependencies:
- lodash.merge: "npm:^4.6.2"
- checksum: 10/73931241e560471980f262c06cc3fc4d9a2b8d95eb7fb3a5c51be9f268824adc383175159d750dad4ce4c14533070d9dbcbe2d2d42ba207a7a47e3c95fc95171
- languageName: node
- linkType: hard
-
-"@open-web3/orml-type-definitions@npm:^2.0.1":
- version: 2.0.1
- resolution: "@open-web3/orml-type-definitions@npm:2.0.1"
- dependencies:
- lodash.merge: "npm:^4.6.2"
- checksum: 10/4fa2ae4b5e60e6da370d0ecaa920b42992978c159a5d2d85dc704c9cfe5dc8b9a770bf3da21f2cf2dd4c4c8fe30112d7ffc02d8f22ec0760edf1f43acbd21872
- languageName: node
- linkType: hard
-
-"@parallel-finance/type-definitions@npm:2.0.1":
- version: 2.0.1
- resolution: "@parallel-finance/type-definitions@npm:2.0.1"
- dependencies:
- "@open-web3/orml-type-definitions": "npm:^2.0.1"
- checksum: 10/10667f654ef80f11b75c68ba6a8a69536b06b5c83bba8a313220963cca433735917bcc237f9799834793a949a61e2a293b30cb252e78a3ccf249e290177e78ae
- languageName: node
- linkType: hard
-
-"@peaqnetwork/type-definitions@npm:0.0.4":
- version: 0.0.4
- resolution: "@peaqnetwork/type-definitions@npm:0.0.4"
- dependencies:
- "@open-web3/orml-type-definitions": "npm:^0.9.4-38"
- checksum: 10/94ee4aaedfda61dcd47db745dcdd107290d543776f067ad97c9ca52cbb6abe9d9c14255f9e291a264981ab10082286381b8cd3819d1830836c959957983d8ba0
- languageName: node
- linkType: hard
-
-"@pendulum-chain/type-definitions@npm:0.3.8":
- version: 0.3.8
- resolution: "@pendulum-chain/type-definitions@npm:0.3.8"
- dependencies:
- "@babel/runtime": "npm:^7.10.2"
- "@open-web3/orml-type-definitions": "npm:^1.1.4"
- checksum: 10/64fc2a4d505abb00dc28e9901c7ac2c97c726601debf8b76182d4a93ee277e4e6ccb2109e31d11239cecb7a07e6109685c01476646633e13e4a2329de3da8cc4
- languageName: node
- linkType: hard
-
-"@pezkuwi/api-augment@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/api-augment@npm:16.5.6"
- dependencies:
- "@pezkuwi/api-base": "npm:16.5.4"
- "@pezkuwi/rpc-augment": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-augment": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/54b0f8c06dcca43da412c810ad544112357143d9eee17e0f0c24c3ca148ac7806b3ccf2301656e015deb4cf7b20bb6e0a96ea2dd60a75df8d0b810391faf55ed
- languageName: node
- linkType: hard
-
-"@pezkuwi/api-base@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/api-base@npm:16.5.6"
- dependencies:
- "@pezkuwi/rpc-core": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/c38cac539b1d33ba827184c5274f2819b5ae74a75418580544782efd4b29864b899211b5a63b616a72dc32ad92e9ed3fb7f76b844097127caf57938102f2d680
- languageName: node
- linkType: hard
-
-"@pezkuwi/api-contract@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/api-contract@npm:16.5.6"
- dependencies:
- "@pezkuwi/api": "npm:16.5.4"
- "@pezkuwi/api-augment": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/types-create": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- "@pezkuwi/util-crypto": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/2459010d575e48e648d059424223857c923e17cdc5847a557078f42f2afb9c8db767f98ffd124863215de73f861ca88a6dbd3035d49bccffb03f824816b82e32
- languageName: node
- linkType: hard
-
-"@pezkuwi/api-derive@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/api-derive@npm:16.5.6"
- dependencies:
- "@pezkuwi/api": "npm:16.5.4"
- "@pezkuwi/api-augment": "npm:16.5.4"
- "@pezkuwi/api-base": "npm:16.5.4"
- "@pezkuwi/rpc-core": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- "@pezkuwi/util-crypto": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/6275f558dfaced4342354c439ab3a4f69cd8b21017f7949b61de7ab8c75d5639b11469084025a5afef66ecc16471385a42d6aa941f31c26cf6f19eb2e482412c
- languageName: node
- linkType: hard
-
-"@pezkuwi/api@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/api@npm:16.5.6"
- dependencies:
- "@pezkuwi/api-augment": "npm:16.5.4"
- "@pezkuwi/api-base": "npm:16.5.4"
- "@pezkuwi/api-derive": "npm:16.5.4"
- "@pezkuwi/keyring": "npm:^14.0.1"
- "@pezkuwi/rpc-augment": "npm:16.5.4"
- "@pezkuwi/rpc-core": "npm:16.5.4"
- "@pezkuwi/rpc-provider": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-augment": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/types-create": "npm:16.5.4"
- "@pezkuwi/types-known": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- "@pezkuwi/util-crypto": "npm:^14.0.1"
- eventemitter3: "npm:^5.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/aefde0198067bf9b41481bda88d2c326ab0ffff25c857f775ce2b2ef45265f8fec25d8cf75529ab4c1076cfe7d97666717bb3e9255ed4a74a705a251e6f22802
- languageName: node
- linkType: hard
-
-"@pezkuwi/app-accounts@workspace:packages/page-accounts":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-accounts@workspace:packages/page-accounts"
- dependencies:
- "@pezkuwi/hw-ledger": "npm:^14.0.5"
- "@pezkuwi/phishing": "npm:^0.25.26"
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-hooks": "npm:^0.168.2-0-x"
- "@pezkuwi/test-support": "npm:0.168.2-0-x"
- "@pezkuwi/util": "npm:^14.0.5"
- "@polkadot/vanitygen": "npm:^0.63.18"
- detect-browser: "npm:^5.3.0"
- file-saver: "npm:^2.0.5"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-addresses@workspace:packages/page-addresses":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-addresses@workspace:packages/page-addresses"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@testing-library/react": "npm:^14.1.2"
- file-saver: "npm:^2.0.5"
- testcontainers: "npm:^10.4.0"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-alliance@workspace:packages/page-alliance":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-alliance@workspace:packages/page-alliance"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-ambassador@workspace:packages/page-ambassador":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-ambassador@workspace:packages/page-ambassador"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-assets@workspace:packages/page-assets":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-assets@workspace:packages/page-assets"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-bounties@workspace:packages/page-bounties":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-bounties@workspace:packages/page-bounties"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/test-support": "npm:0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-broker@workspace:packages/page-broker":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-broker@workspace:packages/page-broker"
- dependencies:
- "@pezkuwi/react-components": "npm:0.168.2-0-x"
- "@pezkuwi/react-query": "npm:0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-calendar@workspace:packages/page-calendar":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-calendar@workspace:packages/page-calendar"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-claims@workspace:packages/page-claims":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-claims@workspace:packages/page-claims"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- secp256k1: "npm:^3.8.0"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-collator@workspace:packages/page-collator":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-collator@workspace:packages/page-collator"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-contracts@workspace:packages/page-contracts":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-contracts@workspace:packages/page-contracts"
- dependencies:
- "@pezkuwi/api-contract": "npm:16.5.2"
- eventemitter3: "npm:^5.0.1"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-coretime@workspace:packages/page-coretime":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-coretime@workspace:packages/page-coretime"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-council@workspace:packages/page-council":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-council@workspace:packages/page-council"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-democracy@workspace:packages/page-democracy":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-democracy@workspace:packages/page-democracy"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-explorer@npm:^0.168.2-0-x, @pezkuwi/app-explorer@workspace:packages/page-explorer":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-explorer@workspace:packages/page-explorer"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-extrinsics@workspace:packages/page-extrinsics":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-extrinsics@workspace:packages/page-extrinsics"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-params": "npm:^0.168.2-0-x"
- "@pezkuwi/react-signer": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-fellowship@workspace:packages/page-fellowship":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-fellowship@workspace:packages/page-fellowship"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-files@workspace:packages/page-files":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-files@workspace:packages/page-files"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- axios: "npm:^1.6.2"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-gilt@workspace:packages/page-gilt":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-gilt@workspace:packages/page-gilt"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-js@workspace:packages/page-js":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-js@workspace:packages/page-js"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-membership@workspace:packages/page-membership":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-membership@workspace:packages/page-membership"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-nfts@workspace:packages/page-nfts":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-nfts@workspace:packages/page-nfts"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-nis@workspace:packages/page-nis":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-nis@workspace:packages/page-nis"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-parachains@workspace:packages/page-parachains":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-parachains@workspace:packages/page-parachains"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-poll@workspace:packages/page-poll":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-poll@workspace:packages/page-poll"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-preimages@workspace:packages/page-preimages":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-preimages@workspace:packages/page-preimages"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-ranked@workspace:packages/page-ranked":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-ranked@workspace:packages/page-ranked"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-referenda@workspace:packages/page-referenda":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-referenda@workspace:packages/page-referenda"
- dependencies:
- chart.js: "npm:^4.4.1"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-rpc@workspace:packages/page-rpc":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-rpc@workspace:packages/page-rpc"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-runtime@workspace:packages/page-runtime":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-runtime@workspace:packages/page-runtime"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-scheduler@workspace:packages/page-scheduler":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-scheduler@workspace:packages/page-scheduler"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-settings@workspace:packages/page-settings":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-settings@workspace:packages/page-settings"
- dependencies:
- "@pezkuwi/apps-config": "npm:^0.168.2-0-x"
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- query-string: "npm:^8.1.0"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-signing@workspace:packages/page-signing":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-signing@workspace:packages/page-signing"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-society@workspace:packages/page-society":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-society@workspace:packages/page-society"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-staking-async@workspace:packages/page-staking-async":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-staking-async@workspace:packages/page-staking-async"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-staking-legacy@workspace:packages/page-staking-legacy":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-staking-legacy@workspace:packages/page-staking-legacy"
- dependencies:
- "@pezkuwi/app-explorer": "npm:^0.168.2-0-x"
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-staking2@workspace:packages/page-staking2":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-staking2@workspace:packages/page-staking2"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-staking@workspace:packages/page-staking":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-staking@workspace:packages/page-staking"
- dependencies:
- "@pezkuwi/app-explorer": "npm:^0.168.2-0-x"
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-storage@workspace:packages/page-storage":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-storage@workspace:packages/page-storage"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-params": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-sudo@workspace:packages/page-sudo":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-sudo@workspace:packages/page-sudo"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-tech-comm@workspace:packages/page-tech-comm":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-tech-comm@workspace:packages/page-tech-comm"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-treasury@workspace:packages/page-treasury":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-treasury@workspace:packages/page-treasury"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-utilities@workspace:packages/page-utilities":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-utilities@workspace:packages/page-utilities"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-params": "npm:^0.168.2-0-x"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/app-whitelist@workspace:packages/page-whitelist":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/app-whitelist@workspace:packages/page-whitelist"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/apps-config@npm:^0.168.2-0-x, @pezkuwi/apps-config@workspace:packages/apps-config":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/apps-config@workspace:packages/apps-config"
- dependencies:
- "@acala-network/type-definitions": "npm:5.1.2"
- "@bifrost-finance/type-definitions": "npm:1.11.3"
- "@crustio/type-definitions": "npm:1.3.0"
- "@darwinia/types": "npm:2.8.10"
- "@darwinia/types-known": "npm:2.8.10"
- "@digitalnative/type-definitions": "npm:1.1.27"
- "@docknetwork/node-types": "npm:0.16.0"
- "@edgeware/node-types": "npm:3.6.2-wako"
- "@equilab/definitions": "npm:1.4.18"
- "@fragnova/api-augment": "npm:0.1.0-spec-1.0.4-mainnet"
- "@frequency-chain/api-augment": "npm:1.11.1"
- "@interlay/interbtc-types": "npm:1.13.0"
- "@jamton/parachain-ts-interfaces": "npm:1.10.4"
- "@kiltprotocol/type-definitions": "npm:^1.11502.1"
- "@laminar/type-definitions": "npm:0.3.1"
- "@logion/node-api": "npm:0.27.0-4"
- "@mangata-finance/type-definitions": "npm:^2.1.2"
- "@metaverse-network-sdk/type-definitions": "npm:0.0.1-16"
- "@moonbeam-network/types-bundle": "npm:1.0.2"
- "@parallel-finance/type-definitions": "npm:2.0.1"
- "@peaqnetwork/type-definitions": "npm:0.0.4"
- "@pendulum-chain/type-definitions": "npm:0.3.8"
- "@pezkuwi/api": "npm:^16.5.2"
- "@pezkuwi/api-derive": "npm:^16.5.2"
- "@pezkuwi/networks": "npm:^14.0.5"
- "@pezkuwi/react-identicon": "npm:^3.17.1"
- "@pezkuwi/types": "npm:^16.5.2"
- "@pezkuwi/types-codec": "npm:^16.5.2"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- "@pezkuwi/wasm-util": "npm:^7.5.2"
- "@pezkuwi/x-fetch": "npm:^14.0.5"
- "@pezkuwi/x-ws": "npm:^14.0.5"
- "@phala/typedefs": "npm:0.2.33"
- "@polymeshassociation/polymesh-types": "npm:5.7.0"
- "@snowfork/snowbridge-types": "npm:0.2.7"
- "@sora-substrate/type-definitions": "npm:1.27.7"
- "@subsocial/definitions": "npm:0.8.14"
- "@unique-nft/opal-testnet-types": "npm:1003.70.0"
- "@unique-nft/quartz-mainnet-types": "npm:1003.70.0"
- "@unique-nft/sapphire-mainnet-types": "npm:1003.70.0"
- "@unique-nft/unique-mainnet-types": "npm:1001.63.0"
- "@zeitgeistpm/type-defs": "npm:1.0.0"
- "@zeroio/type-definitions": "npm:0.0.14"
- pontem-types-bundle: "npm:1.0.15"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/apps-electron@workspace:packages/apps-electron":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/apps-electron@workspace:packages/apps-electron"
- dependencies:
- "@pezkuwi/dev": "npm:^0.85.2"
- "@types/tmp": "npm:^0.2.6"
- copy-webpack-plugin: "npm:^11.0.0"
- electron: "npm:28.0.0"
- electron-builder: "npm:24.10.0"
- electron-builder-notarize: "npm:^1.5.1"
- electron-log: "npm:^5.0.1"
- electron-updater: "npm:^6.1.7"
- html-webpack-plugin: "npm:^5.5.4"
- tmp: "npm:^0.2.1"
- peerDependencies:
- webpack: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/apps-routing@npm:^0.168.2-0-x, @pezkuwi/apps-routing@workspace:packages/apps-routing":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/apps-routing@workspace:packages/apps-routing"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/apps@workspace:packages/apps":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/apps@workspace:packages/apps"
- dependencies:
- "@acala-network/chopsticks-core": "npm:^1.2.1"
- "@pezkuwi/apps-config": "npm:^0.168.2-0-x"
- "@pezkuwi/apps-routing": "npm:^0.168.2-0-x"
- "@pezkuwi/dev": "npm:^0.85.2"
- "@pezkuwi/react-api": "npm:^0.168.2-0-x"
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@pezkuwi/react-hooks": "npm:^0.168.2-0-x"
- "@pezkuwi/react-params": "npm:^0.168.2-0-x"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- "@pezkuwi/react-signer": "npm:^0.168.2-0-x"
- "@types/punycode": "npm:^2.1.3"
- assert: "npm:^2.1.0"
- buffer: "npm:^6.0.3"
- copy-webpack-plugin: "npm:^11.0.0"
- crypto-browserify: "npm:^3.12.0"
- css-loader: "npm:^6.8.1"
- empty: "npm:^0.10.1"
- html-webpack-plugin: "npm:^5.5.4"
- https-browserify: "npm:^1.0.0"
- mini-css-extract-plugin: "npm:^2.7.6"
- os-browserify: "npm:^0.3.0"
- path-browserify: "npm:^1.0.1"
- process: "npm:^0.11.10"
- punycode: "npm:^2.3.1"
- query-string: "npm:^8.1.0"
- react: "npm:^18.2.0"
- react-dom: "npm:^18.2.0"
- react-is: "npm:^18.2.0"
- stream-browserify: "npm:^3.0.0"
- stream-http: "npm:^3.2.0"
- ts-loader: "npm:^9.5.1"
- peerDependencies:
- typescript: "*"
- webpack: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/dev-test@npm:^0.84.2":
- version: 0.84.3
- resolution: "@pezkuwi/dev-test@npm:0.84.3"
- dependencies:
- jsdom: "npm:^24.0.0"
- tslib: "npm:^2.7.0"
- checksum: 10/5d8b8c0b83c471867e623b642d493a348153ab1416cbe322445c3ffbc08362484b28bb23cfc6d8afb312b30d2d95a424c1816bd9549c54e0ddea884944915931
- languageName: node
- linkType: hard
-
-"@pezkuwi/dev-ts@npm:^0.84.2":
- version: 0.84.3
- resolution: "@pezkuwi/dev-ts@npm:0.84.3"
- dependencies:
- json5: "npm:^2.2.3"
- tslib: "npm:^2.7.0"
- typescript: "npm:^5.5.4"
- checksum: 10/054b1254a0c5c995ac4150bf05ad984f847917528c3bbb06a3f2966b71900e66d0c4eda3e4f9c9bcc2cfb64c9482072c7ee1e131c76a173103c8012782695259
- languageName: node
- linkType: hard
-
-"@pezkuwi/dev@npm:^0.85.2":
- version: 0.85.3
- resolution: "@pezkuwi/dev@npm:0.85.3"
- dependencies:
- "@eslint/js": "npm:^8.56.0"
- "@pezkuwi/dev-test": "npm:^0.84.2"
- "@pezkuwi/dev-ts": "npm:^0.84.2"
- "@rollup/plugin-alias": "npm:^5.1.1"
- "@rollup/plugin-commonjs": "npm:^25.0.8"
- "@rollup/plugin-dynamic-import-vars": "npm:^2.1.5"
- "@rollup/plugin-inject": "npm:^5.0.5"
- "@rollup/plugin-json": "npm:^6.1.0"
- "@rollup/plugin-node-resolve": "npm:^15.3.1"
- "@tsconfig/strictest": "npm:^2.0.2"
- "@typescript-eslint/eslint-plugin": "npm:^6.19.1"
- "@typescript-eslint/parser": "npm:^6.19.1"
- eslint: "npm:^8.56.0"
- eslint-config-standard: "npm:^17.1.0"
- eslint-import-resolver-node: "npm:^0.3.9"
- eslint-import-resolver-typescript: "npm:^3.6.1"
- eslint-plugin-deprecation: "npm:^2.0.0"
- eslint-plugin-header: "npm:^3.1.1"
- eslint-plugin-import: "npm:^2.29.1"
- eslint-plugin-import-newlines: "npm:^1.3.4"
- eslint-plugin-jest: "npm:^27.6.3"
- eslint-plugin-n: "npm:^16.6.2"
- eslint-plugin-promise: "npm:^6.1.1"
- eslint-plugin-react: "npm:^7.33.2"
- eslint-plugin-react-hooks: "npm:^4.6.0"
- eslint-plugin-simple-import-sort: "npm:^10.0.0"
- eslint-plugin-sort-destructure-keys: "npm:^1.5.0"
- espree: "npm:^9.6.1"
- gh-pages: "npm:^6.1.1"
- gh-release: "npm:^7.0.2"
- globals: "npm:^13.24.0"
- json5: "npm:^2.2.3"
- madge: "npm:^6.1.0"
- rollup: "npm:^4.9.6"
- rollup-plugin-cleanup: "npm:^3.2.1"
- tslib: "npm:^2.7.0"
- typescript: "npm:^5.5.4"
- webpack: "npm:^5.89.0"
- webpack-cli: "npm:^5.1.4"
- webpack-dev-server: "npm:^4.15.1"
- webpack-merge: "npm:^5.10.0"
- webpack-subresource-integrity: "npm:^5.2.0-rc.1"
- yargs: "npm:^17.7.2"
- bin:
- pezkuwi-ci-ghact-build: scripts/pezkuwi-ci-ghact-build.mjs
- pezkuwi-ci-ghact-docs: scripts/pezkuwi-ci-ghact-docs.mjs
- pezkuwi-ci-ghpages-force: scripts/pezkuwi-ci-ghpages-force.mjs
- pezkuwi-dev-build-docs: scripts/pezkuwi-dev-build-docs.mjs
- pezkuwi-dev-build-ts: scripts/pezkuwi-dev-build-ts.mjs
- pezkuwi-dev-circular: scripts/pezkuwi-dev-circular.mjs
- pezkuwi-dev-clean-build: scripts/pezkuwi-dev-clean-build.mjs
- pezkuwi-dev-contrib: scripts/pezkuwi-dev-contrib.mjs
- pezkuwi-dev-copy-dir: scripts/pezkuwi-dev-copy-dir.mjs
- pezkuwi-dev-copy-to: scripts/pezkuwi-dev-copy-to.mjs
- pezkuwi-dev-deno-map: scripts/pezkuwi-dev-deno-map.mjs
- pezkuwi-dev-run-lint: scripts/pezkuwi-dev-run-lint.mjs
- pezkuwi-dev-run-node-ts: scripts/pezkuwi-dev-run-node-ts.mjs
- pezkuwi-dev-run-test: scripts/pezkuwi-dev-run-test.mjs
- pezkuwi-dev-version: scripts/pezkuwi-dev-version.mjs
- pezkuwi-dev-yarn-only: scripts/pezkuwi-dev-yarn-only.mjs
- pezkuwi-exec-eslint: scripts/pezkuwi-exec-eslint.mjs
- pezkuwi-exec-ghpages: scripts/pezkuwi-exec-ghpages.mjs
- pezkuwi-exec-ghrelease: scripts/pezkuwi-exec-ghrelease.mjs
- pezkuwi-exec-node-test: scripts/pezkuwi-exec-node-test.mjs
- pezkuwi-exec-rollup: scripts/pezkuwi-exec-rollup.mjs
- pezkuwi-exec-tsc: scripts/pezkuwi-exec-tsc.mjs
- pezkuwi-exec-webpack: scripts/pezkuwi-exec-webpack.mjs
- checksum: 10/d5d233b0dc6c324cd508d23f80fa42ddbe5045ba225bb6e1f43f192bc2875cddb72001807da2a8faa81d1498714a2d8cb3e51ed89be6a23ceee79f5af1de9a73
- languageName: node
- linkType: hard
-
-"@pezkuwi/extension-compat-metamask@npm:^0.62.14":
- version: 0.62.14
- resolution: "@pezkuwi/extension-compat-metamask@npm:0.62.14"
- dependencies:
- "@metamask/detect-provider": "npm:^2.0.0"
- "@pezkuwi/extension-inject": "workspace:*"
- "@pezkuwi/types": "npm:^16.5.3"
- "@pezkuwi/util": "npm:^14.0.5"
- tslib: "npm:^2.8.1"
- web3: "npm:^4.7.0"
- peerDependencies:
- "@pezkuwi/api": "*"
- "@pezkuwi/util": "*"
- checksum: 10/0f75af4d9def20abc927653c048c195d10a52bec0012e326be761fb86727e58d8759a37404aa6928d9080b30fedb14a9a48fc38b65b930fc85af9e719234c412
- languageName: node
- linkType: hard
-
-"@pezkuwi/extension-dapp@npm:^0.62.14":
- version: 0.62.14
- resolution: "@pezkuwi/extension-dapp@npm:0.62.14"
- dependencies:
- "@pezkuwi/extension-inject": "workspace:*"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/api": "*"
- "@pezkuwi/util": "*"
- "@pezkuwi/util-crypto": "*"
- checksum: 10/503d5f664aacf9df1fe2ab9ab25e4eda52201db9c17ac0e790329ff0ed96138da2d40ed422a92fe7d8dce288d526246f3cf0a08819a094c07c2d3493f9a08b1d
- languageName: node
- linkType: hard
-
-"@pezkuwi/extension-inject@npm:^0.62.14":
- version: 0.62.14
- resolution: "@pezkuwi/extension-inject@npm:0.62.14"
- dependencies:
- "@pezkuwi/api": "npm:^16.5.5"
- "@pezkuwi/rpc-provider": "npm:^16.5.5"
- "@pezkuwi/types": "npm:^16.5.5"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- "@pezkuwi/x-global": "npm:^14.0.5"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/api": "*"
- "@pezkuwi/util": "*"
- checksum: 10/fd1c7d7793da98a1cd90685dabf202de5cd001b48b2e26b5174ac5cf146e93018be91421a986751341ecee787c4b707ed04a0a7797a818e70300bcec61a619a3
- languageName: node
- linkType: hard
-
-"@pezkuwi/hw-ledger-transports@npm:14.0.1":
- version: 14.0.1
- resolution: "@pezkuwi/hw-ledger-transports@npm:14.0.1"
- dependencies:
- "@ledgerhq/hw-transport": "npm:^6.31.4"
- "@ledgerhq/hw-transport-node-hid-singleton": "npm:^6.31.5"
- "@ledgerhq/hw-transport-webhid": "npm:^6.29.4"
- "@ledgerhq/hw-transport-webusb": "npm:^6.29.4"
- "@pezkuwi/util": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- dependenciesMeta:
- "@ledgerhq/hw-transport-node-hid-singleton":
- optional: true
- checksum: 10/1da801217e016fba140fe9e506238d5e07b79bb924c0470c7cc9051f6072049a118c21cf7dc50e06ba4173154944975faaa7a571c5444ec41de18a2160bb839a
- languageName: node
- linkType: hard
-
-"@pezkuwi/hw-ledger-transports@npm:^14.0.5":
- version: 14.0.7
- resolution: "@pezkuwi/hw-ledger-transports@npm:14.0.7"
- dependencies:
- "@ledgerhq/hw-transport": "npm:^6.31.4"
- "@ledgerhq/hw-transport-node-hid-singleton": "npm:^6.31.5"
- "@ledgerhq/hw-transport-webhid": "npm:^6.29.4"
- "@ledgerhq/hw-transport-webusb": "npm:^6.29.4"
- "@pezkuwi/util": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- dependenciesMeta:
- "@ledgerhq/hw-transport-node-hid-singleton":
- optional: true
- checksum: 10/6ab7169cb7f9a7caa3ef6a8a9c1c885d5fc53298cef9d4d528a6919d07d12285a0113a5925d9a704c7406b619cd1335b538c881a733befe9796ab2e6006e68d4
- languageName: node
- linkType: hard
-
-"@pezkuwi/hw-ledger@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/hw-ledger@npm:14.0.7"
- dependencies:
- "@pezkuwi/hw-ledger-transports": "npm:14.0.1"
- "@pezkuwi/util": "npm:14.0.1"
- "@zondax/ledger-substrate": "npm:1.1.1"
- tslib: "npm:^2.8.0"
- checksum: 10/2f421699b5520f977f28c5cba3b1df14f2a38f04018a6fff6073a8e0e56773f3df57aaac0846d85a8973b826f0a8343cc5423b5908ef1f4315868a1aa71f062f
- languageName: node
- linkType: hard
-
-"@pezkuwi/keyring@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/keyring@npm:14.0.7"
- dependencies:
- "@pezkuwi/util": "npm:14.0.1"
- "@pezkuwi/util-crypto": "npm:^14.0.2"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@pezkuwi/util": 14.0.1
- "@pezkuwi/util-crypto": ^14.0.2
- checksum: 10/3bcdb393b9da80e56018d75d8a330bb86904c7cf75c49e53846705a9aea1fbf6488a80e17bf19e7df8f6aa896ee28d33fc4571f7b2408ca0cd8c4d8b64aa696d
- languageName: node
- linkType: hard
-
-"@pezkuwi/networks@npm:^14.0.7":
- version: 14.0.9
- resolution: "@pezkuwi/networks@npm:14.0.9"
- dependencies:
- "@pezkuwi/util": "npm:14.0.1"
- "@substrate/ss58-registry": "npm:^1.51.0"
- tslib: "npm:^2.8.0"
- checksum: 10/349f248806d53394d4b152823d70f656844501a60b4039ba299b79cd0ee28321ed062210915b348759e27f8a067324be7fa406ef42a47505154f578442ecbda7
- languageName: node
- linkType: hard
-
-"@pezkuwi/phishing@npm:^0.25.28":
- version: 0.25.28
- resolution: "@pezkuwi/phishing@npm:0.25.28"
- dependencies:
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- "@pezkuwi/x-fetch": "npm:^14.0.5"
- tldts: "npm:^7.0.8"
- tslib: "npm:^2.8.1"
- checksum: 10/af9d6db0efa42c34d9c01cecd1f7eedbd893802e43c7fc812b27edccf4c5492e96849bf1c66645caf3bb5fb9ac3bfea5d4e9fa937949a7b2918511620efdefea
- languageName: node
- linkType: hard
-
-"@pezkuwi/react-api@npm:^0.168.2-0-x, @pezkuwi/react-api@workspace:packages/react-api":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/react-api@workspace:packages/react-api"
- dependencies:
- "@pezkuwi/api": "npm:^16.5.6"
- "@pezkuwi/extension-compat-metamask": "npm:^0.62.14"
- "@pezkuwi/extension-dapp": "npm:^0.62.14"
- "@pezkuwi/extension-inject": "npm:^0.62.14"
- "@pezkuwi/rpc-provider": "npm:^16.5.6"
- fflate: "npm:^0.8.1"
- rxjs: "npm:^7.8.1"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/react-components@npm:0.168.2-0-x, @pezkuwi/react-components@npm:^0.168.2-0-x, @pezkuwi/react-components@workspace:packages/react-components":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/react-components@workspace:packages/react-components"
- dependencies:
- "@fortawesome/fontawesome-svg-core": "npm:^6.5.1"
- "@fortawesome/free-solid-svg-icons": "npm:^6.5.1"
- "@fortawesome/react-fontawesome": "npm:^0.2.0"
- "@pezkuwi/keyring": "npm:^14.0.5"
- "@pezkuwi/phishing": "npm:^0.25.26"
- "@pezkuwi/react-api": "npm:^0.168.2-0-x"
- "@pezkuwi/react-identicon": "npm:^3.17.1"
- "@pezkuwi/react-qr": "npm:^3.17.1"
- "@pezkuwi/react-query": "npm:^0.168.2-0-x"
- "@pezkuwi/ui-keyring": "npm:^3.17.1"
- "@pezkuwi/ui-settings": "npm:^3.17.1"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- "@types/chartjs-plugin-crosshair": "npm:^1.1.4"
- "@types/codeflask": "npm:^1.4.6"
- "@types/owasp-password-strength-test": "npm:^1.3.2"
- "@types/react": "npm:^18.2.45"
- "@types/react-dom": "npm:^18.2.18"
- chart.js: "npm:^4.4.1"
- chartjs-plugin-annotation: "npm:^3.0.1"
- chartjs-plugin-crosshair: "npm:^2.0.0"
- codeflask: "npm:^1.4.1"
- i18next: "npm:^23.7.11"
- i18next-browser-languagedetector: "npm:^7.2.0"
- owasp-password-strength-test: "npm:^1.3.0"
- react-beautiful-dnd: "npm:^13.1.1"
- react-chartjs-2: "npm:^5.2.0"
- react-copy-to-clipboard: "npm:^5.1.0"
- react-dropzone: "npm:^14.2.3"
- react-i18next: "npm:^13.5.0"
- react-markdown: "npm:^9.0.1"
- react-router: "npm:^6.21.0"
- react-router-dom: "npm:^6.21.0"
- react-tooltip: "npm:^4.5.1"
- rehype-raw: "npm:^7.0.0"
- semantic-ui-css: "npm:^2.5.0"
- semantic-ui-react: "npm:^0.88.2"
- store: "npm:^2.0.12"
- styled-components: "npm:^6.1.1"
- styled-theming: "npm:^2.2.0"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/react-hooks@npm:^0.168.2-0-x, @pezkuwi/react-hooks@workspace:packages/react-hooks":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/react-hooks@workspace:packages/react-hooks"
- dependencies:
- "@pezkuwi/hw-ledger": "npm:^14.0.5"
- "@pezkuwi/hw-ledger-transports": "npm:^14.0.5"
- is-ipfs: "npm:^8.0.1"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/react-identicon@npm:^3.17.1":
- version: 3.17.2
- resolution: "@pezkuwi/react-identicon@npm:3.17.2"
- dependencies:
- "@pezkuwi/keyring": "npm:^14.0.5"
- "@pezkuwi/ui-settings": "npm:3.17.2"
- "@pezkuwi/ui-shared": "npm:3.17.2"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- ethereum-blockies-base64: "npm:^1.0.2"
- jdenticon: "npm:3.2.0"
- react-copy-to-clipboard: "npm:^5.1.0"
- styled-components: "npm:^6.1.1"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/keyring": "*"
- "@pezkuwi/util": "*"
- "@pezkuwi/util-crypto": "*"
- react: "*"
- react-dom: "*"
- react-is: "*"
- checksum: 10/a3ae4d83532260fe01457df610398c06ec5082d65e48f28d498c52d87d144d222675beda040f9bb04d3cfeb0e8caf9bf438596461032600fc6774e55171888fa
- languageName: node
- linkType: hard
-
-"@pezkuwi/react-params@npm:^0.168.2-0-x, @pezkuwi/react-params@workspace:packages/react-params":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/react-params@workspace:packages/react-params"
- dependencies:
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- multiformats: "npm:^12.1.3"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/react-qr@npm:^3.17.1":
- version: 3.17.2
- resolution: "@pezkuwi/react-qr@npm:3.17.2"
- dependencies:
- "@pezkuwi/ui-settings": "npm:3.17.2"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- "@zxing/browser": "npm:^0.1.5"
- "@zxing/library": "npm:^0.21.2"
- qrcode-generator: "npm:^1.4.4"
- styled-components: "npm:^6.1.1"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/util": "*"
- "@pezkuwi/util-crypto": "*"
- react: "*"
- react-dom: "*"
- react-is: "*"
- checksum: 10/79046d80017aac386f461f48ffa889921a0bd2815c08e6c2c9b7ad6e47c44c77e96bea5f78a79dc197fd44f0b054b72e23aee2214e9ec0b10af2842baa498323
- languageName: node
- linkType: hard
-
-"@pezkuwi/react-query@npm:0.168.2-0-x, @pezkuwi/react-query@npm:^0.168.2-0-x, @pezkuwi/react-query@workspace:packages/react-query":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/react-query@workspace:packages/react-query"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/react-signer@npm:^0.168.2-0-x, @pezkuwi/react-signer@workspace:packages/react-signer":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/react-signer@workspace:packages/react-signer"
- dependencies:
- "@pezkuwi/hw-ledger": "npm:^14.0.5"
- "@pezkuwi/react-components": "npm:^0.168.2-0-x"
- "@polkadot-api/merkleize-metadata": "npm:^1.1.27"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/rpc-augment@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/rpc-augment@npm:16.5.6"
- dependencies:
- "@pezkuwi/rpc-core": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/5d425a2af1c80f4fd59ac674da1d7b453b93e7ebfcb89bd166eca9a4fe97cac8fd81c28a1d50d68a78a94c75521e38a089c62687df66dc05434416edccd8b771
- languageName: node
- linkType: hard
-
-"@pezkuwi/rpc-core@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/rpc-core@npm:16.5.6"
- dependencies:
- "@pezkuwi/rpc-augment": "npm:16.5.4"
- "@pezkuwi/rpc-provider": "npm:16.5.4"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/3db5e5d0711e724fe0b6c6b331d1b16b9bfc8a44bf5cd04da9b144bad0d8782d277a6716dd30a67d29d7727c6741548c7906e226fdcbb1135be57c58ad3b487f
- languageName: node
- linkType: hard
-
-"@pezkuwi/rpc-provider@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/rpc-provider@npm:16.5.6"
- dependencies:
- "@bizinikiwi/connect": "npm:2.1.9"
- "@pezkuwi/keyring": "npm:^14.0.1"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-support": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- "@pezkuwi/util-crypto": "npm:^14.0.1"
- "@pezkuwi/x-fetch": "npm:^14.0.1"
- "@pezkuwi/x-global": "npm:^14.0.1"
- "@pezkuwi/x-ws": "npm:^14.0.1"
- eventemitter3: "npm:^5.0.1"
- mock-socket: "npm:^9.3.1"
- nock: "npm:^13.5.5"
- tslib: "npm:^2.8.1"
- dependenciesMeta:
- "@bizinikiwi/connect":
- optional: true
- checksum: 10/16b639be8732936d1a4314b348de0826cde8c027bdca179652b89221a4f3edb1b6833cfdb40126e7731668a9fa4afb6535b0c8b15ae1c1d5f1da99c17fe898ea
- languageName: node
- linkType: hard
-
-"@pezkuwi/test-support@npm:0.168.2-0-x, @pezkuwi/test-support@workspace:packages/test-support":
- version: 0.0.0-use.local
- resolution: "@pezkuwi/test-support@workspace:packages/test-support"
- dependencies:
- "@pezkuwi/types-support": "npm:16.5.2"
- "@testing-library/jest-dom": "npm:^5.17.0"
- "@testing-library/react": "npm:^14.1.2"
- testcontainers: "npm:^10.4.0"
- tsconfig-paths: "npm:^4.2.0"
- peerDependencies:
- react: "*"
- react-dom: "*"
- react-is: "*"
- languageName: unknown
- linkType: soft
-
-"@pezkuwi/types-augment@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/types-augment@npm:16.5.6"
- dependencies:
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/87338954878dd62a2b0f112830b434fc8c979ca11608e9cf61ee544b8ebcb8e2d77f3d962b4f68cfde81ad3ded5a582eaecb45628ae9f595d87d24d96878a927
- languageName: node
- linkType: hard
-
-"@pezkuwi/types-codec@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/types-codec@npm:16.5.6"
- dependencies:
- "@pezkuwi/util": "npm:^14.0.1"
- "@pezkuwi/x-bigint": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/6b0c87813df8fe1a00434eb651390b45e842c1029ba1afc2dd6ca9752dc76f8f3a33580a712900185fb0c5a2d16771e31b60cf2ea04c3b470abd727521e4ce79
- languageName: node
- linkType: hard
-
-"@pezkuwi/types-create@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/types-create@npm:16.5.6"
- dependencies:
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/3f32a69554572cdd218fea131aaba5bac65db8dd36fc946c0002178005aefedd2db4565f9bada43d0196dd328b4c0558a0fabfcdd46fc079946c8aad2977f01e
- languageName: node
- linkType: hard
-
-"@pezkuwi/types-known@npm:^16.5.6":
- version: 16.5.8
- resolution: "@pezkuwi/types-known@npm:16.5.8"
- dependencies:
- "@pezkuwi/networks": "npm:^14.0.1"
- "@pezkuwi/types": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/types-create": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/f248d06f776ac884e3c60e1a00d00df43e7a11f595abd69321e38d5c9822c24a15fb31bc4e696c612e6054dd37fd881ea94913ef968b91c7f65418c66b1ad5ed
- languageName: node
- linkType: hard
-
-"@pezkuwi/types-support@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/types-support@npm:16.5.6"
- dependencies:
- "@pezkuwi/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/c982a627eb3cd60805f8288d5202c5369000a6bdb36250c4f504d3e5c657457a9483c5727d5a8adab2124cc5c22e2570d59d1f8e820efb0f4ee5c45d6b3ef7b7
- languageName: node
- linkType: hard
-
-"@pezkuwi/types@npm:^16.5.6":
- version: 16.5.6
- resolution: "@pezkuwi/types@npm:16.5.6"
- dependencies:
- "@pezkuwi/keyring": "npm:^14.0.1"
- "@pezkuwi/types-augment": "npm:16.5.4"
- "@pezkuwi/types-codec": "npm:16.5.4"
- "@pezkuwi/types-create": "npm:16.5.4"
- "@pezkuwi/util": "npm:^14.0.1"
- "@pezkuwi/util-crypto": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/d8be4b091474c05bde6836595ba3ff313eaf4493cd73151b5a3bd1c78a424111ca7d48231d7249788622f73a6ee94440f0027aee43b5343af29baf58b9bf6b6b
- languageName: node
- linkType: hard
-
-"@pezkuwi/ui-keyring@npm:^3.17.1":
- version: 3.17.2
- resolution: "@pezkuwi/ui-keyring@npm:3.17.2"
- dependencies:
- "@pezkuwi/keyring": "npm:^14.0.5"
- "@pezkuwi/ui-settings": "npm:3.17.2"
- "@pezkuwi/util": "npm:^14.0.5"
- "@pezkuwi/util-crypto": "npm:^14.0.5"
- mkdirp: "npm:^3.0.1"
- rxjs: "npm:^7.8.1"
- store: "npm:^2.0.12"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/keyring": "*"
- "@pezkuwi/ui-settings": "*"
- "@pezkuwi/util": "*"
- checksum: 10/d8f13302e30c643847362ad830f457a541119f7b65064a397b863beaa576b70ab81ce375aa5ee197af504eb4e03fbde4e24aac57307dd87bb23538a194b8bb73
- languageName: node
- linkType: hard
-
-"@pezkuwi/ui-settings@npm:3.17.2, @pezkuwi/ui-settings@npm:^3.17.1":
- version: 3.17.2
- resolution: "@pezkuwi/ui-settings@npm:3.17.2"
- dependencies:
- "@pezkuwi/networks": "npm:^14.0.5"
- "@pezkuwi/util": "npm:^14.0.5"
- eventemitter3: "npm:^5.0.1"
- store: "npm:^2.0.12"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/networks": "*"
- "@pezkuwi/util": "*"
- checksum: 10/8a1b7806997c4c4997f082702dd13d0a81210850d226a723b0840dfc7598e78bc31206656e54b2d561d3b998b032440632dafa6cc6da8c0df11cd3e6975d9fdb
- languageName: node
- linkType: hard
-
-"@pezkuwi/ui-shared@npm:3.17.2, @pezkuwi/ui-shared@npm:^3.17.2":
- version: 3.17.2
- resolution: "@pezkuwi/ui-shared@npm:3.17.2"
- dependencies:
- colord: "npm:^2.9.3"
- tslib: "npm:^2.8.1"
- peerDependencies:
- "@pezkuwi/util": "*"
- "@pezkuwi/util-crypto": "*"
- checksum: 10/a5562b51e57ed5b2aa98970c710c8dd2d8345086c1cb05739796853220715ef12164c7bdc9da43dd86867d0b6b1f152d6ebbd30b388f941bba701c93b7db458e
- languageName: node
- linkType: hard
-
-"@pezkuwi/util-crypto@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/util-crypto@npm:14.0.7"
- dependencies:
- "@noble/curves": "npm:^1.3.0"
- "@noble/hashes": "npm:^1.3.3"
- "@pezkuwi/networks": "npm:14.0.1"
- "@pezkuwi/util": "npm:14.0.1"
- "@pezkuwi/wasm-crypto": "npm:^7.5.4"
- "@pezkuwi/wasm-util": "npm:^7.5.4"
- "@pezkuwi/x-bigint": "npm:14.0.1"
- "@pezkuwi/x-randomvalues": "npm:14.0.1"
- "@scure/base": "npm:^1.1.7"
- "@scure/sr25519": "npm:^0.2.0"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@pezkuwi/util": 14.0.1
- checksum: 10/9062d9ea4b9e1f69ede82bbcf1fb05b28970b696bbd598c442a0d96335035e711a34de111faab4e4ea4f0741687a56d3e58dd2b314a650cf1ea304503baf4012
- languageName: node
- linkType: hard
-
-"@pezkuwi/util@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/util@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-bigint": "npm:14.0.1"
- "@pezkuwi/x-global": "npm:14.0.1"
- "@pezkuwi/x-textdecoder": "npm:14.0.1"
- "@pezkuwi/x-textencoder": "npm:14.0.1"
- "@types/bn.js": "npm:^5.1.6"
- bn.js: "npm:^5.2.1"
- tslib: "npm:^2.8.0"
- checksum: 10/39c6eaa209def652b2644b701b4941cfde7c116ea639eb9c9efd9ab8b67af10b7a089839ced60f3840b7d9a552862a1cf648984b7d32c2a1e7fa169d04ead7f4
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-bridge@npm:7.5.4":
- version: 7.5.4
- resolution: "@pezkuwi/wasm-bridge@npm:7.5.4"
- dependencies:
- "@pezkuwi/wasm-util": "npm:7.5.3"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- "@pezkuwi/x-randomvalues": "*"
- checksum: 10/04ee72d6306175ac7d3612d06af1cbdbe3c6c504dd95deee05f46b3de818125420b62e047aeb62165a5783d2e43b50a11843e5ac58eeffad32bee539fd38d068
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-crypto-asmjs@npm:7.5.4":
- version: 7.5.4
- resolution: "@pezkuwi/wasm-crypto-asmjs@npm:7.5.4"
- dependencies:
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- checksum: 10/e6b7bf038f6dd87b26ee1e2dbe9545128c7ddc7473cddf64f836ab6d7f91b2974c9b8c6b26abb373f5bec7960f0686cda101d52c81ea1ffc19f17af00688e5fa
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-crypto-init@npm:7.5.4":
- version: 7.5.4
- resolution: "@pezkuwi/wasm-crypto-init@npm:7.5.4"
- dependencies:
- "@pezkuwi/wasm-bridge": "npm:7.5.4"
- "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.4"
- "@pezkuwi/wasm-crypto-wasm": "npm:7.5.4"
- "@pezkuwi/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- "@pezkuwi/x-randomvalues": "*"
- checksum: 10/6a3c8526f8d1272c4c9ff5b6d38016bdeac0146885d0521955cbd92d5b82896f9084dd15680c679dea7fd9926c01f4f1489ef62f0723a3e3393d90a728a7dcfb
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-crypto-wasm@npm:7.5.4":
- version: 7.5.4
- resolution: "@pezkuwi/wasm-crypto-wasm@npm:7.5.4"
- dependencies:
- "@pezkuwi/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- checksum: 10/682967e4eea14c1ce895ae49a6de28e5719b19801db744bfadcb05964ce849169e41fa2c779d0c1b0fb7c41fed463bd7030904af2a6f91c5d4815dacb44bf217
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-crypto@npm:^7.5.4":
- version: 7.5.4
- resolution: "@pezkuwi/wasm-crypto@npm:7.5.4"
- dependencies:
- "@pezkuwi/wasm-bridge": "npm:7.5.4"
- "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.4"
- "@pezkuwi/wasm-crypto-init": "npm:7.5.4"
- "@pezkuwi/wasm-crypto-wasm": "npm:7.5.4"
- "@pezkuwi/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- "@pezkuwi/x-randomvalues": "*"
- checksum: 10/56033fd9dbba804425378fd564079d81a13d03593bb0a74a3b814fd5ee6fccaffdcc3a44d278bbd34eb29c75b74c5c5ef8d787b0647d0a9240bac6e7dd19250c
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-util@npm:7.5.3":
- version: 7.5.3
- resolution: "@pezkuwi/wasm-util@npm:7.5.3"
- dependencies:
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- checksum: 10/61e195ee2350837133565a82d20bea2924a9830b48f241c1bbbd367eedf86a123e358724a31da54db778f9ca0803642166dfeb01d6bbe61691c02a082c1c302e
- languageName: node
- linkType: hard
-
-"@pezkuwi/wasm-util@npm:7.5.4, @pezkuwi/wasm-util@npm:^7.5.2, @pezkuwi/wasm-util@npm:^7.5.4":
- version: 7.5.4
- resolution: "@pezkuwi/wasm-util@npm:7.5.4"
- dependencies:
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@pezkuwi/util": "*"
- checksum: 10/fb4cdfafdf27cf6be95247fe58bd2fb22108e554ee1231ad6e202824ff0e8fb2fe80764679e6bb8f9f0a768feb163c6bd3339a20be26b6d0baae1bad5eef2ac5
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-bigint@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-bigint@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- checksum: 10/6dab5cf278876a8a72cc634a99c6d814e7833a2e041e0e06fb51bb4a565de24f6b8054b746416f3f7d758d4dce71881eb15fb1842da776d683acad9bb81d2bfd
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-fetch@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-fetch@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-global": "npm:14.0.1"
- node-fetch: "npm:^3.3.2"
- tslib: "npm:^2.8.0"
- checksum: 10/f24ba80522b89313bb72ba95367801aac700622c4f56bd629474d93b4892b0e8ad6e05c78285ff20871b2fdd7b33ddaf8fa8fa1bb006409f4fc093811368edae
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-global@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-global@npm:14.0.7"
- dependencies:
- tslib: "npm:^2.8.0"
- checksum: 10/810106a288a596156050fd706aa6565e1b601ccc959fbc332994dc5a0f45641d40e31f10d57069a54f7f11817c5780b848c2b7fa89ecca16b003d9a241c0b44b
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-randomvalues@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-randomvalues@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@pezkuwi/util": 14.0.1
- "@pezkuwi/wasm-util": "*"
- checksum: 10/242c152d93fbdec72caafceed0c07647686a916f755261e275e30ede670fe32b349ce0fde5e9260c4b479f9faa49d66d1b3203968d6db17dee4fa8d761cb091b
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-textdecoder@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-textdecoder@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- checksum: 10/9a32c3382485e5243913095cbc755ad2ae36a4d7ce2eb87b3c62bb5dfd1e41a15404d352a218474f012e43a295277de1aebf79adb241d18d0645a1a42b2fdb26
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-textencoder@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-textencoder@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- checksum: 10/379e436b286c308c125d00fa8dd96433182bdff9fdcf8e94bbb4d54071241067e92e05c22d276461d06fad897e04b24c275f3abd0fc778586ecc42c65ea43b12
- languageName: node
- linkType: hard
-
-"@pezkuwi/x-ws@npm:^14.0.7":
- version: 14.0.7
- resolution: "@pezkuwi/x-ws@npm:14.0.7"
- dependencies:
- "@pezkuwi/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- ws: "npm:^8.18.0"
- checksum: 10/6581831562763980fead823177f293f087bcb2e0d922727ef2cffb43b7e3e8a9200a284d17037a825649c1ab9a92c8d6e6c5cb865525156c138f3151747504c6
- languageName: node
- linkType: hard
-
-"@phala/typedefs@npm:0.2.33":
- version: 0.2.33
- resolution: "@phala/typedefs@npm:0.2.33"
- checksum: 10/69ec7654b6bdf58aec736a3f65efe7fb1b39165c7c5206ab17a3c99ffb6b75c164d86e3280065a7321d892b63bc88f58620c8aa6b15a58adc5e906cf1112d9ef
- languageName: node
- linkType: hard
-
-"@pinata/sdk@npm:^1.2.1":
- version: 1.2.1
- resolution: "@pinata/sdk@npm:1.2.1"
- dependencies:
- axios: "npm:^0.21.1"
- base-path-converter: "npm:^1.0.2"
- form-data: "npm:^2.3.3"
- is-ipfs: "npm:^0.6.0"
- recursive-fs: "npm:^1.1.2"
- checksum: 10/ebb39b4ad7352fc593147905eb4ead7bc729116c5d27aec5d2bb4a8e66c098aecdde1dc5f324e138a9edab108f90ecf8171d4dba279b737c6e331c69b71250b5
- languageName: node
- linkType: hard
-
-"@pinojs/redact@npm:^0.4.0":
- version: 0.4.0
- resolution: "@pinojs/redact@npm:0.4.0"
- checksum: 10/2210ffb6b38357853d47239fd0532cc9edb406325270a81c440a35cece22090127c30c2ead3eefa3e608f2244087485308e515c431f4f69b6bd2e16cbd32812b
- languageName: node
- linkType: hard
-
-"@pkgjs/parseargs@npm:^0.11.0":
- version: 0.11.0
- resolution: "@pkgjs/parseargs@npm:0.11.0"
- checksum: 10/115e8ceeec6bc69dff2048b35c0ab4f8bbee12d8bb6c1f4af758604586d802b6e669dcb02dda61d078de42c2b4ddce41b3d9e726d7daa6b4b850f4adbf7333ff
- languageName: node
- linkType: hard
-
-"@polkadot-api/client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- dependencies:
- "@polkadot-api/metadata-builders": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/substrate-bindings": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/substrate-client": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/utils": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- peerDependencies:
- rxjs: ">=7.8.0"
- checksum: 10/cc9cc2e54cbb6956290f07ecede3c086455147fc84b5668482655b6e5e3726e408157bbe92747dd5a551ab42604df93f35bab45e78f28489dc998a75586f855b
- languageName: node
- linkType: hard
-
-"@polkadot-api/json-rpc-provider-proxy@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/json-rpc-provider-proxy@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- checksum: 10/bdcdf34feefd9b7f4b29e4fe212ca2609455fce53aeac5b3df9bba4cf714022d3266877e00fbdf5d2d24090cfbcd5139d859295e4e2bb15d055e2fb2704b79ec
- languageName: node
- linkType: hard
-
-"@polkadot-api/json-rpc-provider-proxy@npm:^0.1.0":
- version: 0.1.0
- resolution: "@polkadot-api/json-rpc-provider-proxy@npm:0.1.0"
- checksum: 10/1a232337a4f6f32f3ec0350d5aaceaab21547ccee3cca63318d4b9238982efa5ff2406b033c320318c72d067b73508c0a1af21eb47acabaff714c1c21477bafa
- languageName: node
- linkType: hard
-
-"@polkadot-api/json-rpc-provider@npm:0.0.1, @polkadot-api/json-rpc-provider@npm:^0.0.1":
- version: 0.0.1
- resolution: "@polkadot-api/json-rpc-provider@npm:0.0.1"
- checksum: 10/1f315bdadcba7def7145011132e6127b983c6f91f976be217ad7d555bb96a67f3a270fe4a46e427531822c5d54d353d84a6439d112a99cdfc07013d3b662ee3c
- languageName: node
- linkType: hard
-
-"@polkadot-api/json-rpc-provider@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/json-rpc-provider@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- checksum: 10/00d4e1f7900a1739e1ba7a3b13d399e5540a27d5c026c985aa4afdf865fb37da4aa4029a3a740932615482cdf18e657011ef05e7e61c2de04016f68fbb343ae7
- languageName: node
- linkType: hard
-
-"@polkadot-api/merkleize-metadata@npm:^1.1.27":
- version: 1.1.28
- resolution: "@polkadot-api/merkleize-metadata@npm:1.1.28"
- dependencies:
- "@polkadot-api/metadata-builders": "npm:0.13.8"
- "@polkadot-api/substrate-bindings": "npm:0.16.6"
- "@polkadot-api/utils": "npm:0.2.0"
- checksum: 10/3e4a94427911aba60712ddc5fcec24134c1266b0218e0a84b82366a10bc09e1a0d7201cba9676b68101a01bc533ac8bb22f93f40b6275b2eb9472011526f8ead
- languageName: node
- linkType: hard
-
-"@polkadot-api/metadata-builders@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/metadata-builders@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- dependencies:
- "@polkadot-api/substrate-bindings": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/utils": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- checksum: 10/0dc59527415b51b9741e95842505cfca788e9fb0e6666be971000b9fe522b7d1a81265d4cab1712c2cc564e14ae8f0e1ef8f32f4023be1261f366edaa1936cc9
- languageName: node
- linkType: hard
-
-"@polkadot-api/metadata-builders@npm:0.13.8":
- version: 0.13.8
- resolution: "@polkadot-api/metadata-builders@npm:0.13.8"
- dependencies:
- "@polkadot-api/substrate-bindings": "npm:0.16.6"
- "@polkadot-api/utils": "npm:0.2.0"
- checksum: 10/dddfe2be0ce4e57c3e31a5b6141bb12dde290a363ec22982e3aadb31314e712ab4b7de26eec8c5072eb12ebaf956dd6b595ae5e30bb33762d528263c601894d8
- languageName: node
- linkType: hard
-
-"@polkadot-api/metadata-builders@npm:0.3.2":
- version: 0.3.2
- resolution: "@polkadot-api/metadata-builders@npm:0.3.2"
- dependencies:
- "@polkadot-api/substrate-bindings": "npm:0.6.0"
- "@polkadot-api/utils": "npm:0.1.0"
- checksum: 10/874b38e1fb92beea99b98b889143f25671f137e54113767aeabb79ff5cdf7d61cadb0121f08c7a9a40718b924d7c9a1dd700f81e7e287bc55923b0129e2a6160
- languageName: node
- linkType: hard
-
-"@polkadot-api/observable-client@npm:^0.3.0":
- version: 0.3.2
- resolution: "@polkadot-api/observable-client@npm:0.3.2"
- dependencies:
- "@polkadot-api/metadata-builders": "npm:0.3.2"
- "@polkadot-api/substrate-bindings": "npm:0.6.0"
- "@polkadot-api/utils": "npm:0.1.0"
- peerDependencies:
- "@polkadot-api/substrate-client": 0.1.4
- rxjs: ">=7.8.0"
- checksum: 10/91b95a06e3ddd477c2489110d7cffdcfaf87a222054b437013c701dc43eac6a5d30438b1ac8fb130166ba039a67808e6199ccb3b2eaac7dcf8d2ef7a835f047b
- languageName: node
- linkType: hard
-
-"@polkadot-api/substrate-bindings@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/substrate-bindings@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- dependencies:
- "@noble/hashes": "npm:^1.3.1"
- "@polkadot-api/utils": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@scure/base": "npm:^1.1.1"
- scale-ts: "npm:^1.6.0"
- checksum: 10/e14a81197b86314aa8887d7e81cbf3f0c3b9eec0267b128c81bb3bf6d26d93ac75bd113177861789a066b215a72ac03c940d590e769ca3f33a2ac4480c752538
- languageName: node
- linkType: hard
-
-"@polkadot-api/substrate-bindings@npm:0.16.6":
- version: 0.16.6
- resolution: "@polkadot-api/substrate-bindings@npm:0.16.6"
- dependencies:
- "@noble/hashes": "npm:^2.0.1"
- "@polkadot-api/utils": "npm:0.2.0"
- "@scure/base": "npm:^2.0.0"
- scale-ts: "npm:^1.6.1"
- checksum: 10/3428b7cc36ad8534c67543c04414f5454e2d9b68acb7211d348021ae362c8f698d04ceea6e4f7ed37c2d8949fb3d0b5abc8ae85567db0c335ddb8a6816f73e65
- languageName: node
- linkType: hard
-
-"@polkadot-api/substrate-bindings@npm:0.6.0":
- version: 0.6.0
- resolution: "@polkadot-api/substrate-bindings@npm:0.6.0"
- dependencies:
- "@noble/hashes": "npm:^1.3.1"
- "@polkadot-api/utils": "npm:0.1.0"
- "@scure/base": "npm:^1.1.1"
- scale-ts: "npm:^1.6.0"
- checksum: 10/01926a9083f608514a55c3d23563ebef139e2963d4adbebe7dcd99b65e1a08f1551fc0e147e787a31c749402767333c96eb1399f85a6c71654cfa1cc9d26e445
- languageName: node
- linkType: hard
-
-"@polkadot-api/substrate-client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/substrate-client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- checksum: 10/af1dce32d1b52bba5494daef387dcb15694ee57ed394e8ac905430ade7cdbae1c44ef5cdb7d777096ee0a0d8a58d3409e9c0c464f780bbd0286cb06d46390c3c
- languageName: node
- linkType: hard
-
-"@polkadot-api/substrate-client@npm:^0.1.2":
- version: 0.1.4
- resolution: "@polkadot-api/substrate-client@npm:0.1.4"
- dependencies:
- "@polkadot-api/json-rpc-provider": "npm:0.0.1"
- "@polkadot-api/utils": "npm:0.1.0"
- checksum: 10/e7172696db404676d297cd5661b195de110593769f9ce37f32bdb5576ca00c56d32fcb04172a91102986fdda27a13962d909ad9466869a2991611d658ee6ac92
- languageName: node
- linkType: hard
-
-"@polkadot-api/utils@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0":
- version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0
- resolution: "@polkadot-api/utils@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- checksum: 10/99d8c233ad4fe58f5ee993cf76b99689e6d34bc239e24785c60d2bd7cd74e4cc2bb8e0704a041c20bff8866a8151126d04c1be01ba5c1d51b1086cd7a5b55814
- languageName: node
- linkType: hard
-
-"@polkadot-api/utils@npm:0.1.0":
- version: 0.1.0
- resolution: "@polkadot-api/utils@npm:0.1.0"
- checksum: 10/c557daea91ddb03e16b93c7c5a75533495c7b77cbbbdc2b4f5e97af0c1e1132a47e434c9c729a08241bd7b3624b6644ac0950f914aa8b29a0f419bf0fd224c7c
- languageName: node
- linkType: hard
-
-"@polkadot-api/utils@npm:0.2.0":
- version: 0.2.0
- resolution: "@polkadot-api/utils@npm:0.2.0"
- checksum: 10/5171c52af86bc85181cf8681342e38a6cbbe049d70f437ab256641a30f2d167d4d1f5f871d13731d9a7e08be5b35c2e981deba4efe6f16f0c57f2309d90bb52c
- languageName: node
- linkType: hard
-
-"@polkadot/api-augment@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/api-augment@npm:10.13.1"
- dependencies:
- "@polkadot/api-base": "npm:10.13.1"
- "@polkadot/rpc-augment": "npm:10.13.1"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-augment": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/094d5e79d511a44b0a0f5ea10f612a94cd0b423e16803c23847004e1546220ff8e4e90e64a0ccd78387685c9a47687b7ece66347247443aaa86f58e69e25a033
- languageName: node
- linkType: hard
-
-"@polkadot/api-augment@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/api-augment@npm:15.10.2"
- dependencies:
- "@polkadot/api-base": "npm:15.10.2"
- "@polkadot/rpc-augment": "npm:15.10.2"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-augment": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/ad8e90f29e911a3c1b444586459c63bf3e1422a34f00e6bb426d94931f5a1ca4cdbb1e3962b891a5e5ea4d5172d744223736ad6fcc629163dd24b823bebb1eb2
- languageName: node
- linkType: hard
-
-"@polkadot/api-augment@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/api-augment@npm:16.5.4"
- dependencies:
- "@polkadot/api-base": "npm:16.5.4"
- "@polkadot/rpc-augment": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-augment": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/76c0696fb60a3d3f19544777330e85b4a4ac44d689f9b320a435e80af0f06c5038fa5567c035dae0f8d56dd7553c5167e79193dee57acda6442b27e7e8814771
- languageName: node
- linkType: hard
-
-"@polkadot/api-augment@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/api-augment@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/api-base": "npm:7.15.1"
- "@polkadot/rpc-augment": "npm:7.15.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-augment": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/901729f9389df54857c7e52fbc6bc083f528865650dafeab901cc4b2a692e1065f4f57f7378f1ee76721acb95f8f6fc9eadf14a21b628960ecaeba36de7ae4b6
- languageName: node
- linkType: hard
-
-"@polkadot/api-augment@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/api-augment@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/api-base": "npm:9.14.2"
- "@polkadot/rpc-augment": "npm:9.14.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-augment": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- checksum: 10/9be92b0e30e9473453be37209547fd9cccd57d0a8baadf999d815eb58385933db656ee6e7ee24ee12059bdb2e6bff4045fa34912b06b14e93399333db14255a3
- languageName: node
- linkType: hard
-
-"@polkadot/api-base@npm:*, @polkadot/api-base@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/api-base@npm:16.5.4"
- dependencies:
- "@polkadot/rpc-core": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/d10f05bfd7d74a980a01ffd3a0ab3dd09d84e313df98770b45b24616ced22535b3429ef31b44e67153232b6766024970d43edc6305fd84f08556dd5c2888bb5e
- languageName: node
- linkType: hard
-
-"@polkadot/api-base@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/api-base@npm:10.13.1"
- dependencies:
- "@polkadot/rpc-core": "npm:10.13.1"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.6.2"
- checksum: 10/e680030a9663ec866715751386edb5deea856e79cba96e9de22ca73dd69244ece78196c74cce2077cad0fbf3bd6638198ac58ec52b9641ccb8fc9a922d6e62d4
- languageName: node
- linkType: hard
-
-"@polkadot/api-base@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/api-base@npm:15.10.2"
- dependencies:
- "@polkadot/rpc-core": "npm:15.10.2"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/193b8144cf1c85201d5f259cf830263051c6bc345af19948e3450d3ab695fe9537d368360e3302daa7fcf5de13d46e6fa07a6b8a27964aeb172d994b42a83bab
- languageName: node
- linkType: hard
-
-"@polkadot/api-base@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/api-base@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/rpc-core": "npm:7.15.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- rxjs: "npm:^7.5.5"
- checksum: 10/716d776fc2341786507b083aa60f6fc9f045b5299bef00376a09f397f2dd851cb363ec80ef28e1a615df63aef8ebf9ad7cf1f3e6ae68b6fd92680f514422ade5
- languageName: node
- linkType: hard
-
-"@polkadot/api-base@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/api-base@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/rpc-core": "npm:9.14.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- rxjs: "npm:^7.8.0"
- checksum: 10/ce04410bd9ac1416bd6a8f3d2e1c39ab2e11c632dffc72cdee8281f9385c9d3ecaa81b83bb26da534459368eaea86818f867c67f9d28933bd2b8e07b3be0dc30
- languageName: node
- linkType: hard
-
-"@polkadot/api-derive@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/api-derive@npm:10.13.1"
- dependencies:
- "@polkadot/api": "npm:10.13.1"
- "@polkadot/api-augment": "npm:10.13.1"
- "@polkadot/api-base": "npm:10.13.1"
- "@polkadot/rpc-core": "npm:10.13.1"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- "@polkadot/util-crypto": "npm:^12.6.2"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.6.2"
- checksum: 10/20b70e34b27ecf787c2898a81d6f6ac209331eb7493494a3156c9905841be4c536c03fa2552bcc918a11a170e41ffc5368fce2c40c41be3b856eaeaf0e0e65bf
- languageName: node
- linkType: hard
-
-"@polkadot/api-derive@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/api-derive@npm:15.10.2"
- dependencies:
- "@polkadot/api": "npm:15.10.2"
- "@polkadot/api-augment": "npm:15.10.2"
- "@polkadot/api-base": "npm:15.10.2"
- "@polkadot/rpc-core": "npm:15.10.2"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- "@polkadot/util-crypto": "npm:^13.4.4"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/50baf795bdd1f1f7281118eb80edcdf888040780555eefc1cd2841ac3f7e919459771e5ba6a2cc4bfa798a95391f722e6c44a66c828a917244284662e0e4f541
- languageName: node
- linkType: hard
-
-"@polkadot/api-derive@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/api-derive@npm:16.5.4"
- dependencies:
- "@polkadot/api": "npm:16.5.4"
- "@polkadot/api-augment": "npm:16.5.4"
- "@polkadot/api-base": "npm:16.5.4"
- "@polkadot/rpc-core": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- "@polkadot/util-crypto": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/5cd829447a644950074c05a7d4434748310ac3c784f94ccef7360a3a69a5bf1ee34c3d95aed6de7ae34639a6d55dbe27e3478010293c9f84cbd67a586f394ae2
- languageName: node
- linkType: hard
-
-"@polkadot/api-derive@npm:4.17.1":
- version: 4.17.1
- resolution: "@polkadot/api-derive@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/api": "npm:4.17.1"
- "@polkadot/rpc-core": "npm:4.17.1"
- "@polkadot/types": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- "@polkadot/util-crypto": "npm:^6.11.1"
- "@polkadot/x-rxjs": "npm:^6.11.1"
- checksum: 10/852ddc827ef8ce1ef013f20dcc45aa22af6f3a9258a1bc3bb48420ee6dd783dd1b3da925baadf5be701fe12de6bc8289513546a64aff88750c59178f8509b647
- languageName: node
- linkType: hard
-
-"@polkadot/api-derive@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/api-derive@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/api": "npm:7.15.1"
- "@polkadot/api-augment": "npm:7.15.1"
- "@polkadot/api-base": "npm:7.15.1"
- "@polkadot/rpc-core": "npm:7.15.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- "@polkadot/util-crypto": "npm:^8.7.1"
- rxjs: "npm:^7.5.5"
- checksum: 10/61b060ae9f0210b30e712ca2ee6559284136ea79c7e7eeed4e1bd7efc6eabc5303fa34558bc7e7cbb0b497c3e378f92ef3687350745d96df782f0053c8f783c9
- languageName: node
- linkType: hard
-
-"@polkadot/api-derive@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/api-derive@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/api": "npm:9.14.2"
- "@polkadot/api-augment": "npm:9.14.2"
- "@polkadot/api-base": "npm:9.14.2"
- "@polkadot/rpc-core": "npm:9.14.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- "@polkadot/util-crypto": "npm:^10.4.2"
- rxjs: "npm:^7.8.0"
- checksum: 10/ef43cb39cdf38a68d956ee6b37036a83b580ac274a7d2f4fb68167ea2baac21d0e6078a57b28caff60838422e1b875698bfd2913f56f41bd4216c96649ae177d
- languageName: node
- linkType: hard
-
-"@polkadot/api@npm:*, @polkadot/api@npm:16.5.4, @polkadot/api@npm:latest":
- version: 16.5.4
- resolution: "@polkadot/api@npm:16.5.4"
- dependencies:
- "@polkadot/api-augment": "npm:16.5.4"
- "@polkadot/api-base": "npm:16.5.4"
- "@polkadot/api-derive": "npm:16.5.4"
- "@polkadot/keyring": "npm:^14.0.1"
- "@polkadot/rpc-augment": "npm:16.5.4"
- "@polkadot/rpc-core": "npm:16.5.4"
- "@polkadot/rpc-provider": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-augment": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/types-create": "npm:16.5.4"
- "@polkadot/types-known": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- "@polkadot/util-crypto": "npm:^14.0.1"
- eventemitter3: "npm:^5.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/939a7238ee1bcad0de20a42aab643cfd38f47665b8581a4856d06fad55bd9256924024bcaaa851962286f15979b650004aa4445ec35736669c0cb69e21c85d4a
- languageName: node
- linkType: hard
-
-"@polkadot/api@npm:10.13.1, @polkadot/api@npm:^10.10.1, @polkadot/api@npm:^10.9.1":
- version: 10.13.1
- resolution: "@polkadot/api@npm:10.13.1"
- dependencies:
- "@polkadot/api-augment": "npm:10.13.1"
- "@polkadot/api-base": "npm:10.13.1"
- "@polkadot/api-derive": "npm:10.13.1"
- "@polkadot/keyring": "npm:^12.6.2"
- "@polkadot/rpc-augment": "npm:10.13.1"
- "@polkadot/rpc-core": "npm:10.13.1"
- "@polkadot/rpc-provider": "npm:10.13.1"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-augment": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/types-create": "npm:10.13.1"
- "@polkadot/types-known": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- "@polkadot/util-crypto": "npm:^12.6.2"
- eventemitter3: "npm:^5.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.6.2"
- checksum: 10/4323c7e5a89044b082e98525a6ec8674ac84d6548b14a9d24f5c027a2f1f598e0ea42913afdfb17b28a6822933a42508cd048529ad237c1ce1431107202c9874
- languageName: node
- linkType: hard
-
-"@polkadot/api@npm:15.10.2, @polkadot/api@npm:^15.0.0":
- version: 15.10.2
- resolution: "@polkadot/api@npm:15.10.2"
- dependencies:
- "@polkadot/api-augment": "npm:15.10.2"
- "@polkadot/api-base": "npm:15.10.2"
- "@polkadot/api-derive": "npm:15.10.2"
- "@polkadot/keyring": "npm:^13.4.4"
- "@polkadot/rpc-augment": "npm:15.10.2"
- "@polkadot/rpc-core": "npm:15.10.2"
- "@polkadot/rpc-provider": "npm:15.10.2"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-augment": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/types-create": "npm:15.10.2"
- "@polkadot/types-known": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- "@polkadot/util-crypto": "npm:^13.4.4"
- eventemitter3: "npm:^5.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/aba113aa85bf69b8f67a178dd8d86b54f408364582069f0eb23803ce7f12e6da3c134f787991e63e87ca1dac996fc1b53a55ff29b4a28b2038857cd7e654e020
- languageName: node
- linkType: hard
-
-"@polkadot/api@npm:4.17.1, @polkadot/api@npm:^4.2.1":
- version: 4.17.1
- resolution: "@polkadot/api@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/api-derive": "npm:4.17.1"
- "@polkadot/keyring": "npm:^6.11.1"
- "@polkadot/metadata": "npm:4.17.1"
- "@polkadot/rpc-core": "npm:4.17.1"
- "@polkadot/rpc-provider": "npm:4.17.1"
- "@polkadot/types": "npm:4.17.1"
- "@polkadot/types-known": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- "@polkadot/util-crypto": "npm:^6.11.1"
- "@polkadot/x-rxjs": "npm:^6.11.1"
- eventemitter3: "npm:^4.0.7"
- checksum: 10/b56480346204fb498abf030ad2f5239910b197977c516365c25106b1e9e01a011ac40dc1a587c3e9332bd25f7de62fa9c9bfdc38bf35b760a985ae22d95bf16f
- languageName: node
- linkType: hard
-
-"@polkadot/api@npm:7.15.1, @polkadot/api@npm:^7.2.1":
- version: 7.15.1
- resolution: "@polkadot/api@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/api-augment": "npm:7.15.1"
- "@polkadot/api-base": "npm:7.15.1"
- "@polkadot/api-derive": "npm:7.15.1"
- "@polkadot/keyring": "npm:^8.7.1"
- "@polkadot/rpc-augment": "npm:7.15.1"
- "@polkadot/rpc-core": "npm:7.15.1"
- "@polkadot/rpc-provider": "npm:7.15.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-augment": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/types-create": "npm:7.15.1"
- "@polkadot/types-known": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- "@polkadot/util-crypto": "npm:^8.7.1"
- eventemitter3: "npm:^4.0.7"
- rxjs: "npm:^7.5.5"
- checksum: 10/53214366c8f121e18e9214370d4172285a55931dc94509113202acc02dd870ebb1755661c6ffbb54b873137c06bedae36da819f4ebd8b2621569f5c990a54fc0
- languageName: node
- linkType: hard
-
-"@polkadot/api@npm:9.14.2, @polkadot/api@npm:^9.13.2":
- version: 9.14.2
- resolution: "@polkadot/api@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/api-augment": "npm:9.14.2"
- "@polkadot/api-base": "npm:9.14.2"
- "@polkadot/api-derive": "npm:9.14.2"
- "@polkadot/keyring": "npm:^10.4.2"
- "@polkadot/rpc-augment": "npm:9.14.2"
- "@polkadot/rpc-core": "npm:9.14.2"
- "@polkadot/rpc-provider": "npm:9.14.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-augment": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/types-create": "npm:9.14.2"
- "@polkadot/types-known": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- "@polkadot/util-crypto": "npm:^10.4.2"
- eventemitter3: "npm:^5.0.0"
- rxjs: "npm:^7.8.0"
- checksum: 10/345c3c3dfaae317d218f7d4943da8c8ad7d4992c91cad75b6fc0b05bef7de22a87eab8d83aedb90f1286c0e9c272d8af8ed5a17d0c0971b9625374aacb035fcb
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/keyring@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/util": "npm:10.4.2"
- "@polkadot/util-crypto": "npm:10.4.2"
- peerDependencies:
- "@polkadot/util": 10.4.2
- "@polkadot/util-crypto": 10.4.2
- checksum: 10/002472ee0760923e6798b7981de3db6019aa8c36dabf134a0f9b90cd19fde32e271a2be382be67b37f3cc50f904685058f2bbda91cfaec7cbd50f572973cbbd6
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/keyring@npm:12.6.2"
- dependencies:
- "@polkadot/util": "npm:12.6.2"
- "@polkadot/util-crypto": "npm:12.6.2"
- tslib: "npm:^2.6.2"
- peerDependencies:
- "@polkadot/util": 12.6.2
- "@polkadot/util-crypto": 12.6.2
- checksum: 10/8faf59684ff5d041ba5fa7dd85c3ee4ac3920b2d907f81a485e37aedab64798f9c59b7ec914eb24dfc5271a4ef31e1244aecbd247c66f2b2ec518cfd37dd30fc
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^13.4.4":
- version: 13.5.9
- resolution: "@polkadot/keyring@npm:13.5.9"
- dependencies:
- "@polkadot/util": "npm:13.5.9"
- "@polkadot/util-crypto": "npm:13.5.9"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@polkadot/util": 13.5.9
- "@polkadot/util-crypto": 13.5.9
- checksum: 10/0d12d18dfa168f7acd4c2641291af148d1630a387797c0ceb0614f004fcf601aca413cd9dfa54e35b4521e1d9117f70515adf64de93091a9be67425122c539e8
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/keyring@npm:14.0.1"
- dependencies:
- "@polkadot/util": "npm:14.0.1"
- "@polkadot/util-crypto": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@polkadot/util": 14.0.1
- "@polkadot/util-crypto": 14.0.1
- checksum: 10/b1bc206bdf0a59f04920787e62afc9b8278a9aeb4e7b6ca4219d5677e6688b479cd64ba9b8e6e6fa91c629004ae9aa14e616f1d1f64d854d6ff254b7ba52b6f4
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^6.11.1, @polkadot/keyring@npm:^6.9.1":
- version: 6.11.1
- resolution: "@polkadot/keyring@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/util": "npm:6.11.1"
- "@polkadot/util-crypto": "npm:6.11.1"
- peerDependencies:
- "@polkadot/util": 6.11.1
- "@polkadot/util-crypto": 6.11.1
- checksum: 10/8ef6bc494a240ef4e663d2bea19568ce11cd2ed8d5506265469f3ec464397e5e863b57e3457cb1844ffa2767b15ddac7cc4b43908fe278a922943417f78b90db
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^7.4.1":
- version: 7.9.2
- resolution: "@polkadot/keyring@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/util": "npm:7.9.2"
- "@polkadot/util-crypto": "npm:7.9.2"
- peerDependencies:
- "@polkadot/util": 7.9.2
- "@polkadot/util-crypto": 7.9.2
- checksum: 10/f1ee2f9e35dda1bd0183d62dd4008b1f983c96c0bd1a302385a106a8d23a3b1a58949c2738fc32442878957e1b0c6877b3f57fb4d43d8320d002b52821c54644
- languageName: node
- linkType: hard
-
-"@polkadot/keyring@npm:^8.2.2, @polkadot/keyring@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/keyring@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/util": "npm:8.7.1"
- "@polkadot/util-crypto": "npm:8.7.1"
- peerDependencies:
- "@polkadot/util": 8.7.1
- "@polkadot/util-crypto": 8.7.1
- checksum: 10/0f875e6ab410ce0dd12f57c454c30c5f9fb0cc0097f6e0836fda8b39515389cf1301a5894b9f615bedf47efa1c5fa064b65235adc53d0f97af0917a4f72ac311
- languageName: node
- linkType: hard
-
-"@polkadot/metadata@npm:4.17.1":
- version: 4.17.1
- resolution: "@polkadot/metadata@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/types": "npm:4.17.1"
- "@polkadot/types-known": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- "@polkadot/util-crypto": "npm:^6.11.1"
- checksum: 10/a7ce1a01c805cf4536fa8109abfdb507e6fbdb6e668728e5d710e3f9139cab0529bcea8b22dc6b884e744ef35f32af62b1e50ebb3f92cb6690e8ba4d87da5679
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:10.4.2, @polkadot/networks@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/networks@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/util": "npm:10.4.2"
- "@substrate/ss58-registry": "npm:^1.38.0"
- checksum: 10/ff73e12d80dddb626fb442477581308892e7e4e23a375680624563e129e0d41c31557955fa3ffe06e5ccd6cc7173b9a51554a5f29e681347cb8c09399aa780ee
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:12.6.2, @polkadot/networks@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/networks@npm:12.6.2"
- dependencies:
- "@polkadot/util": "npm:12.6.2"
- "@substrate/ss58-registry": "npm:^1.44.0"
- tslib: "npm:^2.6.2"
- checksum: 10/6c2cd7f631ec40489e8f8260b15a138bd0d276d222e4133847e8915c476aea415498dd8d8ab583bdf76f2e4e5bb1c7a20bca9dac110eae2fb48d5f6cf6798349
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:13.5.9, @polkadot/networks@npm:^13.4.4":
- version: 13.5.9
- resolution: "@polkadot/networks@npm:13.5.9"
- dependencies:
- "@polkadot/util": "npm:13.5.9"
- "@substrate/ss58-registry": "npm:^1.51.0"
- tslib: "npm:^2.8.0"
- checksum: 10/b418f4950e4713244164b304eabdb512d12a47f2366c72e443925a7fec3af638bfac8e9e59c7ddb35dad7ae9d6e464529aad297cd433f7e7743442301a6b0a66
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:14.0.1, @polkadot/networks@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/networks@npm:14.0.1"
- dependencies:
- "@polkadot/util": "npm:14.0.1"
- "@substrate/ss58-registry": "npm:^1.51.0"
- tslib: "npm:^2.8.0"
- checksum: 10/ccb4e24ac5d7bc1af49b875bc4cd39b135e86e6518f8345ac5b8d3acea576380de73d4175c19e6f58a2f3f173779e6c71a75b6c1d77a95241cdc5e776849432b
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:6.11.1, @polkadot/networks@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/networks@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- checksum: 10/7bb6d4bbf77aed969958f92256309bd89659a21383527f875cd5e00295a8960168cb26bf78c539afaa91f7443930b5c312d5019b70a0f29ae850b21aad74a125
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/networks@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- checksum: 10/1b3990abb173df3780ea72adf8545097f0a697a33d36d901769a2ebd88de585570e922e73169d14d736d16df0233370f3e88ed60da7de4680e057c94a45541c1
- languageName: node
- linkType: hard
-
-"@polkadot/networks@npm:8.7.1, @polkadot/networks@npm:^8.1.2, @polkadot/networks@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/networks@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/util": "npm:8.7.1"
- "@substrate/ss58-registry": "npm:^1.17.0"
- checksum: 10/ebecb9bd9d2dab42b104fee6cb23c62ac2625aa2b5afe8942d40a8848627393176c0a5be20b11dc40cbb5be78de18f016f1ef1245e094f99fec68069a1aeec5f
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-augment@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/rpc-augment@npm:10.13.1"
- dependencies:
- "@polkadot/rpc-core": "npm:10.13.1"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/136c03295315d4217592dbaae7113eecb1560895e95d3fe369cfd12b8edc5f5f19d1e31c929444c53b27600ca2a17d01448b282bee738cee83307193f645e896
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-augment@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/rpc-augment@npm:15.10.2"
- dependencies:
- "@polkadot/rpc-core": "npm:15.10.2"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/9bb6e96e971d12626046bef6aee1d4742d37071abbb1c2fe1318b1d2a6f9a8fdcb6b03aee1763996e20bd09d67de93e0450bd32587e1eda18444f1bd7e6020de
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-augment@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/rpc-augment@npm:16.5.4"
- dependencies:
- "@polkadot/rpc-core": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/03794941e1efa75574a6cf744862b5b39fe3d010e93d0b02a5094cae79f426acb4e4439f6489e40bedb24411b22a743f15c01edb85f83e62b2a55d659583a740
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-augment@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/rpc-augment@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/rpc-core": "npm:7.15.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/a7d2e20c562d8aee2da9efeddf1343303a88bbac971f55a4d9c47d1a89a8de63ef2f8099c236894b563ac263bd2b0ab085a7bb4339de1b41e9743333e13b2c0a
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-augment@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/rpc-augment@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/rpc-core": "npm:9.14.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- checksum: 10/5132c8e68f4d4575d5d3aafff439353e53eefaa67b2b93482506091c9521be6560fd01151060e5d135f6a84bb886548be9afee3445bb37271fdd0f71a1dca6d1
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-core@npm:*, @polkadot/rpc-core@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/rpc-core@npm:16.5.4"
- dependencies:
- "@polkadot/rpc-augment": "npm:16.5.4"
- "@polkadot/rpc-provider": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/e22796384712238a38b907a2e312fecc31ec6187ac9434c9ad758b1fd5d02ba50d3319c363921b9cb3890625d7bac6e331ab180e14ead60be1b3c2796a028e33
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-core@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/rpc-core@npm:10.13.1"
- dependencies:
- "@polkadot/rpc-augment": "npm:10.13.1"
- "@polkadot/rpc-provider": "npm:10.13.1"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.6.2"
- checksum: 10/898237861cf770ac99cd0f50cab594ecfa56e2706201c7e35459718f6a1bef7b8e3d2349a62fd7a5e59dad87db32d6f85585c4c85b50e221ce114c4df0a5bfdc
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-core@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/rpc-core@npm:15.10.2"
- dependencies:
- "@polkadot/rpc-augment": "npm:15.10.2"
- "@polkadot/rpc-provider": "npm:15.10.2"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/62e0ff2f65fd5db26f982b855e82f8d0d1385046c90eb94364b105d34baa5972b01b113fe2292443354f7accff92faac998356946f9b4a80d8a86ea9d6d885a5
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-core@npm:4.17.1":
- version: 4.17.1
- resolution: "@polkadot/rpc-core@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/metadata": "npm:4.17.1"
- "@polkadot/rpc-provider": "npm:4.17.1"
- "@polkadot/types": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- "@polkadot/x-rxjs": "npm:^6.11.1"
- checksum: 10/3d1ac506f044d1e204d3121fe43ef67e916bb5ded1d24b6139ac2d7f1ae5509e550275627068b931ba209b075a09f9259db0dce80162ac5cdb1bd07ebdb9e089
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-core@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/rpc-core@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/rpc-augment": "npm:7.15.1"
- "@polkadot/rpc-provider": "npm:7.15.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- rxjs: "npm:^7.5.5"
- checksum: 10/3d5780e7919421d0a993e3261fdbff4b5cfa576cef26220f4f50d169861277d834454c54d7403334d06410bf86962ead9206a4c25fc6553c5f84f11aa8b7c9a6
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-core@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/rpc-core@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/rpc-augment": "npm:9.14.2"
- "@polkadot/rpc-provider": "npm:9.14.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- rxjs: "npm:^7.8.0"
- checksum: 10/2696bb3640beb730b8dc1a3d481b37421a139d49d45620f0078782f1acd1bc8cc4b857d4cf6f5b8e2b79af3d6cfcf555c742d2e7001af72eadca188531d15b90
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-provider@npm:10.13.1, @polkadot/rpc-provider@npm:^10.9.1":
- version: 10.13.1
- resolution: "@polkadot/rpc-provider@npm:10.13.1"
- dependencies:
- "@polkadot/keyring": "npm:^12.6.2"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-support": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- "@polkadot/util-crypto": "npm:^12.6.2"
- "@polkadot/x-fetch": "npm:^12.6.2"
- "@polkadot/x-global": "npm:^12.6.2"
- "@polkadot/x-ws": "npm:^12.6.2"
- "@substrate/connect": "npm:0.8.8"
- eventemitter3: "npm:^5.0.1"
- mock-socket: "npm:^9.3.1"
- nock: "npm:^13.5.0"
- tslib: "npm:^2.6.2"
- dependenciesMeta:
- "@substrate/connect":
- optional: true
- checksum: 10/9a17ccbe302c7104924dafdf829ec6a87303cc9bf86d7d06dae614b5f40550759a404dded427382030fa4fee2a7d0bc8f32a9f7d6b67f966a76a209938bfbc62
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-provider@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/rpc-provider@npm:15.10.2"
- dependencies:
- "@polkadot/keyring": "npm:^13.4.4"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-support": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- "@polkadot/util-crypto": "npm:^13.4.4"
- "@polkadot/x-fetch": "npm:^13.4.4"
- "@polkadot/x-global": "npm:^13.4.4"
- "@polkadot/x-ws": "npm:^13.4.4"
- "@substrate/connect": "npm:0.8.11"
- eventemitter3: "npm:^5.0.1"
- mock-socket: "npm:^9.3.1"
- nock: "npm:^13.5.5"
- tslib: "npm:^2.8.1"
- dependenciesMeta:
- "@substrate/connect":
- optional: true
- checksum: 10/e8d0acb0981e965942e4e309dab5d7ec8051b11a3e6ab32fdcf33da25f0900bcf9c689bc502ce6fcd80b7e6d4fc9799015eb41f65a69b0780b2f1adf4caf3562
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-provider@npm:16.5.4, @polkadot/rpc-provider@npm:^16.4.1":
- version: 16.5.4
- resolution: "@polkadot/rpc-provider@npm:16.5.4"
- dependencies:
- "@polkadot/keyring": "npm:^14.0.1"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-support": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- "@polkadot/util-crypto": "npm:^14.0.1"
- "@polkadot/x-fetch": "npm:^14.0.1"
- "@polkadot/x-global": "npm:^14.0.1"
- "@polkadot/x-ws": "npm:^14.0.1"
- "@substrate/connect": "npm:0.8.11"
- eventemitter3: "npm:^5.0.1"
- mock-socket: "npm:^9.3.1"
- nock: "npm:^13.5.5"
- tslib: "npm:^2.8.1"
- dependenciesMeta:
- "@substrate/connect":
- optional: true
- checksum: 10/d15e0702f81c36124115c63c2702975188a7bb50886f5fbc54a98ebe6697b8aaef0a616ce13df2da99d6db0b06b7228d4f93dc44b0188e81aa62242bf6257b44
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-provider@npm:4.17.1":
- version: 4.17.1
- resolution: "@polkadot/rpc-provider@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/types": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- "@polkadot/util-crypto": "npm:^6.11.1"
- "@polkadot/x-fetch": "npm:^6.11.1"
- "@polkadot/x-global": "npm:^6.11.1"
- "@polkadot/x-ws": "npm:^6.11.1"
- eventemitter3: "npm:^4.0.7"
- checksum: 10/18a44cbee748f7c600013dcd3efaf99df922a995957683d167d551573a718e2c7eaa7fdd49da39d24c1b8c8168ddb38c4f443c7863284b3f3a0969b56f789f08
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-provider@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/rpc-provider@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/keyring": "npm:^8.7.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-support": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- "@polkadot/util-crypto": "npm:^8.7.1"
- "@polkadot/x-fetch": "npm:^8.7.1"
- "@polkadot/x-global": "npm:^8.7.1"
- "@polkadot/x-ws": "npm:^8.7.1"
- "@substrate/connect": "npm:0.7.0-alpha.0"
- eventemitter3: "npm:^4.0.7"
- mock-socket: "npm:^9.1.2"
- nock: "npm:^13.2.4"
- checksum: 10/62aaa15690775e7abd441000c4172554cf2b21c8d965763722a7604beea7a2b2d82287e246ee49a9ed1f6a27ef7da8144a82542ed5ecd548331bdd5e5575ede6
- languageName: node
- linkType: hard
-
-"@polkadot/rpc-provider@npm:9.14.2, @polkadot/rpc-provider@npm:^9.13.2":
- version: 9.14.2
- resolution: "@polkadot/rpc-provider@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/keyring": "npm:^10.4.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-support": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- "@polkadot/util-crypto": "npm:^10.4.2"
- "@polkadot/x-fetch": "npm:^10.4.2"
- "@polkadot/x-global": "npm:^10.4.2"
- "@polkadot/x-ws": "npm:^10.4.2"
- "@substrate/connect": "npm:0.7.19"
- eventemitter3: "npm:^5.0.0"
- mock-socket: "npm:^9.2.1"
- nock: "npm:^13.3.0"
- dependenciesMeta:
- "@substrate/connect":
- optional: true
- checksum: 10/1d71fbb15c0fe13d1a73c911723c4485b9125add2f1838bc0e3bd3987eedb557921301f30e159f51c42fa6cfb0b40f8493aa1e3e107ac5dd7c011d674ddacdeb
- languageName: node
- linkType: hard
-
-"@polkadot/typegen@npm:*":
- version: 16.5.4
- resolution: "@polkadot/typegen@npm:16.5.4"
- dependencies:
- "@polkadot/api": "npm:16.5.4"
- "@polkadot/api-augment": "npm:16.5.4"
- "@polkadot/api-derive": "npm:16.5.4"
- "@polkadot/rpc-augment": "npm:16.5.4"
- "@polkadot/rpc-provider": "npm:16.5.4"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-augment": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/types-create": "npm:16.5.4"
- "@polkadot/types-support": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- "@polkadot/util-crypto": "npm:^14.0.1"
- "@polkadot/x-ws": "npm:^14.0.1"
- comment-parser: "npm:^1.4.1"
- handlebars: "npm:^4.7.8"
- tslib: "npm:^2.8.1"
- yargs: "npm:^17.7.2"
- bin:
- polkadot-types-chain-info: scripts/polkadot-types-chain-info.mjs
- polkadot-types-from-chain: scripts/polkadot-types-from-chain.mjs
- polkadot-types-from-defs: scripts/polkadot-types-from-defs.mjs
- polkadot-types-internal-interfaces: scripts/polkadot-types-internal-interfaces.mjs
- polkadot-types-internal-metadata: scripts/polkadot-types-internal-metadata.mjs
- checksum: 10/5d3a041c25ea84ed8024b60db62cb49182203bc9f164cfe3bfa2cf7959b3e3863d8bd04183955fa1066c4b3910fd881ccb491c997873b448c52e596c1516f8a7
- languageName: node
- linkType: hard
-
-"@polkadot/types-augment@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/types-augment@npm:10.13.1"
- dependencies:
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/41d54340f81dceea864b03e0b2ad7dacd2d6f107c36bb29d74866e7f9ec70348d40e7c847856c5ad84e436d1c6123b951b1c3aefa87df90e772a5128fce3c43c
- languageName: node
- linkType: hard
-
-"@polkadot/types-augment@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/types-augment@npm:15.10.2"
- dependencies:
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/c6853bbef55e0319e12d052e9649c49f186a016234a4b647a9645e65f7205db174af2ebdf81b118c23a36e04d5d2d864c9852332fe8256f630fdc42c5b24fb92
- languageName: node
- linkType: hard
-
-"@polkadot/types-augment@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/types-augment@npm:16.5.4"
- dependencies:
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/5addbd3a2391d394abd8d4fa4f0f10945cb79ee724e189961bc6fcbb3ca893d4192d4f3aeeeb3eb02ad400d7007b9f71a48cdf94330eb8ef2f84105d95c6701d
- languageName: node
- linkType: hard
-
-"@polkadot/types-augment@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/types-augment@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/b868473f42d9aa0abf925758b075fae0ba5499357c28ac4e979c49b50b35b37c94705a75bf733614d6150f01aeb2e99f0838fb12a17b24eaaf0b4adc846dab7a
- languageName: node
- linkType: hard
-
-"@polkadot/types-augment@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/types-augment@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- checksum: 10/c620672250648269b5f0280f06edd3dde386bfd435dd5b1c27f41713b1c86facc02b0a2171ee78367aa8faf46314b2211c0d416faa9828563f49dfb234c498e4
- languageName: node
- linkType: hard
-
-"@polkadot/types-codec@npm:*, @polkadot/types-codec@npm:16.5.4, @polkadot/types-codec@npm:^16.4.1":
- version: 16.5.4
- resolution: "@polkadot/types-codec@npm:16.5.4"
- dependencies:
- "@polkadot/util": "npm:^14.0.1"
- "@polkadot/x-bigint": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/9eb7adb2084394df159b4542cc28ea57935f260fc2a4e3a0179f70a3214fdbd612c1cf9053a4eb3e427efe9ce6a64ac6887d1b10b1f67ef112550b8c38d56600
- languageName: node
- linkType: hard
-
-"@polkadot/types-codec@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/types-codec@npm:10.13.1"
- dependencies:
- "@polkadot/util": "npm:^12.6.2"
- "@polkadot/x-bigint": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/471fe15559ca880a0bc34ff6e24454a33bef72c82007aa95486c98766993e81dac7b59046927a7d167b1f5c569e08716f26592eef04bd03f809174977aa24f2c
- languageName: node
- linkType: hard
-
-"@polkadot/types-codec@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/types-codec@npm:15.10.2"
- dependencies:
- "@polkadot/util": "npm:^13.4.4"
- "@polkadot/x-bigint": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/b046ce657755622c3e5bd68e9e18122d25045fc0c656b91d1887c03055db8a6f85635b3d146fa692bc4c10a575a3dbca7845a8071e702739f5a71f0d54c1b695
- languageName: node
- linkType: hard
-
-"@polkadot/types-codec@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/types-codec@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/147de26bea074a89e29d9b0f92b8e6c4341c953eaf71fc486e34f2f6d5e106ff5562b51c52117ffe3b8f6d94e6e1fc0d5fd6655d645e45905b05aedace053c4c
- languageName: node
- linkType: hard
-
-"@polkadot/types-codec@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/types-codec@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/util": "npm:^10.4.2"
- "@polkadot/x-bigint": "npm:^10.4.2"
- checksum: 10/cebcbb5ad7c3ccd94b06f355af4581cd9ae3d1b02a1ac4644f013e6ddcba34f5c04f3b799c1bd58528adf13d3c9092a554cceb4d32b871694e108830e0716413
- languageName: node
- linkType: hard
-
-"@polkadot/types-create@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/types-create@npm:10.13.1"
- dependencies:
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/30e8de4d36fb0760ace5282d7f80e8dc035462df7c26a37d1cac5ac31b8dac8775a9a23eaff9636e470f4f3ea7034ce4ccfe8f6510c51481d47dac7d832b0d58
- languageName: node
- linkType: hard
-
-"@polkadot/types-create@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/types-create@npm:15.10.2"
- dependencies:
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/669a5ca2c3a7b9f2cbaf5926c990471bf530d038992117e43251a1898448629aed654648f408e5c5675c6ad87f8ce8e29868731b4d552d8e67d6f3f133aa2c01
- languageName: node
- linkType: hard
-
-"@polkadot/types-create@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/types-create@npm:16.5.4"
- dependencies:
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/949f918c36c8ef1356f142d39b6bd6f670b2396e7c5f233c9dd5df6d1c377c36338a853962bb22ce2de02f3131df89d7bc9dcad8645bf57358117ace66677a21
- languageName: node
- linkType: hard
-
-"@polkadot/types-create@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/types-create@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/e363c9ae016fab6cef5247fb6a1ff024bb5a444b115fde3df450de7b3cd15bb959561f4b55bb8d6c0bb73285b23d30e9c7906e720330842cb1050876930e9129
- languageName: node
- linkType: hard
-
-"@polkadot/types-create@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/types-create@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- checksum: 10/b60a0df3b7d4b0f9e3504ecb19faec7deb635689da536cffd0145bf725ec982fa30936cae79655f15b067e9b2bcc6599b75d818528bc223b93370297d5629b02
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/types-known@npm:10.13.1"
- dependencies:
- "@polkadot/networks": "npm:^12.6.2"
- "@polkadot/types": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/types-create": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/b8848cfb97ca7611ee8f368112be1f5d6adf8e9943faa0d3b5ff438e45d28bd9bc18d1b18eb7e643e4e0bbc07f69ea70ad48e4af002ba27ac3cb22df3a4d5472
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/types-known@npm:15.10.2"
- dependencies:
- "@polkadot/networks": "npm:^13.4.4"
- "@polkadot/types": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/types-create": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/ee4c42436b408bc80d83c6b13c38ec7e35e3de1432fbbee6f4bb7418089261d115671a0de4521f3a8ce4047b68a770e3cfaa79cf19d435f7e3c43575abd97ac1
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:16.5.4, @polkadot/types-known@npm:^16.4.1":
- version: 16.5.4
- resolution: "@polkadot/types-known@npm:16.5.4"
- dependencies:
- "@polkadot/networks": "npm:^14.0.1"
- "@polkadot/types": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/types-create": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/75a8e26052fcb1a4d5c293cd545615c923020ad0d6f4d65a6e2694fb427e33c3b237854912583bb16dcc24b667b0084aa954233decc8b39409a4ab0f38b2f97b
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:4.17.1":
- version: 4.17.1
- resolution: "@polkadot/types-known@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/networks": "npm:^6.11.1"
- "@polkadot/types": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- checksum: 10/fb1ff62a823b5d8f0db9606da9df4568f2ed89bc61e20450663dffe3d05be00f0d54f878a051a64f4981950417298acfced10c42425bcad8970f582ffe0dfc22
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:6.12.1":
- version: 6.12.1
- resolution: "@polkadot/types-known@npm:6.12.1"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/networks": "npm:^8.1.2"
- "@polkadot/types": "npm:6.12.1"
- "@polkadot/util": "npm:^8.1.2"
- checksum: 10/1de0caba6f49d7f3a6ae5c548ec5be6b34a40b98fd79c9ca8306762b8eed2ff8ec8a548ddde0db4da7d2a05fdf781e7dbd25118a4ba4ab948843ee8280d1c440
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/types-known@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/networks": "npm:^8.7.1"
- "@polkadot/types": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/types-create": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/3422440bd9af012d5f105f8dda5aecdcc2e25a6505c4cb74dec9441dde466517fdf2956f31521aac4cb417c7221194b5f965e6a104a89997814652d3596cab3c
- languageName: node
- linkType: hard
-
-"@polkadot/types-known@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/types-known@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/networks": "npm:^10.4.2"
- "@polkadot/types": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/types-create": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- checksum: 10/78154acc8cfee4174e36e3832f85d0c491b7831854509b50a757f47864c3a65da028740f040f27596799275c85e3f260bcd772728e02272e4ab71e859e0ef9ef
- languageName: node
- linkType: hard
-
-"@polkadot/types-support@npm:10.13.1":
- version: 10.13.1
- resolution: "@polkadot/types-support@npm:10.13.1"
- dependencies:
- "@polkadot/util": "npm:^12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/d802bb774ada41d5ce5d5a6b80dab199c671fba08693efde4e3e8e3eb2010eef2c073e75a9e5e9e5775826d0659cd29c824331cec2568e7d4b504240ce9e68bf
- languageName: node
- linkType: hard
-
-"@polkadot/types-support@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/types-support@npm:15.10.2"
- dependencies:
- "@polkadot/util": "npm:^13.4.4"
- tslib: "npm:^2.8.1"
- checksum: 10/34431ebc08e189502759679ac793d75aafdbf0f6d254063f7bc5a3fb77e5364617f4b806509062c0a5c6a4330b239a0e906465c358d12ae11de4e1bfd155f63a
- languageName: node
- linkType: hard
-
-"@polkadot/types-support@npm:16.5.4":
- version: 16.5.4
- resolution: "@polkadot/types-support@npm:16.5.4"
- dependencies:
- "@polkadot/util": "npm:^14.0.1"
- tslib: "npm:^2.8.1"
- checksum: 10/db884bc7e5edeb9744dade8a9b7d48950ae0424d0d6cd2ec291c19620ae4b451bab4d116283b20bece948fae348b71c70f3688a087573a5d60d6e9eb8e6b2348
- languageName: node
- linkType: hard
-
-"@polkadot/types-support@npm:7.15.1":
- version: 7.15.1
- resolution: "@polkadot/types-support@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/util": "npm:^8.7.1"
- checksum: 10/65312a7e21ecac65eadaca284f7745625f09506847ec8146f8c3673b145e8abc33a77467bf9cb17f556611aee0d81a9de4f047c3e81a1425e6e936ef302e3d93
- languageName: node
- linkType: hard
-
-"@polkadot/types-support@npm:9.14.2":
- version: 9.14.2
- resolution: "@polkadot/types-support@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/util": "npm:^10.4.2"
- checksum: 10/20d652fb010f4acbc846e3a427f8bb58d4147a3acff6d37c52c82b77206fcbf33733feef3159b91581c1351a07e99a587392c4f79acc544c99158418ab48346e
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:*, @polkadot/types@npm:16.5.4, @polkadot/types@npm:^16.4.1":
- version: 16.5.4
- resolution: "@polkadot/types@npm:16.5.4"
- dependencies:
- "@polkadot/keyring": "npm:^14.0.1"
- "@polkadot/types-augment": "npm:16.5.4"
- "@polkadot/types-codec": "npm:16.5.4"
- "@polkadot/types-create": "npm:16.5.4"
- "@polkadot/util": "npm:^14.0.1"
- "@polkadot/util-crypto": "npm:^14.0.1"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/837137deee5e5785a601a93cb8305a68d771ade15f2ac716583d14ad1892a11c658a79aed99426fd358eecce385ad828972ef55f95f072c9ab76dffdadcf4c79
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:10.13.1, @polkadot/types@npm:^10.9.1":
- version: 10.13.1
- resolution: "@polkadot/types@npm:10.13.1"
- dependencies:
- "@polkadot/keyring": "npm:^12.6.2"
- "@polkadot/types-augment": "npm:10.13.1"
- "@polkadot/types-codec": "npm:10.13.1"
- "@polkadot/types-create": "npm:10.13.1"
- "@polkadot/util": "npm:^12.6.2"
- "@polkadot/util-crypto": "npm:^12.6.2"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.6.2"
- checksum: 10/8ae2df5b08dd0b977d39a62a7a70788c7925d5fd9212ab2f1e1011a79971e689cfc9b88b20e671a8c8f834fa38038ab5cb97b8f3a7f6272822796c7bfea74d3f
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:15.10.2":
- version: 15.10.2
- resolution: "@polkadot/types@npm:15.10.2"
- dependencies:
- "@polkadot/keyring": "npm:^13.4.4"
- "@polkadot/types-augment": "npm:15.10.2"
- "@polkadot/types-codec": "npm:15.10.2"
- "@polkadot/types-create": "npm:15.10.2"
- "@polkadot/util": "npm:^13.4.4"
- "@polkadot/util-crypto": "npm:^13.4.4"
- rxjs: "npm:^7.8.1"
- tslib: "npm:^2.8.1"
- checksum: 10/1f0614f3777d04d91ac396e7c025ed5eeba3e12a72b1d6d4425edfb084860b93bd1d7ee085ee47487efec046f747d26fb69907b41f1f05d91ef81799383c4020
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:4.17.1, @polkadot/types@npm:^4.13.1":
- version: 4.17.1
- resolution: "@polkadot/types@npm:4.17.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/metadata": "npm:4.17.1"
- "@polkadot/util": "npm:^6.11.1"
- "@polkadot/util-crypto": "npm:^6.11.1"
- "@polkadot/x-rxjs": "npm:^6.11.1"
- checksum: 10/e5cd407756c71684ec2f939c2217b44be1183bedcd1fcae044bcd85584ee683917528e26558dc9cd1319c4dc5e2b1e8719389e7b8cc51254daa12f742a8772c2
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:6.12.1, @polkadot/types@npm:^6.0.5":
- version: 6.12.1
- resolution: "@polkadot/types@npm:6.12.1"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/types-known": "npm:6.12.1"
- "@polkadot/util": "npm:^8.1.2"
- "@polkadot/util-crypto": "npm:^8.1.2"
- rxjs: "npm:^7.4.0"
- checksum: 10/c602578057fe9529ad75a103f04bd1366d8c6ffe4f32a06ff2fa35679115aa5b25c727e76a6f034e58f5e784766e6ad10c5bc5cfd92a93bb89b22b6dba48458b
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:7.15.1, @polkadot/types@npm:^7.2.1":
- version: 7.15.1
- resolution: "@polkadot/types@npm:7.15.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/keyring": "npm:^8.7.1"
- "@polkadot/types-augment": "npm:7.15.1"
- "@polkadot/types-codec": "npm:7.15.1"
- "@polkadot/types-create": "npm:7.15.1"
- "@polkadot/util": "npm:^8.7.1"
- "@polkadot/util-crypto": "npm:^8.7.1"
- rxjs: "npm:^7.5.5"
- checksum: 10/616a1f38c99540eb0504ed80b8ecdc95097c8d81458542dd6fa7fcdfd6bf78464047664cbff009107dc53bcd683824c1c8d3de2e2198d5efeac98420122e02d4
- languageName: node
- linkType: hard
-
-"@polkadot/types@npm:9.14.2, @polkadot/types@npm:^9.13.2":
- version: 9.14.2
- resolution: "@polkadot/types@npm:9.14.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/keyring": "npm:^10.4.2"
- "@polkadot/types-augment": "npm:9.14.2"
- "@polkadot/types-codec": "npm:9.14.2"
- "@polkadot/types-create": "npm:9.14.2"
- "@polkadot/util": "npm:^10.4.2"
- "@polkadot/util-crypto": "npm:^10.4.2"
- rxjs: "npm:^7.8.0"
- checksum: 10/8bc908056a8f450b84d7e7c3e09fa0e0779a200c8f1240c9eeae88a922dc7acc496d066b88662220eafc5a1ad70051d761dc0b6ccc742f709af043c3ff6c03d5
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:10.4.2, @polkadot/util-crypto@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/util-crypto@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@noble/hashes": "npm:1.2.0"
- "@noble/secp256k1": "npm:1.7.1"
- "@polkadot/networks": "npm:10.4.2"
- "@polkadot/util": "npm:10.4.2"
- "@polkadot/wasm-crypto": "npm:^6.4.1"
- "@polkadot/x-bigint": "npm:10.4.2"
- "@polkadot/x-randomvalues": "npm:10.4.2"
- "@scure/base": "npm:1.1.1"
- ed2curve: "npm:^0.3.0"
- tweetnacl: "npm:^1.0.3"
- peerDependencies:
- "@polkadot/util": 10.4.2
- checksum: 10/6faeb2026d9f455dd771b9c99590be1a08447337e6684b1a3dd77fe7c59661cb5ed65a95155f600d0b39bbe22332a02426da7d0849e3aeb92a478f2ff7069439
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:12.6.2, @polkadot/util-crypto@npm:^12.5.1, @polkadot/util-crypto@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/util-crypto@npm:12.6.2"
- dependencies:
- "@noble/curves": "npm:^1.3.0"
- "@noble/hashes": "npm:^1.3.3"
- "@polkadot/networks": "npm:12.6.2"
- "@polkadot/util": "npm:12.6.2"
- "@polkadot/wasm-crypto": "npm:^7.3.2"
- "@polkadot/wasm-util": "npm:^7.3.2"
- "@polkadot/x-bigint": "npm:12.6.2"
- "@polkadot/x-randomvalues": "npm:12.6.2"
- "@scure/base": "npm:^1.1.5"
- tslib: "npm:^2.6.2"
- peerDependencies:
- "@polkadot/util": 12.6.2
- checksum: 10/a587e5e25697f3a928ae8677b82ccdbcc1df95122db2bbde753b0605f44487136fe2f55c502460d931def0007e856db40b1b34b4da3c674638ead459e79f227a
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:13.5.9, @polkadot/util-crypto@npm:^13.4.4, @polkadot/util-crypto@npm:^13.5.3, @polkadot/util-crypto@npm:^13.5.9":
- version: 13.5.9
- resolution: "@polkadot/util-crypto@npm:13.5.9"
- dependencies:
- "@noble/curves": "npm:^1.3.0"
- "@noble/hashes": "npm:^1.3.3"
- "@polkadot/networks": "npm:13.5.9"
- "@polkadot/util": "npm:13.5.9"
- "@polkadot/wasm-crypto": "npm:^7.5.3"
- "@polkadot/wasm-util": "npm:^7.5.3"
- "@polkadot/x-bigint": "npm:13.5.9"
- "@polkadot/x-randomvalues": "npm:13.5.9"
- "@scure/base": "npm:^1.1.7"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@polkadot/util": 13.5.9
- checksum: 10/0c388e9afe2eb000e721a9b03472b53943c090b1a6042b98164524367dcaf45a6d8f43c56c9929f1c3ea65dceef196f86df4979f83e64a90a5f1044fe0f73960
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:14.0.1, @polkadot/util-crypto@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/util-crypto@npm:14.0.1"
- dependencies:
- "@noble/curves": "npm:^1.3.0"
- "@noble/hashes": "npm:^1.3.3"
- "@polkadot/networks": "npm:14.0.1"
- "@polkadot/util": "npm:14.0.1"
- "@polkadot/wasm-crypto": "npm:^7.5.3"
- "@polkadot/wasm-util": "npm:^7.5.3"
- "@polkadot/x-bigint": "npm:14.0.1"
- "@polkadot/x-randomvalues": "npm:14.0.1"
- "@scure/base": "npm:^1.1.7"
- "@scure/sr25519": "npm:^0.2.0"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@polkadot/util": 14.0.1
- checksum: 10/132a89d4e80ba0076213ca03991e6195ad8abb3b469b4fdca1826187c4bc879f0310c9c99a73b8a2e5ca2af427c6715af7e43c99c3c9199090091ab354281d95
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:6.11.1, @polkadot/util-crypto@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/util-crypto@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/networks": "npm:6.11.1"
- "@polkadot/util": "npm:6.11.1"
- "@polkadot/wasm-crypto": "npm:^4.0.2"
- "@polkadot/x-randomvalues": "npm:6.11.1"
- base-x: "npm:^3.0.8"
- base64-js: "npm:^1.5.1"
- blakejs: "npm:^1.1.1"
- bn.js: "npm:^4.11.9"
- create-hash: "npm:^1.2.0"
- elliptic: "npm:^6.5.4"
- hash.js: "npm:^1.1.7"
- js-sha3: "npm:^0.8.0"
- scryptsy: "npm:^2.1.0"
- tweetnacl: "npm:^1.0.3"
- xxhashjs: "npm:^0.2.2"
- peerDependencies:
- "@polkadot/util": 6.11.1
- checksum: 10/4a0ae520875dcbb1ed4dc06b2c3c3879f9fc8fc6b35c14563617921f0da943bec654c7026d3af63f995c8c27794b0726232132a1ca8db7b9e1fd1add5f2bc22f
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/util-crypto@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/networks": "npm:7.9.2"
- "@polkadot/util": "npm:7.9.2"
- "@polkadot/wasm-crypto": "npm:^4.4.1"
- "@polkadot/x-randomvalues": "npm:7.9.2"
- blakejs: "npm:^1.1.1"
- bn.js: "npm:^4.12.0"
- create-hash: "npm:^1.2.0"
- ed2curve: "npm:^0.3.0"
- elliptic: "npm:^6.5.4"
- hash.js: "npm:^1.1.7"
- js-sha3: "npm:^0.8.0"
- micro-base: "npm:^0.9.0"
- scryptsy: "npm:^2.1.0"
- tweetnacl: "npm:^1.0.3"
- xxhashjs: "npm:^0.2.2"
- peerDependencies:
- "@polkadot/util": 7.9.2
- checksum: 10/922aa3ee41264e356851d0a8de4fb5ba6ad4dead09c4844d02cdbd7c0ecc94a5b374f5c249f21d4c98ed95356b2058d1d7cd12f9c1ea408d60dc042bb3319a37
- languageName: node
- linkType: hard
-
-"@polkadot/util-crypto@npm:8.7.1, @polkadot/util-crypto@npm:^8.1.2, @polkadot/util-crypto@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/util-crypto@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@noble/hashes": "npm:1.0.0"
- "@noble/secp256k1": "npm:1.5.5"
- "@polkadot/networks": "npm:8.7.1"
- "@polkadot/util": "npm:8.7.1"
- "@polkadot/wasm-crypto": "npm:^5.1.1"
- "@polkadot/x-bigint": "npm:8.7.1"
- "@polkadot/x-randomvalues": "npm:8.7.1"
- "@scure/base": "npm:1.0.0"
- ed2curve: "npm:^0.3.0"
- tweetnacl: "npm:^1.0.3"
- peerDependencies:
- "@polkadot/util": 8.7.1
- checksum: 10/5374f2e6d3d17e81165b198b0657e9c1f3212b6d3451e421364405776dfe4370982953de4940df83d94744f2b7a85360a67c23694fbb765e6d292dabe1d51cc1
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:10.4.2, @polkadot/util@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/util@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-bigint": "npm:10.4.2"
- "@polkadot/x-global": "npm:10.4.2"
- "@polkadot/x-textdecoder": "npm:10.4.2"
- "@polkadot/x-textencoder": "npm:10.4.2"
- "@types/bn.js": "npm:^5.1.1"
- bn.js: "npm:^5.2.1"
- checksum: 10/bdecd8fdaabbff9dae0b317954c1b50b6001bf13c67633fbe753367f20d8a819dd332f55917286107b2cfdc9921e861232cb913c097fe89db258f8902741a677
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:12.6.2, @polkadot/util@npm:^12.5.1, @polkadot/util@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/util@npm:12.6.2"
- dependencies:
- "@polkadot/x-bigint": "npm:12.6.2"
- "@polkadot/x-global": "npm:12.6.2"
- "@polkadot/x-textdecoder": "npm:12.6.2"
- "@polkadot/x-textencoder": "npm:12.6.2"
- "@types/bn.js": "npm:^5.1.5"
- bn.js: "npm:^5.2.1"
- tslib: "npm:^2.6.2"
- checksum: 10/b7a3c2be417d670fc64d0642818cadbf041cbcfae830f2ee45fc2496e86c8e11c385854b733504a7d6a6391066fd0ef544a1748f0f8809215c37a5c0ff64571d
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:13.5.9, @polkadot/util@npm:^13.4.4, @polkadot/util@npm:^13.5.3, @polkadot/util@npm:^13.5.9":
- version: 13.5.9
- resolution: "@polkadot/util@npm:13.5.9"
- dependencies:
- "@polkadot/x-bigint": "npm:13.5.9"
- "@polkadot/x-global": "npm:13.5.9"
- "@polkadot/x-textdecoder": "npm:13.5.9"
- "@polkadot/x-textencoder": "npm:13.5.9"
- "@types/bn.js": "npm:^5.1.6"
- bn.js: "npm:^5.2.1"
- tslib: "npm:^2.8.0"
- checksum: 10/f3b9d66dff334e1204f3f8fecd74fe64dafec014551c99bcfde1d1270e1559fa68129fd3a47f090c6c174cdd3b9b0d9cbe95a4de4cb5172ca84c9fdd6147a0bb
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:14.0.1, @polkadot/util@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/util@npm:14.0.1"
- dependencies:
- "@polkadot/x-bigint": "npm:14.0.1"
- "@polkadot/x-global": "npm:14.0.1"
- "@polkadot/x-textdecoder": "npm:14.0.1"
- "@polkadot/x-textencoder": "npm:14.0.1"
- "@types/bn.js": "npm:^5.1.6"
- bn.js: "npm:^5.2.1"
- tslib: "npm:^2.8.0"
- checksum: 10/c6f8f3d2fa1a68f1af0396090fce191eab58a4256c201d60231b697051c0db34e4a7bcbcd2cf833796d839762366f0d7553e8613ccadeb03c422c3d159563aea
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:6.11.1, @polkadot/util@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/util@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/x-textdecoder": "npm:6.11.1"
- "@polkadot/x-textencoder": "npm:6.11.1"
- "@types/bn.js": "npm:^4.11.6"
- bn.js: "npm:^4.11.9"
- camelcase: "npm:^5.3.1"
- ip-regex: "npm:^4.3.0"
- checksum: 10/4b5a9b10230b0cd2235058b1721fe82ee5fc63eb5d3659273fe476ff9ffe587bf27574b3080b883538077db1f60184415c5a1f0a5e328d249fe5a1b970772250
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/util@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/x-textdecoder": "npm:7.9.2"
- "@polkadot/x-textencoder": "npm:7.9.2"
- "@types/bn.js": "npm:^4.11.6"
- bn.js: "npm:^4.12.0"
- camelcase: "npm:^6.2.1"
- ip-regex: "npm:^4.3.0"
- checksum: 10/3d46630957a54a20fae6eb9fe233d1422a5cdac27822877b9bc328a241eaa87ecc47b50cda50cc8d9f1984278ec076b3ee5f14004613148fb3e2c0087717e81f
- languageName: node
- linkType: hard
-
-"@polkadot/util@npm:8.7.1, @polkadot/util@npm:^8.1.2, @polkadot/util@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/util@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-bigint": "npm:8.7.1"
- "@polkadot/x-global": "npm:8.7.1"
- "@polkadot/x-textdecoder": "npm:8.7.1"
- "@polkadot/x-textencoder": "npm:8.7.1"
- "@types/bn.js": "npm:^5.1.0"
- bn.js: "npm:^5.2.0"
- ip-regex: "npm:^4.3.0"
- checksum: 10/ae54c4991493d4e70fb0cdb54ab06ab55dbd112d4a23a272637ad2ac228c36ec28826e98f0377ed33bb158658c975128e86acecf4541700885cf24b1bde15a77
- languageName: node
- linkType: hard
-
-"@polkadot/vanitygen@npm:^0.63.18":
- version: 0.63.19
- resolution: "@polkadot/vanitygen@npm:0.63.19"
- dependencies:
- "@polkadot/util": "npm:^13.5.9"
- "@polkadot/util-crypto": "npm:^13.5.9"
- tslib: "npm:^2.8.1"
- yargs: "npm:^17.7.2"
- bin:
- polkadot-js-vanitygen: runcli.mjs
- checksum: 10/6f7718d37037b28aba1e8ff15a5b3c3c77a05a9dc08a8010db159633963aea389bae57e79b7915cf7db8362d0245433329d26cc22a4d118fd611823cfcc63fb9
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-bridge@npm:6.4.1":
- version: 6.4.1
- resolution: "@polkadot/wasm-bridge@npm:6.4.1"
- dependencies:
- "@babel/runtime": "npm:^7.20.6"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/22dc70090e07f6a1a3b983c1233d691ec2c6543da08407cbd0117ea08c0a4043bf278c218ae17a23e742f1ea298768f303acf00f8ae0ad55612525ef22e66c8f
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-bridge@npm:7.5.4":
- version: 7.5.4
- resolution: "@polkadot/wasm-bridge@npm:7.5.4"
- dependencies:
- "@polkadot/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/64db5db90a82396032c31e6745b2e77817b8e9258841b72e506370ecf3ac63497efc654ca113419baf3c9b5fabda86bb21b29e1b508f192ab4e07beab8ef6d04
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-asmjs@npm:6.4.1":
- version: 6.4.1
- resolution: "@polkadot/wasm-crypto-asmjs@npm:6.4.1"
- dependencies:
- "@babel/runtime": "npm:^7.20.6"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/81a9ae9207e067e319ac1329b70fdd06cd357c63c9b65bd2b8e93ed7f22a5ca576ca75fcb095a2e86d059680273383b175f293c31739a80ab8514e48729d90e8
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-asmjs@npm:7.5.4":
- version: 7.5.4
- resolution: "@polkadot/wasm-crypto-asmjs@npm:7.5.4"
- dependencies:
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/9e03f052b871bc9e33268b01025fe43789f2af40e4aabbe3b7d8348a0752001cd137c20ba66c58ee7d692e798d957024c7cbd0cbf1a8cf3e6baebbe67696e781
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-asmjs@npm:^4.6.1":
- version: 4.6.1
- resolution: "@polkadot/wasm-crypto-asmjs@npm:4.6.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.2"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/e2b3e3703176eb14d663380d0894d91d94ab2aa2ac91980281d4ecb52032bd996f8f64e81a075edcb96f248d5f1dcf39c7862678b360c2bb8cf3e51d19b41454
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-asmjs@npm:^5.1.1":
- version: 5.1.1
- resolution: "@polkadot/wasm-crypto-asmjs@npm:5.1.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/570b82a065b396a8de37d54647cddcde3317915396ad88eaa70fd7f8ea2c80eca55f99a2fc7e3e6eb2f94d56ed7b801ffc0c22d703bc25b2f85f1bd1c32db45a
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-init@npm:6.4.1":
- version: 6.4.1
- resolution: "@polkadot/wasm-crypto-init@npm:6.4.1"
- dependencies:
- "@babel/runtime": "npm:^7.20.6"
- "@polkadot/wasm-bridge": "npm:6.4.1"
- "@polkadot/wasm-crypto-asmjs": "npm:6.4.1"
- "@polkadot/wasm-crypto-wasm": "npm:6.4.1"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/f2e66fb612e2c3543847af4153faf8634003441be8e831c4df0e73b42e146124b9b13abdc05a53ec9c169315486c21783815270363bfc4762c10e5cd54d7ae81
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-init@npm:7.5.4":
- version: 7.5.4
- resolution: "@polkadot/wasm-crypto-init@npm:7.5.4"
- dependencies:
- "@polkadot/wasm-bridge": "npm:7.5.4"
- "@polkadot/wasm-crypto-asmjs": "npm:7.5.4"
- "@polkadot/wasm-crypto-wasm": "npm:7.5.4"
- "@polkadot/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/c1077a74156bd6356487043b23a849b214274c74fc44f1e2c203ec58f152c47c577f9da920ebf79ef746cfdfd2f246b1dd6a97c5796556f1c00e63d795eb896f
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-wasm@npm:6.4.1":
- version: 6.4.1
- resolution: "@polkadot/wasm-crypto-wasm@npm:6.4.1"
- dependencies:
- "@babel/runtime": "npm:^7.20.6"
- "@polkadot/wasm-util": "npm:6.4.1"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/39d2556438d6ad1c3c3d29f4521ae7e58749fc0218f7a83a0e2cb886619a71986676c69b7ae70c03e9c0b2d74be99c1cf0492bbabbabf64ee6451a353ca0ffda
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-wasm@npm:7.5.4":
- version: 7.5.4
- resolution: "@polkadot/wasm-crypto-wasm@npm:7.5.4"
- dependencies:
- "@polkadot/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/338b5d4b347116efa09aba7f27f1d13e84a4ef62680ab02e2c47bbd43180844434cf49f8c954528cbb8bebef69bdf101be33e3a6fe093efd3f5ab2245f5e7faf
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-wasm@npm:^4.6.1":
- version: 4.6.1
- resolution: "@polkadot/wasm-crypto-wasm@npm:4.6.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.2"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/5965a226634874088c5322dc0754d8a44fd2fc52ae065e1a565ca1854ae6b96fa4350f4a9c8c405adb290ba888907f3ef64256ede4e00d45e3ccfbe26f3ef9ef
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto-wasm@npm:^5.1.1":
- version: 5.1.1
- resolution: "@polkadot/wasm-crypto-wasm@npm:5.1.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/8917cf4128d5c9fcf8ca95773adc7c1469f106addc8db3d50de9ec20a0ccab677d8159da55dd9b55903fc837009a169609ad86199fb4aa1de7114117cc4758ec
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto@npm:^4.0.2, @polkadot/wasm-crypto@npm:^4.4.1":
- version: 4.6.1
- resolution: "@polkadot/wasm-crypto@npm:4.6.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.2"
- "@polkadot/wasm-crypto-asmjs": "npm:^4.6.1"
- "@polkadot/wasm-crypto-wasm": "npm:^4.6.1"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/979a4f65b4aabf4274d039170fc33034ff68e821fb4669b92afe0079b14899c54ea4924dc36a3abc5b99da29999fd8e8f4449d6b845447de7ace7c0676a89ca7
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto@npm:^5.1.1":
- version: 5.1.1
- resolution: "@polkadot/wasm-crypto@npm:5.1.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/wasm-crypto-asmjs": "npm:^5.1.1"
- "@polkadot/wasm-crypto-wasm": "npm:^5.1.1"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/8f6f2ba6454de353a3381fabc7c8ef83faf3524831979c687502f75b28fe8a65256c6df359b67e60c577fa8f397d698fd7b08c9bfe114fbee94950b40db91e1a
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto@npm:^6.4.1":
- version: 6.4.1
- resolution: "@polkadot/wasm-crypto@npm:6.4.1"
- dependencies:
- "@babel/runtime": "npm:^7.20.6"
- "@polkadot/wasm-bridge": "npm:6.4.1"
- "@polkadot/wasm-crypto-asmjs": "npm:6.4.1"
- "@polkadot/wasm-crypto-init": "npm:6.4.1"
- "@polkadot/wasm-crypto-wasm": "npm:6.4.1"
- "@polkadot/wasm-util": "npm:6.4.1"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/2e3c4369b66b061450d72f36a33e2fb822d393472907ab314befa9aa9636ec2db99e3771656df7ffdfcdd92e92b54594855d61b34d97b256d562a3d6ce19a3cd
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-crypto@npm:^7.3.2, @polkadot/wasm-crypto@npm:^7.5.3":
- version: 7.5.4
- resolution: "@polkadot/wasm-crypto@npm:7.5.4"
- dependencies:
- "@polkadot/wasm-bridge": "npm:7.5.4"
- "@polkadot/wasm-crypto-asmjs": "npm:7.5.4"
- "@polkadot/wasm-crypto-init": "npm:7.5.4"
- "@polkadot/wasm-crypto-wasm": "npm:7.5.4"
- "@polkadot/wasm-util": "npm:7.5.4"
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@polkadot/util": "*"
- "@polkadot/x-randomvalues": "*"
- checksum: 10/d4edce7bc9e8fa8387abe1d3fa4433937ab40faf4889a949a5a64c42f852837e3da96c00a73fb383fc8ef3fe177ac40dc85a13bcd43b059f2d04bab52f537801
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-util@npm:6.4.1":
- version: 6.4.1
- resolution: "@polkadot/wasm-util@npm:6.4.1"
- dependencies:
- "@babel/runtime": "npm:^7.20.6"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/d2df5a14a3b75e2e91934676afe4fc34bac5580e22af20a416a13b98d596e5b9a9f87031b6f01d993f20fba595a249c112a6b520fcde08ed0f674350253632e1
- languageName: node
- linkType: hard
-
-"@polkadot/wasm-util@npm:7.5.4, @polkadot/wasm-util@npm:^7.3.2, @polkadot/wasm-util@npm:^7.4.1, @polkadot/wasm-util@npm:^7.5.3":
- version: 7.5.4
- resolution: "@polkadot/wasm-util@npm:7.5.4"
- dependencies:
- tslib: "npm:^2.7.0"
- peerDependencies:
- "@polkadot/util": "*"
- checksum: 10/4dda837f3ac84705d709a2e62fc0f9ec54518dbae88d3bf9dc68b65f17f50eadf7fff4289f3deaf51f93d79d5ac0631ecf57ad572d55f98a11149beaa3b2bcc4
- languageName: node
- linkType: hard
-
-"@polkadot/x-bigint@npm:10.4.2, @polkadot/x-bigint@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-bigint@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-global": "npm:10.4.2"
- checksum: 10/a77565a3b397bc3bd4b3f7d4296941658f771dfff0ee38ba7325c6351ee84dffb522857613c6125e8b97d11699c80c621d5e208cbe2af3f18e663b6e6c03a407
- languageName: node
- linkType: hard
-
-"@polkadot/x-bigint@npm:12.6.2, @polkadot/x-bigint@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-bigint@npm:12.6.2"
- dependencies:
- "@polkadot/x-global": "npm:12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/8a9533ba955d06213e3810d48e95618186cc832375f82d8b52376a99d7c8f9fdd01ffb9c35495522aec8c28d18ca5ef6c8feeec9770b83ebb64cded4cd3b7e27
- languageName: node
- linkType: hard
-
-"@polkadot/x-bigint@npm:13.5.9, @polkadot/x-bigint@npm:^13.4.4":
- version: 13.5.9
- resolution: "@polkadot/x-bigint@npm:13.5.9"
- dependencies:
- "@polkadot/x-global": "npm:13.5.9"
- tslib: "npm:^2.8.0"
- checksum: 10/8b9c5f40d31a226e5222e5a837bf730fed288f2b4d525966a4f8645afc8c17919ccf8f18e7ae6452698fb8f9d92fa7c7760b275f139ba0318d20bfbadff9679e
- languageName: node
- linkType: hard
-
-"@polkadot/x-bigint@npm:14.0.1, @polkadot/x-bigint@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-bigint@npm:14.0.1"
- dependencies:
- "@polkadot/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- checksum: 10/e56c4086c19ecf93b18d6613ae1c03c28755899f7baf817ed870ade4c39be610e5cf5d098944845943a3d713f2c0aabe80b4762d7a7f89df87891ba83625c322
- languageName: node
- linkType: hard
-
-"@polkadot/x-bigint@npm:8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-bigint@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-global": "npm:8.7.1"
- checksum: 10/2c1e0a6423757860a17a5e80f44b9048ddaa273f6f0901ce5679d0aa98075c84e71022ade7fb49eb6bf35cc65fca4aa94a09d36d024adaaa1f182a93d5348a0d
- languageName: node
- linkType: hard
-
-"@polkadot/x-fetch@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-fetch@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-global": "npm:10.4.2"
- "@types/node-fetch": "npm:^2.6.2"
- node-fetch: "npm:^3.3.0"
- checksum: 10/3695e3dbeea981ffdd1dcae1156115082c9089ffac8c010d79982cb335832e17b539c70eac5ab2a9c6cf39945ec02119a2164637c17f23db233d743749220983
- languageName: node
- linkType: hard
-
-"@polkadot/x-fetch@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-fetch@npm:12.6.2"
- dependencies:
- "@polkadot/x-global": "npm:12.6.2"
- node-fetch: "npm:^3.3.2"
- tslib: "npm:^2.6.2"
- checksum: 10/755feee15234b31de9e74bae5eca1a2e9c17e3e76330e5c5cca5e446fc3c350b8f02e3c3853005d1dd4b3da9d4f6a6c3ffd6d2146ae529b0fa6ed3c4206343af
- languageName: node
- linkType: hard
-
-"@polkadot/x-fetch@npm:^13.4.4":
- version: 13.5.9
- resolution: "@polkadot/x-fetch@npm:13.5.9"
- dependencies:
- "@polkadot/x-global": "npm:13.5.9"
- node-fetch: "npm:^3.3.2"
- tslib: "npm:^2.8.0"
- checksum: 10/f937fcc3af357b06c39fac606bc7dfe4e5c6d1d2df86547ea287e0e0afcb0fa9c5bfbe87bc7f76a144e10d859b06555605e5332485707f803967f006bd87b656
- languageName: node
- linkType: hard
-
-"@polkadot/x-fetch@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-fetch@npm:14.0.1"
- dependencies:
- "@polkadot/x-global": "npm:14.0.1"
- node-fetch: "npm:^3.3.2"
- tslib: "npm:^2.8.0"
- checksum: 10/a358687605e3c622d36ebfd94607ceb74b5430a247f83bb675b085d8baaca740f004bb4f23626f0119219d8971bb415e7dfc13c78f1f6711a6d4b5f082eb1130
- languageName: node
- linkType: hard
-
-"@polkadot/x-fetch@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-fetch@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/x-global": "npm:6.11.1"
- "@types/node-fetch": "npm:^2.5.10"
- node-fetch: "npm:^2.6.1"
- checksum: 10/06d96c8a3ece6b11651948f644823de28aed0eea416466fc00b9dfa60b89a39476b679784c4b64c7ca541a95cb6552030f66974df58269eda0024721850ff1be
- languageName: node
- linkType: hard
-
-"@polkadot/x-fetch@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-fetch@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-global": "npm:8.7.1"
- "@types/node-fetch": "npm:^2.6.1"
- node-fetch: "npm:^2.6.7"
- checksum: 10/1fc979e81e14c9dd3677e390d04f8b81be1dac8b526222b186121048d096b00dd8f046b294df07bf967fd016ae888dc0ff63c5f1be937ff3e94ab4a9992d9942
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:10.4.2, @polkadot/x-global@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-global@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- checksum: 10/2df4898cde8435bb32dcb7d67f43f33996443d609fa1651c19ad92c23331dc39f346e0addba2a9fbd1ddf27157465730420452e8da81e0579acef7feab443445
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:12.6.2, @polkadot/x-global@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-global@npm:12.6.2"
- dependencies:
- tslib: "npm:^2.6.2"
- checksum: 10/9159bd77e099f734f7c48ba3e37a886ba376c50066b664ee52caf0bf8eb0399b762ca08404ef6470c22e4d20e9fc8c5e0a87026efcbbd0f21ea5504b0e33d587
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:13.5.9, @polkadot/x-global@npm:^13.4.4":
- version: 13.5.9
- resolution: "@polkadot/x-global@npm:13.5.9"
- dependencies:
- tslib: "npm:^2.8.0"
- checksum: 10/07ef477f428c73bfbdb242a4511fbbdc2c31ea2641fb577bd1ac479b6567e780a2df0a9aeb1913efe3128703c8f81366b0cf48c491d53663d3c7eff2ebcf4d2e
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:14.0.1, @polkadot/x-global@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-global@npm:14.0.1"
- dependencies:
- tslib: "npm:^2.8.0"
- checksum: 10/f5486c836b4cf95e1a84921961ba7c2fb4426b4f28af3a9e33fb78f7ae846dbe6d39bd2d9916e6eb7e0aed3e7e743c5b432a9437ecff944ed96db1640f25e288
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:6.11.1, @polkadot/x-global@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-global@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- checksum: 10/c0114b2fe8a0f4b238f39b4040a5c917e968bf912b2186bb0860597ead9921c2200dbb91b4462d6476be1243297d1b34479fdd79e934927d4d076005f36c26c9
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/x-global@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- checksum: 10/685adf925dcac356e05d0ec3c115b19b939934e813b104bd08fd45a37f1eceb1a2ac22b5fdea418f2de83a3cfdc23bb66d8449ba9c772916981104d6cc95178c
- languageName: node
- linkType: hard
-
-"@polkadot/x-global@npm:8.7.1, @polkadot/x-global@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-global@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- checksum: 10/d2a888f2cfa31a8a99b92537799d5fd30115d8db7bd2b58f3e2a0ee929518fb9fc44b936dd6e98f79ac84420a587dd81fd2c592febc87f6176cddda436e622b3
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-randomvalues@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-global": "npm:10.4.2"
- checksum: 10/85756dc61c389ece4dbcf6b93ac105bce03d4e40f25a88962721a3dbdeb2d5f5f3fd18d945c132b785c7865fdbb532a45091c9952447b673dd37a75958fd42b1
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-randomvalues@npm:12.6.2"
- dependencies:
- "@polkadot/x-global": "npm:12.6.2"
- tslib: "npm:^2.6.2"
- peerDependencies:
- "@polkadot/util": 12.6.2
- "@polkadot/wasm-util": "*"
- checksum: 10/9ab555931ab81a8834800da35f04cb86df48b0d706d33ea89c51f42b8d340dab7312c462d01ecae04573ba6a01ff1ad6066ea6cf82b1330482ff537eb3c12eeb
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:13.5.9":
- version: 13.5.9
- resolution: "@polkadot/x-randomvalues@npm:13.5.9"
- dependencies:
- "@polkadot/x-global": "npm:13.5.9"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@polkadot/util": 13.5.9
- "@polkadot/wasm-util": "*"
- checksum: 10/0a1d4066d60ca2e21d129fcd4798634f0d05e67acd86da17d48dd3e79cda1ebcf59861738dc68357068f8fdb2c2894c32e652aee66ee393ecde4b3288f237430
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-randomvalues@npm:14.0.1"
- dependencies:
- "@polkadot/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- peerDependencies:
- "@polkadot/util": 14.0.1
- "@polkadot/wasm-util": "*"
- checksum: 10/0c382109938786cfe159920de28d53bfe949e54fb60e15a45ce97a3a311c0b62b37051f978aaff1d342a92a8d0684d9065eac6d46138b769dca69fbf61c57fa7
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-randomvalues@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/x-global": "npm:6.11.1"
- checksum: 10/b50f64be1d8c76fcae08016d34049f31bd30642c2208ecbacac2b21266dbc05fe284e396b4da044acf5e426895391dfc297f5d22ddb01e786c7e6f4778b19e48
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/x-randomvalues@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/x-global": "npm:7.9.2"
- checksum: 10/bc73d2944144b24c1ca5bc2deae01a2498d81d47f209175c9cc0b799557000ea568459e277aa0e98e2bcb6a24a10fcfd7fd4dc8a1411acbd3fa79ac46d213249
- languageName: node
- linkType: hard
-
-"@polkadot/x-randomvalues@npm:8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-randomvalues@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-global": "npm:8.7.1"
- checksum: 10/a3abea5f753087354ffe9c253448b06b2bad9a1c623babbd1994f06a06116d2b0c8aa6490ff09861910468a652b15b52ef02edae4ad2c08f7d83506a2561d597
- languageName: node
- linkType: hard
-
-"@polkadot/x-rxjs@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-rxjs@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- rxjs: "npm:^6.6.7"
- checksum: 10/347c7c35a43f57c325ac5715f89262f4f7fe19326bdeb37f724b423961c9f5168ec2ff31ceeee377e0837bc34e1074161ff02066017146c935ddbeaad2d283c4
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-textdecoder@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-global": "npm:10.4.2"
- checksum: 10/92fd2da99baa8124a723de8a0523f20bef606351e5bd0e38a5f1635bef19ac1627b595d66726075a3ac85f65255a544a36443c596720f28cbaf70ba6eb654651
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-textdecoder@npm:12.6.2"
- dependencies:
- "@polkadot/x-global": "npm:12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/ba8ebe34cce1445a78d4eb744c8cfcf068cebfaf6c8efca23e1cdb037e8769cb2738b77b7266e3f86cd2459bb3eb87744f9518cba76e76fca609a16e6b84789e
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:13.5.9":
- version: 13.5.9
- resolution: "@polkadot/x-textdecoder@npm:13.5.9"
- dependencies:
- "@polkadot/x-global": "npm:13.5.9"
- tslib: "npm:^2.8.0"
- checksum: 10/30d7838f40181add484635c22cecf3be1b8ef53f8ff03a83f16b5bb8881332ef4952a9c564696941d3477a4c2aa83a040a6a45544d19adebf2980568cb46889b
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-textdecoder@npm:14.0.1"
- dependencies:
- "@polkadot/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- checksum: 10/b33f51f93046fdab0c20b6cc764f52051a06403467fbe8c8742bca5e89ed492ecbb69e4f90a1f8090c330c3ccdcd63311cc695b8f7401212e9085c3804724970
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-textdecoder@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/x-global": "npm:6.11.1"
- checksum: 10/6daf7246a0bf74afd2eecd11c63b75499ae07a1d689c4f813ad2b69fb4292b0484889b950a5758958ce4e3bcedea3458f467dc13a3fa3e1366d33c32678d69b6
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/x-textdecoder@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/x-global": "npm:7.9.2"
- checksum: 10/8161e0aa93c45d2f33fcaf8a41db3b6da8e3fac42df11da63d5d31a0b68bdbf73afdf2534fdc7c90daf1103f4fe22caee1bafda0460b2502138ffbafe89ea23f
- languageName: node
- linkType: hard
-
-"@polkadot/x-textdecoder@npm:8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-textdecoder@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-global": "npm:8.7.1"
- checksum: 10/00e20d74d1ec3b999c978ffd94eb0e62f00e8be53d2155a77105fe411fb994671046eca57ab8b6d1064228f023b31f40e18a59b5e2124d1992c4bcf45b698ca4
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-textencoder@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-global": "npm:10.4.2"
- checksum: 10/a9c73566175202b6423a431519fdf0ae7eb25fa41a6df9cd0d6e252ec104146530acce79eaf0aca515c4cfdad3c85335709be4181b09c21f43edc9658e46ef29
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-textencoder@npm:12.6.2"
- dependencies:
- "@polkadot/x-global": "npm:12.6.2"
- tslib: "npm:^2.6.2"
- checksum: 10/b2e721d19660f7bcf3995d695fac5d78d4bc8c5fd0632ec0735eb20dd9b4b79fad1ce7dfe7ade202c4ace5cd2d6b8ac663bb4dca273afa050f73cf1e99498f82
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:13.5.9":
- version: 13.5.9
- resolution: "@polkadot/x-textencoder@npm:13.5.9"
- dependencies:
- "@polkadot/x-global": "npm:13.5.9"
- tslib: "npm:^2.8.0"
- checksum: 10/c72352f3b603ad9d88192889901ec78088cdac4913b6c147a2b0078e230816d25f7baa0f734636bfeeecbea74c6597aa453e5b2de87e4ca0f2c02ea87a2ad376
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-textencoder@npm:14.0.1"
- dependencies:
- "@polkadot/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- checksum: 10/9627aed6c660c04ee7c633fbe99c68fb172c35ce5e9bdb9afa3ef4d245f8f99ff5da552d6088b25343238d243adedaab7cbd54b7fba5121fe5e3c612337ef404
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-textencoder@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/x-global": "npm:6.11.1"
- checksum: 10/29f740cc230b3235a71e718b3a240a8f6892f675cd04bc9d995937d9053af16bc117161ed285d4bd55d5ddfab6389b9d4736c74f41eeef7196ec175519c83934
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:7.9.2":
- version: 7.9.2
- resolution: "@polkadot/x-textencoder@npm:7.9.2"
- dependencies:
- "@babel/runtime": "npm:^7.16.3"
- "@polkadot/x-global": "npm:7.9.2"
- checksum: 10/b2d3df5dc0c65b016928a869eee0236d5d6a8ef46917b2db40bbfe60b696721adaf937f41c4f31348197ec472721ea3f8460337ee6527cafd5cce44358371e8c
- languageName: node
- linkType: hard
-
-"@polkadot/x-textencoder@npm:8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-textencoder@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-global": "npm:8.7.1"
- checksum: 10/29f5c7a1f1c17fc1bb1a494781955645b72f434f5322e9ab8b79307c45c0c46e669426c609ae10a863f877063d735a0786ef84c93d28bd5f0b1b4713f2572e71
- languageName: node
- linkType: hard
-
-"@polkadot/x-ws@npm:^10.4.2":
- version: 10.4.2
- resolution: "@polkadot/x-ws@npm:10.4.2"
- dependencies:
- "@babel/runtime": "npm:^7.20.13"
- "@polkadot/x-global": "npm:10.4.2"
- "@types/websocket": "npm:^1.0.5"
- websocket: "npm:^1.0.34"
- checksum: 10/465279d7f186bc243ffc5ecd55839ee20e3e061d8c85a42c47fc50cb519ee2bd79d1106751f971f95124fd19ab9745be2f53535bfa79defe5bbf973bdfd56926
- languageName: node
- linkType: hard
-
-"@polkadot/x-ws@npm:^12.6.2":
- version: 12.6.2
- resolution: "@polkadot/x-ws@npm:12.6.2"
- dependencies:
- "@polkadot/x-global": "npm:12.6.2"
- tslib: "npm:^2.6.2"
- ws: "npm:^8.15.1"
- checksum: 10/de987c0a9d5df7d9eb17d96fd47afb2417eb85b7126e4e11bc4fe7dc908b54307390a1e3da61d251cd5f1f6edd054712f018bdc695ce946e0267806d1f050119
- languageName: node
- linkType: hard
-
-"@polkadot/x-ws@npm:^13.4.4":
- version: 13.5.9
- resolution: "@polkadot/x-ws@npm:13.5.9"
- dependencies:
- "@polkadot/x-global": "npm:13.5.9"
- tslib: "npm:^2.8.0"
- ws: "npm:^8.18.0"
- checksum: 10/e7582f33452b6ab6442cf5df08a026fd5f9af3baf9028f2821e2d211322ecaae9005d3048bd46ff28e75adeb19aa9ba83c75fe4ce63ed642108a265e7ced8fbd
- languageName: node
- linkType: hard
-
-"@polkadot/x-ws@npm:^14.0.1":
- version: 14.0.1
- resolution: "@polkadot/x-ws@npm:14.0.1"
- dependencies:
- "@polkadot/x-global": "npm:14.0.1"
- tslib: "npm:^2.8.0"
- ws: "npm:^8.18.0"
- checksum: 10/7504fd086619476599bab21aecfdd3699eb9a00518d1bf2e25d07cd838c46d2b887819f1070ad552373a3b33f2484de94d8689f95a67de1aa9d402938e26d19b
- languageName: node
- linkType: hard
-
-"@polkadot/x-ws@npm:^6.11.1":
- version: 6.11.1
- resolution: "@polkadot/x-ws@npm:6.11.1"
- dependencies:
- "@babel/runtime": "npm:^7.14.6"
- "@polkadot/x-global": "npm:6.11.1"
- "@types/websocket": "npm:^1.0.3"
- websocket: "npm:^1.0.34"
- checksum: 10/056b7e03d7bc643ab2d4d3beba7fa97e3dcab8c9cb152677610214ecc34f0c02c2ae7e40d33903c8aeafa0f9c20e106d94785849ca1b9c890e031b1ecd98a9b8
- languageName: node
- linkType: hard
-
-"@polkadot/x-ws@npm:^8.7.1":
- version: 8.7.1
- resolution: "@polkadot/x-ws@npm:8.7.1"
- dependencies:
- "@babel/runtime": "npm:^7.17.8"
- "@polkadot/x-global": "npm:8.7.1"
- "@types/websocket": "npm:^1.0.5"
- websocket: "npm:^1.0.34"
- checksum: 10/9137f955bf92f49bf831457ebc10370ca26bb9f0dce1dee3b2fae4eeab3a90377a176940f845b13a11836b483c03482713eda64fa49958a620ee182495e20b76
- languageName: node
- linkType: hard
-
-"@polymeshassociation/polymesh-types@npm:5.7.0":
- version: 5.7.0
- resolution: "@polymeshassociation/polymesh-types@npm:5.7.0"
- checksum: 10/7beefbe20ceb896a739e12241af8ac02245af0bc7383b7c36bcbd019d559eae2bcc27f06034f7845989674568a7fc2cd3b16793d2cd1499cbd5cf681ac088799
- languageName: node
- linkType: hard
-
-"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2":
- version: 1.1.2
- resolution: "@protobufjs/aspromise@npm:1.1.2"
- checksum: 10/8a938d84fe4889411296db66b29287bd61ea3c14c2d23e7a8325f46a2b8ce899857c5f038d65d7641805e6c1d06b495525c7faf00c44f85a7ee6476649034969
- languageName: node
- linkType: hard
-
-"@protobufjs/base64@npm:^1.1.2":
- version: 1.1.2
- resolution: "@protobufjs/base64@npm:1.1.2"
- checksum: 10/c71b100daeb3c9bdccab5cbc29495b906ba0ae22ceedc200e1ba49717d9c4ab15a6256839cebb6f9c6acae4ed7c25c67e0a95e734f612b258261d1a3098fe342
- languageName: node
- linkType: hard
-
-"@protobufjs/codegen@npm:^2.0.4":
- version: 2.0.4
- resolution: "@protobufjs/codegen@npm:2.0.4"
- checksum: 10/c6ee5fa172a8464f5253174d3c2353ea520c2573ad7b6476983d9b1346f4d8f2b44aa29feb17a949b83c1816bc35286a5ea265ed9d8fdd2865acfa09668c0447
- languageName: node
- linkType: hard
-
-"@protobufjs/eventemitter@npm:^1.1.0":
- version: 1.1.0
- resolution: "@protobufjs/eventemitter@npm:1.1.0"
- checksum: 10/03af3e99f17ad421283d054c88a06a30a615922a817741b43ca1b13e7c6b37820a37f6eba9980fb5150c54dba6e26cb6f7b64a6f7d8afa83596fafb3afa218c3
- languageName: node
- linkType: hard
-
-"@protobufjs/fetch@npm:^1.1.0":
- version: 1.1.0
- resolution: "@protobufjs/fetch@npm:1.1.0"
- dependencies:
- "@protobufjs/aspromise": "npm:^1.1.1"
- "@protobufjs/inquire": "npm:^1.1.0"
- checksum: 10/67ae40572ad536e4ef94269199f252c024b66e3059850906bdaee161ca1d75c73d04d35cd56f147a8a5a079f5808e342b99e61942c1dae15604ff0600b09a958
- languageName: node
- linkType: hard
-
-"@protobufjs/float@npm:^1.0.2":
- version: 1.0.2
- resolution: "@protobufjs/float@npm:1.0.2"
- checksum: 10/634c2c989da0ef2f4f19373d64187e2a79f598c5fb7991afb689d29a2ea17c14b796b29725945fa34b9493c17fb799e08ac0a7ccaae460ee1757d3083ed35187
- languageName: node
- linkType: hard
-
-"@protobufjs/inquire@npm:^1.1.0":
- version: 1.1.0
- resolution: "@protobufjs/inquire@npm:1.1.0"
- checksum: 10/c09efa34a5465cb120775e1a482136f2340a58b4abce7e93d72b8b5a9324a0e879275016ef9fcd73d72a4731639c54f2bb755bb82f916e4a78892d1d840bb3d2
- languageName: node
- linkType: hard
-
-"@protobufjs/path@npm:^1.1.2":
- version: 1.1.2
- resolution: "@protobufjs/path@npm:1.1.2"
- checksum: 10/bb709567935fd385a86ad1f575aea98131bbd719c743fb9b6edd6b47ede429ff71a801cecbd64fc72deebf4e08b8f1bd8062793178cdaed3713b8d15771f9b83
- languageName: node
- linkType: hard
-
-"@protobufjs/pool@npm:^1.1.0":
- version: 1.1.0
- resolution: "@protobufjs/pool@npm:1.1.0"
- checksum: 10/b9c7047647f6af28e92aac54f6f7c1f7ff31b201b4bfcc7a415b2861528854fce3ec666d7e7e10fd744da905f7d4aef2205bbcc8944ca0ca7a82e18134d00c46
- languageName: node
- linkType: hard
-
-"@protobufjs/utf8@npm:^1.1.0":
- version: 1.1.0
- resolution: "@protobufjs/utf8@npm:1.1.0"
- checksum: 10/131e289c57534c1d73a0e55782d6751dd821db1583cb2f7f7e017c9d6747addaebe79f28120b2e0185395d990aad347fb14ffa73ef4096fa38508d61a0e64602
- languageName: node
- linkType: hard
-
-"@remix-run/router@npm:1.23.2":
- version: 1.23.2
- resolution: "@remix-run/router@npm:1.23.2"
- checksum: 10/50eb497854881bbd2e1016d4eb83c935ecd618e1c3888b74718851317e3b04edbaae9fe1baa49ec08c5c52cfe7118f4664e37144813d9500f45f922d6602a782
- languageName: node
- linkType: hard
-
-"@rollup/plugin-alias@npm:^5.1.1":
- version: 5.1.1
- resolution: "@rollup/plugin-alias@npm:5.1.1"
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/1f1ab178aa2726c81e2ae1709f73b3688491f14655b97c54d43bea35ac3f783f8855d701d1e5eac234e3ffe89fef56ce975726b036a97049fefa9b514686e55c
- languageName: node
- linkType: hard
-
-"@rollup/plugin-commonjs@npm:^25.0.8":
- version: 25.0.8
- resolution: "@rollup/plugin-commonjs@npm:25.0.8"
- dependencies:
- "@rollup/pluginutils": "npm:^5.0.1"
- commondir: "npm:^1.0.1"
- estree-walker: "npm:^2.0.2"
- glob: "npm:^8.0.3"
- is-reference: "npm:1.2.1"
- magic-string: "npm:^0.30.3"
- peerDependencies:
- rollup: ^2.68.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/2d6190450bdf2ca2c4ab71a35eb5bf245349ad7dab6fc84a3a4e65147fd694be816e3c31b575c9e55a70a2f82132b79092d1ee04358e6e504beb31a8c82178bb
- languageName: node
- linkType: hard
-
-"@rollup/plugin-dynamic-import-vars@npm:^2.1.5":
- version: 2.1.5
- resolution: "@rollup/plugin-dynamic-import-vars@npm:2.1.5"
- dependencies:
- "@rollup/pluginutils": "npm:^5.0.1"
- astring: "npm:^1.8.5"
- estree-walker: "npm:^2.0.2"
- fast-glob: "npm:^3.2.12"
- magic-string: "npm:^0.30.3"
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/55e0fe0adc79e5f208b11479175607cd512743573dbdfee00fccf894304349d2e5a99edc6d269bbbbfbcae2a8fb7d5b7718fe8e517f79ca93003089a5c94b806
- languageName: node
- linkType: hard
-
-"@rollup/plugin-inject@npm:^5.0.5":
- version: 5.0.5
- resolution: "@rollup/plugin-inject@npm:5.0.5"
- dependencies:
- "@rollup/pluginutils": "npm:^5.0.1"
- estree-walker: "npm:^2.0.2"
- magic-string: "npm:^0.30.3"
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/1d0e68dff0a8785398a1b6a7dac0dc0a7f2ded22319c0b4c411053f34cbe237ca897d1fc97e5150fddbc3486480f21cbeeb69f0ae7f44ab1ae7307c164c7e704
- languageName: node
- linkType: hard
-
-"@rollup/plugin-json@npm:^6.1.0":
- version: 6.1.0
- resolution: "@rollup/plugin-json@npm:6.1.0"
- dependencies:
- "@rollup/pluginutils": "npm:^5.1.0"
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e
- languageName: node
- linkType: hard
-
-"@rollup/plugin-node-resolve@npm:^15.3.1":
- version: 15.3.1
- resolution: "@rollup/plugin-node-resolve@npm:15.3.1"
- dependencies:
- "@rollup/pluginutils": "npm:^5.0.1"
- "@types/resolve": "npm:1.20.2"
- deepmerge: "npm:^4.2.2"
- is-module: "npm:^1.0.0"
- resolve: "npm:^1.22.1"
- peerDependencies:
- rollup: ^2.78.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/874494c0daca8fb0d633a237dd9df0d30609b374326e57508710f2b6d7ddaa93d203d8daa0257960b2b6723f56dfec1177573126f31ff9604700303b6f5fdbe3
- languageName: node
- linkType: hard
-
-"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.1.0":
- version: 5.3.0
- resolution: "@rollup/pluginutils@npm:5.3.0"
- dependencies:
- "@types/estree": "npm:^1.0.0"
- estree-walker: "npm:^2.0.2"
- picomatch: "npm:^4.0.2"
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- checksum: 10/6c7dbab90e0ca5918a36875f745a0f30b47d5e0f45b42ed381ad8f7fed76b23e935766b66e3ae75375a42a80369569913abc8fd2529f4338471a1b2b4dfebaff
- languageName: node
- linkType: hard
-
-"@rollup/rollup-android-arm-eabi@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-android-arm-eabi@npm:4.55.1"
- conditions: os=android & cpu=arm
- languageName: node
- linkType: hard
-
-"@rollup/rollup-android-arm64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-android-arm64@npm:4.55.1"
- conditions: os=android & cpu=arm64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-darwin-arm64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-darwin-arm64@npm:4.55.1"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-darwin-x64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-darwin-x64@npm:4.55.1"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-freebsd-arm64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-freebsd-arm64@npm:4.55.1"
- conditions: os=freebsd & cpu=arm64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-freebsd-x64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-freebsd-x64@npm:4.55.1"
- conditions: os=freebsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-arm-gnueabihf@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.55.1"
- conditions: os=linux & cpu=arm & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-arm-musleabihf@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.55.1"
- conditions: os=linux & cpu=arm & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-arm64-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.55.1"
- conditions: os=linux & cpu=arm64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-arm64-musl@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-arm64-musl@npm:4.55.1"
- conditions: os=linux & cpu=arm64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-loong64-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.55.1"
- conditions: os=linux & cpu=loong64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-loong64-musl@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-loong64-musl@npm:4.55.1"
- conditions: os=linux & cpu=loong64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-ppc64-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.55.1"
- conditions: os=linux & cpu=ppc64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-ppc64-musl@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.55.1"
- conditions: os=linux & cpu=ppc64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-riscv64-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.55.1"
- conditions: os=linux & cpu=riscv64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-riscv64-musl@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.55.1"
- conditions: os=linux & cpu=riscv64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-s390x-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.55.1"
- conditions: os=linux & cpu=s390x & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-x64-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-x64-gnu@npm:4.55.1"
- conditions: os=linux & cpu=x64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-x64-musl@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-linux-x64-musl@npm:4.55.1"
- conditions: os=linux & cpu=x64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-openbsd-x64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-openbsd-x64@npm:4.55.1"
- conditions: os=openbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-openharmony-arm64@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-openharmony-arm64@npm:4.55.1"
- conditions: os=openharmony & cpu=arm64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-win32-arm64-msvc@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.55.1"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-win32-ia32-msvc@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.55.1"
- conditions: os=win32 & cpu=ia32
- languageName: node
- linkType: hard
-
-"@rollup/rollup-win32-x64-gnu@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-win32-x64-gnu@npm:4.55.1"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-win32-x64-msvc@npm:4.55.1":
- version: 4.55.1
- resolution: "@rollup/rollup-win32-x64-msvc@npm:4.55.1"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@rtsao/scc@npm:^1.1.0":
- version: 1.1.0
- resolution: "@rtsao/scc@npm:1.1.0"
- checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01
- languageName: node
- linkType: hard
-
-"@scure/base@npm:1.0.0":
- version: 1.0.0
- resolution: "@scure/base@npm:1.0.0"
- checksum: 10/cbf631e1f13536287e1f19137039d29757a008fad2d9b0c8113c140e1900519a95f4884cd61633fbb2adbe426c3c9bbfde2b77519145b3d81bac9853a52c599e
- languageName: node
- linkType: hard
-
-"@scure/base@npm:1.1.1":
- version: 1.1.1
- resolution: "@scure/base@npm:1.1.1"
- checksum: 10/9aaa525ac25215cbe1bde00733a2fd25e99f03793aa1fd2961c567bb62b60c8a3a485a7cb5d748c41604fca79d149de19b05e64449b770c0a04b9ae38d0b5b2b
- languageName: node
- linkType: hard
-
-"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.5, @scure/base@npm:^1.1.7":
- version: 1.2.6
- resolution: "@scure/base@npm:1.2.6"
- checksum: 10/c1a7bd5e0b0c8f94c36fbc220f4a67cc832b00e2d2065c7d8a404ed81ab1c94c5443def6d361a70fc382db3496e9487fb9941728f0584782b274c18a4bed4187
- languageName: node
- linkType: hard
-
-"@scure/base@npm:^2.0.0":
- version: 2.0.0
- resolution: "@scure/base@npm:2.0.0"
- checksum: 10/8fb86024f22e9c532d513b8df8a672252e58bd5695920ce646162287f0accd38e89cab58722a738b3d247b5dcf7760362ae2d82d502be7e62a555f5d98f8a110
- languageName: node
- linkType: hard
-
-"@scure/base@npm:~1.1.6":
- version: 1.1.9
- resolution: "@scure/base@npm:1.1.9"
- checksum: 10/f0ab7f687bbcdee2a01377fe3cd808bf63977999672751295b6a92625d5322f4754a96d40f6bd579bc367aad48ecf8a4e6d0390e70296e6ded1076f52adb16bb
- languageName: node
- linkType: hard
-
-"@scure/bip32@npm:1.4.0":
- version: 1.4.0
- resolution: "@scure/bip32@npm:1.4.0"
- dependencies:
- "@noble/curves": "npm:~1.4.0"
- "@noble/hashes": "npm:~1.4.0"
- "@scure/base": "npm:~1.1.6"
- checksum: 10/6cd5062d902564d9e970597ec8b1adacb415b2eadfbb95aee1a1a0480a52eb0de4d294d3753aa8b48548064c9795ed108d348a31a8ce3fc88785377bb12c63b9
- languageName: node
- linkType: hard
-
-"@scure/bip39@npm:1.3.0":
- version: 1.3.0
- resolution: "@scure/bip39@npm:1.3.0"
- dependencies:
- "@noble/hashes": "npm:~1.4.0"
- "@scure/base": "npm:~1.1.6"
- checksum: 10/7d71fd58153de22fe8cd65b525f6958a80487bc9d0fbc32c71c328aeafe41fa259f989d2f1e0fa4fdfeaf83b8fcf9310d52ed9862987e46c2f2bfb9dd8cf9fc1
- languageName: node
- linkType: hard
-
-"@scure/sr25519@npm:^0.2.0":
- version: 0.2.0
- resolution: "@scure/sr25519@npm:0.2.0"
- dependencies:
- "@noble/curves": "npm:~1.9.2"
- "@noble/hashes": "npm:~1.8.0"
- checksum: 10/3c47b474811642b43fd8c96f7846c9d88c9a06eefa7d6360b6421ebdfb6cf582e1e8fdce9ae4708b088a0e323cd6519c883c3a33a284c2fad592414b02f19049
- languageName: node
- linkType: hard
-
-"@semantic-ui-react/event-stack@npm:^3.1.0":
- version: 3.1.3
- resolution: "@semantic-ui-react/event-stack@npm:3.1.3"
- dependencies:
- exenv: "npm:^1.2.2"
- prop-types: "npm:^15.6.2"
- peerDependencies:
- react: ^16.0.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0
- checksum: 10/ffdb136adc9bfcc8a9ed12466bf91e73a5cffd1e707cb65da4a5b06e92d43e4f57ecd4c886f141518fa5b63915a1ba32bb7afe9453e16ae0186837cd9fc5ffed
- languageName: node
- linkType: hard
-
-"@sinclair/typebox@npm:^0.34.0":
- version: 0.34.47
- resolution: "@sinclair/typebox@npm:0.34.47"
- checksum: 10/a7f279020ae45ce21636424ec6439f0e302c28196ed7d2cddf2f80899580cb454f07ce3a033a1aea7ecbcfe47cefd9801c7514bf3adaaecfd1b7d9c83ca3eb9f
- languageName: node
- linkType: hard
-
-"@sindresorhus/is@npm:^0.14.0":
- version: 0.14.0
- resolution: "@sindresorhus/is@npm:0.14.0"
- checksum: 10/789cd128f0b43e158e657c4505539c8997905fcb5c06d750b7df778cab2b6887bc1eb8878026a20d84524528786ef69fc3d12a964ae56a478a87bcfc7f8272f3
- languageName: node
- linkType: hard
-
-"@sindresorhus/is@npm:^4.0.0":
- version: 4.6.0
- resolution: "@sindresorhus/is@npm:4.6.0"
- checksum: 10/e7f36ed72abfcd5e0355f7423a72918b9748bb1ef370a59f3e5ad8d40b728b85d63b272f65f63eec1faf417cda89dcb0aeebe94015647b6054659c1442fe5ce0
- languageName: node
- linkType: hard
-
-"@snowfork/snowbridge-types@npm:0.2.7":
- version: 0.2.7
- resolution: "@snowfork/snowbridge-types@npm:0.2.7"
- dependencies:
- "@polkadot/api": "npm:^7.2.1"
- "@polkadot/keyring": "npm:^8.2.2"
- "@polkadot/types": "npm:^7.2.1"
- checksum: 10/2b2b692d3b38a1f9d781bd76ace4ef79582b3861d551c520c6c99f3c7745922aacb346261d9f671890378c08002bb5a7b63bb41bf3d483407d15bf5c7aeb06ff
- languageName: node
- linkType: hard
-
-"@sora-substrate/type-definitions@npm:1.27.7":
- version: 1.27.7
- resolution: "@sora-substrate/type-definitions@npm:1.27.7"
- dependencies:
- "@open-web3/orml-type-definitions": "npm:1.1.4"
- checksum: 10/31ee7e11ff062ec3775faa3bc1c03fad534cb8cacbbb029ae62a1c28e2b07dd317922c87fc81be33bd67889754ed1d1b1444f708469026dc1ef8a48df1c698f8
- languageName: node
- linkType: hard
-
-"@stardust-ui/react-component-event-listener@npm:~0.38.0":
- version: 0.38.0
- resolution: "@stardust-ui/react-component-event-listener@npm:0.38.0"
- dependencies:
- "@babel/runtime": "npm:^7.1.2"
- prop-types: "npm:^15.7.2"
- peerDependencies:
- react: ^16.8.0
- react-dom: ^16.8.0
- checksum: 10/27daee5e5728b9cb0bc494d5754a962b0f1bc2648030a149443444eac1f2536abd1fd8a00b6c4ef95d637ee196631bcdbb8901c6c29bc64d9eae648a35487170
- languageName: node
- linkType: hard
-
-"@stardust-ui/react-component-ref@npm:~0.38.0":
- version: 0.38.0
- resolution: "@stardust-ui/react-component-ref@npm:0.38.0"
- dependencies:
- "@babel/runtime": "npm:^7.1.2"
- prop-types: "npm:^15.7.2"
- react-is: "npm:^16.6.3"
- peerDependencies:
- react: ^16.8.0
- react-dom: ^16.8.0
- checksum: 10/912ec2d7ba15a85e5ccbd76b81b263fefe54f2059b17ded21c95cdeba0d4bdd205cfec323c42ccaa25e5c98302f71d28885a44f9a857b83d64ac802809d5f38b
- languageName: node
- linkType: hard
-
-"@subsocial/definitions@npm:0.8.14":
- version: 0.8.14
- resolution: "@subsocial/definitions@npm:0.8.14"
- dependencies:
- "@polkadot/api": "npm:latest"
- lodash.camelcase: "npm:^4.3.0"
- checksum: 10/03bd2dab161815c3c109289c1d7a185fd0be880c66ab9be3ce670a7aa1547e8cf0a46b1131ffbb477314f444dbcb72a3b821da8e13964c6220702a47c08d0510
- languageName: node
- linkType: hard
-
-"@substrate/connect-extension-protocol@npm:^1.0.0, @substrate/connect-extension-protocol@npm:^1.0.1":
- version: 1.0.1
- resolution: "@substrate/connect-extension-protocol@npm:1.0.1"
- checksum: 10/476e253f997ac3b00ada12becea390ef6566d2bb2b62a2d8ebe15d554faf5552d4c4a1a8be7324c1d95f673232638a19f5dd3fe7599a6287df4784f97d6dee47
- languageName: node
- linkType: hard
-
-"@substrate/connect-extension-protocol@npm:^2.0.0":
- version: 2.2.2
- resolution: "@substrate/connect-extension-protocol@npm:2.2.2"
- checksum: 10/b5427526dafcbd0ec45d3ce7ef7a3d1018496cae7d8ef60f545d4e143420b3e51fe37af966f493e73f4cb9383bc78af756cdc19294e633240c8a86c620b3d8b5
- languageName: node
- linkType: hard
-
-"@substrate/connect-known-chains@npm:^1.1.1, @substrate/connect-known-chains@npm:^1.1.5":
- version: 1.10.3
- resolution: "@substrate/connect-known-chains@npm:1.10.3"
- checksum: 10/b0b4e2914a9c8c0576196ff78f7d0a1ccaf3ee2a02f0b710ee5e79153fdcd4be36e5b7a58998ea72d13f9251dc13d448967114da14efc6aa1891eda284d066bb
- languageName: node
- linkType: hard
-
-"@substrate/connect@npm:0.7.0-alpha.0":
- version: 0.7.0-alpha.0
- resolution: "@substrate/connect@npm:0.7.0-alpha.0"
- dependencies:
- "@substrate/connect-extension-protocol": "npm:^1.0.0"
- "@substrate/smoldot-light": "npm:0.6.8"
- eventemitter3: "npm:^4.0.7"
- checksum: 10/94fddb10776897c2d36dc4012c195ecc07918f98398905ee6fab359b9f740d1af35dfbd2dcc0957e3e9c76146429052be76d3206fc7b55873a882be98cf55e89
- languageName: node
- linkType: hard
-
-"@substrate/connect@npm:0.7.19":
- version: 0.7.19
- resolution: "@substrate/connect@npm:0.7.19"
- dependencies:
- "@substrate/connect-extension-protocol": "npm:^1.0.1"
- "@substrate/smoldot-light": "npm:0.7.9"
- eventemitter3: "npm:^4.0.7"
- checksum: 10/956558d26398947a3c6e6960c0bd612f917a83627338e40926d9f90c0a43dbe3ad3f4e4014f434d8d16e5ba13ca418a66c35d5e49b45ee20a9c0c8830a5f9415
- languageName: node
- linkType: hard
-
-"@substrate/connect@npm:0.8.11":
- version: 0.8.11
- resolution: "@substrate/connect@npm:0.8.11"
- dependencies:
- "@substrate/connect-extension-protocol": "npm:^2.0.0"
- "@substrate/connect-known-chains": "npm:^1.1.5"
- "@substrate/light-client-extension-helpers": "npm:^1.0.0"
- smoldot: "npm:2.0.26"
- checksum: 10/380ba85aa3aec4439fae2ee42173376615ca60262d9c37e6e43d1d65d0d0f63f38c009bb476e9a612b0b9985c1b5808c4d9a75aff9e1828c77e75c8b7584d824
- languageName: node
- linkType: hard
-
-"@substrate/connect@npm:0.8.8":
- version: 0.8.8
- resolution: "@substrate/connect@npm:0.8.8"
- dependencies:
- "@substrate/connect-extension-protocol": "npm:^2.0.0"
- "@substrate/connect-known-chains": "npm:^1.1.1"
- "@substrate/light-client-extension-helpers": "npm:^0.0.4"
- smoldot: "npm:2.0.22"
- checksum: 10/056908d641bdbf4a7d8f429e915a7a0519cd9417b6fa46db8591af49f3ac04a631b4a084a30d05a7ae9cfbb70905dc7698452eb252f4e1101c86e82eb4d8ca04
- languageName: node
- linkType: hard
-
-"@substrate/light-client-extension-helpers@npm:^0.0.4":
- version: 0.0.4
- resolution: "@substrate/light-client-extension-helpers@npm:0.0.4"
- dependencies:
- "@polkadot-api/client": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/json-rpc-provider": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/json-rpc-provider-proxy": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@polkadot-api/substrate-client": "npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0"
- "@substrate/connect-extension-protocol": "npm:^2.0.0"
- "@substrate/connect-known-chains": "npm:^1.1.1"
- rxjs: "npm:^7.8.1"
- peerDependencies:
- smoldot: 2.x
- checksum: 10/f9a3c7775e41223b4e6f2020b4fe17efefebbdd2e7354ded73cac885181e101e7b22e36d47f0f40aec108b5142a9ca895433c51fccae026160a92ed9dbdae600
- languageName: node
- linkType: hard
-
-"@substrate/light-client-extension-helpers@npm:^1.0.0":
- version: 1.0.0
- resolution: "@substrate/light-client-extension-helpers@npm:1.0.0"
- dependencies:
- "@polkadot-api/json-rpc-provider": "npm:^0.0.1"
- "@polkadot-api/json-rpc-provider-proxy": "npm:^0.1.0"
- "@polkadot-api/observable-client": "npm:^0.3.0"
- "@polkadot-api/substrate-client": "npm:^0.1.2"
- "@substrate/connect-extension-protocol": "npm:^2.0.0"
- "@substrate/connect-known-chains": "npm:^1.1.5"
- rxjs: "npm:^7.8.1"
- peerDependencies:
- smoldot: 2.x
- checksum: 10/ca0726e8271aa9eb4f1edbb13e7f6986d45c9a4ae9a73a1a14aa9a41552821ca291a33459b7e8fc1ec1bde1ead9336a8bca4fb8781c060d5cbdd7e59ca96cb2d
- languageName: node
- linkType: hard
-
-"@substrate/smoldot-light@npm:0.6.8":
- version: 0.6.8
- resolution: "@substrate/smoldot-light@npm:0.6.8"
- dependencies:
- buffer: "npm:^6.0.1"
- pako: "npm:^2.0.4"
- websocket: "npm:^1.0.32"
- checksum: 10/4f9ab3bd9ca482056550ef2523e4574e867aad2f90f4f5c0c04b8d513bea2e523a4e8230801b5f6813865ac92b1ecc24977eaaccffe6feb7109f0033c182ab7d
- languageName: node
- linkType: hard
-
-"@substrate/smoldot-light@npm:0.7.9":
- version: 0.7.9
- resolution: "@substrate/smoldot-light@npm:0.7.9"
- dependencies:
- pako: "npm:^2.0.4"
- ws: "npm:^8.8.1"
- checksum: 10/5e3628cfa24f0bd263e4c28d39e336a94a54e7182ff7895817f5d708a462077002b9e7bba2d1fcc87e2482ec242550d02a51c6f8c2d3e4e69824ab6fa37c7885
- languageName: node
- linkType: hard
-
-"@substrate/ss58-registry@npm:^1.17.0, @substrate/ss58-registry@npm:^1.38.0, @substrate/ss58-registry@npm:^1.44.0, @substrate/ss58-registry@npm:^1.51.0":
- version: 1.51.0
- resolution: "@substrate/ss58-registry@npm:1.51.0"
- checksum: 10/34eb21292f543a8be7c62ad3bcdae89d61c8a51e35a0be4687b6b4e955b5180a90a7691a9e6779f7509f8dfcfdfa372d8278087a9668521b9c501adb85c915b6
- languageName: node
- linkType: hard
-
-"@szmarczak/http-timer@npm:^1.1.2":
- version: 1.1.2
- resolution: "@szmarczak/http-timer@npm:1.1.2"
- dependencies:
- defer-to-connect: "npm:^1.0.1"
- checksum: 10/9b63853bd53bff72c4990ebc9cd3f625bbab757247099af172564da6649a27a1d41b1a70cd849dd65b2a078300029c1c80bf3079e6a91e285da7b259eb147146
- languageName: node
- linkType: hard
-
-"@szmarczak/http-timer@npm:^4.0.5":
- version: 4.0.6
- resolution: "@szmarczak/http-timer@npm:4.0.6"
- dependencies:
- defer-to-connect: "npm:^2.0.0"
- checksum: 10/c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95
- languageName: node
- linkType: hard
-
-"@testing-library/dom@npm:^9.0.0":
- version: 9.3.4
- resolution: "@testing-library/dom@npm:9.3.4"
- dependencies:
- "@babel/code-frame": "npm:^7.10.4"
- "@babel/runtime": "npm:^7.12.5"
- "@types/aria-query": "npm:^5.0.1"
- aria-query: "npm:5.1.3"
- chalk: "npm:^4.1.0"
- dom-accessibility-api: "npm:^0.5.9"
- lz-string: "npm:^1.5.0"
- pretty-format: "npm:^27.0.2"
- checksum: 10/510da752ea76f4a10a0a4e3a77917b0302cf03effe576cd3534cab7e796533ee2b0e9fb6fb11b911a1ebd7c70a0bb6f235bf4f816c9b82b95b8fe0cddfd10975
- languageName: node
- linkType: hard
-
-"@testing-library/jest-dom@npm:^5.17.0":
- version: 5.17.0
- resolution: "@testing-library/jest-dom@npm:5.17.0"
- dependencies:
- "@adobe/css-tools": "npm:^4.0.1"
- "@babel/runtime": "npm:^7.9.2"
- "@types/testing-library__jest-dom": "npm:^5.9.1"
- aria-query: "npm:^5.0.0"
- chalk: "npm:^3.0.0"
- css.escape: "npm:^1.5.1"
- dom-accessibility-api: "npm:^0.5.6"
- lodash: "npm:^4.17.15"
- redent: "npm:^3.0.0"
- checksum: 10/5a75f2094f935d2da58ea1d2b3d0c9f58dc0bca2592f2ca8125176596b4adba88b742b7553ef228e2085eadcb498ce6cece3e78402e34e6af7b6bc26bf0a0baa
- languageName: node
- linkType: hard
-
-"@testing-library/react@npm:^14.1.2":
- version: 14.3.1
- resolution: "@testing-library/react@npm:14.3.1"
- dependencies:
- "@babel/runtime": "npm:^7.12.5"
- "@testing-library/dom": "npm:^9.0.0"
- "@types/react-dom": "npm:^18.0.0"
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- checksum: 10/83359dcdf9eaf067839f34604e1a181cbc14fc09f3a07672403700fcc6a900c4b8054ad1114fc24b4b9f89d84e2a09e1b7c9afce2306b1d4b4c9e30eb1cb12de
- languageName: node
- linkType: hard
-
-"@tootallnate/once@npm:2":
- version: 2.0.0
- resolution: "@tootallnate/once@npm:2.0.0"
- checksum: 10/ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8
- languageName: node
- linkType: hard
-
-"@tsconfig/strictest@npm:^2.0.2":
- version: 2.0.8
- resolution: "@tsconfig/strictest@npm:2.0.8"
- checksum: 10/74c493af61886c2653df94635ecb79a0d9e61ecc0136475698cfa4adbb8957583497a1907de4ed9882557fd22d187985a4e4ab28290db236d7a0dd8264a6ba44
- languageName: node
- linkType: hard
-
-"@tybys/wasm-util@npm:^0.10.0":
- version: 0.10.1
- resolution: "@tybys/wasm-util@npm:0.10.1"
- dependencies:
- tslib: "npm:^2.4.0"
- checksum: 10/7fe0d239397aebb002ac4855d30c197c06a05ea8df8511350a3a5b1abeefe26167c60eda8a5508337571161e4c4b53d7c1342296123f9607af8705369de9fa7f
- languageName: node
- linkType: hard
-
-"@types/aria-query@npm:^5.0.1":
- version: 5.0.4
- resolution: "@types/aria-query@npm:5.0.4"
- checksum: 10/c0084c389dc030daeaf0115a92ce43a3f4d42fc8fef2d0e22112d87a42798d4a15aac413019d4a63f868327d52ad6740ab99609462b442fe6b9286b172d2e82e
- languageName: node
- linkType: hard
-
-"@types/bn.js@npm:^4.11.6":
- version: 4.11.6
- resolution: "@types/bn.js@npm:4.11.6"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/9ff3e7a1539a953c381c0d30ea2049162e3cab894cda91ee10f3a84d603f9afa2b2bc2a38fe9b427de94b6e2b7b77aefd217c1c7b07a10ae8d7499f9d6697a41
- languageName: node
- linkType: hard
-
-"@types/bn.js@npm:^5.1.0, @types/bn.js@npm:^5.1.1, @types/bn.js@npm:^5.1.5, @types/bn.js@npm:^5.1.6":
- version: 5.2.0
- resolution: "@types/bn.js@npm:5.2.0"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/06c93841f74e4a5e5b81b74427d56303b223c9af36389b4cd3c562bda93f43c425c7e241aee1b0b881dde57238dc2e07f21d30d412b206a7dae4435af4c054e8
- languageName: node
- linkType: hard
-
-"@types/body-parser@npm:*":
- version: 1.19.6
- resolution: "@types/body-parser@npm:1.19.6"
- dependencies:
- "@types/connect": "npm:*"
- "@types/node": "npm:*"
- checksum: 10/33041e88eae00af2cfa0827e951e5f1751eafab2a8b6fce06cd89ef368a988907996436b1325180edaeddd1c0c7d0d0d4c20a6c9ff294a91e0039a9db9e9b658
- languageName: node
- linkType: hard
-
-"@types/bonjour@npm:^3.5.9":
- version: 3.5.13
- resolution: "@types/bonjour@npm:3.5.13"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee
- languageName: node
- linkType: hard
-
-"@types/cacheable-request@npm:^6.0.1":
- version: 6.0.3
- resolution: "@types/cacheable-request@npm:6.0.3"
- dependencies:
- "@types/http-cache-semantics": "npm:*"
- "@types/keyv": "npm:^3.1.4"
- "@types/node": "npm:*"
- "@types/responselike": "npm:^1.0.0"
- checksum: 10/159f9fdb2a1b7175eef453ae2ced5ea04c0d2b9610cc9ccd9f9abb066d36dacb1f37acd879ace10ad7cbb649490723feb396fb7307004c9670be29636304b988
- languageName: node
- linkType: hard
-
-"@types/chart.js@npm:<3, @types/chart.js@npm:^2.9.41":
- version: 2.9.41
- resolution: "@types/chart.js@npm:2.9.41"
- dependencies:
- moment: "npm:^2.10.2"
- checksum: 10/302b251633bb469410c0a8bd3e9b30fdc08c14f9d92998095ae3849a1c3069f61e70df530e6598e6416b3abd13d15dd4eb4c45914300a679ce4c8dee21847301
- languageName: node
- linkType: hard
-
-"@types/chartjs-plugin-crosshair@npm:^1.1.4":
- version: 1.1.6
- resolution: "@types/chartjs-plugin-crosshair@npm:1.1.6"
- dependencies:
- "@types/chart.js": "npm:<3"
- checksum: 10/998ab7361a50376d71c30809edf6ff18f81985704986fe56bded133922be46c40038f97e5a5d4e54d5de14a01783a3c98a01d69b9de47ee690638733879a851a
- languageName: node
- linkType: hard
-
-"@types/codeflask@npm:^1.4.6":
- version: 1.4.6
- resolution: "@types/codeflask@npm:1.4.6"
- dependencies:
- "@types/prismjs": "npm:*"
- checksum: 10/f388b179faeb54c7e56b0a59b66d1d7b3bbb62f6c64926a46de225405dc93fd5177499494bf2b3e710d9ea87582a3ce2f62a499d0e274fdd842e3b3059ce62af
- languageName: node
- linkType: hard
-
-"@types/connect-history-api-fallback@npm:^1.3.5":
- version: 1.5.4
- resolution: "@types/connect-history-api-fallback@npm:1.5.4"
- dependencies:
- "@types/express-serve-static-core": "npm:*"
- "@types/node": "npm:*"
- checksum: 10/e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd
- languageName: node
- linkType: hard
-
-"@types/connect@npm:*":
- version: 3.4.38
- resolution: "@types/connect@npm:3.4.38"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99
- languageName: node
- linkType: hard
-
-"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.6":
- version: 4.1.12
- resolution: "@types/debug@npm:4.1.12"
- dependencies:
- "@types/ms": "npm:*"
- checksum: 10/47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053
- languageName: node
- linkType: hard
-
-"@types/docker-modem@npm:*":
- version: 3.0.6
- resolution: "@types/docker-modem@npm:3.0.6"
- dependencies:
- "@types/node": "npm:*"
- "@types/ssh2": "npm:*"
- checksum: 10/cc58e8189f6ec5a2b8ca890207402178a97ddac8c80d125dc65d8ab29034b5db736de15e99b91b2d74e66d14e26e73b6b8b33216613dd15fd3aa6b82c11a83ed
- languageName: node
- linkType: hard
-
-"@types/dockerode@npm:^3.3.35":
- version: 3.3.47
- resolution: "@types/dockerode@npm:3.3.47"
- dependencies:
- "@types/docker-modem": "npm:*"
- "@types/node": "npm:*"
- "@types/ssh2": "npm:*"
- checksum: 10/b840ae7872398a3b02e5789006a69d0cf5bb7ec6c0eb714c7ca04ca093add8de4cd06204ecd8f01388e347e62927cf4c599e8b7dba53e81c1350910da766d517
- languageName: node
- linkType: hard
-
-"@types/eslint-scope@npm:^3.7.7":
- version: 3.7.7
- resolution: "@types/eslint-scope@npm:3.7.7"
- dependencies:
- "@types/eslint": "npm:*"
- "@types/estree": "npm:*"
- checksum: 10/e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e
- languageName: node
- linkType: hard
-
-"@types/eslint@npm:*":
- version: 9.6.1
- resolution: "@types/eslint@npm:9.6.1"
- dependencies:
- "@types/estree": "npm:*"
- "@types/json-schema": "npm:*"
- checksum: 10/719fcd255760168a43d0e306ef87548e1e15bffe361d5f4022b0f266575637acc0ecb85604ac97879ee8ae83c6a6d0613b0ed31d0209ddf22a0fe6d608fc56fe
- languageName: node
- linkType: hard
-
-"@types/estree-jsx@npm:^1.0.0":
- version: 1.0.5
- resolution: "@types/estree-jsx@npm:1.0.5"
- dependencies:
- "@types/estree": "npm:*"
- checksum: 10/a028ab0cd7b2950168a05c6a86026eb3a36a54a4adfae57f13911d7b49dffe573d9c2b28421b2d029b49b3d02fcd686611be2622dc3dad6d9791166c083f6008
- languageName: node
- linkType: hard
-
-"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.8":
- version: 1.0.8
- resolution: "@types/estree@npm:1.0.8"
- checksum: 10/25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099
- languageName: node
- linkType: hard
-
-"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0":
- version: 5.1.0
- resolution: "@types/express-serve-static-core@npm:5.1.0"
- dependencies:
- "@types/node": "npm:*"
- "@types/qs": "npm:*"
- "@types/range-parser": "npm:*"
- "@types/send": "npm:*"
- checksum: 10/c0b5b7ebc15b222f51e5705da2b8a5180335bf70927cc83c065784331aa9291984db1bfa4a14f5ba31b538dcb543561d9280046051fa4c9b7256eb971293e735
- languageName: node
- linkType: hard
-
-"@types/express-serve-static-core@npm:^4.17.33":
- version: 4.19.7
- resolution: "@types/express-serve-static-core@npm:4.19.7"
- dependencies:
- "@types/node": "npm:*"
- "@types/qs": "npm:*"
- "@types/range-parser": "npm:*"
- "@types/send": "npm:*"
- checksum: 10/a87830df965fb52eec6390accdba918a6f33f3d6cb96853be2cc2f74829a0bc09a29bddd9699127dbc17a170c7eebbe1294a9db9843b5a34dbc768f9ee844c01
- languageName: node
- linkType: hard
-
-"@types/express@npm:*":
- version: 5.0.6
- resolution: "@types/express@npm:5.0.6"
- dependencies:
- "@types/body-parser": "npm:*"
- "@types/express-serve-static-core": "npm:^5.0.0"
- "@types/serve-static": "npm:^2"
- checksum: 10/da2cc3de1b1a4d7f20ed3fb6f0a8ee08e99feb3c2eb5a8d643db77017d8d0e70fee9e95da38a73f51bcdf5eda3bb6435073c0271dc04fb16fda92e55daf911fa
- languageName: node
- linkType: hard
-
-"@types/express@npm:^4.17.13":
- version: 4.17.25
- resolution: "@types/express@npm:4.17.25"
- dependencies:
- "@types/body-parser": "npm:*"
- "@types/express-serve-static-core": "npm:^4.17.33"
- "@types/qs": "npm:*"
- "@types/serve-static": "npm:^1"
- checksum: 10/c309fdb79fb8569b5d8d8f11268d0160b271f8b38f0a82c20a0733e526baf033eb7a921cd51d54fe4333c616de9e31caf7d4f3ef73baaf212d61f23f460b0369
- languageName: node
- linkType: hard
-
-"@types/file-saver@npm:^2.0.7":
- version: 2.0.7
- resolution: "@types/file-saver@npm:2.0.7"
- checksum: 10/c3d1cd80eab1214767922cabac97681f3fb688e82b74890450d70deaca49537949bbc96d80d363d91e8f0a4752c7164909cc8902d9721c5c4809baafc42a3801
- languageName: node
- linkType: hard
-
-"@types/fs-extra@npm:9.0.13, @types/fs-extra@npm:^9.0.11":
- version: 9.0.13
- resolution: "@types/fs-extra@npm:9.0.13"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/ac545e377248039c596ef27d9f277b813507ebdd95d05f32fe7e9c67eb1ed567dafb4ba59f5fdcb6601dd7fd396ff9ba24f8c122e89cef096cdc17987c50a7fa
- languageName: node
- linkType: hard
-
-"@types/hast@npm:^3.0.0":
- version: 3.0.4
- resolution: "@types/hast@npm:3.0.4"
- dependencies:
- "@types/unist": "npm:*"
- checksum: 10/732920d81bb7605895776841b7658b4d8cc74a43a8fa176017cc0fb0ecc1a4c82a2b75a4fe6b71aa262b649d3fb62858c6789efa3793ea1d40269953af96ecb5
- languageName: node
- linkType: hard
-
-"@types/history@npm:^4.7.11":
- version: 4.7.11
- resolution: "@types/history@npm:4.7.11"
- checksum: 10/1da529a3485f3015daf794effa3185493bf7dd2551c26932389c614f5a0aab76ab97645897d1eef9c74ead216a3848fcaa019f165bbd6e4b71da6eff164b4c68
- languageName: node
- linkType: hard
-
-"@types/hoist-non-react-statics@npm:^3.3.0":
- version: 3.3.7
- resolution: "@types/hoist-non-react-statics@npm:3.3.7"
- dependencies:
- hoist-non-react-statics: "npm:^3.3.0"
- peerDependencies:
- "@types/react": "*"
- checksum: 10/13f610572c073970b3f43cc446396974fed786fee6eac2d6fd4b0ca5c985f13e79d4a0de58af4e5b4c68470d808567c3a14108d98edb7d526d4d46c8ec851ed1
- languageName: node
- linkType: hard
-
-"@types/html-minifier-terser@npm:^6.0.0":
- version: 6.1.0
- resolution: "@types/html-minifier-terser@npm:6.1.0"
- checksum: 10/06bb3e1e8ebff43602c826d67f53f1fd3a6b9c751bfbc67d7ea4e85679446a639e20e60adad8c9d44ab4baf1337b3861b91e7e5e2be798575caf0cc1a5712552
- languageName: node
- linkType: hard
-
-"@types/http-cache-semantics@npm:*":
- version: 4.0.4
- resolution: "@types/http-cache-semantics@npm:4.0.4"
- checksum: 10/a59566cff646025a5de396d6b3f44a39ab6a74f2ed8150692e0f31cc52f3661a68b04afe3166ebe0d566bd3259cb18522f46e949576d5204781cd6452b7fe0c5
- languageName: node
- linkType: hard
-
-"@types/http-errors@npm:*":
- version: 2.0.5
- resolution: "@types/http-errors@npm:2.0.5"
- checksum: 10/a88da669366bc483e8f3b3eb3d34ada5f8d13eeeef851b1204d77e2ba6fc42aba4566d877cca5c095204a3f4349b87fe397e3e21288837bdd945dd514120755b
- languageName: node
- linkType: hard
-
-"@types/http-proxy@npm:^1.17.8":
- version: 1.17.17
- resolution: "@types/http-proxy@npm:1.17.17"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/893e46e12be576baa471cf2fc13a4f0e413eaf30a5850de8fdbea3040e138ad4171234c59b986cf7137ff20a1582b254bf0c44cfd715d5ed772e1ab94dd75cd1
- languageName: node
- linkType: hard
-
-"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.6":
- version: 2.0.6
- resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
- checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778
- languageName: node
- linkType: hard
-
-"@types/istanbul-lib-report@npm:*":
- version: 3.0.3
- resolution: "@types/istanbul-lib-report@npm:3.0.3"
- dependencies:
- "@types/istanbul-lib-coverage": "npm:*"
- checksum: 10/b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4
- languageName: node
- linkType: hard
-
-"@types/istanbul-reports@npm:^3.0.4":
- version: 3.0.4
- resolution: "@types/istanbul-reports@npm:3.0.4"
- dependencies:
- "@types/istanbul-lib-report": "npm:*"
- checksum: 10/93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95
- languageName: node
- linkType: hard
-
-"@types/jest@npm:*":
- version: 30.0.0
- resolution: "@types/jest@npm:30.0.0"
- dependencies:
- expect: "npm:^30.0.0"
- pretty-format: "npm:^30.0.0"
- checksum: 10/cdeaa924c68b5233d9ff92861a89e7042df2b0f197633729bcf3a31e65bd4e9426e751c5665b5ac2de0b222b33f100a5502da22aefce3d2c62931c715e88f209
- languageName: node
- linkType: hard
-
-"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9":
- version: 7.0.15
- resolution: "@types/json-schema@npm:7.0.15"
- checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7
- languageName: node
- linkType: hard
-
-"@types/json5@npm:^0.0.29":
- version: 0.0.29
- resolution: "@types/json5@npm:0.0.29"
- checksum: 10/4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56
- languageName: node
- linkType: hard
-
-"@types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4":
- version: 3.1.4
- resolution: "@types/keyv@npm:3.1.4"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d
- languageName: node
- linkType: hard
-
-"@types/mdast@npm:^4.0.0":
- version: 4.0.4
- resolution: "@types/mdast@npm:4.0.4"
- dependencies:
- "@types/unist": "npm:*"
- checksum: 10/efe3ec11b9ee0015a396c4fb4cd1b6f31b51b8ae9783c59560e6fc0bf6c2fa1dcc7fccaf45fa09a6c8b3397fab9dc8d431433935cae3835caa70a18f7fc775f8
- languageName: node
- linkType: hard
-
-"@types/mime@npm:^1":
- version: 1.3.5
- resolution: "@types/mime@npm:1.3.5"
- checksum: 10/e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78
- languageName: node
- linkType: hard
-
-"@types/minimist@npm:^1.2.0":
- version: 1.2.5
- resolution: "@types/minimist@npm:1.2.5"
- checksum: 10/477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90
- languageName: node
- linkType: hard
-
-"@types/ms@npm:*":
- version: 2.1.0
- resolution: "@types/ms@npm:2.1.0"
- checksum: 10/532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4
- languageName: node
- linkType: hard
-
-"@types/node-fetch@npm:^2.5.10, @types/node-fetch@npm:^2.6.1, @types/node-fetch@npm:^2.6.2":
- version: 2.6.13
- resolution: "@types/node-fetch@npm:2.6.13"
- dependencies:
- "@types/node": "npm:*"
- form-data: "npm:^4.0.4"
- checksum: 10/944d52214791ebba482ca1393a4f0d62b0dbac5f7343ff42c128b75d5356d8bcefd4df77771b55c1acd19d118e16e9bd5d2792819c51bc13402d1c87c0975435
- languageName: node
- linkType: hard
-
-"@types/node-forge@npm:^1.3.0":
- version: 1.3.14
- resolution: "@types/node-forge@npm:1.3.14"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/500ce72435285fca145837da079b49a09a5bdf8391b0effc3eb2455783dd81ab129e574a36e1a0374a4823d889d5328177ebfd6fe45b432c0c43d48d790fe39c
- languageName: node
- linkType: hard
-
-"@types/node@npm:*, @types/node@npm:>=13.7.0":
- version: 25.0.3
- resolution: "@types/node@npm:25.0.3"
- dependencies:
- undici-types: "npm:~7.16.0"
- checksum: 10/5889b00f398eff4d4af28c3e5e97976f65c39a63fa3d7011f35cbf8640675fa6835e5dd47dce94d6ba48667711ddcd1f5c9bc5d93233e6a8e9ea1e502e8aa5a4
- languageName: node
- linkType: hard
-
-"@types/node@npm:^18.11.18":
- version: 18.19.130
- resolution: "@types/node@npm:18.19.130"
- dependencies:
- undici-types: "npm:~5.26.4"
- checksum: 10/ebb85c6edcec78df926de27d828ecbeb1b3d77c165ceef95bfc26e171edbc1924245db4eb2d7d6230206fe6b1a1f7665714fe1c70739e9f5980d8ce31af6ef82
- languageName: node
- linkType: hard
-
-"@types/normalize-package-data@npm:^2.4.0":
- version: 2.4.4
- resolution: "@types/normalize-package-data@npm:2.4.4"
- checksum: 10/65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05
- languageName: node
- linkType: hard
-
-"@types/owasp-password-strength-test@npm:^1.3.2":
- version: 1.3.2
- resolution: "@types/owasp-password-strength-test@npm:1.3.2"
- checksum: 10/2c7d7adf3c31a78c0359c832d0196454f8d628aa337b48b475f1da26da3dc6d2f4b3f897f8b5db60cd0e95903a427412b75be853154c2dbeb15a8b433f726ff2
- languageName: node
- linkType: hard
-
-"@types/plist@npm:^3.0.1":
- version: 3.0.5
- resolution: "@types/plist@npm:3.0.5"
- dependencies:
- "@types/node": "npm:*"
- xmlbuilder: "npm:>=11.0.1"
- checksum: 10/71417189c9bc0d0cb4595106cea7c7a8a7274f64d2e9c4dd558efd7993bcfdada58be6917189e3be7c455fe4e5557004658fd13bd12254eafed8c56e0868b59e
- languageName: node
- linkType: hard
-
-"@types/prismjs@npm:*, @types/prismjs@npm:^1.9.1":
- version: 1.26.5
- resolution: "@types/prismjs@npm:1.26.5"
- checksum: 10/617099479db9550119d0f84272dc79d64b2cf3e0d7a17167fe740d55fdf0f155697d935409464392d164e62080c2c88d649cf4bc4fdd30a87127337536657277
- languageName: node
- linkType: hard
-
-"@types/prop-types@npm:*":
- version: 15.7.15
- resolution: "@types/prop-types@npm:15.7.15"
- checksum: 10/31aa2f59b28f24da6fb4f1d70807dae2aedfce090ec63eaf9ea01727a9533ef6eaf017de5bff99fbccad7d1c9e644f52c6c2ba30869465dd22b1a7221c29f356
- languageName: node
- linkType: hard
-
-"@types/punycode@npm:^2.1.3":
- version: 2.1.4
- resolution: "@types/punycode@npm:2.1.4"
- checksum: 10/16637bdd8e4f830243072668125f83b93b728085a05140ccc3e7801528d78c62cce5426b07d5cdc75e4f797e1644807c762777f651d1cd071ad0128835cdce5e
- languageName: node
- linkType: hard
-
-"@types/qs@npm:*":
- version: 6.14.0
- resolution: "@types/qs@npm:6.14.0"
- checksum: 10/1909205514d22b3cbc7c2314e2bd8056d5f05dfb21cf4377f0730ee5e338ea19957c41735d5e4806c746176563f50005bbab602d8358432e25d900bdf4970826
- languageName: node
- linkType: hard
-
-"@types/range-parser@npm:*":
- version: 1.2.7
- resolution: "@types/range-parser@npm:1.2.7"
- checksum: 10/95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a
- languageName: node
- linkType: hard
-
-"@types/react-beautiful-dnd@npm:^13.1.7":
- version: 13.1.8
- resolution: "@types/react-beautiful-dnd@npm:13.1.8"
- dependencies:
- "@types/react": "npm:*"
- checksum: 10/cb8a182ed0ea6f680c7c343fcb4e54237437ca90dc88c2a70f4a203ec8ad0740e389e3ab7772c8cc1479f05e5a046bccbc33d54055b94e0fe5b22be030ab23d2
- languageName: node
- linkType: hard
-
-"@types/react-copy-to-clipboard@npm:^5.0.7":
- version: 5.0.7
- resolution: "@types/react-copy-to-clipboard@npm:5.0.7"
- dependencies:
- "@types/react": "npm:*"
- checksum: 10/adc2970c8756e648daa06e294c422df3dc076a784344ab2ecb78a17ebd7e8e3dfd7f31e68c24267de4815cdeec573a743d952a308b45b8380f6b7912a9a8b911
- languageName: node
- linkType: hard
-
-"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18":
- version: 18.3.7
- resolution: "@types/react-dom@npm:18.3.7"
- peerDependencies:
- "@types/react": ^18.0.0
- checksum: 10/317569219366d487a3103ba1e5e47154e95a002915fdcf73a44162c48fe49c3a57fcf7f57fc6979e70d447112681e6b13c6c3c1df289db8b544df4aab2d318f3
- languageName: node
- linkType: hard
-
-"@types/react-redux@npm:^7.1.20":
- version: 7.1.34
- resolution: "@types/react-redux@npm:7.1.34"
- dependencies:
- "@types/hoist-non-react-statics": "npm:^3.3.0"
- "@types/react": "npm:*"
- hoist-non-react-statics: "npm:^3.3.0"
- redux: "npm:^4.0.0"
- checksum: 10/febcd1db0c83c5002c6bee0fdda9e70da0653454ffbb72d6c37cbf2f5c005e06fb5271cff344d7164c385c944526565282de9a95ff379e040476b71d27fc2512
- languageName: node
- linkType: hard
-
-"@types/react-router-dom@npm:^5.3.3":
- version: 5.3.3
- resolution: "@types/react-router-dom@npm:5.3.3"
- dependencies:
- "@types/history": "npm:^4.7.11"
- "@types/react": "npm:*"
- "@types/react-router": "npm:*"
- checksum: 10/28c4ea48909803c414bf5a08502acbb8ba414669b4b43bb51297c05fe5addc4df0b8fd00e0a9d1e3535ec4073ef38aaafac2c4a2b95b787167d113bc059beff3
- languageName: node
- linkType: hard
-
-"@types/react-router@npm:*":
- version: 5.1.20
- resolution: "@types/react-router@npm:5.1.20"
- dependencies:
- "@types/history": "npm:^4.7.11"
- "@types/react": "npm:*"
- checksum: 10/72d78d2f4a4752ec40940066b73d7758a0824c4d0cbeb380ae24c8b1cdacc21a6fc835a99d6849b5b295517a3df5466fc28be038f1040bd870f8e39e5ded43a4
- languageName: node
- linkType: hard
-
-"@types/react@npm:*":
- version: 19.2.7
- resolution: "@types/react@npm:19.2.7"
- dependencies:
- csstype: "npm:^3.2.2"
- checksum: 10/dc0b756eee2c9782d282ae47eaa8d537b2a569eb889a6808c4b172d70fb690b2b1d8fe6239db451aa1c90d2a947cc21c9b537ce177ba9e6121468e403e4079c5
- languageName: node
- linkType: hard
-
-"@types/react@npm:^18.2.45":
- version: 18.3.27
- resolution: "@types/react@npm:18.3.27"
- dependencies:
- "@types/prop-types": "npm:*"
- csstype: "npm:^3.2.2"
- checksum: 10/90155820a2af315cad1ff47df695f3f2f568c12ad641a7805746a6a9a9aa6c40b1374e819e50d39afe0e375a6b9160a73176cbdb4e09807262bc6fcdc06e67db
- languageName: node
- linkType: hard
-
-"@types/resolve@npm:1.20.2":
- version: 1.20.2
- resolution: "@types/resolve@npm:1.20.2"
- checksum: 10/1bff0d3875e7e1557b6c030c465beca9bf3b1173ebc6937cac547654b0af3bb3ff0f16470e9c4d7c5dc308ad9ac8627c38dbff24ef698b66673ff5bd4ead7f7e
- languageName: node
- linkType: hard
-
-"@types/responselike@npm:^1.0.0":
- version: 1.0.3
- resolution: "@types/responselike@npm:1.0.3"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58
- languageName: node
- linkType: hard
-
-"@types/retry@npm:0.12.0":
- version: 0.12.0
- resolution: "@types/retry@npm:0.12.0"
- checksum: 10/bbd0b88f4b3eba7b7acfc55ed09c65ef6f2e1bcb4ec9b4dca82c66566934351534317d294a770a7cc6c0468d5573c5350abab6e37c65f8ef254443e1b028e44d
- languageName: node
- linkType: hard
-
-"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0":
- version: 7.7.1
- resolution: "@types/semver@npm:7.7.1"
- checksum: 10/8f09e7e6ca3ded67d78ba7a8f7535c8d9cf8ced83c52e7f3ac3c281fe8c689c3fe475d199d94390dc04fc681d51f2358b430bb7b2e21c62de24f2bee2c719068
- languageName: node
- linkType: hard
-
-"@types/send@npm:*":
- version: 1.2.1
- resolution: "@types/send@npm:1.2.1"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/81ef5790037ba1d2d458392e4241501f0f8b4838cc8797e169e179e099410e12069ec68e8dbd39211cb097c4a9b1ff1682dbcea897ab4ce21dad93438b862d27
- languageName: node
- linkType: hard
-
-"@types/send@npm:<1":
- version: 0.17.6
- resolution: "@types/send@npm:0.17.6"
- dependencies:
- "@types/mime": "npm:^1"
- "@types/node": "npm:*"
- checksum: 10/4948ab32ab84a81a0073f8243dd48ee766bc80608d5391060360afd1249f83c08a7476f142669ac0b0b8831c89d909a88bcb392d1b39ee48b276a91b50f3d8d1
- languageName: node
- linkType: hard
-
-"@types/serve-index@npm:^1.9.1":
- version: 1.9.4
- resolution: "@types/serve-index@npm:1.9.4"
- dependencies:
- "@types/express": "npm:*"
- checksum: 10/72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92
- languageName: node
- linkType: hard
-
-"@types/serve-static@npm:^1, @types/serve-static@npm:^1.13.10":
- version: 1.15.10
- resolution: "@types/serve-static@npm:1.15.10"
- dependencies:
- "@types/http-errors": "npm:*"
- "@types/node": "npm:*"
- "@types/send": "npm:<1"
- checksum: 10/d9be72487540b9598e7d77260d533f241eb2e5db5181bb885ef2d6bc4592dad1c9e8c0e27f465d59478b2faf90edd2d535e834f20fbd9dd3c0928d43dc486404
- languageName: node
- linkType: hard
-
-"@types/serve-static@npm:^2":
- version: 2.2.0
- resolution: "@types/serve-static@npm:2.2.0"
- dependencies:
- "@types/http-errors": "npm:*"
- "@types/node": "npm:*"
- checksum: 10/f2bad1304c7d0d3b7221faff3e490c40129d3803f4fb1b2fb84f31f561071c5e6a4b876c41bbbe82d5645034eea936e946bcaaf993dac1093ce68b56effad6e0
- languageName: node
- linkType: hard
-
-"@types/sockjs@npm:^0.3.33":
- version: 0.3.36
- resolution: "@types/sockjs@npm:0.3.36"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc
- languageName: node
- linkType: hard
-
-"@types/ssh2-streams@npm:*":
- version: 0.1.13
- resolution: "@types/ssh2-streams@npm:0.1.13"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/182c9de8384e11fcfed04e447c3c1d37f898ed4e7f0be0cc58b3bd5b23e22957c17939b68f709092cece758a4befa92913dd967115f643fa0e2dc629fc2e2383
- languageName: node
- linkType: hard
-
-"@types/ssh2@npm:*":
- version: 1.15.5
- resolution: "@types/ssh2@npm:1.15.5"
- dependencies:
- "@types/node": "npm:^18.11.18"
- checksum: 10/dd6f29f4e96ea43aa61d29a4a3ad87ad8d11bf1bef637b2848958abd94b05d28754cc611eac13f52d43bd1f51afe7c660cd1c8533ae06878b5739888f4ea0d99
- languageName: node
- linkType: hard
-
-"@types/ssh2@npm:^0.5.48":
- version: 0.5.52
- resolution: "@types/ssh2@npm:0.5.52"
- dependencies:
- "@types/node": "npm:*"
- "@types/ssh2-streams": "npm:*"
- checksum: 10/fc2584af091da49da9d6628dd8a5e851b217bb9b1b732b0361903894f2730ab3fdf8634f954be34c5a513f7eb0b2772d059d64062bcf6b4a0eb73bfc83c4b858
- languageName: node
- linkType: hard
-
-"@types/stack-utils@npm:^2.0.3":
- version: 2.0.3
- resolution: "@types/stack-utils@npm:2.0.3"
- checksum: 10/72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5
- languageName: node
- linkType: hard
-
-"@types/store@npm:^2.0.5":
- version: 2.0.5
- resolution: "@types/store@npm:2.0.5"
- checksum: 10/fd7fbc41805749d6b5180af335928b9b28ef0632fda8f240d4fb4f018a910a626bfa7f9f710e750adfd951ea1fc296b1f0527d1bfcebc0ee7dc136fb5c9e59c7
- languageName: node
- linkType: hard
-
-"@types/stylis@npm:4.2.7":
- version: 4.2.7
- resolution: "@types/stylis@npm:4.2.7"
- checksum: 10/068c7fd64ee2e1649b06615da57c76dd9f5be1836e310ebf94aa08193c3544d48944079ce6e94ba89b72b716944f217234a86fecc28185246c1787f02ad0eae1
- languageName: node
- linkType: hard
-
-"@types/testing-library__jest-dom@npm:^5.9.1":
- version: 5.14.9
- resolution: "@types/testing-library__jest-dom@npm:5.14.9"
- dependencies:
- "@types/jest": "npm:*"
- checksum: 10/e257de95a4a9385cc09ae4ca3396d23ad4b5cfb8e021a1ca3454c424c34636075f6fe151b2f881f79bf9d497aa04fbfae62449b135f293e8d2d614fa899898a8
- languageName: node
- linkType: hard
-
-"@types/tmp@npm:^0.2.6":
- version: 0.2.6
- resolution: "@types/tmp@npm:0.2.6"
- checksum: 10/e14a094c10569d3b56805552b21417860ef21060d969000d5d5b53604a78c2bdac216f064b03797d4b07a081e0141dd3ab22bc36923e75300eb1c023f7252cc7
- languageName: node
- linkType: hard
-
-"@types/unist@npm:*, @types/unist@npm:^3.0.0":
- version: 3.0.3
- resolution: "@types/unist@npm:3.0.3"
- checksum: 10/96e6453da9e075aaef1dc22482463898198acdc1eeb99b465e65e34303e2ec1e3b1ed4469a9118275ec284dc98019f63c3f5d49422f0e4ac707e5ab90fb3b71a
- languageName: node
- linkType: hard
-
-"@types/unist@npm:^2.0.0":
- version: 2.0.11
- resolution: "@types/unist@npm:2.0.11"
- checksum: 10/6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e
- languageName: node
- linkType: hard
-
-"@types/uuid@npm:^9.0.2":
- version: 9.0.8
- resolution: "@types/uuid@npm:9.0.8"
- checksum: 10/b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275
- languageName: node
- linkType: hard
-
-"@types/verror@npm:^1.10.3":
- version: 1.10.11
- resolution: "@types/verror@npm:1.10.11"
- checksum: 10/647a8c43f1510a7ed113426bc428e4d6914da5912946d77b1f6e37937493bc288f49656e1114794f0e5841c14cc1582887cf605952e4e4e0e77e3cd825790fad
- languageName: node
- linkType: hard
-
-"@types/w3c-web-usb@npm:^1.0.6":
- version: 1.0.13
- resolution: "@types/w3c-web-usb@npm:1.0.13"
- checksum: 10/5a33d8cc2a766d7162e0153fabef100e4cff6bbd1ef1f7e1ccd77d21fda6e496adb861c16df1b301aa5c731652b887ececeb1876274e9dafc75b999ce04f72ff
- languageName: node
- linkType: hard
-
-"@types/websocket@npm:^1.0.3, @types/websocket@npm:^1.0.5":
- version: 1.0.10
- resolution: "@types/websocket@npm:1.0.10"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/ceab9632bb93147ae42e5768e7ddb6ab764f0240f312e68d205db87606fc201eb7b8deedabb14fd47561c6108f3f19e188615fd6f6cf673cc832d64441ddf83e
- languageName: node
- linkType: hard
-
-"@types/ws@npm:8.5.3":
- version: 8.5.3
- resolution: "@types/ws@npm:8.5.3"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/08aac698ce6480b532d8311f790a8744ae489ccdd98f374cfe4b8245855439825c64b031abcbba4f30fb280da6cc2b02a4e261e16341d058ffaeecaa24ba2bd3
- languageName: node
- linkType: hard
-
-"@types/ws@npm:^8.5.5":
- version: 8.18.1
- resolution: "@types/ws@npm:8.18.1"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/1ce05e3174dcacf28dae0e9b854ef1c9a12da44c7ed73617ab6897c5cbe4fccbb155a20be5508ae9a7dde2f83bd80f5cf3baa386b934fc4b40889ec963e94f3a
- languageName: node
- linkType: hard
-
-"@types/yargs-parser@npm:*":
- version: 21.0.3
- resolution: "@types/yargs-parser@npm:21.0.3"
- checksum: 10/a794eb750e8ebc6273a51b12a0002de41343ffe46befef460bdbb57262d187fdf608bc6615b7b11c462c63c3ceb70abe2564c8dd8ee0f7628f38a314f74a9b9b
- languageName: node
- linkType: hard
-
-"@types/yargs@npm:^17.0.33":
- version: 17.0.35
- resolution: "@types/yargs@npm:17.0.35"
- dependencies:
- "@types/yargs-parser": "npm:*"
- checksum: 10/47bcd4476a4194ea11617ea71cba8a1eddf5505fc39c44336c1a08d452a0de4486aedbc13f47a017c8efbcb5a8aa358d976880663732ebcbc6dbcbbecadb0581
- languageName: node
- linkType: hard
-
-"@types/yauzl@npm:^2.9.1":
- version: 2.10.3
- resolution: "@types/yauzl@npm:2.10.3"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08
- languageName: node
- linkType: hard
-
-"@typescript-eslint/eslint-plugin@npm:^6.19.1":
- version: 6.21.0
- resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0"
- dependencies:
- "@eslint-community/regexpp": "npm:^4.5.1"
- "@typescript-eslint/scope-manager": "npm:6.21.0"
- "@typescript-eslint/type-utils": "npm:6.21.0"
- "@typescript-eslint/utils": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
- debug: "npm:^4.3.4"
- graphemer: "npm:^1.4.0"
- ignore: "npm:^5.2.4"
- natural-compare: "npm:^1.4.0"
- semver: "npm:^7.5.4"
- ts-api-utils: "npm:^1.0.1"
- peerDependencies:
- "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha
- eslint: ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/a57de0f630789330204cc1531f86cfc68b391cafb1ba67c8992133f1baa2a09d629df66e71260b040de4c9a3ff1252952037093c4128b0d56c4dbb37720b4c1d
- languageName: node
- linkType: hard
-
-"@typescript-eslint/parser@npm:^6.19.1":
- version: 6.21.0
- resolution: "@typescript-eslint/parser@npm:6.21.0"
- dependencies:
- "@typescript-eslint/scope-manager": "npm:6.21.0"
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/typescript-estree": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
- debug: "npm:^4.3.4"
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/4d51cdbc170e72275efc5ef5fce48a81ec431e4edde8374f4d0213d8d370a06823e1a61ae31d502a5f1b0d1f48fc4d29a1b1b5c2dcf809d66d3872ccf6e46ac7
- languageName: node
- linkType: hard
-
-"@typescript-eslint/scope-manager@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/scope-manager@npm:5.62.0"
- dependencies:
- "@typescript-eslint/types": "npm:5.62.0"
- "@typescript-eslint/visitor-keys": "npm:5.62.0"
- checksum: 10/e827770baa202223bc0387e2fd24f630690809e460435b7dc9af336c77322290a770d62bd5284260fa881c86074d6a9fd6c97b07382520b115f6786b8ed499da
- languageName: node
- linkType: hard
-
-"@typescript-eslint/scope-manager@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/scope-manager@npm:6.21.0"
- dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
- checksum: 10/fe91ac52ca8e09356a71dc1a2f2c326480f3cccfec6b2b6d9154c1a90651ab8ea270b07c67df5678956c3bbf0bbe7113ab68f68f21b20912ea528b1214197395
- languageName: node
- linkType: hard
-
-"@typescript-eslint/type-utils@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/type-utils@npm:6.21.0"
- dependencies:
- "@typescript-eslint/typescript-estree": "npm:6.21.0"
- "@typescript-eslint/utils": "npm:6.21.0"
- debug: "npm:^4.3.4"
- ts-api-utils: "npm:^1.0.1"
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/d03fb3ee1caa71f3ce053505f1866268d7ed79ffb7fed18623f4a1253f5b8f2ffc92636d6fd08fcbaf5bd265a6de77bf192c53105131e4724643dfc910d705fc
- languageName: node
- linkType: hard
-
-"@typescript-eslint/types@npm:4.33.0":
- version: 4.33.0
- resolution: "@typescript-eslint/types@npm:4.33.0"
- checksum: 10/c7ec55e6aef47ac49f712da52968c825552a23c59717f338f08c480e5336d592a689a324d21e2d370f48713a1302d7c78c14e6250bcea9b91f0b62ab6b2db3e1
- languageName: node
- linkType: hard
-
-"@typescript-eslint/types@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/types@npm:5.62.0"
- checksum: 10/24e8443177be84823242d6729d56af2c4b47bfc664dd411a1d730506abf2150d6c31bdefbbc6d97c8f91043e3a50e0c698239dcb145b79bb6b0c34469aaf6c45
- languageName: node
- linkType: hard
-
-"@typescript-eslint/types@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/types@npm:6.21.0"
- checksum: 10/e26da86d6f36ca5b6ef6322619f8ec55aabcd7d43c840c977ae13ae2c964c3091fc92eb33730d8be08927c9de38466c5323e78bfb270a9ff1d3611fe821046c5
- languageName: node
- linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:5.62.0, @typescript-eslint/typescript-estree@npm:^5.55.0":
- version: 5.62.0
- resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
- dependencies:
- "@typescript-eslint/types": "npm:5.62.0"
- "@typescript-eslint/visitor-keys": "npm:5.62.0"
- debug: "npm:^4.3.4"
- globby: "npm:^11.1.0"
- is-glob: "npm:^4.0.3"
- semver: "npm:^7.3.7"
- tsutils: "npm:^3.21.0"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/06c975eb5f44b43bd19fadc2e1023c50cf87038fe4c0dd989d4331c67b3ff509b17fa60a3251896668ab4d7322bdc56162a9926971218d2e1a1874d2bef9a52e
- languageName: node
- linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
- dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
- debug: "npm:^4.3.4"
- globby: "npm:^11.1.0"
- is-glob: "npm:^4.0.3"
- minimatch: "npm:9.0.3"
- semver: "npm:^7.5.4"
- ts-api-utils: "npm:^1.0.1"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/b32fa35fca2a229e0f5f06793e5359ff9269f63e9705e858df95d55ca2cd7fdb5b3e75b284095a992c48c5fc46a1431a1a4b6747ede2dd08929dc1cbacc589b8
- languageName: node
- linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:^4.33.0":
- version: 4.33.0
- resolution: "@typescript-eslint/typescript-estree@npm:4.33.0"
- dependencies:
- "@typescript-eslint/types": "npm:4.33.0"
- "@typescript-eslint/visitor-keys": "npm:4.33.0"
- debug: "npm:^4.3.1"
- globby: "npm:^11.0.3"
- is-glob: "npm:^4.0.1"
- semver: "npm:^7.3.5"
- tsutils: "npm:^3.21.0"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/e9409ec992d9d3c44efd53106bf63a6d5f6041e9dc359d54ea4b5f6787404cf44057cbd3090e9cc45ed4157dc631e398079f954490e50a4608cea1fbf9e69226
- languageName: node
- linkType: hard
-
-"@typescript-eslint/utils@npm:6.21.0, @typescript-eslint/utils@npm:^6.0.0":
- version: 6.21.0
- resolution: "@typescript-eslint/utils@npm:6.21.0"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.4.0"
- "@types/json-schema": "npm:^7.0.12"
- "@types/semver": "npm:^7.5.0"
- "@typescript-eslint/scope-manager": "npm:6.21.0"
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/typescript-estree": "npm:6.21.0"
- semver: "npm:^7.5.4"
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- checksum: 10/b404a2c55a425a79d054346ae123087d30c7ecf7ed7abcf680c47bf70c1de4fabadc63434f3f460b2fa63df76bc9e4a0b9fa2383bb8a9fcd62733fb5c4e4f3e3
- languageName: node
- linkType: hard
-
-"@typescript-eslint/utils@npm:^5.10.0":
- version: 5.62.0
- resolution: "@typescript-eslint/utils@npm:5.62.0"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.2.0"
- "@types/json-schema": "npm:^7.0.9"
- "@types/semver": "npm:^7.3.12"
- "@typescript-eslint/scope-manager": "npm:5.62.0"
- "@typescript-eslint/types": "npm:5.62.0"
- "@typescript-eslint/typescript-estree": "npm:5.62.0"
- eslint-scope: "npm:^5.1.1"
- semver: "npm:^7.3.7"
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: 10/15ef13e43998a082b15f85db979f8d3ceb1f9ce4467b8016c267b1738d5e7cdb12aa90faf4b4e6dd6486c236cf9d33c463200465cf25ff997dbc0f12358550a1
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:4.33.0":
- version: 4.33.0
- resolution: "@typescript-eslint/visitor-keys@npm:4.33.0"
- dependencies:
- "@typescript-eslint/types": "npm:4.33.0"
- eslint-visitor-keys: "npm:^2.0.0"
- checksum: 10/b28cd3f2c5cd919587d576e0cec8a95ea6c12a2e22dfec59ce70714efad4a7af4d467f9f964dd4ba1a4ad82d4a8c680a6d397e621b9be9d1df89b3a95380813f
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/visitor-keys@npm:5.62.0"
- dependencies:
- "@typescript-eslint/types": "npm:5.62.0"
- eslint-visitor-keys: "npm:^3.3.0"
- checksum: 10/dc613ab7569df9bbe0b2ca677635eb91839dfb2ca2c6fa47870a5da4f160db0b436f7ec0764362e756d4164e9445d49d5eb1ff0b87f4c058946ae9d8c92eb388
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/visitor-keys@npm:6.21.0"
- dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- eslint-visitor-keys: "npm:^3.4.1"
- checksum: 10/30422cdc1e2ffad203df40351a031254b272f9c6f2b7e02e9bfa39e3fc2c7b1c6130333b0057412968deda17a3a68a578a78929a8139c6acef44d9d841dc72e1
- languageName: node
- linkType: hard
-
-"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0":
- version: 1.3.0
- resolution: "@ungap/structured-clone@npm:1.3.0"
- checksum: 10/80d6910946f2b1552a2406650051c91bbd1f24a6bf854354203d84fe2714b3e8ce4618f49cc3410494173a1c1e8e9777372fe68dce74bd45faf0a7a1a6ccf448
- languageName: node
- linkType: hard
-
-"@unique-nft/opal-testnet-types@npm:1003.70.0":
- version: 1003.70.0
- resolution: "@unique-nft/opal-testnet-types@npm:1003.70.0"
- peerDependencies:
- "@polkadot/api": ^10.10.1
- "@polkadot/types": ^10.10.1
- checksum: 10/29c2a3a6c2a3efc18788bc7ff490361456eda8d61db2f087de6aad7cb7aa5e57bf52bbdddbb1e7872b67655535fe84feb43048671ba74e9300de94ac0a5fd968
- languageName: node
- linkType: hard
-
-"@unique-nft/quartz-mainnet-types@npm:1003.70.0":
- version: 1003.70.0
- resolution: "@unique-nft/quartz-mainnet-types@npm:1003.70.0"
- peerDependencies:
- "@polkadot/api": ^10.10.1
- "@polkadot/types": ^10.10.1
- checksum: 10/55881b33bc5e83aaecf6da2436dcac9738411735f0af6d94e245b11cc44f0535b9893fe1b9e1fc4b6ad00847b0ce7bff2c6c9ab9ff955175a0556f8bb9ea8ae2
- languageName: node
- linkType: hard
-
-"@unique-nft/sapphire-mainnet-types@npm:1003.70.0":
- version: 1003.70.0
- resolution: "@unique-nft/sapphire-mainnet-types@npm:1003.70.0"
- peerDependencies:
- "@polkadot/api": ^10.10.1
- "@polkadot/types": ^10.10.1
- checksum: 10/6824d97614cff065e93fb944b3f34cbf38ae0f9e92e82b1e57ea4020863aecb96091f4895c8ad6c08ebff7791f26dc7d7cfe2ba21c11153febf6b307fb6b092b
- languageName: node
- linkType: hard
-
-"@unique-nft/unique-mainnet-types@npm:1001.63.0":
- version: 1001.63.0
- resolution: "@unique-nft/unique-mainnet-types@npm:1001.63.0"
- peerDependencies:
- "@polkadot/api": ^10.10.1
- "@polkadot/types": ^10.10.1
- checksum: 10/131afd9a9f77bb0bb78caff911fd1dc9999381b31689bd7b1dea4123efdb8b0c074683c8b0e4cd189cc060149cbd2720a98060902e93c2494237bf681edbba92
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-android-arm-eabi@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1"
- conditions: os=android & cpu=arm
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-android-arm64@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-android-arm64@npm:1.11.1"
- conditions: os=android & cpu=arm64
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-darwin-arm64@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.11.1"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-darwin-x64@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-darwin-x64@npm:1.11.1"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-freebsd-x64@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.11.1"
- conditions: os=freebsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1"
- conditions: os=linux & cpu=arm64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1"
- conditions: os=linux & cpu=arm64 & libc=musl
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1"
- conditions: os=linux & cpu=ppc64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1"
- conditions: os=linux & cpu=riscv64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1"
- conditions: os=linux & cpu=riscv64 & libc=musl
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1"
- conditions: os=linux & cpu=s390x & libc=glibc
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1"
- conditions: os=linux & cpu=x64 & libc=glibc
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-linux-x64-musl@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.11.1"
- conditions: os=linux & cpu=x64 & libc=musl
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-wasm32-wasi@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.11.1"
- dependencies:
- "@napi-rs/wasm-runtime": "npm:^0.2.11"
- conditions: cpu=wasm32
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1"
- conditions: os=win32 & cpu=ia32
- languageName: node
- linkType: hard
-
-"@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1":
- version: 1.11.1
- resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/ast@npm:1.14.1"
- dependencies:
- "@webassemblyjs/helper-numbers": "npm:1.13.2"
- "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2"
- checksum: 10/f83e6abe38057f5d87c1fb356513a371a8b43c9b87657f2790741a66b1ef8ecf958d1391bc42f27c5fb33f58ab8286a38ea849fdd21f433cd4df1307424bab45
- languageName: node
- linkType: hard
-
-"@webassemblyjs/floating-point-hex-parser@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2"
- checksum: 10/e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795
- languageName: node
- linkType: hard
-
-"@webassemblyjs/helper-api-error@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/helper-api-error@npm:1.13.2"
- checksum: 10/48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0
- languageName: node
- linkType: hard
-
-"@webassemblyjs/helper-buffer@npm:1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/helper-buffer@npm:1.14.1"
- checksum: 10/9690afeafa5e765a34620aa6216e9d40f9126d4e37e9726a2594bf60cab6b211ef20ab6670fd3c4449dd4a3497e69e49b2b725c8da0fb213208c7f45f15f5d5b
- languageName: node
- linkType: hard
-
-"@webassemblyjs/helper-numbers@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/helper-numbers@npm:1.13.2"
- dependencies:
- "@webassemblyjs/floating-point-hex-parser": "npm:1.13.2"
- "@webassemblyjs/helper-api-error": "npm:1.13.2"
- "@xtuc/long": "npm:4.2.2"
- checksum: 10/e4c7d0b09811e1cda8eec644a022b560b28f4e974f50195375ccd007df5ee48a922a6dcff5ac40b6a8ec850d56d0ea6419318eee49fec7819ede14e90417a6a4
- languageName: node
- linkType: hard
-
-"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2"
- checksum: 10/3edd191fff7296df1ef3b023bdbe6cb5ea668f6386fd197ccfce46015c6f2a8cc9763cfb86503a0b94973ad27996645afff2252ee39a236513833259a47af6ed
- languageName: node
- linkType: hard
-
-"@webassemblyjs/helper-wasm-section@npm:1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1"
- dependencies:
- "@webassemblyjs/ast": "npm:1.14.1"
- "@webassemblyjs/helper-buffer": "npm:1.14.1"
- "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2"
- "@webassemblyjs/wasm-gen": "npm:1.14.1"
- checksum: 10/6b73874f906532512371181d7088460f767966f26309e836060c5a8e4e4bfe6d523fb5f4c034b34aa22ebb1192815f95f0e264298769485c1f0980fdd63ae0ce
- languageName: node
- linkType: hard
-
-"@webassemblyjs/ieee754@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/ieee754@npm:1.13.2"
- dependencies:
- "@xtuc/ieee754": "npm:^1.2.0"
- checksum: 10/d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673
- languageName: node
- linkType: hard
-
-"@webassemblyjs/leb128@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/leb128@npm:1.13.2"
- dependencies:
- "@xtuc/long": "npm:4.2.2"
- checksum: 10/3a10542c86807061ec3230bac8ee732289c852b6bceb4b88ebd521a12fbcecec7c432848284b298154f28619e2746efbed19d6904aef06c49ef20a0b85f650cf
- languageName: node
- linkType: hard
-
-"@webassemblyjs/utf8@npm:1.13.2":
- version: 1.13.2
- resolution: "@webassemblyjs/utf8@npm:1.13.2"
- checksum: 10/27885e5d19f339501feb210867d69613f281eda695ac508f04d69fa3398133d05b6870969c0242b054dc05420ed1cc49a64dea4fe0588c18d211cddb0117cc54
- languageName: node
- linkType: hard
-
-"@webassemblyjs/wasm-edit@npm:^1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/wasm-edit@npm:1.14.1"
- dependencies:
- "@webassemblyjs/ast": "npm:1.14.1"
- "@webassemblyjs/helper-buffer": "npm:1.14.1"
- "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2"
- "@webassemblyjs/helper-wasm-section": "npm:1.14.1"
- "@webassemblyjs/wasm-gen": "npm:1.14.1"
- "@webassemblyjs/wasm-opt": "npm:1.14.1"
- "@webassemblyjs/wasm-parser": "npm:1.14.1"
- "@webassemblyjs/wast-printer": "npm:1.14.1"
- checksum: 10/c62c50eadcf80876713f8c9f24106b18cf208160ab842fcb92060fd78c37bf37e7fcf0b7cbf1afc05d230277c2ce0f3f728432082c472dd1293e184a95f9dbdd
- languageName: node
- linkType: hard
-
-"@webassemblyjs/wasm-gen@npm:1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/wasm-gen@npm:1.14.1"
- dependencies:
- "@webassemblyjs/ast": "npm:1.14.1"
- "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2"
- "@webassemblyjs/ieee754": "npm:1.13.2"
- "@webassemblyjs/leb128": "npm:1.13.2"
- "@webassemblyjs/utf8": "npm:1.13.2"
- checksum: 10/6085166b0987d3031355fe17a4f9ef0f412e08098d95454059aced2bd72a4c3df2bc099fa4d32d640551fc3eca1ac1a997b44432e46dc9d84642688e42c17ed4
- languageName: node
- linkType: hard
-
-"@webassemblyjs/wasm-opt@npm:1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/wasm-opt@npm:1.14.1"
- dependencies:
- "@webassemblyjs/ast": "npm:1.14.1"
- "@webassemblyjs/helper-buffer": "npm:1.14.1"
- "@webassemblyjs/wasm-gen": "npm:1.14.1"
- "@webassemblyjs/wasm-parser": "npm:1.14.1"
- checksum: 10/fa5d1ef8d2156e7390927f938f513b7fb4440dd6804b3d6c8622b7b1cf25a3abf1a5809f615896d4918e04b27b52bc3cbcf18faf2d563cb563ae0a9204a492db
- languageName: node
- linkType: hard
-
-"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/wasm-parser@npm:1.14.1"
- dependencies:
- "@webassemblyjs/ast": "npm:1.14.1"
- "@webassemblyjs/helper-api-error": "npm:1.13.2"
- "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2"
- "@webassemblyjs/ieee754": "npm:1.13.2"
- "@webassemblyjs/leb128": "npm:1.13.2"
- "@webassemblyjs/utf8": "npm:1.13.2"
- checksum: 10/07d9805fda88a893c984ed93d5a772d20d671e9731358ab61c6c1af8e0e58d1c42fc230c18974dfddebc9d2dd7775d514ba4d445e70080b16478b4b16c39c7d9
- languageName: node
- linkType: hard
-
-"@webassemblyjs/wast-printer@npm:1.14.1":
- version: 1.14.1
- resolution: "@webassemblyjs/wast-printer@npm:1.14.1"
- dependencies:
- "@webassemblyjs/ast": "npm:1.14.1"
- "@xtuc/long": "npm:4.2.2"
- checksum: 10/cef09aad2fcd291bfcf9efdae2ea1e961a1ba0f925d1d9dcdd8c746d32fbaf431b6d26a0241699c0e39f82139018aa720b4ceb84ac6f4c78f13072747480db69
- languageName: node
- linkType: hard
-
-"@webpack-cli/configtest@npm:^2.1.1":
- version: 2.1.1
- resolution: "@webpack-cli/configtest@npm:2.1.1"
- peerDependencies:
- webpack: 5.x.x
- webpack-cli: 5.x.x
- checksum: 10/9f9f9145c2d05471fc83d426db1df85cf49f329836b0c4b9f46b6948bed4b013464c00622b136d2a0a26993ce2306976682592245b08ee717500b1db45009a72
- languageName: node
- linkType: hard
-
-"@webpack-cli/info@npm:^2.0.2":
- version: 2.0.2
- resolution: "@webpack-cli/info@npm:2.0.2"
- peerDependencies:
- webpack: 5.x.x
- webpack-cli: 5.x.x
- checksum: 10/8f9a178afca5c82e113aed1efa552d64ee5ae4fdff63fe747c096a981ec74f18a5d07bd6e89bbe6715c3e57d96eea024a410e58977169489fe1df044c10dd94e
- languageName: node
- linkType: hard
-
-"@webpack-cli/serve@npm:^2.0.5":
- version: 2.0.5
- resolution: "@webpack-cli/serve@npm:2.0.5"
- peerDependencies:
- webpack: 5.x.x
- webpack-cli: 5.x.x
- peerDependenciesMeta:
- webpack-dev-server:
- optional: true
- checksum: 10/20424e5c1e664e4d7ab11facee7033bb729f6acd86493138069532934c1299c1426da72942822dedb00caca8fc60cc8aec1626e610ee0e8a9679e3614f555860
- languageName: node
- linkType: hard
-
-"@xmldom/xmldom@npm:^0.8.8":
- version: 0.8.11
- resolution: "@xmldom/xmldom@npm:0.8.11"
- checksum: 10/f6d6ffdf71cf19d9b3c10e978fad40d2f85453bf5b2aa05be8aa0c5ad13f84690c3153316729213cc652d06ec12c605ddb0aa03886f1d73d51b974b4105d31e3
- languageName: node
- linkType: hard
-
-"@xtuc/ieee754@npm:^1.2.0":
- version: 1.2.0
- resolution: "@xtuc/ieee754@npm:1.2.0"
- checksum: 10/ab033b032927d77e2f9fa67accdf31b1ca7440974c21c9cfabc8349e10ca2817646171c4f23be98d0e31896d6c2c3462a074fe37752e523abc3e45c79254259c
- languageName: node
- linkType: hard
-
-"@xtuc/long@npm:4.2.2":
- version: 4.2.2
- resolution: "@xtuc/long@npm:4.2.2"
- checksum: 10/7217bae9fe240e0d804969e7b2af11cb04ec608837c78b56ca88831991b287e232a0b7fce8d548beaff42aaf0197ffa471d81be6ac4c4e53b0148025a2c076ec
- languageName: node
- linkType: hard
-
-"@zeitgeistpm/type-defs@npm:1.0.0":
- version: 1.0.0
- resolution: "@zeitgeistpm/type-defs@npm:1.0.0"
- checksum: 10/a32837a9085431280ab7c108f5ece28667564f2d368c05560c8e3df006b66be1722e7c4c2c4fdc16c009d254d2b83c5daf72e977625882906c44f12da854aa56
- languageName: node
- linkType: hard
-
-"@zeroio/type-definitions@npm:0.0.14":
- version: 0.0.14
- resolution: "@zeroio/type-definitions@npm:0.0.14"
- checksum: 10/0f21ffaa99cde5dbd897a585d771d05a33a7cc55f35135cfc8926df69ad8db755d9639bb4d4f1eb3378dadcd083a4bc15b2cee044e3435a299b81f77a2176e7e
- languageName: node
- linkType: hard
-
-"@zondax/ledger-js@npm:^1.2.0":
- version: 1.3.1
- resolution: "@zondax/ledger-js@npm:1.3.1"
- dependencies:
- "@ledgerhq/hw-transport": "npm:6.31.9"
- checksum: 10/d0354b61754fe4c57d38a6a2603d5d054af60ce4e7527733acc87e20a309890c314f2b8919e2be2a40a6b3e2d8ac7972d5bc9b895a68039237b43c1ff9e9c5ad
- languageName: node
- linkType: hard
-
-"@zondax/ledger-substrate@npm:1.1.1":
- version: 1.1.1
- resolution: "@zondax/ledger-substrate@npm:1.1.1"
- dependencies:
- "@ledgerhq/hw-transport": "npm:6.31.4"
- "@zondax/ledger-js": "npm:^1.2.0"
- axios: "npm:^1.8.4"
- checksum: 10/039ffef55b31870f82c6b0f20b518089ad9ce0295d695f880640cb586256adacd4a326c10157ccaf82e897abde7358f9e4e02c069dac672ec90881e21d250722
- languageName: node
- linkType: hard
-
-"@zxing/browser@npm:^0.1.5":
- version: 0.1.5
- resolution: "@zxing/browser@npm:0.1.5"
- dependencies:
- "@zxing/text-encoding": "npm:^0.9.0"
- peerDependencies:
- "@zxing/library": ^0.21.0
- dependenciesMeta:
- "@zxing/text-encoding":
- optional: true
- checksum: 10/13df1471dc93b1a54c11df00caebe529fb5e4435d5876e606da048697a039098f5650724710e92cef2db746dbf89b72d04791fd89c6b9a6cf1c1b841dc24cb32
- languageName: node
- linkType: hard
-
-"@zxing/library@npm:^0.21.2":
- version: 0.21.3
- resolution: "@zxing/library@npm:0.21.3"
- dependencies:
- "@zxing/text-encoding": "npm:~0.9.0"
- ts-custom-error: "npm:^3.2.1"
- dependenciesMeta:
- "@zxing/text-encoding":
- optional: true
- checksum: 10/867e7a9be38ea8636050ab5852440e012525c01cd8791448afd15b8ec3ca41de6594202e3f8c90b2d3677b381a6a186eab79e5a431f23d09eb7887cdec772772
- languageName: node
- linkType: hard
-
-"@zxing/text-encoding@npm:^0.9.0, @zxing/text-encoding@npm:~0.9.0":
- version: 0.9.0
- resolution: "@zxing/text-encoding@npm:0.9.0"
- checksum: 10/268e4ef64b8eaa32b990240bdfd1f7b3e2b501a6ed866a565f7c9747f04ac884fbe0537fe12bb05d9241b98fb111270c0fd0023ef0a02d23a6619b4589e98f6b
- languageName: node
- linkType: hard
-
-"abbrev@npm:^4.0.0":
- version: 4.0.0
- resolution: "abbrev@npm:4.0.0"
- checksum: 10/e2f0c6a6708ad738b3e8f50233f4800de31ad41a6cdc50e0cbe51b76fed69fd0213516d92c15ce1a9985fca71a14606a9be22bf00f8475a58987b9bfb671c582
- languageName: node
- linkType: hard
-
-"abitype@npm:0.7.1":
- version: 0.7.1
- resolution: "abitype@npm:0.7.1"
- peerDependencies:
- typescript: ">=4.9.4"
- zod: ^3 >=3.19.1
- peerDependenciesMeta:
- zod:
- optional: true
- checksum: 10/deee4a18c9c7218ab2e5e57e07e4cb3e2f3e785657be364d098ab0587cd552c4fbb41e1bdddbc6fa52387f51ebd181461fe70a13127cc77091655775fdfb18fe
- languageName: node
- linkType: hard
-
-"abort-controller@npm:^3.0.0":
- version: 3.0.0
- resolution: "abort-controller@npm:3.0.0"
- dependencies:
- event-target-shim: "npm:^5.0.0"
- checksum: 10/ed84af329f1828327798229578b4fe03a4dd2596ba304083ebd2252666bdc1d7647d66d0b18704477e1f8aa315f055944aa6e859afebd341f12d0a53c37b4b40
- languageName: node
- linkType: hard
-
-"abort-error@npm:^1.0.1":
- version: 1.0.1
- resolution: "abort-error@npm:1.0.1"
- checksum: 10/75a878035d478e7270ef99bd81012daae7914d66a417651976ab9e0cec562cb493366eafa6dfd844b7e49a50e3cef70883170b00329db58df507ed834af9dc8f
- languageName: node
- linkType: hard
-
-"accepts@npm:~1.3.4, accepts@npm:~1.3.8":
- version: 1.3.8
- resolution: "accepts@npm:1.3.8"
- dependencies:
- mime-types: "npm:~2.1.34"
- negotiator: "npm:0.6.3"
- checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6
- languageName: node
- linkType: hard
-
-"accessibility-developer-tools@npm:^2.11.0":
- version: 2.12.0
- resolution: "accessibility-developer-tools@npm:2.12.0"
- checksum: 10/fae37743e03300ebc3dfd474f57df62f4c2ad8bb0a8d91f45c21aaf29fa37043126b3cf9e0f5d00eb51496adee382ddd479c7247a6a8e834f7c70af423f669d5
- languageName: node
- linkType: hard
-
-"acorn-class-fields@npm:^0.3.7":
- version: 0.3.7
- resolution: "acorn-class-fields@npm:0.3.7"
- dependencies:
- acorn-private-class-elements: "npm:^0.2.7"
- peerDependencies:
- acorn: ^6 || ^7 || ^8
- checksum: 10/02151a4d3f985707529fefcf1388583ec7ae3c99a7aaaf9f50ffd301b73d02c6c4842e04a431853eaaabb8fee421e35df060447cc8080e226a520ceaa5295b52
- languageName: node
- linkType: hard
-
-"acorn-import-phases@npm:^1.0.3":
- version: 1.0.4
- resolution: "acorn-import-phases@npm:1.0.4"
- peerDependencies:
- acorn: ^8.14.0
- checksum: 10/471050ac7d9b61909c837b426de9eeef2958997f6277ad7dea88d5894fd9b3245d8ed4a225c2ca44f814dbb20688009db7a80e525e8196fc9e98c5285b66161d
- languageName: node
- linkType: hard
-
-"acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2":
- version: 5.3.2
- resolution: "acorn-jsx@npm:5.3.2"
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977
- languageName: node
- linkType: hard
-
-"acorn-private-class-elements@npm:^0.2.7":
- version: 0.2.7
- resolution: "acorn-private-class-elements@npm:0.2.7"
- peerDependencies:
- acorn: ^6.1.0 || ^7 || ^8
- checksum: 10/e4980847da236c56bb0ed87e38c89348d609701f2927e5db0757f4dbba1b773b459d8b98b4b80525ff34b24a5c2777f85e01ecd426a518a40ce8c6234a4d9486
- languageName: node
- linkType: hard
-
-"acorn-private-methods@npm:^0.3.3":
- version: 0.3.3
- resolution: "acorn-private-methods@npm:0.3.3"
- dependencies:
- acorn-private-class-elements: "npm:^0.2.7"
- peerDependencies:
- acorn: ^6 || ^7 || ^8
- checksum: 10/da692a68fb39020d0371e4d3c44c87780120b70b0751533c6f391a765df560a92b4a0914d5782cbd4fda58eda8bc4291bc0cb6a33b635486256ca63a1fb0bf13
- languageName: node
- linkType: hard
-
-"acorn-stage3@npm:^4.0.0":
- version: 4.0.0
- resolution: "acorn-stage3@npm:4.0.0"
- dependencies:
- acorn-class-fields: "npm:^0.3.7"
- acorn-private-methods: "npm:^0.3.3"
- acorn-static-class-features: "npm:^0.2.4"
- peerDependencies:
- acorn: ^7.4 || ^8
- checksum: 10/10c2322b6494a104ed212b97e9925b2d03b50e4f1e370ad50d9d5e9507f79092dc046802f13ca57ff681c91ef7c02e0f68469473431833603b79630d233f0476
- languageName: node
- linkType: hard
-
-"acorn-static-class-features@npm:^0.2.4":
- version: 0.2.4
- resolution: "acorn-static-class-features@npm:0.2.4"
- dependencies:
- acorn-private-class-elements: "npm:^0.2.7"
- peerDependencies:
- acorn: ^6.1.0 || ^7 || ^8
- checksum: 10/145ad623afc61f8417ce5cb6544d4c938099b313e59952eb50ca30b18c4a64ea3a30295c3063a599e90a8db03863606ca97873d52f93e1890e80bd9402ab3153
- languageName: node
- linkType: hard
-
-"acorn-walk@npm:^8.0.0":
- version: 8.3.4
- resolution: "acorn-walk@npm:8.3.4"
- dependencies:
- acorn: "npm:^8.11.0"
- checksum: 10/871386764e1451c637bb8ab9f76f4995d408057e9909be6fb5ad68537ae3375d85e6a6f170b98989f44ab3ff6c74ad120bc2779a3d577606e7a0cd2b4efcaf77
- languageName: node
- linkType: hard
-
-"acorn@npm:^5.2.1":
- version: 5.7.4
- resolution: "acorn@npm:5.7.4"
- bin:
- acorn: bin/acorn
- checksum: 10/97f2ae55e99aed81a7aa9039719c60283a66817fadb3152beb323ba6038824770512f807436e99090be38602f23bcbf6021867d86442616da471f1dfaca7c3d9
- languageName: node
- linkType: hard
-
-"acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.15.0, acorn@npm:^8.9.0":
- version: 8.15.0
- resolution: "acorn@npm:8.15.0"
- bin:
- acorn: bin/acorn
- checksum: 10/77f2de5051a631cf1729c090e5759148459cdb76b5f5c70f890503d629cf5052357b0ce783c0f976dd8a93c5150f59f6d18df1def3f502396a20f81282482fa4
- languageName: node
- linkType: hard
-
-"agent-base@npm:6":
- version: 6.0.2
- resolution: "agent-base@npm:6.0.2"
- dependencies:
- debug: "npm:4"
- checksum: 10/21fb903e0917e5cb16591b4d0ef6a028a54b83ac30cd1fca58dece3d4e0990512a8723f9f83130d88a41e2af8b1f7be1386fda3ea2d181bb1a62155e75e95e23
- languageName: node
- linkType: hard
-
-"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
- version: 7.1.4
- resolution: "agent-base@npm:7.1.4"
- checksum: 10/79bef167247789f955aaba113bae74bf64aa1e1acca4b1d6bb444bdf91d82c3e07e9451ef6a6e2e35e8f71a6f97ce33e3d855a5328eb9fad1bc3cc4cfd031ed8
- languageName: node
- linkType: hard
-
-"ajv-formats@npm:^2.1.1":
- version: 2.1.1
- resolution: "ajv-formats@npm:2.1.1"
- dependencies:
- ajv: "npm:^8.0.0"
- peerDependencies:
- ajv: ^8.0.0
- peerDependenciesMeta:
- ajv:
- optional: true
- checksum: 10/70c263ded219bf277ffd9127f793b625f10a46113b2e901e150da41931fcfd7f5592da6d66862f4449bb157ffe65867c3294a7df1d661cc232c4163d5a1718ed
- languageName: node
- linkType: hard
-
-"ajv-keywords@npm:^3.4.1":
- version: 3.5.2
- resolution: "ajv-keywords@npm:3.5.2"
- peerDependencies:
- ajv: ^6.9.1
- checksum: 10/d57c9d5bf8849bddcbd801b79bc3d2ddc736c2adb6b93a6a365429589dd7993ddbd5d37c6025ed6a7f89c27506b80131d5345c5b1fa6a97e40cd10a96bcd228c
- languageName: node
- linkType: hard
-
-"ajv-keywords@npm:^5.1.0":
- version: 5.1.0
- resolution: "ajv-keywords@npm:5.1.0"
- dependencies:
- fast-deep-equal: "npm:^3.1.3"
- peerDependencies:
- ajv: ^8.8.2
- checksum: 10/5021f96ab7ddd03a4005326bd06f45f448ebfbb0fe7018b1b70b6c28142fa68372bda2057359814b83fd0b2d4c8726c297f0a7557b15377be7b56ce5344533d8
- languageName: node
- linkType: hard
-
-"ajv@npm:^6.10.0, ajv@npm:^6.12.0, ajv@npm:^6.12.4":
- version: 6.12.6
- resolution: "ajv@npm:6.12.6"
- dependencies:
- fast-deep-equal: "npm:^3.1.1"
- fast-json-stable-stringify: "npm:^2.0.0"
- json-schema-traverse: "npm:^0.4.1"
- uri-js: "npm:^4.2.2"
- checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c
- languageName: node
- linkType: hard
-
-"ajv@npm:^8.0.0, ajv@npm:^8.9.0":
- version: 8.17.1
- resolution: "ajv@npm:8.17.1"
- dependencies:
- fast-deep-equal: "npm:^3.1.3"
- fast-uri: "npm:^3.0.1"
- json-schema-traverse: "npm:^1.0.0"
- require-from-string: "npm:^2.0.2"
- checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33
- languageName: node
- linkType: hard
-
-"amdefine@npm:>=0.0.4":
- version: 1.0.1
- resolution: "amdefine@npm:1.0.1"
- checksum: 10/517df65fc33d3ff14fe5c0057e041b03d603a2254dea7968b05dfbfa3041eb8430ea6729e305bc428c03fad03f162de91a4b256692d27d7b81d3ee691312cffe
- languageName: node
- linkType: hard
-
-"ansi-align@npm:^3.0.0":
- version: 3.0.1
- resolution: "ansi-align@npm:3.0.1"
- dependencies:
- string-width: "npm:^4.1.0"
- checksum: 10/4c7e8b6a10eaf18874ecee964b5db62ac86d0b9266ad4987b3a1efcb5d11a9e12c881ee40d14951833135a8966f10a3efe43f9c78286a6e632f53d85ad28b9c0
- languageName: node
- linkType: hard
-
-"ansi-escapes@npm:^4.2.1":
- version: 4.3.2
- resolution: "ansi-escapes@npm:4.3.2"
- dependencies:
- type-fest: "npm:^0.21.3"
- checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2
- languageName: node
- linkType: hard
-
-"ansi-html-community@npm:^0.0.8":
- version: 0.0.8
- resolution: "ansi-html-community@npm:0.0.8"
- bin:
- ansi-html: bin/ansi-html
- checksum: 10/08df3696720edacd001a8d53b197bb5728242c55484680117dab9f7633a6320e961a939bddd88ee5c71d4a64f3ddb49444d1c694bd0668adbb3f95ba114f2386
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^5.0.1":
- version: 5.0.1
- resolution: "ansi-regex@npm:5.0.1"
- checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^6.0.1":
- version: 6.2.2
- resolution: "ansi-regex@npm:6.2.2"
- checksum: 10/9b17ce2c6daecc75bcd5966b9ad672c23b184dc3ed9bf3c98a0702f0d2f736c15c10d461913568f2cf527a5e64291c7473358885dd493305c84a1cfed66ba94f
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^3.2.1":
- version: 3.2.1
- resolution: "ansi-styles@npm:3.2.1"
- dependencies:
- color-convert: "npm:^1.9.0"
- checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
- version: 4.3.0
- resolution: "ansi-styles@npm:4.3.0"
- dependencies:
- color-convert: "npm:^2.0.1"
- checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^5.0.0, ansi-styles@npm:^5.2.0":
- version: 5.2.0
- resolution: "ansi-styles@npm:5.2.0"
- checksum: 10/d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^6.1.0":
- version: 6.2.3
- resolution: "ansi-styles@npm:6.2.3"
- checksum: 10/c49dad7639f3e48859bd51824c93b9eb0db628afc243c51c3dd2410c4a15ede1a83881c6c7341aa2b159c4f90c11befb38f2ba848c07c66c9f9de4bcd7cb9f30
- languageName: node
- linkType: hard
-
-"any-promise@npm:^1.0.0, any-promise@npm:^1.1.0":
- version: 1.3.0
- resolution: "any-promise@npm:1.3.0"
- checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb
- languageName: node
- linkType: hard
-
-"anymatch@npm:^3.1.3, anymatch@npm:~3.1.2":
- version: 3.1.3
- resolution: "anymatch@npm:3.1.3"
- dependencies:
- normalize-path: "npm:^3.0.0"
- picomatch: "npm:^2.0.4"
- checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2
- languageName: node
- linkType: hard
-
-"app-builder-bin@npm:4.0.0":
- version: 4.0.0
- resolution: "app-builder-bin@npm:4.0.0"
- checksum: 10/5d401b2670acb381c76f96467320af0569748c66950adacc239ef85f5ac9d7b44e93c387ad3fea22c25d42ca9f6f6ccd53e827cdf9eb6b6cddd2091d88c5289d
- languageName: node
- linkType: hard
-
-"app-builder-lib@npm:24.10.0":
- version: 24.10.0
- resolution: "app-builder-lib@npm:24.10.0"
- dependencies:
- "@develar/schema-utils": "npm:~2.6.5"
- "@electron/notarize": "npm:2.1.0"
- "@electron/osx-sign": "npm:1.0.5"
- "@electron/universal": "npm:1.4.1"
- "@malept/flatpak-bundler": "npm:^0.4.0"
- "@types/fs-extra": "npm:9.0.13"
- async-exit-hook: "npm:^2.0.1"
- bluebird-lst: "npm:^1.0.9"
- builder-util: "npm:24.9.4"
- builder-util-runtime: "npm:9.2.3"
- chromium-pickle-js: "npm:^0.2.0"
- debug: "npm:^4.3.4"
- ejs: "npm:^3.1.8"
- electron-publish: "npm:24.9.4"
- form-data: "npm:^4.0.0"
- fs-extra: "npm:^10.1.0"
- hosted-git-info: "npm:^4.1.0"
- is-ci: "npm:^3.0.0"
- isbinaryfile: "npm:^5.0.0"
- js-yaml: "npm:^4.1.0"
- lazy-val: "npm:^1.0.5"
- minimatch: "npm:^5.1.1"
- read-config-file: "npm:6.3.2"
- sanitize-filename: "npm:^1.6.3"
- semver: "npm:^7.3.8"
- tar: "npm:^6.1.12"
- temp-file: "npm:^3.4.0"
- checksum: 10/8350e08488d13c239ae62d8b4e799d5017d186547538161f47ec6475a3b290152e644e01788f4e35ba0b5bebdf4ef5118450fb52e76bc1813eb81f3db8025976
- languageName: node
- linkType: hard
-
-"app-module-path@npm:^2.2.0":
- version: 2.2.0
- resolution: "app-module-path@npm:2.2.0"
- checksum: 10/9ed8c6ce6247a6b5d556039f29b4610869237bbb5b8f3d905b22bd2d314c30efcc0fb70c2626d7461ecc52ec7edec9908f660d0938d2bea5b8cfc6868a28806f
- languageName: node
- linkType: hard
-
-"application-config-path@npm:^0.1.0":
- version: 0.1.1
- resolution: "application-config-path@npm:0.1.1"
- checksum: 10/380f4c49585511813526632c8366318f52941526dbb284a887e5af328caa76424a056795ab18f03f5009197f2dea0ef01a8a9812d85724f26d2f5cf9bf9bf1f9
- languageName: node
- linkType: hard
-
-"application-config@npm:^2.0.0":
- version: 2.0.0
- resolution: "application-config@npm:2.0.0"
- dependencies:
- application-config-path: "npm:^0.1.0"
- load-json-file: "npm:^6.2.0"
- write-json-file: "npm:^4.2.0"
- checksum: 10/d1f8d2388cb7b97c792a9f795610cfe5869b976a950dff96070c0f28ac78421d074a5f74195f890dcd45437fa6e367a49acb5d796bd436d9f71b2bace6a2a741
- languageName: node
- linkType: hard
-
-"aproba@npm:^1.0.3 || ^2.0.0":
- version: 2.1.0
- resolution: "aproba@npm:2.1.0"
- checksum: 10/cb0e335ac398027d43bf4a139337363e161fa10a642291f7ad5068a2e24797be58270775047cba901a7c1ce945a05c7535b13f6457993517cd7dca40c9b00a00
- languageName: node
- linkType: hard
-
-"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2":
- version: 5.0.2
- resolution: "archiver-utils@npm:5.0.2"
- dependencies:
- glob: "npm:^10.0.0"
- graceful-fs: "npm:^4.2.0"
- is-stream: "npm:^2.0.1"
- lazystream: "npm:^1.0.0"
- lodash: "npm:^4.17.15"
- normalize-path: "npm:^3.0.0"
- readable-stream: "npm:^4.0.0"
- checksum: 10/9dde4aa3f0cb1bdfe0b3d4c969f82e6cca9ae76338b7fee6f0071a14a2a38c0cdd1c41ecd3e362466585aa6cc5d07e9e435abea8c94fd9c7ace35f184abef9e4
- languageName: node
- linkType: hard
-
-"archiver@npm:^7.0.1":
- version: 7.0.1
- resolution: "archiver@npm:7.0.1"
- dependencies:
- archiver-utils: "npm:^5.0.2"
- async: "npm:^3.2.4"
- buffer-crc32: "npm:^1.0.0"
- readable-stream: "npm:^4.0.0"
- readdir-glob: "npm:^1.1.2"
- tar-stream: "npm:^3.0.0"
- zip-stream: "npm:^6.0.1"
- checksum: 10/81c6102db99d7ffd5cb2aed02a678f551c6603991a059ca66ef59249942b835a651a3d3b5240af4f8bec4e61e13790357c9d1ad4a99982bd2cc4149575c31d67
- languageName: node
- linkType: hard
-
-"argparse@npm:^1.0.7":
- version: 1.0.10
- resolution: "argparse@npm:1.0.10"
- dependencies:
- sprintf-js: "npm:~1.0.2"
- checksum: 10/c6a621343a553ff3779390bb5ee9c2263d6643ebcd7843227bdde6cc7adbed796eb5540ca98db19e3fd7b4714e1faa51551f8849b268bb62df27ddb15cbcd91e
- languageName: node
- linkType: hard
-
-"argparse@npm:^2.0.1":
- version: 2.0.1
- resolution: "argparse@npm:2.0.1"
- checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef
- languageName: node
- linkType: hard
-
-"aria-query@npm:5.1.3":
- version: 5.1.3
- resolution: "aria-query@npm:5.1.3"
- dependencies:
- deep-equal: "npm:^2.0.5"
- checksum: 10/e5da608a7c4954bfece2d879342b6c218b6b207e2d9e5af270b5e38ef8418f02d122afdc948b68e32649b849a38377785252059090d66fa8081da95d1609c0d2
- languageName: node
- linkType: hard
-
-"aria-query@npm:^5.0.0":
- version: 5.3.2
- resolution: "aria-query@npm:5.3.2"
- checksum: 10/b2fe9bc98bd401bc322ccb99717c1ae2aaf53ea0d468d6e7aebdc02fac736e4a99b46971ee05b783b08ade23c675b2d8b60e4a1222a95f6e27bc4d2a0bfdcc03
- languageName: node
- linkType: hard
-
-"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2":
- version: 1.0.2
- resolution: "array-buffer-byte-length@npm:1.0.2"
- dependencies:
- call-bound: "npm:^1.0.3"
- is-array-buffer: "npm:^3.0.5"
- checksum: 10/0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63
- languageName: node
- linkType: hard
-
-"array-flatten@npm:1.1.1":
- version: 1.1.1
- resolution: "array-flatten@npm:1.1.1"
- checksum: 10/e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb
- languageName: node
- linkType: hard
-
-"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8, array-includes@npm:^3.1.9":
- version: 3.1.9
- resolution: "array-includes@npm:3.1.9"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.24.0"
- es-object-atoms: "npm:^1.1.1"
- get-intrinsic: "npm:^1.3.0"
- is-string: "npm:^1.1.1"
- math-intrinsics: "npm:^1.1.0"
- checksum: 10/8bfe9a58df74f326b4a76b04ee05c13d871759e888b4ee8f013145297cf5eb3c02cfa216067ebdaac5d74eb9763ac5cad77cdf2773b8ab475833701e032173aa
- languageName: node
- linkType: hard
-
-"array-union@npm:^2.1.0":
- version: 2.1.0
- resolution: "array-union@npm:2.1.0"
- checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d
- languageName: node
- linkType: hard
-
-"array.prototype.findlast@npm:^1.2.5":
- version: 1.2.5
- resolution: "array.prototype.findlast@npm:1.2.5"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.2"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.0.0"
- es-shim-unscopables: "npm:^1.0.2"
- checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31
- languageName: node
- linkType: hard
-
-"array.prototype.findlastindex@npm:^1.2.6":
- version: 1.2.6
- resolution: "array.prototype.findlastindex@npm:1.2.6"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.9"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.1.1"
- es-shim-unscopables: "npm:^1.1.0"
- checksum: 10/5ddb6420e820bef6ddfdcc08ce780d0fd5e627e97457919c27e32359916de5a11ce12f7c55073555e503856618eaaa70845d6ca11dcba724766f38eb1c22f7a2
- languageName: node
- linkType: hard
-
-"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.3":
- version: 1.3.3
- resolution: "array.prototype.flat@npm:1.3.3"
- dependencies:
- call-bind: "npm:^1.0.8"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.5"
- es-shim-unscopables: "npm:^1.0.2"
- checksum: 10/f9b992fa0775d8f7c97abc91eb7f7b2f0ed8430dd9aeb9fdc2967ac4760cdd7fc2ef7ead6528fef40c7261e4d790e117808ce0d3e7e89e91514d4963a531cd01
- languageName: node
- linkType: hard
-
-"array.prototype.flatmap@npm:^1.3.3":
- version: 1.3.3
- resolution: "array.prototype.flatmap@npm:1.3.3"
- dependencies:
- call-bind: "npm:^1.0.8"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.5"
- es-shim-unscopables: "npm:^1.0.2"
- checksum: 10/473534573aa4b37b1d80705d0ce642f5933cccf5617c9f3e8a56686e9815ba93d469138e86a1f25d2fe8af999c3d24f54d703ec1fc2db2e6778d46d0f4ac951e
- languageName: node
- linkType: hard
-
-"array.prototype.tosorted@npm:^1.1.4":
- version: 1.1.4
- resolution: "array.prototype.tosorted@npm:1.1.4"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.3"
- es-errors: "npm:^1.3.0"
- es-shim-unscopables: "npm:^1.0.2"
- checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d
- languageName: node
- linkType: hard
-
-"arraybuffer.prototype.slice@npm:^1.0.4":
- version: 1.0.4
- resolution: "arraybuffer.prototype.slice@npm:1.0.4"
- dependencies:
- array-buffer-byte-length: "npm:^1.0.1"
- call-bind: "npm:^1.0.8"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.5"
- es-errors: "npm:^1.3.0"
- get-intrinsic: "npm:^1.2.6"
- is-array-buffer: "npm:^3.0.4"
- checksum: 10/4821ebdfe7d699f910c7f09bc9fa996f09b96b80bccb4f5dd4b59deae582f6ad6e505ecef6376f8beac1eda06df2dbc89b70e82835d104d6fcabd33c1aed1ae9
- languageName: node
- linkType: hard
-
-"arrify@npm:^1.0.1":
- version: 1.0.1
- resolution: "arrify@npm:1.0.1"
- checksum: 10/745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7
- languageName: node
- linkType: hard
-
-"asn1.js@npm:^4.10.1":
- version: 4.10.1
- resolution: "asn1.js@npm:4.10.1"
- dependencies:
- bn.js: "npm:^4.0.0"
- inherits: "npm:^2.0.1"
- minimalistic-assert: "npm:^1.0.0"
- checksum: 10/5a02104b9ba167917c786a3fdac9840a057d29e6b609250e6af924d0529ead1a32417da13eec809cadea8f991eb67782196f3df427c5b4f30eaf22044fc64fda
- languageName: node
- linkType: hard
-
-"asn1@npm:^0.2.6":
- version: 0.2.6
- resolution: "asn1@npm:0.2.6"
- dependencies:
- safer-buffer: "npm:~2.1.0"
- checksum: 10/cf629291fee6c1a6f530549939433ebf32200d7849f38b810ff26ee74235e845c0c12b2ed0f1607ac17383d19b219b69cefa009b920dab57924c5c544e495078
- languageName: node
- linkType: hard
-
-"assert-plus@npm:^1.0.0":
- version: 1.0.0
- resolution: "assert-plus@npm:1.0.0"
- checksum: 10/f4f991ae2df849cc678b1afba52d512a7cbf0d09613ba111e72255409ff9158550c775162a47b12d015d1b82b3c273e8e25df0e4783d3ddb008a293486d00a07
- languageName: node
- linkType: hard
-
-"assert@npm:^2.1.0":
- version: 2.1.0
- resolution: "assert@npm:2.1.0"
- dependencies:
- call-bind: "npm:^1.0.2"
- is-nan: "npm:^1.3.2"
- object-is: "npm:^1.1.5"
- object.assign: "npm:^4.1.4"
- util: "npm:^0.12.5"
- checksum: 10/6b9d813c8eef1c0ac13feac5553972e4bd180ae16000d4eb5c0ded2489188737c75a5aacefc97a985008b37502f62fe1bad34da1a7481a54bbfabec3964c8aa7
- languageName: node
- linkType: hard
-
-"ast-module-types@npm:^2.7.1":
- version: 2.7.1
- resolution: "ast-module-types@npm:2.7.1"
- checksum: 10/f5ff6a8aec1ac93533bb5af6ab3921b7eb9f91032f6fdd7cb08e6917005649dc8d5dcdfc98016b7125450db6028da22ae6990275e0ecd6d1fcfe7f1cf5c83b8a
- languageName: node
- linkType: hard
-
-"ast-module-types@npm:^3.0.0":
- version: 3.0.0
- resolution: "ast-module-types@npm:3.0.0"
- checksum: 10/9cf2e1c566ff88347762ba177dbe8a8bd3e59f366052d45c0a3b1afde2db2228a1c56f05a6e4d7fbfa219de26ae64831a138ff7533269310b13bb9e3a0e84c9f
- languageName: node
- linkType: hard
-
-"ast-module-types@npm:^4.0.0":
- version: 4.0.0
- resolution: "ast-module-types@npm:4.0.0"
- checksum: 10/06cf93519ef353bb580d90d87f0a9501f39ef99f79784e5291e59e30764c07b383018c153ff4020e9d1409030e9affd438dfca76c28d38400ba729addba8a54a
- languageName: node
- linkType: hard
-
-"ast-types@npm:0.9.6":
- version: 0.9.6
- resolution: "ast-types@npm:0.9.6"
- checksum: 10/d1c5d590a2cd5f90c4be6e5389c273062ba61291998b9c399e48ce8ef06339b42afd426ae1b6fa73505bad95ef6250abbdc1cf970649941212c73c71bfac003d
- languageName: node
- linkType: hard
-
-"astral-regex@npm:^2.0.0":
- version: 2.0.0
- resolution: "astral-regex@npm:2.0.0"
- checksum: 10/876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766
- languageName: node
- linkType: hard
-
-"astring@npm:^1.8.5":
- version: 1.9.0
- resolution: "astring@npm:1.9.0"
- bin:
- astring: bin/astring
- checksum: 10/ee88f71d8534557b27993d6d035ae85d78488d8dbc6429cd8e8fdfcafec3c65928a3bdc518cf69767a1298d3361490559a4819cd4b314007edae1e94cf1f9e4c
- languageName: node
- linkType: hard
-
-"async-exit-hook@npm:^2.0.1":
- version: 2.0.1
- resolution: "async-exit-hook@npm:2.0.1"
- checksum: 10/fffabbe5ef194ec8283efed48eaf8f4b7982d547de6d4cf7aadf83c8690f0f7929ad01b7cb5de99935ea8f3deb2c21fd009892d8215a43b5a2dcc55c04d42c9f
- languageName: node
- linkType: hard
-
-"async-function@npm:^1.0.0":
- version: 1.0.0
- resolution: "async-function@npm:1.0.0"
- checksum: 10/1a09379937d846f0ce7614e75071c12826945d4e417db634156bf0e4673c495989302f52186dfa9767a1d9181794554717badd193ca2bbab046ef1da741d8efd
- languageName: node
- linkType: hard
-
-"async-generator-function@npm:^1.0.0":
- version: 1.0.0
- resolution: "async-generator-function@npm:1.0.0"
- checksum: 10/3d49e7acbeee9e84537f4cb0e0f91893df8eba976759875ae8ee9e3d3c82f6ecdebdb347c2fad9926b92596d93cdfc78ecc988bcdf407e40433e8e8e6fe5d78e
- languageName: node
- linkType: hard
-
-"async-lock@npm:^1.4.1":
- version: 1.4.1
- resolution: "async-lock@npm:1.4.1"
- checksum: 10/80d55ac95f920e880a865968b799963014f6d987dd790dd08173fae6e1af509d8cd0ab45a25daaca82e3ef8e7c939f5d128cd1facfcc5c647da8ac2409e20ef9
- languageName: node
- linkType: hard
-
-"async@npm:^3.2.0, async@npm:^3.2.4, async@npm:^3.2.6":
- version: 3.2.6
- resolution: "async@npm:3.2.6"
- checksum: 10/cb6e0561a3c01c4b56a799cc8bab6ea5fef45f069ab32500b6e19508db270ef2dffa55e5aed5865c5526e9907b1f8be61b27530823b411ffafb5e1538c86c368
- languageName: node
- linkType: hard
-
-"asynckit@npm:^0.4.0":
- version: 0.4.0
- resolution: "asynckit@npm:0.4.0"
- checksum: 10/3ce727cbc78f69d6a4722517a58ee926c8c21083633b1d3fdf66fd688f6c127a53a592141bd4866f9b63240a86e9d8e974b13919450bd17fa33c2d22c4558ad8
- languageName: node
- linkType: hard
-
-"at-least-node@npm:^1.0.0":
- version: 1.0.0
- resolution: "at-least-node@npm:1.0.0"
- checksum: 10/463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e
- languageName: node
- linkType: hard
-
-"atomic-sleep@npm:^1.0.0":
- version: 1.0.0
- resolution: "atomic-sleep@npm:1.0.0"
- checksum: 10/3ab6d2cf46b31394b4607e935ec5c1c3c4f60f3e30f0913d35ea74b51b3585e84f590d09e58067f11762eec71c87d25314ce859030983dc0e4397eed21daa12e
- languageName: node
- linkType: hard
-
-"attr-accept@npm:^2.2.4":
- version: 2.2.5
- resolution: "attr-accept@npm:2.2.5"
- checksum: 10/474b1c53e62c5b881c745d1f098196f190c8b493245e95d4b0fea9298d3acb56f551868fc12806885277e55e9d8ad3c5963e92d93456f4e4081dfc5190977bfd
- languageName: node
- linkType: hard
-
-"available-typed-arrays@npm:^1.0.7":
- version: 1.0.7
- resolution: "available-typed-arrays@npm:1.0.7"
- dependencies:
- possible-typed-array-names: "npm:^1.0.0"
- checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab
- languageName: node
- linkType: hard
-
-"axios@npm:^0.21.1":
- version: 0.21.4
- resolution: "axios@npm:0.21.4"
- dependencies:
- follow-redirects: "npm:^1.14.0"
- checksum: 10/da644592cb6f8f9f8c64fdabd7e1396d6769d7a4c1ea5f8ae8beb5c2eb90a823e3a574352b0b934ac62edc762c0f52647753dc54f7d07279127a7e5c4cd20272
- languageName: node
- linkType: hard
-
-"axios@npm:^1.6.2, axios@npm:^1.8.4":
- version: 1.13.2
- resolution: "axios@npm:1.13.2"
- dependencies:
- follow-redirects: "npm:^1.15.6"
- form-data: "npm:^4.0.4"
- proxy-from-env: "npm:^1.1.0"
- checksum: 10/ae4e06dcd18289f2fd18179256d550d27f9a53ecb2f9c59f2ccc4efd1d7151839ba8c3e0fb533dac793e4a59a576ca8689a19244dce5c396680837674a47a867
- languageName: node
- linkType: hard
-
-"b4a@npm:^1.6.4":
- version: 1.7.3
- resolution: "b4a@npm:1.7.3"
- peerDependencies:
- react-native-b4a: "*"
- peerDependenciesMeta:
- react-native-b4a:
- optional: true
- checksum: 10/048ddd0eeec6a75e6f8dee07d52354e759032f0ef678b556e05bf5a137d7a4102002cadb953b3fb37a635995a1013875d715d115dbafaf12bcad6528d2166054
- languageName: node
- linkType: hard
-
-"bail@npm:^2.0.0":
- version: 2.0.2
- resolution: "bail@npm:2.0.2"
- checksum: 10/aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^1.0.0":
- version: 1.0.2
- resolution: "balanced-match@npm:1.0.2"
- checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
- languageName: node
- linkType: hard
-
-"bare-events@npm:^2.5.4, bare-events@npm:^2.7.0":
- version: 2.8.2
- resolution: "bare-events@npm:2.8.2"
- peerDependencies:
- bare-abort-controller: "*"
- peerDependenciesMeta:
- bare-abort-controller:
- optional: true
- checksum: 10/f31848ea2f5627c3a50aadfc17e518a602629f7a6671da1352975cc6c8a520441fcc9d93c0a21f8f95de65b1a5133fcd5f766d312f3d5a326dde4fe7d2fc575f
- languageName: node
- linkType: hard
-
-"bare-fs@npm:^4.0.1":
- version: 4.5.2
- resolution: "bare-fs@npm:4.5.2"
- dependencies:
- bare-events: "npm:^2.5.4"
- bare-path: "npm:^3.0.0"
- bare-stream: "npm:^2.6.4"
- bare-url: "npm:^2.2.2"
- fast-fifo: "npm:^1.3.2"
- peerDependencies:
- bare-buffer: "*"
- peerDependenciesMeta:
- bare-buffer:
- optional: true
- checksum: 10/d544cb23e954d474b8301220a84545a22dec0023c8510dd440e18f361792a59353ae9e4bd4d5a9ee8696c976db696c3a19f91cf7adddeb856ba602dbf17c2683
- languageName: node
- linkType: hard
-
-"bare-os@npm:^3.0.1":
- version: 3.6.2
- resolution: "bare-os@npm:3.6.2"
- checksum: 10/11e127cdce86444be2039a28f1e25a5635f3e4ada09aeb35b33d524766b51c5f71db3dc1e8d8d88018ea5255e9f6663a55174960ca45f002132d7808b9b34e29
- languageName: node
- linkType: hard
-
-"bare-path@npm:^3.0.0":
- version: 3.0.0
- resolution: "bare-path@npm:3.0.0"
- dependencies:
- bare-os: "npm:^3.0.1"
- checksum: 10/712d90e9cd8c3263cc11b0e0d386d1531a452706d7840c081ee586b34b00d72544e65df7a40013d47c1b177277495225deeede65cb2984db88a979cb65aaa2ff
- languageName: node
- linkType: hard
-
-"bare-stream@npm:^2.6.4":
- version: 2.7.0
- resolution: "bare-stream@npm:2.7.0"
- dependencies:
- streamx: "npm:^2.21.0"
- peerDependencies:
- bare-buffer: "*"
- bare-events: "*"
- peerDependenciesMeta:
- bare-buffer:
- optional: true
- bare-events:
- optional: true
- checksum: 10/fe8f6e5a8e6d66e9210b4810060e8a25c6e78f9a8ee230c7dd2083b3ad48a79b1993e98eecc8ebd7890b336c66796da457aa8a2253bbb7a31e0e3a0f06bb1f5e
- languageName: node
- linkType: hard
-
-"bare-url@npm:^2.2.2":
- version: 2.3.2
- resolution: "bare-url@npm:2.3.2"
- dependencies:
- bare-path: "npm:^3.0.0"
- checksum: 10/aa203d79e2dafdb47a4e3bee398cb7db5c7eabcf0b3adf1e1530a21ac69806d1ca05b3343666e3aeda9fc3568c995272deea8ae3cead77ad00f66a7e415de0ef
- languageName: node
- linkType: hard
-
-"base-path-converter@npm:^1.0.2":
- version: 1.0.2
- resolution: "base-path-converter@npm:1.0.2"
- checksum: 10/dc17bc8fd480e844b1fa496dc4c2ae0b29e70d144aae984f750aae52b7cfb691d43f43bf2c67f7220bdaf787284788923c792ca2840e62e716887b21011c53e5
- languageName: node
- linkType: hard
-
-"base-x@npm:^3.0.2, base-x@npm:^3.0.8":
- version: 3.0.11
- resolution: "base-x@npm:3.0.11"
- dependencies:
- safe-buffer: "npm:^5.0.1"
- checksum: 10/c2e3c443fd07cb9b9d3e179a9e9c581daa31881005841fe8d6a834e534505890fedf03465ccf14512da60e3f7be00fe66167806b159ba076d2c03952ae7460c4
- languageName: node
- linkType: hard
-
-"base62@npm:^1.1.0":
- version: 1.2.8
- resolution: "base62@npm:1.2.8"
- checksum: 10/72a2205d84566820cdbcb8ba907dca1801ee99cc3cdc86fc81409b2f3de188a434b04954f5f86702c8f436b70826cae9ddfb4ca292e5c10e0554ec4ad9c5318d
- languageName: node
- linkType: hard
-
-"base64-js@npm:^1.3.1, base64-js@npm:^1.5.1":
- version: 1.5.1
- resolution: "base64-js@npm:1.5.1"
- checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005
- languageName: node
- linkType: hard
-
-"baseline-browser-mapping@npm:^2.9.0":
- version: 2.9.13
- resolution: "baseline-browser-mapping@npm:2.9.13"
- bin:
- baseline-browser-mapping: dist/cli.js
- checksum: 10/304fcd0668941aabf9cf59e7852481767ed9ca9f6e4355afe7e4af2008eab14cd55676bd9078226f24895b5225c28693a91c59c561b36c3baae7262ad0e56f26
- languageName: node
- linkType: hard
-
-"batch@npm:0.6.1":
- version: 0.6.1
- resolution: "batch@npm:0.6.1"
- checksum: 10/61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f
- languageName: node
- linkType: hard
-
-"bcrypt-pbkdf@npm:^1.0.2":
- version: 1.0.2
- resolution: "bcrypt-pbkdf@npm:1.0.2"
- dependencies:
- tweetnacl: "npm:^0.14.3"
- checksum: 10/13a4cde058250dbf1fa77a4f1b9a07d32ae2e3b9e28e88a0c7a1827835bc3482f3e478c4a0cfd4da6ff0c46dae07da1061123a995372b32cc563d9975f975404
- languageName: node
- linkType: hard
-
-"before-after-hook@npm:^2.2.0":
- version: 2.2.3
- resolution: "before-after-hook@npm:2.2.3"
- checksum: 10/e676f769dbc4abcf4b3317db2fd2badb4a92c0710e0a7da12cf14b59c3482d4febf835ad7de7874499060fd4e13adf0191628e504728b3c5bb4ec7a878c09940
- languageName: node
- linkType: hard
-
-"binary-extensions@npm:^2.0.0":
- version: 2.3.0
- resolution: "binary-extensions@npm:2.3.0"
- checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98
- languageName: node
- linkType: hard
-
-"bindings@npm:^1.5.0":
- version: 1.5.0
- resolution: "bindings@npm:1.5.0"
- dependencies:
- file-uri-to-path: "npm:1.0.0"
- checksum: 10/593d5ae975ffba15fbbb4788fe5abd1e125afbab849ab967ab43691d27d6483751805d98cb92f7ac24a2439a8a8678cd0131c535d5d63de84e383b0ce2786133
- languageName: node
- linkType: hard
-
-"bip66@npm:^1.1.5":
- version: 1.1.5
- resolution: "bip66@npm:1.1.5"
- dependencies:
- safe-buffer: "npm:^5.0.1"
- checksum: 10/6257e90ff2149aa08740ff4009730c1bceb1a3456571d3006a36b39f30044f2973e05f043ea6977046d6ab66e4a8d6f5c9785094f8317f4ff546a325baece1ab
- languageName: node
- linkType: hard
-
-"bl@npm:^4.0.3, bl@npm:^4.1.0":
- version: 4.1.0
- resolution: "bl@npm:4.1.0"
- dependencies:
- buffer: "npm:^5.5.0"
- inherits: "npm:^2.0.4"
- readable-stream: "npm:^3.4.0"
- checksum: 10/b7904e66ed0bdfc813c06ea6c3e35eafecb104369dbf5356d0f416af90c1546de3b74e5b63506f0629acf5e16a6f87c3798f16233dcff086e9129383aa02ab55
- languageName: node
- linkType: hard
-
-"bl@npm:^5.0.0":
- version: 5.1.0
- resolution: "bl@npm:5.1.0"
- dependencies:
- buffer: "npm:^6.0.3"
- inherits: "npm:^2.0.4"
- readable-stream: "npm:^3.4.0"
- checksum: 10/0340d3d70def4213cd9cbcd8592f7c5922d3668e7b231286c354613fac4a8411ad373cff26e06162da7423035bbd5caafce3e140a5f397be72fcd1e9d86f1179
- languageName: node
- linkType: hard
-
-"blakejs@npm:^1.1.1":
- version: 1.2.1
- resolution: "blakejs@npm:1.2.1"
- checksum: 10/0638b1bd058b21892633929c43005aa6a4cc4b2ac5b338a146c3c076622f1b360795bd7a4d1f077c9b01863ed2df0c1504a81c5b520d164179120434847e6cd7
- languageName: node
- linkType: hard
-
-"bluebird-lst@npm:^1.0.9":
- version: 1.0.9
- resolution: "bluebird-lst@npm:1.0.9"
- dependencies:
- bluebird: "npm:^3.5.5"
- checksum: 10/9c06c4b2539ac03dca757b25b1381ae6d316bed24103c92e9f37a97cef00fec730240dd730b8bea73eb6a96ee34f2508652b4987ada69e6dca0267fdc7e72da4
- languageName: node
- linkType: hard
-
-"bluebird@npm:^3.5.5":
- version: 3.7.2
- resolution: "bluebird@npm:3.7.2"
- checksum: 10/007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7
- languageName: node
- linkType: hard
-
-"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9, bn.js@npm:^4.12.0":
- version: 4.12.2
- resolution: "bn.js@npm:4.12.2"
- checksum: 10/5803983405c087443e0e6c9bb5d0bc863d9f987d77e710f81b14c55616494f5a274e1650ee892531acb3529d52c0e0ea48aa12d2873dd80a75dde9d73a2ec518
- languageName: node
- linkType: hard
-
-"bn.js@npm:^5.2.0, bn.js@npm:^5.2.1, bn.js@npm:^5.2.2":
- version: 5.2.2
- resolution: "bn.js@npm:5.2.2"
- checksum: 10/51ebb2df83b33e5d8581165206e260d5e9c873752954616e5bf3758952b84d7399a9c6d00852815a0aeefb1150a7f34451b62d4287342d457fa432eee869e83e
- languageName: node
- linkType: hard
-
-"body-parser@npm:~1.20.3":
- version: 1.20.4
- resolution: "body-parser@npm:1.20.4"
- dependencies:
- bytes: "npm:~3.1.2"
- content-type: "npm:~1.0.5"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:~1.2.0"
- http-errors: "npm:~2.0.1"
- iconv-lite: "npm:~0.4.24"
- on-finished: "npm:~2.4.1"
- qs: "npm:~6.14.0"
- raw-body: "npm:~2.5.3"
- type-is: "npm:~1.6.18"
- unpipe: "npm:~1.0.0"
- checksum: 10/ff67e28d3f426707be8697a75fdf8d564dc50c341b41f054264d8ab6e2924e519c7ce8acc9d0de05328fdc41e1d9f3f200aec9c1cfb1867d6b676a410d97c689
- languageName: node
- linkType: hard
-
-"bonjour-service@npm:^1.0.11":
- version: 1.3.0
- resolution: "bonjour-service@npm:1.3.0"
- dependencies:
- fast-deep-equal: "npm:^3.1.3"
- multicast-dns: "npm:^7.2.5"
- checksum: 10/63d516d88f15fa4b89e247e6ff7d81c21a3ef5ed035b0b043c2b38e0c839f54f4ce58fbf9b7668027bf538ac86de366939dbb55cca63930f74eeea1e278c9585
- languageName: node
- linkType: hard
-
-"boolbase@npm:^1.0.0":
- version: 1.0.0
- resolution: "boolbase@npm:1.0.0"
- checksum: 10/3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0
- languageName: node
- linkType: hard
-
-"boolean@npm:^3.0.1":
- version: 3.2.0
- resolution: "boolean@npm:3.2.0"
- checksum: 10/d28a49dcaeef7fe10cf9fdf488214d3859f07350be8f5caa0c73ec621baf20650e5da6523262e5ce9221909519d4261c16d8430a5bf307fee9ef0e170cdb29f3
- languageName: node
- linkType: hard
-
-"boxen@npm:^5.0.0":
- version: 5.1.2
- resolution: "boxen@npm:5.1.2"
- dependencies:
- ansi-align: "npm:^3.0.0"
- camelcase: "npm:^6.2.0"
- chalk: "npm:^4.1.0"
- cli-boxes: "npm:^2.2.1"
- string-width: "npm:^4.2.2"
- type-fest: "npm:^0.20.2"
- widest-line: "npm:^3.1.0"
- wrap-ansi: "npm:^7.0.0"
- checksum: 10/bc3d3d88d77dc8cabb0811844acdbd4805e8ca8011222345330817737042bf6f86d93eb74a3f7e0cab634e64ef69db03cf52b480761ed90a965de0c8ff1bea8c
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^1.1.7":
- version: 1.1.12
- resolution: "brace-expansion@npm:1.1.12"
- dependencies:
- balanced-match: "npm:^1.0.0"
- concat-map: "npm:0.0.1"
- checksum: 10/12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^2.0.1":
- version: 2.0.2
- resolution: "brace-expansion@npm:2.0.2"
- dependencies:
- balanced-match: "npm:^1.0.0"
- checksum: 10/01dff195e3646bc4b0d27b63d9bab84d2ebc06121ff5013ad6e5356daa5a9d6b60fa26cf73c74797f2dc3fbec112af13578d51f75228c1112b26c790a87b0488
- languageName: node
- linkType: hard
-
-"braces@npm:^3.0.3, braces@npm:~3.0.2":
- version: 3.0.3
- resolution: "braces@npm:3.0.3"
- dependencies:
- fill-range: "npm:^7.1.1"
- checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6
- languageName: node
- linkType: hard
-
-"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
- version: 1.1.0
- resolution: "brorand@npm:1.1.0"
- checksum: 10/8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be
- languageName: node
- linkType: hard
-
-"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.0.6, browserify-aes@npm:^1.2.0":
- version: 1.2.0
- resolution: "browserify-aes@npm:1.2.0"
- dependencies:
- buffer-xor: "npm:^1.0.3"
- cipher-base: "npm:^1.0.0"
- create-hash: "npm:^1.1.0"
- evp_bytestokey: "npm:^1.0.3"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- checksum: 10/2813058f74e083a00450b11ea9d5d1f072de7bf0133f5d122d4ff7b849bece56d52b9c51ad0db0fad21c0bc4e8272fd5196114bbe7b94a9b7feb0f9fbb33a3bf
- languageName: node
- linkType: hard
-
-"browserify-cipher@npm:^1.0.1":
- version: 1.0.1
- resolution: "browserify-cipher@npm:1.0.1"
- dependencies:
- browserify-aes: "npm:^1.0.4"
- browserify-des: "npm:^1.0.0"
- evp_bytestokey: "npm:^1.0.0"
- checksum: 10/2d8500acf1ee535e6bebe808f7a20e4c3a9e2ed1a6885fff1facbfd201ac013ef030422bec65ca9ece8ffe82b03ca580421463f9c45af6c8415fd629f4118c13
- languageName: node
- linkType: hard
-
-"browserify-des@npm:^1.0.0":
- version: 1.0.2
- resolution: "browserify-des@npm:1.0.2"
- dependencies:
- cipher-base: "npm:^1.0.1"
- des.js: "npm:^1.0.0"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10/2fd9018e598b1b25e002abaf656d46d8e0f2ee2666ff18852d37e5c3d0e47701d6824256b060fac395420d56a0c49c2b0d40a194e6fbd837bfdd893e7eb5ade4
- languageName: node
- linkType: hard
-
-"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.1":
- version: 4.1.1
- resolution: "browserify-rsa@npm:4.1.1"
- dependencies:
- bn.js: "npm:^5.2.1"
- randombytes: "npm:^2.1.0"
- safe-buffer: "npm:^5.2.1"
- checksum: 10/62ae0da60e49e8d5dd3b0922119b6edee94ebfa3a184211c804024b3a75f9dab31a1d124cc0545ed050e273f0325c2fd7aba6a51e44ba6f726fceae3210ddade
- languageName: node
- linkType: hard
-
-"browserify-sign@npm:^4.2.3":
- version: 4.2.5
- resolution: "browserify-sign@npm:4.2.5"
- dependencies:
- bn.js: "npm:^5.2.2"
- browserify-rsa: "npm:^4.1.1"
- create-hash: "npm:^1.2.0"
- create-hmac: "npm:^1.1.7"
- elliptic: "npm:^6.6.1"
- inherits: "npm:^2.0.4"
- parse-asn1: "npm:^5.1.9"
- readable-stream: "npm:^2.3.8"
- safe-buffer: "npm:^5.2.1"
- checksum: 10/ccfe54ab61b8e01e84c507b60912f9ae8701f4e53accc3d85c3773db13f14c51f17b684167735d28c59aaf5523ee59c66cc831ddc178bc7f598257e590ca1a35
- languageName: node
- linkType: hard
-
-"browserslist@npm:^4.28.1":
- version: 4.28.1
- resolution: "browserslist@npm:4.28.1"
- dependencies:
- baseline-browser-mapping: "npm:^2.9.0"
- caniuse-lite: "npm:^1.0.30001759"
- electron-to-chromium: "npm:^1.5.263"
- node-releases: "npm:^2.0.27"
- update-browserslist-db: "npm:^1.2.0"
- bin:
- browserslist: cli.js
- checksum: 10/64f2a97de4bce8473c0e5ae0af8d76d1ead07a5b05fc6bc87b848678bb9c3a91ae787b27aa98cdd33fc00779607e6c156000bed58fefb9cf8e4c5a183b994cdb
- languageName: node
- linkType: hard
-
-"bs58@npm:^4.0.1":
- version: 4.0.1
- resolution: "bs58@npm:4.0.1"
- dependencies:
- base-x: "npm:^3.0.2"
- checksum: 10/b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2
- languageName: node
- linkType: hard
-
-"btoa@npm:^1.2.1":
- version: 1.2.1
- resolution: "btoa@npm:1.2.1"
- bin:
- btoa: bin/btoa.js
- checksum: 10/29f2ca93837e10427184626bdfd5d00065dff28b604b822aa9849297dac8c8d6ad385cc96eed812ebf153d80c24a4556252afdbb97c7a712938baeaad7547705
- languageName: node
- linkType: hard
-
-"buffer-crc32@npm:^1.0.0":
- version: 1.0.0
- resolution: "buffer-crc32@npm:1.0.0"
- checksum: 10/ef3b7c07622435085c04300c9a51e850ec34a27b2445f758eef69b859c7827848c2282f3840ca6c1eef3829145a1580ce540cab03ccf4433827a2b95d3b09ca7
- languageName: node
- linkType: hard
-
-"buffer-crc32@npm:~0.2.3":
- version: 0.2.13
- resolution: "buffer-crc32@npm:0.2.13"
- checksum: 10/06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c
- languageName: node
- linkType: hard
-
-"buffer-equal@npm:^1.0.0":
- version: 1.0.1
- resolution: "buffer-equal@npm:1.0.1"
- checksum: 10/0d56dbeec3d862b16f07fe1cc27751adab26219ff37b90fb0be1fe5c870ce1ce3ed45aad9d9b8c631dfc0e147315d02385ddefaf7f6cb24f067f91a2f8def324
- languageName: node
- linkType: hard
-
-"buffer-from@npm:^1.0.0":
- version: 1.1.2
- resolution: "buffer-from@npm:1.1.2"
- checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
- languageName: node
- linkType: hard
-
-"buffer-xor@npm:^1.0.3":
- version: 1.0.3
- resolution: "buffer-xor@npm:1.0.3"
- checksum: 10/4a63d48b5117c7eda896d81cd3582d9707329b07c97a14b0ece2edc6e64220ea7ea17c94b295e8c2cb7b9f8291e2b079f9096be8ac14be238420a43e06ec66e2
- languageName: node
- linkType: hard
-
-"buffer@npm:^5.1.0, buffer@npm:^5.5.0, buffer@npm:^5.6.0":
- version: 5.7.1
- resolution: "buffer@npm:5.7.1"
- dependencies:
- base64-js: "npm:^1.3.1"
- ieee754: "npm:^1.1.13"
- checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6
- languageName: node
- linkType: hard
-
-"buffer@npm:^6.0.1, buffer@npm:^6.0.3":
- version: 6.0.3
- resolution: "buffer@npm:6.0.3"
- dependencies:
- base64-js: "npm:^1.3.1"
- ieee754: "npm:^1.2.1"
- checksum: 10/b6bc68237ebf29bdacae48ce60e5e28fc53ae886301f2ad9496618efac49427ed79096750033e7eab1897a4f26ae374ace49106a5758f38fb70c78c9fda2c3b1
- languageName: node
- linkType: hard
-
-"bufferutil@npm:^4.0.1":
- version: 4.1.0
- resolution: "bufferutil@npm:4.1.0"
- dependencies:
- node-gyp: "npm:latest"
- node-gyp-build: "npm:^4.3.0"
- checksum: 10/f944f2e66a8cd2eeecc83e29b857382a0666132a7bbf83690df9ff39cb842c5a438da91a7d9c6a22cdc794bf0b6cfbfdf3a689e9c330a8e844b2b7a64c25f3bc
- languageName: node
- linkType: hard
-
-"buildcheck@npm:~0.0.6":
- version: 0.0.7
- resolution: "buildcheck@npm:0.0.7"
- checksum: 10/cca174bcc917ee9dc00b1be404b4f22656d9c243d439d3456e6bd52263f05ad5f5d3c77e62a1f6ccaf1d36cb65efc5ee3bb30ed10e1675f22a1abdfad99eb9b3
- languageName: node
- linkType: hard
-
-"builder-util-runtime@npm:9.2.3":
- version: 9.2.3
- resolution: "builder-util-runtime@npm:9.2.3"
- dependencies:
- debug: "npm:^4.3.4"
- sax: "npm:^1.2.4"
- checksum: 10/15f9618af1a2224d0ade19fa7dca12f80bc2ceeb4fc89242f2505b44f58d13d3439bb08a5bec865bb0f8e930fa57bd112d9ee9024f22f1654925ffe2bed3925b
- languageName: node
- linkType: hard
-
-"builder-util-runtime@npm:9.5.1":
- version: 9.5.1
- resolution: "builder-util-runtime@npm:9.5.1"
- dependencies:
- debug: "npm:^4.3.4"
- sax: "npm:^1.2.4"
- checksum: 10/65ecde74ae480e7c7983bccb2db3c0a33e18ecf038c7af87acdf533c365e76c5cd922d13a6f7dad99f151ab508a1366bf8944d7b9651254d56a0dadb3c4bec98
- languageName: node
- linkType: hard
-
-"builder-util@npm:24.9.4":
- version: 24.9.4
- resolution: "builder-util@npm:24.9.4"
- dependencies:
- 7zip-bin: "npm:~5.2.0"
- "@types/debug": "npm:^4.1.6"
- app-builder-bin: "npm:4.0.0"
- bluebird-lst: "npm:^1.0.9"
- builder-util-runtime: "npm:9.2.3"
- chalk: "npm:^4.1.2"
- cross-spawn: "npm:^7.0.3"
- debug: "npm:^4.3.4"
- fs-extra: "npm:^10.1.0"
- http-proxy-agent: "npm:^5.0.0"
- https-proxy-agent: "npm:^5.0.1"
- is-ci: "npm:^3.0.0"
- js-yaml: "npm:^4.1.0"
- source-map-support: "npm:^0.5.19"
- stat-mode: "npm:^1.0.0"
- temp-file: "npm:^3.4.0"
- checksum: 10/df830846d6149491616bdedf8e6829385cb968105762a835bda29eaeaea8f54254f5b14b9a3c4d060d0402d3bf886e48ab2a0c28c4615b4904fc25ad7c68ec90
- languageName: node
- linkType: hard
-
-"builtin-modules@npm:^3.3.0":
- version: 3.3.0
- resolution: "builtin-modules@npm:3.3.0"
- checksum: 10/62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e
- languageName: node
- linkType: hard
-
-"builtin-status-codes@npm:^3.0.0":
- version: 3.0.0
- resolution: "builtin-status-codes@npm:3.0.0"
- checksum: 10/1119429cf4b0d57bf76b248ad6f529167d343156ebbcc4d4e4ad600484f6bc63002595cbb61b67ad03ce55cd1d3c4711c03bbf198bf24653b8392420482f3773
- languageName: node
- linkType: hard
-
-"builtins@npm:^5.0.1":
- version: 5.1.0
- resolution: "builtins@npm:5.1.0"
- dependencies:
- semver: "npm:^7.0.0"
- checksum: 10/60aa9969f69656bf6eab82cd74b23ab805f112ae46a54b912bccc1533875760f2d2ce95e0a7d13144e35ada9f0386f17ed4961908bc9434b5a5e21375b1902b2
- languageName: node
- linkType: hard
-
-"bundle-require@npm:^5.1.0":
- version: 5.1.0
- resolution: "bundle-require@npm:5.1.0"
- dependencies:
- load-tsconfig: "npm:^0.2.3"
- peerDependencies:
- esbuild: ">=0.18"
- checksum: 10/735e0220055b9bdac20bea48ec1e10dc3a205232c889ef54767900bebdc721959c4ccb221e4ea434d7ddcd693a8a4445c3d0598e4040ee313ce0ac3aae3e6178
- languageName: node
- linkType: hard
-
-"byline@npm:^5.0.0":
- version: 5.0.0
- resolution: "byline@npm:5.0.0"
- checksum: 10/737ca83e8eda2976728dae62e68bc733aea095fab08db4c6f12d3cee3cf45b6f97dce45d1f6b6ff9c2c947736d10074985b4425b31ce04afa1985a4ef3d334a7
- languageName: node
- linkType: hard
-
-"bytes@npm:3.1.2, bytes@npm:~3.1.2":
- version: 3.1.2
- resolution: "bytes@npm:3.1.2"
- checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388
- languageName: node
- linkType: hard
-
-"cac@npm:^6.7.14":
- version: 6.7.14
- resolution: "cac@npm:6.7.14"
- checksum: 10/002769a0fbfc51c062acd2a59df465a2a947916b02ac50b56c69ec6c018ee99ac3e7f4dd7366334ea847f1ecacf4defaa61bcd2ac283db50156ce1f1d8c8ad42
- languageName: node
- linkType: hard
-
-"cacache@npm:^20.0.1":
- version: 20.0.3
- resolution: "cacache@npm:20.0.3"
- dependencies:
- "@npmcli/fs": "npm:^5.0.0"
- fs-minipass: "npm:^3.0.0"
- glob: "npm:^13.0.0"
- lru-cache: "npm:^11.1.0"
- minipass: "npm:^7.0.3"
- minipass-collect: "npm:^2.0.1"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- p-map: "npm:^7.0.2"
- ssri: "npm:^13.0.0"
- unique-filename: "npm:^5.0.0"
- checksum: 10/388a0169970df9d051da30437f93f81b7e91efb570ad0ff2b8fde33279fbe726c1bc8e8e2b9c05053ffb4f563854c73db395e8712e3b62347a1bc4f7fb8899ff
- languageName: node
- linkType: hard
-
-"cacheable-lookup@npm:^5.0.3":
- version: 5.0.4
- resolution: "cacheable-lookup@npm:5.0.4"
- checksum: 10/618a8b3eea314060e74cb3285a6154e8343c244a34235acf91cfe626ee0705c24e3cd11e4b1a7b3900bd749ee203ae65afe13adf610c8ab173e99d4a208faf75
- languageName: node
- linkType: hard
-
-"cacheable-request@npm:^6.0.0":
- version: 6.1.0
- resolution: "cacheable-request@npm:6.1.0"
- dependencies:
- clone-response: "npm:^1.0.2"
- get-stream: "npm:^5.1.0"
- http-cache-semantics: "npm:^4.0.0"
- keyv: "npm:^3.0.0"
- lowercase-keys: "npm:^2.0.0"
- normalize-url: "npm:^4.1.0"
- responselike: "npm:^1.0.2"
- checksum: 10/804f6c377ce6fef31c584babde31d55c69305569058ad95c24a41bb7b33d0ea188d388467a9da6cb340e95a3a1f8a94e1f3a709fef5eaf9c6b88e62448fa29be
- languageName: node
- linkType: hard
-
-"cacheable-request@npm:^7.0.2":
- version: 7.0.4
- resolution: "cacheable-request@npm:7.0.4"
- dependencies:
- clone-response: "npm:^1.0.2"
- get-stream: "npm:^5.1.0"
- http-cache-semantics: "npm:^4.0.0"
- keyv: "npm:^4.0.0"
- lowercase-keys: "npm:^2.0.0"
- normalize-url: "npm:^6.0.1"
- responselike: "npm:^2.0.0"
- checksum: 10/0f4f2001260ecca78b9f64fc8245e6b5a5dcde24ea53006daab71f5e0e1338095aa1512ec099c4f9895a9e5acfac9da423cb7c079e131485891e9214aca46c41
- languageName: node
- linkType: hard
-
-"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2":
- version: 1.0.2
- resolution: "call-bind-apply-helpers@npm:1.0.2"
- dependencies:
- es-errors: "npm:^1.3.0"
- function-bind: "npm:^1.1.2"
- checksum: 10/00482c1f6aa7cfb30fb1dbeb13873edf81cfac7c29ed67a5957d60635a56b2a4a480f1016ddbdb3395cc37900d46037fb965043a51c5c789ffeab4fc535d18b5
- languageName: node
- linkType: hard
-
-"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8":
- version: 1.0.8
- resolution: "call-bind@npm:1.0.8"
- dependencies:
- call-bind-apply-helpers: "npm:^1.0.0"
- es-define-property: "npm:^1.0.0"
- get-intrinsic: "npm:^1.2.4"
- set-function-length: "npm:^1.2.2"
- checksum: 10/659b03c79bbfccf0cde3a79e7d52570724d7290209823e1ca5088f94b52192dc1836b82a324d0144612f816abb2f1734447438e38d9dafe0b3f82c2a1b9e3bce
- languageName: node
- linkType: hard
-
-"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4":
- version: 1.0.4
- resolution: "call-bound@npm:1.0.4"
- dependencies:
- call-bind-apply-helpers: "npm:^1.0.2"
- get-intrinsic: "npm:^1.3.0"
- checksum: 10/ef2b96e126ec0e58a7ff694db43f4d0d44f80e641370c21549ed911fecbdbc2df3ebc9bddad918d6bbdefeafb60bb3337902006d5176d72bcd2da74820991af7
- languageName: node
- linkType: hard
-
-"callsites@npm:^3.0.0":
- version: 3.1.0
- resolution: "callsites@npm:3.1.0"
- checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3
- languageName: node
- linkType: hard
-
-"camel-case@npm:^4.1.2":
- version: 4.1.2
- resolution: "camel-case@npm:4.1.2"
- dependencies:
- pascal-case: "npm:^3.1.2"
- tslib: "npm:^2.0.3"
- checksum: 10/bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6
- languageName: node
- linkType: hard
-
-"camelcase-keys@npm:^6.2.2":
- version: 6.2.2
- resolution: "camelcase-keys@npm:6.2.2"
- dependencies:
- camelcase: "npm:^5.3.1"
- map-obj: "npm:^4.0.0"
- quick-lru: "npm:^4.0.1"
- checksum: 10/c1999f5b6d03bee7be9a36e48eef3da9e93e51b000677348ec8d15d51fc4418375890fb6c7155e387322d2ebb2a2cdebf9cd96607a6753d1d6c170d9b1e2eed5
- languageName: node
- linkType: hard
-
-"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1":
- version: 5.3.1
- resolution: "camelcase@npm:5.3.1"
- checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b
- languageName: node
- linkType: hard
-
-"camelcase@npm:^6.2.0, camelcase@npm:^6.2.1":
- version: 6.3.0
- resolution: "camelcase@npm:6.3.0"
- checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d
- languageName: node
- linkType: hard
-
-"camelize@npm:^1.0.0":
- version: 1.0.1
- resolution: "camelize@npm:1.0.1"
- checksum: 10/0e147b4299ac6363c50050716aadfae42831257ec56ce54773ffd2a94a88abb2e2540c5ccc38345e8a39963105b76d86cb24477165a36b78c9958fb304513db3
- languageName: node
- linkType: hard
-
-"caniuse-lite@npm:^1.0.30001759":
- version: 1.0.30001763
- resolution: "caniuse-lite@npm:1.0.30001763"
- checksum: 10/66efb73a641fe2612f561d0f32e5b55415b742dfa3b585f69891b2306cddd8f79bc1a1b0eaac42512686ba9cff59c049aaf1a50192eb5bd27d6f6890c934a5ae
- languageName: node
- linkType: hard
-
-"canvas-renderer@npm:~2.2.0":
- version: 2.2.1
- resolution: "canvas-renderer@npm:2.2.1"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/857ebc09893e977b46e1acb14e1b02e4bd96c71d965721b0d635586e5ac96ccb8a1adf184cdfd19053b3adcb38b9d0db6ad1f517914f3ea753fd48d802bd92c4
- languageName: node
- linkType: hard
-
-"ccount@npm:^2.0.0":
- version: 2.0.1
- resolution: "ccount@npm:2.0.1"
- checksum: 10/48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4
- languageName: node
- linkType: hard
-
-"chalk@npm:^2.4.2":
- version: 2.4.2
- resolution: "chalk@npm:2.4.2"
- dependencies:
- ansi-styles: "npm:^3.2.1"
- escape-string-regexp: "npm:^1.0.5"
- supports-color: "npm:^5.3.0"
- checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303
- languageName: node
- linkType: hard
-
-"chalk@npm:^3.0.0":
- version: 3.0.0
- resolution: "chalk@npm:3.0.0"
- dependencies:
- ansi-styles: "npm:^4.1.0"
- supports-color: "npm:^7.1.0"
- checksum: 10/37f90b31fd655fb49c2bd8e2a68aebefddd64522655d001ef417e6f955def0ed9110a867ffc878a533f2dafea5f2032433a37c8a7614969baa7f8a1cd424ddfc
- languageName: node
- linkType: hard
-
-"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2":
- version: 4.1.2
- resolution: "chalk@npm:4.1.2"
- dependencies:
- ansi-styles: "npm:^4.1.0"
- supports-color: "npm:^7.1.0"
- checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139
- languageName: node
- linkType: hard
-
-"changelog-parser@npm:^3.0.0":
- version: 3.0.1
- resolution: "changelog-parser@npm:3.0.1"
- dependencies:
- line-reader: "npm:^0.2.4"
- remove-markdown: "npm:^0.5.0"
- bin:
- changelog-parser: bin/cli.js
- checksum: 10/681c10f43aaa02eb4706a4b883d464fee499dc1dfee679fb9414155b1c3a935126b97d2d0092f07ff62cbe431cf5926a4636856446ff40338ecc20b235ed2692
- languageName: node
- linkType: hard
-
-"character-entities-html4@npm:^2.0.0":
- version: 2.1.0
- resolution: "character-entities-html4@npm:2.1.0"
- checksum: 10/7034aa7c7fa90309667f6dd50499c8a760c3d3a6fb159adb4e0bada0107d194551cdbad0714302f62d06ce4ed68565c8c2e15fdef2e8f8764eb63fa92b34b11d
- languageName: node
- linkType: hard
-
-"character-entities-legacy@npm:^3.0.0":
- version: 3.0.0
- resolution: "character-entities-legacy@npm:3.0.0"
- checksum: 10/7582af055cb488b626d364b7d7a4e46b06abd526fb63c0e4eb35bcb9c9799cc4f76b39f34fdccef2d1174ac95e53e9ab355aae83227c1a2505877893fce77731
- languageName: node
- linkType: hard
-
-"character-entities@npm:^2.0.0":
- version: 2.0.2
- resolution: "character-entities@npm:2.0.2"
- checksum: 10/c8dd1f4bf1a92fccf7d2fad9673660a88b37854557d30f6076c32fedfb92d1420208298829ff1d3b6b4fa1c7012e8326c45e7f5c3ed1e9a09ec177593c521b2f
- languageName: node
- linkType: hard
-
-"character-reference-invalid@npm:^2.0.0":
- version: 2.0.1
- resolution: "character-reference-invalid@npm:2.0.1"
- checksum: 10/98d3b1a52ae510b7329e6ee7f6210df14f1e318c5415975d4c9e7ee0ef4c07875d47c6e74230c64551f12f556b4a8ccc24d9f3691a2aa197019e72a95e9297ee
- languageName: node
- linkType: hard
-
-"chardet@npm:^2.1.1":
- version: 2.1.1
- resolution: "chardet@npm:2.1.1"
- checksum: 10/d56913b65e45c5c86f331988e2ef6264c131bfeadaae098ee719bf6610546c77740e37221ffec802dde56b5e4466613a4c754786f4da6b5f6c5477243454d324
- languageName: node
- linkType: hard
-
-"chart.js@npm:^4.4.1":
- version: 4.5.1
- resolution: "chart.js@npm:4.5.1"
- dependencies:
- "@kurkle/color": "npm:^0.3.0"
- checksum: 10/a8dd3385371ad7e4c173d35176b7aed457ae27b45550248ecc854bf60a794541f56f3921850dc1f3c65985ef43beea37172b73899eb620d9cb4908de2ce93136
- languageName: node
- linkType: hard
-
-"chartjs-plugin-annotation@npm:^3.0.1":
- version: 3.1.0
- resolution: "chartjs-plugin-annotation@npm:3.1.0"
- peerDependencies:
- chart.js: ">=4.0.0"
- checksum: 10/0b0889e665f1aefd2a7b24998013df72c7e022836427b799f219f2f9d838a89ec0a5531d233cfe440c3798bf85646d8435151967b678ab3ffc63c6266edfbf2c
- languageName: node
- linkType: hard
-
-"chartjs-plugin-crosshair@npm:^2.0.0":
- version: 2.0.0
- resolution: "chartjs-plugin-crosshair@npm:2.0.0"
- peerDependencies:
- chart.js: ^4.0.1
- checksum: 10/f07105c2995c80d7a011a9e97765b97f1fbb1db7eab514381d0a50df665239fdc86219b920299e5363347a7857cbfef957499548df27ab756531415461b77d72
- languageName: node
- linkType: hard
-
-"chokidar@npm:^3.5.3":
- version: 3.6.0
- resolution: "chokidar@npm:3.6.0"
- dependencies:
- anymatch: "npm:~3.1.2"
- braces: "npm:~3.0.2"
- fsevents: "npm:~2.3.2"
- glob-parent: "npm:~5.1.2"
- is-binary-path: "npm:~2.1.0"
- is-glob: "npm:~4.0.1"
- normalize-path: "npm:~3.0.0"
- readdirp: "npm:~3.6.0"
- dependenciesMeta:
- fsevents:
- optional: true
- checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df
- languageName: node
- linkType: hard
-
-"chokidar@npm:^4.0.3":
- version: 4.0.3
- resolution: "chokidar@npm:4.0.3"
- dependencies:
- readdirp: "npm:^4.0.1"
- checksum: 10/bf2a575ea5596000e88f5db95461a9d59ad2047e939d5a4aac59dd472d126be8f1c1ff3c7654b477cf532d18f42a97279ef80ee847972fd2a25410bf00b80b59
- languageName: node
- linkType: hard
-
-"chownr@npm:^1.1.1":
- version: 1.1.4
- resolution: "chownr@npm:1.1.4"
- checksum: 10/115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d
- languageName: node
- linkType: hard
-
-"chownr@npm:^2.0.0":
- version: 2.0.0
- resolution: "chownr@npm:2.0.0"
- checksum: 10/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f
- languageName: node
- linkType: hard
-
-"chownr@npm:^3.0.0":
- version: 3.0.0
- resolution: "chownr@npm:3.0.0"
- checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c
- languageName: node
- linkType: hard
-
-"chrome-trace-event@npm:^1.0.2":
- version: 1.0.4
- resolution: "chrome-trace-event@npm:1.0.4"
- checksum: 10/1762bed739774903bf5915fe3045c3120fc3c7f7d929d88e566447ea38944937a6370ccb687278318c43c24f837ad22dac780bed67c066336815557b8cf558c6
- languageName: node
- linkType: hard
-
-"chromium-pickle-js@npm:^0.2.0":
- version: 0.2.0
- resolution: "chromium-pickle-js@npm:0.2.0"
- checksum: 10/4722e78edf21e8e21e14066fce98bce96f2244c82fcb4da5cf2811ccfc66dbb78fc1e0be94b79aed18ba33b8940bb3f3919822151d0b23e12c95574f62f7796f
- languageName: node
- linkType: hard
-
-"ci-info@npm:^2.0.0":
- version: 2.0.0
- resolution: "ci-info@npm:2.0.0"
- checksum: 10/3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67
- languageName: node
- linkType: hard
-
-"ci-info@npm:^3.2.0":
- version: 3.9.0
- resolution: "ci-info@npm:3.9.0"
- checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397
- languageName: node
- linkType: hard
-
-"ci-info@npm:^4.2.0":
- version: 4.3.1
- resolution: "ci-info@npm:4.3.1"
- checksum: 10/9dc952bef67e665ccde2e7a552d42d5d095529d21829ece060a00925ede2dfa136160c70ef2471ea6ed6c9b133218b47c007f56955c0f1734a2e57f240aa7445
- languageName: node
- linkType: hard
-
-"cids@npm:~0.7.0":
- version: 0.7.5
- resolution: "cids@npm:0.7.5"
- dependencies:
- buffer: "npm:^5.5.0"
- class-is: "npm:^1.1.0"
- multibase: "npm:~0.6.0"
- multicodec: "npm:^1.0.0"
- multihashes: "npm:~0.4.15"
- checksum: 10/b916b0787e238dd9f84fb5e155333cadf07fd7ad34ea8dbd47f98bb618eecc9c70760767c0966d0eae73050c4fa6080fdc387e515565b009d2126253c7775fac
- languageName: node
- linkType: hard
-
-"cids@npm:~0.8.0":
- version: 0.8.3
- resolution: "cids@npm:0.8.3"
- dependencies:
- buffer: "npm:^5.6.0"
- class-is: "npm:^1.1.0"
- multibase: "npm:^1.0.0"
- multicodec: "npm:^1.0.1"
- multihashes: "npm:^1.0.1"
- checksum: 10/2772d22314e80e4baf3ca3c82b0468b712ab342472ede571609837438fba1d24259cd3c6d9751a868485d8bc373c122f6847b0df91b16cd77ce65f7709294ec9
- languageName: node
- linkType: hard
-
-"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
- version: 1.0.7
- resolution: "cipher-base@npm:1.0.7"
- dependencies:
- inherits: "npm:^2.0.4"
- safe-buffer: "npm:^5.2.1"
- to-buffer: "npm:^1.2.2"
- checksum: 10/9501d2241b7968aaae74fc3db1d6a69a804e0b14117a8fd5d811edf351fcd39a1807bfd98e090a799cfe98b183fbf2e01ebb57f1239080850db07b68dcd9ba02
- languageName: node
- linkType: hard
-
-"class-is@npm:^1.1.0":
- version: 1.1.0
- resolution: "class-is@npm:1.1.0"
- checksum: 10/8147a3e4ce86eb103d78621d665b87e8e33fcb3f54932fdca894b8222820903b43b2f6b4335d8822104702a5dc904c8f187127fdea4e7d48d905488b35c9e6a7
- languageName: node
- linkType: hard
-
-"classnames@npm:^2.2.6":
- version: 2.5.1
- resolution: "classnames@npm:2.5.1"
- checksum: 10/58eb394e8817021b153bb6e7d782cfb667e4ab390cb2e9dac2fc7c6b979d1cc2b2a733093955fc5c94aa79ef5c8c89f11ab77780894509be6afbb91dddd79d15
- languageName: node
- linkType: hard
-
-"clean-css@npm:^5.2.2":
- version: 5.3.3
- resolution: "clean-css@npm:5.3.3"
- dependencies:
- source-map: "npm:~0.6.0"
- checksum: 10/2db1ae37b384c8ff0a06a12bfa80f56cc02b4abcaaf340db98c0ae88a61dd67c856653fd8135ace6eb0ec13aeab3089c425d2e4238d2a2ad6b6917e6ccc74729
- languageName: node
- linkType: hard
-
-"cli-boxes@npm:^2.2.1":
- version: 2.2.1
- resolution: "cli-boxes@npm:2.2.1"
- checksum: 10/be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585
- languageName: node
- linkType: hard
-
-"cli-cursor@npm:^3.1.0":
- version: 3.1.0
- resolution: "cli-cursor@npm:3.1.0"
- dependencies:
- restore-cursor: "npm:^3.1.0"
- checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29
- languageName: node
- linkType: hard
-
-"cli-spinners@npm:^2.2.0, cli-spinners@npm:^2.5.0":
- version: 2.9.2
- resolution: "cli-spinners@npm:2.9.2"
- checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794
- languageName: node
- linkType: hard
-
-"cli-truncate@npm:^2.1.0":
- version: 2.1.0
- resolution: "cli-truncate@npm:2.1.0"
- dependencies:
- slice-ansi: "npm:^3.0.0"
- string-width: "npm:^4.2.0"
- checksum: 10/976f1887de067a8cd6ec830a7a8508336aebe6cec79b521d98ed13f67ef073b637f7305675b6247dd22f9e9cf045ec55fe746c7bdb288fbe8db0dfdc9fd52e55
- languageName: node
- linkType: hard
-
-"cli-width@npm:^3.0.0":
- version: 3.0.0
- resolution: "cli-width@npm:3.0.0"
- checksum: 10/8730848b04fb189666ab037a35888d191c8f05b630b1d770b0b0e4c920b47bb5cc14bddf6b8ffe5bfc66cee97c8211d4d18e756c1ffcc75d7dbe7e1186cd7826
- languageName: node
- linkType: hard
-
-"cliui@npm:^7.0.2":
- version: 7.0.4
- resolution: "cliui@npm:7.0.4"
- dependencies:
- string-width: "npm:^4.2.0"
- strip-ansi: "npm:^6.0.0"
- wrap-ansi: "npm:^7.0.0"
- checksum: 10/db858c49af9d59a32d603987e6fddaca2ce716cd4602ba5a2bb3a5af1351eebe82aba8dff3ef3e1b331f7fa9d40ca66e67bdf8e7c327ce0ea959747ead65c0ef
- languageName: node
- linkType: hard
-
-"cliui@npm:^8.0.1":
- version: 8.0.1
- resolution: "cliui@npm:8.0.1"
- dependencies:
- string-width: "npm:^4.2.0"
- strip-ansi: "npm:^6.0.1"
- wrap-ansi: "npm:^7.0.0"
- checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950
- languageName: node
- linkType: hard
-
-"clone-deep@npm:^4.0.0, clone-deep@npm:^4.0.1":
- version: 4.0.1
- resolution: "clone-deep@npm:4.0.1"
- dependencies:
- is-plain-object: "npm:^2.0.4"
- kind-of: "npm:^6.0.2"
- shallow-clone: "npm:^3.0.0"
- checksum: 10/770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2
- languageName: node
- linkType: hard
-
-"clone-response@npm:^1.0.2":
- version: 1.0.3
- resolution: "clone-response@npm:1.0.3"
- dependencies:
- mimic-response: "npm:^1.0.0"
- checksum: 10/4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e
- languageName: node
- linkType: hard
-
-"clone@npm:^1.0.2":
- version: 1.0.4
- resolution: "clone@npm:1.0.4"
- checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd
- languageName: node
- linkType: hard
-
-"clone@npm:^2.1.2":
- version: 2.1.2
- resolution: "clone@npm:2.1.2"
- checksum: 10/d9c79efba655f0bf601ab299c57eb54cbaa9860fb011aee9d89ed5ac0d12df1660ab7642fddaabb9a26b7eff0e117d4520512cb70798319ff5d30a111b5310c2
- languageName: node
- linkType: hard
-
-"codeflask@npm:^1.4.1":
- version: 1.4.1
- resolution: "codeflask@npm:1.4.1"
- dependencies:
- "@types/prismjs": "npm:^1.9.1"
- prismjs: "npm:^1.14.0"
- checksum: 10/c0ad1599cb91f56bb9f0bb89ffab914c67f2a2a9ae7ff1bddaaba7c985be2d3e254b72ae211e99497dc6b19cc21013526192c2d26cc073ad7ba05ce92390cc08
- languageName: node
- linkType: hard
-
-"color-convert@npm:^1.9.0":
- version: 1.9.3
- resolution: "color-convert@npm:1.9.3"
- dependencies:
- color-name: "npm:1.1.3"
- checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10
- languageName: node
- linkType: hard
-
-"color-convert@npm:^2.0.1":
- version: 2.0.1
- resolution: "color-convert@npm:2.0.1"
- dependencies:
- color-name: "npm:~1.1.4"
- checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64
- languageName: node
- linkType: hard
-
-"color-name@npm:1.1.3":
- version: 1.1.3
- resolution: "color-name@npm:1.1.3"
- checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d
- languageName: node
- linkType: hard
-
-"color-name@npm:^1.1.4, color-name@npm:~1.1.4":
- version: 1.1.4
- resolution: "color-name@npm:1.1.4"
- checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
- languageName: node
- linkType: hard
-
-"color-support@npm:^1.1.3":
- version: 1.1.3
- resolution: "color-support@npm:1.1.3"
- bin:
- color-support: bin.js
- checksum: 10/4bcfe30eea1498fe1cabc852bbda6c9770f230ea0e4faf4611c5858b1b9e4dde3730ac485e65f54ca182f4c50b626c1bea7c8441ceda47367a54a818c248aa7a
- languageName: node
- linkType: hard
-
-"colord@npm:^2.9.3":
- version: 2.9.3
- resolution: "colord@npm:2.9.3"
- checksum: 10/907a4506d7307e2f580b471b581e992181ed75ab0c6925ece9ca46d88161d2fc50ed15891cd0556d0d9321237ca75afc9d462e4c050b939ef88428517f047f30
- languageName: node
- linkType: hard
-
-"colorette@npm:^2.0.10, colorette@npm:^2.0.14, colorette@npm:^2.0.7":
- version: 2.0.20
- resolution: "colorette@npm:2.0.20"
- checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f
- languageName: node
- linkType: hard
-
-"combined-stream@npm:^1.0.8":
- version: 1.0.8
- resolution: "combined-stream@npm:1.0.8"
- dependencies:
- delayed-stream: "npm:~1.0.0"
- checksum: 10/2e969e637d05d09fa50b02d74c83a1186f6914aae89e6653b62595cc75a221464f884f55f231b8f4df7a49537fba60bdc0427acd2bf324c09a1dbb84837e36e4
- languageName: node
- linkType: hard
-
-"comlink@npm:^4.4.2":
- version: 4.4.2
- resolution: "comlink@npm:4.4.2"
- checksum: 10/ecee53b5b4536b3aa3f7636c383f831e68fbc013def77665cc7fad873d72cfa23b994e1ec4b49e83e4e909c1089a03acae03a523e33a5e5ed938cdb613456434
- languageName: node
- linkType: hard
-
-"comma-separated-tokens@npm:^2.0.0":
- version: 2.0.3
- resolution: "comma-separated-tokens@npm:2.0.3"
- checksum: 10/e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d
- languageName: node
- linkType: hard
-
-"commander@npm:^10.0.1":
- version: 10.0.1
- resolution: "commander@npm:10.0.1"
- checksum: 10/8799faa84a30da985802e661cc9856adfaee324d4b138413013ef7f087e8d7924b144c30a1f1405475f0909f467665cd9e1ce13270a2f41b141dab0b7a58f3fb
- languageName: node
- linkType: hard
-
-"commander@npm:^13.0.0":
- version: 13.1.0
- resolution: "commander@npm:13.1.0"
- checksum: 10/d3b4b79e6be8471ddadacbb8cd441fe82154d7da7393b50e76165a9e29ccdb74fa911a186437b9a211d0fc071db6051915c94fb8ef16d77511d898e9dbabc6af
- languageName: node
- linkType: hard
-
-"commander@npm:^2.16.0, commander@npm:^2.20.0, commander@npm:^2.20.3, commander@npm:^2.5.0, commander@npm:^2.8.1":
- version: 2.20.3
- resolution: "commander@npm:2.20.3"
- checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b
- languageName: node
- linkType: hard
-
-"commander@npm:^4.0.0":
- version: 4.1.1
- resolution: "commander@npm:4.1.1"
- checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c
- languageName: node
- linkType: hard
-
-"commander@npm:^5.0.0":
- version: 5.1.0
- resolution: "commander@npm:5.1.0"
- checksum: 10/3e2ef5c003c5179250161e42ce6d48e0e69a54af970c65b7f985c70095240c260fd647453efd4c2c5a31b30ce468f373dc70f769c2f54a2c014abc4792aaca28
- languageName: node
- linkType: hard
-
-"commander@npm:^7.2.0":
- version: 7.2.0
- resolution: "commander@npm:7.2.0"
- checksum: 10/9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d
- languageName: node
- linkType: hard
-
-"commander@npm:^8.3.0":
- version: 8.3.0
- resolution: "commander@npm:8.3.0"
- checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3
- languageName: node
- linkType: hard
-
-"commander@npm:^9.0.0, commander@npm:^9.5.0":
- version: 9.5.0
- resolution: "commander@npm:9.5.0"
- checksum: 10/41c49b3d0f94a1fbeb0463c85b13f15aa15a9e0b4d5e10a49c0a1d58d4489b549d62262b052ae0aa6cfda53299bee487bfe337825df15e342114dde543f82906
- languageName: node
- linkType: hard
-
-"comment-parser@npm:^1.4.1":
- version: 1.4.1
- resolution: "comment-parser@npm:1.4.1"
- checksum: 10/16a3260b5e77819ebd9c99b0b65c7d6723b1ff73487bac9ce2d8f016a2847dd689e8663b88e1fad1444bbea89847c42f785708ac86a2c55f614f7095249bbf6b
- languageName: node
- linkType: hard
-
-"commondir@npm:^1.0.1":
- version: 1.0.1
- resolution: "commondir@npm:1.0.1"
- checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c
- languageName: node
- linkType: hard
-
-"commoner@npm:^0.10.1":
- version: 0.10.8
- resolution: "commoner@npm:0.10.8"
- dependencies:
- commander: "npm:^2.5.0"
- detective: "npm:^4.3.1"
- glob: "npm:^5.0.15"
- graceful-fs: "npm:^4.1.2"
- iconv-lite: "npm:^0.4.5"
- mkdirp: "npm:^0.5.0"
- private: "npm:^0.1.6"
- q: "npm:^1.1.2"
- recast: "npm:^0.11.17"
- bin:
- commonize: ./bin/commonize
- checksum: 10/409707fed781111b608dedfb8e6173846febdb4f258c3fee8136416ff023b26dfa442e135a2b469df5b1aa6ce8d89a3105c6bb33f78d220d1449c1e2ad4b270c
- languageName: node
- linkType: hard
-
-"compare-version@npm:^0.1.2":
- version: 0.1.2
- resolution: "compare-version@npm:0.1.2"
- checksum: 10/0ceaf50b5f912c8eb8eeca19375e617209d200abebd771e9306510166462e6f91ad764f33f210a3058ee27c83f2f001a7a4ca32f509da2d207d0143a3438a020
- languageName: node
- linkType: hard
-
-"compress-commons@npm:^6.0.2":
- version: 6.0.2
- resolution: "compress-commons@npm:6.0.2"
- dependencies:
- crc-32: "npm:^1.2.0"
- crc32-stream: "npm:^6.0.0"
- is-stream: "npm:^2.0.1"
- normalize-path: "npm:^3.0.0"
- readable-stream: "npm:^4.0.0"
- checksum: 10/78e3ba10aeef919a1c5bbac21e120f3e1558a31b2defebbfa1635274fc7f7e8a3a0ee748a06249589acd0b33a0d58144b8238ff77afc3220f8d403a96fcc13aa
- languageName: node
- linkType: hard
-
-"compressible@npm:~2.0.18":
- version: 2.0.18
- resolution: "compressible@npm:2.0.18"
- dependencies:
- mime-db: "npm:>= 1.43.0 < 2"
- checksum: 10/58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0
- languageName: node
- linkType: hard
-
-"compression@npm:^1.7.4":
- version: 1.8.1
- resolution: "compression@npm:1.8.1"
- dependencies:
- bytes: "npm:3.1.2"
- compressible: "npm:~2.0.18"
- debug: "npm:2.6.9"
- negotiator: "npm:~0.6.4"
- on-headers: "npm:~1.1.0"
- safe-buffer: "npm:5.2.1"
- vary: "npm:~1.1.2"
- checksum: 10/e7552bfbd780f2003c6fe8decb44561f5cc6bc82f0c61e81122caff5ec656f37824084f52155b1e8ef31d7656cecbec9a2499b7a68e92e20780ffb39b479abb7
- languageName: node
- linkType: hard
-
-"concat-map@npm:0.0.1":
- version: 0.0.1
- resolution: "concat-map@npm:0.0.1"
- checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2
- languageName: node
- linkType: hard
-
-"concurrently@npm:^8.2.2":
- version: 8.2.2
- resolution: "concurrently@npm:8.2.2"
- dependencies:
- chalk: "npm:^4.1.2"
- date-fns: "npm:^2.30.0"
- lodash: "npm:^4.17.21"
- rxjs: "npm:^7.8.1"
- shell-quote: "npm:^1.8.1"
- spawn-command: "npm:0.0.2"
- supports-color: "npm:^8.1.1"
- tree-kill: "npm:^1.2.2"
- yargs: "npm:^17.7.2"
- bin:
- conc: dist/bin/concurrently.js
- concurrently: dist/bin/concurrently.js
- checksum: 10/dcb1aa69d9c611a7bda9d4fc0fe1e388f971d1744acec7e0d52dffa2ef55743f1266ec9292f414c5789b9f61734b3fce772bd005d4de9564a949fb121b97bae1
- languageName: node
- linkType: hard
-
-"confbox@npm:^0.1.8":
- version: 0.1.8
- resolution: "confbox@npm:0.1.8"
- checksum: 10/4ebcfb1c6a3b25276734ec5722e88768eb61fc02f98e11960b845c5c62bc27fd05f493d2a8244d9675b24ef95afe4c0d511cdcad02c72f5eeea463cc26687999
- languageName: node
- linkType: hard
-
-"config-file-ts@npm:^0.2.4":
- version: 0.2.6
- resolution: "config-file-ts@npm:0.2.6"
- dependencies:
- glob: "npm:^10.3.10"
- typescript: "npm:^5.3.3"
- checksum: 10/825342ad226109606c701ccd8cb6a874142c0e3369d64ebc7d5a2c3f380ea9008cf20f807634d7943e42c0caa54227381e702f1deed9bb3b8d4a3e3483535117
- languageName: node
- linkType: hard
-
-"configstore@npm:^5.0.1":
- version: 5.0.1
- resolution: "configstore@npm:5.0.1"
- dependencies:
- dot-prop: "npm:^5.2.0"
- graceful-fs: "npm:^4.1.2"
- make-dir: "npm:^3.0.0"
- unique-string: "npm:^2.0.0"
- write-file-atomic: "npm:^3.0.0"
- xdg-basedir: "npm:^4.0.0"
- checksum: 10/60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e
- languageName: node
- linkType: hard
-
-"connect-history-api-fallback@npm:^2.0.0":
- version: 2.0.0
- resolution: "connect-history-api-fallback@npm:2.0.0"
- checksum: 10/3b26bf4041fdb33deacdcb3af9ae11e9a0b413fb14c95844d74a460b55e407625b364955dcf965c654605cde9d24ad5dad423c489aa430825aab2035859aba0c
- languageName: node
- linkType: hard
-
-"consola@npm:^3.4.0":
- version: 3.4.2
- resolution: "consola@npm:3.4.2"
- checksum: 10/32192c9f50d7cac27c5d7c4ecd3ff3679aea863e6bf5bd6a9cc2b05d1cd78addf5dae71df08c54330c142be8e7fbd46f051030129b57c6aacdd771efe409c4b2
- languageName: node
- linkType: hard
-
-"console-control-strings@npm:^1.1.0":
- version: 1.1.0
- resolution: "console-control-strings@npm:1.1.0"
- checksum: 10/27b5fa302bc8e9ae9e98c03c66d76ca289ad0c61ce2fe20ab288d288bee875d217512d2edb2363fc83165e88f1c405180cf3f5413a46e51b4fe1a004840c6cdb
- languageName: node
- linkType: hard
-
-"content-disposition@npm:~0.5.4":
- version: 0.5.4
- resolution: "content-disposition@npm:0.5.4"
- dependencies:
- safe-buffer: "npm:5.2.1"
- checksum: 10/b7f4ce176e324f19324be69b05bf6f6e411160ac94bc523b782248129eb1ef3be006f6cff431aaea5e337fe5d176ce8830b8c2a1b721626ead8933f0cbe78720
- languageName: node
- linkType: hard
-
-"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
- version: 1.0.5
- resolution: "content-type@npm:1.0.5"
- checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662
- languageName: node
- linkType: hard
-
-"convert-source-map@npm:^1.7.0":
- version: 1.9.0
- resolution: "convert-source-map@npm:1.9.0"
- checksum: 10/dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8
- languageName: node
- linkType: hard
-
-"convert-source-map@npm:^2.0.0":
- version: 2.0.0
- resolution: "convert-source-map@npm:2.0.0"
- checksum: 10/c987be3ec061348cdb3c2bfb924bec86dea1eacad10550a85ca23edb0fe3556c3a61c7399114f3331ccb3499d7fd0285ab24566e5745929412983494c3926e15
- languageName: node
- linkType: hard
-
-"cookie-signature@npm:~1.0.6":
- version: 1.0.7
- resolution: "cookie-signature@npm:1.0.7"
- checksum: 10/1a62808cd30d15fb43b70e19829b64d04b0802d8ef00275b57d152de4ae6a3208ca05c197b6668d104c4d9de389e53ccc2d3bc6bcaaffd9602461417d8c40710
- languageName: node
- linkType: hard
-
-"cookie@npm:~0.7.1":
- version: 0.7.2
- resolution: "cookie@npm:0.7.2"
- checksum: 10/24b286c556420d4ba4e9bc09120c9d3db7d28ace2bd0f8ccee82422ce42322f73c8312441271e5eefafbead725980e5996cc02766dbb89a90ac7f5636ede608f
- languageName: node
- linkType: hard
-
-"copy-to-clipboard@npm:^3.3.1":
- version: 3.3.3
- resolution: "copy-to-clipboard@npm:3.3.3"
- dependencies:
- toggle-selection: "npm:^1.0.6"
- checksum: 10/e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf
- languageName: node
- linkType: hard
-
-"copy-webpack-plugin@npm:^11.0.0":
- version: 11.0.0
- resolution: "copy-webpack-plugin@npm:11.0.0"
- dependencies:
- fast-glob: "npm:^3.2.11"
- glob-parent: "npm:^6.0.1"
- globby: "npm:^13.1.1"
- normalize-path: "npm:^3.0.0"
- schema-utils: "npm:^4.0.0"
- serialize-javascript: "npm:^6.0.0"
- peerDependencies:
- webpack: ^5.1.0
- checksum: 10/dc103be79ef72a4bb0bc8ce498b2cca964e3771326b009a1f3cb2d17960fca17538a725b09427161eccf485e2badbbd5490ddf2570f7976938e4e7338f1fd7e9
- languageName: node
- linkType: hard
-
-"core-util-is@npm:1.0.2":
- version: 1.0.2
- resolution: "core-util-is@npm:1.0.2"
- checksum: 10/d0f7587346b44a1fe6c269267e037dd34b4787191e473c3e685f507229d88561c40eb18872fabfff02977301815d474300b7bfbd15396c13c5377393f7e87ec3
- languageName: node
- linkType: hard
-
-"core-util-is@npm:~1.0.0":
- version: 1.0.3
- resolution: "core-util-is@npm:1.0.3"
- checksum: 10/9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99
- languageName: node
- linkType: hard
-
-"cpu-features@npm:~0.0.10":
- version: 0.0.10
- resolution: "cpu-features@npm:0.0.10"
- dependencies:
- buildcheck: "npm:~0.0.6"
- nan: "npm:^2.19.0"
- node-gyp: "npm:latest"
- checksum: 10/941b828ffe77582b2bdc03e894c913e2e2eeb5c6043ccb01338c34446d026f6888dc480ecb85e684809f9c3889d245f3648c7907eb61a92bdfc6aed039fcda8d
- languageName: node
- linkType: hard
-
-"crc-32@npm:^1.2.0, crc-32@npm:^1.2.2":
- version: 1.2.2
- resolution: "crc-32@npm:1.2.2"
- bin:
- crc32: bin/crc32.njs
- checksum: 10/824f696a5baaf617809aa9cd033313c8f94f12d15ebffa69f10202480396be44aef9831d900ab291638a8022ed91c360696dd5b1ba691eb3f34e60be8835b7c3
- languageName: node
- linkType: hard
-
-"crc32-stream@npm:^6.0.0":
- version: 6.0.0
- resolution: "crc32-stream@npm:6.0.0"
- dependencies:
- crc-32: "npm:^1.2.0"
- readable-stream: "npm:^4.0.0"
- checksum: 10/e6edc2f81bc387daef6d18b2ac18c2ffcb01b554d3b5c7d8d29b177505aafffba574658fdd23922767e8dab1183d1962026c98c17e17fb272794c33293ef607c
- languageName: node
- linkType: hard
-
-"crc@npm:^3.8.0":
- version: 3.8.0
- resolution: "crc@npm:3.8.0"
- dependencies:
- buffer: "npm:^5.1.0"
- checksum: 10/3a43061e692113d60fbaf5e438c5f6aa3374fe2368244a75cc083ecee6762513bcee8583f67c2c56feea0b0c72b41b7304fbd3c1e26cfcfaec310b9a18543fa8
- languageName: node
- linkType: hard
-
-"create-ecdh@npm:^4.0.4":
- version: 4.0.4
- resolution: "create-ecdh@npm:4.0.4"
- dependencies:
- bn.js: "npm:^4.1.0"
- elliptic: "npm:^6.5.3"
- checksum: 10/0dd7fca9711d09e152375b79acf1e3f306d1a25ba87b8ff14c2fd8e68b83aafe0a7dd6c4e540c9ffbdd227a5fa1ad9b81eca1f233c38bb47770597ba247e614b
- languageName: node
- linkType: hard
-
-"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
- version: 1.2.0
- resolution: "create-hash@npm:1.2.0"
- dependencies:
- cipher-base: "npm:^1.0.1"
- inherits: "npm:^2.0.1"
- md5.js: "npm:^1.3.4"
- ripemd160: "npm:^2.0.1"
- sha.js: "npm:^2.4.0"
- checksum: 10/3cfef32043b47a8999602af9bcd74966db6971dd3eb828d1a479f3a44d7f58e38c1caf34aa21a01941cc8d9e1a841738a732f200f00ea155f8a8835133d2e7bc
- languageName: node
- linkType: hard
-
-"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
- version: 1.1.7
- resolution: "create-hmac@npm:1.1.7"
- dependencies:
- cipher-base: "npm:^1.0.3"
- create-hash: "npm:^1.1.0"
- inherits: "npm:^2.0.1"
- ripemd160: "npm:^2.0.0"
- safe-buffer: "npm:^5.0.1"
- sha.js: "npm:^2.4.8"
- checksum: 10/2b26769f87e99ef72150bf99d1439d69272b2e510e23a2b8daf4e93e2412f4842504237d726044fa797cb20ee0ec8bee78d414b11f2d7ca93299185c93df0dae
- languageName: node
- linkType: hard
-
-"cross-fetch@npm:^4.0.0":
- version: 4.1.0
- resolution: "cross-fetch@npm:4.1.0"
- dependencies:
- node-fetch: "npm:^2.7.0"
- checksum: 10/07624940607b64777d27ec9c668ddb6649e8c59ee0a5a10e63a51ce857e2bbb1294a45854a31c10eccb91b65909a5b199fcb0217339b44156f85900a7384f489
- languageName: node
- linkType: hard
-
-"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6":
- version: 7.0.6
- resolution: "cross-spawn@npm:7.0.6"
- dependencies:
- path-key: "npm:^3.1.0"
- shebang-command: "npm:^2.0.0"
- which: "npm:^2.0.1"
- checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86
- languageName: node
- linkType: hard
-
-"crypto-browserify@npm:^3.12.0":
- version: 3.12.1
- resolution: "crypto-browserify@npm:3.12.1"
- dependencies:
- browserify-cipher: "npm:^1.0.1"
- browserify-sign: "npm:^4.2.3"
- create-ecdh: "npm:^4.0.4"
- create-hash: "npm:^1.2.0"
- create-hmac: "npm:^1.1.7"
- diffie-hellman: "npm:^5.0.3"
- hash-base: "npm:~3.0.4"
- inherits: "npm:^2.0.4"
- pbkdf2: "npm:^3.1.2"
- public-encrypt: "npm:^4.0.3"
- randombytes: "npm:^2.1.0"
- randomfill: "npm:^1.0.4"
- checksum: 10/13da0b5f61b3e8e68fcbebf0394f2b2b4d35a0d0ba6ab762720c13391d3697ea42735260a26328a6a3d872be7d4cb5abe98a7a8f88bc93da7ba59b993331b409
- languageName: node
- linkType: hard
-
-"crypto-random-string@npm:^2.0.0":
- version: 2.0.0
- resolution: "crypto-random-string@npm:2.0.0"
- checksum: 10/0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6
- languageName: node
- linkType: hard
-
-"css-box-model@npm:^1.2.0":
- version: 1.2.1
- resolution: "css-box-model@npm:1.2.1"
- dependencies:
- tiny-invariant: "npm:^1.0.6"
- checksum: 10/54778883733e59058b5de983cf442b9db6c1494543d4d84a3defd05b51b991a1865f59e4ae424e733af2aa1fdb6e0bd905cb73db0e7e548fbd89853859fedc81
- languageName: node
- linkType: hard
-
-"css-color-keywords@npm:^1.0.0":
- version: 1.0.0
- resolution: "css-color-keywords@npm:1.0.0"
- checksum: 10/8f125e3ad477bd03c77b533044bd9e8a6f7c0da52d49bbc0bbe38327b3829d6ba04d368ca49dd9ff3b667d2fc8f1698d891c198bbf8feade1a5501bf5a296408
- languageName: node
- linkType: hard
-
-"css-loader@npm:^6.8.1":
- version: 6.11.0
- resolution: "css-loader@npm:6.11.0"
- dependencies:
- icss-utils: "npm:^5.1.0"
- postcss: "npm:^8.4.33"
- postcss-modules-extract-imports: "npm:^3.1.0"
- postcss-modules-local-by-default: "npm:^4.0.5"
- postcss-modules-scope: "npm:^3.2.0"
- postcss-modules-values: "npm:^4.0.0"
- postcss-value-parser: "npm:^4.2.0"
- semver: "npm:^7.5.4"
- peerDependencies:
- "@rspack/core": 0.x || 1.x
- webpack: ^5.0.0
- peerDependenciesMeta:
- "@rspack/core":
- optional: true
- webpack:
- optional: true
- checksum: 10/9e3665509f6786d46683de5c5f5c4bdd4aa62396b4017b41dbbb41ea5ada4012c80ee1e3302b79b504bc24da7fa69e3552d99006cecc953e0d9eef4a3053b929
- languageName: node
- linkType: hard
-
-"css-select@npm:^4.1.3":
- version: 4.3.0
- resolution: "css-select@npm:4.3.0"
- dependencies:
- boolbase: "npm:^1.0.0"
- css-what: "npm:^6.0.1"
- domhandler: "npm:^4.3.1"
- domutils: "npm:^2.8.0"
- nth-check: "npm:^2.0.1"
- checksum: 10/8f7310c9af30ccaba8f72cb4a54d32232c53bf9ba05d019b693e16bfd7ba5df0affc1f4d74b1ee55923643d23b80a837eedcf60938c53356e479b04049ff9994
- languageName: node
- linkType: hard
-
-"css-to-react-native@npm:3.2.0":
- version: 3.2.0
- resolution: "css-to-react-native@npm:3.2.0"
- dependencies:
- camelize: "npm:^1.0.0"
- css-color-keywords: "npm:^1.0.0"
- postcss-value-parser: "npm:^4.0.2"
- checksum: 10/62ef744254e333abc696efdc945ecf13ad6ba7b726d0a39c0405b2fcb86542aa2f3fe7b7b6770f67ae9679d98b159b4d66353107bf7d6144a445eafcf5fa250a
- languageName: node
- linkType: hard
-
-"css-what@npm:^6.0.1":
- version: 6.2.2
- resolution: "css-what@npm:6.2.2"
- checksum: 10/3c5a53be94728089bd1716f915f7f96adde5dd8bf374610eb03982266f3d860bf1ebaf108cda30509d02ef748fe33eaa59aa75911e2c49ee05a85ef1f9fb5223
- languageName: node
- linkType: hard
-
-"css.escape@npm:^1.5.1":
- version: 1.5.1
- resolution: "css.escape@npm:1.5.1"
- checksum: 10/f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774
- languageName: node
- linkType: hard
-
-"cssesc@npm:^3.0.0":
- version: 3.0.0
- resolution: "cssesc@npm:3.0.0"
- bin:
- cssesc: bin/cssesc
- checksum: 10/0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12
- languageName: node
- linkType: hard
-
-"cssstyle@npm:^4.0.1":
- version: 4.6.0
- resolution: "cssstyle@npm:4.6.0"
- dependencies:
- "@asamuzakjp/css-color": "npm:^3.2.0"
- rrweb-cssom: "npm:^0.8.0"
- checksum: 10/1cb25c9d66b87adb165f978b75cdeb6f225d7e31ba30a8934666046a0be037e4e7200d359bfa79d4f1a4aef1083ea09633b81bcdb36a2f2ac888e8c73ea3a289
- languageName: node
- linkType: hard
-
-"csstype@npm:3.2.3, csstype@npm:^3.2.2":
- version: 3.2.3
- resolution: "csstype@npm:3.2.3"
- checksum: 10/ad41baf7e2ffac65ab544d79107bf7cd1a4bb9bab9ac3302f59ab4ba655d5e30942a8ae46e10ba160c6f4ecea464cc95b975ca2fefbdeeacd6ac63f12f99fe1f
- languageName: node
- linkType: hard
-
-"cuint@npm:^0.2.2":
- version: 0.2.2
- resolution: "cuint@npm:0.2.2"
- checksum: 10/c1b98971f4a1b32ce71ec82eac87df87b54ee85d982e3967a6dd89f19ffd3ebbbdb82e3738e489f475611b6ed126c0deba05ed9ecffea0a721a4d43773ce0670
- languageName: node
- linkType: hard
-
-"d@npm:1, d@npm:^1.0.1, d@npm:^1.0.2":
- version: 1.0.2
- resolution: "d@npm:1.0.2"
- dependencies:
- es5-ext: "npm:^0.10.64"
- type: "npm:^2.7.2"
- checksum: 10/a3f45ef964622f683f6a1cb9b8dcbd75ce490cd2f4ac9794099db3d8f0e2814d412d84cd3fe522e58feb1f273117bb480f29c5381f6225f0abca82517caaa77a
- languageName: node
- linkType: hard
-
-"data-uri-to-buffer@npm:^4.0.0":
- version: 4.0.1
- resolution: "data-uri-to-buffer@npm:4.0.1"
- checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c
- languageName: node
- linkType: hard
-
-"data-urls@npm:^5.0.0":
- version: 5.0.0
- resolution: "data-urls@npm:5.0.0"
- dependencies:
- whatwg-mimetype: "npm:^4.0.0"
- whatwg-url: "npm:^14.0.0"
- checksum: 10/5c40568c31b02641a70204ff233bc4e42d33717485d074244a98661e5f2a1e80e38fe05a5755dfaf2ee549f2ab509d6a3af2a85f4b2ad2c984e5d176695eaf46
- languageName: node
- linkType: hard
-
-"data-view-buffer@npm:^1.0.2":
- version: 1.0.2
- resolution: "data-view-buffer@npm:1.0.2"
- dependencies:
- call-bound: "npm:^1.0.3"
- es-errors: "npm:^1.3.0"
- is-data-view: "npm:^1.0.2"
- checksum: 10/c10b155a4e93999d3a215d08c23eea95f865e1f510b2e7748fcae1882b776df1afe8c99f483ace7fc0e5a3193ab08da138abebc9829d12003746c5a338c4d644
- languageName: node
- linkType: hard
-
-"data-view-byte-length@npm:^1.0.2":
- version: 1.0.2
- resolution: "data-view-byte-length@npm:1.0.2"
- dependencies:
- call-bound: "npm:^1.0.3"
- es-errors: "npm:^1.3.0"
- is-data-view: "npm:^1.0.2"
- checksum: 10/2a47055fcf1ab3ec41b00b6f738c6461a841391a643c9ed9befec1117c1765b4d492661d97fb7cc899200c328949dca6ff189d2c6537d96d60e8a02dfe3c95f7
- languageName: node
- linkType: hard
-
-"data-view-byte-offset@npm:^1.0.1":
- version: 1.0.1
- resolution: "data-view-byte-offset@npm:1.0.1"
- dependencies:
- call-bound: "npm:^1.0.2"
- es-errors: "npm:^1.3.0"
- is-data-view: "npm:^1.0.1"
- checksum: 10/fa3bdfa0968bea6711ee50375094b39f561bce3f15f9e558df59de9c25f0bdd4cddc002d9c1d70ac7772ebd36854a7e22d1761e7302a934e6f1c2263bcf44aa2
- languageName: node
- linkType: hard
-
-"date-fns@npm:^2.30.0":
- version: 2.30.0
- resolution: "date-fns@npm:2.30.0"
- dependencies:
- "@babel/runtime": "npm:^7.21.0"
- checksum: 10/70b3e8ea7aaaaeaa2cd80bd889622a4bcb5d8028b4de9162cbcda359db06e16ff6e9309e54eead5341e71031818497f19aaf9839c87d1aba1e27bb4796e758a9
- languageName: node
- linkType: hard
-
-"dateformat@npm:^4.6.3":
- version: 4.6.3
- resolution: "dateformat@npm:4.6.3"
- checksum: 10/5c149c91bf9ce2142c89f84eee4c585f0cb1f6faf2536b1af89873f862666a28529d1ccafc44750aa01384da2197c4f76f4e149a3cc0c1cb2c46f5cc45f2bcb5
- languageName: node
- linkType: hard
-
-"debug@npm:2.6.9, debug@npm:^2.2.0":
- version: 2.6.9
- resolution: "debug@npm:2.6.9"
- dependencies:
- ms: "npm:2.0.0"
- checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14
- languageName: node
- linkType: hard
-
-"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.0":
- version: 4.4.3
- resolution: "debug@npm:4.4.3"
- dependencies:
- ms: "npm:^2.1.3"
- peerDependenciesMeta:
- supports-color:
- optional: true
- checksum: 10/9ada3434ea2993800bd9a1e320bd4aa7af69659fb51cca685d390949434bc0a8873c21ed7c9b852af6f2455a55c6d050aa3937d52b3c69f796dab666f762acad
- languageName: node
- linkType: hard
-
-"debug@npm:^3.2.7":
- version: 3.2.7
- resolution: "debug@npm:3.2.7"
- dependencies:
- ms: "npm:^2.1.1"
- checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639
- languageName: node
- linkType: hard
-
-"decamelize-keys@npm:^1.1.0":
- version: 1.1.1
- resolution: "decamelize-keys@npm:1.1.1"
- dependencies:
- decamelize: "npm:^1.1.0"
- map-obj: "npm:^1.0.0"
- checksum: 10/71d5898174f17a8d2303cecc98ba0236e842948c4d042a8180d5e749be8442220bca2d16dd93bebd7b49e86c807814273212e4da0fae67be7c58c282ff76057a
- languageName: node
- linkType: hard
-
-"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0":
- version: 1.2.0
- resolution: "decamelize@npm:1.2.0"
- checksum: 10/ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa
- languageName: node
- linkType: hard
-
-"decimal.js@npm:^10.4.3":
- version: 10.6.0
- resolution: "decimal.js@npm:10.6.0"
- checksum: 10/c0d45842d47c311d11b38ce7ccc911121953d4df3ebb1465d92b31970eb4f6738a065426a06094af59bee4b0d64e42e7c8984abd57b6767c64ea90cf90bb4a69
- languageName: node
- linkType: hard
-
-"decode-named-character-reference@npm:^1.0.0":
- version: 1.2.0
- resolution: "decode-named-character-reference@npm:1.2.0"
- dependencies:
- character-entities: "npm:^2.0.0"
- checksum: 10/f26b23046c1a137c0b41fa51e3ce07ba8364640322c742a31570999784abc8572fc24cb108a76b14ff72ddb75d35aad3d14b10d7743639112145a2664b9d1864
- languageName: node
- linkType: hard
-
-"decode-uri-component@npm:^0.4.1":
- version: 0.4.1
- resolution: "decode-uri-component@npm:0.4.1"
- checksum: 10/74eec26f7bec3767164e37d526ef19bc1214cb0bbeeeea1c4f0ceb79299e5c38d3ba734e7243d829842aa140f24e5d020f54cc25b17c7082461c8eead8a72ce3
- languageName: node
- linkType: hard
-
-"decompress-response@npm:^3.3.0":
- version: 3.3.0
- resolution: "decompress-response@npm:3.3.0"
- dependencies:
- mimic-response: "npm:^1.0.0"
- checksum: 10/952552ac3bd7de2fc18015086b09468645c9638d98a551305e485230ada278c039c91116e946d07894b39ee53c0f0d5b6473f25a224029344354513b412d7380
- languageName: node
- linkType: hard
-
-"decompress-response@npm:^6.0.0":
- version: 6.0.0
- resolution: "decompress-response@npm:6.0.0"
- dependencies:
- mimic-response: "npm:^3.1.0"
- checksum: 10/d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812
- languageName: node
- linkType: hard
-
-"deep-equal@npm:^1.1.1":
- version: 1.1.2
- resolution: "deep-equal@npm:1.1.2"
- dependencies:
- is-arguments: "npm:^1.1.1"
- is-date-object: "npm:^1.0.5"
- is-regex: "npm:^1.1.4"
- object-is: "npm:^1.1.5"
- object-keys: "npm:^1.1.1"
- regexp.prototype.flags: "npm:^1.5.1"
- checksum: 10/c9d2ed2a0d93a2ee286bdb320cd51c78cd4c310b2161d1ede6476b67ca1d73860e7ff63b10927830aa4b9eca2a48073cfa54c8c4a1b2246397bda618c2138e97
- languageName: node
- linkType: hard
-
-"deep-equal@npm:^2.0.5":
- version: 2.2.3
- resolution: "deep-equal@npm:2.2.3"
- dependencies:
- array-buffer-byte-length: "npm:^1.0.0"
- call-bind: "npm:^1.0.5"
- es-get-iterator: "npm:^1.1.3"
- get-intrinsic: "npm:^1.2.2"
- is-arguments: "npm:^1.1.1"
- is-array-buffer: "npm:^3.0.2"
- is-date-object: "npm:^1.0.5"
- is-regex: "npm:^1.1.4"
- is-shared-array-buffer: "npm:^1.0.2"
- isarray: "npm:^2.0.5"
- object-is: "npm:^1.1.5"
- object-keys: "npm:^1.1.1"
- object.assign: "npm:^4.1.4"
- regexp.prototype.flags: "npm:^1.5.1"
- side-channel: "npm:^1.0.4"
- which-boxed-primitive: "npm:^1.0.2"
- which-collection: "npm:^1.0.1"
- which-typed-array: "npm:^1.1.13"
- checksum: 10/1ce49d0b71d0f14d8ef991a742665eccd488dfc9b3cada069d4d7a86291e591c92d2589c832811dea182b4015736b210acaaebce6184be356c1060d176f5a05f
- languageName: node
- linkType: hard
-
-"deep-extend@npm:^0.6.0":
- version: 0.6.0
- resolution: "deep-extend@npm:0.6.0"
- checksum: 10/7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7
- languageName: node
- linkType: hard
-
-"deep-is@npm:^0.1.3":
- version: 0.1.4
- resolution: "deep-is@npm:0.1.4"
- checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8
- languageName: node
- linkType: hard
-
-"deepmerge@npm:^4.0.0, deepmerge@npm:^4.2.2":
- version: 4.3.1
- resolution: "deepmerge@npm:4.3.1"
- checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529
- languageName: node
- linkType: hard
-
-"default-gateway@npm:^6.0.3":
- version: 6.0.3
- resolution: "default-gateway@npm:6.0.3"
- dependencies:
- execa: "npm:^5.0.0"
- checksum: 10/126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378
- languageName: node
- linkType: hard
-
-"defaults@npm:^1.0.3":
- version: 1.0.4
- resolution: "defaults@npm:1.0.4"
- dependencies:
- clone: "npm:^1.0.2"
- checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a
- languageName: node
- linkType: hard
-
-"defer-to-connect@npm:^1.0.1":
- version: 1.1.3
- resolution: "defer-to-connect@npm:1.1.3"
- checksum: 10/9491b301dcfa04956f989481ba7a43c2231044206269eb4ab64a52d6639ee15b1252262a789eb4239fb46ab63e44d4e408641bae8e0793d640aee55398cb3930
- languageName: node
- linkType: hard
-
-"defer-to-connect@npm:^2.0.0":
- version: 2.0.1
- resolution: "defer-to-connect@npm:2.0.1"
- checksum: 10/8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b
- languageName: node
- linkType: hard
-
-"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
- version: 1.1.4
- resolution: "define-data-property@npm:1.1.4"
- dependencies:
- es-define-property: "npm:^1.0.0"
- es-errors: "npm:^1.3.0"
- gopd: "npm:^1.0.1"
- checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae
- languageName: node
- linkType: hard
-
-"define-lazy-prop@npm:^2.0.0":
- version: 2.0.0
- resolution: "define-lazy-prop@npm:2.0.0"
- checksum: 10/0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2
- languageName: node
- linkType: hard
-
-"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1":
- version: 1.2.1
- resolution: "define-properties@npm:1.2.1"
- dependencies:
- define-data-property: "npm:^1.0.1"
- has-property-descriptors: "npm:^1.0.0"
- object-keys: "npm:^1.1.1"
- checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12
- languageName: node
- linkType: hard
-
-"defined@npm:^1.0.0":
- version: 1.0.1
- resolution: "defined@npm:1.0.1"
- checksum: 10/c4c3c41819721ddc07f689a53cfdf5edb085d8d762e410e9e7705fdbcccb41ff34a7331e795cdc2c416f5e524215413815b47051507c0cd4d3c8a8d74baf8ccb
- languageName: node
- linkType: hard
-
-"delayed-stream@npm:~1.0.0":
- version: 1.0.0
- resolution: "delayed-stream@npm:1.0.0"
- checksum: 10/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
- languageName: node
- linkType: hard
-
-"depd@npm:2.0.0, depd@npm:~2.0.0":
- version: 2.0.0
- resolution: "depd@npm:2.0.0"
- checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca
- languageName: node
- linkType: hard
-
-"depd@npm:~1.1.2":
- version: 1.1.2
- resolution: "depd@npm:1.1.2"
- checksum: 10/2ed6966fc14463a9e85451db330ab8ba041efed0b9a1a472dbfc6fbf2f82bab66491915f996b25d8517dddc36c8c74e24c30879b34877f3c4410733444a51d1d
- languageName: node
- linkType: hard
-
-"dependency-tree@npm:^9.0.0":
- version: 9.0.0
- resolution: "dependency-tree@npm:9.0.0"
- dependencies:
- commander: "npm:^2.20.3"
- debug: "npm:^4.3.1"
- filing-cabinet: "npm:^3.0.1"
- precinct: "npm:^9.0.0"
- typescript: "npm:^4.0.0"
- bin:
- dependency-tree: bin/cli.js
- checksum: 10/7ffc6009bf6eeea712cead1c18d57f87e2d9c0ca5a3327b12daf368de5350f85c613558ae4274e7b49b23010533746917d84ad75dd4fd4d731d61a2eaaf9e310
- languageName: node
- linkType: hard
-
-"deprecation@npm:^2.0.0":
- version: 2.3.1
- resolution: "deprecation@npm:2.3.1"
- checksum: 10/f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132
- languageName: node
- linkType: hard
-
-"dequal@npm:^2.0.0":
- version: 2.0.3
- resolution: "dequal@npm:2.0.3"
- checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b
- languageName: node
- linkType: hard
-
-"des.js@npm:^1.0.0":
- version: 1.1.0
- resolution: "des.js@npm:1.1.0"
- dependencies:
- inherits: "npm:^2.0.1"
- minimalistic-assert: "npm:^1.0.0"
- checksum: 10/d35fc82b5a0b2127b12699212e90b54ddd8134e0cf8d27a8c30507ed3572aa574ab71800cbb473769128a52dcf21acc3271c5c359508a5aa772e990df3b1a698
- languageName: node
- linkType: hard
-
-"destroy@npm:1.2.0, destroy@npm:~1.2.0":
- version: 1.2.0
- resolution: "destroy@npm:1.2.0"
- checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38
- languageName: node
- linkType: hard
-
-"detect-browser@npm:^5.3.0":
- version: 5.3.0
- resolution: "detect-browser@npm:5.3.0"
- checksum: 10/4a8551e1f5170633c9aa976f16c57f81f1044d071b2eb853c572bd817bf9cd0cc90c9c520d950edb5accd31b1b0c8ddb7a96e82040b0b5579f9f09c77446a117
- languageName: node
- linkType: hard
-
-"detect-indent@npm:^6.0.0":
- version: 6.1.0
- resolution: "detect-indent@npm:6.1.0"
- checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d
- languageName: node
- linkType: hard
-
-"detect-libc@npm:^2.0.0":
- version: 2.1.2
- resolution: "detect-libc@npm:2.1.2"
- checksum: 10/b736c8d97d5d46164c0d1bed53eb4e6a3b1d8530d460211e2d52f1c552875e706c58a5376854e4e54f8b828c9cada58c855288c968522eb93ac7696d65970766
- languageName: node
- linkType: hard
-
-"detect-node@npm:^2.0.4":
- version: 2.1.0
- resolution: "detect-node@npm:2.1.0"
- checksum: 10/832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e
- languageName: node
- linkType: hard
-
-"detective-amd@npm:^3.1.0":
- version: 3.1.2
- resolution: "detective-amd@npm:3.1.2"
- dependencies:
- ast-module-types: "npm:^3.0.0"
- escodegen: "npm:^2.0.0"
- get-amd-module-type: "npm:^3.0.0"
- node-source-walk: "npm:^4.2.0"
- bin:
- detective-amd: bin/cli.js
- checksum: 10/0b71555edad8e85c9a2ae85e2799d5faf2bdfe0de969587c9288ca76e717494678e34f444dffe32ffdd432e85ce50ca7017a5d0441a4855677a45a40c4590c74
- languageName: node
- linkType: hard
-
-"detective-amd@npm:^4.0.1, detective-amd@npm:^4.1.0":
- version: 4.2.0
- resolution: "detective-amd@npm:4.2.0"
- dependencies:
- ast-module-types: "npm:^4.0.0"
- escodegen: "npm:^2.0.0"
- get-amd-module-type: "npm:^4.1.0"
- node-source-walk: "npm:^5.0.1"
- bin:
- detective-amd: bin/cli.js
- checksum: 10/c1e829a3202045796105680c9fe90ac61f63b0ccecc12cc30c7204c9e7ec22a4e2c3e2357719b9346a4e3579eba778cdce9a050e642938e2a4c8b57b091278e4
- languageName: node
- linkType: hard
-
-"detective-cjs@npm:^3.1.1":
- version: 3.1.3
- resolution: "detective-cjs@npm:3.1.3"
- dependencies:
- ast-module-types: "npm:^3.0.0"
- node-source-walk: "npm:^4.0.0"
- checksum: 10/a691cb4afbbfea59d9aae0ee00752ec1a825a7ef18fc9178b53664975f162f3b537268590def009d9ce1cccfc5bc4f38cf775df08d0872aaacc05d96c72de85a
- languageName: node
- linkType: hard
-
-"detective-cjs@npm:^4.0.0, detective-cjs@npm:^4.1.0":
- version: 4.1.0
- resolution: "detective-cjs@npm:4.1.0"
- dependencies:
- ast-module-types: "npm:^4.0.0"
- node-source-walk: "npm:^5.0.1"
- checksum: 10/17e40183959e9f377333a9fd03dcf4cbabf1b7a9f588882311066ecaaad68ad16765a7b63ffc096fc91d2a3c14ac044ed1823257c76105c9cb96dfc141a806e2
- languageName: node
- linkType: hard
-
-"detective-es6@npm:^2.2.1":
- version: 2.2.2
- resolution: "detective-es6@npm:2.2.2"
- dependencies:
- node-source-walk: "npm:^4.0.0"
- checksum: 10/9ee9909c089f5dcd1f89eccd347d509197996280ba24e2e08742bbc5ca3eef655ff07b4edfd76b52d6b4376ba03b8ec17d621c9f9c4382a6ba233dc1b1d00d33
- languageName: node
- linkType: hard
-
-"detective-es6@npm:^3.0.0, detective-es6@npm:^3.0.1":
- version: 3.0.1
- resolution: "detective-es6@npm:3.0.1"
- dependencies:
- node-source-walk: "npm:^5.0.0"
- checksum: 10/881a0c16b49504c212e61a521231ebbb4299a6102b178230959c74d2ca22d5f7538dfaf9518d01fb568ff93eadcf61d865d4428c9fed893dd4c91a7f29d515c5
- languageName: node
- linkType: hard
-
-"detective-less@npm:^1.0.2":
- version: 1.0.2
- resolution: "detective-less@npm:1.0.2"
- dependencies:
- debug: "npm:^4.0.0"
- gonzales-pe: "npm:^4.2.3"
- node-source-walk: "npm:^4.0.0"
- checksum: 10/858936fbad87423bd5d7502ff5fafca023e7c99e4006ed01b31c12c4b5ff8697edce91419798479d857efec68ee8f022fcac64de5530db6a64012be600a2249e
- languageName: node
- linkType: hard
-
-"detective-postcss@npm:^4.0.0":
- version: 4.0.0
- resolution: "detective-postcss@npm:4.0.0"
- dependencies:
- debug: "npm:^4.1.1"
- is-url: "npm:^1.2.4"
- postcss: "npm:^8.1.7"
- postcss-values-parser: "npm:^2.0.1"
- checksum: 10/9bd5d35554bf51f255db2640f14745f83c10352ba4c4f499096ee4f21547fd7fab501f3dc4017aa7d3bee3b1b455f1162a8067d1810c62d4b1806c96bd6c238e
- languageName: node
- linkType: hard
-
-"detective-postcss@npm:^6.1.0, detective-postcss@npm:^6.1.1":
- version: 6.1.3
- resolution: "detective-postcss@npm:6.1.3"
- dependencies:
- is-url: "npm:^1.2.4"
- postcss: "npm:^8.4.23"
- postcss-values-parser: "npm:^6.0.2"
- checksum: 10/ee6e07fed20ac93a6ba84736b9c586a942a4a6b2df173f963f95ea753380c99e4a606da22b8d9e8407c50e356f3d893a127eb68cf84c97233a209e9fbbadb026
- languageName: node
- linkType: hard
-
-"detective-sass@npm:^3.0.1":
- version: 3.0.2
- resolution: "detective-sass@npm:3.0.2"
- dependencies:
- gonzales-pe: "npm:^4.3.0"
- node-source-walk: "npm:^4.0.0"
- checksum: 10/7489e5ae7dbed2eba89855cea21ad32321e8e92bd9f2d3b925e7feec0dd9aa8b4b865296525275938e573a3be9759715490038103cbc970570a1c48c4f2fd23d
- languageName: node
- linkType: hard
-
-"detective-sass@npm:^4.0.1, detective-sass@npm:^4.1.1":
- version: 4.1.3
- resolution: "detective-sass@npm:4.1.3"
- dependencies:
- gonzales-pe: "npm:^4.3.0"
- node-source-walk: "npm:^5.0.1"
- checksum: 10/91681e90037cc935f38b2867fab2aa5585848491b3a269dfb44b37721146ff83f57a540d964b15db22dc1f232623568bedfd13470ec7363e6111991d4d3fe573
- languageName: node
- linkType: hard
-
-"detective-scss@npm:^2.0.1":
- version: 2.0.2
- resolution: "detective-scss@npm:2.0.2"
- dependencies:
- gonzales-pe: "npm:^4.3.0"
- node-source-walk: "npm:^4.0.0"
- checksum: 10/515ff1b8946ec92baead48ef435efe1ea0f33ee1d98a7537dd700f1d06dd192f9ea0971c10343adcb08b561ab296d01c18a1f62d0b63163a8f4c09885a956e1a
- languageName: node
- linkType: hard
-
-"detective-scss@npm:^3.0.0, detective-scss@npm:^3.0.1":
- version: 3.1.1
- resolution: "detective-scss@npm:3.1.1"
- dependencies:
- gonzales-pe: "npm:^4.3.0"
- node-source-walk: "npm:^5.0.1"
- checksum: 10/3d9c0468216c822c25572e700b9aba1e2e2797d336b6b84fd455d83ce849263324855008d1e58d6ccdf9c7a4f099e31277b99e885407cd19674e0bb10fc458cd
- languageName: node
- linkType: hard
-
-"detective-stylus@npm:^1.0.0":
- version: 1.0.3
- resolution: "detective-stylus@npm:1.0.3"
- checksum: 10/2723da93545f3a55a2a7eaa76b50712457af3c93c2b003e95d02f4c240d5e5206a5df99209a4f5b54128c11fc4270c2de1d7316b4f7d02b359483ae74f5a6637
- languageName: node
- linkType: hard
-
-"detective-stylus@npm:^2.0.1":
- version: 2.0.1
- resolution: "detective-stylus@npm:2.0.1"
- checksum: 10/c701ba6df3e6b5346aa5dd37b8329a9069a20fd7d075933e2e3b819a75922a2adab809143591151e7337183d59c980e6bc64ad6e51ce96de864575221c1b9506
- languageName: node
- linkType: hard
-
-"detective-stylus@npm:^3.0.0":
- version: 3.0.0
- resolution: "detective-stylus@npm:3.0.0"
- checksum: 10/e82eda490406d289f7b22050423ad69eb1c0f0d88414adaa292de4ab533be3c50d4cf512a9fefba426f3ad20789f0c0db3b0d32f70162112ca89034bbc5ca9d3
- languageName: node
- linkType: hard
-
-"detective-typescript@npm:^7.0.0":
- version: 7.0.2
- resolution: "detective-typescript@npm:7.0.2"
- dependencies:
- "@typescript-eslint/typescript-estree": "npm:^4.33.0"
- ast-module-types: "npm:^2.7.1"
- node-source-walk: "npm:^4.2.0"
- typescript: "npm:^3.9.10"
- checksum: 10/77703410baa242029dc5e7d02cca7a26278dea498ec1c3320f92efa08a85263affc3b102fc2b09952ece1d2c851a3808733d7bfa9ed11944a7c0f39920e33ec9
- languageName: node
- linkType: hard
-
-"detective-typescript@npm:^9.0.0, detective-typescript@npm:^9.1.1":
- version: 9.1.1
- resolution: "detective-typescript@npm:9.1.1"
- dependencies:
- "@typescript-eslint/typescript-estree": "npm:^5.55.0"
- ast-module-types: "npm:^4.0.0"
- node-source-walk: "npm:^5.0.1"
- typescript: "npm:^4.9.5"
- checksum: 10/5f50801f622740d4e9d724ce04518ceb81591215bf18c18c5d22f6f3948df49dfb0a8bbe3596dac47220a37028bc2879ccd7a968f265217c9855817bda4622f5
- languageName: node
- linkType: hard
-
-"detective@npm:^4.3.1":
- version: 4.7.1
- resolution: "detective@npm:4.7.1"
- dependencies:
- acorn: "npm:^5.2.1"
- defined: "npm:^1.0.0"
- checksum: 10/7c61b65e10eed448848824755835bc2e6a5efaac9132c2ea0e934be0693dcf5a4dc76e9a30211886cf2dc0f8d59d711f06ee951e50ccb617fbe24e124c7c4056
- languageName: node
- linkType: hard
-
-"devlop@npm:^1.0.0, devlop@npm:^1.1.0":
- version: 1.1.0
- resolution: "devlop@npm:1.1.0"
- dependencies:
- dequal: "npm:^2.0.0"
- checksum: 10/3cc5f903d02d279d6dc4aa71ab6ed9898b9f4d1f861cc5421ce7357893c21b9520de78afb203c92bd650a6977ad0ca98195453a0707a39958cf5fea3b0a8ddd8
- languageName: node
- linkType: hard
-
-"devtron@npm:^1.4.0":
- version: 1.4.0
- resolution: "devtron@npm:1.4.0"
- dependencies:
- accessibility-developer-tools: "npm:^2.11.0"
- highlight.js: "npm:^9.3.0"
- humanize-plus: "npm:^1.8.1"
- checksum: 10/987f37f983af6db4ce1b980115f4a24251080c0b370f563c2e7e3b5b944bd6d395d9284e996dcd319066a35d9e94b72dcd9a8ad7616d0f068f4eb98ecdd195e4
- languageName: node
- linkType: hard
-
-"diffie-hellman@npm:^5.0.3":
- version: 5.0.3
- resolution: "diffie-hellman@npm:5.0.3"
- dependencies:
- bn.js: "npm:^4.1.0"
- miller-rabin: "npm:^4.0.0"
- randombytes: "npm:^2.0.0"
- checksum: 10/2ff28231f93b27a4903461432d2de831df02e3568ea7633d5d7b6167eb73077f823b2bca26de6ba4f5c7ecd10a3df5aa94d376d136ab6209948c03cc4e4ac1fe
- languageName: node
- linkType: hard
-
-"dir-compare@npm:^3.0.0":
- version: 3.3.0
- resolution: "dir-compare@npm:3.3.0"
- dependencies:
- buffer-equal: "npm:^1.0.0"
- minimatch: "npm:^3.0.4"
- checksum: 10/4e4ca87564bd1fe86d5b704842e1ba069b172ae507e0420e5cef68dbbc9c5a42753416be38488587bc2c7944a4b4a580af724a686e9ad79150012d1d02efe769
- languageName: node
- linkType: hard
-
-"dir-glob@npm:^3.0.1":
- version: 3.0.1
- resolution: "dir-glob@npm:3.0.1"
- dependencies:
- path-type: "npm:^4.0.0"
- checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615
- languageName: node
- linkType: hard
-
-"dmg-builder@npm:24.10.0":
- version: 24.10.0
- resolution: "dmg-builder@npm:24.10.0"
- dependencies:
- app-builder-lib: "npm:24.10.0"
- builder-util: "npm:24.9.4"
- builder-util-runtime: "npm:9.2.3"
- dmg-license: "npm:^1.0.11"
- fs-extra: "npm:^10.1.0"
- iconv-lite: "npm:^0.6.2"
- js-yaml: "npm:^4.1.0"
- dependenciesMeta:
- dmg-license:
- optional: true
- checksum: 10/237d071ed74b38ab817d85685790b1daf3d415377c0842de850226dd1885441ab5107d9a7193e23660b1c17054b6fca85d4d9c28e7efd4944c5b879aa5e0727c
- languageName: node
- linkType: hard
-
-"dmg-license@npm:^1.0.11":
- version: 1.0.11
- resolution: "dmg-license@npm:1.0.11"
- dependencies:
- "@types/plist": "npm:^3.0.1"
- "@types/verror": "npm:^1.10.3"
- ajv: "npm:^6.10.0"
- crc: "npm:^3.8.0"
- iconv-corefoundation: "npm:^1.1.7"
- plist: "npm:^3.0.4"
- smart-buffer: "npm:^4.0.2"
- verror: "npm:^1.10.0"
- bin:
- dmg-license: bin/dmg-license.js
- conditions: os=darwin
- languageName: node
- linkType: hard
-
-"dns-packet@npm:^5.2.2, dns-packet@npm:^5.6.1":
- version: 5.6.1
- resolution: "dns-packet@npm:5.6.1"
- dependencies:
- "@leichtgewicht/ip-codec": "npm:^2.0.1"
- checksum: 10/ef5496dd5a906e22ed262cbe1a6f5d532c0893c4f1884a7aa37d4d0d8b8376a2b43f749aab087c8bb1354d67b40444f7fca8de4017b161a4cea468543061aed3
- languageName: node
- linkType: hard
-
-"dnslink-cloudflare@npm:^3.0.0":
- version: 3.0.0
- resolution: "dnslink-cloudflare@npm:3.0.0"
- dependencies:
- got: "npm:^11.5.1"
- meow: "npm:^7.0.1"
- bin:
- dnslink-cloudflare: bin/index.js
- checksum: 10/3142cddfdfe115d0a5fa8b78a47a3cd3a142b0d4215de6f192a42259008cb9fc713b50d72a65d9d44d15a90aa1864897126db9a17100fbd7d87b3fabd8ffde85
- languageName: node
- linkType: hard
-
-"docker-compose@npm:^0.24.8":
- version: 0.24.8
- resolution: "docker-compose@npm:0.24.8"
- dependencies:
- yaml: "npm:^2.2.2"
- checksum: 10/2b8526f9797a55c819ff2d7dcea57085b012b3a3d77bc2e1a6b45c3fc9e82196312f5298cbe8299966462454a5ac8f68814bb407736b4385e0d226a2a39e877a
- languageName: node
- linkType: hard
-
-"docker-modem@npm:^5.0.6":
- version: 5.0.6
- resolution: "docker-modem@npm:5.0.6"
- dependencies:
- debug: "npm:^4.1.1"
- readable-stream: "npm:^3.5.0"
- split-ca: "npm:^1.0.1"
- ssh2: "npm:^1.15.0"
- checksum: 10/4977797814c29205f0762215f2e3e26600986bb65139018ff6840ff4c596e5d19f3002be1abcc5e73e3828870bb73bab28275a6458ad027ed56ab61fca014b6d
- languageName: node
- linkType: hard
-
-"dockerode@npm:^4.0.5":
- version: 4.0.9
- resolution: "dockerode@npm:4.0.9"
- dependencies:
- "@balena/dockerignore": "npm:^1.0.2"
- "@grpc/grpc-js": "npm:^1.11.1"
- "@grpc/proto-loader": "npm:^0.7.13"
- docker-modem: "npm:^5.0.6"
- protobufjs: "npm:^7.3.2"
- tar-fs: "npm:^2.1.4"
- uuid: "npm:^10.0.0"
- checksum: 10/58bb4f39652de88212c008d1156ab679ac561508ada0a86db4c2fc75dc13d40c0ba1afb725a28e0c899c93a76ad822b332e4d5207c36b8b929bae5730d0bd791
- languageName: node
- linkType: hard
-
-"doctrine@npm:^2.1.0":
- version: 2.1.0
- resolution: "doctrine@npm:2.1.0"
- dependencies:
- esutils: "npm:^2.0.2"
- checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474
- languageName: node
- linkType: hard
-
-"doctrine@npm:^3.0.0":
- version: 3.0.0
- resolution: "doctrine@npm:3.0.0"
- dependencies:
- esutils: "npm:^2.0.2"
- checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48
- languageName: node
- linkType: hard
-
-"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9":
- version: 0.5.16
- resolution: "dom-accessibility-api@npm:0.5.16"
- checksum: 10/377b4a7f9eae0a5d72e1068c369c99e0e4ca17fdfd5219f3abd32a73a590749a267475a59d7b03a891f9b673c27429133a818c44b2e47e32fec024b34274e2ca
- languageName: node
- linkType: hard
-
-"dom-converter@npm:^0.2.0":
- version: 0.2.0
- resolution: "dom-converter@npm:0.2.0"
- dependencies:
- utila: "npm:~0.4"
- checksum: 10/71b22f56bce6255a963694a72860a99f08763cf500f02ff38ce4c7489f95b07e7a0069f10b04c7d200e21375474abe01232833ca1600f104bdee7173e493a5b9
- languageName: node
- linkType: hard
-
-"dom-serializer@npm:^1.0.1":
- version: 1.4.1
- resolution: "dom-serializer@npm:1.4.1"
- dependencies:
- domelementtype: "npm:^2.0.1"
- domhandler: "npm:^4.2.0"
- entities: "npm:^2.0.0"
- checksum: 10/53b217bcfed4a0f90dd47f34f239b1c81fff53ffa39d164d722325817fdb554903b145c2d12c8421ce0df7d31c1b180caf7eacd3c86391dd925f803df8027dcc
- languageName: node
- linkType: hard
-
-"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0":
- version: 2.3.0
- resolution: "domelementtype@npm:2.3.0"
- checksum: 10/ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6
- languageName: node
- linkType: hard
-
-"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1":
- version: 4.3.1
- resolution: "domhandler@npm:4.3.1"
- dependencies:
- domelementtype: "npm:^2.2.0"
- checksum: 10/e0d2af7403997a3ca040a9ace4a233b75ebe321e0ef628b417e46d619d65d47781b2f2038b6c2ef6e56e73e66aec99caf6a12c7e687ecff18ef74af6dfbde5de
- languageName: node
- linkType: hard
-
-"domutils@npm:^2.5.2, domutils@npm:^2.8.0":
- version: 2.8.0
- resolution: "domutils@npm:2.8.0"
- dependencies:
- dom-serializer: "npm:^1.0.1"
- domelementtype: "npm:^2.2.0"
- domhandler: "npm:^4.2.0"
- checksum: 10/1f316a03f00b09a8893d4a25d297d5cbffd02c564509dede28ef72d5ce38d93f6d61f1de88d439f31b14a1d9b42f587ed711b9e8b1b4d3bf6001399832bfc4e0
- languageName: node
- linkType: hard
-
-"dot-case@npm:^3.0.4":
- version: 3.0.4
- resolution: "dot-case@npm:3.0.4"
- dependencies:
- no-case: "npm:^3.0.4"
- tslib: "npm:^2.0.3"
- checksum: 10/a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169
- languageName: node
- linkType: hard
-
-"dot-prop@npm:^5.2.0":
- version: 5.3.0
- resolution: "dot-prop@npm:5.3.0"
- dependencies:
- is-obj: "npm:^2.0.0"
- checksum: 10/33b2561617bd5c73cf9305368ba4638871c5dbf9c8100c8335acd2e2d590a81ec0e75c11cfaea5cc3cf8c2f668cad4beddb52c11856d0c9e666348eee1baf57a
- languageName: node
- linkType: hard
-
-"dotenv-expand@npm:^5.1.0":
- version: 5.1.0
- resolution: "dotenv-expand@npm:5.1.0"
- checksum: 10/d52af2a6e4642979ae4221408f1b75102508dbe4f5bac1c0613f92a3cf3880d5c31f86b2f5cff3273f7c23e10421e75028546e8b6cd0376fcd20e3803b374e15
- languageName: node
- linkType: hard
-
-"dotenv@npm:^8.2.0":
- version: 8.6.0
- resolution: "dotenv@npm:8.6.0"
- checksum: 10/31d7b5c010cebb80046ba6853d703f9573369b00b15129536494f04b0af4ea0060ce8646e3af58b455af2f6f1237879dd261a5831656410ec92561ae1ea44508
- languageName: node
- linkType: hard
-
-"dotenv@npm:^9.0.2":
- version: 9.0.2
- resolution: "dotenv@npm:9.0.2"
- checksum: 10/8a31ab90b097907a42932b972228e10470e8f0de9aea58c7f2134582e7810f229a2ce5861af40efeb7751c7bf2aae0c8347d72ba3935b72c834fbbac30f80f08
- languageName: node
- linkType: hard
-
-"drbg.js@npm:^1.0.1":
- version: 1.0.1
- resolution: "drbg.js@npm:1.0.1"
- dependencies:
- browserify-aes: "npm:^1.0.6"
- create-hash: "npm:^1.1.2"
- create-hmac: "npm:^1.1.4"
- checksum: 10/a50e770cf641ec364f6b8de8e955c63e0db59f0af6525cc0306f392f4361427e37bf5c74373b31589b24e98d523acc7bbab4c8ee421bc35a2a8a82fe6e06ce95
- languageName: node
- linkType: hard
-
-"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1":
- version: 1.0.1
- resolution: "dunder-proto@npm:1.0.1"
- dependencies:
- call-bind-apply-helpers: "npm:^1.0.1"
- es-errors: "npm:^1.3.0"
- gopd: "npm:^1.2.0"
- checksum: 10/5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934
- languageName: node
- linkType: hard
-
-"duplexer3@npm:^0.1.4":
- version: 0.1.5
- resolution: "duplexer3@npm:0.1.5"
- checksum: 10/e677cb4c48f031ca728601d6a20bf6aed4c629d69ef9643cb89c67583d673c4ec9317cc6427501f38bd8c368d3a18f173987cc02bd99d8cf8fe3d94259a22a20
- languageName: node
- linkType: hard
-
-"duplexer@npm:^0.1.2":
- version: 0.1.2
- resolution: "duplexer@npm:0.1.2"
- checksum: 10/62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0
- languageName: node
- linkType: hard
-
-"duplexify@npm:^4.1.1":
- version: 4.1.3
- resolution: "duplexify@npm:4.1.3"
- dependencies:
- end-of-stream: "npm:^1.4.1"
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^3.1.1"
- stream-shift: "npm:^1.0.2"
- checksum: 10/b44b98ba0ffac3a658b4b1bf877219e996db288c5ae6f3dc55ca9b2cbef7df60c10eabfdd947f3d73a623eb9975a74a66d6d61e6f26bff90155315adb362aa77
- languageName: node
- linkType: hard
-
-"eastasianwidth@npm:^0.2.0":
- version: 0.2.0
- resolution: "eastasianwidth@npm:0.2.0"
- checksum: 10/9b1d3e1baefeaf7d70799db8774149cef33b97183a6addceeba0cf6b85ba23ee2686f302f14482006df32df75d32b17c509c143a3689627929e4a8efaf483952
- languageName: node
- linkType: hard
-
-"ed2curve@npm:^0.3.0":
- version: 0.3.0
- resolution: "ed2curve@npm:0.3.0"
- dependencies:
- tweetnacl: "npm:1.x.x"
- checksum: 10/b5551bea14bd101a0d674114b1240abcdde11b475f48ab0b8d4d52452257f87ee27b1848d5760b8356224b6ef82b0746a9ac100f5090b4a4de00a3984526b61a
- languageName: node
- linkType: hard
-
-"ee-first@npm:1.1.1":
- version: 1.1.1
- resolution: "ee-first@npm:1.1.1"
- checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f
- languageName: node
- linkType: hard
-
-"ejs@npm:^3.1.5, ejs@npm:^3.1.8":
- version: 3.1.10
- resolution: "ejs@npm:3.1.10"
- dependencies:
- jake: "npm:^10.8.5"
- bin:
- ejs: bin/cli.js
- checksum: 10/a9cb7d7cd13b7b1cd0be5c4788e44dd10d92f7285d2f65b942f33e127230c054f99a42db4d99f766d8dbc6c57e94799593ee66a14efd7c8dd70c4812bf6aa384
- languageName: node
- linkType: hard
-
-"electron-builder-notarize@npm:^1.5.1":
- version: 1.5.2
- resolution: "electron-builder-notarize@npm:1.5.2"
- dependencies:
- dotenv: "npm:^8.2.0"
- electron-notarize: "npm:^1.1.1"
- js-yaml: "npm:^3.14.0"
- read-pkg-up: "npm:^7.0.0"
- peerDependencies:
- electron-builder: ">= 20.44.4"
- checksum: 10/729377aa72e6462b8e46eb077a2932c97db2408a55ade7b06d8ddce6bd067246d83b9a73b4534758f4a3ef31158dcd74e56aa4f4ea2e11df6ecd6fd51573e060
- languageName: node
- linkType: hard
-
-"electron-builder@npm:24.10.0":
- version: 24.10.0
- resolution: "electron-builder@npm:24.10.0"
- dependencies:
- app-builder-lib: "npm:24.10.0"
- builder-util: "npm:24.9.4"
- builder-util-runtime: "npm:9.2.3"
- chalk: "npm:^4.1.2"
- dmg-builder: "npm:24.10.0"
- fs-extra: "npm:^10.1.0"
- is-ci: "npm:^3.0.0"
- lazy-val: "npm:^1.0.5"
- read-config-file: "npm:6.3.2"
- simple-update-notifier: "npm:2.0.0"
- yargs: "npm:^17.6.2"
- bin:
- electron-builder: cli.js
- install-app-deps: install-app-deps.js
- checksum: 10/0773bcafdcfa00f70d441f0a9cff1de8b6b87a8ad65285b6bcf4f2a9f6cc17640759b2b4bff408bf3bfbe15b00598de020a87f2cc7fe84b2338e7427dfd9a24f
- languageName: node
- linkType: hard
-
-"electron-log@npm:^5.0.1":
- version: 5.4.3
- resolution: "electron-log@npm:5.4.3"
- checksum: 10/0162345d56c644378f23339e586e9046a0d646be0436c624b51f4bf560b376bc7eb9569b1ea3af04085fafd662af6f559ac5d4616a26910de192996ffb74948d
- languageName: node
- linkType: hard
-
-"electron-notarize@npm:^1.1.1":
- version: 1.2.2
- resolution: "electron-notarize@npm:1.2.2"
- dependencies:
- debug: "npm:^4.1.1"
- fs-extra: "npm:^9.0.1"
- checksum: 10/c66b175b6f584d7bfc67a83eb56c2f4ec0264aab0f693d0a0b4cc2d825b05ada8d119bec4a2ac0fcc1add93dca3282a57bc3dbeb805b0c546e013149905efc40
- languageName: node
- linkType: hard
-
-"electron-publish@npm:24.9.4":
- version: 24.9.4
- resolution: "electron-publish@npm:24.9.4"
- dependencies:
- "@types/fs-extra": "npm:^9.0.11"
- builder-util: "npm:24.9.4"
- builder-util-runtime: "npm:9.2.3"
- chalk: "npm:^4.1.2"
- fs-extra: "npm:^10.1.0"
- lazy-val: "npm:^1.0.5"
- mime: "npm:^2.5.2"
- checksum: 10/c4e9397b5ef070dbede48fece9d36d3dcaec7df1052f49744df790ff9793da24d52c22d949067dd7a5cbf9f5f06cd2243c221ec5bfdab3080b4c37f5b39a0473
- languageName: node
- linkType: hard
-
-"electron-to-chromium@npm:^1.5.263":
- version: 1.5.267
- resolution: "electron-to-chromium@npm:1.5.267"
- checksum: 10/05e55e810cb6a3cda8d29dfdeec7ac0e59727a77a796a157f1a1d65edac16d45eed69ed5c99e354872ab16c48967c2d0a0600653051ae380a3b7a4d6210b1e60
- languageName: node
- linkType: hard
-
-"electron-updater@npm:^6.1.7":
- version: 6.7.3
- resolution: "electron-updater@npm:6.7.3"
- dependencies:
- builder-util-runtime: "npm:9.5.1"
- fs-extra: "npm:^10.1.0"
- js-yaml: "npm:^4.1.0"
- lazy-val: "npm:^1.0.5"
- lodash.escaperegexp: "npm:^4.1.2"
- lodash.isequal: "npm:^4.5.0"
- semver: "npm:~7.7.3"
- tiny-typed-emitter: "npm:^2.1.0"
- checksum: 10/c274b26c79890b09289a3a92f95c8ce5b20275622c343ce0ed3d48ae9b1f93711eb0e0fd518507c106ddbf4737dd99dbac1f84cf7090c23e8f977e44338510b2
- languageName: node
- linkType: hard
-
-"electron@npm:28.0.0":
- version: 28.0.0
- resolution: "electron@npm:28.0.0"
- dependencies:
- "@electron/get": "npm:^2.0.0"
- "@types/node": "npm:^18.11.18"
- extract-zip: "npm:^2.0.1"
- bin:
- electron: cli.js
- checksum: 10/964b765576343d4ed935608964808471ef68253a1aca711f0587322c356dab335cf2ab76c2c710b8a59b3bc6c3c0f10eff6f2fbab34614a7d813a0100b8ec7eb
- languageName: node
- linkType: hard
-
-"elliptic@npm:^6.5.3, elliptic@npm:^6.5.4, elliptic@npm:^6.5.7, elliptic@npm:^6.6.1":
- version: 6.6.1
- resolution: "elliptic@npm:6.6.1"
- dependencies:
- bn.js: "npm:^4.11.9"
- brorand: "npm:^1.1.0"
- hash.js: "npm:^1.0.0"
- hmac-drbg: "npm:^1.0.1"
- inherits: "npm:^2.0.4"
- minimalistic-assert: "npm:^1.0.1"
- minimalistic-crypto-utils: "npm:^1.0.1"
- checksum: 10/dc678c9febd89a219c4008ba3a9abb82237be853d9fd171cd602c8fb5ec39927e65c6b5e7a1b2a4ea82ee8e0ded72275e7932bb2da04a5790c2638b818e4e1c5
- languageName: node
- linkType: hard
-
-"email-addresses@npm:^5.0.0":
- version: 5.0.0
- resolution: "email-addresses@npm:5.0.0"
- checksum: 10/a7897e3b43893f1e9cc61f0e8c7cbe59c36c6cdd0b5ad7e4061f1976893260f496fd799fb78b2621e483a95fa6c7caec4a035ba320193d9540159dfcdb737004
- languageName: node
- linkType: hard
-
-"emoji-regex@npm:^8.0.0":
- version: 8.0.0
- resolution: "emoji-regex@npm:8.0.0"
- checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1
- languageName: node
- linkType: hard
-
-"emoji-regex@npm:^9.2.2":
- version: 9.2.2
- resolution: "emoji-regex@npm:9.2.2"
- checksum: 10/915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8
- languageName: node
- linkType: hard
-
-"empty@npm:^0.10.1":
- version: 0.10.1
- resolution: "empty@npm:0.10.1"
- dependencies:
- envify: "npm:^3.4.0"
- checksum: 10/58a33961954f6a3383f3aaaccccf683bbd916ea99b9378bc5fb1d024bec102db95320d4c6bc7d284d92e97348b2300b13eeceb3f60602bace54a86ab418e52c9
- languageName: node
- linkType: hard
-
-"encodeurl@npm:~2.0.0":
- version: 2.0.0
- resolution: "encodeurl@npm:2.0.0"
- checksum: 10/abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe
- languageName: node
- linkType: hard
-
-"encoding@npm:^0.1.13":
- version: 0.1.13
- resolution: "encoding@npm:0.1.13"
- dependencies:
- iconv-lite: "npm:^0.6.2"
- checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f
- languageName: node
- linkType: hard
-
-"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1":
- version: 1.4.5
- resolution: "end-of-stream@npm:1.4.5"
- dependencies:
- once: "npm:^1.4.0"
- checksum: 10/1e0cfa6e7f49887544e03314f9dfc56a8cb6dde910cbb445983ecc2ff426fc05946df9d75d8a21a3a64f2cecfe1bf88f773952029f46756b2ed64a24e95b1fb8
- languageName: node
- linkType: hard
-
-"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.17.4, enhanced-resolve@npm:^5.8.3":
- version: 5.18.4
- resolution: "enhanced-resolve@npm:5.18.4"
- dependencies:
- graceful-fs: "npm:^4.2.4"
- tapable: "npm:^2.2.0"
- checksum: 10/dcd477cb694d9cc84109a03269c13d3da0851d50099fd3fa7c56b2867dd720d59c7f1431bd47c9cad2825ad52588bd71d3a68cf1e5ee0bc57551d8a3fab4e6f2
- languageName: node
- linkType: hard
-
-"ensure-type@npm:^1.5.0":
- version: 1.5.1
- resolution: "ensure-type@npm:1.5.1"
- checksum: 10/a88b004b608aff24ac0474b3cbbc9a78b11106f314dcde233157a6b2022de45d43c86c03fb2edc50759426c0f852b9a354402a956b5e7dadc7af86866daef663
- languageName: node
- linkType: hard
-
-"entities@npm:^2.0.0":
- version: 2.2.0
- resolution: "entities@npm:2.2.0"
- checksum: 10/2c765221ee324dbe25e1b8ca5d1bf2a4d39e750548f2e85cbf7ca1d167d709689ddf1796623e66666ae747364c11ed512c03b48c5bbe70968d30f2a4009509b7
- languageName: node
- linkType: hard
-
-"entities@npm:^6.0.0":
- version: 6.0.1
- resolution: "entities@npm:6.0.1"
- checksum: 10/62af1307202884349d2867f0aac5c60d8b57102ea0b0e768b16246099512c28e239254ad772d6834e7e14cb1b6f153fc3d0c031934e3183b086c86d3838d874a
- languageName: node
- linkType: hard
-
-"env-paths@npm:^2.2.0":
- version: 2.2.1
- resolution: "env-paths@npm:2.2.1"
- checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e
- languageName: node
- linkType: hard
-
-"envify@npm:^3.4.0":
- version: 3.4.1
- resolution: "envify@npm:3.4.1"
- dependencies:
- jstransform: "npm:^11.0.3"
- through: "npm:~2.3.4"
- bin:
- envify: bin/envify
- checksum: 10/a4fb63291b1cca6c5b161ffd7f0d294a97d3de7150031ab79e45e57f958c031753a963063cc9bc9177f5604b1adc217297fe455b0cfada7673ec82fecb5f803f
- languageName: node
- linkType: hard
-
-"envinfo@npm:^7.7.3":
- version: 7.21.0
- resolution: "envinfo@npm:7.21.0"
- bin:
- envinfo: dist/cli.js
- checksum: 10/2469a72802ded4e43c007dcd1c5dd44d8049b7d18276874dcc3f3f14a54bc72806fa35e82760974ca1442d82f5f9df3651048204e72791f81bcdd5f07422a561
- languageName: node
- linkType: hard
-
-"eol@npm:^0.9.1":
- version: 0.9.1
- resolution: "eol@npm:0.9.1"
- checksum: 10/9d3fd93bb2bb5c69c7fe8dfb97b62213ed95857a2e90f5db3110415993e8a989d87fb011755ce22fdb92ca36fbe4e111b395a6f4ce00b9b51d3f00f19c2acf52
- languageName: node
- linkType: hard
-
-"err-code@npm:^2.0.2":
- version: 2.0.3
- resolution: "err-code@npm:2.0.3"
- checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd
- languageName: node
- linkType: hard
-
-"error-ex@npm:^1.3.1":
- version: 1.3.4
- resolution: "error-ex@npm:1.3.4"
- dependencies:
- is-arrayish: "npm:^0.2.1"
- checksum: 10/ae3939fd4a55b1404e877df2080c6b59acc516d5b7f08a181040f78f38b4e2399633bfed2d9a21b91c803713fff7295ac70bebd8f3657ef352a95c2cd9aa2e4b
- languageName: node
- linkType: hard
-
-"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0, es-abstract@npm:^1.24.1":
- version: 1.24.1
- resolution: "es-abstract@npm:1.24.1"
- dependencies:
- array-buffer-byte-length: "npm:^1.0.2"
- arraybuffer.prototype.slice: "npm:^1.0.4"
- available-typed-arrays: "npm:^1.0.7"
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- data-view-buffer: "npm:^1.0.2"
- data-view-byte-length: "npm:^1.0.2"
- data-view-byte-offset: "npm:^1.0.1"
- es-define-property: "npm:^1.0.1"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.1.1"
- es-set-tostringtag: "npm:^2.1.0"
- es-to-primitive: "npm:^1.3.0"
- function.prototype.name: "npm:^1.1.8"
- get-intrinsic: "npm:^1.3.0"
- get-proto: "npm:^1.0.1"
- get-symbol-description: "npm:^1.1.0"
- globalthis: "npm:^1.0.4"
- gopd: "npm:^1.2.0"
- has-property-descriptors: "npm:^1.0.2"
- has-proto: "npm:^1.2.0"
- has-symbols: "npm:^1.1.0"
- hasown: "npm:^2.0.2"
- internal-slot: "npm:^1.1.0"
- is-array-buffer: "npm:^3.0.5"
- is-callable: "npm:^1.2.7"
- is-data-view: "npm:^1.0.2"
- is-negative-zero: "npm:^2.0.3"
- is-regex: "npm:^1.2.1"
- is-set: "npm:^2.0.3"
- is-shared-array-buffer: "npm:^1.0.4"
- is-string: "npm:^1.1.1"
- is-typed-array: "npm:^1.1.15"
- is-weakref: "npm:^1.1.1"
- math-intrinsics: "npm:^1.1.0"
- object-inspect: "npm:^1.13.4"
- object-keys: "npm:^1.1.1"
- object.assign: "npm:^4.1.7"
- own-keys: "npm:^1.0.1"
- regexp.prototype.flags: "npm:^1.5.4"
- safe-array-concat: "npm:^1.1.3"
- safe-push-apply: "npm:^1.0.0"
- safe-regex-test: "npm:^1.1.0"
- set-proto: "npm:^1.0.0"
- stop-iteration-iterator: "npm:^1.1.0"
- string.prototype.trim: "npm:^1.2.10"
- string.prototype.trimend: "npm:^1.0.9"
- string.prototype.trimstart: "npm:^1.0.8"
- typed-array-buffer: "npm:^1.0.3"
- typed-array-byte-length: "npm:^1.0.3"
- typed-array-byte-offset: "npm:^1.0.4"
- typed-array-length: "npm:^1.0.7"
- unbox-primitive: "npm:^1.1.0"
- which-typed-array: "npm:^1.1.19"
- checksum: 10/c84cb69ebae36781309a3ed70ff40b4767a921d3b3518060fac4e08f14ede04491b68e9f318aedf186e349d4af4a40f5d0e4111e46513800e8368551fd09de8c
- languageName: node
- linkType: hard
-
-"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1":
- version: 1.0.1
- resolution: "es-define-property@npm:1.0.1"
- checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78
- languageName: node
- linkType: hard
-
-"es-errors@npm:^1.3.0":
- version: 1.3.0
- resolution: "es-errors@npm:1.3.0"
- checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5
- languageName: node
- linkType: hard
-
-"es-get-iterator@npm:^1.1.3":
- version: 1.1.3
- resolution: "es-get-iterator@npm:1.1.3"
- dependencies:
- call-bind: "npm:^1.0.2"
- get-intrinsic: "npm:^1.1.3"
- has-symbols: "npm:^1.0.3"
- is-arguments: "npm:^1.1.1"
- is-map: "npm:^2.0.2"
- is-set: "npm:^2.0.2"
- is-string: "npm:^1.0.7"
- isarray: "npm:^2.0.5"
- stop-iteration-iterator: "npm:^1.0.0"
- checksum: 10/bc2194befbe55725f9489098626479deee3c801eda7e83ce0dff2eb266a28dc808edb9b623ff01d31ebc1328f09d661333d86b601036692c2e3c1a6942319433
- languageName: node
- linkType: hard
-
-"es-iterator-helpers@npm:^1.2.1":
- version: 1.2.2
- resolution: "es-iterator-helpers@npm:1.2.2"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.24.1"
- es-errors: "npm:^1.3.0"
- es-set-tostringtag: "npm:^2.1.0"
- function-bind: "npm:^1.1.2"
- get-intrinsic: "npm:^1.3.0"
- globalthis: "npm:^1.0.4"
- gopd: "npm:^1.2.0"
- has-property-descriptors: "npm:^1.0.2"
- has-proto: "npm:^1.2.0"
- has-symbols: "npm:^1.1.0"
- internal-slot: "npm:^1.1.0"
- iterator.prototype: "npm:^1.1.5"
- safe-array-concat: "npm:^1.1.3"
- checksum: 10/17b5b2834c4f5719d6ce0e837a4d11c6ba4640bee28290d22ec4daf7106ec3d5fe0ff4f7e5dbaa2b4612e8335934360e964a8f08608d43f2889da106b25481ee
- languageName: node
- linkType: hard
-
-"es-module-lexer@npm:^2.0.0":
- version: 2.0.0
- resolution: "es-module-lexer@npm:2.0.0"
- checksum: 10/b075855289b5f40ee496f3d7525c5c501d029c3da15c22298a0030d625bf36d1da0768b26278f7f4bada2a602459b505888e20b77c414fba5da5619b0e84dbd1
- languageName: node
- linkType: hard
-
-"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1":
- version: 1.1.1
- resolution: "es-object-atoms@npm:1.1.1"
- dependencies:
- es-errors: "npm:^1.3.0"
- checksum: 10/54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867
- languageName: node
- linkType: hard
-
-"es-set-tostringtag@npm:^2.1.0":
- version: 2.1.0
- resolution: "es-set-tostringtag@npm:2.1.0"
- dependencies:
- es-errors: "npm:^1.3.0"
- get-intrinsic: "npm:^1.2.6"
- has-tostringtag: "npm:^1.0.2"
- hasown: "npm:^2.0.2"
- checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f
- languageName: node
- linkType: hard
-
-"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0":
- version: 1.1.0
- resolution: "es-shim-unscopables@npm:1.1.0"
- dependencies:
- hasown: "npm:^2.0.2"
- checksum: 10/c351f586c30bbabc62355be49564b2435468b52c3532b8a1663672e3d10dc300197e69c247869dd173e56d86423ab95fc0c10b0939cdae597094e0fdca078cba
- languageName: node
- linkType: hard
-
-"es-to-primitive@npm:^1.3.0":
- version: 1.3.0
- resolution: "es-to-primitive@npm:1.3.0"
- dependencies:
- is-callable: "npm:^1.2.7"
- is-date-object: "npm:^1.0.5"
- is-symbol: "npm:^1.0.4"
- checksum: 10/17faf35c221aad59a16286cbf58ef6f080bf3c485dff202c490d074d8e74da07884e29b852c245d894eac84f73c58330ec956dfd6d02c0b449d75eb1012a3f9b
- languageName: node
- linkType: hard
-
-"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.62, es5-ext@npm:^0.10.63, es5-ext@npm:^0.10.64, es5-ext@npm:~0.10.14":
- version: 0.10.64
- resolution: "es5-ext@npm:0.10.64"
- dependencies:
- es6-iterator: "npm:^2.0.3"
- es6-symbol: "npm:^3.1.3"
- esniff: "npm:^2.0.1"
- next-tick: "npm:^1.1.0"
- checksum: 10/0c5d8657708b1695ddc4b06f4e0b9fbdda4d2fe46d037b6bedb49a7d1931e542ec9eecf4824d59e1d357e93229deab014bb4b86485db2d41b1d68e54439689ce
- languageName: node
- linkType: hard
-
-"es6-error@npm:^4.1.1":
- version: 4.1.1
- resolution: "es6-error@npm:4.1.1"
- checksum: 10/48483c25701dc5a6376f39bbe2eaf5da0b505607ec5a98cd3ade472c1939242156660636e2e508b33211e48e88b132d245341595c067bd4a95ac79fa7134da06
- languageName: node
- linkType: hard
-
-"es6-iterator@npm:^2.0.3":
- version: 2.0.3
- resolution: "es6-iterator@npm:2.0.3"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:^0.10.35"
- es6-symbol: "npm:^3.1.1"
- checksum: 10/dbadecf3d0e467692815c2b438dfa99e5a97cbbecf4a58720adcb467a04220e0e36282399ba297911fd472c50ae4158fffba7ed0b7d4273fe322b69d03f9e3a5
- languageName: node
- linkType: hard
-
-"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3":
- version: 3.1.4
- resolution: "es6-symbol@npm:3.1.4"
- dependencies:
- d: "npm:^1.0.2"
- ext: "npm:^1.7.0"
- checksum: 10/3743119fe61f89e2f049a6ce52bd82fab5f65d13e2faa72453b73f95c15292c3cb9bdf3747940d504517e675e45fd375554c6b5d35d2bcbefd35f5489ecba546
- languageName: node
- linkType: hard
-
-"esbuild@npm:^0.27.0":
- version: 0.27.2
- resolution: "esbuild@npm:0.27.2"
- dependencies:
- "@esbuild/aix-ppc64": "npm:0.27.2"
- "@esbuild/android-arm": "npm:0.27.2"
- "@esbuild/android-arm64": "npm:0.27.2"
- "@esbuild/android-x64": "npm:0.27.2"
- "@esbuild/darwin-arm64": "npm:0.27.2"
- "@esbuild/darwin-x64": "npm:0.27.2"
- "@esbuild/freebsd-arm64": "npm:0.27.2"
- "@esbuild/freebsd-x64": "npm:0.27.2"
- "@esbuild/linux-arm": "npm:0.27.2"
- "@esbuild/linux-arm64": "npm:0.27.2"
- "@esbuild/linux-ia32": "npm:0.27.2"
- "@esbuild/linux-loong64": "npm:0.27.2"
- "@esbuild/linux-mips64el": "npm:0.27.2"
- "@esbuild/linux-ppc64": "npm:0.27.2"
- "@esbuild/linux-riscv64": "npm:0.27.2"
- "@esbuild/linux-s390x": "npm:0.27.2"
- "@esbuild/linux-x64": "npm:0.27.2"
- "@esbuild/netbsd-arm64": "npm:0.27.2"
- "@esbuild/netbsd-x64": "npm:0.27.2"
- "@esbuild/openbsd-arm64": "npm:0.27.2"
- "@esbuild/openbsd-x64": "npm:0.27.2"
- "@esbuild/openharmony-arm64": "npm:0.27.2"
- "@esbuild/sunos-x64": "npm:0.27.2"
- "@esbuild/win32-arm64": "npm:0.27.2"
- "@esbuild/win32-ia32": "npm:0.27.2"
- "@esbuild/win32-x64": "npm:0.27.2"
- dependenciesMeta:
- "@esbuild/aix-ppc64":
- optional: true
- "@esbuild/android-arm":
- optional: true
- "@esbuild/android-arm64":
- optional: true
- "@esbuild/android-x64":
- optional: true
- "@esbuild/darwin-arm64":
- optional: true
- "@esbuild/darwin-x64":
- optional: true
- "@esbuild/freebsd-arm64":
- optional: true
- "@esbuild/freebsd-x64":
- optional: true
- "@esbuild/linux-arm":
- optional: true
- "@esbuild/linux-arm64":
- optional: true
- "@esbuild/linux-ia32":
- optional: true
- "@esbuild/linux-loong64":
- optional: true
- "@esbuild/linux-mips64el":
- optional: true
- "@esbuild/linux-ppc64":
- optional: true
- "@esbuild/linux-riscv64":
- optional: true
- "@esbuild/linux-s390x":
- optional: true
- "@esbuild/linux-x64":
- optional: true
- "@esbuild/netbsd-arm64":
- optional: true
- "@esbuild/netbsd-x64":
- optional: true
- "@esbuild/openbsd-arm64":
- optional: true
- "@esbuild/openbsd-x64":
- optional: true
- "@esbuild/openharmony-arm64":
- optional: true
- "@esbuild/sunos-x64":
- optional: true
- "@esbuild/win32-arm64":
- optional: true
- "@esbuild/win32-ia32":
- optional: true
- "@esbuild/win32-x64":
- optional: true
- bin:
- esbuild: bin/esbuild
- checksum: 10/7f1229328b0efc63c4184a61a7eb303df1e99818cc1d9e309fb92600703008e69821e8e984e9e9f54a627da14e0960d561db3a93029482ef96dc82dd267a60c2
- languageName: node
- linkType: hard
-
-"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
- version: 3.2.0
- resolution: "escalade@npm:3.2.0"
- checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6
- languageName: node
- linkType: hard
-
-"escape-goat@npm:^2.0.0":
- version: 2.1.1
- resolution: "escape-goat@npm:2.1.1"
- checksum: 10/ce05c70c20dd7007b60d2d644b625da5412325fdb57acf671ba06cb2ab3cd6789e2087026921a05b665b0a03fadee2955e7fc0b9a67da15a6551a980b260eba7
- languageName: node
- linkType: hard
-
-"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3":
- version: 1.0.3
- resolution: "escape-html@npm:1.0.3"
- checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24
- languageName: node
- linkType: hard
-
-"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5":
- version: 1.0.5
- resolution: "escape-string-regexp@npm:1.0.5"
- checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410
- languageName: node
- linkType: hard
-
-"escape-string-regexp@npm:^2.0.0":
- version: 2.0.0
- resolution: "escape-string-regexp@npm:2.0.0"
- checksum: 10/9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395
- languageName: node
- linkType: hard
-
-"escape-string-regexp@npm:^4.0.0":
- version: 4.0.0
- resolution: "escape-string-regexp@npm:4.0.0"
- checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5
- languageName: node
- linkType: hard
-
-"escodegen@npm:^2.0.0":
- version: 2.1.0
- resolution: "escodegen@npm:2.1.0"
- dependencies:
- esprima: "npm:^4.0.1"
- estraverse: "npm:^5.2.0"
- esutils: "npm:^2.0.2"
- source-map: "npm:~0.6.1"
- dependenciesMeta:
- source-map:
- optional: true
- bin:
- escodegen: bin/escodegen.js
- esgenerate: bin/esgenerate.js
- checksum: 10/47719a65b2888b4586e3fa93769068b275961c13089e90d5d01a96a6e8e95871b1c3893576814c8fbf08a4a31a496f37e7b2c937cf231270f4d81de012832c7c
- languageName: node
- linkType: hard
-
-"eslint-compat-utils@npm:^0.5.1":
- version: 0.5.1
- resolution: "eslint-compat-utils@npm:0.5.1"
- dependencies:
- semver: "npm:^7.5.4"
- peerDependencies:
- eslint: ">=6.0.0"
- checksum: 10/ac65ac1c6107cf19f63f5fc17cea361c9cb1336be7356f23dbb0fac10979974b4622e13e950be43cbf431801f2c07f7dab448573181ccf6edc0b86d5b5304511
- languageName: node
- linkType: hard
-
-"eslint-config-standard@npm:^17.1.0":
- version: 17.1.0
- resolution: "eslint-config-standard@npm:17.1.0"
- peerDependencies:
- eslint: ^8.0.1
- eslint-plugin-import: ^2.25.2
- eslint-plugin-n: "^15.0.0 || ^16.0.0 "
- eslint-plugin-promise: ^6.0.0
- checksum: 10/1fb3f98a1badee85a8378e9a8df21ebfc3d6a0556fca309b7e9ddd60243cbeb2486e3d5706dafbf296b116b3b28b5aa3ff00536b2f3067092e98157074a95b1d
- languageName: node
- linkType: hard
-
-"eslint-import-resolver-node@npm:^0.3.9":
- version: 0.3.9
- resolution: "eslint-import-resolver-node@npm:0.3.9"
- dependencies:
- debug: "npm:^3.2.7"
- is-core-module: "npm:^2.13.0"
- resolve: "npm:^1.22.4"
- checksum: 10/d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83
- languageName: node
- linkType: hard
-
-"eslint-import-resolver-typescript@npm:^3.6.1":
- version: 3.10.1
- resolution: "eslint-import-resolver-typescript@npm:3.10.1"
- dependencies:
- "@nolyfill/is-core-module": "npm:1.0.39"
- debug: "npm:^4.4.0"
- get-tsconfig: "npm:^4.10.0"
- is-bun-module: "npm:^2.0.0"
- stable-hash: "npm:^0.0.5"
- tinyglobby: "npm:^0.2.13"
- unrs-resolver: "npm:^1.6.2"
- peerDependencies:
- eslint: "*"
- eslint-plugin-import: "*"
- eslint-plugin-import-x: "*"
- peerDependenciesMeta:
- eslint-plugin-import:
- optional: true
- eslint-plugin-import-x:
- optional: true
- checksum: 10/b8d6a9b2045c70f043f722f78c9e65bc0283126f0ad92c8f07473f7647d77f7b1562f765a472f17e06b81897b407091c0ec9f2e4592b158c9fd92d0b0c33de89
- languageName: node
- linkType: hard
-
-"eslint-module-utils@npm:^2.12.1":
- version: 2.12.1
- resolution: "eslint-module-utils@npm:2.12.1"
- dependencies:
- debug: "npm:^3.2.7"
- peerDependenciesMeta:
- eslint:
- optional: true
- checksum: 10/bd25d6610ec3abaa50e8f1beb0119541562bbb8dd02c035c7e887976fe1e0c5dd8175f4607ca8d86d1146df24d52a071bd3d1dd329f6902bd58df805a8ca16d3
- languageName: node
- linkType: hard
-
-"eslint-plugin-deprecation@npm:^2.0.0":
- version: 2.0.0
- resolution: "eslint-plugin-deprecation@npm:2.0.0"
- dependencies:
- "@typescript-eslint/utils": "npm:^6.0.0"
- tslib: "npm:^2.3.1"
- tsutils: "npm:^3.21.0"
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- typescript: ^4.2.4 || ^5.0.0
- checksum: 10/810276afa258155a35c863bb2138ebd2132447c3ed219e360915b0e7b4c6e77e09ae2931583d200b1f23e19040a27ad81c0927538a46392334bb4c3c4a2038b4
- languageName: node
- linkType: hard
-
-"eslint-plugin-es-x@npm:^7.5.0":
- version: 7.8.0
- resolution: "eslint-plugin-es-x@npm:7.8.0"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.1.2"
- "@eslint-community/regexpp": "npm:^4.11.0"
- eslint-compat-utils: "npm:^0.5.1"
- peerDependencies:
- eslint: ">=8"
- checksum: 10/1df8d52c4fadc06854ce801af05b05f2642aa2deb918fb7d37738596eabd70b7f21a22b150b78ec9104bac6a1b6b4fb796adea2364ede91b01d20964849ce5f7
- languageName: node
- linkType: hard
-
-"eslint-plugin-header@npm:^3.1.1":
- version: 3.1.1
- resolution: "eslint-plugin-header@npm:3.1.1"
- peerDependencies:
- eslint: ">=7.7.0"
- checksum: 10/6fc7d6e7e2c386e2efa25fb467c0a290fea6330f80acfc6c8fcd3a8473c9023615571463ecd5240b818677660c5e78840fce501d70537802eaebe6bec7e76799
- languageName: node
- linkType: hard
-
-"eslint-plugin-import-newlines@npm:^1.3.4":
- version: 1.4.0
- resolution: "eslint-plugin-import-newlines@npm:1.4.0"
- peerDependencies:
- eslint: ">=6.0.0"
- bin:
- import-linter: lib/index.js
- checksum: 10/66cbf205433e4f31afa0dcdce4f66a55fe33123bfda9ff265b93efcf201cccde382b225c3b5403c890dff558bf596874d0e398fe182b42eb109e9191b8851063
- languageName: node
- linkType: hard
-
-"eslint-plugin-import@npm:^2.29.1":
- version: 2.32.0
- resolution: "eslint-plugin-import@npm:2.32.0"
- dependencies:
- "@rtsao/scc": "npm:^1.1.0"
- array-includes: "npm:^3.1.9"
- array.prototype.findlastindex: "npm:^1.2.6"
- array.prototype.flat: "npm:^1.3.3"
- array.prototype.flatmap: "npm:^1.3.3"
- debug: "npm:^3.2.7"
- doctrine: "npm:^2.1.0"
- eslint-import-resolver-node: "npm:^0.3.9"
- eslint-module-utils: "npm:^2.12.1"
- hasown: "npm:^2.0.2"
- is-core-module: "npm:^2.16.1"
- is-glob: "npm:^4.0.3"
- minimatch: "npm:^3.1.2"
- object.fromentries: "npm:^2.0.8"
- object.groupby: "npm:^1.0.3"
- object.values: "npm:^1.2.1"
- semver: "npm:^6.3.1"
- string.prototype.trimend: "npm:^1.0.9"
- tsconfig-paths: "npm:^3.15.0"
- peerDependencies:
- eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
- checksum: 10/1bacf4967e9ebf99e12176a795f0d6d3a87d1c9a030c2207f27b267e10d96a1220be2647504c7fc13ab543cdf13ffef4b8f5620e0447032dba4ff0d3922f7c9e
- languageName: node
- linkType: hard
-
-"eslint-plugin-jest@npm:^27.6.3":
- version: 27.9.0
- resolution: "eslint-plugin-jest@npm:27.9.0"
- dependencies:
- "@typescript-eslint/utils": "npm:^5.10.0"
- peerDependencies:
- "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0
- eslint: ^7.0.0 || ^8.0.0
- jest: "*"
- peerDependenciesMeta:
- "@typescript-eslint/eslint-plugin":
- optional: true
- jest:
- optional: true
- checksum: 10/bca54347280c06c56516faea76042134dd74355c2de6c23361ba0e8736ecc01c62b144eea7eda7570ea4f4ee511c583bb8dab00d7153a1bd1740eb77b0038fd4
- languageName: node
- linkType: hard
-
-"eslint-plugin-n@npm:^16.6.2":
- version: 16.6.2
- resolution: "eslint-plugin-n@npm:16.6.2"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.4.0"
- builtins: "npm:^5.0.1"
- eslint-plugin-es-x: "npm:^7.5.0"
- get-tsconfig: "npm:^4.7.0"
- globals: "npm:^13.24.0"
- ignore: "npm:^5.2.4"
- is-builtin-module: "npm:^3.2.1"
- is-core-module: "npm:^2.12.1"
- minimatch: "npm:^3.1.2"
- resolve: "npm:^1.22.2"
- semver: "npm:^7.5.3"
- peerDependencies:
- eslint: ">=7.0.0"
- checksum: 10/e0f600d03d3a3df57e9a811648b1b534a6d67c90ea9406340ddf3763c2b87cf5ef910b390f787ca5cb27c8d8ff36aad42d70209b54e2a1cb4cc2507ca417229a
- languageName: node
- linkType: hard
-
-"eslint-plugin-promise@npm:^6.1.1":
- version: 6.6.0
- resolution: "eslint-plugin-promise@npm:6.6.0"
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
- checksum: 10/c2b5604efd7e1390c132fcbf06cb2f072c956ffa65c14a991cb74ba1e2327357797239cb5b9b292d5e4010301bb897bd85a6273d7873fb157edc46aa2d95cbd9
- languageName: node
- linkType: hard
-
-"eslint-plugin-react-hooks@npm:^4.6.0":
- version: 4.6.2
- resolution: "eslint-plugin-react-hooks@npm:4.6.2"
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
- checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69
- languageName: node
- linkType: hard
-
-"eslint-plugin-react@npm:^7.33.2":
- version: 7.37.5
- resolution: "eslint-plugin-react@npm:7.37.5"
- dependencies:
- array-includes: "npm:^3.1.8"
- array.prototype.findlast: "npm:^1.2.5"
- array.prototype.flatmap: "npm:^1.3.3"
- array.prototype.tosorted: "npm:^1.1.4"
- doctrine: "npm:^2.1.0"
- es-iterator-helpers: "npm:^1.2.1"
- estraverse: "npm:^5.3.0"
- hasown: "npm:^2.0.2"
- jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
- minimatch: "npm:^3.1.2"
- object.entries: "npm:^1.1.9"
- object.fromentries: "npm:^2.0.8"
- object.values: "npm:^1.2.1"
- prop-types: "npm:^15.8.1"
- resolve: "npm:^2.0.0-next.5"
- semver: "npm:^6.3.1"
- string.prototype.matchall: "npm:^4.0.12"
- string.prototype.repeat: "npm:^1.0.0"
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- checksum: 10/ee1bd4e0ec64f29109d5a625bb703d179c82e0159c86c3f1b52fc1209d2994625a137dae303c333fb308a2e38315e44066d5204998177e31974382f9fda25d5c
- languageName: node
- linkType: hard
-
-"eslint-plugin-simple-import-sort@npm:^10.0.0":
- version: 10.0.0
- resolution: "eslint-plugin-simple-import-sort@npm:10.0.0"
- peerDependencies:
- eslint: ">=5.0.0"
- checksum: 10/462187d3c137ba0986586a4759fe57c1c3fc1850750cb785f335b9b235346a1d96ebfcfb558847fc1a3b319718f2736178a66a61a0c184c86d48b21c1e0df26b
- languageName: node
- linkType: hard
-
-"eslint-plugin-sort-destructure-keys@npm:^1.5.0":
- version: 1.6.0
- resolution: "eslint-plugin-sort-destructure-keys@npm:1.6.0"
- dependencies:
- natural-compare-lite: "npm:^1.4.0"
- peerDependencies:
- eslint: 3 - 9
- checksum: 10/621359cb223e2b4bf4256f2034a64af163c8f45c14178be29672a7c8b09e3e70575ff362088f4f3d022e8fd61f4ed1a56474ca866ec8fc476331e8723607960c
- languageName: node
- linkType: hard
-
-"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1":
- version: 5.1.1
- resolution: "eslint-scope@npm:5.1.1"
- dependencies:
- esrecurse: "npm:^4.3.0"
- estraverse: "npm:^4.1.1"
- checksum: 10/c541ef384c92eb5c999b7d3443d80195fcafb3da335500946f6db76539b87d5826c8f2e1d23bf6afc3154ba8cd7c8e566f8dc00f1eea25fdf3afc8fb9c87b238
- languageName: node
- linkType: hard
-
-"eslint-scope@npm:^7.2.2":
- version: 7.2.2
- resolution: "eslint-scope@npm:7.2.2"
- dependencies:
- esrecurse: "npm:^4.3.0"
- estraverse: "npm:^5.2.0"
- checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491
- languageName: node
- linkType: hard
-
-"eslint-visitor-keys@npm:^2.0.0":
- version: 2.1.0
- resolution: "eslint-visitor-keys@npm:2.1.0"
- checksum: 10/db4547eef5039122d518fa307e938ceb8589da5f6e8f5222efaf14dd62f748ce82e2d2becd3ff9412a50350b726bda95dbea8515a471074547daefa58aee8735
- languageName: node
- linkType: hard
-
-"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3":
- version: 3.4.3
- resolution: "eslint-visitor-keys@npm:3.4.3"
- checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b
- languageName: node
- linkType: hard
-
-"eslint@npm:^8.56.0":
- version: 8.57.1
- resolution: "eslint@npm:8.57.1"
- dependencies:
- "@eslint-community/eslint-utils": "npm:^4.2.0"
- "@eslint-community/regexpp": "npm:^4.6.1"
- "@eslint/eslintrc": "npm:^2.1.4"
- "@eslint/js": "npm:8.57.1"
- "@humanwhocodes/config-array": "npm:^0.13.0"
- "@humanwhocodes/module-importer": "npm:^1.0.1"
- "@nodelib/fs.walk": "npm:^1.2.8"
- "@ungap/structured-clone": "npm:^1.2.0"
- ajv: "npm:^6.12.4"
- chalk: "npm:^4.0.0"
- cross-spawn: "npm:^7.0.2"
- debug: "npm:^4.3.2"
- doctrine: "npm:^3.0.0"
- escape-string-regexp: "npm:^4.0.0"
- eslint-scope: "npm:^7.2.2"
- eslint-visitor-keys: "npm:^3.4.3"
- espree: "npm:^9.6.1"
- esquery: "npm:^1.4.2"
- esutils: "npm:^2.0.2"
- fast-deep-equal: "npm:^3.1.3"
- file-entry-cache: "npm:^6.0.1"
- find-up: "npm:^5.0.0"
- glob-parent: "npm:^6.0.2"
- globals: "npm:^13.19.0"
- graphemer: "npm:^1.4.0"
- ignore: "npm:^5.2.0"
- imurmurhash: "npm:^0.1.4"
- is-glob: "npm:^4.0.0"
- is-path-inside: "npm:^3.0.3"
- js-yaml: "npm:^4.1.0"
- json-stable-stringify-without-jsonify: "npm:^1.0.1"
- levn: "npm:^0.4.1"
- lodash.merge: "npm:^4.6.2"
- minimatch: "npm:^3.1.2"
- natural-compare: "npm:^1.4.0"
- optionator: "npm:^0.9.3"
- strip-ansi: "npm:^6.0.1"
- text-table: "npm:^0.2.0"
- bin:
- eslint: bin/eslint.js
- checksum: 10/5504fa24879afdd9f9929b2fbfc2ee9b9441a3d464efd9790fbda5f05738858530182029f13323add68d19fec749d3ab4a70320ded091ca4432b1e9cc4ed104c
- languageName: node
- linkType: hard
-
-"esniff@npm:^2.0.1":
- version: 2.0.1
- resolution: "esniff@npm:2.0.1"
- dependencies:
- d: "npm:^1.0.1"
- es5-ext: "npm:^0.10.62"
- event-emitter: "npm:^0.3.5"
- type: "npm:^2.7.2"
- checksum: 10/f6a2abd2f8c5fe57c5fcf53e5407c278023313d0f6c3a92688e7122ab9ac233029fd424508a196ae5bc561aa1f67d23f4e2435b1a0d378030f476596129056ac
- languageName: node
- linkType: hard
-
-"espree@npm:^9.6.0, espree@npm:^9.6.1":
- version: 9.6.1
- resolution: "espree@npm:9.6.1"
- dependencies:
- acorn: "npm:^8.9.0"
- acorn-jsx: "npm:^5.3.2"
- eslint-visitor-keys: "npm:^3.4.1"
- checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134
- languageName: node
- linkType: hard
-
-"esprima-fb@npm:^15001.1.0-dev-harmony-fb":
- version: 15001.1.0-dev-harmony-fb
- resolution: "esprima-fb@npm:15001.1.0-dev-harmony-fb"
- bin:
- esparse: ./bin/esparse.js
- esvalidate: ./bin/esvalidate.js
- checksum: 10/a16b1e8ab4a647f8b8ef6a5c409604b70f55d4e08d6734e4d64283a8e7e92ae9984ced0409c5b5361681c847bbf072b639ef0c90e3e906457185ca7e7587f1b1
- languageName: node
- linkType: hard
-
-"esprima-next@npm:^5.7.0":
- version: 5.8.4
- resolution: "esprima-next@npm:5.8.4"
- bin:
- esparse: bin/esparse.js
- esvalidate: bin/esvalidate.js
- checksum: 10/3efd0523a3db5c02ef109421931774daaa0e3439c820f6ed617a7253bba90b47b6691607d764d285d8b33cc631ebbfdfe33853150301177911667adb6bab52ea
- languageName: node
- linkType: hard
-
-"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
- version: 4.0.1
- resolution: "esprima@npm:4.0.1"
- bin:
- esparse: ./bin/esparse.js
- esvalidate: ./bin/esvalidate.js
- checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb
- languageName: node
- linkType: hard
-
-"esprima@npm:~3.1.0":
- version: 3.1.3
- resolution: "esprima@npm:3.1.3"
- bin:
- esparse: ./bin/esparse.js
- esvalidate: ./bin/esvalidate.js
- checksum: 10/27c9ea08582d6ece009d6ab3cdf5dc3e382f9bf50200c8b4c9a0d048563df2e2fdb0d20338fb7b651cbc00a8faf4b07fc3b2679907ae0758f239d675cde55336
- languageName: node
- linkType: hard
-
-"esquery@npm:^1.4.2":
- version: 1.7.0
- resolution: "esquery@npm:1.7.0"
- dependencies:
- estraverse: "npm:^5.1.0"
- checksum: 10/4afaf3089367e1f5885caa116ef386dffd8bfd64da21fd3d0e56e938d2667cfb2e5400ab4a825aa70e799bb3741e5b5d63c0b94d86e2d4cf3095c9e64b2f5a15
- languageName: node
- linkType: hard
-
-"esrecurse@npm:^4.3.0":
- version: 4.3.0
- resolution: "esrecurse@npm:4.3.0"
- dependencies:
- estraverse: "npm:^5.2.0"
- checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16
- languageName: node
- linkType: hard
-
-"estraverse@npm:^4.1.1":
- version: 4.3.0
- resolution: "estraverse@npm:4.3.0"
- checksum: 10/3f67ad02b6dbfaddd9ea459cf2b6ef4ecff9a6082a7af9d22e445b9abc082ad9ca47e1825557b293fcdae477f4714e561123e30bb6a5b2f184fb2bad4a9497eb
- languageName: node
- linkType: hard
-
-"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
- version: 5.3.0
- resolution: "estraverse@npm:5.3.0"
- checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e
- languageName: node
- linkType: hard
-
-"estree-util-is-identifier-name@npm:^3.0.0":
- version: 3.0.0
- resolution: "estree-util-is-identifier-name@npm:3.0.0"
- checksum: 10/cdc9187614fdb269d714eddfdf72c270a79daa9ed51e259bb78527983be6dcc68da6a914ccc41175b662194c67fbd2a1cd262f85fac1eef7111cfddfaf6f77f8
- languageName: node
- linkType: hard
-
-"estree-walker@npm:^0.6.1":
- version: 0.6.1
- resolution: "estree-walker@npm:0.6.1"
- checksum: 10/b8da7815030c4e0b735f5f8af370af09525e052ee14e539cecabc24ad6da1782448778361417e7c438091a59e7ca9f4a0c11642f7da4f2ebf1ba7a150a590bcc
- languageName: node
- linkType: hard
-
-"estree-walker@npm:^2.0.2":
- version: 2.0.2
- resolution: "estree-walker@npm:2.0.2"
- checksum: 10/b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2
- languageName: node
- linkType: hard
-
-"esutils@npm:^2.0.2":
- version: 2.0.3
- resolution: "esutils@npm:2.0.3"
- checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb
- languageName: node
- linkType: hard
-
-"etag@npm:~1.8.1":
- version: 1.8.1
- resolution: "etag@npm:1.8.1"
- checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff
- languageName: node
- linkType: hard
-
-"ethereum-blockies-base64@npm:^1.0.2":
- version: 1.0.2
- resolution: "ethereum-blockies-base64@npm:1.0.2"
- dependencies:
- pnglib: "npm:0.0.1"
- checksum: 10/d027f31c63f43d2e1dd8d210943b0c3335a4cb6a08c96d18a1a5acd85c989b9d98f11eb51bfe1b5d82e7f6cc7f5f4fcd9cbfa29f8105be3de7977b84e2cc621a
- languageName: node
- linkType: hard
-
-"ethereum-cryptography@npm:^2.0.0":
- version: 2.2.1
- resolution: "ethereum-cryptography@npm:2.2.1"
- dependencies:
- "@noble/curves": "npm:1.4.2"
- "@noble/hashes": "npm:1.4.0"
- "@scure/bip32": "npm:1.4.0"
- "@scure/bip39": "npm:1.3.0"
- checksum: 10/ab123bbfe843500ac2d645ce9edc4bc814962ffb598db6bf8bf01fbecac656e6c81ff4cf2472f1734844bbcbad2bf658d8b699cb7248d768e0f06ae13ecf43b8
- languageName: node
- linkType: hard
-
-"event-emitter@npm:^0.3.5":
- version: 0.3.5
- resolution: "event-emitter@npm:0.3.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- checksum: 10/a7f5ea80029193f4869782d34ef7eb43baa49cd397013add1953491b24588468efbe7e3cc9eb87d53f33397e7aab690fd74c079ec440bf8b12856f6bdb6e9396
- languageName: node
- linkType: hard
-
-"event-target-shim@npm:^5.0.0":
- version: 5.0.1
- resolution: "event-target-shim@npm:5.0.1"
- checksum: 10/49ff46c3a7facbad3decb31f597063e761785d7fdb3920d4989d7b08c97a61c2f51183e2f3a03130c9088df88d4b489b1b79ab632219901f184f85158508f4c8
- languageName: node
- linkType: hard
-
-"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.7":
- version: 4.0.7
- resolution: "eventemitter3@npm:4.0.7"
- checksum: 10/8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346
- languageName: node
- linkType: hard
-
-"eventemitter3@npm:^5.0.0, eventemitter3@npm:^5.0.1":
- version: 5.0.1
- resolution: "eventemitter3@npm:5.0.1"
- checksum: 10/ac6423ec31124629c84c7077eed1e6987f6d66c31cf43c6fcbf6c87791d56317ce808d9ead483652436df171b526fc7220eccdc9f3225df334e81582c3cf7dd5
- languageName: node
- linkType: hard
-
-"events-universal@npm:^1.0.0":
- version: 1.0.1
- resolution: "events-universal@npm:1.0.1"
- dependencies:
- bare-events: "npm:^2.7.0"
- checksum: 10/71b2e6079b4dc030c613ef73d99f1acb369dd3ddb6034f49fd98b3e2c6632cde9f61c15fb1351004339d7c79672252a4694ecc46a6124dc794b558be50a83867
- languageName: node
- linkType: hard
-
-"events@npm:^3.2.0, events@npm:^3.3.0":
- version: 3.3.0
- resolution: "events@npm:3.3.0"
- checksum: 10/a3d47e285e28d324d7180f1e493961a2bbb4cad6412090e4dec114f4db1f5b560c7696ee8e758f55e23913ede856e3689cd3aa9ae13c56b5d8314cd3b3ddd1be
- languageName: node
- linkType: hard
-
-"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
- version: 1.0.3
- resolution: "evp_bytestokey@npm:1.0.3"
- dependencies:
- md5.js: "npm:^1.3.4"
- node-gyp: "npm:latest"
- safe-buffer: "npm:^5.1.1"
- checksum: 10/ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45
- languageName: node
- linkType: hard
-
-"execa@npm:^5.0.0":
- version: 5.1.1
- resolution: "execa@npm:5.1.1"
- dependencies:
- cross-spawn: "npm:^7.0.3"
- get-stream: "npm:^6.0.0"
- human-signals: "npm:^2.1.0"
- is-stream: "npm:^2.0.0"
- merge-stream: "npm:^2.0.0"
- npm-run-path: "npm:^4.0.1"
- onetime: "npm:^5.1.2"
- signal-exit: "npm:^3.0.3"
- strip-final-newline: "npm:^2.0.0"
- checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597
- languageName: node
- linkType: hard
-
-"exenv@npm:^1.2.2":
- version: 1.2.2
- resolution: "exenv@npm:1.2.2"
- checksum: 10/6840185e421394bcb143debb866d31d19c3e4a4bca87d2f319d68d61afff353b3c678f2eb389e3b98ab9aecbec19f6bebbdc4193984378af0a3366c498a7efc8
- languageName: node
- linkType: hard
-
-"expand-template@npm:^2.0.3":
- version: 2.0.3
- resolution: "expand-template@npm:2.0.3"
- checksum: 10/588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099
- languageName: node
- linkType: hard
-
-"expect@npm:^30.0.0":
- version: 30.2.0
- resolution: "expect@npm:30.2.0"
- dependencies:
- "@jest/expect-utils": "npm:30.2.0"
- "@jest/get-type": "npm:30.1.0"
- jest-matcher-utils: "npm:30.2.0"
- jest-message-util: "npm:30.2.0"
- jest-mock: "npm:30.2.0"
- jest-util: "npm:30.2.0"
- checksum: 10/cf98ab45ab2e9f2fb9943a3ae0097f72d63a94be179a19fd2818d8fdc3b7681d31cc8ef540606eb8dd967d9c44d73fef263a614e9de260c22943ffb122ad66fd
- languageName: node
- linkType: hard
-
-"exponential-backoff@npm:^3.1.1":
- version: 3.1.3
- resolution: "exponential-backoff@npm:3.1.3"
- checksum: 10/ca25962b4bbab943b7c4ed0b5228e263833a5063c65e1cdeac4be9afad350aae5466e8e619b5051f4f8d37b2144a2d6e8fcc771b6cc82934f7dade2f964f652c
- languageName: node
- linkType: hard
-
-"express@npm:^4.17.3":
- version: 4.22.1
- resolution: "express@npm:4.22.1"
- dependencies:
- accepts: "npm:~1.3.8"
- array-flatten: "npm:1.1.1"
- body-parser: "npm:~1.20.3"
- content-disposition: "npm:~0.5.4"
- content-type: "npm:~1.0.4"
- cookie: "npm:~0.7.1"
- cookie-signature: "npm:~1.0.6"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- etag: "npm:~1.8.1"
- finalhandler: "npm:~1.3.1"
- fresh: "npm:~0.5.2"
- http-errors: "npm:~2.0.0"
- merge-descriptors: "npm:1.0.3"
- methods: "npm:~1.1.2"
- on-finished: "npm:~2.4.1"
- parseurl: "npm:~1.3.3"
- path-to-regexp: "npm:~0.1.12"
- proxy-addr: "npm:~2.0.7"
- qs: "npm:~6.14.0"
- range-parser: "npm:~1.2.1"
- safe-buffer: "npm:5.2.1"
- send: "npm:~0.19.0"
- serve-static: "npm:~1.16.2"
- setprototypeof: "npm:1.2.0"
- statuses: "npm:~2.0.1"
- type-is: "npm:~1.6.18"
- utils-merge: "npm:1.0.1"
- vary: "npm:~1.1.2"
- checksum: 10/f33c1bd0c7d36e2a1f18de9cdc176469d32f68e20258d2941b8d296ab9a4fd9011872c246391bf87714f009fac5114c832ec5ac65cbee39421f1258801eb8470
- languageName: node
- linkType: hard
-
-"ext@npm:^1.7.0":
- version: 1.7.0
- resolution: "ext@npm:1.7.0"
- dependencies:
- type: "npm:^2.7.2"
- checksum: 10/666a135980b002df0e75c8ac6c389140cdc59ac953db62770479ee2856d58ce69d2f845e5f2586716350b725400f6945e51e9159573158c39f369984c72dcd84
- languageName: node
- linkType: hard
-
-"extend@npm:^3.0.0":
- version: 3.0.2
- resolution: "extend@npm:3.0.2"
- checksum: 10/59e89e2dc798ec0f54b36d82f32a27d5f6472c53974f61ca098db5d4648430b725387b53449a34df38fd0392045434426b012f302b3cc049a6500ccf82877e4e
- languageName: node
- linkType: hard
-
-"extensionless@npm:^1.9.6":
- version: 1.9.9
- resolution: "extensionless@npm:1.9.9"
- checksum: 10/5d28368b7397629579aca1e8e9c8d101f44eeab693164bb1db6071b01f378ebaba3c8b1c0c900346ba3295e4d595b4060b14450804977228c22695deda788a3d
- languageName: node
- linkType: hard
-
-"extract-zip@npm:^2.0.1":
- version: 2.0.1
- resolution: "extract-zip@npm:2.0.1"
- dependencies:
- "@types/yauzl": "npm:^2.9.1"
- debug: "npm:^4.1.1"
- get-stream: "npm:^5.1.0"
- yauzl: "npm:^2.10.0"
- dependenciesMeta:
- "@types/yauzl":
- optional: true
- bin:
- extract-zip: cli.js
- checksum: 10/8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635
- languageName: node
- linkType: hard
-
-"extsprintf@npm:^1.2.0":
- version: 1.4.1
- resolution: "extsprintf@npm:1.4.1"
- checksum: 10/bfd6d55f3c0c04d826fe0213264b383c03f32825af6b1ff777f3f2dc49467e599361993568d75b7b19a8ea1bb08c8e7cd8c3d87d179ced91bb0dcf81ca6938e0
- languageName: node
- linkType: hard
-
-"fast-copy@npm:^4.0.0":
- version: 4.0.2
- resolution: "fast-copy@npm:4.0.2"
- checksum: 10/45114c4e45dc839a49563ca27ebf643df026bce29863c3e913bde5402c8ae04fee4a0351f6438741e7797f7d49f1496e1fc8903a31b310562aed31b0a2957461
- languageName: node
- linkType: hard
-
-"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
- version: 3.1.3
- resolution: "fast-deep-equal@npm:3.1.3"
- checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d
- languageName: node
- linkType: hard
-
-"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2":
- version: 1.3.2
- resolution: "fast-fifo@npm:1.3.2"
- checksum: 10/6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275
- languageName: node
- linkType: hard
-
-"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0":
- version: 3.3.3
- resolution: "fast-glob@npm:3.3.3"
- dependencies:
- "@nodelib/fs.stat": "npm:^2.0.2"
- "@nodelib/fs.walk": "npm:^1.2.3"
- glob-parent: "npm:^5.1.2"
- merge2: "npm:^1.3.0"
- micromatch: "npm:^4.0.8"
- checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad
- languageName: node
- linkType: hard
-
-"fast-json-stable-stringify@npm:^2.0.0":
- version: 2.1.0
- resolution: "fast-json-stable-stringify@npm:2.1.0"
- checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e
- languageName: node
- linkType: hard
-
-"fast-levenshtein@npm:^2.0.6":
- version: 2.0.6
- resolution: "fast-levenshtein@npm:2.0.6"
- checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1
- languageName: node
- linkType: hard
-
-"fast-safe-stringify@npm:^2.1.1":
- version: 2.1.1
- resolution: "fast-safe-stringify@npm:2.1.1"
- checksum: 10/dc1f063c2c6ac9533aee14d406441f86783a8984b2ca09b19c2fe281f9ff59d315298bc7bc22fd1f83d26fe19ef2f20e2ddb68e96b15040292e555c5ced0c1e4
- languageName: node
- linkType: hard
-
-"fast-sha256@npm:^1.3.0":
- version: 1.3.0
- resolution: "fast-sha256@npm:1.3.0"
- checksum: 10/3bef0491f10a254348ec11dcddb26e4d951cfd3b4c0662ea5843ad1be3fe184ed74d640df68565fcc60f6437548cddf49e3ac886f88a69e05b5142e862840bf9
- languageName: node
- linkType: hard
-
-"fast-uri@npm:^3.0.1":
- version: 3.1.0
- resolution: "fast-uri@npm:3.1.0"
- checksum: 10/818b2c96dc913bcf8511d844c3d2420e2c70b325c0653633f51821e4e29013c2015387944435cd0ef5322c36c9beecc31e44f71b257aeb8e0b333c1d62bb17c2
- languageName: node
- linkType: hard
-
-"fastest-levenshtein@npm:^1.0.12":
- version: 1.0.16
- resolution: "fastest-levenshtein@npm:1.0.16"
- checksum: 10/ee85d33b5cef592033f70e1c13ae8624055950b4eb832435099cd56aa313d7f251b873bedbc06a517adfaff7b31756d139535991e2406967438e03a1bf1b008e
- languageName: node
- linkType: hard
-
-"fastq@npm:^1.13.0, fastq@npm:^1.6.0":
- version: 1.20.1
- resolution: "fastq@npm:1.20.1"
- dependencies:
- reusify: "npm:^1.0.4"
- checksum: 10/ab2fe3a7a108112e7752cfe7fc11683c21e595913a6a593ad0b4415f31dddbfc283775ab66f2c8ccea6ab7cfc116157cbddcfae9798d9de98d08fe0a2c3e97b2
- languageName: node
- linkType: hard
-
-"faye-websocket@npm:^0.11.3":
- version: 0.11.4
- resolution: "faye-websocket@npm:0.11.4"
- dependencies:
- websocket-driver: "npm:>=0.5.1"
- checksum: 10/22433c14c60925e424332d2794463a8da1c04848539b5f8db5fced62a7a7c71a25335a4a8b37334e3a32318835e2b87b1733d008561964121c4a0bd55f0878c3
- languageName: node
- linkType: hard
-
-"fd-slicer@npm:~1.1.0":
- version: 1.1.0
- resolution: "fd-slicer@npm:1.1.0"
- dependencies:
- pend: "npm:~1.2.0"
- checksum: 10/db3e34fa483b5873b73f248e818f8a8b59a6427fd8b1436cd439c195fdf11e8659419404826059a642b57d18075c856d06d6a50a1413b714f12f833a9341ead3
- languageName: node
- linkType: hard
-
-"fdir@npm:^6.5.0":
- version: 6.5.0
- resolution: "fdir@npm:6.5.0"
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
- checksum: 10/14ca1c9f0a0e8f4f2e9bf4e8551065a164a09545dae548c12a18d238b72e51e5a7b39bd8e5494b56463a0877672d0a6c1ef62c6fa0677db1b0c847773be939b1
- languageName: node
- linkType: hard
-
-"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4":
- version: 3.2.0
- resolution: "fetch-blob@npm:3.2.0"
- dependencies:
- node-domexception: "npm:^1.0.0"
- web-streams-polyfill: "npm:^3.0.3"
- checksum: 10/5264ecceb5fdc19eb51d1d0359921f12730941e333019e673e71eb73921146dceabcb0b8f534582be4497312d656508a439ad0f5edeec2b29ab2e10c72a1f86b
- languageName: node
- linkType: hard
-
-"fflate@npm:^0.8.1":
- version: 0.8.2
- resolution: "fflate@npm:0.8.2"
- checksum: 10/2bd26ba6d235d428de793c6a0cd1aaa96a06269ebd4e21b46c8fd1bd136abc631acf27e188d47c3936db090bf3e1ede11d15ce9eae9bffdc4bfe1b9dc66ca9cb
- languageName: node
- linkType: hard
-
-"figures@npm:^3.0.0":
- version: 3.2.0
- resolution: "figures@npm:3.2.0"
- dependencies:
- escape-string-regexp: "npm:^1.0.5"
- checksum: 10/a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97
- languageName: node
- linkType: hard
-
-"file-entry-cache@npm:^6.0.1":
- version: 6.0.1
- resolution: "file-entry-cache@npm:6.0.1"
- dependencies:
- flat-cache: "npm:^3.0.4"
- checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b
- languageName: node
- linkType: hard
-
-"file-saver@npm:^2.0.5":
- version: 2.0.5
- resolution: "file-saver@npm:2.0.5"
- checksum: 10/fbba443d9b682fec0be6676c048a7ac688b9bd33b105c02e8e1a1cb3e354ed441198dc1f15dcbc137fa044bea73f8a7549f2617e3a952fa7d96390356d54a7c3
- languageName: node
- linkType: hard
-
-"file-selector@npm:^2.1.0":
- version: 2.1.2
- resolution: "file-selector@npm:2.1.2"
- dependencies:
- tslib: "npm:^2.7.0"
- checksum: 10/2a6be0e1904df85f8705a5171fd3b93c1b1ff2ad0143556adb78ac4de899bfc0ba1a20083b4febd4f7000759ec9119a31af76a057e29dd9215907da69ac95e50
- languageName: node
- linkType: hard
-
-"file-uri-to-path@npm:1.0.0":
- version: 1.0.0
- resolution: "file-uri-to-path@npm:1.0.0"
- checksum: 10/b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144
- languageName: node
- linkType: hard
-
-"filelist@npm:^1.0.4":
- version: 1.0.4
- resolution: "filelist@npm:1.0.4"
- dependencies:
- minimatch: "npm:^5.0.1"
- checksum: 10/4b436fa944b1508b95cffdfc8176ae6947b92825483639ef1b9a89b27d82f3f8aa22b21eed471993f92709b431670d4e015b39c087d435a61e1bb04564cf51de
- languageName: node
- linkType: hard
-
-"filename-reserved-regex@npm:^2.0.0":
- version: 2.0.0
- resolution: "filename-reserved-regex@npm:2.0.0"
- checksum: 10/9322b45726b86c45d0b4fe91be5c51e62b2e7e63db02c4a6ff3fd499bbc134d12fbf3c8b91979440ef45b3be834698ab9c3e66cb63b79fea4817e33da237d32a
- languageName: node
- linkType: hard
-
-"filenamify@npm:^4.3.0":
- version: 4.3.0
- resolution: "filenamify@npm:4.3.0"
- dependencies:
- filename-reserved-regex: "npm:^2.0.0"
- strip-outer: "npm:^1.0.1"
- trim-repeated: "npm:^1.0.0"
- checksum: 10/5b71a7ff8e958c8621957e6fbf7872024126d3b5da50f59b1634af3343ba1a69d4cc15cfe4ca4bbfa7c959ad4d98614ee51e6f1d9fa7326eef8ceda2da8cd74e
- languageName: node
- linkType: hard
-
-"filing-cabinet@npm:^3.0.1":
- version: 3.3.1
- resolution: "filing-cabinet@npm:3.3.1"
- dependencies:
- app-module-path: "npm:^2.2.0"
- commander: "npm:^2.20.3"
- debug: "npm:^4.3.3"
- enhanced-resolve: "npm:^5.8.3"
- is-relative-path: "npm:^1.0.2"
- module-definition: "npm:^3.3.1"
- module-lookup-amd: "npm:^7.0.1"
- resolve: "npm:^1.21.0"
- resolve-dependency-path: "npm:^2.0.0"
- sass-lookup: "npm:^3.0.0"
- stylus-lookup: "npm:^3.0.1"
- tsconfig-paths: "npm:^3.10.1"
- typescript: "npm:^3.9.7"
- bin:
- filing-cabinet: bin/cli.js
- checksum: 10/c4e71efffa1714e2fe862fa7741446a6307ce03a27f01faed3cc4969c9fc395dddd4d1e095569ce0bf6b6c95826f2665883465971f3346ba179f815b888e8151
- languageName: node
- linkType: hard
-
-"fill-range@npm:^7.1.1":
- version: 7.1.1
- resolution: "fill-range@npm:7.1.1"
- dependencies:
- to-regex-range: "npm:^5.0.1"
- checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea
- languageName: node
- linkType: hard
-
-"filter-obj@npm:^5.1.0":
- version: 5.1.0
- resolution: "filter-obj@npm:5.1.0"
- checksum: 10/8f6dab6d8d8855f686e8cc6be289bbbd64a80be52c660124e36e982f78017cf5dae7de95f79ec167fbf62101d6aab93067a3105ae8f56251785a721e678d6b07
- languageName: node
- linkType: hard
-
-"finalhandler@npm:~1.3.1":
- version: 1.3.2
- resolution: "finalhandler@npm:1.3.2"
- dependencies:
- debug: "npm:2.6.9"
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- on-finished: "npm:~2.4.1"
- parseurl: "npm:~1.3.3"
- statuses: "npm:~2.0.2"
- unpipe: "npm:~1.0.0"
- checksum: 10/6cb4f9f80eaeb5a0fac4fdbd27a65d39271f040a0034df16556d896bfd855fd42f09da886781b3102117ea8fceba97b903c1f8b08df1fb5740576d5e0f481eed
- languageName: node
- linkType: hard
-
-"find-cache-dir@npm:^3.3.1":
- version: 3.3.2
- resolution: "find-cache-dir@npm:3.3.2"
- dependencies:
- commondir: "npm:^1.0.1"
- make-dir: "npm:^3.0.2"
- pkg-dir: "npm:^4.1.0"
- checksum: 10/3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85
- languageName: node
- linkType: hard
-
-"find-up@npm:^4.0.0, find-up@npm:^4.1.0":
- version: 4.1.0
- resolution: "find-up@npm:4.1.0"
- dependencies:
- locate-path: "npm:^5.0.0"
- path-exists: "npm:^4.0.0"
- checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844
- languageName: node
- linkType: hard
-
-"find-up@npm:^5.0.0":
- version: 5.0.0
- resolution: "find-up@npm:5.0.0"
- dependencies:
- locate-path: "npm:^6.0.0"
- path-exists: "npm:^4.0.0"
- checksum: 10/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095
- languageName: node
- linkType: hard
-
-"fix-dts-default-cjs-exports@npm:^1.0.0":
- version: 1.0.1
- resolution: "fix-dts-default-cjs-exports@npm:1.0.1"
- dependencies:
- magic-string: "npm:^0.30.17"
- mlly: "npm:^1.7.4"
- rollup: "npm:^4.34.8"
- checksum: 10/3324418bb63c93b6b22a808e242d220caba804860c24218b2912abc4525525334fcdcb62d22be6472a8d84ee2ad4165bc79554140c3369eb11d23220cdd986ce
- languageName: node
- linkType: hard
-
-"flat-cache@npm:^3.0.4":
- version: 3.2.0
- resolution: "flat-cache@npm:3.2.0"
- dependencies:
- flatted: "npm:^3.2.9"
- keyv: "npm:^4.5.3"
- rimraf: "npm:^3.0.2"
- checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70
- languageName: node
- linkType: hard
-
-"flat@npm:^5.0.2":
- version: 5.0.2
- resolution: "flat@npm:5.0.2"
- bin:
- flat: cli.js
- checksum: 10/72479e651c15eab53e25ce04c31bab18cfaac0556505cac19221dbbe85bbb9686bc76e4d397e89e5bf516ce667dcf818f8b07e585568edba55abc2bf1f698fb5
- languageName: node
- linkType: hard
-
-"flatted@npm:^3.2.9":
- version: 3.3.3
- resolution: "flatted@npm:3.3.3"
- checksum: 10/8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe
- languageName: node
- linkType: hard
-
-"flatten@npm:^1.0.2":
- version: 1.0.3
- resolution: "flatten@npm:1.0.3"
- checksum: 10/5c57379816f1692aaa79fbc6390e0a0644e5e8442c5783ed57c6d315468eddbc53a659eaa03c9bb1e771b0f4a9bd8dd8a2620286bf21fd6538a7857321fdfb20
- languageName: node
- linkType: hard
-
-"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.15.6":
- version: 1.15.11
- resolution: "follow-redirects@npm:1.15.11"
- peerDependenciesMeta:
- debug:
- optional: true
- checksum: 10/07372fd74b98c78cf4d417d68d41fdaa0be4dcacafffb9e67b1e3cf090bc4771515e65020651528faab238f10f9b9c0d9707d6c1574a6c0387c5de1042cde9ba
- languageName: node
- linkType: hard
-
-"for-each@npm:^0.3.3, for-each@npm:^0.3.5":
- version: 0.3.5
- resolution: "for-each@npm:0.3.5"
- dependencies:
- is-callable: "npm:^1.2.7"
- checksum: 10/330cc2439f85c94f4609de3ee1d32c5693ae15cdd7fe3d112c4fd9efd4ce7143f2c64ef6c2c9e0cfdb0058437f33ef05b5bdae5b98fcc903fb2143fbaf0fea0f
- languageName: node
- linkType: hard
-
-"foreground-child@npm:^3.1.0":
- version: 3.3.1
- resolution: "foreground-child@npm:3.3.1"
- dependencies:
- cross-spawn: "npm:^7.0.6"
- signal-exit: "npm:^4.0.1"
- checksum: 10/427b33f997a98073c0424e5c07169264a62cda806d8d2ded159b5b903fdfc8f0a1457e06b5fc35506497acb3f1e353f025edee796300209ac6231e80edece835
- languageName: node
- linkType: hard
-
-"form-data@npm:^2.3.3":
- version: 2.5.5
- resolution: "form-data@npm:2.5.5"
- dependencies:
- asynckit: "npm:^0.4.0"
- combined-stream: "npm:^1.0.8"
- es-set-tostringtag: "npm:^2.1.0"
- hasown: "npm:^2.0.2"
- mime-types: "npm:^2.1.35"
- safe-buffer: "npm:^5.2.1"
- checksum: 10/4b6a8d07bb67089da41048e734215f68317a8e29dd5385a972bf5c458a023313c69d3b5d6b8baafbb7f808fa9881e0e2e030ffe61e096b3ddc894c516401271d
- languageName: node
- linkType: hard
-
-"form-data@npm:^4.0.0, form-data@npm:^4.0.4":
- version: 4.0.5
- resolution: "form-data@npm:4.0.5"
- dependencies:
- asynckit: "npm:^0.4.0"
- combined-stream: "npm:^1.0.8"
- es-set-tostringtag: "npm:^2.1.0"
- hasown: "npm:^2.0.2"
- mime-types: "npm:^2.1.12"
- checksum: 10/52ecd6e927c8c4e215e68a7ad5e0f7c1031397439672fd9741654b4a94722c4182e74cc815b225dcb5be3f4180f36428f67c6dd39eaa98af0dcfdd26c00c19cd
- languageName: node
- linkType: hard
-
-"formdata-polyfill@npm:^4.0.10":
- version: 4.0.10
- resolution: "formdata-polyfill@npm:4.0.10"
- dependencies:
- fetch-blob: "npm:^3.1.2"
- checksum: 10/9b5001d2edef3c9449ac3f48bd4f8cc92e7d0f2e7c1a5c8ba555ad4e77535cc5cf621fabe49e97f304067037282dd9093b9160a3cb533e46420b446c4e6bc06f
- languageName: node
- linkType: hard
-
-"forwarded@npm:0.2.0":
- version: 0.2.0
- resolution: "forwarded@npm:0.2.0"
- checksum: 10/29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81
- languageName: node
- linkType: hard
-
-"fresh@npm:~0.5.2":
- version: 0.5.2
- resolution: "fresh@npm:0.5.2"
- checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1
- languageName: node
- linkType: hard
-
-"fs-constants@npm:^1.0.0":
- version: 1.0.0
- resolution: "fs-constants@npm:1.0.0"
- checksum: 10/18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d
- languageName: node
- linkType: hard
-
-"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0":
- version: 10.1.0
- resolution: "fs-extra@npm:10.1.0"
- dependencies:
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^6.0.1"
- universalify: "npm:^2.0.0"
- checksum: 10/05ce2c3b59049bcb7b52001acd000e44b3c4af4ec1f8839f383ef41ec0048e3cfa7fd8a637b1bddfefad319145db89be91f4b7c1db2908205d38bf91e7d1d3b7
- languageName: node
- linkType: hard
-
-"fs-extra@npm:^11.1.1":
- version: 11.3.3
- resolution: "fs-extra@npm:11.3.3"
- dependencies:
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^6.0.1"
- universalify: "npm:^2.0.0"
- checksum: 10/daeaefafbebe8fa6efd2fb96fc926f2c952be5877811f00a6794f0d64e0128e3d0d93368cd328f8f063b45deacf385c40e3d931aa46014245431cd2f4f89c67a
- languageName: node
- linkType: hard
-
-"fs-extra@npm:^8.1.0":
- version: 8.1.0
- resolution: "fs-extra@npm:8.1.0"
- dependencies:
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^4.0.0"
- universalify: "npm:^0.1.0"
- checksum: 10/6fb12449f5349be724a138b4a7b45fe6a317d2972054517f5971959c26fbd17c0e145731a11c7324460262baa33e0a799b183ceace98f7a372c95fbb6f20f5de
- languageName: node
- linkType: hard
-
-"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1":
- version: 9.1.0
- resolution: "fs-extra@npm:9.1.0"
- dependencies:
- at-least-node: "npm:^1.0.0"
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^6.0.1"
- universalify: "npm:^2.0.0"
- checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca
- languageName: node
- linkType: hard
-
-"fs-minipass@npm:^2.0.0":
- version: 2.1.0
- resolution: "fs-minipass@npm:2.1.0"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10/03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec
- languageName: node
- linkType: hard
-
-"fs-minipass@npm:^3.0.0":
- version: 3.0.3
- resolution: "fs-minipass@npm:3.0.3"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f
- languageName: node
- linkType: hard
-
-"fs-mkdirp-stream@npm:^2.0.1":
- version: 2.0.1
- resolution: "fs-mkdirp-stream@npm:2.0.1"
- dependencies:
- graceful-fs: "npm:^4.2.8"
- streamx: "npm:^2.12.0"
- checksum: 10/9fefd9fa3d6985aea0935944288bd20215779f683ec3af3c157cf4d4d4b0c546caae8219219f47a05a1df3b23f6a605fe64bee6ee14e550f1a670db67359ff27
- languageName: node
- linkType: hard
-
-"fs-monkey@npm:^1.0.4":
- version: 1.1.0
- resolution: "fs-monkey@npm:1.1.0"
- checksum: 10/1c6da5d07f6c91e31fd9bcd68909666e18fa243c7af6697e9d2ded16d4ee87cc9c2b67889b19f98211006c228d1915e1beb0678b4080778fb52539ef3e4eab6c
- languageName: node
- linkType: hard
-
-"fs.realpath@npm:^1.0.0":
- version: 1.0.0
- resolution: "fs.realpath@npm:1.0.0"
- checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96
- languageName: node
- linkType: hard
-
-"fsevents@npm:~2.3.2":
- version: 2.3.3
- resolution: "fsevents@npm:2.3.3"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0
- conditions: os=darwin
- languageName: node
- linkType: hard
-
-"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
- version: 2.3.3
- resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
- dependencies:
- node-gyp: "npm:latest"
- conditions: os=darwin
- languageName: node
- linkType: hard
-
-"function-bind@npm:^1.1.2":
- version: 1.1.2
- resolution: "function-bind@npm:1.1.2"
- checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454
- languageName: node
- linkType: hard
-
-"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8":
- version: 1.1.8
- resolution: "function.prototype.name@npm:1.1.8"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.3"
- define-properties: "npm:^1.2.1"
- functions-have-names: "npm:^1.2.3"
- hasown: "npm:^2.0.2"
- is-callable: "npm:^1.2.7"
- checksum: 10/25b9e5bea936732a6f0c0c08db58cc0d609ac1ed458c6a07ead46b32e7b9bf3fe5887796c3f83d35994efbc4fdde81c08ac64135b2c399b8f2113968d44082bc
- languageName: node
- linkType: hard
-
-"functions-have-names@npm:^1.2.3":
- version: 1.2.3
- resolution: "functions-have-names@npm:1.2.3"
- checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05
- languageName: node
- linkType: hard
-
-"gauge@npm:^v5.0.0":
- version: 5.0.2
- resolution: "gauge@npm:5.0.2"
- dependencies:
- aproba: "npm:^1.0.3 || ^2.0.0"
- color-support: "npm:^1.1.3"
- console-control-strings: "npm:^1.1.0"
- has-unicode: "npm:^2.0.1"
- signal-exit: "npm:^4.0.1"
- string-width: "npm:^4.2.3"
- strip-ansi: "npm:^6.0.1"
- wide-align: "npm:^1.1.5"
- checksum: 10/7ed6930e03622e3651182d9312ea763e208e7e71bf126505a59a4424820af2715fdbc4f0655f92a092f3f1015c425094421c9d1a898dbe33cf6779d3e7e91e5c
- languageName: node
- linkType: hard
-
-"generator-function@npm:^2.0.0":
- version: 2.0.1
- resolution: "generator-function@npm:2.0.1"
- checksum: 10/eb7e7eb896c5433f3d40982b2ccacdb3dd990dd3499f14040e002b5d54572476513be8a2e6f9609f6e41ab29f2c4469307611ddbfc37ff4e46b765c326663805
- languageName: node
- linkType: hard
-
-"get-amd-module-type@npm:^3.0.0":
- version: 3.0.2
- resolution: "get-amd-module-type@npm:3.0.2"
- dependencies:
- ast-module-types: "npm:^3.0.0"
- node-source-walk: "npm:^4.2.2"
- checksum: 10/dd41d3d966677ee03b2f51ffe0e9cd1e37df4757ec490c31d67840042d6dc3173c019ec82d03ed12282338239589b3380dac6c59508b4f4ab802f28f1c9c8a8d
- languageName: node
- linkType: hard
-
-"get-amd-module-type@npm:^4.1.0":
- version: 4.1.0
- resolution: "get-amd-module-type@npm:4.1.0"
- dependencies:
- ast-module-types: "npm:^4.0.0"
- node-source-walk: "npm:^5.0.1"
- checksum: 10/b12fe94eeee65df44010d7046f5435661d220b1f8132fbc11e525f2eab4ef2d9e6114c439e9905621f71449e5e43f588f21d29243a53bef36bcfcf5252481b6d
- languageName: node
- linkType: hard
-
-"get-caller-file@npm:^2.0.5":
- version: 2.0.5
- resolution: "get-caller-file@npm:2.0.5"
- checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9
- languageName: node
- linkType: hard
-
-"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0":
- version: 1.3.1
- resolution: "get-intrinsic@npm:1.3.1"
- dependencies:
- async-function: "npm:^1.0.0"
- async-generator-function: "npm:^1.0.0"
- call-bind-apply-helpers: "npm:^1.0.2"
- es-define-property: "npm:^1.0.1"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.1.1"
- function-bind: "npm:^1.1.2"
- generator-function: "npm:^2.0.0"
- get-proto: "npm:^1.0.1"
- gopd: "npm:^1.2.0"
- has-symbols: "npm:^1.1.0"
- hasown: "npm:^2.0.2"
- math-intrinsics: "npm:^1.1.0"
- checksum: 10/bb579dda84caa4a3a41611bdd483dade7f00f246f2a7992eb143c5861155290df3fdb48a8406efa3dfb0b434e2c8fafa4eebd469e409d0439247f85fc3fa2cc1
- languageName: node
- linkType: hard
-
-"get-own-enumerable-property-symbols@npm:^3.0.0":
- version: 3.0.2
- resolution: "get-own-enumerable-property-symbols@npm:3.0.2"
- checksum: 10/8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede
- languageName: node
- linkType: hard
-
-"get-port@npm:^7.1.0":
- version: 7.1.0
- resolution: "get-port@npm:7.1.0"
- checksum: 10/f4d23b43026124007663a899578cc87ff37bfcf645c5c72651e9810ebafc759857784e409fb8e0ada9b90e5c5db089b0ae2f5f6b49fba1ce2e0aff86094ab17d
- languageName: node
- linkType: hard
-
-"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1":
- version: 1.0.1
- resolution: "get-proto@npm:1.0.1"
- dependencies:
- dunder-proto: "npm:^1.0.1"
- es-object-atoms: "npm:^1.0.0"
- checksum: 10/4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b
- languageName: node
- linkType: hard
-
-"get-stream@npm:^4.1.0":
- version: 4.1.0
- resolution: "get-stream@npm:4.1.0"
- dependencies:
- pump: "npm:^3.0.0"
- checksum: 10/12673e8aebc79767d187b203e5bfabb8266304037815d3bcc63b6f8c67c6d4ad0d98d4d4528bcdc1cbea68f1dd91bcbd87827aa3cdcfa9c5fa4a4644716d72c2
- languageName: node
- linkType: hard
-
-"get-stream@npm:^5.1.0":
- version: 5.2.0
- resolution: "get-stream@npm:5.2.0"
- dependencies:
- pump: "npm:^3.0.0"
- checksum: 10/13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb
- languageName: node
- linkType: hard
-
-"get-stream@npm:^6.0.0":
- version: 6.0.1
- resolution: "get-stream@npm:6.0.1"
- checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497
- languageName: node
- linkType: hard
-
-"get-symbol-description@npm:^1.1.0":
- version: 1.1.0
- resolution: "get-symbol-description@npm:1.1.0"
- dependencies:
- call-bound: "npm:^1.0.3"
- es-errors: "npm:^1.3.0"
- get-intrinsic: "npm:^1.2.6"
- checksum: 10/a353e3a9595a74720b40fb5bae3ba4a4f826e186e83814d93375182384265676f59e49998b9cdfac4a2225ce95a3d32a68f502a2c5619303987f1c183ab80494
- languageName: node
- linkType: hard
-
-"get-tsconfig@npm:^4.10.0, get-tsconfig@npm:^4.7.0":
- version: 4.13.0
- resolution: "get-tsconfig@npm:4.13.0"
- dependencies:
- resolve-pkg-maps: "npm:^1.0.0"
- checksum: 10/3603c6da30e312636e4c20461e779114c9126601d1eca70ee4e36e3e3c00e3c21892d2d920027333afa2cc9e20998a436b14abe03a53cde40742581cb0e9ceb2
- languageName: node
- linkType: hard
-
-"gh-pages@npm:^6.1.1":
- version: 6.3.0
- resolution: "gh-pages@npm:6.3.0"
- dependencies:
- async: "npm:^3.2.4"
- commander: "npm:^13.0.0"
- email-addresses: "npm:^5.0.0"
- filenamify: "npm:^4.3.0"
- find-cache-dir: "npm:^3.3.1"
- fs-extra: "npm:^11.1.1"
- globby: "npm:^11.1.0"
- bin:
- gh-pages: bin/gh-pages.js
- gh-pages-clean: bin/gh-pages-clean.js
- checksum: 10/43b0cb353306419e270a7a7e62fa39dc202b63bf01690fb722728e196d6ab73efbead9f639f14d893a6c9d32bc8c5ae806bf0a30c6731a4071f200732403ff08
- languageName: node
- linkType: hard
-
-"gh-release-assets@npm:^2.0.0":
- version: 2.0.1
- resolution: "gh-release-assets@npm:2.0.1"
- dependencies:
- async: "npm:^3.2.0"
- mime: "npm:^3.0.0"
- progress-stream: "npm:^2.0.0"
- pumpify: "npm:^2.0.1"
- simple-get: "npm:^4.0.0"
- util-extend: "npm:^1.0.1"
- checksum: 10/542dbf68591a2ed7b5d3f1fcc6d3a8fedc76ec199008e04fab389463be6d24f6136e291b65d4d122885ce7318e97f8574269c10f4bb491a5b22d7a977cfd5b65
- languageName: node
- linkType: hard
-
-"gh-release@npm:^7.0.2":
- version: 7.0.2
- resolution: "gh-release@npm:7.0.2"
- dependencies:
- "@octokit/rest": "npm:^19.0.5"
- changelog-parser: "npm:^3.0.0"
- deep-extend: "npm:^0.6.0"
- gauge: "npm:^v5.0.0"
- gh-release-assets: "npm:^2.0.0"
- ghauth: "npm:^5.0.0"
- github-url-to-object: "npm:^4.0.4"
- inquirer: "npm:^8.0.0"
- shelljs: "npm:^0.8.4"
- update-notifier: "npm:^5.0.0"
- yargs: "npm:^17.0.0"
- bin:
- gh-release: bin/cli.js
- checksum: 10/16978850378f3334516915757a4030a2b7fb98cd037906610366db7a4cc24ca6e09ae6575911491f13b0782af9c0c40b0e91361d3d8b6e25d27a7727ab7cdf69
- languageName: node
- linkType: hard
-
-"ghauth@npm:^5.0.0":
- version: 5.0.2
- resolution: "ghauth@npm:5.0.2"
- dependencies:
- application-config: "npm:^2.0.0"
- node-fetch: "npm:^2.6.0"
- ora: "npm:^4.0.5"
- read: "npm:^1.0.7"
- checksum: 10/03006808f69c0d1a17920e97ec9979c80d3ceac1e8dce63353de6f11cf0ce74726f7bb20d9898c5009d0918000ee0758a2e4b823a7fc7f1c87f6a0dfb7e44442
- languageName: node
- linkType: hard
-
-"github-from-package@npm:0.0.0":
- version: 0.0.0
- resolution: "github-from-package@npm:0.0.0"
- checksum: 10/2a091ba07fbce22205642543b4ea8aaf068397e1433c00ae0f9de36a3607baf5bcc14da97fbb798cfca6393b3c402031fca06d8b491a44206d6efef391c58537
- languageName: node
- linkType: hard
-
-"github-url-to-object@npm:^4.0.4":
- version: 4.0.6
- resolution: "github-url-to-object@npm:4.0.6"
- dependencies:
- is-url: "npm:^1.1.0"
- checksum: 10/479a973eee6546e255025d5fe97a919720069cbc16e890365f787415abc9c547e2132cb1f592872cc39dedff50d4266c97807c482102082423b5f33e4817b498
- languageName: node
- linkType: hard
-
-"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
- version: 5.1.2
- resolution: "glob-parent@npm:5.1.2"
- dependencies:
- is-glob: "npm:^4.0.1"
- checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247
- languageName: node
- linkType: hard
-
-"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2":
- version: 6.0.2
- resolution: "glob-parent@npm:6.0.2"
- dependencies:
- is-glob: "npm:^4.0.3"
- checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8
- languageName: node
- linkType: hard
-
-"glob-stream@npm:^8.0.3":
- version: 8.0.3
- resolution: "glob-stream@npm:8.0.3"
- dependencies:
- "@gulpjs/to-absolute-glob": "npm:^4.0.0"
- anymatch: "npm:^3.1.3"
- fastq: "npm:^1.13.0"
- glob-parent: "npm:^6.0.2"
- is-glob: "npm:^4.0.3"
- is-negated-glob: "npm:^1.0.0"
- normalize-path: "npm:^3.0.0"
- streamx: "npm:^2.12.5"
- checksum: 10/3173bc6e1672db28925991c0b30919802a005bae61b08500a3b0826b0a11159ca4365335218525e8bbffc86cc6be2e5b54d92c9c3057629fc2692bdc039c25a2
- languageName: node
- linkType: hard
-
-"glob-to-regexp@npm:^0.4.1":
- version: 0.4.1
- resolution: "glob-to-regexp@npm:0.4.1"
- checksum: 10/9009529195a955c40d7b9690794aeff5ba665cc38f1519e111c58bb54366fd0c106bde80acf97ba4e533208eb53422c83b136611a54c5fefb1edd8dc267cb62e
- languageName: node
- linkType: hard
-
-"glob@npm:^10.0.0, glob@npm:^10.3.10":
- version: 10.5.0
- resolution: "glob@npm:10.5.0"
- dependencies:
- foreground-child: "npm:^3.1.0"
- jackspeak: "npm:^3.1.2"
- minimatch: "npm:^9.0.4"
- minipass: "npm:^7.1.2"
- package-json-from-dist: "npm:^1.0.0"
- path-scurry: "npm:^1.11.1"
- bin:
- glob: dist/esm/bin.mjs
- checksum: 10/ab3bccfefcc0afaedbd1f480cd0c4a2c0e322eb3f0aa7ceaa31b3f00b825069f17cf0f1fc8b6f256795074b903f37c0ade37ddda6a176aa57f1c2bbfe7240653
- languageName: node
- linkType: hard
-
-"glob@npm:^13.0.0":
- version: 13.0.0
- resolution: "glob@npm:13.0.0"
- dependencies:
- minimatch: "npm:^10.1.1"
- minipass: "npm:^7.1.2"
- path-scurry: "npm:^2.0.0"
- checksum: 10/de390721d29ee1c9ea41e40ec2aa0de2cabafa68022e237dc4297665a5e4d650776f2573191984ea1640aba1bf0ea34eddef2d8cbfbfc2ad24b5fb0af41d8846
- languageName: node
- linkType: hard
-
-"glob@npm:^5.0.15":
- version: 5.0.15
- resolution: "glob@npm:5.0.15"
- dependencies:
- inflight: "npm:^1.0.4"
- inherits: "npm:2"
- minimatch: "npm:2 || 3"
- once: "npm:^1.3.0"
- path-is-absolute: "npm:^1.0.0"
- checksum: 10/4a1f2401329d94b5c25c6ac16276aceccc52b865bd9b2b9198da21fc937d021bfd87463ae44de9a9e4794894a49bc619ebaf7e5b12182bcf97e2ceb68ae116d7
- languageName: node
- linkType: hard
-
-"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.6":
- version: 7.2.3
- resolution: "glob@npm:7.2.3"
- dependencies:
- fs.realpath: "npm:^1.0.0"
- inflight: "npm:^1.0.4"
- inherits: "npm:2"
- minimatch: "npm:^3.1.1"
- once: "npm:^1.3.0"
- path-is-absolute: "npm:^1.0.0"
- checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b
- languageName: node
- linkType: hard
-
-"glob@npm:^8.0.3":
- version: 8.1.0
- resolution: "glob@npm:8.1.0"
- dependencies:
- fs.realpath: "npm:^1.0.0"
- inflight: "npm:^1.0.4"
- inherits: "npm:2"
- minimatch: "npm:^5.0.1"
- once: "npm:^1.3.0"
- checksum: 10/9aab1c75eb087c35dbc41d1f742e51d0507aa2b14c910d96fb8287107a10a22f4bbdce26fc0a3da4c69a20f7b26d62f1640b346a4f6e6becfff47f335bb1dc5e
- languageName: node
- linkType: hard
-
-"global-agent@npm:^3.0.0":
- version: 3.0.0
- resolution: "global-agent@npm:3.0.0"
- dependencies:
- boolean: "npm:^3.0.1"
- es6-error: "npm:^4.1.1"
- matcher: "npm:^3.0.0"
- roarr: "npm:^2.15.3"
- semver: "npm:^7.3.2"
- serialize-error: "npm:^7.0.1"
- checksum: 10/a26d96d1d79af57a8ef957f66cef6f3889a8fa55131f0bbd72b8e1bc340a9b7ed7b627b96eaf5eb14aee08a8b4ad44395090e2cf77146e993f1d2df7abaa0a0d
- languageName: node
- linkType: hard
-
-"global-dirs@npm:^3.0.0":
- version: 3.0.1
- resolution: "global-dirs@npm:3.0.1"
- dependencies:
- ini: "npm:2.0.0"
- checksum: 10/70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438
- languageName: node
- linkType: hard
-
-"globals@npm:^13.19.0, globals@npm:^13.24.0":
- version: 13.24.0
- resolution: "globals@npm:13.24.0"
- dependencies:
- type-fest: "npm:^0.20.2"
- checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e
- languageName: node
- linkType: hard
-
-"globalthis@npm:^1.0.1, globalthis@npm:^1.0.4":
- version: 1.0.4
- resolution: "globalthis@npm:1.0.4"
- dependencies:
- define-properties: "npm:^1.2.1"
- gopd: "npm:^1.0.1"
- checksum: 10/1f1fd078fb2f7296306ef9dd51019491044ccf17a59ed49d375b576ca108ff37e47f3d29aead7add40763574a992f16a5367dd1e2173b8634ef18556ab719ac4
- languageName: node
- linkType: hard
-
-"globby@npm:^11.0.3, globby@npm:^11.1.0":
- version: 11.1.0
- resolution: "globby@npm:11.1.0"
- dependencies:
- array-union: "npm:^2.1.0"
- dir-glob: "npm:^3.0.1"
- fast-glob: "npm:^3.2.9"
- ignore: "npm:^5.2.0"
- merge2: "npm:^1.4.1"
- slash: "npm:^3.0.0"
- checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1
- languageName: node
- linkType: hard
-
-"globby@npm:^13.1.1":
- version: 13.2.2
- resolution: "globby@npm:13.2.2"
- dependencies:
- dir-glob: "npm:^3.0.1"
- fast-glob: "npm:^3.3.0"
- ignore: "npm:^5.2.4"
- merge2: "npm:^1.4.1"
- slash: "npm:^4.0.0"
- checksum: 10/4494a9d2162a7e4d327988b26be66d8eab87d7f59a83219e74b065e2c3ced23698f68fb10482bf9337133819281803fb886d6ae06afbb2affa743623eb0b1949
- languageName: node
- linkType: hard
-
-"gonzales-pe@npm:^4.2.3, gonzales-pe@npm:^4.3.0":
- version: 4.3.0
- resolution: "gonzales-pe@npm:4.3.0"
- dependencies:
- minimist: "npm:^1.2.5"
- bin:
- gonzales: bin/gonzales.js
- checksum: 10/d1676546bcaa4cb1c6c1fc5de5d62e85960665a13a4c489b02baeb58a10c53a249beef05ceaf21ea801813a559ff17d7b61158aa417211c135bcb8bdcb1701ca
- languageName: node
- linkType: hard
-
-"gopd@npm:^1.0.1, gopd@npm:^1.2.0":
- version: 1.2.0
- resolution: "gopd@npm:1.2.0"
- checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1
- languageName: node
- linkType: hard
-
-"got@npm:^11.5.1, got@npm:^11.8.5":
- version: 11.8.6
- resolution: "got@npm:11.8.6"
- dependencies:
- "@sindresorhus/is": "npm:^4.0.0"
- "@szmarczak/http-timer": "npm:^4.0.5"
- "@types/cacheable-request": "npm:^6.0.1"
- "@types/responselike": "npm:^1.0.0"
- cacheable-lookup: "npm:^5.0.3"
- cacheable-request: "npm:^7.0.2"
- decompress-response: "npm:^6.0.0"
- http2-wrapper: "npm:^1.0.0-beta.5.2"
- lowercase-keys: "npm:^2.0.0"
- p-cancelable: "npm:^2.0.0"
- responselike: "npm:^2.0.0"
- checksum: 10/a30c74029d81bd5fe50dea1a0c970595d792c568e188ff8be254b5bc11e6158d1b014570772d4a30d0a97723e7dd34e7c8cc1a2f23018f60aece3070a7a5c2a5
- languageName: node
- linkType: hard
-
-"got@npm:^9.6.0":
- version: 9.6.0
- resolution: "got@npm:9.6.0"
- dependencies:
- "@sindresorhus/is": "npm:^0.14.0"
- "@szmarczak/http-timer": "npm:^1.1.2"
- cacheable-request: "npm:^6.0.0"
- decompress-response: "npm:^3.3.0"
- duplexer3: "npm:^0.1.4"
- get-stream: "npm:^4.1.0"
- lowercase-keys: "npm:^1.0.1"
- mimic-response: "npm:^1.0.1"
- p-cancelable: "npm:^1.0.0"
- to-readable-stream: "npm:^1.0.0"
- url-parse-lax: "npm:^3.0.0"
- checksum: 10/fae3273b44392b6b1d88071d04ea984784e63dbf8ba3f70b04cb7edda53c7668ee17288ac46af507a9f2aa60c183c5ea1732339141d253dda3eb19f92985c771
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.8":
- version: 4.2.11
- resolution: "graceful-fs@npm:4.2.11"
- checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
- languageName: node
- linkType: hard
-
-"graphemer@npm:^1.4.0":
- version: 1.4.0
- resolution: "graphemer@npm:1.4.0"
- checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897
- languageName: node
- linkType: hard
-
-"gud@npm:^1.0.0":
- version: 1.0.0
- resolution: "gud@npm:1.0.0"
- checksum: 10/3e2eb37cf794364077c18f036d6aa259c821c7fd188f2b7935cb00d589d82a41e0ebb1be809e1a93679417f62f1ad0513e745c3cf5329596e489aef8c5e5feae
- languageName: node
- linkType: hard
-
-"gulp-sort@npm:^2.0.0":
- version: 2.0.0
- resolution: "gulp-sort@npm:2.0.0"
- dependencies:
- through2: "npm:^2.0.1"
- checksum: 10/8645d80b26990290e8623ccf38420e319a4ea67b64ac3e4f2b5de6c20b9006973001fd989dfe0fe3b2560044d3dfbc005685126826536e01718a2628aa45d0c5
- languageName: node
- linkType: hard
-
-"gzip-size@npm:^6.0.0":
- version: 6.0.0
- resolution: "gzip-size@npm:6.0.0"
- dependencies:
- duplexer: "npm:^0.1.2"
- checksum: 10/2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194
- languageName: node
- linkType: hard
-
-"handle-thing@npm:^2.0.0":
- version: 2.0.1
- resolution: "handle-thing@npm:2.0.1"
- checksum: 10/441ec98b07f26819c70c702f6c874088eebeb551b242fe8fae4eab325746b82bf84ae7a1f6419547698accb3941fa26806c5f5f93c50e19f90e499065a711d61
- languageName: node
- linkType: hard
-
-"handlebars@npm:^4.7.8":
- version: 4.7.8
- resolution: "handlebars@npm:4.7.8"
- dependencies:
- minimist: "npm:^1.2.5"
- neo-async: "npm:^2.6.2"
- source-map: "npm:^0.6.1"
- uglify-js: "npm:^3.1.4"
- wordwrap: "npm:^1.0.0"
- dependenciesMeta:
- uglify-js:
- optional: true
- bin:
- handlebars: bin/handlebars
- checksum: 10/bd528f4dd150adf67f3f857118ef0fa43ff79a153b1d943fa0a770f2599e38b25a7a0dbac1a3611a4ec86970fd2325a81310fb788b5c892308c9f8743bd02e11
- languageName: node
- linkType: hard
-
-"hard-rejection@npm:^2.1.0":
- version: 2.1.0
- resolution: "hard-rejection@npm:2.1.0"
- checksum: 10/7baaf80a0c7fff4ca79687b4060113f1529589852152fa935e6787a2bc96211e784ad4588fb3048136ff8ffc9dfcf3ae385314a5b24db32de20bea0d1597f9dc
- languageName: node
- linkType: hard
-
-"has-bigints@npm:^1.0.2":
- version: 1.1.0
- resolution: "has-bigints@npm:1.1.0"
- checksum: 10/90fb1b24d40d2472bcd1c8bd9dd479037ec240215869bdbff97b2be83acef57d28f7e96bdd003a21bed218d058b49097f4acc8821c05b1629cc5d48dd7bfcccd
- languageName: node
- linkType: hard
-
-"has-flag@npm:^3.0.0":
- version: 3.0.0
- resolution: "has-flag@npm:3.0.0"
- checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b
- languageName: node
- linkType: hard
-
-"has-flag@npm:^4.0.0":
- version: 4.0.0
- resolution: "has-flag@npm:4.0.0"
- checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
- languageName: node
- linkType: hard
-
-"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2":
- version: 1.0.2
- resolution: "has-property-descriptors@npm:1.0.2"
- dependencies:
- es-define-property: "npm:^1.0.0"
- checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2
- languageName: node
- linkType: hard
-
-"has-proto@npm:^1.2.0":
- version: 1.2.0
- resolution: "has-proto@npm:1.2.0"
- dependencies:
- dunder-proto: "npm:^1.0.0"
- checksum: 10/7eaed07728eaa28b77fadccabce53f30de467ff186a766872669a833ac2e87d8922b76a22cc58339d7e0277aefe98d6d00762113b27a97cdf65adcf958970935
- languageName: node
- linkType: hard
-
-"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0":
- version: 1.1.0
- resolution: "has-symbols@npm:1.1.0"
- checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa
- languageName: node
- linkType: hard
-
-"has-tostringtag@npm:^1.0.2":
- version: 1.0.2
- resolution: "has-tostringtag@npm:1.0.2"
- dependencies:
- has-symbols: "npm:^1.0.3"
- checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe
- languageName: node
- linkType: hard
-
-"has-unicode@npm:^2.0.1":
- version: 2.0.1
- resolution: "has-unicode@npm:2.0.1"
- checksum: 10/041b4293ad6bf391e21c5d85ed03f412506d6623786b801c4ab39e4e6ca54993f13201bceb544d92963f9e0024e6e7fbf0cb1d84c9d6b31cb9c79c8c990d13d8
- languageName: node
- linkType: hard
-
-"has-yarn@npm:^2.1.0":
- version: 2.1.0
- resolution: "has-yarn@npm:2.1.0"
- checksum: 10/5eb1d0bb8518103d7da24532bdbc7124ffc6d367b5d3c10840b508116f2f1bcbcf10fd3ba843ff6e2e991bdf9969fd862d42b2ed58aade88343326c950b7e7f7
- languageName: node
- linkType: hard
-
-"hash-base@npm:^3.0.0, hash-base@npm:^3.1.2":
- version: 3.1.2
- resolution: "hash-base@npm:3.1.2"
- dependencies:
- inherits: "npm:^2.0.4"
- readable-stream: "npm:^2.3.8"
- safe-buffer: "npm:^5.2.1"
- to-buffer: "npm:^1.2.1"
- checksum: 10/f2100420521ec77736ebd9279f2c0b3ab2820136a2fa408ea36f3201d3f6984cda166806e6a0287f92adf179430bedfbdd74348ac351e24a3eff9f01a8c406b0
- languageName: node
- linkType: hard
-
-"hash-base@npm:~3.0.4":
- version: 3.0.5
- resolution: "hash-base@npm:3.0.5"
- dependencies:
- inherits: "npm:^2.0.4"
- safe-buffer: "npm:^5.2.1"
- checksum: 10/6a82675a5de2ea9347501bbe655a2334950c7ec972fd9810ae9529e06aeab8f7e8ef68fc2112e5e6f0745561a7e05326efca42ad59bb5fd116537f5f8b0a216d
- languageName: node
- linkType: hard
-
-"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7":
- version: 1.1.7
- resolution: "hash.js@npm:1.1.7"
- dependencies:
- inherits: "npm:^2.0.3"
- minimalistic-assert: "npm:^1.0.1"
- checksum: 10/0c89ee4006606a40f92df5cc3c263342e7fea68110f3e9ef032bd2083650430505db01b6b7926953489517d4027535e4fdc7f970412893d3031c361d3ec8f4b3
- languageName: node
- linkType: hard
-
-"hashlru@npm:^2.3.0":
- version: 2.3.0
- resolution: "hashlru@npm:2.3.0"
- checksum: 10/38b3559e6fb9d19fa731edc52d8d7e72cd378f708dcb01cecd4a6ba0c52f06d7d06d6277249f5c43d9915d8dda9be31adad768a379eef188db213c3f2b09278d
- languageName: node
- linkType: hard
-
-"hasown@npm:^2.0.2":
- version: 2.0.2
- resolution: "hasown@npm:2.0.2"
- dependencies:
- function-bind: "npm:^1.1.2"
- checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a
- languageName: node
- linkType: hard
-
-"hast-util-from-parse5@npm:^8.0.0":
- version: 8.0.3
- resolution: "hast-util-from-parse5@npm:8.0.3"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- "@types/unist": "npm:^3.0.0"
- devlop: "npm:^1.0.0"
- hastscript: "npm:^9.0.0"
- property-information: "npm:^7.0.0"
- vfile: "npm:^6.0.0"
- vfile-location: "npm:^5.0.0"
- web-namespaces: "npm:^2.0.0"
- checksum: 10/539c945c550cfef394a89dcff6e4de26768a748a7288ddce6f59554dd271b663b8398d58ace434264e965aaf3828fdbff86f9109d7fa639b3fe34dedcad4a5df
- languageName: node
- linkType: hard
-
-"hast-util-parse-selector@npm:^4.0.0":
- version: 4.0.0
- resolution: "hast-util-parse-selector@npm:4.0.0"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- checksum: 10/76087670d3b0b50b23a6cb70bca53a6176d6608307ccdbb3ed18b650b82e7c3513bfc40348f1389dc0c5ae872b9a768851f4335f44654abd7deafd6974c52402
- languageName: node
- linkType: hard
-
-"hast-util-raw@npm:^9.0.0":
- version: 9.1.0
- resolution: "hast-util-raw@npm:9.1.0"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- "@types/unist": "npm:^3.0.0"
- "@ungap/structured-clone": "npm:^1.0.0"
- hast-util-from-parse5: "npm:^8.0.0"
- hast-util-to-parse5: "npm:^8.0.0"
- html-void-elements: "npm:^3.0.0"
- mdast-util-to-hast: "npm:^13.0.0"
- parse5: "npm:^7.0.0"
- unist-util-position: "npm:^5.0.0"
- unist-util-visit: "npm:^5.0.0"
- vfile: "npm:^6.0.0"
- web-namespaces: "npm:^2.0.0"
- zwitch: "npm:^2.0.0"
- checksum: 10/fa304d08a9fce0f54b2baa18d15c45cb5cac695cbee3567b8ccbd9a57fa295c0fb23d238daca1cf0135ad8d538bb341dcd7d9da03f8b7d12e6980a9f8c4340ae
- languageName: node
- linkType: hard
-
-"hast-util-to-jsx-runtime@npm:^2.0.0":
- version: 2.3.6
- resolution: "hast-util-to-jsx-runtime@npm:2.3.6"
- dependencies:
- "@types/estree": "npm:^1.0.0"
- "@types/hast": "npm:^3.0.0"
- "@types/unist": "npm:^3.0.0"
- comma-separated-tokens: "npm:^2.0.0"
- devlop: "npm:^1.0.0"
- estree-util-is-identifier-name: "npm:^3.0.0"
- hast-util-whitespace: "npm:^3.0.0"
- mdast-util-mdx-expression: "npm:^2.0.0"
- mdast-util-mdx-jsx: "npm:^3.0.0"
- mdast-util-mdxjs-esm: "npm:^2.0.0"
- property-information: "npm:^7.0.0"
- space-separated-tokens: "npm:^2.0.0"
- style-to-js: "npm:^1.0.0"
- unist-util-position: "npm:^5.0.0"
- vfile-message: "npm:^4.0.0"
- checksum: 10/111bd69f482952c7591cb4e1d3face25f1c18849b310a4d6cacc91e2d2cbc965d455fad35c059b8f0cfd762e933b826a7090b6f3098dece08307a6569de8f1d8
- languageName: node
- linkType: hard
-
-"hast-util-to-parse5@npm:^8.0.0":
- version: 8.0.1
- resolution: "hast-util-to-parse5@npm:8.0.1"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- comma-separated-tokens: "npm:^2.0.0"
- devlop: "npm:^1.0.0"
- property-information: "npm:^7.0.0"
- space-separated-tokens: "npm:^2.0.0"
- web-namespaces: "npm:^2.0.0"
- zwitch: "npm:^2.0.0"
- checksum: 10/4776c2fc2d6231364e4d59e7b0045f2ba340fdbf912825147fa2c3dfdf90cc7f458c86da90a9c2c7028375197f1ba2e831ea4c4ea549a0a9911a670e73edd6a7
- languageName: node
- linkType: hard
-
-"hast-util-whitespace@npm:^3.0.0":
- version: 3.0.0
- resolution: "hast-util-whitespace@npm:3.0.0"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- checksum: 10/8c7e9eeb8131fc18702f3a42623eb6b0b09d470347aa8badacac70e6d91f79657ab8c6b57c4c6fee3658cff405fac30e816d1cdfb3ed1fbf6045d0a4555cf4d4
- languageName: node
- linkType: hard
-
-"hastscript@npm:^9.0.0":
- version: 9.0.1
- resolution: "hastscript@npm:9.0.1"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- comma-separated-tokens: "npm:^2.0.0"
- hast-util-parse-selector: "npm:^4.0.0"
- property-information: "npm:^7.0.0"
- space-separated-tokens: "npm:^2.0.0"
- checksum: 10/9aa8135faf0307807cca4075bef4e3403ae1ce959ad4b9e6720892ba957d58ff98b2f60b5eb3ac67d88ae897dc918997299cd4249d7ac602a0066dd46442c5d4
- languageName: node
- linkType: hard
-
-"he@npm:^1.2.0":
- version: 1.2.0
- resolution: "he@npm:1.2.0"
- bin:
- he: bin/he
- checksum: 10/d09b2243da4e23f53336e8de3093e5c43d2c39f8d0d18817abfa32ce3e9355391b2edb4bb5edc376aea5d4b0b59d6a0482aab4c52bc02ef95751e4b818e847f1
- languageName: node
- linkType: hard
-
-"help-me@npm:^5.0.0":
- version: 5.0.0
- resolution: "help-me@npm:5.0.0"
- checksum: 10/5f99bd91dae93d02867175c3856c561d7e3a24f16999b08f5fc79689044b938d7ed58457f4d8c8744c01403e6e0470b7896baa344d112b2355842fd935a75d69
- languageName: node
- linkType: hard
-
-"highlight.js@npm:^9.3.0":
- version: 9.18.5
- resolution: "highlight.js@npm:9.18.5"
- checksum: 10/56ddbd562ece7da84847770d96e8e52bd0e6151f69efb95e249d8e1fde2b5ed78cdaa2c0d33e4c838caa434cb0fe1aeeca4edca9c2c3343daf23dcf2ffbd3dc9
- languageName: node
- linkType: hard
-
-"hmac-drbg@npm:^1.0.1":
- version: 1.0.1
- resolution: "hmac-drbg@npm:1.0.1"
- dependencies:
- hash.js: "npm:^1.0.3"
- minimalistic-assert: "npm:^1.0.0"
- minimalistic-crypto-utils: "npm:^1.0.1"
- checksum: 10/0298a1445b8029a69b713d918ecaa84a1d9f614f5857e0c6e1ca517abfa1357216987b2ee08cc6cc73ba82a6c6ddf2ff11b9717a653530ef03be599d4699b836
- languageName: node
- linkType: hard
-
-"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2":
- version: 3.3.2
- resolution: "hoist-non-react-statics@npm:3.3.2"
- dependencies:
- react-is: "npm:^16.7.0"
- checksum: 10/1acbe85f33e5a39f90c822ad4d28b24daeb60f71c545279431dc98c312cd28a54f8d64788e477fe21dc502b0e3cf58589ebe5c1ad22af27245370391c2d24ea6
- languageName: node
- linkType: hard
-
-"hosted-git-info@npm:^2.1.4":
- version: 2.8.9
- resolution: "hosted-git-info@npm:2.8.9"
- checksum: 10/96da7d412303704af41c3819207a09ea2cab2de97951db4cf336bb8bce8d8e36b9a6821036ad2e55e67d3be0af8f967a7b57981203fbfb88bc05cd803407b8c3
- languageName: node
- linkType: hard
-
-"hosted-git-info@npm:^4.1.0":
- version: 4.1.0
- resolution: "hosted-git-info@npm:4.1.0"
- dependencies:
- lru-cache: "npm:^6.0.0"
- checksum: 10/4dc67022b7ecb12829966bd731fb9a5f14d351547aafc6520ef3c8e7211f4f0e69452d24e29eae3d9b17df924d660052e53d8ca321cf3008418fb7e6c7c47d6f
- languageName: node
- linkType: hard
-
-"hpack.js@npm:^2.1.6":
- version: 2.1.6
- resolution: "hpack.js@npm:2.1.6"
- dependencies:
- inherits: "npm:^2.0.1"
- obuf: "npm:^1.0.0"
- readable-stream: "npm:^2.0.1"
- wbuf: "npm:^1.1.0"
- checksum: 10/6910e4b9d943a78fd8e84ac42729fdab9bd406789d6204ad160af9dc5aa4750fc01f208249bf7116c11dc0678207a387b4ade24e4b628b95385b251ceeeb719c
- languageName: node
- linkType: hard
-
-"html-encoding-sniffer@npm:^4.0.0":
- version: 4.0.0
- resolution: "html-encoding-sniffer@npm:4.0.0"
- dependencies:
- whatwg-encoding: "npm:^3.1.1"
- checksum: 10/e86efd493293a5671b8239bd099d42128433bb3c7b0fdc7819282ef8e118a21f5dead0ad6f358e024a4e5c84f17ebb7a9b36075220fac0a6222b207248bede6f
- languageName: node
- linkType: hard
-
-"html-entities@npm:^2.3.2":
- version: 2.6.0
- resolution: "html-entities@npm:2.6.0"
- checksum: 10/06d4e7a3ba6243bba558af176e56f85e09894b26d911bc1ef7b2b9b3f18b46604360805b32636f080e954778e9a34313d1982479a05a5aa49791afd6a4229346
- languageName: node
- linkType: hard
-
-"html-minifier-terser@npm:^6.0.2":
- version: 6.1.0
- resolution: "html-minifier-terser@npm:6.1.0"
- dependencies:
- camel-case: "npm:^4.1.2"
- clean-css: "npm:^5.2.2"
- commander: "npm:^8.3.0"
- he: "npm:^1.2.0"
- param-case: "npm:^3.0.4"
- relateurl: "npm:^0.2.7"
- terser: "npm:^5.10.0"
- bin:
- html-minifier-terser: cli.js
- checksum: 10/a244fa944e002b57c66cc829a3f2dfdb9514b1833c2d838ada624964bf8c0afaf61d36c371758c7e44dedae95cea740a84d8d1067b916ed204f35175184d0e27
- languageName: node
- linkType: hard
-
-"html-parse-stringify@npm:^3.0.1":
- version: 3.0.1
- resolution: "html-parse-stringify@npm:3.0.1"
- dependencies:
- void-elements: "npm:3.1.0"
- checksum: 10/8743b76cc50e46d1956c1ad879d18eb9613b0d2d81e24686d633f9f69bb26b84676f64a926973de793cca479997017a63219278476d617b6c42d68246d7c07fe
- languageName: node
- linkType: hard
-
-"html-url-attributes@npm:^3.0.0":
- version: 3.0.1
- resolution: "html-url-attributes@npm:3.0.1"
- checksum: 10/494074c2f730c5c0e517aa1b10111fb36732534a2d2b70427582c4a615472b47da472cf3a17562cc653826d378d20960f2783e0400f4f7cf0c3c2d91c6188d13
- languageName: node
- linkType: hard
-
-"html-void-elements@npm:^3.0.0":
- version: 3.0.0
- resolution: "html-void-elements@npm:3.0.0"
- checksum: 10/59be397525465a7489028afa064c55763d9cccd1d7d9f630cca47137317f0e897a9ca26cef7e745e7cff1abc44260cfa407742b243a54261dfacd42230e94fce
- languageName: node
- linkType: hard
-
-"html-webpack-plugin@npm:^5.5.4":
- version: 5.6.5
- resolution: "html-webpack-plugin@npm:5.6.5"
- dependencies:
- "@types/html-minifier-terser": "npm:^6.0.0"
- html-minifier-terser: "npm:^6.0.2"
- lodash: "npm:^4.17.21"
- pretty-error: "npm:^4.0.0"
- tapable: "npm:^2.0.0"
- peerDependencies:
- "@rspack/core": 0.x || 1.x
- webpack: ^5.20.0
- peerDependenciesMeta:
- "@rspack/core":
- optional: true
- webpack:
- optional: true
- checksum: 10/89e84f6ede068242348b2c2f09da67bf39a6b22d14399eaf16e399be05a4e2bb1f3f1c71ec03b7193aed96ebe2cf61d45a70565408b271661f7ea8635b237701
- languageName: node
- linkType: hard
-
-"htmlparser2@npm:^6.1.0":
- version: 6.1.0
- resolution: "htmlparser2@npm:6.1.0"
- dependencies:
- domelementtype: "npm:^2.0.1"
- domhandler: "npm:^4.0.0"
- domutils: "npm:^2.5.2"
- entities: "npm:^2.0.0"
- checksum: 10/c9c34b0b722f5923c4ae05e59268aeb768582152969e3338a1cd3342b87f8dd2c0420f4745e46d2fd87f1b677ea2f314c3a93436ed8831905997e6347e081a5d
- languageName: node
- linkType: hard
-
-"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1":
- version: 4.2.0
- resolution: "http-cache-semantics@npm:4.2.0"
- checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693
- languageName: node
- linkType: hard
-
-"http-deceiver@npm:^1.2.7":
- version: 1.2.7
- resolution: "http-deceiver@npm:1.2.7"
- checksum: 10/9ae293b0acbfad6ed45d52c1f85f58ab062465872fd9079c80d78c6527634002d73c2a9d8c0296cc12d178a0b689bb5291d9979aad3ce71ab17a7517588adbf7
- languageName: node
- linkType: hard
-
-"http-errors@npm:~1.6.2":
- version: 1.6.3
- resolution: "http-errors@npm:1.6.3"
- dependencies:
- depd: "npm:~1.1.2"
- inherits: "npm:2.0.3"
- setprototypeof: "npm:1.1.0"
- statuses: "npm:>= 1.4.0 < 2"
- checksum: 10/e48732657ea0b4a09853d2696a584fa59fa2a8c1ba692af7af3137b5491a997d7f9723f824e7e08eb6a87098532c09ce066966ddf0f9f3dd30905e52301acadb
- languageName: node
- linkType: hard
-
-"http-errors@npm:~2.0.0, http-errors@npm:~2.0.1":
- version: 2.0.1
- resolution: "http-errors@npm:2.0.1"
- dependencies:
- depd: "npm:~2.0.0"
- inherits: "npm:~2.0.4"
- setprototypeof: "npm:~1.2.0"
- statuses: "npm:~2.0.2"
- toidentifier: "npm:~1.0.1"
- checksum: 10/9fe31bc0edf36566c87048aed1d3d0cbe03552564adc3541626a0613f542d753fbcb13bdfcec0a3a530dbe1714bb566c89d46244616b66bddd26ac413b06a207
- languageName: node
- linkType: hard
-
-"http-parser-js@npm:>=0.5.1":
- version: 0.5.10
- resolution: "http-parser-js@npm:0.5.10"
- checksum: 10/33c53b458cfdf7e43f1517f9bcb6bed1c614b1c7c5d65581a84304110eb9eb02a48f998c7504b8bee432ef4a8ec9318e7009406b506b28b5610fed516242b20a
- languageName: node
- linkType: hard
-
-"http-proxy-agent@npm:^5.0.0":
- version: 5.0.0
- resolution: "http-proxy-agent@npm:5.0.0"
- dependencies:
- "@tootallnate/once": "npm:2"
- agent-base: "npm:6"
- debug: "npm:4"
- checksum: 10/5ee19423bc3e0fd5f23ce991b0755699ad2a46a440ce9cec99e8126bb98448ad3479d2c0ea54be5519db5b19a4ffaa69616bac01540db18506dd4dac3dc418f0
- languageName: node
- linkType: hard
-
-"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2":
- version: 7.0.2
- resolution: "http-proxy-agent@npm:7.0.2"
- dependencies:
- agent-base: "npm:^7.1.0"
- debug: "npm:^4.3.4"
- checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848
- languageName: node
- linkType: hard
-
-"http-proxy-middleware@npm:^2.0.3":
- version: 2.0.9
- resolution: "http-proxy-middleware@npm:2.0.9"
- dependencies:
- "@types/http-proxy": "npm:^1.17.8"
- http-proxy: "npm:^1.18.1"
- is-glob: "npm:^4.0.1"
- is-plain-obj: "npm:^3.0.0"
- micromatch: "npm:^4.0.2"
- peerDependencies:
- "@types/express": ^4.17.13
- peerDependenciesMeta:
- "@types/express":
- optional: true
- checksum: 10/4ece416a91d52e96f8136c5f4abfbf7ac2f39becbad21fa8b158a12d7e7d8f808287ff1ae342b903fd1f15f2249dee87fabc09e1f0e73106b83331c496d67660
- languageName: node
- linkType: hard
-
-"http-proxy@npm:^1.18.1":
- version: 1.18.1
- resolution: "http-proxy@npm:1.18.1"
- dependencies:
- eventemitter3: "npm:^4.0.0"
- follow-redirects: "npm:^1.0.0"
- requires-port: "npm:^1.0.0"
- checksum: 10/2489e98aba70adbfd8b9d41ed1ff43528be4598c88616c558b109a09eaffe4bb35e551b6c75ac42ed7d948bb7530a22a2be6ef4f0cecacb5927be139f4274594
- languageName: node
- linkType: hard
-
-"http2-wrapper@npm:^1.0.0-beta.5.2":
- version: 1.0.3
- resolution: "http2-wrapper@npm:1.0.3"
- dependencies:
- quick-lru: "npm:^5.1.1"
- resolve-alpn: "npm:^1.0.0"
- checksum: 10/8097ee2699440c2e64bda52124990cc5b0fb347401c7797b1a0c1efd5a0f79a4ebaa68e8a6ac3e2dde5f09460c1602764da6da2412bad628ed0a3b0ae35e72d4
- languageName: node
- linkType: hard
-
-"https-browserify@npm:^1.0.0":
- version: 1.0.0
- resolution: "https-browserify@npm:1.0.0"
- checksum: 10/2d707c457319e1320adf0e7556174c190865fb345b6a183f033cee440f73221dbe7fa3f0adcffb1e6b0664726256bd44771a82e50fe6c66976c10b237100536a
- languageName: node
- linkType: hard
-
-"https-proxy-agent@npm:^5.0.1":
- version: 5.0.1
- resolution: "https-proxy-agent@npm:5.0.1"
- dependencies:
- agent-base: "npm:6"
- debug: "npm:4"
- checksum: 10/f0dce7bdcac5e8eaa0be3c7368bb8836ed010fb5b6349ffb412b172a203efe8f807d9a6681319105ea1b6901e1972c7b5ea899672a7b9aad58309f766dcbe0df
- languageName: node
- linkType: hard
-
-"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.5":
- version: 7.0.6
- resolution: "https-proxy-agent@npm:7.0.6"
- dependencies:
- agent-base: "npm:^7.1.2"
- debug: "npm:4"
- checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13
- languageName: node
- linkType: hard
-
-"human-signals@npm:^2.1.0":
- version: 2.1.0
- resolution: "human-signals@npm:2.1.0"
- checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86
- languageName: node
- linkType: hard
-
-"humanize-plus@npm:^1.8.1":
- version: 1.8.2
- resolution: "humanize-plus@npm:1.8.2"
- checksum: 10/3c60707ec52157d0e73ad53e4c0928804485580696b58bd9e01bccb39e42115ef92f7967c41135f359601d760d72315bd35578e3b7efcb3477eca74a9b3b2c94
- languageName: node
- linkType: hard
-
-"i18next-browser-languagedetector@npm:^7.2.0":
- version: 7.2.2
- resolution: "i18next-browser-languagedetector@npm:7.2.2"
- dependencies:
- "@babel/runtime": "npm:^7.23.2"
- checksum: 10/6f6dd5db3e83c2ed3b24d7fb754d0c41fd2056a0f06fb3d2a4604541c6ee0031d3f2cbbcfad726bbfc9741bcbbd6cde3acf94d339d600b6d9f49f0bbe51179d9
- languageName: node
- linkType: hard
-
-"i18next-scanner@npm:^4.4.0":
- version: 4.6.0
- resolution: "i18next-scanner@npm:4.6.0"
- dependencies:
- acorn: "npm:^8.0.4"
- acorn-jsx: "npm:^5.3.1"
- acorn-stage3: "npm:^4.0.0"
- acorn-walk: "npm:^8.0.0"
- chalk: "npm:^4.1.0"
- clone-deep: "npm:^4.0.0"
- commander: "npm:^9.0.0"
- deepmerge: "npm:^4.0.0"
- ensure-type: "npm:^1.5.0"
- eol: "npm:^0.9.1"
- esprima-next: "npm:^5.7.0"
- gulp-sort: "npm:^2.0.0"
- i18next: "npm:*"
- lodash: "npm:^4.0.0"
- parse5: "npm:^6.0.0"
- sortobject: "npm:^4.0.0"
- through2: "npm:^4.0.0"
- vinyl: "npm:^3.0.0"
- vinyl-fs: "npm:^4.0.0"
- bin:
- i18next-scanner: bin/cli.js
- checksum: 10/51673170adad6a664bd9b9757dcc54a6fffe7f1e4338de3dcc5de1fbc8d8af87223ece393f9d7c2c579c3efe24525203a8d8f60c2107adfe3d1e3dced92bd21c
- languageName: node
- linkType: hard
-
-"i18next@npm:*":
- version: 25.7.4
- resolution: "i18next@npm:25.7.4"
- dependencies:
- "@babel/runtime": "npm:^7.28.4"
- peerDependencies:
- typescript: ^5
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/7b6ee8298741cf758332a6743f721039ac33d5324ea61c4e5868797e4070108921a64ffe245ca7a60bcfb3485bdb27e16bbbd02d1c7039415dca3a34fde7ccca
- languageName: node
- linkType: hard
-
-"i18next@npm:^23.7.11":
- version: 23.16.8
- resolution: "i18next@npm:23.16.8"
- dependencies:
- "@babel/runtime": "npm:^7.23.2"
- checksum: 10/d5c38011de4d3b4aa466fac6773520eb28007b9d6138e03432bfbfc0d041c04df45e15c67d96f22cd660088cc9b24d3eda32cddc9fb4c6508c5afada6c2e6290
- languageName: node
- linkType: hard
-
-"iconv-corefoundation@npm:^1.1.7":
- version: 1.1.7
- resolution: "iconv-corefoundation@npm:1.1.7"
- dependencies:
- cli-truncate: "npm:^2.1.0"
- node-addon-api: "npm:^1.6.3"
- conditions: os=darwin
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3":
- version: 0.6.3
- resolution: "iconv-lite@npm:0.6.3"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.4.5, iconv-lite@npm:~0.4.24":
- version: 0.4.24
- resolution: "iconv-lite@npm:0.4.24"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3"
- checksum: 10/6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.7.0":
- version: 0.7.2
- resolution: "iconv-lite@npm:0.7.2"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10/24c937b532f868e938386b62410b303b7c767ce3d08dc2829cbe59464d5a26ef86ae5ad1af6b34eec43ddfea39e7d101638644b0178d67262fa87015d59f983a
- languageName: node
- linkType: hard
-
-"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0":
- version: 5.1.0
- resolution: "icss-utils@npm:5.1.0"
- peerDependencies:
- postcss: ^8.1.0
- checksum: 10/5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68
- languageName: node
- linkType: hard
-
-"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1":
- version: 1.2.1
- resolution: "ieee754@npm:1.2.1"
- checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4
- languageName: node
- linkType: hard
-
-"ignore@npm:^5.2.0, ignore@npm:^5.2.4":
- version: 5.3.2
- resolution: "ignore@npm:5.3.2"
- checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98
- languageName: node
- linkType: hard
-
-"import-fresh@npm:^3.2.1":
- version: 3.3.1
- resolution: "import-fresh@npm:3.3.1"
- dependencies:
- parent-module: "npm:^1.0.0"
- resolve-from: "npm:^4.0.0"
- checksum: 10/a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87
- languageName: node
- linkType: hard
-
-"import-lazy@npm:^2.1.0":
- version: 2.1.0
- resolution: "import-lazy@npm:2.1.0"
- checksum: 10/05294f3b9dd4971d3a996f0d2f176410fb6745d491d6e73376429189f5c1c3d290548116b2960a7cf3e89c20cdf11431739d1d2d8c54b84061980795010e803a
- languageName: node
- linkType: hard
-
-"import-local@npm:^3.0.2":
- version: 3.2.0
- resolution: "import-local@npm:3.2.0"
- dependencies:
- pkg-dir: "npm:^4.2.0"
- resolve-cwd: "npm:^3.0.0"
- bin:
- import-local-fixture: fixtures/cli.js
- checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004
- languageName: node
- linkType: hard
-
-"imurmurhash@npm:^0.1.4":
- version: 0.1.4
- resolution: "imurmurhash@npm:0.1.4"
- checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8
- languageName: node
- linkType: hard
-
-"indent-string@npm:^4.0.0":
- version: 4.0.0
- resolution: "indent-string@npm:4.0.0"
- checksum: 10/cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9
- languageName: node
- linkType: hard
-
-"indexes-of@npm:^1.0.1":
- version: 1.0.1
- resolution: "indexes-of@npm:1.0.1"
- checksum: 10/4f9799b1739a62f3e02d09f6f4162cf9673025282af7fa36e790146e7f4e216dad3e776a25b08536c093209c9fcb5ea7bd04b082d42686a45f58ff401d6da32e
- languageName: node
- linkType: hard
-
-"inflight@npm:^1.0.4":
- version: 1.0.6
- resolution: "inflight@npm:1.0.6"
- dependencies:
- once: "npm:^1.3.0"
- wrappy: "npm:1"
- checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67
- languageName: node
- linkType: hard
-
-"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4":
- version: 2.0.4
- resolution: "inherits@npm:2.0.4"
- checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521
- languageName: node
- linkType: hard
-
-"inherits@npm:2.0.3":
- version: 2.0.3
- resolution: "inherits@npm:2.0.3"
- checksum: 10/8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69
- languageName: node
- linkType: hard
-
-"ini@npm:2.0.0":
- version: 2.0.0
- resolution: "ini@npm:2.0.0"
- checksum: 10/04e24ba05c4f6947e15560824e153b4610bceea2f5a3ab68651d221a4aab3c77d4e3e90a917ebc8bf5ad71a30a8575de56c39d6b4c4b1375a28016b9f3625f9d
- languageName: node
- linkType: hard
-
-"ini@npm:~1.3.0":
- version: 1.3.8
- resolution: "ini@npm:1.3.8"
- checksum: 10/314ae176e8d4deb3def56106da8002b462221c174ddb7ce0c49ee72c8cd1f9044f7b10cc555a7d8850982c3b9ca96fc212122749f5234bc2b6fb05fb942ed566
- languageName: node
- linkType: hard
-
-"inline-style-parser@npm:0.2.7":
- version: 0.2.7
- resolution: "inline-style-parser@npm:0.2.7"
- checksum: 10/cdfe719bd694b53bfbad20a645a9a4dda89c3ff56ee2b95945ad4eea86c541501f49f852d23bc2f73cd8127b6b62ea9027f697838e323a7f7d0d9b760e27a632
- languageName: node
- linkType: hard
-
-"inquirer@npm:^8.0.0":
- version: 8.2.7
- resolution: "inquirer@npm:8.2.7"
- dependencies:
- "@inquirer/external-editor": "npm:^1.0.0"
- ansi-escapes: "npm:^4.2.1"
- chalk: "npm:^4.1.1"
- cli-cursor: "npm:^3.1.0"
- cli-width: "npm:^3.0.0"
- figures: "npm:^3.0.0"
- lodash: "npm:^4.17.21"
- mute-stream: "npm:0.0.8"
- ora: "npm:^5.4.1"
- run-async: "npm:^2.4.0"
- rxjs: "npm:^7.5.5"
- string-width: "npm:^4.1.0"
- strip-ansi: "npm:^6.0.0"
- through: "npm:^2.3.6"
- wrap-ansi: "npm:^6.0.1"
- checksum: 10/526fb5ca55a29decda9b67c7b2bd437730152104c6e7c5f0d7ade90af6dc999371e1602ce86eb4a39ee3d91993501cddec32e4fe3f599723f2b653b02b685e3b
- languageName: node
- linkType: hard
-
-"internal-slot@npm:^1.1.0":
- version: 1.1.0
- resolution: "internal-slot@npm:1.1.0"
- dependencies:
- es-errors: "npm:^1.3.0"
- hasown: "npm:^2.0.2"
- side-channel: "npm:^1.1.0"
- checksum: 10/1d5219273a3dab61b165eddf358815eefc463207db33c20fcfca54717da02e3f492003757721f972fd0bf21e4b426cab389c5427b99ceea4b8b670dc88ee6d4a
- languageName: node
- linkType: hard
-
-"interpret@npm:^1.0.0":
- version: 1.4.0
- resolution: "interpret@npm:1.4.0"
- checksum: 10/5beec568d3f60543d0f61f2c5969d44dffcb1a372fe5abcdb8013968114d4e4aaac06bc971a4c9f5bd52d150881d8ebad72a8c60686b1361f5f0522f39c0e1a3
- languageName: node
- linkType: hard
-
-"interpret@npm:^3.1.1":
- version: 3.1.1
- resolution: "interpret@npm:3.1.1"
- checksum: 10/bc9e11126949c4e6ff49b0b819e923a9adc8e8bf3f9d4f2d782de6d5f592774f6fee4457c10bd08c6a2146b4baee460ccb242c99e5397defa9c846af0d00505a
- languageName: node
- linkType: hard
-
-"ip-address@npm:^10.0.1":
- version: 10.1.0
- resolution: "ip-address@npm:10.1.0"
- checksum: 10/a6979629d1ad9c1fb424bc25182203fad739b40225aebc55ec6243bbff5035faf7b9ed6efab3a097de6e713acbbfde944baacfa73e11852bb43989c45a68d79e
- languageName: node
- linkType: hard
-
-"ip-regex@npm:^4.0.0, ip-regex@npm:^4.3.0":
- version: 4.3.0
- resolution: "ip-regex@npm:4.3.0"
- checksum: 10/7ff904b891221b1847f3fdf3dbb3e6a8660dc39bc283f79eb7ed88f5338e1a3d1104b779bc83759159be266249c59c2160e779ee39446d79d4ed0890dfd06f08
- languageName: node
- linkType: hard
-
-"ipaddr.js@npm:1.9.1":
- version: 1.9.1
- resolution: "ipaddr.js@npm:1.9.1"
- checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca
- languageName: node
- linkType: hard
-
-"ipaddr.js@npm:^2.0.1":
- version: 2.3.0
- resolution: "ipaddr.js@npm:2.3.0"
- checksum: 10/be3d01bc2e20fc2dc5349b489ea40883954b816ce3e57aa48ad943d4e7c4ace501f28a7a15bde4b96b6b97d0fbb28d599ff2f87399f3cda7bd728889402eed3b
- languageName: node
- linkType: hard
-
-"is-alphabetical@npm:^2.0.0":
- version: 2.0.1
- resolution: "is-alphabetical@npm:2.0.1"
- checksum: 10/56207db8d9de0850f0cd30f4966bf731eb82cedfe496cbc2e97e7c3bacaf66fc54a972d2d08c0d93bb679cb84976a05d24c5ad63de56fabbfc60aadae312edaa
- languageName: node
- linkType: hard
-
-"is-alphanumerical@npm:^2.0.0":
- version: 2.0.1
- resolution: "is-alphanumerical@npm:2.0.1"
- dependencies:
- is-alphabetical: "npm:^2.0.0"
- is-decimal: "npm:^2.0.0"
- checksum: 10/87acc068008d4c9c4e9f5bd5e251041d42e7a50995c77b1499cf6ed248f971aadeddb11f239cabf09f7975ee58cac7a48ffc170b7890076d8d227b24a68663c9
- languageName: node
- linkType: hard
-
-"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1":
- version: 1.2.0
- resolution: "is-arguments@npm:1.2.0"
- dependencies:
- call-bound: "npm:^1.0.2"
- has-tostringtag: "npm:^1.0.2"
- checksum: 10/471a8ef631b8ee8829c43a8ab05c081700c0e25180c73d19f3bf819c1a8448c426a9e8e601f278973eca68966384b16ceb78b8c63af795b099cd199ea5afc457
- languageName: node
- linkType: hard
-
-"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5":
- version: 3.0.5
- resolution: "is-array-buffer@npm:3.0.5"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.3"
- get-intrinsic: "npm:^1.2.6"
- checksum: 10/ef1095c55b963cd0dcf6f88a113e44a0aeca91e30d767c475e7d746d28d1195b10c5076b94491a7a0cd85020ca6a4923070021d74651d093dc909e9932cf689b
- languageName: node
- linkType: hard
-
-"is-arrayish@npm:^0.2.1":
- version: 0.2.1
- resolution: "is-arrayish@npm:0.2.1"
- checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e
- languageName: node
- linkType: hard
-
-"is-async-function@npm:^2.0.0":
- version: 2.1.1
- resolution: "is-async-function@npm:2.1.1"
- dependencies:
- async-function: "npm:^1.0.0"
- call-bound: "npm:^1.0.3"
- get-proto: "npm:^1.0.1"
- has-tostringtag: "npm:^1.0.2"
- safe-regex-test: "npm:^1.1.0"
- checksum: 10/7c2ac7efdf671e03265e74a043bcb1c0a32e226bc2a42dfc5ec8644667df668bbe14b91c08e6c1414f392f8cf86cd1d489b3af97756e2c7a49dd1ba63fd40ca6
- languageName: node
- linkType: hard
-
-"is-bigint@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-bigint@npm:1.1.0"
- dependencies:
- has-bigints: "npm:^1.0.2"
- checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd
- languageName: node
- linkType: hard
-
-"is-binary-path@npm:~2.1.0":
- version: 2.1.0
- resolution: "is-binary-path@npm:2.1.0"
- dependencies:
- binary-extensions: "npm:^2.0.0"
- checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e
- languageName: node
- linkType: hard
-
-"is-boolean-object@npm:^1.2.1":
- version: 1.2.2
- resolution: "is-boolean-object@npm:1.2.2"
- dependencies:
- call-bound: "npm:^1.0.3"
- has-tostringtag: "npm:^1.0.2"
- checksum: 10/051fa95fdb99d7fbf653165a7e6b2cba5d2eb62f7ffa81e793a790f3fb5366c91c1b7b6af6820aa2937dd86c73aa3ca9d9ca98f500988457b1c59692c52ba911
- languageName: node
- linkType: hard
-
-"is-builtin-module@npm:^3.2.1":
- version: 3.2.1
- resolution: "is-builtin-module@npm:3.2.1"
- dependencies:
- builtin-modules: "npm:^3.3.0"
- checksum: 10/e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88
- languageName: node
- linkType: hard
-
-"is-bun-module@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-bun-module@npm:2.0.0"
- dependencies:
- semver: "npm:^7.7.1"
- checksum: 10/cded5a1a58368b847872d08617975d620ad94426d76a932f3e08d55b4574d199e0a62a4fb024fa2dc444200b71719eb0bffc5d3d1e1cc82e29b293bb8d66a990
- languageName: node
- linkType: hard
-
-"is-callable@npm:^1.2.7":
- version: 1.2.7
- resolution: "is-callable@npm:1.2.7"
- checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9
- languageName: node
- linkType: hard
-
-"is-ci@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-ci@npm:2.0.0"
- dependencies:
- ci-info: "npm:^2.0.0"
- bin:
- is-ci: bin.js
- checksum: 10/77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144
- languageName: node
- linkType: hard
-
-"is-ci@npm:^3.0.0":
- version: 3.0.1
- resolution: "is-ci@npm:3.0.1"
- dependencies:
- ci-info: "npm:^3.2.0"
- bin:
- is-ci: bin.js
- checksum: 10/192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e
- languageName: node
- linkType: hard
-
-"is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.16.1":
- version: 2.16.1
- resolution: "is-core-module@npm:2.16.1"
- dependencies:
- hasown: "npm:^2.0.2"
- checksum: 10/452b2c2fb7f889cbbf7e54609ef92cf6c24637c568acc7e63d166812a0fb365ae8a504c333a29add8bdb1686704068caa7f4e4b639b650dde4f00a038b8941fb
- languageName: node
- linkType: hard
-
-"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2":
- version: 1.0.2
- resolution: "is-data-view@npm:1.0.2"
- dependencies:
- call-bound: "npm:^1.0.2"
- get-intrinsic: "npm:^1.2.6"
- is-typed-array: "npm:^1.1.13"
- checksum: 10/357e9a48fa38f369fd6c4c3b632a3ab2b8adca14997db2e4b3fe94c4cd0a709af48e0fb61b02c64a90c0dd542fd489d49c2d03157b05ae6c07f5e4dec9e730a8
- languageName: node
- linkType: hard
-
-"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-date-object@npm:1.1.0"
- dependencies:
- call-bound: "npm:^1.0.2"
- has-tostringtag: "npm:^1.0.2"
- checksum: 10/3a811b2c3176fb31abee1d23d3dc78b6c65fd9c07d591fcb67553cab9e7f272728c3dd077d2d738b53f9a2103255b0a6e8dfc9568a7805c56a78b2563e8d1dec
- languageName: node
- linkType: hard
-
-"is-decimal@npm:^2.0.0":
- version: 2.0.1
- resolution: "is-decimal@npm:2.0.1"
- checksum: 10/97132de7acdce77caa7b797632970a2ecd649a88e715db0e4dbc00ab0708b5e7574ba5903962c860cd4894a14fd12b100c0c4ac8aed445cf6f55c6cf747a4158
- languageName: node
- linkType: hard
-
-"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1":
- version: 2.2.1
- resolution: "is-docker@npm:2.2.1"
- bin:
- is-docker: cli.js
- checksum: 10/3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56
- languageName: node
- linkType: hard
-
-"is-extglob@npm:^2.1.1":
- version: 2.1.1
- resolution: "is-extglob@npm:2.1.1"
- checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85
- languageName: node
- linkType: hard
-
-"is-finalizationregistry@npm:^1.1.0":
- version: 1.1.1
- resolution: "is-finalizationregistry@npm:1.1.1"
- dependencies:
- call-bound: "npm:^1.0.3"
- checksum: 10/0bfb145e9a1ba852ddde423b0926d2169ae5fe9e37882cde9e8f69031281a986308df4d982283e152396e88b86562ed2256cbaa5e6390fb840a4c25ab54b8a80
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^3.0.0":
- version: 3.0.0
- resolution: "is-fullwidth-code-point@npm:3.0.0"
- checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
- languageName: node
- linkType: hard
-
-"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7":
- version: 1.1.2
- resolution: "is-generator-function@npm:1.1.2"
- dependencies:
- call-bound: "npm:^1.0.4"
- generator-function: "npm:^2.0.0"
- get-proto: "npm:^1.0.1"
- has-tostringtag: "npm:^1.0.2"
- safe-regex-test: "npm:^1.1.0"
- checksum: 10/cc50fa01034356bdfda26983c5457103240f201f4663c0de1257802714e40d36bcff7aee21091d37bbba4be962fa5c6475ce7ddbc0abfa86d6bef466e41e50a5
- languageName: node
- linkType: hard
-
-"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
- version: 4.0.3
- resolution: "is-glob@npm:4.0.3"
- dependencies:
- is-extglob: "npm:^2.1.1"
- checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11
- languageName: node
- linkType: hard
-
-"is-hexadecimal@npm:^2.0.0":
- version: 2.0.1
- resolution: "is-hexadecimal@npm:2.0.1"
- checksum: 10/66a2ea85994c622858f063f23eda506db29d92b52580709eb6f4c19550552d4dcf3fb81952e52f7cf972097237959e00adc7bb8c9400cd12886e15bf06145321
- languageName: node
- linkType: hard
-
-"is-installed-globally@npm:^0.4.0":
- version: 0.4.0
- resolution: "is-installed-globally@npm:0.4.0"
- dependencies:
- global-dirs: "npm:^3.0.0"
- is-path-inside: "npm:^3.0.2"
- checksum: 10/5294d21c82cb9beedd693ce1dfb12117c4db36d6e35edc9dc6bf06cb300d23c96520d1bfb063386b054268ae3d7255c3f09393b52218cc26ace99b217bf37c93
- languageName: node
- linkType: hard
-
-"is-interactive@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-interactive@npm:1.0.0"
- checksum: 10/824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9
- languageName: node
- linkType: hard
-
-"is-ip@npm:^3.1.0":
- version: 3.1.0
- resolution: "is-ip@npm:3.1.0"
- dependencies:
- ip-regex: "npm:^4.0.0"
- checksum: 10/da2c2b282407194adf2320bade0bad94be9c9d0bdab85ff45b1b62d8185f31c65dff3884519d57bf270277e5ea2046c7916a6e5a6db22fe4b7ddcdd3760f23eb
- languageName: node
- linkType: hard
-
-"is-ipfs@npm:^0.6.0":
- version: 0.6.3
- resolution: "is-ipfs@npm:0.6.3"
- dependencies:
- bs58: "npm:^4.0.1"
- cids: "npm:~0.7.0"
- mafmt: "npm:^7.0.0"
- multiaddr: "npm:^7.2.1"
- multibase: "npm:~0.6.0"
- multihashes: "npm:~0.4.13"
- checksum: 10/764f0c5837f266ee3940e3ebf098fa5797e2eef0224b226dd3bba094d099130897f9de8aadbb15e98f1df5810dfe2e511895dd2be2746f598dc9a07c5664694d
- languageName: node
- linkType: hard
-
-"is-ipfs@npm:^8.0.1":
- version: 8.0.4
- resolution: "is-ipfs@npm:8.0.4"
- dependencies:
- "@multiformats/mafmt": "npm:^12.1.6"
- "@multiformats/multiaddr": "npm:^12.1.14"
- iso-url: "npm:^1.1.3"
- multiformats: "npm:^13.0.1"
- uint8arrays: "npm:^5.0.1"
- checksum: 10/6c4033da8c02c024003d7bde79cc99aa6bbac11c3e2f474e1cfdd170fcfd85df98fb90e10eb50d71c4b477c3b79c32fdefd85a2f9980e123dc5e1fa25193e7b3
- languageName: node
- linkType: hard
-
-"is-map@npm:^2.0.2, is-map@npm:^2.0.3":
- version: 2.0.3
- resolution: "is-map@npm:2.0.3"
- checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb
- languageName: node
- linkType: hard
-
-"is-module@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-module@npm:1.0.0"
- checksum: 10/8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f
- languageName: node
- linkType: hard
-
-"is-nan@npm:^1.3.2":
- version: 1.3.2
- resolution: "is-nan@npm:1.3.2"
- dependencies:
- call-bind: "npm:^1.0.0"
- define-properties: "npm:^1.1.3"
- checksum: 10/1f784d3472c09bc2e47acba7ffd4f6c93b0394479aa613311dc1d70f1bfa72eb0846c81350967722c959ba65811bae222204d6c65856fdce68f31986140c7b0e
- languageName: node
- linkType: hard
-
-"is-negated-glob@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-negated-glob@npm:1.0.0"
- checksum: 10/752cb846d71403d0a26389d1f56f8e2ffdb110e994dffe41ebacd1ff4953ee1dc8e71438a00a4e398355113a755f05fc91c73da15541a11d2f080f6b39030d91
- languageName: node
- linkType: hard
-
-"is-negative-zero@npm:^2.0.3":
- version: 2.0.3
- resolution: "is-negative-zero@npm:2.0.3"
- checksum: 10/8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5
- languageName: node
- linkType: hard
-
-"is-npm@npm:^5.0.0":
- version: 5.0.0
- resolution: "is-npm@npm:5.0.0"
- checksum: 10/9baff02b0c69a3d3c79b162cb2f9e67fb40ef6d172c16601b2e2471c21e9a4fa1fc9885a308d7bc6f3a3cd2a324c27fa0bf284c133c3349bb22571ab70d041cc
- languageName: node
- linkType: hard
-
-"is-number-object@npm:^1.1.1":
- version: 1.1.1
- resolution: "is-number-object@npm:1.1.1"
- dependencies:
- call-bound: "npm:^1.0.3"
- has-tostringtag: "npm:^1.0.2"
- checksum: 10/a5922fb8779ab1ea3b8a9c144522b3d0bea5d9f8f23f7a72470e61e1e4df47714e28e0154ac011998b709cce260c3c9447ad3cd24a96c2f2a0abfdb2cbdc76c8
- languageName: node
- linkType: hard
-
-"is-number@npm:^7.0.0":
- version: 7.0.0
- resolution: "is-number@npm:7.0.0"
- checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86
- languageName: node
- linkType: hard
-
-"is-obj@npm:^1.0.1":
- version: 1.0.1
- resolution: "is-obj@npm:1.0.1"
- checksum: 10/3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c
- languageName: node
- linkType: hard
-
-"is-obj@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-obj@npm:2.0.0"
- checksum: 10/c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08
- languageName: node
- linkType: hard
-
-"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3":
- version: 3.0.3
- resolution: "is-path-inside@npm:3.0.3"
- checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9
- languageName: node
- linkType: hard
-
-"is-plain-obj@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-plain-obj@npm:1.1.0"
- checksum: 10/0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931
- languageName: node
- linkType: hard
-
-"is-plain-obj@npm:^2.0.0":
- version: 2.1.0
- resolution: "is-plain-obj@npm:2.1.0"
- checksum: 10/cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa
- languageName: node
- linkType: hard
-
-"is-plain-obj@npm:^3.0.0":
- version: 3.0.0
- resolution: "is-plain-obj@npm:3.0.0"
- checksum: 10/a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c
- languageName: node
- linkType: hard
-
-"is-plain-obj@npm:^4.0.0":
- version: 4.1.0
- resolution: "is-plain-obj@npm:4.1.0"
- checksum: 10/6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce
- languageName: node
- linkType: hard
-
-"is-plain-object@npm:^2.0.4":
- version: 2.0.4
- resolution: "is-plain-object@npm:2.0.4"
- dependencies:
- isobject: "npm:^3.0.1"
- checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca
- languageName: node
- linkType: hard
-
-"is-plain-object@npm:^5.0.0":
- version: 5.0.0
- resolution: "is-plain-object@npm:5.0.0"
- checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c
- languageName: node
- linkType: hard
-
-"is-potential-custom-element-name@npm:^1.0.1":
- version: 1.0.1
- resolution: "is-potential-custom-element-name@npm:1.0.1"
- checksum: 10/ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab
- languageName: node
- linkType: hard
-
-"is-reference@npm:1.2.1":
- version: 1.2.1
- resolution: "is-reference@npm:1.2.1"
- dependencies:
- "@types/estree": "npm:*"
- checksum: 10/e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc
- languageName: node
- linkType: hard
-
-"is-regex@npm:^1.1.4, is-regex@npm:^1.2.1":
- version: 1.2.1
- resolution: "is-regex@npm:1.2.1"
- dependencies:
- call-bound: "npm:^1.0.2"
- gopd: "npm:^1.2.0"
- has-tostringtag: "npm:^1.0.2"
- hasown: "npm:^2.0.2"
- checksum: 10/c42b7efc5868a5c9a4d8e6d3e9816e8815c611b09535c00fead18a1138455c5cb5e1887f0023a467ad3f9c419d62ba4dc3d9ba8bafe55053914d6d6454a945d2
- languageName: node
- linkType: hard
-
-"is-regexp@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-regexp@npm:1.0.0"
- checksum: 10/be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef
- languageName: node
- linkType: hard
-
-"is-relative-path@npm:^1.0.2":
- version: 1.0.2
- resolution: "is-relative-path@npm:1.0.2"
- checksum: 10/6c2ccffd3c0a3e3990535d0571370883d558b825b51940085f3446ec338857f4552f44521dfec3e83b7e067de08c0b0369de290208a91200bcae2c569533e340
- languageName: node
- linkType: hard
-
-"is-set@npm:^2.0.2, is-set@npm:^2.0.3":
- version: 2.0.3
- resolution: "is-set@npm:2.0.3"
- checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669
- languageName: node
- linkType: hard
-
-"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.4":
- version: 1.0.4
- resolution: "is-shared-array-buffer@npm:1.0.4"
- dependencies:
- call-bound: "npm:^1.0.3"
- checksum: 10/0380d7c60cc692856871526ffcd38a8133818a2ee42d47bb8008248a0cd2121d8c8b5f66b6da3cac24bc5784553cacb6faaf678f66bc88c6615b42af2825230e
- languageName: node
- linkType: hard
-
-"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1":
- version: 2.0.1
- resolution: "is-stream@npm:2.0.1"
- checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66
- languageName: node
- linkType: hard
-
-"is-string@npm:^1.0.7, is-string@npm:^1.1.1":
- version: 1.1.1
- resolution: "is-string@npm:1.1.1"
- dependencies:
- call-bound: "npm:^1.0.3"
- has-tostringtag: "npm:^1.0.2"
- checksum: 10/5277cb9e225a7cc8a368a72623b44a99f2cfa139659c6b203553540681ad4276bfc078420767aad0e73eef5f0bd07d4abf39a35d37ec216917879d11cebc1f8b
- languageName: node
- linkType: hard
-
-"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1":
- version: 1.1.1
- resolution: "is-symbol@npm:1.1.1"
- dependencies:
- call-bound: "npm:^1.0.2"
- has-symbols: "npm:^1.1.0"
- safe-regex-test: "npm:^1.1.0"
- checksum: 10/db495c0d8cd0a7a66b4f4ef7fccee3ab5bd954cb63396e8ac4d32efe0e9b12fdfceb851d6c501216a71f4f21e5ff20fc2ee845a3d52d455e021c466ac5eb2db2
- languageName: node
- linkType: hard
-
-"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3":
- version: 1.1.15
- resolution: "is-typed-array@npm:1.1.15"
- dependencies:
- which-typed-array: "npm:^1.1.16"
- checksum: 10/e8cf60b9ea85667097a6ad68c209c9722cfe8c8edf04d6218366469e51944c5cc25bae45ffb845c23f811d262e4314d3b0168748eb16711aa34d12724cdf0735
- languageName: node
- linkType: hard
-
-"is-typedarray@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-typedarray@npm:1.0.0"
- checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c
- languageName: node
- linkType: hard
-
-"is-unicode-supported@npm:^0.1.0":
- version: 0.1.0
- resolution: "is-unicode-supported@npm:0.1.0"
- checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52
- languageName: node
- linkType: hard
-
-"is-url-superb@npm:^4.0.0":
- version: 4.0.0
- resolution: "is-url-superb@npm:4.0.0"
- checksum: 10/fd55e91c96349acb0d688f95fcb1ac67450e5db934976e3a8ff13ef446841e779a6f4d18b15f02331f05a3429c8fdaba2382ac1ab444059e86e9ffcde1ec8db0
- languageName: node
- linkType: hard
-
-"is-url@npm:^1.1.0, is-url@npm:^1.2.4":
- version: 1.2.4
- resolution: "is-url@npm:1.2.4"
- checksum: 10/100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432
- languageName: node
- linkType: hard
-
-"is-valid-glob@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-valid-glob@npm:1.0.0"
- checksum: 10/0155951e89291d405cbb2ff4e25a38ee7a88bc70b05f246c25d31a1d09f13d4207377e5860f67443bbda8e3e353da37047b60e586bd9c97a39c9301c30b67acb
- languageName: node
- linkType: hard
-
-"is-weakmap@npm:^2.0.2":
- version: 2.0.2
- resolution: "is-weakmap@npm:2.0.2"
- checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11
- languageName: node
- linkType: hard
-
-"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1":
- version: 1.1.1
- resolution: "is-weakref@npm:1.1.1"
- dependencies:
- call-bound: "npm:^1.0.3"
- checksum: 10/543506fd8259038b371bb083aac25b16cb4fd8b12fc58053aa3d45ac28dfd001cd5c6dffbba7aeea4213c74732d46b6cb2cfb5b412eed11f2db524f3f97d09a0
- languageName: node
- linkType: hard
-
-"is-weakset@npm:^2.0.3":
- version: 2.0.4
- resolution: "is-weakset@npm:2.0.4"
- dependencies:
- call-bound: "npm:^1.0.3"
- get-intrinsic: "npm:^1.2.6"
- checksum: 10/1d5e1d0179beeed3661125a6faa2e59bfb48afda06fc70db807f178aa0ebebc3758fb6358d76b3d528090d5ef85148c345dcfbf90839592fe293e3e5e82f2134
- languageName: node
- linkType: hard
-
-"is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0":
- version: 2.2.0
- resolution: "is-wsl@npm:2.2.0"
- dependencies:
- is-docker: "npm:^2.0.0"
- checksum: 10/20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8
- languageName: node
- linkType: hard
-
-"is-yarn-global@npm:^0.3.0":
- version: 0.3.0
- resolution: "is-yarn-global@npm:0.3.0"
- checksum: 10/bca013d65fee2862024c9fbb3ba13720ffca2fe750095174c1c80922fdda16402b5c233f5ac9e265bc12ecb5446e7b7f519a32d9541788f01d4d44e24d2bf481
- languageName: node
- linkType: hard
-
-"isarray@npm:^2.0.5":
- version: 2.0.5
- resolution: "isarray@npm:2.0.5"
- checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414
- languageName: node
- linkType: hard
-
-"isarray@npm:~1.0.0":
- version: 1.0.0
- resolution: "isarray@npm:1.0.0"
- checksum: 10/f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab
- languageName: node
- linkType: hard
-
-"isbinaryfile@npm:^4.0.8":
- version: 4.0.10
- resolution: "isbinaryfile@npm:4.0.10"
- checksum: 10/7f9dbf3e992a020cd3e6845ba49b47de93cda19edadf338bbf82f1453d7a14a73c390ea7f18a1940f09324089e470cce9ea001bd544aea52df641a658ed51c54
- languageName: node
- linkType: hard
-
-"isbinaryfile@npm:^5.0.0":
- version: 5.0.7
- resolution: "isbinaryfile@npm:5.0.7"
- checksum: 10/af240b2a80db5cffbb3ddcb4d89403802d6b67d21b63fbcc0be5cefcefc013f499477c5837a5b2f029ba3d163543eab36eaee7cd701f2c44ee5ac890f0fadac5
- languageName: node
- linkType: hard
-
-"isexe@npm:^2.0.0":
- version: 2.0.0
- resolution: "isexe@npm:2.0.0"
- checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92
- languageName: node
- linkType: hard
-
-"isexe@npm:^3.1.1":
- version: 3.1.1
- resolution: "isexe@npm:3.1.1"
- checksum: 10/7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e
- languageName: node
- linkType: hard
-
-"iso-url@npm:^1.1.3":
- version: 1.2.1
- resolution: "iso-url@npm:1.2.1"
- checksum: 10/87455fd79166c7b269df7711ea0bee896338330fb46164dd3e6d73ba09c294326ae356b60032dc3217c1455b66f57216a44b95ded8fb2c1c2f9e490396060ef9
- languageName: node
- linkType: hard
-
-"isobject@npm:^3.0.1":
- version: 3.0.1
- resolution: "isobject@npm:3.0.1"
- checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703
- languageName: node
- linkType: hard
-
-"isomorphic-ws@npm:^5.0.0":
- version: 5.0.0
- resolution: "isomorphic-ws@npm:5.0.0"
- peerDependencies:
- ws: "*"
- checksum: 10/e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398
- languageName: node
- linkType: hard
-
-"iterator.prototype@npm:^1.1.5":
- version: 1.1.5
- resolution: "iterator.prototype@npm:1.1.5"
- dependencies:
- define-data-property: "npm:^1.1.4"
- es-object-atoms: "npm:^1.0.0"
- get-intrinsic: "npm:^1.2.6"
- get-proto: "npm:^1.0.0"
- has-symbols: "npm:^1.1.0"
- set-function-name: "npm:^2.0.2"
- checksum: 10/352bcf333f42189e65cc8cb2dcb94a5c47cf0a9110ce12aba788d405a980b5f5f3a06c79bf915377e1d480647169babd842ded0d898bed181bf6686e8e6823f6
- languageName: node
- linkType: hard
-
-"jackspeak@npm:^3.1.2":
- version: 3.4.3
- resolution: "jackspeak@npm:3.4.3"
- dependencies:
- "@isaacs/cliui": "npm:^8.0.2"
- "@pkgjs/parseargs": "npm:^0.11.0"
- dependenciesMeta:
- "@pkgjs/parseargs":
- optional: true
- checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3
- languageName: node
- linkType: hard
-
-"jake@npm:^10.8.5":
- version: 10.9.4
- resolution: "jake@npm:10.9.4"
- dependencies:
- async: "npm:^3.2.6"
- filelist: "npm:^1.0.4"
- picocolors: "npm:^1.1.1"
- bin:
- jake: bin/cli.js
- checksum: 10/97e48f73f5e315a3b6e1a48b4bcc0cdf2c2cf82100ec9e76a032fd5d614dcd32c4315572cfcb66e9f9bdecca3900aaa61fe72b781a74b06aefd3ec4c1c917f0b
- languageName: node
- linkType: hard
-
-"jdenticon@npm:3.2.0":
- version: 3.2.0
- resolution: "jdenticon@npm:3.2.0"
- dependencies:
- canvas-renderer: "npm:~2.2.0"
- bin:
- jdenticon: bin/jdenticon.js
- checksum: 10/a6d7f9ff0c54d8b2aa0417a132f38ab7ef75505a4ad249aface1bca6fc111b95ed92f491515419d7a838191e5f7e49c93813570ba58a872d4bb7434de1c14118
- languageName: node
- linkType: hard
-
-"jest-diff@npm:30.2.0":
- version: 30.2.0
- resolution: "jest-diff@npm:30.2.0"
- dependencies:
- "@jest/diff-sequences": "npm:30.0.1"
- "@jest/get-type": "npm:30.1.0"
- chalk: "npm:^4.1.2"
- pretty-format: "npm:30.2.0"
- checksum: 10/1fb9e4fb7dff81814b4f69eaa7db28e184d62306a3a8ea2447d02ca53d2cfa771e83ede513f67ec5239dffacfaac32ff2b49866d211e4c7516f51c1fc06ede42
- languageName: node
- linkType: hard
-
-"jest-matcher-utils@npm:30.2.0":
- version: 30.2.0
- resolution: "jest-matcher-utils@npm:30.2.0"
- dependencies:
- "@jest/get-type": "npm:30.1.0"
- chalk: "npm:^4.1.2"
- jest-diff: "npm:30.2.0"
- pretty-format: "npm:30.2.0"
- checksum: 10/f3f1ecf68ca63c9d1d80a175637a8fc655edfd1ee83220f6e3f6bd464ecbe2f93148fdd440a5a5e5a2b0b2cc8ee84ddc3dcef58a6dbc66821c792f48d260c6d4
- languageName: node
- linkType: hard
-
-"jest-message-util@npm:30.2.0":
- version: 30.2.0
- resolution: "jest-message-util@npm:30.2.0"
- dependencies:
- "@babel/code-frame": "npm:^7.27.1"
- "@jest/types": "npm:30.2.0"
- "@types/stack-utils": "npm:^2.0.3"
- chalk: "npm:^4.1.2"
- graceful-fs: "npm:^4.2.11"
- micromatch: "npm:^4.0.8"
- pretty-format: "npm:30.2.0"
- slash: "npm:^3.0.0"
- stack-utils: "npm:^2.0.6"
- checksum: 10/e29ec76e8c8e4da5f5b25198be247535626ccf3a940e93fdd51fc6a6bcf70feaa2921baae3806182a090431d90b08c939eb13fb64249b171d2e9ae3a452a8fd2
- languageName: node
- linkType: hard
-
-"jest-mock@npm:30.2.0":
- version: 30.2.0
- resolution: "jest-mock@npm:30.2.0"
- dependencies:
- "@jest/types": "npm:30.2.0"
- "@types/node": "npm:*"
- jest-util: "npm:30.2.0"
- checksum: 10/cde9b56805f90bf811a9231873ee88a0fb83bf4bf50972ae76960725da65220fcb119688f2e90e1ef33fbfd662194858d7f43809d881f1c41bb55d94e62adeab
- languageName: node
- linkType: hard
-
-"jest-regex-util@npm:30.0.1":
- version: 30.0.1
- resolution: "jest-regex-util@npm:30.0.1"
- checksum: 10/fa8dac80c3e94db20d5e1e51d1bdf101cf5ede8f4e0b8f395ba8b8ea81e71804ffd747452a6bb6413032865de98ac656ef8ae43eddd18d980b6442a2764ed562
- languageName: node
- linkType: hard
-
-"jest-util@npm:30.2.0":
- version: 30.2.0
- resolution: "jest-util@npm:30.2.0"
- dependencies:
- "@jest/types": "npm:30.2.0"
- "@types/node": "npm:*"
- chalk: "npm:^4.1.2"
- ci-info: "npm:^4.2.0"
- graceful-fs: "npm:^4.2.11"
- picomatch: "npm:^4.0.2"
- checksum: 10/cf2f2fb83417ea69f9992121561c95cf4e9aad7946819b771b8b52addf78811101b33b51d0a39fa0c305f2751dab262feed7699de052659ff03d51827c8862f5
- languageName: node
- linkType: hard
-
-"jest-worker@npm:^27.4.5":
- version: 27.5.1
- resolution: "jest-worker@npm:27.5.1"
- dependencies:
- "@types/node": "npm:*"
- merge-stream: "npm:^2.0.0"
- supports-color: "npm:^8.0.0"
- checksum: 10/06c6e2a84591d9ede704d5022fc13791e8876e83397c89d481b0063332abbb64c0f01ef4ca7de520b35c7a1058556078d6bdc3631376f4e9ffb42316c1a8488e
- languageName: node
- linkType: hard
-
-"joycon@npm:^3.1.1":
- version: 3.1.1
- resolution: "joycon@npm:3.1.1"
- checksum: 10/4b36e3479144ec196425f46b3618f8a96ce7e1b658f091a309cd4906215f5b7a402d7df331a3e0a09681381a658d0c5f039cb3cf6907e0a1e17ed847f5d37775
- languageName: node
- linkType: hard
-
-"jquery@npm:x.*":
- version: 3.7.1
- resolution: "jquery@npm:3.7.1"
- checksum: 10/17be9929f5fa37697d9848284f0d108c543318ef79ec794e130cd0c49f6c050d60c803a69e8cfa16fa19f5ff7cdb814a6905cceab0831186560c65ed113cd579
- languageName: node
- linkType: hard
-
-"js-cleanup@npm:^1.2.0":
- version: 1.2.0
- resolution: "js-cleanup@npm:1.2.0"
- dependencies:
- magic-string: "npm:^0.25.7"
- perf-regexes: "npm:^1.0.1"
- skip-regex: "npm:^1.0.2"
- checksum: 10/c0c42ecda3342e64113a4fe4a072024038f47022f525a00badb3c11ffb0c0e8ada0fbf22074086ad2b3dc3f602f99a13fd6bd53fa2343b259f05e942b3cf1aa7
- languageName: node
- linkType: hard
-
-"js-sha3@npm:^0.8.0":
- version: 0.8.0
- resolution: "js-sha3@npm:0.8.0"
- checksum: 10/a49ac6d3a6bfd7091472a28ab82a94c7fb8544cc584ee1906486536ba1cb4073a166f8c7bb2b0565eade23c5b3a7b8f7816231e0309ab5c549b737632377a20c
- languageName: node
- linkType: hard
-
-"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
- version: 4.0.0
- resolution: "js-tokens@npm:4.0.0"
- checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2
- languageName: node
- linkType: hard
-
-"js-yaml@npm:^3.14.0":
- version: 3.14.2
- resolution: "js-yaml@npm:3.14.2"
- dependencies:
- argparse: "npm:^1.0.7"
- esprima: "npm:^4.0.0"
- bin:
- js-yaml: bin/js-yaml.js
- checksum: 10/172e0b6007b0bf0fc8d2469c94424f7dd765c64a047d2b790831fecef2204a4054eabf4d911eb73ab8c9a3256ab8ba1ee8d655b789bf24bf059c772acc2075a1
- languageName: node
- linkType: hard
-
-"js-yaml@npm:^4.1.0":
- version: 4.1.1
- resolution: "js-yaml@npm:4.1.1"
- dependencies:
- argparse: "npm:^2.0.1"
- bin:
- js-yaml: bin/js-yaml.js
- checksum: 10/a52d0519f0f4ef5b4adc1cde466cb54c50d56e2b4a983b9d5c9c0f2f99462047007a6274d7e95617a21d3c91fde3ee6115536ed70991cd645ba8521058b78f77
- languageName: node
- linkType: hard
-
-"jsdom@npm:^24.0.0":
- version: 24.1.3
- resolution: "jsdom@npm:24.1.3"
- dependencies:
- cssstyle: "npm:^4.0.1"
- data-urls: "npm:^5.0.0"
- decimal.js: "npm:^10.4.3"
- form-data: "npm:^4.0.0"
- html-encoding-sniffer: "npm:^4.0.0"
- http-proxy-agent: "npm:^7.0.2"
- https-proxy-agent: "npm:^7.0.5"
- is-potential-custom-element-name: "npm:^1.0.1"
- nwsapi: "npm:^2.2.12"
- parse5: "npm:^7.1.2"
- rrweb-cssom: "npm:^0.7.1"
- saxes: "npm:^6.0.0"
- symbol-tree: "npm:^3.2.4"
- tough-cookie: "npm:^4.1.4"
- w3c-xmlserializer: "npm:^5.0.0"
- webidl-conversions: "npm:^7.0.0"
- whatwg-encoding: "npm:^3.1.1"
- whatwg-mimetype: "npm:^4.0.0"
- whatwg-url: "npm:^14.0.0"
- ws: "npm:^8.18.0"
- xml-name-validator: "npm:^5.0.0"
- peerDependencies:
- canvas: ^2.11.2
- peerDependenciesMeta:
- canvas:
- optional: true
- checksum: 10/81e01d092a3620a9749e46572c26b21eb1fefc4e593f99e4acf3d4a803dfb091917e7b7096b3e62fab87e1d525a4030b803be1f5dbb5e7e61435d726f82f7457
- languageName: node
- linkType: hard
-
-"json-buffer@npm:3.0.0":
- version: 3.0.0
- resolution: "json-buffer@npm:3.0.0"
- checksum: 10/6e364585600598c42f1cc85d1305569aeb1a6a13e7c67960f17b403f087e2700104ec8e49fc681ab6d6278ee4d132ac033f2625c22a9777ed9b83b403b40f23e
- languageName: node
- linkType: hard
-
-"json-buffer@npm:3.0.1":
- version: 3.0.1
- resolution: "json-buffer@npm:3.0.1"
- checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c
- languageName: node
- linkType: hard
-
-"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1":
- version: 2.3.1
- resolution: "json-parse-even-better-errors@npm:2.3.1"
- checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf
- languageName: node
- linkType: hard
-
-"json-schema-traverse@npm:^0.4.1":
- version: 0.4.1
- resolution: "json-schema-traverse@npm:0.4.1"
- checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b
- languageName: node
- linkType: hard
-
-"json-schema-traverse@npm:^1.0.0":
- version: 1.0.0
- resolution: "json-schema-traverse@npm:1.0.0"
- checksum: 10/02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad
- languageName: node
- linkType: hard
-
-"json-stable-stringify-without-jsonify@npm:^1.0.1":
- version: 1.0.1
- resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
- checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d
- languageName: node
- linkType: hard
-
-"json-stringify-safe@npm:^5.0.1":
- version: 5.0.1
- resolution: "json-stringify-safe@npm:5.0.1"
- checksum: 10/59169a081e4eeb6f9559ae1f938f656191c000e0512aa6df9f3c8b2437a4ab1823819c6b9fd1818a4e39593ccfd72e9a051fdd3e2d1e340ed913679e888ded8c
- languageName: node
- linkType: hard
-
-"json5@npm:^1.0.2":
- version: 1.0.2
- resolution: "json5@npm:1.0.2"
- dependencies:
- minimist: "npm:^1.2.0"
- bin:
- json5: lib/cli.js
- checksum: 10/a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6
- languageName: node
- linkType: hard
-
-"json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3":
- version: 2.2.3
- resolution: "json5@npm:2.2.3"
- bin:
- json5: lib/cli.js
- checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da
- languageName: node
- linkType: hard
-
-"jsonfile@npm:^4.0.0":
- version: 4.0.0
- resolution: "jsonfile@npm:4.0.0"
- dependencies:
- graceful-fs: "npm:^4.1.6"
- dependenciesMeta:
- graceful-fs:
- optional: true
- checksum: 10/17796f0ab1be8479827d3683433f97ebe0a1c6932c3360fa40348eac36904d69269aab26f8b16da311882d94b42e9208e8b28e490bf926364f3ac9bff134c226
- languageName: node
- linkType: hard
-
-"jsonfile@npm:^6.0.1":
- version: 6.2.0
- resolution: "jsonfile@npm:6.2.0"
- dependencies:
- graceful-fs: "npm:^4.1.6"
- universalify: "npm:^2.0.0"
- dependenciesMeta:
- graceful-fs:
- optional: true
- checksum: 10/513aac94a6eff070767cafc8eb4424b35d523eec0fcd8019fe5b975f4de5b10a54640c8d5961491ddd8e6f562588cf62435c5ddaf83aaf0986cd2ee789e0d7b9
- languageName: node
- linkType: hard
-
-"jstransform@npm:^11.0.3":
- version: 11.0.3
- resolution: "jstransform@npm:11.0.3"
- dependencies:
- base62: "npm:^1.1.0"
- commoner: "npm:^0.10.1"
- esprima-fb: "npm:^15001.1.0-dev-harmony-fb"
- object-assign: "npm:^2.0.0"
- source-map: "npm:^0.4.2"
- bin:
- jstransform: bin/jstransform
- checksum: 10/bd300e3744f1e4b9a5e31833ce17a22718114f0881589b17250c1172dac5290cca486f335f6796587e41bbd1254e2bd27596e8b9d1af69ccceaf429cf79a854f
- languageName: node
- linkType: hard
-
-"jsx-ast-utils@npm:^2.4.1 || ^3.0.0":
- version: 3.3.5
- resolution: "jsx-ast-utils@npm:3.3.5"
- dependencies:
- array-includes: "npm:^3.1.6"
- array.prototype.flat: "npm:^1.3.1"
- object.assign: "npm:^4.1.4"
- object.values: "npm:^1.1.6"
- checksum: 10/b61d44613687dfe4cc8ad4b4fbf3711bf26c60b8d5ed1f494d723e0808415c59b24a7c0ed8ab10736a40ff84eef38cbbfb68b395e05d31117b44ffc59d31edfc
- languageName: node
- linkType: hard
-
-"keyboard-key@npm:^1.0.4":
- version: 1.1.0
- resolution: "keyboard-key@npm:1.1.0"
- checksum: 10/2fbd678dd8c53be62f1fe2c4d12ba1d54a01945f70969f48ee61599ed83289c1654d248b74950006d8756df5a0976bb6c8a88ec2574353d8c1363195a09ec2ed
- languageName: node
- linkType: hard
-
-"keyv@npm:^3.0.0":
- version: 3.1.0
- resolution: "keyv@npm:3.1.0"
- dependencies:
- json-buffer: "npm:3.0.0"
- checksum: 10/6de272b3f78975a9a0b12259953c09d5bbe9de9acfd845471ebd758928b523f70563462f0c16a866fe9b447ff5bdebda72c62bc23734eb72cd1fb8f1d7076843
- languageName: node
- linkType: hard
-
-"keyv@npm:^4.0.0, keyv@npm:^4.5.3":
- version: 4.5.4
- resolution: "keyv@npm:4.5.4"
- dependencies:
- json-buffer: "npm:3.0.1"
- checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75
- languageName: node
- linkType: hard
-
-"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3":
- version: 6.0.3
- resolution: "kind-of@npm:6.0.3"
- checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962
- languageName: node
- linkType: hard
-
-"latest-version@npm:^5.1.0":
- version: 5.1.0
- resolution: "latest-version@npm:5.1.0"
- dependencies:
- package-json: "npm:^6.3.0"
- checksum: 10/fbc72b071eb66c40f652441fd783a9cca62f08bf42433651937f078cd9ef94bf728ec7743992777826e4e89305aef24f234b515e6030503a2cbee7fc9bdc2c0f
- languageName: node
- linkType: hard
-
-"launch-editor@npm:^2.6.0":
- version: 2.12.0
- resolution: "launch-editor@npm:2.12.0"
- dependencies:
- picocolors: "npm:^1.1.1"
- shell-quote: "npm:^1.8.3"
- checksum: 10/43d2b66c674d129f9a96bbae602808a0afa7e6bb6f38de5518479e33b1a542e9772b262304505c2aa363b0185424580b4011a9198082d306e2b419c6f12da5e2
- languageName: node
- linkType: hard
-
-"lazy-val@npm:^1.0.4, lazy-val@npm:^1.0.5":
- version: 1.0.5
- resolution: "lazy-val@npm:1.0.5"
- checksum: 10/31e12e0b118826dfae74f8f3ff8ebcddfe4200ff88d0d448db175c7265ee537e0ba55488d411728246337f3ed3c9ec68416f10889f632a2ce28fb7a970909fb5
- languageName: node
- linkType: hard
-
-"lazystream@npm:^1.0.0":
- version: 1.0.1
- resolution: "lazystream@npm:1.0.1"
- dependencies:
- readable-stream: "npm:^2.0.5"
- checksum: 10/35f8cf8b5799c76570b211b079d4d706a20cbf13a4936d44cc7dbdacab1de6b346ab339ed3e3805f4693155ee5bbebbda4050fa2b666d61956e89a573089e3d4
- languageName: node
- linkType: hard
-
-"lead@npm:^4.0.0":
- version: 4.0.0
- resolution: "lead@npm:4.0.0"
- checksum: 10/7117297c29b94e4846822e5ae0a25780af834586c0862b89ff899e44547f4f742d67801f19838b34611d36eec44868604c55525e12d2a1fb0c9496a9792ca396
- languageName: node
- linkType: hard
-
-"levn@npm:^0.4.1":
- version: 0.4.1
- resolution: "levn@npm:0.4.1"
- dependencies:
- prelude-ls: "npm:^1.2.1"
- type-check: "npm:~0.4.0"
- checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee
- languageName: node
- linkType: hard
-
-"lilconfig@npm:^3.1.1":
- version: 3.1.3
- resolution: "lilconfig@npm:3.1.3"
- checksum: 10/b932ce1af94985f0efbe8896e57b1f814a48c8dbd7fc0ef8469785c6303ed29d0090af3ccad7e36b626bfca3a4dc56cc262697e9a8dd867623cf09a39d54e4c3
- languageName: node
- linkType: hard
-
-"line-reader@npm:^0.2.4":
- version: 0.2.4
- resolution: "line-reader@npm:0.2.4"
- checksum: 10/62ea55882df41938b5a5d93cfa4fdc06d263b206d7b97b0b9a1ddb10b0907debd36770931fd788c233ffcff724fd67ec15444f1f4c62e229fd8eb684991a6c62
- languageName: node
- linkType: hard
-
-"lines-and-columns@npm:^1.1.6":
- version: 1.2.4
- resolution: "lines-and-columns@npm:1.2.4"
- checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5
- languageName: node
- linkType: hard
-
-"load-json-file@npm:^6.2.0":
- version: 6.2.0
- resolution: "load-json-file@npm:6.2.0"
- dependencies:
- graceful-fs: "npm:^4.1.15"
- parse-json: "npm:^5.0.0"
- strip-bom: "npm:^4.0.0"
- type-fest: "npm:^0.6.0"
- checksum: 10/4429e430ebb99375fc7cd936348e4f7ba729486080ced4272091c1e386a7f5f738ea3337d8ffd4b01c2f5bc3ddde92f2c780045b66838fe98bdb79f901884643
- languageName: node
- linkType: hard
-
-"load-tsconfig@npm:^0.2.3":
- version: 0.2.5
- resolution: "load-tsconfig@npm:0.2.5"
- checksum: 10/b3176f6f0c86dbdbbc7e337440a803b0b4407c55e2e1cfc53bd3db68e0211448f36428a6075ecf5e286db5d1bf791da756fc0ac4d2447717140fb6a5218ecfb4
- languageName: node
- linkType: hard
-
-"loader-runner@npm:^4.3.1":
- version: 4.3.1
- resolution: "loader-runner@npm:4.3.1"
- checksum: 10/d77127497c3f91fdba351e3e91156034e6e590e9f050b40df6c38ac16c54b5c903f7e2e141e09fefd046ee96b26fb50773c695ebc0aa205a4918683b124b04ba
- languageName: node
- linkType: hard
-
-"locate-path@npm:^5.0.0":
- version: 5.0.0
- resolution: "locate-path@npm:5.0.0"
- dependencies:
- p-locate: "npm:^4.1.0"
- checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30
- languageName: node
- linkType: hard
-
-"locate-path@npm:^6.0.0":
- version: 6.0.0
- resolution: "locate-path@npm:6.0.0"
- dependencies:
- p-locate: "npm:^5.0.0"
- checksum: 10/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a
- languageName: node
- linkType: hard
-
-"lodash.camelcase@npm:^4.3.0":
- version: 4.3.0
- resolution: "lodash.camelcase@npm:4.3.0"
- checksum: 10/c301cc379310441dc73cd6cebeb91fb254bea74e6ad3027f9346fc43b4174385153df420ffa521654e502fd34c40ef69ca4e7d40ee7129a99e06f306032bfc65
- languageName: node
- linkType: hard
-
-"lodash.escaperegexp@npm:^4.1.2":
- version: 4.1.2
- resolution: "lodash.escaperegexp@npm:4.1.2"
- checksum: 10/6d99452b1cfd6073175a9b741a9b09ece159eac463f86f02ea3bee2e2092923fce812c8d2bf446309cc52d1d61bf9af51c8118b0d7421388e6cead7bd3798f0f
- languageName: node
- linkType: hard
-
-"lodash.isequal@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.isequal@npm:4.5.0"
- checksum: 10/82fc58a83a1555f8df34ca9a2cd300995ff94018ac12cc47c349655f0ae1d4d92ba346db4c19bbfc90510764e0c00ddcc985a358bdcd4b3b965abf8f2a48a214
- languageName: node
- linkType: hard
-
-"lodash.merge@npm:^4.6.2":
- version: 4.6.2
- resolution: "lodash.merge@npm:4.6.2"
- checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6
- languageName: node
- linkType: hard
-
-"lodash@npm:^4.0.0, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21":
- version: 4.17.21
- resolution: "lodash@npm:4.17.21"
- checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532
- languageName: node
- linkType: hard
-
-"log-symbols@npm:^3.0.0":
- version: 3.0.0
- resolution: "log-symbols@npm:3.0.0"
- dependencies:
- chalk: "npm:^2.4.2"
- checksum: 10/f2322e1452d819050b11aad247660e1494f8b2219d40a964af91d5f9af1a90636f1b3d93f2952090e42af07cc5550aecabf6c1d8ec1181207e95cb66ba112361
- languageName: node
- linkType: hard
-
-"log-symbols@npm:^4.1.0":
- version: 4.1.0
- resolution: "log-symbols@npm:4.1.0"
- dependencies:
- chalk: "npm:^4.1.0"
- is-unicode-supported: "npm:^0.1.0"
- checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74
- languageName: node
- linkType: hard
-
-"long@npm:^5.0.0":
- version: 5.3.2
- resolution: "long@npm:5.3.2"
- checksum: 10/b6b55ddae56fcce2864d37119d6b02fe28f6dd6d9e44fd22705f86a9254b9321bd69e9ffe35263b4846d54aba197c64882adcb8c543f2383c1e41284b321ea64
- languageName: node
- linkType: hard
-
-"longest-streak@npm:^3.0.0":
- version: 3.1.0
- resolution: "longest-streak@npm:3.1.0"
- checksum: 10/d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0
- languageName: node
- linkType: hard
-
-"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
- version: 1.4.0
- resolution: "loose-envify@npm:1.4.0"
- dependencies:
- js-tokens: "npm:^3.0.0 || ^4.0.0"
- bin:
- loose-envify: cli.js
- checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4
- languageName: node
- linkType: hard
-
-"lower-case@npm:^2.0.2":
- version: 2.0.2
- resolution: "lower-case@npm:2.0.2"
- dependencies:
- tslib: "npm:^2.0.3"
- checksum: 10/83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010
- languageName: node
- linkType: hard
-
-"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1":
- version: 1.0.1
- resolution: "lowercase-keys@npm:1.0.1"
- checksum: 10/12ba64572dc25ae9ee30d37a11f3a91aea046c1b6b905fdf8ac77e2f268f153ed36e60d39cb3bfa47a89f31d981dae9a8cc9915124a56fe51ff01ed6e8bb68fa
- languageName: node
- linkType: hard
-
-"lowercase-keys@npm:^2.0.0":
- version: 2.0.0
- resolution: "lowercase-keys@npm:2.0.0"
- checksum: 10/1c233d2da35056e8c49fae8097ee061b8c799b2f02e33c2bf32f9913c7de8fb481ab04dab7df35e94156c800f5f34e99acbf32b21781d87c3aa43ef7b748b79e
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^10.2.0, lru-cache@npm:^10.4.3":
- version: 10.4.3
- resolution: "lru-cache@npm:10.4.3"
- checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
- version: 11.2.4
- resolution: "lru-cache@npm:11.2.4"
- checksum: 10/3b2da74c0b6653767f8164c38c4c4f4d7f0cc10c62bfa512663d94a830191ae6a5af742a8d88a8b30d5f9974652d3adae53931f32069139ad24fa2a18a199aca
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^6.0.0":
- version: 6.0.0
- resolution: "lru-cache@npm:6.0.0"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10/fc1fe2ee205f7c8855fa0f34c1ab0bcf14b6229e35579ec1fd1079f31d6fc8ef8eb6fd17f2f4d99788d7e339f50e047555551ebd5e434dda503696e7c6591825
- languageName: node
- linkType: hard
-
-"lz-string@npm:^1.5.0":
- version: 1.5.0
- resolution: "lz-string@npm:1.5.0"
- bin:
- lz-string: bin/bin.js
- checksum: 10/e86f0280e99a8d8cd4eef24d8601ddae15ce54e43ac9990dfcb79e1e081c255ad24424a30d78d2ad8e51a8ce82a66a930047fed4b4aa38c6f0b392ff9300edfc
- languageName: node
- linkType: hard
-
-"madge@npm:^6.1.0":
- version: 6.1.0
- resolution: "madge@npm:6.1.0"
- dependencies:
- chalk: "npm:^4.1.1"
- commander: "npm:^7.2.0"
- commondir: "npm:^1.0.1"
- debug: "npm:^4.3.1"
- dependency-tree: "npm:^9.0.0"
- detective-amd: "npm:^4.0.1"
- detective-cjs: "npm:^4.0.0"
- detective-es6: "npm:^3.0.0"
- detective-less: "npm:^1.0.2"
- detective-postcss: "npm:^6.1.0"
- detective-sass: "npm:^4.0.1"
- detective-scss: "npm:^3.0.0"
- detective-stylus: "npm:^2.0.1"
- detective-typescript: "npm:^9.0.0"
- ora: "npm:^5.4.1"
- pluralize: "npm:^8.0.0"
- precinct: "npm:^8.1.0"
- pretty-ms: "npm:^7.0.1"
- rc: "npm:^1.2.7"
- stream-to-array: "npm:^2.3.0"
- ts-graphviz: "npm:^1.5.0"
- walkdir: "npm:^0.4.1"
- peerDependencies:
- typescript: ^3.9.5 || ^4.9.5 || ^5
- peerDependenciesMeta:
- typescript:
- optional: true
- bin:
- madge: bin/cli.js
- checksum: 10/80d3d549135e302109a5b98ab6cb088b44579779067365008368a042578bca0dfb1a76c697a1e9f63d5d2037724628e66b9dbd3efb0126555dd9d626a865d6d0
- languageName: node
- linkType: hard
-
-"mafmt@npm:^7.0.0":
- version: 7.1.0
- resolution: "mafmt@npm:7.1.0"
- dependencies:
- multiaddr: "npm:^7.3.0"
- checksum: 10/b81405cb133b8e0a6787cc0e1529ddaf6a47478811a14190c048e5a6c260f99e118b3df00ca60caccbe20a63b5eacf8ffe29950102932137ea36f962196fcea4
- languageName: node
- linkType: hard
-
-"magic-string@npm:^0.25.7":
- version: 0.25.9
- resolution: "magic-string@npm:0.25.9"
- dependencies:
- sourcemap-codec: "npm:^1.4.8"
- checksum: 10/87a14b944bd169821cbd54b169a7ab6b0348fd44b5497266dc555dd70280744e9e88047da9dcb95675bdc23b1ce33f13398b0f70b3be7b858225ccb1d185ff51
- languageName: node
- linkType: hard
-
-"magic-string@npm:^0.30.17, magic-string@npm:^0.30.3":
- version: 0.30.21
- resolution: "magic-string@npm:0.30.21"
- dependencies:
- "@jridgewell/sourcemap-codec": "npm:^1.5.5"
- checksum: 10/57d5691f41ed40d962d8bd300148114f53db67fadbff336207db10a99f2bdf4a1be9cac3a68ee85dba575912ee1d4402e4396408196ec2d3afd043b076156221
- languageName: node
- linkType: hard
-
-"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2":
- version: 3.1.0
- resolution: "make-dir@npm:3.1.0"
- dependencies:
- semver: "npm:^6.0.0"
- checksum: 10/484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78
- languageName: node
- linkType: hard
-
-"make-fetch-happen@npm:^15.0.0":
- version: 15.0.3
- resolution: "make-fetch-happen@npm:15.0.3"
- dependencies:
- "@npmcli/agent": "npm:^4.0.0"
- cacache: "npm:^20.0.1"
- http-cache-semantics: "npm:^4.1.1"
- minipass: "npm:^7.0.2"
- minipass-fetch: "npm:^5.0.0"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- negotiator: "npm:^1.0.0"
- proc-log: "npm:^6.0.0"
- promise-retry: "npm:^2.0.1"
- ssri: "npm:^13.0.0"
- checksum: 10/78da4fc1df83cb596e2bae25aa0653b8a9c6cbdd6674a104894e03be3acfcd08c70b78f06ef6407fbd6b173f6a60672480d78641e693d05eb71c09c13ee35278
- languageName: node
- linkType: hard
-
-"map-obj@npm:^1.0.0":
- version: 1.0.1
- resolution: "map-obj@npm:1.0.1"
- checksum: 10/f8e6fc7f6137329c376c4524f6d25b3c243c17019bc8f621d15a2dcb855919e482a9298a78ae58b00dbd0e76b640bf6533aa343a9e993cfc16e0346a2507e7f8
- languageName: node
- linkType: hard
-
-"map-obj@npm:^4.0.0":
- version: 4.3.0
- resolution: "map-obj@npm:4.3.0"
- checksum: 10/fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e
- languageName: node
- linkType: hard
-
-"matcher@npm:^3.0.0":
- version: 3.0.0
- resolution: "matcher@npm:3.0.0"
- dependencies:
- escape-string-regexp: "npm:^4.0.0"
- checksum: 10/8bee1a7ab7609c2c21d9c9254b6785fa708eadf289032b556d57a34e98fcd4c537659a004dafee6ce80ab157099e645c199dc52678dff1e7fb0a6684e0da4dbe
- languageName: node
- linkType: hard
-
-"math-intrinsics@npm:^1.1.0":
- version: 1.1.0
- resolution: "math-intrinsics@npm:1.1.0"
- checksum: 10/11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd
- languageName: node
- linkType: hard
-
-"md5.js@npm:^1.3.4":
- version: 1.3.5
- resolution: "md5.js@npm:1.3.5"
- dependencies:
- hash-base: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10/098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c
- languageName: node
- linkType: hard
-
-"mdast-util-from-markdown@npm:^2.0.0":
- version: 2.0.2
- resolution: "mdast-util-from-markdown@npm:2.0.2"
- dependencies:
- "@types/mdast": "npm:^4.0.0"
- "@types/unist": "npm:^3.0.0"
- decode-named-character-reference: "npm:^1.0.0"
- devlop: "npm:^1.0.0"
- mdast-util-to-string: "npm:^4.0.0"
- micromark: "npm:^4.0.0"
- micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
- micromark-util-decode-string: "npm:^2.0.0"
- micromark-util-normalize-identifier: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- unist-util-stringify-position: "npm:^4.0.0"
- checksum: 10/69b207913fbcc0469f8c59d922af4d5509b79e809d77c9bd4781543a907fe2ecc8e6433ce0707066a27b117b13f38af3aae4f2d085e18ebd2d3ad5f1a5647902
- languageName: node
- linkType: hard
-
-"mdast-util-mdx-expression@npm:^2.0.0":
- version: 2.0.1
- resolution: "mdast-util-mdx-expression@npm:2.0.1"
- dependencies:
- "@types/estree-jsx": "npm:^1.0.0"
- "@types/hast": "npm:^3.0.0"
- "@types/mdast": "npm:^4.0.0"
- devlop: "npm:^1.0.0"
- mdast-util-from-markdown: "npm:^2.0.0"
- mdast-util-to-markdown: "npm:^2.0.0"
- checksum: 10/70e860f8ee22c4f478449942750055d649d4380bf43b235d0710af510189d285fb057e401d20b59596d9789f4e270fce08ca892dc849676f9e3383b991d52485
- languageName: node
- linkType: hard
-
-"mdast-util-mdx-jsx@npm:^3.0.0":
- version: 3.2.0
- resolution: "mdast-util-mdx-jsx@npm:3.2.0"
- dependencies:
- "@types/estree-jsx": "npm:^1.0.0"
- "@types/hast": "npm:^3.0.0"
- "@types/mdast": "npm:^4.0.0"
- "@types/unist": "npm:^3.0.0"
- ccount: "npm:^2.0.0"
- devlop: "npm:^1.1.0"
- mdast-util-from-markdown: "npm:^2.0.0"
- mdast-util-to-markdown: "npm:^2.0.0"
- parse-entities: "npm:^4.0.0"
- stringify-entities: "npm:^4.0.0"
- unist-util-stringify-position: "npm:^4.0.0"
- vfile-message: "npm:^4.0.0"
- checksum: 10/62cd650a522e5d72ea6afd6d4a557fc86525b802d097a29a2fbe17d22e7b97c502a580611873e4d685777fe77c6ff8d39fb6e37d026b3acbc86c3b24927f4ad9
- languageName: node
- linkType: hard
-
-"mdast-util-mdxjs-esm@npm:^2.0.0":
- version: 2.0.1
- resolution: "mdast-util-mdxjs-esm@npm:2.0.1"
- dependencies:
- "@types/estree-jsx": "npm:^1.0.0"
- "@types/hast": "npm:^3.0.0"
- "@types/mdast": "npm:^4.0.0"
- devlop: "npm:^1.0.0"
- mdast-util-from-markdown: "npm:^2.0.0"
- mdast-util-to-markdown: "npm:^2.0.0"
- checksum: 10/05474226e163a3f407fccb5780b0d8585a95e548e5da4a85227df43f281b940c7941a9a9d4af1be4f885fe554731647addb057a728e87aa1f503ff9cc72c9163
- languageName: node
- linkType: hard
-
-"mdast-util-phrasing@npm:^4.0.0":
- version: 4.1.0
- resolution: "mdast-util-phrasing@npm:4.1.0"
- dependencies:
- "@types/mdast": "npm:^4.0.0"
- unist-util-is: "npm:^6.0.0"
- checksum: 10/3a97533e8ad104a422f8bebb34b3dde4f17167b8ed3a721cf9263c7416bd3447d2364e6d012a594aada40cac9e949db28a060bb71a982231693609034ed5324e
- languageName: node
- linkType: hard
-
-"mdast-util-to-hast@npm:^13.0.0":
- version: 13.2.1
- resolution: "mdast-util-to-hast@npm:13.2.1"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- "@types/mdast": "npm:^4.0.0"
- "@ungap/structured-clone": "npm:^1.0.0"
- devlop: "npm:^1.0.0"
- micromark-util-sanitize-uri: "npm:^2.0.0"
- trim-lines: "npm:^3.0.0"
- unist-util-position: "npm:^5.0.0"
- unist-util-visit: "npm:^5.0.0"
- vfile: "npm:^6.0.0"
- checksum: 10/8fddf5e66ea24dc85c8fe1cc2acd8fbe36e9d4f21b06322e156431fd71385eab9d2d767646f50276ca4ce3684cb967c4e226c60c3fff3428feb687ccb598fa39
- languageName: node
- linkType: hard
-
-"mdast-util-to-markdown@npm:^2.0.0":
- version: 2.1.2
- resolution: "mdast-util-to-markdown@npm:2.1.2"
- dependencies:
- "@types/mdast": "npm:^4.0.0"
- "@types/unist": "npm:^3.0.0"
- longest-streak: "npm:^3.0.0"
- mdast-util-phrasing: "npm:^4.0.0"
- mdast-util-to-string: "npm:^4.0.0"
- micromark-util-classify-character: "npm:^2.0.0"
- micromark-util-decode-string: "npm:^2.0.0"
- unist-util-visit: "npm:^5.0.0"
- zwitch: "npm:^2.0.0"
- checksum: 10/ab494a32f1ec90f0a502970b403b1847a10f3ba635adddb66ce70994cc47b4924c6c05078ddd29a8c2c5c9bc8c0bcc20e5fc1ef0fcb9b0cb9c0589a000817f1c
- languageName: node
- linkType: hard
-
-"mdast-util-to-string@npm:^4.0.0":
- version: 4.0.0
- resolution: "mdast-util-to-string@npm:4.0.0"
- dependencies:
- "@types/mdast": "npm:^4.0.0"
- checksum: 10/f4a5dbb9ea03521d7d3e26a9ba5652a1d6fbd55706dddd2155427517085688830e0ecd3f12418cfd40892640886eb39a4034c3c967d85e01e2fa64cfb53cff05
- languageName: node
- linkType: hard
-
-"media-typer@npm:0.3.0":
- version: 0.3.0
- resolution: "media-typer@npm:0.3.0"
- checksum: 10/38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46
- languageName: node
- linkType: hard
-
-"memfs@npm:^3.4.3":
- version: 3.5.3
- resolution: "memfs@npm:3.5.3"
- dependencies:
- fs-monkey: "npm:^1.0.4"
- checksum: 10/7c9cdb453a6b06e87f11e2dbe6c518fd3c1c1581b370ffa24f42f3fd5b1db8c2203f596e43321a0032963f3e9b66400f2c3cf043904ac496d6ae33eafd0878fe
- languageName: node
- linkType: hard
-
-"memoize-one@npm:^5.1.1":
- version: 5.2.1
- resolution: "memoize-one@npm:5.2.1"
- checksum: 10/b7141dc148b5c6fdd51e77ecf0421fd2581681eb8756e0b3dfbd4fe765b5e2b5a6bc90214bb6f19a96b6aed44de17eda3407142a7be9e24ccd0774bbd9874d1b
- languageName: node
- linkType: hard
-
-"meow@npm:^7.0.1":
- version: 7.1.1
- resolution: "meow@npm:7.1.1"
- dependencies:
- "@types/minimist": "npm:^1.2.0"
- camelcase-keys: "npm:^6.2.2"
- decamelize-keys: "npm:^1.1.0"
- hard-rejection: "npm:^2.1.0"
- minimist-options: "npm:4.1.0"
- normalize-package-data: "npm:^2.5.0"
- read-pkg-up: "npm:^7.0.1"
- redent: "npm:^3.0.0"
- trim-newlines: "npm:^3.0.0"
- type-fest: "npm:^0.13.1"
- yargs-parser: "npm:^18.1.3"
- checksum: 10/1a8ccde33f94457a575dbde9de0b0682da52ccd92e96fd91f45dc31ad20e5e50141f8d2e2e22657a179ef113fd4cb5caca234c26cf50993dc307d4f201a580ff
- languageName: node
- linkType: hard
-
-"merge-descriptors@npm:1.0.3":
- version: 1.0.3
- resolution: "merge-descriptors@npm:1.0.3"
- checksum: 10/52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1
- languageName: node
- linkType: hard
-
-"merge-stream@npm:^2.0.0":
- version: 2.0.0
- resolution: "merge-stream@npm:2.0.0"
- checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4
- languageName: node
- linkType: hard
-
-"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
- version: 1.4.1
- resolution: "merge2@npm:1.4.1"
- checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2
- languageName: node
- linkType: hard
-
-"methods@npm:~1.1.2":
- version: 1.1.2
- resolution: "methods@npm:1.1.2"
- checksum: 10/a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820
- languageName: node
- linkType: hard
-
-"micro-base@npm:^0.9.0":
- version: 0.9.0
- resolution: "micro-base@npm:0.9.0"
- checksum: 10/4e90746ea0ddfcce1aa2d60776d2daa8eae9687f319165ec594d20eac002043b45f248e900a5789844f78f53e625dd71c06059944bf676936ddd14b2800a9b2b
- languageName: node
- linkType: hard
-
-"micromark-core-commonmark@npm:^2.0.0":
- version: 2.0.3
- resolution: "micromark-core-commonmark@npm:2.0.3"
- dependencies:
- decode-named-character-reference: "npm:^1.0.0"
- devlop: "npm:^1.0.0"
- micromark-factory-destination: "npm:^2.0.0"
- micromark-factory-label: "npm:^2.0.0"
- micromark-factory-space: "npm:^2.0.0"
- micromark-factory-title: "npm:^2.0.0"
- micromark-factory-whitespace: "npm:^2.0.0"
- micromark-util-character: "npm:^2.0.0"
- micromark-util-chunked: "npm:^2.0.0"
- micromark-util-classify-character: "npm:^2.0.0"
- micromark-util-html-tag-name: "npm:^2.0.0"
- micromark-util-normalize-identifier: "npm:^2.0.0"
- micromark-util-resolve-all: "npm:^2.0.0"
- micromark-util-subtokenize: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/2b98b9eba1463850ebd8f338f966bd2113dafe764b490ebee3dccab3764d3c48b53fe67673297530e56bf54f58de27dfd1952ed79c5b4e32047cb7f29bd807f2
- languageName: node
- linkType: hard
-
-"micromark-factory-destination@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-factory-destination@npm:2.0.1"
- dependencies:
- micromark-util-character: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320
- languageName: node
- linkType: hard
-
-"micromark-factory-label@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-factory-label@npm:2.0.1"
- dependencies:
- devlop: "npm:^1.0.0"
- micromark-util-character: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2
- languageName: node
- linkType: hard
-
-"micromark-factory-space@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-factory-space@npm:2.0.1"
- dependencies:
- micromark-util-character: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71
- languageName: node
- linkType: hard
-
-"micromark-factory-title@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-factory-title@npm:2.0.1"
- dependencies:
- micromark-factory-space: "npm:^2.0.0"
- micromark-util-character: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1
- languageName: node
- linkType: hard
-
-"micromark-factory-whitespace@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-factory-whitespace@npm:2.0.1"
- dependencies:
- micromark-factory-space: "npm:^2.0.0"
- micromark-util-character: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650
- languageName: node
- linkType: hard
-
-"micromark-util-character@npm:^2.0.0":
- version: 2.1.1
- resolution: "micromark-util-character@npm:2.1.1"
- dependencies:
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/85da8f8e5f7ed16046575bef5b0964ca3fca3162b87b74ae279f1e48eb7160891313eb64f04606baed81c58b514dbdb64f1a9d110a51baaaa79225d72a7b1852
- languageName: node
- linkType: hard
-
-"micromark-util-chunked@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-chunked@npm:2.0.1"
- dependencies:
- micromark-util-symbol: "npm:^2.0.0"
- checksum: 10/f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4
- languageName: node
- linkType: hard
-
-"micromark-util-classify-character@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-classify-character@npm:2.0.1"
- dependencies:
- micromark-util-character: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704
- languageName: node
- linkType: hard
-
-"micromark-util-combine-extensions@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-combine-extensions@npm:2.0.1"
- dependencies:
- micromark-util-chunked: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e
- languageName: node
- linkType: hard
-
-"micromark-util-decode-numeric-character-reference@npm:^2.0.0":
- version: 2.0.2
- resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2"
- dependencies:
- micromark-util-symbol: "npm:^2.0.0"
- checksum: 10/ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6
- languageName: node
- linkType: hard
-
-"micromark-util-decode-string@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-decode-string@npm:2.0.1"
- dependencies:
- decode-named-character-reference: "npm:^1.0.0"
- micromark-util-character: "npm:^2.0.0"
- micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- checksum: 10/2f517e4c613609445db4b9a17f8c77832f55fb341620a8fd598f083c1227027485d601c2021c2f8f9883210b8671e7b3990f0c6feeecd49a136475465808c380
- languageName: node
- linkType: hard
-
-"micromark-util-encode@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-encode@npm:2.0.1"
- checksum: 10/be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226
- languageName: node
- linkType: hard
-
-"micromark-util-html-tag-name@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-html-tag-name@npm:2.0.1"
- checksum: 10/dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d
- languageName: node
- linkType: hard
-
-"micromark-util-normalize-identifier@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-normalize-identifier@npm:2.0.1"
- dependencies:
- micromark-util-symbol: "npm:^2.0.0"
- checksum: 10/1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84
- languageName: node
- linkType: hard
-
-"micromark-util-resolve-all@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-resolve-all@npm:2.0.1"
- dependencies:
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc
- languageName: node
- linkType: hard
-
-"micromark-util-sanitize-uri@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-sanitize-uri@npm:2.0.1"
- dependencies:
- micromark-util-character: "npm:^2.0.0"
- micromark-util-encode: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- checksum: 10/064c72abfc9777864ca0521a016dde62ab3e7af5215d10fd27e820798500d5d305da638459c589275c1a093cf588f493cc2f65273deac5a5331ecefc6c9ea78a
- languageName: node
- linkType: hard
-
-"micromark-util-subtokenize@npm:^2.0.0":
- version: 2.1.0
- resolution: "micromark-util-subtokenize@npm:2.1.0"
- dependencies:
- devlop: "npm:^1.0.0"
- micromark-util-chunked: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/5f18c70cb952a414a4d161f5d6a5254d33c7dfcd56577e592ef2e172a0414058d3531a3554f43538f14e243592fffbc2e68ddaf6a41c54577b3ba7beb555d3dc
- languageName: node
- linkType: hard
-
-"micromark-util-symbol@npm:^2.0.0":
- version: 2.0.1
- resolution: "micromark-util-symbol@npm:2.0.1"
- checksum: 10/497e6d95fc21c2bb5265b78a6a60db518c376dc438739b2e7d4aee6f9f165222711724b456c63163314f32b8eea68a064687711d41e986262926eab23ddb9229
- languageName: node
- linkType: hard
-
-"micromark-util-types@npm:^2.0.0":
- version: 2.0.2
- resolution: "micromark-util-types@npm:2.0.2"
- checksum: 10/a9eb067bd9384eab61942285d53738aa22f3fef4819eaf20249bec6ec13f1e4da2800230fd0ceb7e705108987aa9062fe3e9a8e5e48aa60180db80b9489dc3e2
- languageName: node
- linkType: hard
-
-"micromark@npm:^4.0.0":
- version: 4.0.2
- resolution: "micromark@npm:4.0.2"
- dependencies:
- "@types/debug": "npm:^4.0.0"
- debug: "npm:^4.0.0"
- decode-named-character-reference: "npm:^1.0.0"
- devlop: "npm:^1.0.0"
- micromark-core-commonmark: "npm:^2.0.0"
- micromark-factory-space: "npm:^2.0.0"
- micromark-util-character: "npm:^2.0.0"
- micromark-util-chunked: "npm:^2.0.0"
- micromark-util-combine-extensions: "npm:^2.0.0"
- micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
- micromark-util-encode: "npm:^2.0.0"
- micromark-util-normalize-identifier: "npm:^2.0.0"
- micromark-util-resolve-all: "npm:^2.0.0"
- micromark-util-sanitize-uri: "npm:^2.0.0"
- micromark-util-subtokenize: "npm:^2.0.0"
- micromark-util-symbol: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- checksum: 10/1b85e49c8f71013df2d07a59e477deb72cd325d41cc15f35b2aa52b8b7a93fed45498ce3e18ed34464a9afa9ba8a9210b2509454b2a2d16ac06c7429f562bfac
- languageName: node
- linkType: hard
-
-"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.8":
- version: 4.0.8
- resolution: "micromatch@npm:4.0.8"
- dependencies:
- braces: "npm:^3.0.3"
- picomatch: "npm:^2.3.1"
- checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58
- languageName: node
- linkType: hard
-
-"miller-rabin@npm:^4.0.0":
- version: 4.0.1
- resolution: "miller-rabin@npm:4.0.1"
- dependencies:
- bn.js: "npm:^4.0.0"
- brorand: "npm:^1.0.1"
- bin:
- miller-rabin: bin/miller-rabin
- checksum: 10/2a38ba9d1e878d94ee8a8ab3505b40e8d44fb9700a7716570fe4c8ca7e20d49b69aea579106580618c877cc6ff969eff71705042fafb47573736bf89404417bc
- languageName: node
- linkType: hard
-
-"mime-db@npm:1.52.0":
- version: 1.52.0
- resolution: "mime-db@npm:1.52.0"
- checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7
- languageName: node
- linkType: hard
-
-"mime-db@npm:>= 1.43.0 < 2":
- version: 1.54.0
- resolution: "mime-db@npm:1.54.0"
- checksum: 10/9e7834be3d66ae7f10eaa69215732c6d389692b194f876198dca79b2b90cbf96688d9d5d05ef7987b20f749b769b11c01766564264ea5f919c88b32a29011311
- languageName: node
- linkType: hard
-
-"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:^2.1.35, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
- version: 2.1.35
- resolution: "mime-types@npm:2.1.35"
- dependencies:
- mime-db: "npm:1.52.0"
- checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a
- languageName: node
- linkType: hard
-
-"mime@npm:1.6.0":
- version: 1.6.0
- resolution: "mime@npm:1.6.0"
- bin:
- mime: cli.js
- checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170
- languageName: node
- linkType: hard
-
-"mime@npm:^2.5.2":
- version: 2.6.0
- resolution: "mime@npm:2.6.0"
- bin:
- mime: cli.js
- checksum: 10/7da117808b5cd0203bb1b5e33445c330fe213f4d8ee2402a84d62adbde9716ca4fb90dd6d9ab4e77a4128c6c5c24a9c4c9f6a4d720b095b1b342132d02dba58d
- languageName: node
- linkType: hard
-
-"mime@npm:^3.0.0":
- version: 3.0.0
- resolution: "mime@npm:3.0.0"
- bin:
- mime: cli.js
- checksum: 10/b2d31580deb58be89adaa1877cbbf152b7604b980fd7ef8f08b9e96bfedf7d605d9c23a8ba62aa12c8580b910cd7c1d27b7331d0f40f7a14e17d5a0bbec3b49f
- languageName: node
- linkType: hard
-
-"mimic-fn@npm:^2.1.0":
- version: 2.1.0
- resolution: "mimic-fn@npm:2.1.0"
- checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a
- languageName: node
- linkType: hard
-
-"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1":
- version: 1.0.1
- resolution: "mimic-response@npm:1.0.1"
- checksum: 10/034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823
- languageName: node
- linkType: hard
-
-"mimic-response@npm:^3.1.0":
- version: 3.1.0
- resolution: "mimic-response@npm:3.1.0"
- checksum: 10/7e719047612411fe071332a7498cf0448bbe43c485c0d780046c76633a771b223ff49bd00267be122cedebb897037fdb527df72335d0d0f74724604ca70b37ad
- languageName: node
- linkType: hard
-
-"min-indent@npm:^1.0.0":
- version: 1.0.1
- resolution: "min-indent@npm:1.0.1"
- checksum: 10/bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1
- languageName: node
- linkType: hard
-
-"mini-css-extract-plugin@npm:^2.7.6":
- version: 2.9.4
- resolution: "mini-css-extract-plugin@npm:2.9.4"
- dependencies:
- schema-utils: "npm:^4.0.0"
- tapable: "npm:^2.2.1"
- peerDependencies:
- webpack: ^5.0.0
- checksum: 10/24a0418dc49baed58a10a8b81e4d2fe474e89ccdc9370a7c69bd0aeeb5a70d2b4ee12f33b98c95a68423c79c1de7cc2a25aaa2105600b712e7d594cb0d56c9d4
- languageName: node
- linkType: hard
-
-"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
- version: 1.0.1
- resolution: "minimalistic-assert@npm:1.0.1"
- checksum: 10/cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7
- languageName: node
- linkType: hard
-
-"minimalistic-crypto-utils@npm:^1.0.1":
- version: 1.0.1
- resolution: "minimalistic-crypto-utils@npm:1.0.1"
- checksum: 10/6e8a0422b30039406efd4c440829ea8f988845db02a3299f372fceba56ffa94994a9c0f2fd70c17f9969eedfbd72f34b5070ead9656a34d3f71c0bd72583a0ed
- languageName: node
- linkType: hard
-
-"minimatch@npm:2 || 3, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
- version: 3.1.2
- resolution: "minimatch@npm:3.1.2"
- dependencies:
- brace-expansion: "npm:^1.1.7"
- checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634
- languageName: node
- linkType: hard
-
-"minimatch@npm:9.0.3":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5
- languageName: node
- linkType: hard
-
-"minimatch@npm:^10.1.1":
- version: 10.1.1
- resolution: "minimatch@npm:10.1.1"
- dependencies:
- "@isaacs/brace-expansion": "npm:^5.0.0"
- checksum: 10/110f38921ea527022e90f7a5f43721838ac740d0a0c26881c03b57c261354fb9a0430e40b2c56dfcea2ef3c773768f27210d1106f1f2be19cde3eea93f26f45e
- languageName: node
- linkType: hard
-
-"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0, minimatch@npm:^5.1.1":
- version: 5.1.6
- resolution: "minimatch@npm:5.1.6"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 10/126b36485b821daf96d33b5c821dac600cc1ab36c87e7a532594f9b1652b1fa89a1eebcaad4dff17c764dce1a7ac1531327f190fed5f97d8f6e5f889c116c429
- languageName: node
- linkType: hard
-
-"minimatch@npm:^9.0.4":
- version: 9.0.5
- resolution: "minimatch@npm:9.0.5"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348
- languageName: node
- linkType: hard
-
-"minimist-options@npm:4.1.0":
- version: 4.1.0
- resolution: "minimist-options@npm:4.1.0"
- dependencies:
- arrify: "npm:^1.0.1"
- is-plain-obj: "npm:^1.1.0"
- kind-of: "npm:^6.0.3"
- checksum: 10/8c040b3068811e79de1140ca2b708d3e203c8003eb9a414c1ab3cd467fc5f17c9ca02a5aef23bedc51a7f8bfbe77f87e9a7e31ec81fba304cda675b019496f4e
- languageName: node
- linkType: hard
-
-"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6":
- version: 1.2.8
- resolution: "minimist@npm:1.2.8"
- checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f
- languageName: node
- linkType: hard
-
-"minipass-collect@npm:^2.0.1":
- version: 2.0.1
- resolution: "minipass-collect@npm:2.0.1"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342
- languageName: node
- linkType: hard
-
-"minipass-fetch@npm:^5.0.0":
- version: 5.0.0
- resolution: "minipass-fetch@npm:5.0.0"
- dependencies:
- encoding: "npm:^0.1.13"
- minipass: "npm:^7.0.3"
- minipass-sized: "npm:^1.0.3"
- minizlib: "npm:^3.0.1"
- dependenciesMeta:
- encoding:
- optional: true
- checksum: 10/4fb7dca630a64e6970a8211dade505bfe260d0b8d60beb348dcdfb95fe35ef91d977b29963929c9017ae0805686aa3f413107dc6bc5deac9b9e26b0b41c3b86c
- languageName: node
- linkType: hard
-
-"minipass-flush@npm:^1.0.5":
- version: 1.0.5
- resolution: "minipass-flush@npm:1.0.5"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf
- languageName: node
- linkType: hard
-
-"minipass-pipeline@npm:^1.2.4":
- version: 1.2.4
- resolution: "minipass-pipeline@npm:1.2.4"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b
- languageName: node
- linkType: hard
-
-"minipass-sized@npm:^1.0.3":
- version: 1.0.3
- resolution: "minipass-sized@npm:1.0.3"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10/40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd
- languageName: node
- linkType: hard
-
-"minipass@npm:^3.0.0":
- version: 3.3.6
- resolution: "minipass@npm:3.3.6"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0
- languageName: node
- linkType: hard
-
-"minipass@npm:^5.0.0":
- version: 5.0.0
- resolution: "minipass@npm:5.0.0"
- checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93
- languageName: node
- linkType: hard
-
-"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2":
- version: 7.1.2
- resolution: "minipass@npm:7.1.2"
- checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950
- languageName: node
- linkType: hard
-
-"minizlib@npm:^2.1.1":
- version: 2.1.2
- resolution: "minizlib@npm:2.1.2"
- dependencies:
- minipass: "npm:^3.0.0"
- yallist: "npm:^4.0.0"
- checksum: 10/ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1
- languageName: node
- linkType: hard
-
-"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0":
- version: 3.1.0
- resolution: "minizlib@npm:3.1.0"
- dependencies:
- minipass: "npm:^7.1.2"
- checksum: 10/f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99
- languageName: node
- linkType: hard
-
-"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3":
- version: 0.5.3
- resolution: "mkdirp-classic@npm:0.5.3"
- checksum: 10/3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac
- languageName: node
- linkType: hard
-
-"mkdirp@npm:^0.5.0, mkdirp@npm:^0.5.1":
- version: 0.5.6
- resolution: "mkdirp@npm:0.5.6"
- dependencies:
- minimist: "npm:^1.2.6"
- bin:
- mkdirp: bin/cmd.js
- checksum: 10/0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2
- languageName: node
- linkType: hard
-
-"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
- version: 1.0.4
- resolution: "mkdirp@npm:1.0.4"
- bin:
- mkdirp: bin/cmd.js
- checksum: 10/d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2
- languageName: node
- linkType: hard
-
-"mkdirp@npm:^3.0.1":
- version: 3.0.1
- resolution: "mkdirp@npm:3.0.1"
- bin:
- mkdirp: dist/cjs/src/bin.js
- checksum: 10/16fd79c28645759505914561e249b9a1f5fe3362279ad95487a4501e4467abeb714fd35b95307326b8fd03f3c7719065ef11a6f97b7285d7888306d1bd2232ba
- languageName: node
- linkType: hard
-
-"mlly@npm:^1.7.4":
- version: 1.8.0
- resolution: "mlly@npm:1.8.0"
- dependencies:
- acorn: "npm:^8.15.0"
- pathe: "npm:^2.0.3"
- pkg-types: "npm:^1.3.1"
- ufo: "npm:^1.6.1"
- checksum: 10/4db690a421076d5fe88331679f702b77a4bfc9fe3f324bc6150270fb0b69ecd4b5e43570b8e4573dde341515b3eac4daa720a6ac9f2715c210b670852641ab1c
- languageName: node
- linkType: hard
-
-"mock-socket@npm:^9.1.2, mock-socket@npm:^9.2.1, mock-socket@npm:^9.3.1":
- version: 9.3.1
- resolution: "mock-socket@npm:9.3.1"
- checksum: 10/c5c07568f2859db6926d79cb61580c07e67958b5cd6b52d1270fdfa17ae066d7f74a18a4208fc4386092eea4e1ee001aa23f015c88a1774265994e4fae34d18e
- languageName: node
- linkType: hard
-
-"module-definition@npm:^3.3.1":
- version: 3.4.0
- resolution: "module-definition@npm:3.4.0"
- dependencies:
- ast-module-types: "npm:^3.0.0"
- node-source-walk: "npm:^4.0.0"
- bin:
- module-definition: bin/cli.js
- checksum: 10/5cbfd38aab1a9169b5c31924e208e430a87a1b1512ab9736a9a368d950e3cc8e2f5cf642e37fe74123e25402cae50bfb8fdf1f5f0fd3d4d9270df705a2360bfa
- languageName: node
- linkType: hard
-
-"module-definition@npm:^4.1.0":
- version: 4.1.0
- resolution: "module-definition@npm:4.1.0"
- dependencies:
- ast-module-types: "npm:^4.0.0"
- node-source-walk: "npm:^5.0.1"
- bin:
- module-definition: bin/cli.js
- checksum: 10/d9b6397c9ba04b08bc035fd87a3652900530b9a5d6e5263f8a1e05c927dfc103fdffcecd7071a9fd6cd7813fc9feafbbe828f5277e5b706e5de82831153ef0fb
- languageName: node
- linkType: hard
-
-"module-lookup-amd@npm:^7.0.1":
- version: 7.0.1
- resolution: "module-lookup-amd@npm:7.0.1"
- dependencies:
- commander: "npm:^2.8.1"
- debug: "npm:^4.1.0"
- glob: "npm:^7.1.6"
- requirejs: "npm:^2.3.5"
- requirejs-config-file: "npm:^4.0.0"
- bin:
- lookup-amd: bin/cli.js
- checksum: 10/dadf8c602dd970e211136b22271231a853f76ec0b857a3bfa765e52a1f45f313a8e8bc7e1961f96bb1eced14e557cdbc798b37f5c17f0235cf29155617f4e7a9
- languageName: node
- linkType: hard
-
-"moment@npm:^2.10.2":
- version: 2.30.1
- resolution: "moment@npm:2.30.1"
- checksum: 10/ae42d876d4ec831ef66110bdc302c0657c664991e45cf2afffc4b0f6cd6d251dde11375c982a5c0564ccc0fa593fc564576ddceb8c8845e87c15f58aa6baca69
- languageName: node
- linkType: hard
-
-"ms@npm:2.0.0":
- version: 2.0.0
- resolution: "ms@npm:2.0.0"
- checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4
- languageName: node
- linkType: hard
-
-"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3":
- version: 2.1.3
- resolution: "ms@npm:2.1.3"
- checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
- languageName: node
- linkType: hard
-
-"multiaddr@npm:^7.2.1, multiaddr@npm:^7.3.0":
- version: 7.5.0
- resolution: "multiaddr@npm:7.5.0"
- dependencies:
- buffer: "npm:^5.5.0"
- cids: "npm:~0.8.0"
- class-is: "npm:^1.1.0"
- is-ip: "npm:^3.1.0"
- multibase: "npm:^0.7.0"
- varint: "npm:^5.0.0"
- checksum: 10/4ac0a4c3c416dd8dd310591783c7c7d30ede61a25f17ab2ffd0ec687b235ea697745ee26ba92f8725763162c8366a71eda031b4281b83392a5fba85490b9dfb1
- languageName: node
- linkType: hard
-
-"multibase@npm:^0.7.0":
- version: 0.7.0
- resolution: "multibase@npm:0.7.0"
- dependencies:
- base-x: "npm:^3.0.8"
- buffer: "npm:^5.5.0"
- checksum: 10/a5cbbf00b8aa61bcb92a706e210d8f258e8413cff2893584fedbc316c98bf2a44b8f648b57c124ddfaa29750c3b686ee5ba973cb8da84a896c19d63101b09445
- languageName: node
- linkType: hard
-
-"multibase@npm:^1.0.0, multibase@npm:^1.0.1":
- version: 1.0.1
- resolution: "multibase@npm:1.0.1"
- dependencies:
- base-x: "npm:^3.0.8"
- buffer: "npm:^5.5.0"
- checksum: 10/f04306f3e809ea1d49330d87ebb6b93878182bc782b58790c2044aa2f4f0a625f5e8a155b4e1b6f327a6315f005ce49dd1e3b7fc13136895ff43ed1f42276d6d
- languageName: node
- linkType: hard
-
-"multibase@npm:~0.6.0":
- version: 0.6.1
- resolution: "multibase@npm:0.6.1"
- dependencies:
- base-x: "npm:^3.0.8"
- buffer: "npm:^5.5.0"
- checksum: 10/c9e3bf20dc1b109019b94b14a76731ea0a6b0e654a4ef627ba154bfc2b8602ac43b160c44d8245d18cd6a9ed971826efb204230f22b929c8b3e72da13dbc1859
- languageName: node
- linkType: hard
-
-"multicast-dns@npm:^7.2.5":
- version: 7.2.5
- resolution: "multicast-dns@npm:7.2.5"
- dependencies:
- dns-packet: "npm:^5.2.2"
- thunky: "npm:^1.0.2"
- bin:
- multicast-dns: cli.js
- checksum: 10/e9add8035fb7049ccbc87b1b069f05bb3b31e04fe057bf7d0116739d81295165afc2568291a4a962bee01a5074e475996816eed0f50c8110d652af5abb74f95a
- languageName: node
- linkType: hard
-
-"multicodec@npm:^1.0.0, multicodec@npm:^1.0.1":
- version: 1.0.4
- resolution: "multicodec@npm:1.0.4"
- dependencies:
- buffer: "npm:^5.6.0"
- varint: "npm:^5.0.0"
- checksum: 10/3a78ac54d3715e6b095a1805f63b4c4e7d5bb4642445691c0c4e6442cad9f97823469634e73ee362ba748596570db1050d69d5cc74a88928b1e9658916cdfbcd
- languageName: node
- linkType: hard
-
-"multiformats@npm:^12.1.3":
- version: 12.1.3
- resolution: "multiformats@npm:12.1.3"
- checksum: 10/b89ec581fc2b0fc567ca2b5450cc3f0f9ad56adf01b7b9780d07981d5177532be3296b22c1e415e0f17c6c6ddb9beece4ae2e14b79edfc5f3deacbd319a37516
- languageName: node
- linkType: hard
-
-"multiformats@npm:^13.0.0, multiformats@npm:^13.0.1":
- version: 13.4.2
- resolution: "multiformats@npm:13.4.2"
- checksum: 10/b7185ea58d452445350780f9f09bc869d55d74310d66b0fb2cd8c84aa37f31693e556cb801ffc82c14b04bd87691066d549e85400a15a2ed9f6dfc22431d4c5b
- languageName: node
- linkType: hard
-
-"multihashes@npm:^1.0.1":
- version: 1.0.1
- resolution: "multihashes@npm:1.0.1"
- dependencies:
- buffer: "npm:^5.6.0"
- multibase: "npm:^1.0.1"
- varint: "npm:^5.0.0"
- checksum: 10/99b1c5321265b5a16073a38f4fbd8952bf7dbf7362d90961e0b2838c7798ec463b81021d4bf1c5314ec7ad39d1eaf533acc672156bbe3cf771663348b7f2721d
- languageName: node
- linkType: hard
-
-"multihashes@npm:~0.4.13, multihashes@npm:~0.4.15":
- version: 0.4.21
- resolution: "multihashes@npm:0.4.21"
- dependencies:
- buffer: "npm:^5.5.0"
- multibase: "npm:^0.7.0"
- varint: "npm:^5.0.0"
- checksum: 10/a482d9ba7ed0ad41db22ca589f228e4b7a30207a229a64dfc9888796752314fca00a8d03025fe40d6d73965bbb246f54b73626c5a235463e30c06c7bf7a8785f
- languageName: node
- linkType: hard
-
-"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4":
- version: 0.0.8
- resolution: "mute-stream@npm:0.0.8"
- checksum: 10/a2d2e79dde87e3424ffc8c334472c7f3d17b072137734ca46e6f221131f1b014201cc593b69a38062e974fb2394d3d1cb4349f80f012bbf8b8ac1b28033e515f
- languageName: node
- linkType: hard
-
-"mz@npm:^2.7.0":
- version: 2.7.0
- resolution: "mz@npm:2.7.0"
- dependencies:
- any-promise: "npm:^1.0.0"
- object-assign: "npm:^4.0.1"
- thenify-all: "npm:^1.0.0"
- checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87
- languageName: node
- linkType: hard
-
-"nan@npm:^2.14.0, nan@npm:^2.19.0, nan@npm:^2.23.0":
- version: 2.24.0
- resolution: "nan@npm:2.24.0"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10/479f6960119b5ef9b488c14e9069eb534c3545d50b621f51b247d1e3b40828ee619c4d9f8efe30786c5b18c21c60b3cda3f0d0b92e9a3a26cb3e4ab5492a7032
- languageName: node
- linkType: hard
-
-"nanoid@npm:^3.3.11, nanoid@npm:^3.3.7":
- version: 3.3.11
- resolution: "nanoid@npm:3.3.11"
- bin:
- nanoid: bin/nanoid.cjs
- checksum: 10/73b5afe5975a307aaa3c95dfe3334c52cdf9ae71518176895229b8d65ab0d1c0417dd081426134eb7571c055720428ea5d57c645138161e7d10df80815527c48
- languageName: node
- linkType: hard
-
-"napi-build-utils@npm:^2.0.0":
- version: 2.0.0
- resolution: "napi-build-utils@npm:2.0.0"
- checksum: 10/69adcdb828481737f1ec64440286013f6479d5b264e24d5439ba795f65293d0bb6d962035de07c65fae525ed7d2fcd0baab6891d8e3734ea792fec43918acf83
- languageName: node
- linkType: hard
-
-"napi-postinstall@npm:^0.3.0":
- version: 0.3.4
- resolution: "napi-postinstall@npm:0.3.4"
- bin:
- napi-postinstall: lib/cli.js
- checksum: 10/5541381508f9e1051ff3518701c7130ebac779abb3a1ffe9391fcc3cab4cc0569b0ba0952357db3f6b12909c3bb508359a7a60261ffd795feebbdab967175832
- languageName: node
- linkType: hard
-
-"natural-compare-lite@npm:^1.4.0":
- version: 1.4.0
- resolution: "natural-compare-lite@npm:1.4.0"
- checksum: 10/5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225
- languageName: node
- linkType: hard
-
-"natural-compare@npm:^1.4.0":
- version: 1.4.0
- resolution: "natural-compare@npm:1.4.0"
- checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d
- languageName: node
- linkType: hard
-
-"negotiator@npm:0.6.3":
- version: 0.6.3
- resolution: "negotiator@npm:0.6.3"
- checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837
- languageName: node
- linkType: hard
-
-"negotiator@npm:^1.0.0":
- version: 1.0.0
- resolution: "negotiator@npm:1.0.0"
- checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5
- languageName: node
- linkType: hard
-
-"negotiator@npm:~0.6.4":
- version: 0.6.4
- resolution: "negotiator@npm:0.6.4"
- checksum: 10/d98c04a136583afd055746168f1067d58ce4bfe6e4c73ca1d339567f81ea1f7e665b5bd1e81f4771c67b6c2ea89b21cb2adaea2b16058c7dc31317778f931dab
- languageName: node
- linkType: hard
-
-"neo-async@npm:^2.6.2":
- version: 2.6.2
- resolution: "neo-async@npm:2.6.2"
- checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002
- languageName: node
- linkType: hard
-
-"next-tick@npm:^1.1.0":
- version: 1.1.0
- resolution: "next-tick@npm:1.1.0"
- checksum: 10/83b5cf36027a53ee6d8b7f9c0782f2ba87f4858d977342bfc3c20c21629290a2111f8374d13a81221179603ffc4364f38374b5655d17b6a8f8a8c77bdea4fe8b
- languageName: node
- linkType: hard
-
-"no-case@npm:^3.0.4":
- version: 3.0.4
- resolution: "no-case@npm:3.0.4"
- dependencies:
- lower-case: "npm:^2.0.2"
- tslib: "npm:^2.0.3"
- checksum: 10/0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c
- languageName: node
- linkType: hard
-
-"nock@npm:^13.2.4, nock@npm:^13.3.0, nock@npm:^13.5.0, nock@npm:^13.5.5":
- version: 13.5.6
- resolution: "nock@npm:13.5.6"
- dependencies:
- debug: "npm:^4.1.0"
- json-stringify-safe: "npm:^5.0.1"
- propagate: "npm:^2.0.0"
- checksum: 10/a57c265b75e5f7767e2f8baf058773cdbf357c31c5fea2761386ec03a008a657f9df921899fe2a9502773b47145b708863b32345aef529b3c45cba4019120f88
- languageName: node
- linkType: hard
-
-"node-abi@npm:^3.3.0":
- version: 3.85.0
- resolution: "node-abi@npm:3.85.0"
- dependencies:
- semver: "npm:^7.3.5"
- checksum: 10/1d0fb9e7922431663db700aa7087c0e49bae5fd041efe2d7463d808e58be1594af8046e835fe1b17ca69f214b6327e89fb0dd5192f0e7a9bf624f5509a9104b7
- languageName: node
- linkType: hard
-
-"node-addon-api@npm:^1.6.3":
- version: 1.7.2
- resolution: "node-addon-api@npm:1.7.2"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10/6bf8217a8cd8148f4bbfd319b46d33587e9fb2e63e3c856ded67a76715167f7a6b17e1d9b8bbf3b8508befeb6a4adb10d92b8998ed5c19ca8448343f4cea11d6
- languageName: node
- linkType: hard
-
-"node-addon-api@npm:^3.0.2":
- version: 3.2.1
- resolution: "node-addon-api@npm:3.2.1"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10/681b52dfa3e15b0a8e5cf283cc0d8cd5fd2a57c559ae670fcfd20544cbb32f75de7648674110defcd17ab2c76ebef630aa7d2d2f930bc7a8cc439b20fe233518
- languageName: node
- linkType: hard
-
-"node-addon-api@npm:^6.0.0":
- version: 6.1.0
- resolution: "node-addon-api@npm:6.1.0"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10/8eea1d4d965930a177a0508695beb0d89b4c1d80bf330646a035357a1e8fc31e0d09686e2374996e96e757b947a7ece319f98ede3146683f162597c0bcb4df90
- languageName: node
- linkType: hard
-
-"node-domexception@npm:^1.0.0":
- version: 1.0.0
- resolution: "node-domexception@npm:1.0.0"
- checksum: 10/e332522f242348c511640c25a6fc7da4f30e09e580c70c6b13cb0be83c78c3e71c8d4665af2527e869fc96848924a4316ae7ec9014c091e2156f41739d4fa233
- languageName: node
- linkType: hard
-
-"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0":
- version: 2.7.0
- resolution: "node-fetch@npm:2.7.0"
- dependencies:
- whatwg-url: "npm:^5.0.0"
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
- checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676
- languageName: node
- linkType: hard
-
-"node-fetch@npm:^3.3.0, node-fetch@npm:^3.3.2":
- version: 3.3.2
- resolution: "node-fetch@npm:3.3.2"
- dependencies:
- data-uri-to-buffer: "npm:^4.0.0"
- fetch-blob: "npm:^3.1.4"
- formdata-polyfill: "npm:^4.0.10"
- checksum: 10/24207ca8c81231c7c59151840e3fded461d67a31cf3e3b3968e12201a42f89ce4a0b5fb7079b1fa0a4655957b1ca9257553200f03a9f668b45ebad265ca5593d
- languageName: node
- linkType: hard
-
-"node-forge@npm:^1":
- version: 1.3.3
- resolution: "node-forge@npm:1.3.3"
- checksum: 10/f41c31b9296771a4b8c955d58417471712f54f324603a35f8e6cbac19d5e6eaaf5fd5fd14584dfedecbf46a05438ded6eee60a5f2f0822fc5061aaa073cfc75d
- languageName: node
- linkType: hard
-
-"node-gyp-build@npm:^4.3.0, node-gyp-build@npm:^4.5.0":
- version: 4.8.4
- resolution: "node-gyp-build@npm:4.8.4"
- bin:
- node-gyp-build: bin.js
- node-gyp-build-optional: optional.js
- node-gyp-build-test: build-test.js
- checksum: 10/6a7d62289d1afc419fc8fc9bd00aa4e554369e50ca0acbc215cb91446148b75ff7e2a3b53c2c5b2c09a39d416d69f3d3237937860373104b5fe429bf30ad9ac5
- languageName: node
- linkType: hard
-
-"node-gyp@npm:latest":
- version: 12.1.0
- resolution: "node-gyp@npm:12.1.0"
- dependencies:
- env-paths: "npm:^2.2.0"
- exponential-backoff: "npm:^3.1.1"
- graceful-fs: "npm:^4.2.6"
- make-fetch-happen: "npm:^15.0.0"
- nopt: "npm:^9.0.0"
- proc-log: "npm:^6.0.0"
- semver: "npm:^7.3.5"
- tar: "npm:^7.5.2"
- tinyglobby: "npm:^0.2.12"
- which: "npm:^6.0.0"
- bin:
- node-gyp: bin/node-gyp.js
- checksum: 10/d93079236cef1dd7fa4df683708d8708ad255c55865f6656664c8959e4d3963d908ac48e8f9f341705432e979dbbf502a40d68d65a17fe35956a5a05ba6c1cb4
- languageName: node
- linkType: hard
-
-"node-hid@npm:2.1.2":
- version: 2.1.2
- resolution: "node-hid@npm:2.1.2"
- dependencies:
- bindings: "npm:^1.5.0"
- node-addon-api: "npm:^3.0.2"
- node-gyp: "npm:latest"
- prebuild-install: "npm:^7.1.1"
- bin:
- hid-showdevices: src/show-devices.js
- checksum: 10/7b424d9f049221b439cfa3a092f415b608bcd316b819ff1fb0bf5234d766348d9fdaeaafa5ccece514c045825a936cb5617080168066d16b3aaeb0e9808e38f9
- languageName: node
- linkType: hard
-
-"node-releases@npm:^2.0.27":
- version: 2.0.27
- resolution: "node-releases@npm:2.0.27"
- checksum: 10/f6c78ddb392ae500719644afcbe68a9ea533242c02312eb6a34e8478506eb7482a3fb709c70235b01c32fe65625b68dfa9665113f816d87f163bc3819b62b106
- languageName: node
- linkType: hard
-
-"node-source-walk@npm:^4.0.0, node-source-walk@npm:^4.2.0, node-source-walk@npm:^4.2.2":
- version: 4.3.0
- resolution: "node-source-walk@npm:4.3.0"
- dependencies:
- "@babel/parser": "npm:^7.0.0"
- checksum: 10/3145f4b907624b42bf7847d19937e33a1c3946b960ebcf5ac7eded9ba187ae00edec143946ef4a8f04835c31688f06e8341e0a7b4962a41d4d56bd5ab0a83ed5
- languageName: node
- linkType: hard
-
-"node-source-walk@npm:^5.0.0, node-source-walk@npm:^5.0.1":
- version: 5.0.2
- resolution: "node-source-walk@npm:5.0.2"
- dependencies:
- "@babel/parser": "npm:^7.21.4"
- checksum: 10/cbb474a80a7c4576ed94bf4c999be889a85ad1177a0a80019714adece1f5ca70e6a5f728b6828afb4ea00ca524c3ea65fc24d7405b921b754bfb596553f78e7b
- languageName: node
- linkType: hard
-
-"nopt@npm:^9.0.0":
- version: 9.0.0
- resolution: "nopt@npm:9.0.0"
- dependencies:
- abbrev: "npm:^4.0.0"
- bin:
- nopt: bin/nopt.js
- checksum: 10/56a1ccd2ad711fb5115918e2c96828703cddbe12ba2c3bd00591758f6fa30e6f47dd905c59dbfcf9b773f3a293b45996609fb6789ae29d6bfcc3cf3a6f7d9fda
- languageName: node
- linkType: hard
-
-"normalize-package-data@npm:^2.5.0":
- version: 2.5.0
- resolution: "normalize-package-data@npm:2.5.0"
- dependencies:
- hosted-git-info: "npm:^2.1.4"
- resolve: "npm:^1.10.0"
- semver: "npm:2 || 3 || 4 || 5"
- validate-npm-package-license: "npm:^3.0.1"
- checksum: 10/644f830a8bb9b7cc9bf2f6150618727659ee27cdd0840d1c1f97e8e6cab0803a098a2c19f31c6247ad9d3a0792e61521a13a6e8cd87cc6bb676e3150612c03d4
- languageName: node
- linkType: hard
-
-"normalize-path@npm:3.0.0, normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
- version: 3.0.0
- resolution: "normalize-path@npm:3.0.0"
- checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20
- languageName: node
- linkType: hard
-
-"normalize-url@npm:^4.1.0":
- version: 4.5.1
- resolution: "normalize-url@npm:4.5.1"
- checksum: 10/20ced2845fcfaa46da74efc0aa39b7bed22f3db39e6e8b844261613082a36a2dcd468decad89fa9313b5464bebab4034f96bda7880e8fc468027fecf6a6fa254
- languageName: node
- linkType: hard
-
-"normalize-url@npm:^6.0.1":
- version: 6.1.0
- resolution: "normalize-url@npm:6.1.0"
- checksum: 10/5ae699402c9d5ffa330adc348fcd6fc6e6a155ab7c811b96e30b7ecab60ceef821d8f86443869671dda71bbc47f4b9625739c82ad247e883e9aefe875bfb8659
- languageName: node
- linkType: hard
-
-"now-and-later@npm:^3.0.0":
- version: 3.0.0
- resolution: "now-and-later@npm:3.0.0"
- dependencies:
- once: "npm:^1.4.0"
- checksum: 10/5300d42932bac5d4f8d19bf90ebb53c3474ba615eab912770d1b8de896baea6dc7ef3b95158aaf601acfb0cd6b573bceb5fe30cf0224cb06ea227ef3e8fc7f3d
- languageName: node
- linkType: hard
-
-"npm-run-path@npm:^4.0.1":
- version: 4.0.1
- resolution: "npm-run-path@npm:4.0.1"
- dependencies:
- path-key: "npm:^3.0.0"
- checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23
- languageName: node
- linkType: hard
-
-"nth-check@npm:^2.0.1":
- version: 2.1.1
- resolution: "nth-check@npm:2.1.1"
- dependencies:
- boolbase: "npm:^1.0.0"
- checksum: 10/5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3
- languageName: node
- linkType: hard
-
-"nwsapi@npm:^2.2.12":
- version: 2.2.23
- resolution: "nwsapi@npm:2.2.23"
- checksum: 10/aa4a570039c33d70b51436d1bb533f3e2c33c488ccbe9b09285c46a6cee5ef266fd60103461085c6954ba52460786a8138f042958328c7c1b4763898eb3dadfa
- languageName: node
- linkType: hard
-
-"object-assign@npm:^2.0.0":
- version: 2.1.1
- resolution: "object-assign@npm:2.1.1"
- checksum: 10/d37a7d7173408e07ee225116437592d92b584b2a5f38cafe608400b43efd9b78878dbd545b524aff5b4118d88e39466b9038b2d3de8885e212adad497d656c46
- languageName: node
- linkType: hard
-
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
- version: 4.1.1
- resolution: "object-assign@npm:4.1.1"
- checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
- languageName: node
- linkType: hard
-
-"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4":
- version: 1.13.4
- resolution: "object-inspect@npm:1.13.4"
- checksum: 10/aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb
- languageName: node
- linkType: hard
-
-"object-is@npm:^1.1.5":
- version: 1.1.6
- resolution: "object-is@npm:1.1.6"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- checksum: 10/4f6f544773a595da21c69a7531e0e1d6250670f4e09c55f47eb02c516035cfcb1b46ceb744edfd3ecb362309dbccb6d7f88e43bf42e4d4595ac10a329061053a
- languageName: node
- linkType: hard
-
-"object-keys@npm:^1.1.1":
- version: 1.1.1
- resolution: "object-keys@npm:1.1.1"
- checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde
- languageName: node
- linkType: hard
-
-"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7":
- version: 4.1.7
- resolution: "object.assign@npm:4.1.7"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.3"
- define-properties: "npm:^1.2.1"
- es-object-atoms: "npm:^1.0.0"
- has-symbols: "npm:^1.1.0"
- object-keys: "npm:^1.1.1"
- checksum: 10/3fe28cdd779f2a728a9a66bd688679ba231a2b16646cd1e46b528fe7c947494387dda4bc189eff3417f3717ef4f0a8f2439347cf9a9aa3cef722fbfd9f615587
- languageName: node
- linkType: hard
-
-"object.entries@npm:^1.1.9":
- version: 1.1.9
- resolution: "object.entries@npm:1.1.9"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- define-properties: "npm:^1.2.1"
- es-object-atoms: "npm:^1.1.1"
- checksum: 10/24163ab1e1e013796693fc5f5d349e8b3ac0b6a34a7edb6c17d3dd45c6a8854145780c57d302a82512c1582f63720f4b4779d6c1cfba12cbb1420b978802d8a3
- languageName: node
- linkType: hard
-
-"object.fromentries@npm:^2.0.8":
- version: 2.0.8
- resolution: "object.fromentries@npm:2.0.8"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.2"
- es-object-atoms: "npm:^1.0.0"
- checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92
- languageName: node
- linkType: hard
-
-"object.groupby@npm:^1.0.3":
- version: 1.0.3
- resolution: "object.groupby@npm:1.0.3"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.2"
- checksum: 10/44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0
- languageName: node
- linkType: hard
-
-"object.values@npm:^1.1.6, object.values@npm:^1.2.1":
- version: 1.2.1
- resolution: "object.values@npm:1.2.1"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.3"
- define-properties: "npm:^1.2.1"
- es-object-atoms: "npm:^1.0.0"
- checksum: 10/f5ec9eccdefeaaa834b089c525663436812a65ff13de7964a1c3a9110f32054f2d58aa476a645bb14f75a79f3fe1154fb3e7bfdae7ac1e80affe171b2ef74bce
- languageName: node
- linkType: hard
-
-"obuf@npm:^1.0.0, obuf@npm:^1.1.2":
- version: 1.1.2
- resolution: "obuf@npm:1.1.2"
- checksum: 10/53ff4ab3a13cc33ba6c856cf281f2965c0aec9720967af450e8fd06cfd50aceeefc791986a16bcefa14e7898b3ca9acdfcf15b9d9a1b9c7e1366581a8ad6e65e
- languageName: node
- linkType: hard
-
-"on-exit-leak-free@npm:^2.1.0":
- version: 2.1.2
- resolution: "on-exit-leak-free@npm:2.1.2"
- checksum: 10/f7b4b7200026a08f6e4a17ba6d72e6c5cbb41789ed9cf7deaf9d9e322872c7dc5a7898549a894651ee0ee9ae635d34a678115bf8acdfba8ebd2ba2af688b563c
- languageName: node
- linkType: hard
-
-"on-finished@npm:~2.4.1":
- version: 2.4.1
- resolution: "on-finished@npm:2.4.1"
- dependencies:
- ee-first: "npm:1.1.1"
- checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea
- languageName: node
- linkType: hard
-
-"on-headers@npm:~1.1.0":
- version: 1.1.0
- resolution: "on-headers@npm:1.1.0"
- checksum: 10/98aa64629f986fb8cc4517dd8bede73c980e31208cba97f4442c330959f60ced3dc6214b83420491f5111fc7c4f4343abe2ea62c85f505cf041d67850f238776
- languageName: node
- linkType: hard
-
-"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
- version: 1.4.0
- resolution: "once@npm:1.4.0"
- dependencies:
- wrappy: "npm:1"
- checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
- languageName: node
- linkType: hard
-
-"onetime@npm:^5.1.0, onetime@npm:^5.1.2":
- version: 5.1.2
- resolution: "onetime@npm:5.1.2"
- dependencies:
- mimic-fn: "npm:^2.1.0"
- checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd
- languageName: node
- linkType: hard
-
-"open@npm:^7.3.1":
- version: 7.4.2
- resolution: "open@npm:7.4.2"
- dependencies:
- is-docker: "npm:^2.0.0"
- is-wsl: "npm:^2.1.1"
- checksum: 10/4fc02ed3368dcd5d7247ad3566433ea2695b0713b041ebc0eeb2f0f9e5d4e29fc2068f5cdd500976b3464e77fe8b61662b1b059c73233ccc601fe8b16d6c1cd6
- languageName: node
- linkType: hard
-
-"open@npm:^8.0.9":
- version: 8.4.2
- resolution: "open@npm:8.4.2"
- dependencies:
- define-lazy-prop: "npm:^2.0.0"
- is-docker: "npm:^2.1.1"
- is-wsl: "npm:^2.2.0"
- checksum: 10/acd81a1d19879c818acb3af2d2e8e9d81d17b5367561e623248133deb7dd3aefaed527531df2677d3e6aaf0199f84df57b6b2262babff8bf46ea0029aac536c9
- languageName: node
- linkType: hard
-
-"optionator@npm:^0.9.3":
- version: 0.9.4
- resolution: "optionator@npm:0.9.4"
- dependencies:
- deep-is: "npm:^0.1.3"
- fast-levenshtein: "npm:^2.0.6"
- levn: "npm:^0.4.1"
- prelude-ls: "npm:^1.2.1"
- type-check: "npm:^0.4.0"
- word-wrap: "npm:^1.2.5"
- checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6
- languageName: node
- linkType: hard
-
-"ora@npm:^4.0.5":
- version: 4.1.1
- resolution: "ora@npm:4.1.1"
- dependencies:
- chalk: "npm:^3.0.0"
- cli-cursor: "npm:^3.1.0"
- cli-spinners: "npm:^2.2.0"
- is-interactive: "npm:^1.0.0"
- log-symbols: "npm:^3.0.0"
- mute-stream: "npm:0.0.8"
- strip-ansi: "npm:^6.0.0"
- wcwidth: "npm:^1.0.1"
- checksum: 10/9fd0c5033f980e04a02c5e1158d629e22297fe44ab17202e4800911471c527af0440d789d154d3997163f5e4e60fbd6f2fbddb5b0657cfc5b4f1b13a055d7d45
- languageName: node
- linkType: hard
-
-"ora@npm:^5.4.1":
- version: 5.4.1
- resolution: "ora@npm:5.4.1"
- dependencies:
- bl: "npm:^4.1.0"
- chalk: "npm:^4.1.0"
- cli-cursor: "npm:^3.1.0"
- cli-spinners: "npm:^2.5.0"
- is-interactive: "npm:^1.0.0"
- is-unicode-supported: "npm:^0.1.0"
- log-symbols: "npm:^4.1.0"
- strip-ansi: "npm:^6.0.0"
- wcwidth: "npm:^1.0.1"
- checksum: 10/8d071828f40090a8e1c6e8f350c6eb065808e9ab2b3e57fa37e0d5ae78cb46dac00117c8f12c3c8b8da2923454afbd8265e08c10b69881170c5b269f451e7fef
- languageName: node
- linkType: hard
-
-"os-browserify@npm:^0.3.0":
- version: 0.3.0
- resolution: "os-browserify@npm:0.3.0"
- checksum: 10/16e37ba3c0e6a4c63443c7b55799ce4066d59104143cb637ecb9fce586d5da319cdca786ba1c867abbe3890d2cbf37953f2d51eea85e20dd6c4570d6c54bfebf
- languageName: node
- linkType: hard
-
-"owasp-password-strength-test@npm:^1.3.0":
- version: 1.3.0
- resolution: "owasp-password-strength-test@npm:1.3.0"
- checksum: 10/7bd9300434046da139081c799062f59900cf4e2943cc1ae5931791ca672a2098ec80c8f40dcf647be2bb8fbf4b8b71f570451a503f3d682273395fb6b65b66f5
- languageName: node
- linkType: hard
-
-"own-keys@npm:^1.0.1":
- version: 1.0.1
- resolution: "own-keys@npm:1.0.1"
- dependencies:
- get-intrinsic: "npm:^1.2.6"
- object-keys: "npm:^1.1.1"
- safe-push-apply: "npm:^1.0.0"
- checksum: 10/ab4bb3b8636908554fc19bf899e225444195092864cb61503a0d048fdaf662b04be2605b636a4ffeaf6e8811f6fcfa8cbb210ec964c0eb1a41eb853e1d5d2f41
- languageName: node
- linkType: hard
-
-"p-cancelable@npm:^1.0.0":
- version: 1.1.0
- resolution: "p-cancelable@npm:1.1.0"
- checksum: 10/2db3814fef6d9025787f30afaee4496a8857a28be3c5706432cbad76c688a6db1874308f48e364a42f5317f5e41e8e7b4f2ff5c8ff2256dbb6264bc361704ece
- languageName: node
- linkType: hard
-
-"p-cancelable@npm:^2.0.0":
- version: 2.1.1
- resolution: "p-cancelable@npm:2.1.1"
- checksum: 10/7f1b64db17fc54acf359167d62898115dcf2a64bf6b3b038e4faf36fc059e5ed762fb9624df8ed04b25bee8de3ab8d72dea9879a2a960cd12e23c420a4aca6ed
- languageName: node
- linkType: hard
-
-"p-limit@npm:^2.2.0":
- version: 2.3.0
- resolution: "p-limit@npm:2.3.0"
- dependencies:
- p-try: "npm:^2.0.0"
- checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1
- languageName: node
- linkType: hard
-
-"p-limit@npm:^3.0.2":
- version: 3.1.0
- resolution: "p-limit@npm:3.1.0"
- dependencies:
- yocto-queue: "npm:^0.1.0"
- checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360
- languageName: node
- linkType: hard
-
-"p-locate@npm:^4.1.0":
- version: 4.1.0
- resolution: "p-locate@npm:4.1.0"
- dependencies:
- p-limit: "npm:^2.2.0"
- checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870
- languageName: node
- linkType: hard
-
-"p-locate@npm:^5.0.0":
- version: 5.0.0
- resolution: "p-locate@npm:5.0.0"
- dependencies:
- p-limit: "npm:^3.0.2"
- checksum: 10/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3
- languageName: node
- linkType: hard
-
-"p-map@npm:^7.0.2":
- version: 7.0.4
- resolution: "p-map@npm:7.0.4"
- checksum: 10/ef48c3b2e488f31c693c9fcc0df0ef76518cf6426a495cf9486ebbb0fd7f31aef7f90e96f72e0070c0ff6e3177c9318f644b512e2c29e3feee8d7153fcb6782e
- languageName: node
- linkType: hard
-
-"p-queue@npm:^9.0.0":
- version: 9.1.0
- resolution: "p-queue@npm:9.1.0"
- dependencies:
- eventemitter3: "npm:^5.0.1"
- p-timeout: "npm:^7.0.0"
- checksum: 10/7221f58c20852fe1d9283fdcfb2c62628384daf4ccd7a936ba826637d41e1e66f606bc2eaa6d1705513daccb47c21eb890400fc0a91f8566c83d176e63fd3664
- languageName: node
- linkType: hard
-
-"p-retry@npm:^4.5.0":
- version: 4.6.2
- resolution: "p-retry@npm:4.6.2"
- dependencies:
- "@types/retry": "npm:0.12.0"
- retry: "npm:^0.13.1"
- checksum: 10/45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e
- languageName: node
- linkType: hard
-
-"p-timeout@npm:^7.0.0":
- version: 7.0.1
- resolution: "p-timeout@npm:7.0.1"
- checksum: 10/1d65827a07fd10eae5bc1fa493ef5c40522acda21cbbb04131cdb0f63f703c91e5fac2701431e28e308992284a86807d7138dbc2be694e2b8342bee20be652f6
- languageName: node
- linkType: hard
-
-"p-try@npm:^2.0.0":
- version: 2.2.0
- resolution: "p-try@npm:2.2.0"
- checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae
- languageName: node
- linkType: hard
-
-"package-json-from-dist@npm:^1.0.0":
- version: 1.0.1
- resolution: "package-json-from-dist@npm:1.0.1"
- checksum: 10/58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602
- languageName: node
- linkType: hard
-
-"package-json@npm:^6.3.0":
- version: 6.5.0
- resolution: "package-json@npm:6.5.0"
- dependencies:
- got: "npm:^9.6.0"
- registry-auth-token: "npm:^4.0.0"
- registry-url: "npm:^5.0.0"
- semver: "npm:^6.2.0"
- checksum: 10/adb8e49f352ea0d71a4d351732c3870d57f21e6f3921d69a83dd9ef04b45cdb0a035495826fbe9fb2cb9a7e521484404b7d527c181133867b126588efa1996c6
- languageName: node
- linkType: hard
-
-"pako@npm:^2.0.4":
- version: 2.1.0
- resolution: "pako@npm:2.1.0"
- checksum: 10/38a04991d0ec4f4b92794a68b8c92bf7340692c5d980255c92148da96eb3e550df7a86a7128b5ac0c65ecddfe5ef3bbe9c6dab13e1bc315086e759b18f7c1401
- languageName: node
- linkType: hard
-
-"param-case@npm:^3.0.4":
- version: 3.0.4
- resolution: "param-case@npm:3.0.4"
- dependencies:
- dot-case: "npm:^3.0.4"
- tslib: "npm:^2.0.3"
- checksum: 10/b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687
- languageName: node
- linkType: hard
-
-"parent-module@npm:^1.0.0":
- version: 1.0.1
- resolution: "parent-module@npm:1.0.1"
- dependencies:
- callsites: "npm:^3.0.0"
- checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff
- languageName: node
- linkType: hard
-
-"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.9":
- version: 5.1.9
- resolution: "parse-asn1@npm:5.1.9"
- dependencies:
- asn1.js: "npm:^4.10.1"
- browserify-aes: "npm:^1.2.0"
- evp_bytestokey: "npm:^1.0.3"
- pbkdf2: "npm:^3.1.5"
- safe-buffer: "npm:^5.2.1"
- checksum: 10/bc3d616a8076fa8a9a34cab8af6905859a1bafd0c49c98132acc7d29b779c2b81d4a8fc610f5bedc9770cc4bfc323f7c939ad7413e9df6ba60cb931010c42f52
- languageName: node
- linkType: hard
-
-"parse-entities@npm:^4.0.0":
- version: 4.0.2
- resolution: "parse-entities@npm:4.0.2"
- dependencies:
- "@types/unist": "npm:^2.0.0"
- character-entities-legacy: "npm:^3.0.0"
- character-reference-invalid: "npm:^2.0.0"
- decode-named-character-reference: "npm:^1.0.0"
- is-alphanumerical: "npm:^2.0.0"
- is-decimal: "npm:^2.0.0"
- is-hexadecimal: "npm:^2.0.0"
- checksum: 10/b0ce693d0b3d7ed1cea6fe814e6e077c71532695f01178e846269e9a2bc2f7ff34ca4bb8db80b48af0451100f25bb010df6591c9bb6306e4680ccb423d1e4038
- languageName: node
- linkType: hard
-
-"parse-json@npm:^5.0.0":
- version: 5.2.0
- resolution: "parse-json@npm:5.2.0"
- dependencies:
- "@babel/code-frame": "npm:^7.0.0"
- error-ex: "npm:^1.3.1"
- json-parse-even-better-errors: "npm:^2.3.0"
- lines-and-columns: "npm:^1.1.6"
- checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2
- languageName: node
- linkType: hard
-
-"parse-ms@npm:^2.1.0":
- version: 2.1.0
- resolution: "parse-ms@npm:2.1.0"
- checksum: 10/517eab80cdb9df6ae22a8fad944bfb4289482699bcde5211a1c127091dfea33c3dcb217246b188865fc32e998bcee815bfa4a863f41e3b2d0bcc69f34ef1a543
- languageName: node
- linkType: hard
-
-"parse5@npm:^6.0.0":
- version: 6.0.1
- resolution: "parse5@npm:6.0.1"
- checksum: 10/dfb110581f62bd1425725a7c784ae022a24669bd0efc24b58c71fc731c4d868193e2ebd85b74cde2dbb965e4dcf07059b1e651adbec1b3b5267531bd132fdb75
- languageName: node
- linkType: hard
-
-"parse5@npm:^7.0.0, parse5@npm:^7.1.2":
- version: 7.3.0
- resolution: "parse5@npm:7.3.0"
- dependencies:
- entities: "npm:^6.0.0"
- checksum: 10/b0e48be20b820c655b138b86fa6fb3a790de6c891aa2aba536524f8027b4dca4fe538f11a0e5cf2f6f847d120dbb9e4822dcaeb933ff1e10850a2ef0154d1d88
- languageName: node
- linkType: hard
-
-"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
- version: 1.3.3
- resolution: "parseurl@npm:1.3.3"
- checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2
- languageName: node
- linkType: hard
-
-"pascal-case@npm:^3.1.2":
- version: 3.1.2
- resolution: "pascal-case@npm:3.1.2"
- dependencies:
- no-case: "npm:^3.0.4"
- tslib: "npm:^2.0.3"
- checksum: 10/ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e
- languageName: node
- linkType: hard
-
-"path-browserify@npm:^1.0.1":
- version: 1.0.1
- resolution: "path-browserify@npm:1.0.1"
- checksum: 10/7e7368a5207e7c6b9051ef045711d0dc3c2b6203e96057e408e6e74d09f383061010d2be95cb8593fe6258a767c3e9fc6b2bfc7ce8d48ae8c3d9f6994cca9ad8
- languageName: node
- linkType: hard
-
-"path-exists@npm:^4.0.0":
- version: 4.0.0
- resolution: "path-exists@npm:4.0.0"
- checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1
- languageName: node
- linkType: hard
-
-"path-is-absolute@npm:^1.0.0":
- version: 1.0.1
- resolution: "path-is-absolute@npm:1.0.1"
- checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
- languageName: node
- linkType: hard
-
-"path-key@npm:^3.0.0, path-key@npm:^3.1.0":
- version: 3.1.1
- resolution: "path-key@npm:3.1.1"
- checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
- languageName: node
- linkType: hard
-
-"path-parse@npm:^1.0.7":
- version: 1.0.7
- resolution: "path-parse@npm:1.0.7"
- checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
- languageName: node
- linkType: hard
-
-"path-scurry@npm:^1.11.1":
- version: 1.11.1
- resolution: "path-scurry@npm:1.11.1"
- dependencies:
- lru-cache: "npm:^10.2.0"
- minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434
- languageName: node
- linkType: hard
-
-"path-scurry@npm:^2.0.0":
- version: 2.0.1
- resolution: "path-scurry@npm:2.0.1"
- dependencies:
- lru-cache: "npm:^11.0.0"
- minipass: "npm:^7.1.2"
- checksum: 10/1e9c74e9ccf94d7c16056a5cb2dba9fa23eec1bc221ab15c44765486b9b9975b4cd9a4d55da15b96eadf67d5202e9a2f1cec9023fbb35fe7d9ccd0ff1891f88b
- languageName: node
- linkType: hard
-
-"path-to-regexp@npm:~0.1.12":
- version: 0.1.12
- resolution: "path-to-regexp@npm:0.1.12"
- checksum: 10/2e30f6a0144679c1f95c98e166b96e6acd1e72be9417830fefc8de7ac1992147eb9a4c7acaa59119fb1b3c34eec393b2129ef27e24b2054a3906fc4fb0d1398e
- languageName: node
- linkType: hard
-
-"path-type@npm:^4.0.0":
- version: 4.0.0
- resolution: "path-type@npm:4.0.0"
- checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45
- languageName: node
- linkType: hard
-
-"pathe@npm:^2.0.1, pathe@npm:^2.0.3":
- version: 2.0.3
- resolution: "pathe@npm:2.0.3"
- checksum: 10/01e9a69928f39087d96e1751ce7d6d50da8c39abf9a12e0ac2389c42c83bc76f78c45a475bd9026a02e6a6f79be63acc75667df855862fe567d99a00a540d23d
- languageName: node
- linkType: hard
-
-"pbkdf2@npm:^3.1.2, pbkdf2@npm:^3.1.5":
- version: 3.1.5
- resolution: "pbkdf2@npm:3.1.5"
- dependencies:
- create-hash: "npm:^1.2.0"
- create-hmac: "npm:^1.1.7"
- ripemd160: "npm:^2.0.3"
- safe-buffer: "npm:^5.2.1"
- sha.js: "npm:^2.4.12"
- to-buffer: "npm:^1.2.1"
- checksum: 10/ce1c9a2ebbc843c86090ec6cac6d07429dece7c1fdb87437ce6cf869d0429cc39cab61bc34215585f4a00d8009862df45e197fbd54f3508ccba8ff312a88261b
- languageName: node
- linkType: hard
-
-"pend@npm:~1.2.0":
- version: 1.2.0
- resolution: "pend@npm:1.2.0"
- checksum: 10/6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d
- languageName: node
- linkType: hard
-
-"perf-regexes@npm:^1.0.1":
- version: 1.0.1
- resolution: "perf-regexes@npm:1.0.1"
- checksum: 10/43008297d11f2af6cb989590e565060989272fd443fcf67d610bafec5387d3c9747aa5353530ff6598deee0b28f71fd5c5ebfa8a6d895efd38a5dec9fc02ab00
- languageName: node
- linkType: hard
-
-"pezkuwi-sdk-ui@workspace:.":
- version: 0.0.0-use.local
- resolution: "pezkuwi-sdk-ui@workspace:."
- dependencies:
- "@crustio/crust-pin": "npm:^1.0.0"
- "@pezkuwi/dev": "npm:^0.85.2"
- "@pezkuwi/ui-shared": "npm:^3.17.2"
- "@pinata/sdk": "npm:^1.2.1"
- "@types/chart.js": "npm:^2.9.41"
- "@types/file-saver": "npm:^2.0.7"
- "@types/react-beautiful-dnd": "npm:^13.1.7"
- "@types/react-copy-to-clipboard": "npm:^5.0.7"
- "@types/react-dom": "npm:^18.2.18"
- "@types/react-router-dom": "npm:^5.3.3"
- "@types/store": "npm:^2.0.5"
- concurrently: "npm:^8.2.2"
- devtron: "npm:^1.4.0"
- dnslink-cloudflare: "npm:^3.0.0"
- electron: "npm:28.0.0"
- electron-builder: "npm:24.10.0"
- electron-builder-notarize: "npm:^1.5.1"
- extensionless: "npm:^1.9.6"
- i18next-scanner: "npm:^4.4.0"
- react: "npm:^18.2.0"
- react-dom: "npm:^18.2.0"
- react-is: "npm:^18.2.0"
- source-map-explorer: "npm:^2.5.3"
- languageName: unknown
- linkType: soft
-
-"picocolors@npm:^1.1.1":
- version: 1.1.1
- resolution: "picocolors@npm:1.1.1"
- checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045
- languageName: node
- linkType: hard
-
-"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
- version: 2.3.1
- resolution: "picomatch@npm:2.3.1"
- checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc
- languageName: node
- linkType: hard
-
-"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3":
- version: 4.0.3
- resolution: "picomatch@npm:4.0.3"
- checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5
- languageName: node
- linkType: hard
-
-"pino-abstract-transport@npm:^2.0.0":
- version: 2.0.0
- resolution: "pino-abstract-transport@npm:2.0.0"
- dependencies:
- split2: "npm:^4.0.0"
- checksum: 10/e5699ecb06c7121055978e988e5cecea5b6892fc2589c64f1f86df5e7386bbbfd2ada268839e911b021c6b3123428aed7c6be3ac7940eee139556c75324c7e83
- languageName: node
- linkType: hard
-
-"pino-abstract-transport@npm:^3.0.0":
- version: 3.0.0
- resolution: "pino-abstract-transport@npm:3.0.0"
- dependencies:
- split2: "npm:^4.0.0"
- checksum: 10/f42b85b2663c8520839124a55b27801e88c89c65e9569384b49bb4c81b022ae24860020c2375b92a03db699113969007cc155e1fb2dfe53754403920c1cbe18c
- languageName: node
- linkType: hard
-
-"pino-pretty@npm:^13.0.0":
- version: 13.1.3
- resolution: "pino-pretty@npm:13.1.3"
- dependencies:
- colorette: "npm:^2.0.7"
- dateformat: "npm:^4.6.3"
- fast-copy: "npm:^4.0.0"
- fast-safe-stringify: "npm:^2.1.1"
- help-me: "npm:^5.0.0"
- joycon: "npm:^3.1.1"
- minimist: "npm:^1.2.6"
- on-exit-leak-free: "npm:^2.1.0"
- pino-abstract-transport: "npm:^3.0.0"
- pump: "npm:^3.0.0"
- secure-json-parse: "npm:^4.0.0"
- sonic-boom: "npm:^4.0.1"
- strip-json-comments: "npm:^5.0.2"
- bin:
- pino-pretty: bin.js
- checksum: 10/4bb721e1ece378c1c9000457e4fe4a914ea5b8e036551608f5681ca58c8fbacc6b8a31807e93bc0c66d17fb5d96e74b3e4051fb53152955dc51ac58848428e27
- languageName: node
- linkType: hard
-
-"pino-std-serializers@npm:^7.0.0":
- version: 7.0.0
- resolution: "pino-std-serializers@npm:7.0.0"
- checksum: 10/884e08f65aa5463d820521ead3779d4472c78fc434d8582afb66f9dcb8d8c7119c69524b68106cb8caf92c0487be7794cf50e5b9c0383ae65b24bf2a03480951
- languageName: node
- linkType: hard
-
-"pino@npm:^9.7.0":
- version: 9.14.0
- resolution: "pino@npm:9.14.0"
- dependencies:
- "@pinojs/redact": "npm:^0.4.0"
- atomic-sleep: "npm:^1.0.0"
- on-exit-leak-free: "npm:^2.1.0"
- pino-abstract-transport: "npm:^2.0.0"
- pino-std-serializers: "npm:^7.0.0"
- process-warning: "npm:^5.0.0"
- quick-format-unescaped: "npm:^4.0.3"
- real-require: "npm:^0.2.0"
- safe-stable-stringify: "npm:^2.3.1"
- sonic-boom: "npm:^4.0.1"
- thread-stream: "npm:^3.0.0"
- bin:
- pino: bin.js
- checksum: 10/918e1fc764885150cb2b4fae8249a0ece53275020a7ca389f994fa2fbbb17b6353cd736c2db3a3794fbac0351f8e3d58411fabe127e875e24151a8fa4cd0b2b5
- languageName: node
- linkType: hard
-
-"pirates@npm:^4.0.1":
- version: 4.0.7
- resolution: "pirates@npm:4.0.7"
- checksum: 10/2427f371366081ae42feb58214f04805d6b41d6b84d74480ebcc9e0ddbd7105a139f7c653daeaf83ad8a1a77214cf07f64178e76de048128fec501eab3305a96
- languageName: node
- linkType: hard
-
-"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0":
- version: 4.2.0
- resolution: "pkg-dir@npm:4.2.0"
- dependencies:
- find-up: "npm:^4.0.0"
- checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6
- languageName: node
- linkType: hard
-
-"pkg-types@npm:^1.3.1":
- version: 1.3.1
- resolution: "pkg-types@npm:1.3.1"
- dependencies:
- confbox: "npm:^0.1.8"
- mlly: "npm:^1.7.4"
- pathe: "npm:^2.0.1"
- checksum: 10/6d491f2244597b24fb59a50e3c258f27da3839555d2a4e112b31bcf536e9359fc4edc98639cd74d2cf16fcd4269e5a09d99fc05d89e2acc896a2f027c2f6ec44
- languageName: node
- linkType: hard
-
-"plist@npm:^3.0.4, plist@npm:^3.0.5":
- version: 3.1.0
- resolution: "plist@npm:3.1.0"
- dependencies:
- "@xmldom/xmldom": "npm:^0.8.8"
- base64-js: "npm:^1.5.1"
- xmlbuilder: "npm:^15.1.1"
- checksum: 10/f513beecc01a021b4913d4e5816894580b284335ae437e7ed2d5e78f8b6f0d2e0f874ec57bab9c9d424cc49e77b8347efa75abcfa8ac138dbfb63a045e1ce559
- languageName: node
- linkType: hard
-
-"pluralize@npm:^8.0.0":
- version: 8.0.0
- resolution: "pluralize@npm:8.0.0"
- checksum: 10/17877fdfdb7ddb3639ce257ad73a7c51a30a966091e40f56ea9f2f545b5727ce548d4928f8cb3ce38e7dc0c5150407d318af6a4ed0ea5265d378473b4c2c61ec
- languageName: node
- linkType: hard
-
-"pnglib@npm:0.0.1":
- version: 0.0.1
- resolution: "pnglib@npm:0.0.1"
- checksum: 10/312ccae2ab33762dc289b6ffb9edd2ba75b1be30c5217e69231ef1105f31dc0ae52c5fc62b577008069e65c342e2dbb1228681c1660379568638b4fcc0b599f3
- languageName: node
- linkType: hard
-
-"pontem-types-bundle@npm:1.0.15":
- version: 1.0.15
- resolution: "pontem-types-bundle@npm:1.0.15"
- dependencies:
- "@polkadot/keyring": "npm:^7.4.1"
- "@polkadot/types": "npm:^6.0.5"
- typescript: "npm:^4.4.3"
- checksum: 10/247c90b1259a02ad7f3cdcbda8d87b2e6be5f21412245f07d769154b3057c17f16955bb3a62b3429e5c4a13b8fbedce950fc7fb5603897462c86928a36039646
- languageName: node
- linkType: hard
-
-"popper.js@npm:^1.14.4":
- version: 1.16.1
- resolution: "popper.js@npm:1.16.1"
- checksum: 10/71338c86faf9b66ce60c3cdd7fb2ed742944e5d2765a188f269239fee2980aa6223b77b41302d1b6eb7d724e611092f9a2576d0048ac2071b605291abc72c0cf
- languageName: node
- linkType: hard
-
-"possible-typed-array-names@npm:^1.0.0":
- version: 1.1.0
- resolution: "possible-typed-array-names@npm:1.1.0"
- checksum: 10/2f44137b8d3dd35f4a7ba7469eec1cd9cfbb46ec164b93a5bc1f4c3d68599c9910ee3b91da1d28b4560e9cc8414c3cd56fedc07259c67e52cc774476270d3302
- languageName: node
- linkType: hard
-
-"postcss-load-config@npm:^6.0.1":
- version: 6.0.1
- resolution: "postcss-load-config@npm:6.0.1"
- dependencies:
- lilconfig: "npm:^3.1.1"
- peerDependencies:
- jiti: ">=1.21.0"
- postcss: ">=8.0.9"
- tsx: ^4.8.1
- yaml: ^2.4.2
- peerDependenciesMeta:
- jiti:
- optional: true
- postcss:
- optional: true
- tsx:
- optional: true
- yaml:
- optional: true
- checksum: 10/1691cfc94948a9373d4f7b3b7a8500cfaf8cb2dcc2107c14f90f2a711a9892a362b0866894ac5bb723455fa685a15116d9ed3252188689c4502b137c19d6bdc4
- languageName: node
- linkType: hard
-
-"postcss-modules-extract-imports@npm:^3.1.0":
- version: 3.1.0
- resolution: "postcss-modules-extract-imports@npm:3.1.0"
- peerDependencies:
- postcss: ^8.1.0
- checksum: 10/00bfd3aff045fc13ded8e3bbfd8dfc73eff9a9708db1b2a132266aef6544c8d2aee7a5d7e021885f6f9bbd5565a9a9ab52990316e21ad9468a2534f87df8e849
- languageName: node
- linkType: hard
-
-"postcss-modules-local-by-default@npm:^4.0.5":
- version: 4.2.0
- resolution: "postcss-modules-local-by-default@npm:4.2.0"
- dependencies:
- icss-utils: "npm:^5.0.0"
- postcss-selector-parser: "npm:^7.0.0"
- postcss-value-parser: "npm:^4.1.0"
- peerDependencies:
- postcss: ^8.1.0
- checksum: 10/552329aa39fbf229b8ac5a04f8aed0b1553e7a3c10b165ee700d1deb020c071875b3df7ab5e3591f6af33d461df66d330ec9c1256229e45fc618a47c60f41536
- languageName: node
- linkType: hard
-
-"postcss-modules-scope@npm:^3.2.0":
- version: 3.2.1
- resolution: "postcss-modules-scope@npm:3.2.1"
- dependencies:
- postcss-selector-parser: "npm:^7.0.0"
- peerDependencies:
- postcss: ^8.1.0
- checksum: 10/51c747fa15cedf1b2856da472985ea7a7bb510a63daf30f95f250f34fce9e28ef69b802e6cc03f9c01f69043d171bc33279109a9235847c2d3a75c44eac67334
- languageName: node
- linkType: hard
-
-"postcss-modules-values@npm:^4.0.0":
- version: 4.0.0
- resolution: "postcss-modules-values@npm:4.0.0"
- dependencies:
- icss-utils: "npm:^5.0.0"
- peerDependencies:
- postcss: ^8.1.0
- checksum: 10/18021961a494e69e65da9e42b4436144c9ecee65845c9bfeff2b7a26ea73d60762f69e288be8bb645447965b8fd6b26a264771136810dc0172bd31b940aee4f2
- languageName: node
- linkType: hard
-
-"postcss-selector-parser@npm:^7.0.0":
- version: 7.1.1
- resolution: "postcss-selector-parser@npm:7.1.1"
- dependencies:
- cssesc: "npm:^3.0.0"
- util-deprecate: "npm:^1.0.2"
- checksum: 10/bb3c6455b20af26a556e3021e21101d8470252644e673c1612f7348ff8dd41b11321329f0694cf299b5b94863f823480b72d3e2f4bd3a89dc43e2d8c0dbad341
- languageName: node
- linkType: hard
-
-"postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0":
- version: 4.2.0
- resolution: "postcss-value-parser@npm:4.2.0"
- checksum: 10/e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62
- languageName: node
- linkType: hard
-
-"postcss-values-parser@npm:^2.0.1":
- version: 2.0.1
- resolution: "postcss-values-parser@npm:2.0.1"
- dependencies:
- flatten: "npm:^1.0.2"
- indexes-of: "npm:^1.0.1"
- uniq: "npm:^1.0.1"
- checksum: 10/f69211656b90a9d2f5efb1ec4a9e5f076f968b0c1169bfddc16aa0dce2e3a2853d7875e4d8058652e9b65d084fab93bfee8da389f6a2145ac547ee9ab0a03456
- languageName: node
- linkType: hard
-
-"postcss-values-parser@npm:^6.0.2":
- version: 6.0.2
- resolution: "postcss-values-parser@npm:6.0.2"
- dependencies:
- color-name: "npm:^1.1.4"
- is-url-superb: "npm:^4.0.0"
- quote-unquote: "npm:^1.0.0"
- peerDependencies:
- postcss: ^8.2.9
- checksum: 10/ff2fa096896f1c33f7531e814b8d01e785bd99d672c1597d5c5d8c2409b30b8146be6565f6269c952d1f03d626f00ae3f1afb8308cc772c08b323abee23c9a42
- languageName: node
- linkType: hard
-
-"postcss@npm:8.4.49":
- version: 8.4.49
- resolution: "postcss@npm:8.4.49"
- dependencies:
- nanoid: "npm:^3.3.7"
- picocolors: "npm:^1.1.1"
- source-map-js: "npm:^1.2.1"
- checksum: 10/28fe1005b1339870e0a5006375ba5ac1213fd69800f79e7db09c398e074421ba6e162898e94f64942fed554037fd292db3811d87835d25ab5ef7f3c9daacb6ca
- languageName: node
- linkType: hard
-
-"postcss@npm:^8.1.7, postcss@npm:^8.4.23, postcss@npm:^8.4.33":
- version: 8.5.6
- resolution: "postcss@npm:8.5.6"
- dependencies:
- nanoid: "npm:^3.3.11"
- picocolors: "npm:^1.1.1"
- source-map-js: "npm:^1.2.1"
- checksum: 10/9e4fbe97574091e9736d0e82a591e29aa100a0bf60276a926308f8c57249698935f35c5d2f4e80de778d0cbb8dcffab4f383d85fd50c5649aca421c3df729b86
- languageName: node
- linkType: hard
-
-"prebuild-install@npm:^7.1.1":
- version: 7.1.3
- resolution: "prebuild-install@npm:7.1.3"
- dependencies:
- detect-libc: "npm:^2.0.0"
- expand-template: "npm:^2.0.3"
- github-from-package: "npm:0.0.0"
- minimist: "npm:^1.2.3"
- mkdirp-classic: "npm:^0.5.3"
- napi-build-utils: "npm:^2.0.0"
- node-abi: "npm:^3.3.0"
- pump: "npm:^3.0.0"
- rc: "npm:^1.2.7"
- simple-get: "npm:^4.0.0"
- tar-fs: "npm:^2.0.0"
- tunnel-agent: "npm:^0.6.0"
- bin:
- prebuild-install: bin.js
- checksum: 10/1b7e4c00d2750b532a4fc2a83ffb0c5fefa1b6f2ad071896ead15eeadc3255f5babd816949991af083cf7429e375ae8c7d1c51f73658559da36f948a020a3a11
- languageName: node
- linkType: hard
-
-"precinct@npm:^8.1.0":
- version: 8.3.1
- resolution: "precinct@npm:8.3.1"
- dependencies:
- commander: "npm:^2.20.3"
- debug: "npm:^4.3.3"
- detective-amd: "npm:^3.1.0"
- detective-cjs: "npm:^3.1.1"
- detective-es6: "npm:^2.2.1"
- detective-less: "npm:^1.0.2"
- detective-postcss: "npm:^4.0.0"
- detective-sass: "npm:^3.0.1"
- detective-scss: "npm:^2.0.1"
- detective-stylus: "npm:^1.0.0"
- detective-typescript: "npm:^7.0.0"
- module-definition: "npm:^3.3.1"
- node-source-walk: "npm:^4.2.0"
- bin:
- precinct: bin/cli.js
- checksum: 10/46ec2cd2e8af5386b1b0bf47fb264b288be39895dc6e33b9537d795d57c7b0a97f349c217edfa0bf584fef1031b4b0a5b30d1ad74fbe9833644adad6e325bc9e
- languageName: node
- linkType: hard
-
-"precinct@npm:^9.0.0":
- version: 9.2.1
- resolution: "precinct@npm:9.2.1"
- dependencies:
- "@dependents/detective-less": "npm:^3.0.1"
- commander: "npm:^9.5.0"
- detective-amd: "npm:^4.1.0"
- detective-cjs: "npm:^4.1.0"
- detective-es6: "npm:^3.0.1"
- detective-postcss: "npm:^6.1.1"
- detective-sass: "npm:^4.1.1"
- detective-scss: "npm:^3.0.1"
- detective-stylus: "npm:^3.0.0"
- detective-typescript: "npm:^9.1.1"
- module-definition: "npm:^4.1.0"
- node-source-walk: "npm:^5.0.1"
- bin:
- precinct: bin/cli.js
- checksum: 10/f208d2e3c5d7c7b3834f70f761d0255680f76268d3835cd498006bc5dafa602aaecda0b2e68868ed679ec330fddaee0b662ba862d6eacd7282760dc0bc5f1b35
- languageName: node
- linkType: hard
-
-"prelude-ls@npm:^1.2.1":
- version: 1.2.1
- resolution: "prelude-ls@npm:1.2.1"
- checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed
- languageName: node
- linkType: hard
-
-"prepend-http@npm:^2.0.0":
- version: 2.0.0
- resolution: "prepend-http@npm:2.0.0"
- checksum: 10/7694a9525405447662c1ffd352fcb41b6410c705b739b6f4e3a3e21cf5fdede8377890088e8934436b8b17ba55365a615f153960f30877bf0d0392f9e93503ea
- languageName: node
- linkType: hard
-
-"pretty-error@npm:^4.0.0":
- version: 4.0.0
- resolution: "pretty-error@npm:4.0.0"
- dependencies:
- lodash: "npm:^4.17.20"
- renderkid: "npm:^3.0.0"
- checksum: 10/0212ad8742f8bb6f412f95b07d7f6874c55514ac4384f4f7de0defe77e767cca99f667c2316529f62a041fa654194a99c1ee7e321e1b7f794b5cc700777634d6
- languageName: node
- linkType: hard
-
-"pretty-format@npm:30.2.0, pretty-format@npm:^30.0.0":
- version: 30.2.0
- resolution: "pretty-format@npm:30.2.0"
- dependencies:
- "@jest/schemas": "npm:30.0.5"
- ansi-styles: "npm:^5.2.0"
- react-is: "npm:^18.3.1"
- checksum: 10/725890d648e3400575eebc99a334a4cd1498e0d36746313913706bbeea20ada27e17c184a3cd45c50f705c16111afa829f3450233fc0fda5eed293c69757e926
- languageName: node
- linkType: hard
-
-"pretty-format@npm:^27.0.2":
- version: 27.5.1
- resolution: "pretty-format@npm:27.5.1"
- dependencies:
- ansi-regex: "npm:^5.0.1"
- ansi-styles: "npm:^5.0.0"
- react-is: "npm:^17.0.1"
- checksum: 10/248990cbef9e96fb36a3e1ae6b903c551ca4ddd733f8d0912b9cc5141d3d0b3f9f8dfb4d799fb1c6723382c9c2083ffbfa4ad43ff9a0e7535d32d41fd5f01da6
- languageName: node
- linkType: hard
-
-"pretty-ms@npm:^7.0.1":
- version: 7.0.1
- resolution: "pretty-ms@npm:7.0.1"
- dependencies:
- parse-ms: "npm:^2.1.0"
- checksum: 10/a39aac23cc7dae7a94c70518ab8b6c6db0894a7b84c81ee7abc8778c5ec8bae2d1e71ba991ff641732b38433724bfbdbb37bd3a00418637f797c072e06fe8b4c
- languageName: node
- linkType: hard
-
-"prismjs@npm:^1.14.0":
- version: 1.30.0
- resolution: "prismjs@npm:1.30.0"
- checksum: 10/6b48a2439a82e5c6882f48ebc1564c3890e16463ba17ac10c3ad4f62d98dea5b5c915b172b63b83023a70ad4f5d7be3e8a60304420db34a161fae69dd4e3e2da
- languageName: node
- linkType: hard
-
-"private@npm:^0.1.6, private@npm:~0.1.5":
- version: 0.1.8
- resolution: "private@npm:0.1.8"
- checksum: 10/192ce0764e1708a40e42ad3b679c8553c275e4ee9d5dcfdf3de99b01d43a6ee3047f0d293e892c003276cde3829f0548e60f77fa49e2e51b380939e662794a1e
- languageName: node
- linkType: hard
-
-"proc-log@npm:^6.0.0":
- version: 6.1.0
- resolution: "proc-log@npm:6.1.0"
- checksum: 10/9033f30f168ed5a0991b773d0c50ff88384c4738e9a0a67d341de36bf7293771eed648ab6a0562f62276da12fde91f3bbfc75ffff6e71ad49aafd74fc646be66
- languageName: node
- linkType: hard
-
-"process-nextick-args@npm:~2.0.0":
- version: 2.0.1
- resolution: "process-nextick-args@npm:2.0.1"
- checksum: 10/1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf
- languageName: node
- linkType: hard
-
-"process-warning@npm:^5.0.0":
- version: 5.0.0
- resolution: "process-warning@npm:5.0.0"
- checksum: 10/10f3e00ac9fc1943ec4566ff41fff2b964e660f853c283e622257719839d340b4616e707d62a02d6aa0038761bb1fa7c56bc7308d602d51bd96f05f9cd305dcd
- languageName: node
- linkType: hard
-
-"process@npm:^0.11.10":
- version: 0.11.10
- resolution: "process@npm:0.11.10"
- checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b
- languageName: node
- linkType: hard
-
-"progress-events@npm:^1.0.0":
- version: 1.0.1
- resolution: "progress-events@npm:1.0.1"
- checksum: 10/21e8ba984e6c6f6764279fabdf7b34d8110c1720757360fc8cad56b1622e67857fe543619652b64cee51a880a2a4a5febdcb4ff86e4c2969ed90048e2264f42f
- languageName: node
- linkType: hard
-
-"progress-stream@npm:^2.0.0":
- version: 2.0.0
- resolution: "progress-stream@npm:2.0.0"
- dependencies:
- speedometer: "npm:~1.0.0"
- through2: "npm:~2.0.3"
- checksum: 10/839f1009f9feb3d14cbb9bef16eebaecf9560af7b7f64003bfb42c4db1a8e52b32d6bb5a14299a38522046c26bac1bbad1a99eec6fb8fc42b1d4ed3f21f22a41
- languageName: node
- linkType: hard
-
-"progress@npm:^2.0.3":
- version: 2.0.3
- resolution: "progress@npm:2.0.3"
- checksum: 10/e6f0bcb71f716eee9dfac0fe8a2606e3704d6a64dd93baaf49fbadbc8499989a610fe14cf1bc6f61b6d6653c49408d94f4a94e124538084efd8e4cf525e0293d
- languageName: node
- linkType: hard
-
-"promise-retry@npm:^2.0.1":
- version: 2.0.1
- resolution: "promise-retry@npm:2.0.1"
- dependencies:
- err-code: "npm:^2.0.2"
- retry: "npm:^0.12.0"
- checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4
- languageName: node
- linkType: hard
-
-"prop-types@npm:^15.6.1, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
- version: 15.8.1
- resolution: "prop-types@npm:15.8.1"
- dependencies:
- loose-envify: "npm:^1.4.0"
- object-assign: "npm:^4.1.1"
- react-is: "npm:^16.13.1"
- checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0
- languageName: node
- linkType: hard
-
-"propagate@npm:^2.0.0":
- version: 2.0.1
- resolution: "propagate@npm:2.0.1"
- checksum: 10/8c761c16e8232f82f6d015d3e01e8bd4109f47ad804f904d950f6fe319813b448ca112246b6bfdc182b400424b155b0b7c4525a9bb009e6fa950200157569c14
- languageName: node
- linkType: hard
-
-"proper-lockfile@npm:^4.1.2":
- version: 4.1.2
- resolution: "proper-lockfile@npm:4.1.2"
- dependencies:
- graceful-fs: "npm:^4.2.4"
- retry: "npm:^0.12.0"
- signal-exit: "npm:^3.0.2"
- checksum: 10/000a4875f543f591872b36ca94531af8a6463ddb0174f41c0b004d19e231d7445268b422ff1ea595e43d238655c702250cd3d27f408e7b9d97b56f1533ba26bf
- languageName: node
- linkType: hard
-
-"properties-reader@npm:^2.3.0":
- version: 2.3.0
- resolution: "properties-reader@npm:2.3.0"
- dependencies:
- mkdirp: "npm:^1.0.4"
- checksum: 10/0b41eb4136dc278ae0d97968ccce8de2d48d321655b319192e31f2424f1c6e052182204671e65aa8967216360cb3e7cbd9129830062e058fe9d6a1d74964c29a
- languageName: node
- linkType: hard
-
-"property-information@npm:^7.0.0":
- version: 7.1.0
- resolution: "property-information@npm:7.1.0"
- checksum: 10/896d38a52ad7170de73f832d277c69e76a9605d941ebb3f0d6e56271414a7fdf95ff6d2819e68036b8a0c7d2d4d88bf1d4a5765c032cb19c2343567ee3a14b15
- languageName: node
- linkType: hard
-
-"protobufjs@npm:^7.2.5, protobufjs@npm:^7.3.2, protobufjs@npm:^7.5.3":
- version: 7.5.4
- resolution: "protobufjs@npm:7.5.4"
- dependencies:
- "@protobufjs/aspromise": "npm:^1.1.2"
- "@protobufjs/base64": "npm:^1.1.2"
- "@protobufjs/codegen": "npm:^2.0.4"
- "@protobufjs/eventemitter": "npm:^1.1.0"
- "@protobufjs/fetch": "npm:^1.1.0"
- "@protobufjs/float": "npm:^1.0.2"
- "@protobufjs/inquire": "npm:^1.1.0"
- "@protobufjs/path": "npm:^1.1.2"
- "@protobufjs/pool": "npm:^1.1.0"
- "@protobufjs/utf8": "npm:^1.1.0"
- "@types/node": "npm:>=13.7.0"
- long: "npm:^5.0.0"
- checksum: 10/88d677bb6f11a2ecec63fdd053dfe6d31120844d04e865efa9c8fbe0674cd077d6624ecfdf014018a20dcb114ae2a59c1b21966dd8073e920650c71370966439
- languageName: node
- linkType: hard
-
-"proxy-addr@npm:~2.0.7":
- version: 2.0.7
- resolution: "proxy-addr@npm:2.0.7"
- dependencies:
- forwarded: "npm:0.2.0"
- ipaddr.js: "npm:1.9.1"
- checksum: 10/f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68
- languageName: node
- linkType: hard
-
-"proxy-from-env@npm:^1.1.0":
- version: 1.1.0
- resolution: "proxy-from-env@npm:1.1.0"
- checksum: 10/f0bb4a87cfd18f77bc2fba23ae49c3b378fb35143af16cc478171c623eebe181678f09439707ad80081d340d1593cd54a33a0113f3ccb3f4bc9451488780ee23
- languageName: node
- linkType: hard
-
-"psl@npm:^1.1.33":
- version: 1.15.0
- resolution: "psl@npm:1.15.0"
- dependencies:
- punycode: "npm:^2.3.1"
- checksum: 10/5e7467eb5196eb7900d156783d12907d445c0122f76c73203ce96b148a6ccf8c5450cc805887ffada38ff92d634afcf33720c24053cb01d5b6598d1c913c5caf
- languageName: node
- linkType: hard
-
-"public-encrypt@npm:^4.0.3":
- version: 4.0.3
- resolution: "public-encrypt@npm:4.0.3"
- dependencies:
- bn.js: "npm:^4.1.0"
- browserify-rsa: "npm:^4.0.0"
- create-hash: "npm:^1.1.0"
- parse-asn1: "npm:^5.0.0"
- randombytes: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10/059d64da8ba9ea0733377d23b57b6cbe5be663c8eb187b9c051eec85f799ff95c4e194eb3a69db07cc1f73a2a63519e67716ae9b8630e13e7149840d0abe044d
- languageName: node
- linkType: hard
-
-"pump@npm:^3.0.0":
- version: 3.0.3
- resolution: "pump@npm:3.0.3"
- dependencies:
- end-of-stream: "npm:^1.1.0"
- once: "npm:^1.3.1"
- checksum: 10/52843fc933b838c0330f588388115a1b28ef2a5ffa7774709b142e35431e8ab0c2edec90de3fa34ebb72d59fef854f151eea7dfc211b6dcf586b384556bd2f39
- languageName: node
- linkType: hard
-
-"pumpify@npm:^2.0.1":
- version: 2.0.1
- resolution: "pumpify@npm:2.0.1"
- dependencies:
- duplexify: "npm:^4.1.1"
- inherits: "npm:^2.0.3"
- pump: "npm:^3.0.0"
- checksum: 10/54bfdd04a30f459de5f1d1d022dc729e7257748900adf567a3b009f5aefe4a862ca91f3fb272f86c621eae631c4cc41f0efe5ee270752e2f9a90e7e63a9f8570
- languageName: node
- linkType: hard
-
-"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1":
- version: 2.3.1
- resolution: "punycode@npm:2.3.1"
- checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059
- languageName: node
- linkType: hard
-
-"pupa@npm:^2.1.1":
- version: 2.1.1
- resolution: "pupa@npm:2.1.1"
- dependencies:
- escape-goat: "npm:^2.0.0"
- checksum: 10/49529e50372ffdb0cccf0efa0f3b3cb0a2c77805d0d9cc2725bd2a0f6bb414631e61c93a38561b26be1259550b7bb6c2cb92315aa09c8bf93f3bdcb49f2b2fb7
- languageName: node
- linkType: hard
-
-"q@npm:^1.1.2":
- version: 1.5.1
- resolution: "q@npm:1.5.1"
- checksum: 10/70c4a30b300277165cd855889cd3aa681929840a5940413297645c5691e00a3549a2a4153131efdf43fe8277ee8cf5a34c9636dcb649d83ad47f311a015fd380
- languageName: node
- linkType: hard
-
-"qrcode-generator@npm:^1.4.4":
- version: 1.5.2
- resolution: "qrcode-generator@npm:1.5.2"
- checksum: 10/79a8d466227922cd066364a5d0e58b78f45051463594159f95987f7e8925d6e2c67ec776d38eaeda74d3e4d95ea79c74c4261b6bc19790f55b3d562888765d71
- languageName: node
- linkType: hard
-
-"qs@npm:~6.14.0":
- version: 6.14.1
- resolution: "qs@npm:6.14.1"
- dependencies:
- side-channel: "npm:^1.1.0"
- checksum: 10/34b5ab00a910df432d55180ef39c1d1375e550f098b5ec153b41787f1a6a6d7e5f9495593c3b112b77dbc6709d0ae18e55b82847a4c2bbbb0de1e8ccbb1794c5
- languageName: node
- linkType: hard
-
-"query-string@npm:^8.1.0":
- version: 8.2.0
- resolution: "query-string@npm:8.2.0"
- dependencies:
- decode-uri-component: "npm:^0.4.1"
- filter-obj: "npm:^5.1.0"
- split-on-first: "npm:^3.0.0"
- checksum: 10/a9a6d4aafd3444d67d5766c658cb0d64ea5a87fec683538deb1f95446089d1660c75c9accbb030ba384ab6d329bdffbb367279e55cc880c56789678e0a55dd9b
- languageName: node
- linkType: hard
-
-"querystringify@npm:^2.1.1":
- version: 2.2.0
- resolution: "querystringify@npm:2.2.0"
- checksum: 10/46ab16f252fd892fc29d6af60966d338cdfeea68a231e9457631ffd22d67cec1e00141e0a5236a2eb16c0d7d74175d9ec1d6f963660c6f2b1c2fc85b194c5680
- languageName: node
- linkType: hard
-
-"queue-microtask@npm:^1.2.2":
- version: 1.2.3
- resolution: "queue-microtask@npm:1.2.3"
- checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b
- languageName: node
- linkType: hard
-
-"quick-format-unescaped@npm:^4.0.3":
- version: 4.0.4
- resolution: "quick-format-unescaped@npm:4.0.4"
- checksum: 10/591eca457509a99368b623db05248c1193aa3cedafc9a077d7acab09495db1231017ba3ad1b5386e5633271edd0a03b312d8640a59ee585b8516a42e15438aa7
- languageName: node
- linkType: hard
-
-"quick-lru@npm:^4.0.1":
- version: 4.0.1
- resolution: "quick-lru@npm:4.0.1"
- checksum: 10/5c7c75f1c696750f619b165cc9957382f919e4207dabf04597a64f0298861391cdc5ee91a1dde1a5d460ecf7ee1af7fc36fef6d155bef2be66f05d43fd63d4f0
- languageName: node
- linkType: hard
-
-"quick-lru@npm:^5.1.1":
- version: 5.1.1
- resolution: "quick-lru@npm:5.1.1"
- checksum: 10/a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed
- languageName: node
- linkType: hard
-
-"quote-unquote@npm:^1.0.0":
- version: 1.0.0
- resolution: "quote-unquote@npm:1.0.0"
- checksum: 10/955a2ead534f5b6a3f8d4dc5a4b95ac6468213d3fb11f8c1592a0a56345c45a3d14d5ca04d3de2bc9891493fcac38c03dfa91c48a6159aef50124e9c5afcea49
- languageName: node
- linkType: hard
-
-"raf-schd@npm:^4.0.2":
- version: 4.0.3
- resolution: "raf-schd@npm:4.0.3"
- checksum: 10/45514041c5ad31fa96aef3bb3c572a843b92da2f2cd1cb4a47c9ad58e48761d3a4126e18daa32b2bfa0bc2551a42d8f324a0e40e536cb656969929602b4e8b58
- languageName: node
- linkType: hard
-
-"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0":
- version: 2.1.0
- resolution: "randombytes@npm:2.1.0"
- dependencies:
- safe-buffer: "npm:^5.1.0"
- checksum: 10/4efd1ad3d88db77c2d16588dc54c2b52fd2461e70fe5724611f38d283857094fe09040fa2c9776366803c3152cf133171b452ef717592b65631ce5dc3a2bdafc
- languageName: node
- linkType: hard
-
-"randomfill@npm:^1.0.4":
- version: 1.0.4
- resolution: "randomfill@npm:1.0.4"
- dependencies:
- randombytes: "npm:^2.0.5"
- safe-buffer: "npm:^5.1.0"
- checksum: 10/33734bb578a868d29ee1b8555e21a36711db084065d94e019a6d03caa67debef8d6a1bfd06a2b597e32901ddc761ab483a85393f0d9a75838f1912461d4dbfc7
- languageName: node
- linkType: hard
-
-"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1":
- version: 1.2.1
- resolution: "range-parser@npm:1.2.1"
- checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26
- languageName: node
- linkType: hard
-
-"raw-body@npm:~2.5.3":
- version: 2.5.3
- resolution: "raw-body@npm:2.5.3"
- dependencies:
- bytes: "npm:~3.1.2"
- http-errors: "npm:~2.0.1"
- iconv-lite: "npm:~0.4.24"
- unpipe: "npm:~1.0.0"
- checksum: 10/f35759fe5a6548e7c529121ead1de4dd163f899749a5896c42e278479df2d9d7f98b5bb17312737c03617765e5a1433e586f717616e5cfbebc13b4738b820601
- languageName: node
- linkType: hard
-
-"rc@npm:1.2.8, rc@npm:^1.2.7, rc@npm:^1.2.8":
- version: 1.2.8
- resolution: "rc@npm:1.2.8"
- dependencies:
- deep-extend: "npm:^0.6.0"
- ini: "npm:~1.3.0"
- minimist: "npm:^1.2.0"
- strip-json-comments: "npm:~2.0.1"
- bin:
- rc: ./cli.js
- checksum: 10/5c4d72ae7eec44357171585938c85ce066da8ca79146b5635baf3d55d74584c92575fa4e2c9eac03efbed3b46a0b2e7c30634c012b4b4fa40d654353d3c163eb
- languageName: node
- linkType: hard
-
-"react-beautiful-dnd@npm:^13.1.1":
- version: 13.1.1
- resolution: "react-beautiful-dnd@npm:13.1.1"
- dependencies:
- "@babel/runtime": "npm:^7.9.2"
- css-box-model: "npm:^1.2.0"
- memoize-one: "npm:^5.1.1"
- raf-schd: "npm:^4.0.2"
- react-redux: "npm:^7.2.0"
- redux: "npm:^4.0.4"
- use-memo-one: "npm:^1.1.1"
- peerDependencies:
- react: ^16.8.5 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0
- checksum: 10/2de8162a74f7fc78294e5a928b92d3fff02c579d137a25d53b1ab4313abeb108709bb7281512f7f94d18257de3122b8c85cb5a8375113cb8657088b1a9bda65b
- languageName: node
- linkType: hard
-
-"react-chartjs-2@npm:^5.2.0":
- version: 5.3.1
- resolution: "react-chartjs-2@npm:5.3.1"
- peerDependencies:
- chart.js: ^4.1.1
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- checksum: 10/889f17ac70806d13135357b0d858ec862b53783bf70ccdffd15f6d03f1a92dae5f02b5e14644136ef5df2bc2a63401642dc0a73b694f568be4f7fbcdf3a58665
- languageName: node
- linkType: hard
-
-"react-copy-to-clipboard@npm:^5.1.0":
- version: 5.1.0
- resolution: "react-copy-to-clipboard@npm:5.1.0"
- dependencies:
- copy-to-clipboard: "npm:^3.3.1"
- prop-types: "npm:^15.8.1"
- peerDependencies:
- react: ^15.3.0 || 16 || 17 || 18
- checksum: 10/56a8b11a268a19d4e4ec409327f1c17d68c4f13a54330b9c0e3271acb44bb6886b72e04d77399c9945968851e8532dd192bbccffd1b2f8b010f4bb47e5743b3b
- languageName: node
- linkType: hard
-
-"react-dom@npm:^18.2.0":
- version: 18.3.1
- resolution: "react-dom@npm:18.3.1"
- dependencies:
- loose-envify: "npm:^1.1.0"
- scheduler: "npm:^0.23.2"
- peerDependencies:
- react: ^18.3.1
- checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81
- languageName: node
- linkType: hard
-
-"react-dropzone@npm:^14.2.3":
- version: 14.3.8
- resolution: "react-dropzone@npm:14.3.8"
- dependencies:
- attr-accept: "npm:^2.2.4"
- file-selector: "npm:^2.1.0"
- prop-types: "npm:^15.8.1"
- peerDependencies:
- react: ">= 16.8 || 18.0.0"
- checksum: 10/31d5089c2acb4528a279761473a00a1c148b78ae41a6ac49ed09ee94f1d44595437188308ec838debfa0d08082893b170dc072e680aca00469793a05d61b07f2
- languageName: node
- linkType: hard
-
-"react-i18next@npm:^13.5.0":
- version: 13.5.0
- resolution: "react-i18next@npm:13.5.0"
- dependencies:
- "@babel/runtime": "npm:^7.22.5"
- html-parse-stringify: "npm:^3.0.1"
- peerDependencies:
- i18next: ">= 23.2.3"
- react: ">= 16.8.0"
- peerDependenciesMeta:
- react-dom:
- optional: true
- react-native:
- optional: true
- checksum: 10/903b486d112cd0aa40bdc3afaefd0c32b91c0a1e3e3561367c8d91ddc0fbad9945f1d630c3ddcd4764795fc00e0887252e2d337256a825caf3a86de038f6b2db
- languageName: node
- linkType: hard
-
-"react-is@npm:^16.13.1, react-is@npm:^16.6.3, react-is@npm:^16.7.0, react-is@npm:^16.8.6":
- version: 16.13.1
- resolution: "react-is@npm:16.13.1"
- checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf
- languageName: node
- linkType: hard
-
-"react-is@npm:^17.0.1, react-is@npm:^17.0.2":
- version: 17.0.2
- resolution: "react-is@npm:17.0.2"
- checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05
- languageName: node
- linkType: hard
-
-"react-is@npm:^18.2.0, react-is@npm:^18.3.1":
- version: 18.3.1
- resolution: "react-is@npm:18.3.1"
- checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22
- languageName: node
- linkType: hard
-
-"react-markdown@npm:^9.0.1":
- version: 9.1.0
- resolution: "react-markdown@npm:9.1.0"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- "@types/mdast": "npm:^4.0.0"
- devlop: "npm:^1.0.0"
- hast-util-to-jsx-runtime: "npm:^2.0.0"
- html-url-attributes: "npm:^3.0.0"
- mdast-util-to-hast: "npm:^13.0.0"
- remark-parse: "npm:^11.0.0"
- remark-rehype: "npm:^11.0.0"
- unified: "npm:^11.0.0"
- unist-util-visit: "npm:^5.0.0"
- vfile: "npm:^6.0.0"
- peerDependencies:
- "@types/react": ">=18"
- react: ">=18"
- checksum: 10/07045797b926afafc6aff692c9ee7d1cb9b12bc0e2d2b9f22ab17f2d1036dd807034a58565d67cfcfe94fe43961452a977496a175cbc9028ed51f2eec823c2f4
- languageName: node
- linkType: hard
-
-"react-popper@npm:^1.3.4":
- version: 1.3.11
- resolution: "react-popper@npm:1.3.11"
- dependencies:
- "@babel/runtime": "npm:^7.1.2"
- "@hypnosphi/create-react-context": "npm:^0.3.1"
- deep-equal: "npm:^1.1.1"
- popper.js: "npm:^1.14.4"
- prop-types: "npm:^15.6.1"
- typed-styles: "npm:^0.0.7"
- warning: "npm:^4.0.2"
- peerDependencies:
- react: 0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0
- checksum: 10/1f7115da1dd0fdca1fc266d2cefa79ed00eca560f72399a9149e9a8a4bc3e9d9fe4e2955bbbe2e3326607ceb3bd4a971e501fb0d6bbf57bf492c0072ae39c2c6
- languageName: node
- linkType: hard
-
-"react-redux@npm:^7.2.0":
- version: 7.2.9
- resolution: "react-redux@npm:7.2.9"
- dependencies:
- "@babel/runtime": "npm:^7.15.4"
- "@types/react-redux": "npm:^7.1.20"
- hoist-non-react-statics: "npm:^3.3.2"
- loose-envify: "npm:^1.4.0"
- prop-types: "npm:^15.7.2"
- react-is: "npm:^17.0.2"
- peerDependencies:
- react: ^16.8.3 || ^17 || ^18
- peerDependenciesMeta:
- react-dom:
- optional: true
- react-native:
- optional: true
- checksum: 10/1c3018bd2601e6d18339281867910b583dcbb3d8856403086e08c00abf0dfe467a94c0d1356bafa8cdf107bf1e2c9899a28486e4778e85c8bc4dfed2076b116f
- languageName: node
- linkType: hard
-
-"react-router-dom@npm:^6.21.0":
- version: 6.30.3
- resolution: "react-router-dom@npm:6.30.3"
- dependencies:
- "@remix-run/router": "npm:1.23.2"
- react-router: "npm:6.30.3"
- peerDependencies:
- react: ">=16.8"
- react-dom: ">=16.8"
- checksum: 10/db974d801070e9967a076b31edca902e127793e02dc79f364461b94e81846a588c241d72e069f5b586b4a90ffd99798f5cb97753ac9d22fe90afa6dc008ab520
- languageName: node
- linkType: hard
-
-"react-router@npm:6.30.3, react-router@npm:^6.21.0":
- version: 6.30.3
- resolution: "react-router@npm:6.30.3"
- dependencies:
- "@remix-run/router": "npm:1.23.2"
- peerDependencies:
- react: ">=16.8"
- checksum: 10/1a51bdcc42b8d7979228dea8b5c44a28a4add9b681781f75b74f5f920d20058a92ffe5f1d0ba0621f03abe1384b36025b53b402515ecb35f27a6a2f2f25d6fbe
- languageName: node
- linkType: hard
-
-"react-tooltip@npm:^4.5.1":
- version: 4.5.1
- resolution: "react-tooltip@npm:4.5.1"
- dependencies:
- prop-types: "npm:^15.8.1"
- uuid: "npm:^7.0.3"
- peerDependencies:
- react: ">=16.0.0"
- react-dom: ">=16.0.0"
- checksum: 10/a2031d6a9903f18046bb3374a1a23f739fb5ebd272c049772dec9108d5da141f4cf98354970e824d70a83f06aed48cf7e96ab69616ecc0d4e6e8c73cef4b6823
- languageName: node
- linkType: hard
-
-"react@npm:^18.2.0":
- version: 18.3.1
- resolution: "react@npm:18.3.1"
- dependencies:
- loose-envify: "npm:^1.1.0"
- checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf
- languageName: node
- linkType: hard
-
-"read-config-file@npm:6.3.2":
- version: 6.3.2
- resolution: "read-config-file@npm:6.3.2"
- dependencies:
- config-file-ts: "npm:^0.2.4"
- dotenv: "npm:^9.0.2"
- dotenv-expand: "npm:^5.1.0"
- js-yaml: "npm:^4.1.0"
- json5: "npm:^2.2.0"
- lazy-val: "npm:^1.0.4"
- checksum: 10/c3a6444105fc1736d6fa15979d1d18e9f0a1165bf3966f1751af676d153f92df9fc7c07158162b62d222919e561e135bdd6155c6fff79f1ed8b78a5a394a579b
- languageName: node
- linkType: hard
-
-"read-pkg-up@npm:^7.0.0, read-pkg-up@npm:^7.0.1":
- version: 7.0.1
- resolution: "read-pkg-up@npm:7.0.1"
- dependencies:
- find-up: "npm:^4.1.0"
- read-pkg: "npm:^5.2.0"
- type-fest: "npm:^0.8.1"
- checksum: 10/e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44
- languageName: node
- linkType: hard
-
-"read-pkg@npm:^5.2.0":
- version: 5.2.0
- resolution: "read-pkg@npm:5.2.0"
- dependencies:
- "@types/normalize-package-data": "npm:^2.4.0"
- normalize-package-data: "npm:^2.5.0"
- parse-json: "npm:^5.0.0"
- type-fest: "npm:^0.6.0"
- checksum: 10/eb696e60528b29aebe10e499ba93f44991908c57d70f2d26f369e46b8b9afc208ef11b4ba64f67630f31df8b6872129e0a8933c8c53b7b4daf0eace536901222
- languageName: node
- linkType: hard
-
-"read@npm:^1.0.7":
- version: 1.0.7
- resolution: "read@npm:1.0.7"
- dependencies:
- mute-stream: "npm:~0.0.4"
- checksum: 10/2777c254e5732cac96f5d0a1c0f6b836c89ae23d8febd405b206f6f24d5de1873420f1a0795e0e3721066650d19adf802c7882c4027143ee0acf942a4f34f97b
- languageName: node
- linkType: hard
-
-"readable-stream@npm:3, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0":
- version: 3.6.2
- resolution: "readable-stream@npm:3.6.2"
- dependencies:
- inherits: "npm:^2.0.3"
- string_decoder: "npm:^1.1.1"
- util-deprecate: "npm:^1.0.1"
- checksum: 10/d9e3e53193adcdb79d8f10f2a1f6989bd4389f5936c6f8b870e77570853561c362bee69feca2bbb7b32368ce96a85504aa4cedf7cf80f36e6a9de30d64244048
- languageName: node
- linkType: hard
-
-"readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.5, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6":
- version: 2.3.8
- resolution: "readable-stream@npm:2.3.8"
- dependencies:
- core-util-is: "npm:~1.0.0"
- inherits: "npm:~2.0.3"
- isarray: "npm:~1.0.0"
- process-nextick-args: "npm:~2.0.0"
- safe-buffer: "npm:~5.1.1"
- string_decoder: "npm:~1.1.1"
- util-deprecate: "npm:~1.0.1"
- checksum: 10/8500dd3a90e391d6c5d889256d50ec6026c059fadee98ae9aa9b86757d60ac46fff24fafb7a39fa41d54cb39d8be56cc77be202ebd4cd8ffcf4cb226cbaa40d4
- languageName: node
- linkType: hard
-
-"readable-stream@npm:^4.0.0":
- version: 4.7.0
- resolution: "readable-stream@npm:4.7.0"
- dependencies:
- abort-controller: "npm:^3.0.0"
- buffer: "npm:^6.0.3"
- events: "npm:^3.3.0"
- process: "npm:^0.11.10"
- string_decoder: "npm:^1.3.0"
- checksum: 10/bdf096c8ff59452ce5d08f13da9597f9fcfe400b4facfaa88e74ec057e5ad1fdfa140ffe28e5ed806cf4d2055f0b812806e962bca91dce31bc4cef08e53be3a4
- languageName: node
- linkType: hard
-
-"readdir-glob@npm:^1.1.2":
- version: 1.1.3
- resolution: "readdir-glob@npm:1.1.3"
- dependencies:
- minimatch: "npm:^5.1.0"
- checksum: 10/ca3a20aa1e715d671302d4ec785a32bf08e59d6d0dd25d5fc03e9e5a39f8c612cdf809ab3e638a79973db7ad6868492edf38504701e313328e767693671447d6
- languageName: node
- linkType: hard
-
-"readdirp@npm:^4.0.1":
- version: 4.1.2
- resolution: "readdirp@npm:4.1.2"
- checksum: 10/7b817c265940dba90bb9c94d82920d76c3a35ea2d67f9f9d8bd936adcfe02d50c802b14be3dd2e725e002dddbe2cc1c7a0edfb1bc3a365c9dfd5a61e612eea1e
- languageName: node
- linkType: hard
-
-"readdirp@npm:~3.6.0":
- version: 3.6.0
- resolution: "readdirp@npm:3.6.0"
- dependencies:
- picomatch: "npm:^2.2.1"
- checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7
- languageName: node
- linkType: hard
-
-"real-require@npm:^0.2.0":
- version: 0.2.0
- resolution: "real-require@npm:0.2.0"
- checksum: 10/ddf44ee76301c774e9c9f2826da8a3c5c9f8fc87310f4a364e803ef003aa1a43c378b4323051ced212097fff1af459070f4499338b36a7469df1d4f7e8c0ba4c
- languageName: node
- linkType: hard
-
-"recast@npm:^0.11.17":
- version: 0.11.23
- resolution: "recast@npm:0.11.23"
- dependencies:
- ast-types: "npm:0.9.6"
- esprima: "npm:~3.1.0"
- private: "npm:~0.1.5"
- source-map: "npm:~0.5.0"
- checksum: 10/6fedea1612203c2e6a3955593ca62a3e9df0ec7962edb557d5b2200fb1d2168515b032c36f4fa8179a479f13a2a3c17aef189248cf6da9be2e2091e18f55e32d
- languageName: node
- linkType: hard
-
-"rechoir@npm:^0.6.2":
- version: 0.6.2
- resolution: "rechoir@npm:0.6.2"
- dependencies:
- resolve: "npm:^1.1.6"
- checksum: 10/fe76bf9c21875ac16e235defedd7cbd34f333c02a92546142b7911a0f7c7059d2e16f441fe6fb9ae203f459c05a31b2bcf26202896d89e390eda7514d5d2702b
- languageName: node
- linkType: hard
-
-"rechoir@npm:^0.8.0":
- version: 0.8.0
- resolution: "rechoir@npm:0.8.0"
- dependencies:
- resolve: "npm:^1.20.0"
- checksum: 10/ad3caed8afdefbc33fbc30e6d22b86c35b3d51c2005546f4e79bcc03c074df804b3640ad18945e6bef9ed12caedc035655ec1082f64a5e94c849ff939dc0a788
- languageName: node
- linkType: hard
-
-"recursive-fs@npm:^1.1.2":
- version: 1.1.2
- resolution: "recursive-fs@npm:1.1.2"
- bin:
- recursive-copy: ./bin/recursive-copy
- recursive-delete: ./bin/recursive-delete
- checksum: 10/f0226cfe4ec5e5d7759bb4ae16a73ac00c2586637a519cac3e5b742d915d6f007beb7086db1a2acad10976bf36ba871240faf385233af60d83cfdb50fce65df3
- languageName: node
- linkType: hard
-
-"redent@npm:^3.0.0":
- version: 3.0.0
- resolution: "redent@npm:3.0.0"
- dependencies:
- indent-string: "npm:^4.0.0"
- strip-indent: "npm:^3.0.0"
- checksum: 10/fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b
- languageName: node
- linkType: hard
-
-"redux@npm:^4.0.0, redux@npm:^4.0.4":
- version: 4.2.1
- resolution: "redux@npm:4.2.1"
- dependencies:
- "@babel/runtime": "npm:^7.9.2"
- checksum: 10/371e4833b671193303a7dea7803c8fdc8e0d566740c78f580e0a3b77b4161da25037626900a2205a5d616117fa6ad09a4232e5a110bd437186b5c6355a041750
- languageName: node
- linkType: hard
-
-"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9":
- version: 1.0.10
- resolution: "reflect.getprototypeof@npm:1.0.10"
- dependencies:
- call-bind: "npm:^1.0.8"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.9"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.0.0"
- get-intrinsic: "npm:^1.2.7"
- get-proto: "npm:^1.0.1"
- which-builtin-type: "npm:^1.2.1"
- checksum: 10/80a4e2be716f4fe46a89a08ccad0863b47e8ce0f49616cab2d65dab0fbd53c6fdba0f52935fd41d37a2e4e22355c272004f920d63070de849f66eea7aeb4a081
- languageName: node
- linkType: hard
-
-"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4":
- version: 1.5.4
- resolution: "regexp.prototype.flags@npm:1.5.4"
- dependencies:
- call-bind: "npm:^1.0.8"
- define-properties: "npm:^1.2.1"
- es-errors: "npm:^1.3.0"
- get-proto: "npm:^1.0.1"
- gopd: "npm:^1.2.0"
- set-function-name: "npm:^2.0.2"
- checksum: 10/8ab897ca445968e0b96f6237641510f3243e59c180ee2ee8d83889c52ff735dd1bf3657fcd36db053e35e1d823dd53f2565d0b8021ea282c9fe62401c6c3bd6d
- languageName: node
- linkType: hard
-
-"registry-auth-token@npm:^4.0.0":
- version: 4.2.2
- resolution: "registry-auth-token@npm:4.2.2"
- dependencies:
- rc: "npm:1.2.8"
- checksum: 10/00d1b1c69f09df52a0bfbaecee71f2ba094d8fd8d1abc325090655b2c6c8a69c969b31525086c10f95126c3452cd4a0c5c9a6832fb08bec5a32a4e224b790cf8
- languageName: node
- linkType: hard
-
-"registry-url@npm:^5.0.0":
- version: 5.1.0
- resolution: "registry-url@npm:5.1.0"
- dependencies:
- rc: "npm:^1.2.8"
- checksum: 10/bcea86c84a0dbb66467b53187fadebfea79017cddfb4a45cf27530d7275e49082fe9f44301976eb0164c438e395684bcf3dae4819b36ff9d1640d8cc60c73df9
- languageName: node
- linkType: hard
-
-"rehype-raw@npm:^7.0.0":
- version: 7.0.0
- resolution: "rehype-raw@npm:7.0.0"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- hast-util-raw: "npm:^9.0.0"
- vfile: "npm:^6.0.0"
- checksum: 10/65dd5809f95410ca5056efe50f5b16cb08a69c0785c6d4ec80c9280487efbaec81d342084f6cfdca5624134c1c4018705d97c37b5c0a21d9625ed8a3c88700f1
- languageName: node
- linkType: hard
-
-"relateurl@npm:^0.2.7":
- version: 0.2.7
- resolution: "relateurl@npm:0.2.7"
- checksum: 10/f5d6ba58f2a5d5076389090600c243a0ba7072bcf347490a09e4241e2427ccdb260b4e22cea7be4f1fcd3c2bf05908b1e0d0bc9605e3199d4ecf37af1d5681fa
- languageName: node
- linkType: hard
-
-"remark-parse@npm:^11.0.0":
- version: 11.0.0
- resolution: "remark-parse@npm:11.0.0"
- dependencies:
- "@types/mdast": "npm:^4.0.0"
- mdast-util-from-markdown: "npm:^2.0.0"
- micromark-util-types: "npm:^2.0.0"
- unified: "npm:^11.0.0"
- checksum: 10/59d584be56ebc7c05524989c4ed86eb8a7b6e361942b705ca13a37349f60740a6073aedf7783af46ce920d09dd156148942d5e33e8be3dbcd47f818cb4bc410c
- languageName: node
- linkType: hard
-
-"remark-rehype@npm:^11.0.0":
- version: 11.1.2
- resolution: "remark-rehype@npm:11.1.2"
- dependencies:
- "@types/hast": "npm:^3.0.0"
- "@types/mdast": "npm:^4.0.0"
- mdast-util-to-hast: "npm:^13.0.0"
- unified: "npm:^11.0.0"
- vfile: "npm:^6.0.0"
- checksum: 10/b5374a0bf08398431c92740d0cd9b20aea9df44cee12326820ddcc1b7ee642706604006461ea9799554c347e7caf31e7432132a03b97c508e1f77d29c423bd86
- languageName: node
- linkType: hard
-
-"remove-markdown@npm:^0.5.0":
- version: 0.5.5
- resolution: "remove-markdown@npm:0.5.5"
- checksum: 10/0cb77c70ea64565ee9cfcb2f447782a02ef27885b8d131c027064f6313f9770da4ec837c53c9461cec7a13c4df50078b2544e89655bd6d4a98d50571df84c38f
- languageName: node
- linkType: hard
-
-"remove-trailing-separator@npm:^1.1.0":
- version: 1.1.0
- resolution: "remove-trailing-separator@npm:1.1.0"
- checksum: 10/d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419
- languageName: node
- linkType: hard
-
-"renderkid@npm:^3.0.0":
- version: 3.0.0
- resolution: "renderkid@npm:3.0.0"
- dependencies:
- css-select: "npm:^4.1.3"
- dom-converter: "npm:^0.2.0"
- htmlparser2: "npm:^6.1.0"
- lodash: "npm:^4.17.21"
- strip-ansi: "npm:^6.0.1"
- checksum: 10/434bd56d9930dd344bcba3ef7683f3dd893396b6bc7e8caa551a4cacbe75a9466dc6cf3d75bc324a5979278a73ef968d7854f8f660dbf1a52c38a73f1fb59b20
- languageName: node
- linkType: hard
-
-"replace-ext@npm:^2.0.0":
- version: 2.0.0
- resolution: "replace-ext@npm:2.0.0"
- checksum: 10/ed640ac90d24cce4be977642847d138908d430049cc097633be33b072143515cc7d29699675a0c35f6dc3c3c73cb529ed352d59649cf15931740eb31ae083c1e
- languageName: node
- linkType: hard
-
-"require-directory@npm:^2.1.1":
- version: 2.1.1
- resolution: "require-directory@npm:2.1.1"
- checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf
- languageName: node
- linkType: hard
-
-"require-from-string@npm:^2.0.2":
- version: 2.0.2
- resolution: "require-from-string@npm:2.0.2"
- checksum: 10/839a3a890102a658f4cb3e7b2aa13a1f80a3a976b512020c3d1efc418491c48a886b6e481ea56afc6c4cb5eef678f23b2a4e70575e7534eccadf5e30ed2e56eb
- languageName: node
- linkType: hard
-
-"requirejs-config-file@npm:^4.0.0":
- version: 4.0.0
- resolution: "requirejs-config-file@npm:4.0.0"
- dependencies:
- esprima: "npm:^4.0.0"
- stringify-object: "npm:^3.2.1"
- checksum: 10/9fc55813ca8627cc4d3704622702b6b119a222c97825fc61459727d5f9ef9435e4fd34ee03335dc119c66e834d7963fdfe43d9a4df99448d43219587c624ba4e
- languageName: node
- linkType: hard
-
-"requirejs@npm:^2.3.5":
- version: 2.3.8
- resolution: "requirejs@npm:2.3.8"
- bin:
- r.js: bin/r.js
- r_js: bin/r.js
- checksum: 10/7ac26361aecd819abab6a88d0a09beb2e1bb402050bce2ae1c6d5826bfa932c1cc7ab523a8e9bb2cc60c961da4df4ffdaba7e46bae10b12147368f7957a8f280
- languageName: node
- linkType: hard
-
-"requires-port@npm:^1.0.0":
- version: 1.0.0
- resolution: "requires-port@npm:1.0.0"
- checksum: 10/878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20
- languageName: node
- linkType: hard
-
-"resolve-alpn@npm:^1.0.0":
- version: 1.2.1
- resolution: "resolve-alpn@npm:1.2.1"
- checksum: 10/744e87888f0b6fa0b256ab454ca0b9c0b80808715e2ef1f3672773665c92a941f6181194e30ccae4a8cd0adbe0d955d3f133102636d2ee0cca0119fec0bc9aec
- languageName: node
- linkType: hard
-
-"resolve-cwd@npm:^3.0.0":
- version: 3.0.0
- resolution: "resolve-cwd@npm:3.0.0"
- dependencies:
- resolve-from: "npm:^5.0.0"
- checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81
- languageName: node
- linkType: hard
-
-"resolve-dependency-path@npm:^2.0.0":
- version: 2.0.0
- resolution: "resolve-dependency-path@npm:2.0.0"
- checksum: 10/f7511412546276473bbe0182730baf9bda08a437425f817b1d944ecac4c0a137129c544bf60ca5928b1b89f7124855408c257a12e1b604ebbffeb997bbb81a65
- languageName: node
- linkType: hard
-
-"resolve-from@npm:^4.0.0":
- version: 4.0.0
- resolution: "resolve-from@npm:4.0.0"
- checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3
- languageName: node
- linkType: hard
-
-"resolve-from@npm:^5.0.0":
- version: 5.0.0
- resolution: "resolve-from@npm:5.0.0"
- checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23
- languageName: node
- linkType: hard
-
-"resolve-options@npm:^2.0.0":
- version: 2.0.0
- resolution: "resolve-options@npm:2.0.0"
- dependencies:
- value-or-function: "npm:^4.0.0"
- checksum: 10/b28584cc089099af42e36292c32bd9af8bc9e28e3ca73c172c0a172d7ed5afb01c75cc2275268c327dceba77a5555b33fbd55617be138874040279fe6ff02fbf
- languageName: node
- linkType: hard
-
-"resolve-pkg-maps@npm:^1.0.0":
- version: 1.0.0
- resolution: "resolve-pkg-maps@npm:1.0.0"
- checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e
- languageName: node
- linkType: hard
-
-"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.21.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4":
- version: 1.22.11
- resolution: "resolve@npm:1.22.11"
- dependencies:
- is-core-module: "npm:^2.16.1"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10/e1b2e738884a08de03f97ee71494335eba8c2b0feb1de9ae065e82c48997f349f77a2b10e8817e147cf610bfabc4b1cb7891ee8eaf5bf80d4ad514a34c4fab0a
- languageName: node
- linkType: hard
-
-"resolve@npm:^2.0.0-next.5":
- version: 2.0.0-next.5
- resolution: "resolve@npm:2.0.0-next.5"
- dependencies:
- is-core-module: "npm:^2.13.0"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.21.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
- version: 1.22.11
- resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d"
- dependencies:
- is-core-module: "npm:^2.16.1"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10/fd342cad25e52cd6f4f3d1716e189717f2522bfd6641109fe7aa372f32b5714a296ed7c238ddbe7ebb0c1ddfe0b7f71c9984171024c97cf1b2073e3e40ff71a8
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
- version: 2.0.0-next.5
- resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d"
- dependencies:
- is-core-module: "npm:^2.13.0"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2
- languageName: node
- linkType: hard
-
-"responselike@npm:^1.0.2":
- version: 1.0.2
- resolution: "responselike@npm:1.0.2"
- dependencies:
- lowercase-keys: "npm:^1.0.0"
- checksum: 10/2e9e70f1dcca3da621a80ce71f2f9a9cad12c047145c6ece20df22f0743f051cf7c73505e109814915f23f9e34fb0d358e22827723ee3d56b623533cab8eafcd
- languageName: node
- linkType: hard
-
-"responselike@npm:^2.0.0":
- version: 2.0.1
- resolution: "responselike@npm:2.0.1"
- dependencies:
- lowercase-keys: "npm:^2.0.0"
- checksum: 10/b122535466e9c97b55e69c7f18e2be0ce3823c5d47ee8de0d9c0b114aa55741c6db8bfbfce3766a94d1272e61bfb1ebf0a15e9310ac5629fbb7446a861b4fd3a
- languageName: node
- linkType: hard
-
-"restore-cursor@npm:^3.1.0":
- version: 3.1.0
- resolution: "restore-cursor@npm:3.1.0"
- dependencies:
- onetime: "npm:^5.1.0"
- signal-exit: "npm:^3.0.2"
- checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630
- languageName: node
- linkType: hard
-
-"retry@npm:^0.12.0":
- version: 0.12.0
- resolution: "retry@npm:0.12.0"
- checksum: 10/1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6
- languageName: node
- linkType: hard
-
-"retry@npm:^0.13.1":
- version: 0.13.1
- resolution: "retry@npm:0.13.1"
- checksum: 10/6125ec2e06d6e47e9201539c887defba4e47f63471db304c59e4b82fc63c8e89ca06a77e9d34939a9a42a76f00774b2f46c0d4a4cbb3e287268bd018ed69426d
- languageName: node
- linkType: hard
-
-"reusify@npm:^1.0.4":
- version: 1.1.0
- resolution: "reusify@npm:1.1.0"
- checksum: 10/af47851b547e8a8dc89af144fceee17b80d5beaf5e6f57ed086432d79943434ff67ca526e92275be6f54b6189f6920a24eace75c2657eed32d02c400312b21ec
- languageName: node
- linkType: hard
-
-"rimraf@npm:^3.0.2":
- version: 3.0.2
- resolution: "rimraf@npm:3.0.2"
- dependencies:
- glob: "npm:^7.1.3"
- bin:
- rimraf: bin.js
- checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5
- languageName: node
- linkType: hard
-
-"rimraf@npm:~2.6.2":
- version: 2.6.3
- resolution: "rimraf@npm:2.6.3"
- dependencies:
- glob: "npm:^7.1.3"
- bin:
- rimraf: ./bin.js
- checksum: 10/756419f2fa99aa119c46a9fc03e09d84ecf5421a80a72d1944c5088c9e4671e77128527a900a313ed9d3fdbdd37e2ae05486cd7e9116d5812d8c31f2399d7c86
- languageName: node
- linkType: hard
-
-"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1, ripemd160@npm:^2.0.3":
- version: 2.0.3
- resolution: "ripemd160@npm:2.0.3"
- dependencies:
- hash-base: "npm:^3.1.2"
- inherits: "npm:^2.0.4"
- checksum: 10/d15d42ea0460426675e5320f86d3468ab408af95b1761cf35f8d32c0c97b4d3bb72b7226e990e643b96e1637a8ad26b343a6c7666e1a297bcab4f305a1d9d3e3
- languageName: node
- linkType: hard
-
-"roarr@npm:^2.15.3":
- version: 2.15.4
- resolution: "roarr@npm:2.15.4"
- dependencies:
- boolean: "npm:^3.0.1"
- detect-node: "npm:^2.0.4"
- globalthis: "npm:^1.0.1"
- json-stringify-safe: "npm:^5.0.1"
- semver-compare: "npm:^1.0.0"
- sprintf-js: "npm:^1.1.2"
- checksum: 10/baaa5ad91468bf1b7f0263c4132a40865c8638a3d0916b44dd0d42980a77fb53085a3792e3edf16fc4eea9e31c719793c88bd45b1623b760763c4dc59df97619
- languageName: node
- linkType: hard
-
-"rollup-plugin-cleanup@npm:^3.2.1":
- version: 3.2.1
- resolution: "rollup-plugin-cleanup@npm:3.2.1"
- dependencies:
- js-cleanup: "npm:^1.2.0"
- rollup-pluginutils: "npm:^2.8.2"
- peerDependencies:
- rollup: ">=2.0"
- checksum: 10/03fe39ead52374e018404e59018ac360f1ec54454f48a468466d0a37aa69358f162bb0554cb0bf911f25d8b9f542c1287a45662e0830a2eb3e320c615cc8cf61
- languageName: node
- linkType: hard
-
-"rollup-pluginutils@npm:^2.8.2":
- version: 2.8.2
- resolution: "rollup-pluginutils@npm:2.8.2"
- dependencies:
- estree-walker: "npm:^0.6.1"
- checksum: 10/f3dc20a8731523aff43e07fa50ed84857e9dd3ab81e2cfb0351d517c46820e585bfbd1530a5dddec3ac14d61d41eb9bf50b38ded987e558292790331cc5b0628
- languageName: node
- linkType: hard
-
-"rollup@npm:^4.34.8, rollup@npm:^4.9.6":
- version: 4.55.1
- resolution: "rollup@npm:4.55.1"
- dependencies:
- "@rollup/rollup-android-arm-eabi": "npm:4.55.1"
- "@rollup/rollup-android-arm64": "npm:4.55.1"
- "@rollup/rollup-darwin-arm64": "npm:4.55.1"
- "@rollup/rollup-darwin-x64": "npm:4.55.1"
- "@rollup/rollup-freebsd-arm64": "npm:4.55.1"
- "@rollup/rollup-freebsd-x64": "npm:4.55.1"
- "@rollup/rollup-linux-arm-gnueabihf": "npm:4.55.1"
- "@rollup/rollup-linux-arm-musleabihf": "npm:4.55.1"
- "@rollup/rollup-linux-arm64-gnu": "npm:4.55.1"
- "@rollup/rollup-linux-arm64-musl": "npm:4.55.1"
- "@rollup/rollup-linux-loong64-gnu": "npm:4.55.1"
- "@rollup/rollup-linux-loong64-musl": "npm:4.55.1"
- "@rollup/rollup-linux-ppc64-gnu": "npm:4.55.1"
- "@rollup/rollup-linux-ppc64-musl": "npm:4.55.1"
- "@rollup/rollup-linux-riscv64-gnu": "npm:4.55.1"
- "@rollup/rollup-linux-riscv64-musl": "npm:4.55.1"
- "@rollup/rollup-linux-s390x-gnu": "npm:4.55.1"
- "@rollup/rollup-linux-x64-gnu": "npm:4.55.1"
- "@rollup/rollup-linux-x64-musl": "npm:4.55.1"
- "@rollup/rollup-openbsd-x64": "npm:4.55.1"
- "@rollup/rollup-openharmony-arm64": "npm:4.55.1"
- "@rollup/rollup-win32-arm64-msvc": "npm:4.55.1"
- "@rollup/rollup-win32-ia32-msvc": "npm:4.55.1"
- "@rollup/rollup-win32-x64-gnu": "npm:4.55.1"
- "@rollup/rollup-win32-x64-msvc": "npm:4.55.1"
- "@types/estree": "npm:1.0.8"
- fsevents: "npm:~2.3.2"
- dependenciesMeta:
- "@rollup/rollup-android-arm-eabi":
- optional: true
- "@rollup/rollup-android-arm64":
- optional: true
- "@rollup/rollup-darwin-arm64":
- optional: true
- "@rollup/rollup-darwin-x64":
- optional: true
- "@rollup/rollup-freebsd-arm64":
- optional: true
- "@rollup/rollup-freebsd-x64":
- optional: true
- "@rollup/rollup-linux-arm-gnueabihf":
- optional: true
- "@rollup/rollup-linux-arm-musleabihf":
- optional: true
- "@rollup/rollup-linux-arm64-gnu":
- optional: true
- "@rollup/rollup-linux-arm64-musl":
- optional: true
- "@rollup/rollup-linux-loong64-gnu":
- optional: true
- "@rollup/rollup-linux-loong64-musl":
- optional: true
- "@rollup/rollup-linux-ppc64-gnu":
- optional: true
- "@rollup/rollup-linux-ppc64-musl":
- optional: true
- "@rollup/rollup-linux-riscv64-gnu":
- optional: true
- "@rollup/rollup-linux-riscv64-musl":
- optional: true
- "@rollup/rollup-linux-s390x-gnu":
- optional: true
- "@rollup/rollup-linux-x64-gnu":
- optional: true
- "@rollup/rollup-linux-x64-musl":
- optional: true
- "@rollup/rollup-openbsd-x64":
- optional: true
- "@rollup/rollup-openharmony-arm64":
- optional: true
- "@rollup/rollup-win32-arm64-msvc":
- optional: true
- "@rollup/rollup-win32-ia32-msvc":
- optional: true
- "@rollup/rollup-win32-x64-gnu":
- optional: true
- "@rollup/rollup-win32-x64-msvc":
- optional: true
- fsevents:
- optional: true
- bin:
- rollup: dist/bin/rollup
- checksum: 10/392a8bb68ce492d5f8f59d9420b448e76b2550152482a61688617c1c9c52f8f61162478cfe44f2c6a647e82b0a5e7d61e1ac1f2701ca4d48f4acd231df7bd84a
- languageName: node
- linkType: hard
-
-"rrweb-cssom@npm:^0.7.1":
- version: 0.7.1
- resolution: "rrweb-cssom@npm:0.7.1"
- checksum: 10/e80cf25c223a823921d7ab57c0ce78f5b7ebceab857b400cce99dd4913420ce679834bc5707e8ada47d062e21ad368108a9534c314dc8d72c20aa4a4fa0ed16a
- languageName: node
- linkType: hard
-
-"rrweb-cssom@npm:^0.8.0":
- version: 0.8.0
- resolution: "rrweb-cssom@npm:0.8.0"
- checksum: 10/07521ee36fb6569c17906afad1ac7ff8f099d49ade9249e190693ac36cdf27f88d9acf0cc66978935d5d0a23fca105643d7e9125b9a9d91ed9db9e02d31d7d80
- languageName: node
- linkType: hard
-
-"run-async@npm:^2.4.0":
- version: 2.4.1
- resolution: "run-async@npm:2.4.1"
- checksum: 10/c79551224dafa26ecc281cb1efad3510c82c79116aaf681f8a931ce70fdf4ca880d58f97d3b930a38992c7aad7955a08e065b32ec194e1dd49d7790c874ece50
- languageName: node
- linkType: hard
-
-"run-parallel@npm:^1.1.9":
- version: 1.2.0
- resolution: "run-parallel@npm:1.2.0"
- dependencies:
- queue-microtask: "npm:^1.2.2"
- checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d
- languageName: node
- linkType: hard
-
-"rxjs@npm:7.8.2, rxjs@npm:^7.4.0, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0, rxjs@npm:^7.8.1, rxjs@npm:^7.8.2":
- version: 7.8.2
- resolution: "rxjs@npm:7.8.2"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/03dff09191356b2b87d94fbc1e97c4e9eb3c09d4452399dddd451b09c2f1ba8d56925a40af114282d7bc0c6fe7514a2236ca09f903cf70e4bbf156650dddb49d
- languageName: node
- linkType: hard
-
-"rxjs@npm:^6.6.7":
- version: 6.6.7
- resolution: "rxjs@npm:6.6.7"
- dependencies:
- tslib: "npm:^1.9.0"
- checksum: 10/c8263ebb20da80dd7a91c452b9e96a178331f402344bbb40bc772b56340fcd48d13d1f545a1e3d8e464893008c5e306cc42a1552afe0d562b1a6d4e1e6262b03
- languageName: node
- linkType: hard
-
-"safe-array-concat@npm:^1.1.3":
- version: 1.1.3
- resolution: "safe-array-concat@npm:1.1.3"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.2"
- get-intrinsic: "npm:^1.2.6"
- has-symbols: "npm:^1.1.0"
- isarray: "npm:^2.0.5"
- checksum: 10/fac4f40f20a3f7da024b54792fcc61059e814566dcbb04586bfefef4d3b942b2408933f25b7b3dd024affd3f2a6bbc916bef04807855e4f192413941369db864
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
- version: 5.2.1
- resolution: "safe-buffer@npm:5.2.1"
- checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
- version: 5.1.2
- resolution: "safe-buffer@npm:5.1.2"
- checksum: 10/7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a
- languageName: node
- linkType: hard
-
-"safe-push-apply@npm:^1.0.0":
- version: 1.0.0
- resolution: "safe-push-apply@npm:1.0.0"
- dependencies:
- es-errors: "npm:^1.3.0"
- isarray: "npm:^2.0.5"
- checksum: 10/2bd4e53b6694f7134b9cf93631480e7fafc8637165f0ee91d5a4af5e7f33d37de9562d1af5021178dd4217d0230cde8d6530fa28cfa1ebff9a431bf8fff124b4
- languageName: node
- linkType: hard
-
-"safe-regex-test@npm:^1.1.0":
- version: 1.1.0
- resolution: "safe-regex-test@npm:1.1.0"
- dependencies:
- call-bound: "npm:^1.0.2"
- es-errors: "npm:^1.3.0"
- is-regex: "npm:^1.2.1"
- checksum: 10/ebdb61f305bf4756a5b023ad86067df5a11b26898573afe9e52a548a63c3bd594825d9b0e2dde2eb3c94e57e0e04ac9929d4107c394f7b8e56a4613bed46c69a
- languageName: node
- linkType: hard
-
-"safe-stable-stringify@npm:^2.3.1":
- version: 2.5.0
- resolution: "safe-stable-stringify@npm:2.5.0"
- checksum: 10/2697fa186c17c38c3ca5309637b4ac6de2f1c3d282da27cd5e1e3c88eca0fb1f9aea568a6aabdf284111592c8782b94ee07176f17126031be72ab1313ed46c5c
- languageName: node
- linkType: hard
-
-"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:~2.1.0":
- version: 2.1.2
- resolution: "safer-buffer@npm:2.1.2"
- checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83
- languageName: node
- linkType: hard
-
-"sanitize-filename@npm:^1.6.3":
- version: 1.6.3
- resolution: "sanitize-filename@npm:1.6.3"
- dependencies:
- truncate-utf8-bytes: "npm:^1.0.0"
- checksum: 10/1c162e2cffa797571221c3ed9fe796fa8c6eabb0812418b52a839e4fc63ab130093eb546ec39e1b94b8d3511c0d7de81db3e67906a7e76d7a7bcb6fbab4ed961
- languageName: node
- linkType: hard
-
-"sass-lookup@npm:^3.0.0":
- version: 3.0.0
- resolution: "sass-lookup@npm:3.0.0"
- dependencies:
- commander: "npm:^2.16.0"
- bin:
- sass-lookup: bin/cli.js
- checksum: 10/010b6ae2ee42554ef567a433a1febb9979e91ea99bfacc514e886cf966adba76cd075126d4eac3d557377c30ce2477825bd3d9b59a326571f295c99373a342da
- languageName: node
- linkType: hard
-
-"sax@npm:^1.2.4":
- version: 1.4.4
- resolution: "sax@npm:1.4.4"
- checksum: 10/00ff7b258baa37d98f8abfa0b5c8b3ee739ca37e9b6ecb83405be9e6e5b0b2856394a5eff142db1d987d589b54b139d4236f25830c1e17a2b640efa53c8fda72
- languageName: node
- linkType: hard
-
-"saxes@npm:^6.0.0":
- version: 6.0.0
- resolution: "saxes@npm:6.0.0"
- dependencies:
- xmlchars: "npm:^2.2.0"
- checksum: 10/97b50daf6ca3a153e89842efa18a862e446248296622b7473c169c84c823ee8a16e4a43bac2f73f11fc8cb9168c73fbb0d73340f26552bac17970e9052367aa9
- languageName: node
- linkType: hard
-
-"scale-ts@npm:^1.6.0, scale-ts@npm:^1.6.1":
- version: 1.6.1
- resolution: "scale-ts@npm:1.6.1"
- checksum: 10/f1f9bf1d9abfcfcaf8ae2ae326270beca5c2456cc72f6b6b8230aa175a30bdcd6387678746a4d873c834efbba9c8e015698d42ee67bd71b70f7adfe2e0ba1d39
- languageName: node
- linkType: hard
-
-"scheduler@npm:^0.23.2":
- version: 0.23.2
- resolution: "scheduler@npm:0.23.2"
- dependencies:
- loose-envify: "npm:^1.1.0"
- checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9
- languageName: node
- linkType: hard
-
-"schema-utils@npm:^4.0.0, schema-utils@npm:^4.3.0, schema-utils@npm:^4.3.3":
- version: 4.3.3
- resolution: "schema-utils@npm:4.3.3"
- dependencies:
- "@types/json-schema": "npm:^7.0.9"
- ajv: "npm:^8.9.0"
- ajv-formats: "npm:^2.1.1"
- ajv-keywords: "npm:^5.1.0"
- checksum: 10/dba77a46ad7ff0c906f7f09a1a61109e6cb56388f15a68070b93c47a691f516c6a3eb454f81a8cceb0a0e55b87f8b05770a02bfb1f4e0a3143b5887488b2f900
- languageName: node
- linkType: hard
-
-"scryptsy@npm:^2.1.0":
- version: 2.1.0
- resolution: "scryptsy@npm:2.1.0"
- checksum: 10/1cbdab9d7eee87d2e6aaf86f6a3e759ccd0087d91ca6b760ffe23c0234cb3cc7ba8e1697a59ff84f06a4f08574940c2453dfbbd0e6db64c6c76992a21b6c3733
- languageName: node
- linkType: hard
-
-"secp256k1@npm:^3.8.0":
- version: 3.8.1
- resolution: "secp256k1@npm:3.8.1"
- dependencies:
- bindings: "npm:^1.5.0"
- bip66: "npm:^1.1.5"
- bn.js: "npm:^4.11.8"
- create-hash: "npm:^1.2.0"
- drbg.js: "npm:^1.0.1"
- elliptic: "npm:^6.5.7"
- nan: "npm:^2.14.0"
- node-gyp: "npm:latest"
- safe-buffer: "npm:^5.1.2"
- checksum: 10/dfe9621aea56268878ed384cbf8aac55ad7d3a887816d6e130d202ad679a25546f0079b22ab462f605c30668733e6b7676e4e77c63542d6fc45a7a5ad9ebb3f4
- languageName: node
- linkType: hard
-
-"secure-json-parse@npm:^4.0.0":
- version: 4.1.0
- resolution: "secure-json-parse@npm:4.1.0"
- checksum: 10/1025c6fd0b8fa0e8c6ac7225fc0b79ecc528b2e51a8446e4bb73bfc47a2450b9e9e9813b84bc9e6735ce30c947b52e5b9d90771521aa9bb2ec216afd24c2da4e
- languageName: node
- linkType: hard
-
-"select-hose@npm:^2.0.0":
- version: 2.0.0
- resolution: "select-hose@npm:2.0.0"
- checksum: 10/08cdd629a394d20e9005e7956f0624307c702cf950cc0458953e9b87ea961d3b1b72ac02266bdb93ac1eec4fcf42b41db9cabe93aa2b7683d71513d133c44fb5
- languageName: node
- linkType: hard
-
-"selfsigned@npm:^2.1.1":
- version: 2.4.1
- resolution: "selfsigned@npm:2.4.1"
- dependencies:
- "@types/node-forge": "npm:^1.3.0"
- node-forge: "npm:^1"
- checksum: 10/52536623f1cfdeb2f8b9198377f2ce7931c677ea69421238d1dc1ea2983bbe258e56c19e7d1af87035cad7270f19b7e996eaab1212e724d887722502f68e17f2
- languageName: node
- linkType: hard
-
-"semantic-ui-css@npm:^2.5.0":
- version: 2.5.0
- resolution: "semantic-ui-css@npm:2.5.0"
- dependencies:
- jquery: "npm:x.*"
- checksum: 10/830b438d10b9f654da6c3076103bf78074be0747c59d64089a3393aeefade301732a5d8a01d5e77f1d580b50e340e762563ddce9869665d2f31b69833c55ee63
- languageName: node
- linkType: hard
-
-"semantic-ui-react@npm:^0.88.2":
- version: 0.88.2
- resolution: "semantic-ui-react@npm:0.88.2"
- dependencies:
- "@babel/runtime": "npm:^7.1.2"
- "@semantic-ui-react/event-stack": "npm:^3.1.0"
- "@stardust-ui/react-component-event-listener": "npm:~0.38.0"
- "@stardust-ui/react-component-ref": "npm:~0.38.0"
- classnames: "npm:^2.2.6"
- keyboard-key: "npm:^1.0.4"
- lodash: "npm:^4.17.15"
- prop-types: "npm:^15.7.2"
- react-is: "npm:^16.8.6"
- react-popper: "npm:^1.3.4"
- shallowequal: "npm:^1.1.0"
- peerDependencies:
- react: ^16.8.0
- react-dom: ^16.8.0
- checksum: 10/b18a417acae1eef46e538724fdcab814f330ecdb5187e093b10e0ed5decad354175b0393c34f37c8720309d5f8380a5597ac5de9ed7fbd78074854660e229f4c
- languageName: node
- linkType: hard
-
-"semver-compare@npm:^1.0.0":
- version: 1.0.0
- resolution: "semver-compare@npm:1.0.0"
- checksum: 10/75f9c7a7786d1756f64b1429017746721e07bd7691bdad6368f7643885d3a98a27586777e9699456564f4844b407e9f186cc1d588a3f9c0be71310e517e942c3
- languageName: node
- linkType: hard
-
-"semver-diff@npm:^3.1.1":
- version: 3.1.1
- resolution: "semver-diff@npm:3.1.1"
- dependencies:
- semver: "npm:^6.3.0"
- checksum: 10/8bbe5a5d7add2d5e51b72314a9215cd294d71f41cdc2bf6bd59ee76411f3610b576172896f1d191d0d7294cb9f2f847438d2ee158adacc0c224dca79052812fe
- languageName: node
- linkType: hard
-
-"semver@npm:2 || 3 || 4 || 5":
- version: 5.7.2
- resolution: "semver@npm:5.7.2"
- bin:
- semver: bin/semver
- checksum: 10/fca14418a174d4b4ef1fecb32c5941e3412d52a4d3d85165924ce3a47fbc7073372c26faf7484ceb4bbc2bde25880c6b97e492473dc7e9708fdfb1c6a02d546e
- languageName: node
- linkType: hard
-
-"semver@npm:^6.0.0, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
- version: 6.3.1
- resolution: "semver@npm:6.3.1"
- bin:
- semver: bin/semver.js
- checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e
- languageName: node
- linkType: hard
-
-"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.7.1, semver@npm:~7.7.3":
- version: 7.7.3
- resolution: "semver@npm:7.7.3"
- bin:
- semver: bin/semver.js
- checksum: 10/8dbc3168e057a38fc322af909c7f5617483c50caddba135439ff09a754b20bdd6482a5123ff543dad4affa488ecf46ec5fb56d61312ad20bb140199b88dfaea9
- languageName: node
- linkType: hard
-
-"send@npm:~0.19.0, send@npm:~0.19.1":
- version: 0.19.2
- resolution: "send@npm:0.19.2"
- dependencies:
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:1.2.0"
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- etag: "npm:~1.8.1"
- fresh: "npm:~0.5.2"
- http-errors: "npm:~2.0.1"
- mime: "npm:1.6.0"
- ms: "npm:2.1.3"
- on-finished: "npm:~2.4.1"
- range-parser: "npm:~1.2.1"
- statuses: "npm:~2.0.2"
- checksum: 10/e932a592f62c58560b608a402d52333a8ae98a5ada076feb5db1d03adaa77c3ca32a7befa1c4fd6dedc186e88f342725b0cb4b3d86835eaf834688b259bef18d
- languageName: node
- linkType: hard
-
-"serialize-error@npm:^7.0.1":
- version: 7.0.1
- resolution: "serialize-error@npm:7.0.1"
- dependencies:
- type-fest: "npm:^0.13.1"
- checksum: 10/e0aba4dca2fc9fe74ae1baf38dbd99190e1945445a241ba646290f2176cdb2032281a76443b02ccf0caf30da5657d510746506368889a593b9835a497fc0732e
- languageName: node
- linkType: hard
-
-"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.2":
- version: 6.0.2
- resolution: "serialize-javascript@npm:6.0.2"
- dependencies:
- randombytes: "npm:^2.1.0"
- checksum: 10/445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58
- languageName: node
- linkType: hard
-
-"serve-index@npm:^1.9.1":
- version: 1.9.1
- resolution: "serve-index@npm:1.9.1"
- dependencies:
- accepts: "npm:~1.3.4"
- batch: "npm:0.6.1"
- debug: "npm:2.6.9"
- escape-html: "npm:~1.0.3"
- http-errors: "npm:~1.6.2"
- mime-types: "npm:~2.1.17"
- parseurl: "npm:~1.3.2"
- checksum: 10/2adce2878d7e30f197e66f30e39f4a404d9ae39295c0c13849bb25e7cf976b93e883204739efd1510559588bed56f8101e32191cbe75f374c6e1e803852194cb
- languageName: node
- linkType: hard
-
-"serve-static@npm:~1.16.2":
- version: 1.16.3
- resolution: "serve-static@npm:1.16.3"
- dependencies:
- encodeurl: "npm:~2.0.0"
- escape-html: "npm:~1.0.3"
- parseurl: "npm:~1.3.3"
- send: "npm:~0.19.1"
- checksum: 10/149d6718dd9e53166784d0a65535e21a7c01249d9c51f57224b786a7306354c6807e7811a9f6c143b45c863b1524721fca2f52b5c81a8b5194e3dde034a03b9c
- languageName: node
- linkType: hard
-
-"set-function-length@npm:^1.2.2":
- version: 1.2.2
- resolution: "set-function-length@npm:1.2.2"
- dependencies:
- define-data-property: "npm:^1.1.4"
- es-errors: "npm:^1.3.0"
- function-bind: "npm:^1.1.2"
- get-intrinsic: "npm:^1.2.4"
- gopd: "npm:^1.0.1"
- has-property-descriptors: "npm:^1.0.2"
- checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d
- languageName: node
- linkType: hard
-
-"set-function-name@npm:^2.0.2":
- version: 2.0.2
- resolution: "set-function-name@npm:2.0.2"
- dependencies:
- define-data-property: "npm:^1.1.4"
- es-errors: "npm:^1.3.0"
- functions-have-names: "npm:^1.2.3"
- has-property-descriptors: "npm:^1.0.2"
- checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74
- languageName: node
- linkType: hard
-
-"set-proto@npm:^1.0.0":
- version: 1.0.0
- resolution: "set-proto@npm:1.0.0"
- dependencies:
- dunder-proto: "npm:^1.0.1"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.0.0"
- checksum: 10/b87f8187bca595ddc3c0721ece4635015fd9d7cb294e6dd2e394ce5186a71bbfa4dc8a35010958c65e43ad83cde09642660e61a952883c24fd6b45ead15f045c
- languageName: node
- linkType: hard
-
-"setimmediate@npm:^1.0.5":
- version: 1.0.5
- resolution: "setimmediate@npm:1.0.5"
- checksum: 10/76e3f5d7f4b581b6100ff819761f04a984fa3f3990e72a6554b57188ded53efce2d3d6c0932c10f810b7c59414f85e2ab3c11521877d1dea1ce0b56dc906f485
- languageName: node
- linkType: hard
-
-"setprototypeof@npm:1.1.0":
- version: 1.1.0
- resolution: "setprototypeof@npm:1.1.0"
- checksum: 10/02d2564e02a260551bab3ec95358dcfde775fe61272b1b7c488de3676a4bb79f280b5668a324aebe0ec73f0d8ba408bc2d816a609ee5d93b1a7936b9d4ba1208
- languageName: node
- linkType: hard
-
-"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0":
- version: 1.2.0
- resolution: "setprototypeof@npm:1.2.0"
- checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e
- languageName: node
- linkType: hard
-
-"sha.js@npm:^2.4.0, sha.js@npm:^2.4.12, sha.js@npm:^2.4.8":
- version: 2.4.12
- resolution: "sha.js@npm:2.4.12"
- dependencies:
- inherits: "npm:^2.0.4"
- safe-buffer: "npm:^5.2.1"
- to-buffer: "npm:^1.2.0"
- bin:
- sha.js: bin.js
- checksum: 10/39c0993592c2ab34eb2daae2199a2a1d502713765aecb611fd97c0c4ab7cd53e902d628e1962aaf384bafd28f55951fef46dcc78799069ce41d74b03aa13b5a7
- languageName: node
- linkType: hard
-
-"shallow-clone@npm:^3.0.0":
- version: 3.0.1
- resolution: "shallow-clone@npm:3.0.1"
- dependencies:
- kind-of: "npm:^6.0.2"
- checksum: 10/e066bd540cfec5e1b0f78134853e0d892d1c8945fb9a926a579946052e7cb0c70ca4fc34f875a8083aa7910d751805d36ae64af250a6de6f3d28f9fa7be6c21b
- languageName: node
- linkType: hard
-
-"shallowequal@npm:1.1.0, shallowequal@npm:^1.1.0":
- version: 1.1.0
- resolution: "shallowequal@npm:1.1.0"
- checksum: 10/f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00
- languageName: node
- linkType: hard
-
-"shebang-command@npm:^2.0.0":
- version: 2.0.0
- resolution: "shebang-command@npm:2.0.0"
- dependencies:
- shebang-regex: "npm:^3.0.0"
- checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
- languageName: node
- linkType: hard
-
-"shebang-regex@npm:^3.0.0":
- version: 3.0.0
- resolution: "shebang-regex@npm:3.0.0"
- checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
- languageName: node
- linkType: hard
-
-"shell-quote@npm:^1.8.1, shell-quote@npm:^1.8.3":
- version: 1.8.3
- resolution: "shell-quote@npm:1.8.3"
- checksum: 10/5473e354637c2bd698911224129c9a8961697486cff1fb221f234d71c153fc377674029b0223d1d3c953a68d451d79366abfe53d1a0b46ee1f28eb9ade928f4c
- languageName: node
- linkType: hard
-
-"shelljs@npm:^0.8.4":
- version: 0.8.5
- resolution: "shelljs@npm:0.8.5"
- dependencies:
- glob: "npm:^7.0.0"
- interpret: "npm:^1.0.0"
- rechoir: "npm:^0.6.2"
- bin:
- shjs: bin/shjs
- checksum: 10/f2178274b97b44332bbe9ddb78161137054f55ecf701c7a99db9552cb5478fe279ad5f5131d8a7c2f0730e01ccf0c629d01094143f0541962ce1a3d0243d23f7
- languageName: node
- linkType: hard
-
-"side-channel-list@npm:^1.0.0":
- version: 1.0.0
- resolution: "side-channel-list@npm:1.0.0"
- dependencies:
- es-errors: "npm:^1.3.0"
- object-inspect: "npm:^1.13.3"
- checksum: 10/603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f
- languageName: node
- linkType: hard
-
-"side-channel-map@npm:^1.0.1":
- version: 1.0.1
- resolution: "side-channel-map@npm:1.0.1"
- dependencies:
- call-bound: "npm:^1.0.2"
- es-errors: "npm:^1.3.0"
- get-intrinsic: "npm:^1.2.5"
- object-inspect: "npm:^1.13.3"
- checksum: 10/5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615
- languageName: node
- linkType: hard
-
-"side-channel-weakmap@npm:^1.0.2":
- version: 1.0.2
- resolution: "side-channel-weakmap@npm:1.0.2"
- dependencies:
- call-bound: "npm:^1.0.2"
- es-errors: "npm:^1.3.0"
- get-intrinsic: "npm:^1.2.5"
- object-inspect: "npm:^1.13.3"
- side-channel-map: "npm:^1.0.1"
- checksum: 10/a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736
- languageName: node
- linkType: hard
-
-"side-channel@npm:^1.0.4, side-channel@npm:^1.1.0":
- version: 1.1.0
- resolution: "side-channel@npm:1.1.0"
- dependencies:
- es-errors: "npm:^1.3.0"
- object-inspect: "npm:^1.13.3"
- side-channel-list: "npm:^1.0.0"
- side-channel-map: "npm:^1.0.1"
- side-channel-weakmap: "npm:^1.0.2"
- checksum: 10/7d53b9db292c6262f326b6ff3bc1611db84ece36c2c7dc0e937954c13c73185b0406c56589e2bb8d071d6fee468e14c39fb5d203ee39be66b7b8174f179afaba
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3":
- version: 3.0.7
- resolution: "signal-exit@npm:3.0.7"
- checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^4.0.1":
- version: 4.1.0
- resolution: "signal-exit@npm:4.1.0"
- checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f
- languageName: node
- linkType: hard
-
-"simple-concat@npm:^1.0.0":
- version: 1.0.1
- resolution: "simple-concat@npm:1.0.1"
- checksum: 10/4d211042cc3d73a718c21ac6c4e7d7a0363e184be6a5ad25c8a1502e49df6d0a0253979e3d50dbdd3f60ef6c6c58d756b5d66ac1e05cda9cacd2e9fc59e3876a
- languageName: node
- linkType: hard
-
-"simple-get@npm:^4.0.0":
- version: 4.0.1
- resolution: "simple-get@npm:4.0.1"
- dependencies:
- decompress-response: "npm:^6.0.0"
- once: "npm:^1.3.1"
- simple-concat: "npm:^1.0.0"
- checksum: 10/93f1b32319782f78f2f2234e9ce34891b7ab6b990d19d8afefaa44423f5235ce2676aae42d6743fecac6c8dfff4b808d4c24fe5265be813d04769917a9a44f36
- languageName: node
- linkType: hard
-
-"simple-update-notifier@npm:2.0.0":
- version: 2.0.0
- resolution: "simple-update-notifier@npm:2.0.0"
- dependencies:
- semver: "npm:^7.5.3"
- checksum: 10/40bd4f96aa89aedbf717ae9f4ab8fca70e8f7511e8b766feb15471cca3f6fe4fe673743309b08b4ba8abfe0965c9cd927e1de46550a757b819b70fc7430cc85d
- languageName: node
- linkType: hard
-
-"skip-regex@npm:^1.0.2":
- version: 1.0.2
- resolution: "skip-regex@npm:1.0.2"
- checksum: 10/a121a045860343da183c678d53b44c78283b018db71d60af8524ffef179fa028ef419629bb65198bfb9c09854123e7019cfd4c23be4e175254a50c7563b26e8e
- languageName: node
- linkType: hard
-
-"slash@npm:^3.0.0":
- version: 3.0.0
- resolution: "slash@npm:3.0.0"
- checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c
- languageName: node
- linkType: hard
-
-"slash@npm:^4.0.0":
- version: 4.0.0
- resolution: "slash@npm:4.0.0"
- checksum: 10/da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d
- languageName: node
- linkType: hard
-
-"slice-ansi@npm:^3.0.0":
- version: 3.0.0
- resolution: "slice-ansi@npm:3.0.0"
- dependencies:
- ansi-styles: "npm:^4.0.0"
- astral-regex: "npm:^2.0.0"
- is-fullwidth-code-point: "npm:^3.0.0"
- checksum: 10/5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24
- languageName: node
- linkType: hard
-
-"smart-buffer@npm:^4.0.2, smart-buffer@npm:^4.2.0":
- version: 4.2.0
- resolution: "smart-buffer@npm:4.2.0"
- checksum: 10/927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2
- languageName: node
- linkType: hard
-
-"smoldot@npm:2.0.22":
- version: 2.0.22
- resolution: "smoldot@npm:2.0.22"
- dependencies:
- ws: "npm:^8.8.1"
- checksum: 10/8d63720ff7aee9ff4cbfb3d6952c68781aaaecf49fcb20d8b76919e854975b029071778c4c3bd50a18a4c3e0c96857b2b6daa526bbad4a3bee20f2aad8dfe388
- languageName: node
- linkType: hard
-
-"smoldot@npm:2.0.26":
- version: 2.0.26
- resolution: "smoldot@npm:2.0.26"
- dependencies:
- ws: "npm:^8.8.1"
- checksum: 10/b975c8ef16e2286b2eddc8c19c18080bd528f27e9abc0e2731304823e67ebe1fc71b01bed2c070d00da1f7e2f69e25c159c976d27eb1796de4a978362dae701e
- languageName: node
- linkType: hard
-
-"smoldot@npm:^2.0.34":
- version: 2.0.40
- resolution: "smoldot@npm:2.0.40"
- dependencies:
- ws: "npm:^8.8.1"
- checksum: 10/dfbc47c4fd15d8276e8d981cf51e147c3596878effbb7282321aac503808438dbbd6a954975bd735a37848f3ed2bf35994e27f0925231af30efc517ae0942c30
- languageName: node
- linkType: hard
-
-"sockjs@npm:^0.3.24":
- version: 0.3.24
- resolution: "sockjs@npm:0.3.24"
- dependencies:
- faye-websocket: "npm:^0.11.3"
- uuid: "npm:^8.3.2"
- websocket-driver: "npm:^0.7.4"
- checksum: 10/36312ec9772a0e536b69b72e9d1c76bd3d6ecf885c5d8fd6e59811485c916b8ce75f46ec57532f436975815ee14aa9a0e22ae3d9e5c0b18ea37b56d0aaaf439c
- languageName: node
- linkType: hard
-
-"socks-proxy-agent@npm:^8.0.3":
- version: 8.0.5
- resolution: "socks-proxy-agent@npm:8.0.5"
- dependencies:
- agent-base: "npm:^7.1.2"
- debug: "npm:^4.3.4"
- socks: "npm:^2.8.3"
- checksum: 10/ee99e1dacab0985b52cbe5a75640be6e604135e9489ebdc3048635d186012fbaecc20fbbe04b177dee434c319ba20f09b3e7dfefb7d932466c0d707744eac05c
- languageName: node
- linkType: hard
-
-"socks@npm:^2.8.3":
- version: 2.8.7
- resolution: "socks@npm:2.8.7"
- dependencies:
- ip-address: "npm:^10.0.1"
- smart-buffer: "npm:^4.2.0"
- checksum: 10/d19366c95908c19db154f329bbe94c2317d315dc933a7c2b5101e73f32a555c84fb199b62174e1490082a593a4933d8d5a9b297bde7d1419c14a11a965f51356
- languageName: node
- linkType: hard
-
-"sonic-boom@npm:^4.0.1":
- version: 4.2.0
- resolution: "sonic-boom@npm:4.2.0"
- dependencies:
- atomic-sleep: "npm:^1.0.0"
- checksum: 10/385ef7fb5ea5976c1d2a1fef0b6df8df6b7caba8696d2d67f689d60c05e3ea2d536752ce7e1c69b9fad844635f1036d07c446f8e8149f5c6a80e0040a455b310
- languageName: node
- linkType: hard
-
-"sort-keys@npm:^4.0.0":
- version: 4.2.0
- resolution: "sort-keys@npm:4.2.0"
- dependencies:
- is-plain-obj: "npm:^2.0.0"
- checksum: 10/cbc5adf02eae3f9e2ccbd94eafd6019d705fb217ffd77bc9ecd71b6e4aee617bac93dae91c580fb62f0deb9b0b53f105ba2ae89d253168adf16b7cb3e6cef25a
- languageName: node
- linkType: hard
-
-"sortobject@npm:^4.0.0":
- version: 4.17.0
- resolution: "sortobject@npm:4.17.0"
- checksum: 10/d11bc2ecb01335d498f240d75bb916eab25d97de56fd6f2c0e7f6f7e601641da472b9c300e5486296d7b216cd3d74920c402497713fb402510f9f7907aa0b617
- languageName: node
- linkType: hard
-
-"source-map-explorer@npm:^2.5.3":
- version: 2.5.3
- resolution: "source-map-explorer@npm:2.5.3"
- dependencies:
- btoa: "npm:^1.2.1"
- chalk: "npm:^4.1.0"
- convert-source-map: "npm:^1.7.0"
- ejs: "npm:^3.1.5"
- escape-html: "npm:^1.0.3"
- glob: "npm:^7.1.6"
- gzip-size: "npm:^6.0.0"
- lodash: "npm:^4.17.20"
- open: "npm:^7.3.1"
- source-map: "npm:^0.7.4"
- temp: "npm:^0.9.4"
- yargs: "npm:^16.2.0"
- bin:
- sme: bin/cli.js
- source-map-explorer: bin/cli.js
- checksum: 10/39487c6db499d9e55d724c761d572be6d0e7953eedde848649cabdc200b5195efe3d41ff09916339022791f50d0ec577c9268beb9be10f6f131827a00c22b0c7
- languageName: node
- linkType: hard
-
-"source-map-js@npm:^1.2.1":
- version: 1.2.1
- resolution: "source-map-js@npm:1.2.1"
- checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3
- languageName: node
- linkType: hard
-
-"source-map-support@npm:^0.5.19, source-map-support@npm:~0.5.20":
- version: 0.5.21
- resolution: "source-map-support@npm:0.5.21"
- dependencies:
- buffer-from: "npm:^1.0.0"
- source-map: "npm:^0.6.0"
- checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.4.2":
- version: 0.4.4
- resolution: "source-map@npm:0.4.4"
- dependencies:
- amdefine: "npm:>=0.0.4"
- checksum: 10/a7bb09072126c7c799aa69b7ab601e9c9088272e1838be1fd76c5565c4c5766af46c940e9712547cf4e068f47432a251aa55393bdbb937c35593e9e96f9eea62
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
- version: 0.6.1
- resolution: "source-map@npm:0.6.1"
- checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.7.4, source-map@npm:^0.7.6":
- version: 0.7.6
- resolution: "source-map@npm:0.7.6"
- checksum: 10/c8d2da7c57c14f3fd7568f764b39ad49bbf9dd7632b86df3542b31fed117d4af2fb74a4f886fc06baf7a510fee68e37998efc3080aacdac951c36211dc29a7a3
- languageName: node
- linkType: hard
-
-"source-map@npm:~0.5.0":
- version: 0.5.7
- resolution: "source-map@npm:0.5.7"
- checksum: 10/9b4ac749ec5b5831cad1f8cc4c19c4298ebc7474b24a0acf293e2f040f03f8eeccb3d01f12aa0f90cf46d555c887e03912b83a042c627f419bda5152d89c5269
- languageName: node
- linkType: hard
-
-"sourcemap-codec@npm:^1.4.8":
- version: 1.4.8
- resolution: "sourcemap-codec@npm:1.4.8"
- checksum: 10/6fc57a151e982b5c9468362690c6d062f3a0d4d8520beb68a82f319c79e7a4d7027eeb1e396de0ecc2cd19491e1d602b2d06fd444feac9b63dd43fea4c55a857
- languageName: node
- linkType: hard
-
-"space-separated-tokens@npm:^2.0.0":
- version: 2.0.2
- resolution: "space-separated-tokens@npm:2.0.2"
- checksum: 10/202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990
- languageName: node
- linkType: hard
-
-"spawn-command@npm:0.0.2":
- version: 0.0.2
- resolution: "spawn-command@npm:0.0.2"
- checksum: 10/f13e8c3c63abd4a0b52fb567eba5f7940d480c5ed3ec61781d38a1850f179b1196c39e6efa2bbd301f82c1bf1cd7807abc8fbd8fc8e44bcaa3975a124c0d1657
- languageName: node
- linkType: hard
-
-"spdx-correct@npm:^3.0.0":
- version: 3.2.0
- resolution: "spdx-correct@npm:3.2.0"
- dependencies:
- spdx-expression-parse: "npm:^3.0.0"
- spdx-license-ids: "npm:^3.0.0"
- checksum: 10/cc2e4dbef822f6d12142116557d63f5facf3300e92a6bd24e907e4865e17b7e1abd0ee6b67f305cae6790fc2194175a24dc394bfcc01eea84e2bdad728e9ae9a
- languageName: node
- linkType: hard
-
-"spdx-exceptions@npm:^2.1.0":
- version: 2.5.0
- resolution: "spdx-exceptions@npm:2.5.0"
- checksum: 10/bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15
- languageName: node
- linkType: hard
-
-"spdx-expression-parse@npm:^3.0.0":
- version: 3.0.1
- resolution: "spdx-expression-parse@npm:3.0.1"
- dependencies:
- spdx-exceptions: "npm:^2.1.0"
- spdx-license-ids: "npm:^3.0.0"
- checksum: 10/a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde
- languageName: node
- linkType: hard
-
-"spdx-license-ids@npm:^3.0.0":
- version: 3.0.22
- resolution: "spdx-license-ids@npm:3.0.22"
- checksum: 10/a2f214aaf74c21a0172232367ce785157cef45d78617ee4d12aa1246350af566968e28b511e2096b707611566ac3959b85d8bf2d53a65bc6b66580735d3e1965
- languageName: node
- linkType: hard
-
-"spdy-transport@npm:^3.0.0":
- version: 3.0.0
- resolution: "spdy-transport@npm:3.0.0"
- dependencies:
- debug: "npm:^4.1.0"
- detect-node: "npm:^2.0.4"
- hpack.js: "npm:^2.1.6"
- obuf: "npm:^1.1.2"
- readable-stream: "npm:^3.0.6"
- wbuf: "npm:^1.7.3"
- checksum: 10/b93b606b209ca785456bd850b8925f21a76522ee5b46701235ecff3eba17686560c27575f91863842dc843a39772f6d2f5a8755df9eaff0924d20598df18828d
- languageName: node
- linkType: hard
-
-"spdy@npm:^4.0.2":
- version: 4.0.2
- resolution: "spdy@npm:4.0.2"
- dependencies:
- debug: "npm:^4.1.0"
- handle-thing: "npm:^2.0.0"
- http-deceiver: "npm:^1.2.7"
- select-hose: "npm:^2.0.0"
- spdy-transport: "npm:^3.0.0"
- checksum: 10/d29b89e48e7d762e505a2f83b1bc2c92268bd518f1b411864ab42a9e032e387d10467bbce0d8dbf8647bf4914a063aa1d303dff85e248f7a57f81a7b18ac34ef
- languageName: node
- linkType: hard
-
-"speedometer@npm:~1.0.0":
- version: 1.0.0
- resolution: "speedometer@npm:1.0.0"
- checksum: 10/6b322bbb0607c9994fba2a6ac189cf6caea4ce9f5067c1ccfc2848b55883f65d48292bfed4244ce855573ed7cdf0f69943ae6e507f7ec90eef232b64cdba6237
- languageName: node
- linkType: hard
-
-"split-ca@npm:^1.0.1":
- version: 1.0.1
- resolution: "split-ca@npm:1.0.1"
- checksum: 10/1e7409938a95ee843fe2593156a5735e6ee63772748ee448ea8477a5a3e3abde193c3325b3696e56a5aff07c7dcf6b1f6a2f2a036895b4f3afe96abb366d893f
- languageName: node
- linkType: hard
-
-"split-on-first@npm:^3.0.0":
- version: 3.0.0
- resolution: "split-on-first@npm:3.0.0"
- checksum: 10/75dc27ecbac65cfbeab9a3b90cf046307220192d3d7a30e46aa0f19571cc9b4802aac813f3de2cc9b16f2e46aae72f275659b5d2614bb5369c77724d739e5f73
- languageName: node
- linkType: hard
-
-"split2@npm:^4.0.0":
- version: 4.2.0
- resolution: "split2@npm:4.2.0"
- checksum: 10/09bbefc11bcf03f044584c9764cd31a252d8e52cea29130950b26161287c11f519807c5e54bd9e5804c713b79c02cefe6a98f4688630993386be353e03f534ab
- languageName: node
- linkType: hard
-
-"sprintf-js@npm:^1.1.2":
- version: 1.1.3
- resolution: "sprintf-js@npm:1.1.3"
- checksum: 10/e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb
- languageName: node
- linkType: hard
-
-"sprintf-js@npm:~1.0.2":
- version: 1.0.3
- resolution: "sprintf-js@npm:1.0.3"
- checksum: 10/c34828732ab8509c2741e5fd1af6b767c3daf2c642f267788f933a65b1614943c282e74c4284f4fa749c264b18ee016a0d37a3e5b73aee446da46277d3a85daa
- languageName: node
- linkType: hard
-
-"ssh-remote-port-forward@npm:^1.0.4":
- version: 1.0.4
- resolution: "ssh-remote-port-forward@npm:1.0.4"
- dependencies:
- "@types/ssh2": "npm:^0.5.48"
- ssh2: "npm:^1.4.0"
- checksum: 10/c6c04c5ddfde7cb06e9a8655a152bd28fe6771c6fe62ff0bc08be229491546c410f30b153c968b8d6817a57d38678a270c228f30143ec0fe1be546efc4f6b65a
- languageName: node
- linkType: hard
-
-"ssh2@npm:^1.15.0, ssh2@npm:^1.4.0":
- version: 1.17.0
- resolution: "ssh2@npm:1.17.0"
- dependencies:
- asn1: "npm:^0.2.6"
- bcrypt-pbkdf: "npm:^1.0.2"
- cpu-features: "npm:~0.0.10"
- nan: "npm:^2.23.0"
- dependenciesMeta:
- cpu-features:
- optional: true
- nan:
- optional: true
- checksum: 10/5a7e911f234f73c4332f2b436cc6131c164962d2eac71f463ab401b54c4b8627875d9c9be1c55e0bfd1a0eae108cfa33217bc73939287e4a5e81f34f532b1036
- languageName: node
- linkType: hard
-
-"ssri@npm:^13.0.0":
- version: 13.0.0
- resolution: "ssri@npm:13.0.0"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10/fd59bfedf0659c1b83f6e15459162da021f08ec0f5834dd9163296f8b77ee82f9656aa1d415c3d3848484293e0e6aefdd482e863e52ddb53d520bb73da1eeec1
- languageName: node
- linkType: hard
-
-"stable-hash@npm:^0.0.5":
- version: 0.0.5
- resolution: "stable-hash@npm:0.0.5"
- checksum: 10/9222ea2c558e37c4a576cb4e406966b9e6aa05b93f5c4f09ef4aaabe3577439b9b8fbff407b16840b63e2ae83de74290c7b1c2da7360d571e480e46a4aec0a56
- languageName: node
- linkType: hard
-
-"stack-utils@npm:^2.0.6":
- version: 2.0.6
- resolution: "stack-utils@npm:2.0.6"
- dependencies:
- escape-string-regexp: "npm:^2.0.0"
- checksum: 10/cdc988acbc99075b4b036ac6014e5f1e9afa7e564482b687da6384eee6a1909d7eaffde85b0a17ffbe186c5247faf6c2b7544e802109f63b72c7be69b13151bb
- languageName: node
- linkType: hard
-
-"stat-mode@npm:^1.0.0":
- version: 1.0.0
- resolution: "stat-mode@npm:1.0.0"
- checksum: 10/a7eac989332f4d057997225af77be14428789821bfbcadd9bdd67e40c73b9d0f9e0fead7171a0e4a8c4366564adcf1d463b16e71c68af8694af3d3ee1b5f88ed
- languageName: node
- linkType: hard
-
-"statuses@npm:>= 1.4.0 < 2":
- version: 1.5.0
- resolution: "statuses@npm:1.5.0"
- checksum: 10/c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c
- languageName: node
- linkType: hard
-
-"statuses@npm:~2.0.1, statuses@npm:~2.0.2":
- version: 2.0.2
- resolution: "statuses@npm:2.0.2"
- checksum: 10/6927feb50c2a75b2a4caab2c565491f7a93ad3d8dbad7b1398d52359e9243a20e2ebe35e33726dee945125ef7a515e9097d8a1b910ba2bbd818265a2f6c39879
- languageName: node
- linkType: hard
-
-"stop-iteration-iterator@npm:^1.0.0, stop-iteration-iterator@npm:^1.1.0":
- version: 1.1.0
- resolution: "stop-iteration-iterator@npm:1.1.0"
- dependencies:
- es-errors: "npm:^1.3.0"
- internal-slot: "npm:^1.1.0"
- checksum: 10/ff36c4db171ee76c936ccfe9541946b77017f12703d4c446652017356816862d3aa029a64e7d4c4ceb484e00ed4a81789333896390d808458638f3a216aa1f41
- languageName: node
- linkType: hard
-
-"store@npm:^2.0.12":
- version: 2.0.12
- resolution: "store@npm:2.0.12"
- checksum: 10/2245bf29943fe59c2420fbe8ce19c8b86717353edcd6ec30a745cf2faee380b604777aa7f16344a15a8ff33ce689ce61dc95b4e6dc7c737101c00036c311ee7f
- languageName: node
- linkType: hard
-
-"stream-browserify@npm:^3.0.0":
- version: 3.0.0
- resolution: "stream-browserify@npm:3.0.0"
- dependencies:
- inherits: "npm:~2.0.4"
- readable-stream: "npm:^3.5.0"
- checksum: 10/05a3cd0a0ce2d568dbdeb69914557c26a1b0a9d871839666b692eae42b96189756a3ed685affc90dab64ff588a8524c8aec6d85072c07905a1f0d941ea68f956
- languageName: node
- linkType: hard
-
-"stream-composer@npm:^1.0.2":
- version: 1.0.2
- resolution: "stream-composer@npm:1.0.2"
- dependencies:
- streamx: "npm:^2.13.2"
- checksum: 10/338b8e088f2eb2c91b0e06907db436525da3620991b13499e57441548e62d3585be185505901b0380cad425889572794e5fe178dd326f5efde654b3ab26df3d3
- languageName: node
- linkType: hard
-
-"stream-http@npm:^3.2.0":
- version: 3.2.0
- resolution: "stream-http@npm:3.2.0"
- dependencies:
- builtin-status-codes: "npm:^3.0.0"
- inherits: "npm:^2.0.4"
- readable-stream: "npm:^3.6.0"
- xtend: "npm:^4.0.2"
- checksum: 10/4f85738cbc6de70ecf0a04bc38b6092b4d91dd5317d3d93c88a84c48e63b82a8724ab5fd591df9f587b5139fe439d1748e4e3db3cb09c2b1e23649cb9d89859e
- languageName: node
- linkType: hard
-
-"stream-shift@npm:^1.0.2":
- version: 1.0.3
- resolution: "stream-shift@npm:1.0.3"
- checksum: 10/a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242
- languageName: node
- linkType: hard
-
-"stream-to-array@npm:^2.3.0":
- version: 2.3.0
- resolution: "stream-to-array@npm:2.3.0"
- dependencies:
- any-promise: "npm:^1.1.0"
- checksum: 10/7feaf63b38399b850615e6ffcaa951e96e4c8f46745dbce4b553a94c5dc43966933813747014935a3ff97793e7f30a65270bde19f82b2932871a1879229a77cf
- languageName: node
- linkType: hard
-
-"streamx@npm:^2.12.0, streamx@npm:^2.12.5, streamx@npm:^2.13.2, streamx@npm:^2.14.0, streamx@npm:^2.15.0, streamx@npm:^2.21.0":
- version: 2.23.0
- resolution: "streamx@npm:2.23.0"
- dependencies:
- events-universal: "npm:^1.0.0"
- fast-fifo: "npm:^1.3.2"
- text-decoder: "npm:^1.1.0"
- checksum: 10/4969d7032b16497172afa2f8ac889d137764963ae564daf1611a03225dd62d9316d51de8098b5866d21722babde71353067184e7a3e9795d6dc17c902904a780
- languageName: node
- linkType: hard
-
-"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3":
- version: 4.2.3
- resolution: "string-width@npm:4.2.3"
- dependencies:
- emoji-regex: "npm:^8.0.0"
- is-fullwidth-code-point: "npm:^3.0.0"
- strip-ansi: "npm:^6.0.1"
- checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
- languageName: node
- linkType: hard
-
-"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
- version: 5.1.2
- resolution: "string-width@npm:5.1.2"
- dependencies:
- eastasianwidth: "npm:^0.2.0"
- emoji-regex: "npm:^9.2.2"
- strip-ansi: "npm:^7.0.1"
- checksum: 10/7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193
- languageName: node
- linkType: hard
-
-"string.prototype.matchall@npm:^4.0.12":
- version: 4.0.12
- resolution: "string.prototype.matchall@npm:4.0.12"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.3"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.6"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.0.0"
- get-intrinsic: "npm:^1.2.6"
- gopd: "npm:^1.2.0"
- has-symbols: "npm:^1.1.0"
- internal-slot: "npm:^1.1.0"
- regexp.prototype.flags: "npm:^1.5.3"
- set-function-name: "npm:^2.0.2"
- side-channel: "npm:^1.1.0"
- checksum: 10/e4ab34b9e7639211e6c5e9759adb063028c5c5c4fc32ad967838b2bd1e5ce83a66ae8ec755d24a79302849f090b59194571b2c33471e86e7821b21c0f56df316
- languageName: node
- linkType: hard
-
-"string.prototype.repeat@npm:^1.0.0":
- version: 1.0.0
- resolution: "string.prototype.repeat@npm:1.0.0"
- dependencies:
- define-properties: "npm:^1.1.3"
- es-abstract: "npm:^1.17.5"
- checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e
- languageName: node
- linkType: hard
-
-"string.prototype.trim@npm:^1.2.10":
- version: 1.2.10
- resolution: "string.prototype.trim@npm:1.2.10"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.2"
- define-data-property: "npm:^1.1.4"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.5"
- es-object-atoms: "npm:^1.0.0"
- has-property-descriptors: "npm:^1.0.2"
- checksum: 10/47bb63cd2470a64bc5e2da1e570d369c016ccaa85c918c3a8bb4ab5965120f35e66d1f85ea544496fac84b9207a6b722adf007e6c548acd0813e5f8a82f9712a
- languageName: node
- linkType: hard
-
-"string.prototype.trimend@npm:^1.0.9":
- version: 1.0.9
- resolution: "string.prototype.trimend@npm:1.0.9"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.2"
- define-properties: "npm:^1.2.1"
- es-object-atoms: "npm:^1.0.0"
- checksum: 10/140c73899b6747de9e499c7c2e7a83d549c47a26fa06045b69492be9cfb9e2a95187499a373983a08a115ecff8bc3bd7b0fb09b8ff72fb2172abe766849272ef
- languageName: node
- linkType: hard
-
-"string.prototype.trimstart@npm:^1.0.8":
- version: 1.0.8
- resolution: "string.prototype.trimstart@npm:1.0.8"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-object-atoms: "npm:^1.0.0"
- checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674
- languageName: node
- linkType: hard
-
-"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0":
- version: 1.3.0
- resolution: "string_decoder@npm:1.3.0"
- dependencies:
- safe-buffer: "npm:~5.2.0"
- checksum: 10/54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56
- languageName: node
- linkType: hard
-
-"string_decoder@npm:~1.1.1":
- version: 1.1.1
- resolution: "string_decoder@npm:1.1.1"
- dependencies:
- safe-buffer: "npm:~5.1.0"
- checksum: 10/7c41c17ed4dea105231f6df208002ebddd732e8e9e2d619d133cecd8e0087ddfd9587d2feb3c8caf3213cbd841ada6d057f5142cae68a4e62d3540778d9819b4
- languageName: node
- linkType: hard
-
-"stringify-entities@npm:^4.0.0":
- version: 4.0.4
- resolution: "stringify-entities@npm:4.0.4"
- dependencies:
- character-entities-html4: "npm:^2.0.0"
- character-entities-legacy: "npm:^3.0.0"
- checksum: 10/42bd2f37528795a7b4386bd39dc4699515fb0f0b8c418a6bb29ae205ce66eaff9e8801a2bee65b8049c918c9475a71c7e5911f6a88c19f1d84ebdcba3d881a2d
- languageName: node
- linkType: hard
-
-"stringify-object@npm:^3.2.1":
- version: 3.3.0
- resolution: "stringify-object@npm:3.3.0"
- dependencies:
- get-own-enumerable-property-symbols: "npm:^3.0.0"
- is-obj: "npm:^1.0.1"
- is-regexp: "npm:^1.0.0"
- checksum: 10/973782f09a3df3f39a2cf07dbf43fb9ba6cb32976f3616cd0f6c10e0a5c5415dd72b7b700e72920e8da2bf57c3001b8e37b5af7174bab9a748ce0416989e19b1
- languageName: node
- linkType: hard
-
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
- version: 6.0.1
- resolution: "strip-ansi@npm:6.0.1"
- dependencies:
- ansi-regex: "npm:^5.0.1"
- checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^7.0.1":
- version: 7.1.2
- resolution: "strip-ansi@npm:7.1.2"
- dependencies:
- ansi-regex: "npm:^6.0.1"
- checksum: 10/db0e3f9654e519c8a33c50fc9304d07df5649388e7da06d3aabf66d29e5ad65d5e6315d8519d409c15b32fa82c1df7e11ed6f8cd50b0e4404463f0c9d77c8d0b
- languageName: node
- linkType: hard
-
-"strip-bom@npm:^3.0.0":
- version: 3.0.0
- resolution: "strip-bom@npm:3.0.0"
- checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b
- languageName: node
- linkType: hard
-
-"strip-bom@npm:^4.0.0":
- version: 4.0.0
- resolution: "strip-bom@npm:4.0.0"
- checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3
- languageName: node
- linkType: hard
-
-"strip-final-newline@npm:^2.0.0":
- version: 2.0.0
- resolution: "strip-final-newline@npm:2.0.0"
- checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64
- languageName: node
- linkType: hard
-
-"strip-indent@npm:^3.0.0":
- version: 3.0.0
- resolution: "strip-indent@npm:3.0.0"
- dependencies:
- min-indent: "npm:^1.0.0"
- checksum: 10/18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530
- languageName: node
- linkType: hard
-
-"strip-json-comments@npm:^3.1.1":
- version: 3.1.1
- resolution: "strip-json-comments@npm:3.1.1"
- checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
- languageName: node
- linkType: hard
-
-"strip-json-comments@npm:^5.0.2":
- version: 5.0.3
- resolution: "strip-json-comments@npm:5.0.3"
- checksum: 10/3ccbf26f278220f785e4b71f8a719a6a063d72558cc63cb450924254af258a4f4c008b8c9b055373a680dc7bd525be9e543ad742c177f8a7667e0b726258e0e4
- languageName: node
- linkType: hard
-
-"strip-json-comments@npm:~2.0.1":
- version: 2.0.1
- resolution: "strip-json-comments@npm:2.0.1"
- checksum: 10/1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1
- languageName: node
- linkType: hard
-
-"strip-outer@npm:^1.0.1":
- version: 1.0.1
- resolution: "strip-outer@npm:1.0.1"
- dependencies:
- escape-string-regexp: "npm:^1.0.2"
- checksum: 10/f8d65d33ca2b49aabc66bb41d689dda7b8b9959d320e3a40a2ef4d7079ff2f67ffb72db43f179f48dbf9495c2e33742863feab7a584d180fa62505439162c191
- languageName: node
- linkType: hard
-
-"style-to-js@npm:^1.0.0":
- version: 1.1.21
- resolution: "style-to-js@npm:1.1.21"
- dependencies:
- style-to-object: "npm:1.0.14"
- checksum: 10/5e30b4c52ed4e0294324adab2a43a0438b5495a77a72a6b1258637eebfc4dc8e0614f5ac7bf38a2f514879b3b448215d01fecf1f8d7468b8b95d90bed1d05d57
- languageName: node
- linkType: hard
-
-"style-to-object@npm:1.0.14":
- version: 1.0.14
- resolution: "style-to-object@npm:1.0.14"
- dependencies:
- inline-style-parser: "npm:0.2.7"
- checksum: 10/06b86a5cf435dafac908d19082842983f9052d8cf3682915b1bd9251e3fe9b8065dbd2aef060dc5dfa0fa2ee24d717b587a5205f571513a10f30e3947f9d28ff
- languageName: node
- linkType: hard
-
-"styled-components@npm:^6.1.1":
- version: 6.2.0
- resolution: "styled-components@npm:6.2.0"
- dependencies:
- "@emotion/is-prop-valid": "npm:1.2.2"
- "@emotion/unitless": "npm:0.8.1"
- "@types/stylis": "npm:4.2.7"
- css-to-react-native: "npm:3.2.0"
- csstype: "npm:3.2.3"
- postcss: "npm:8.4.49"
- shallowequal: "npm:1.1.0"
- stylis: "npm:4.3.6"
- tslib: "npm:2.6.2"
- peerDependencies:
- react: ">= 16.8.0"
- react-dom: ">= 16.8.0"
- checksum: 10/9d39fdeb9f446dd0d005fa18115cffa5b146d153232c2654dd452059411851979a2a4259485d5b79e3cb53c3dc3438b164b03b240b67685ee76ed9979ad4849d
- languageName: node
- linkType: hard
-
-"styled-theming@npm:^2.2.0":
- version: 2.2.0
- resolution: "styled-theming@npm:2.2.0"
- checksum: 10/aa3cce463766f434adf341c2c4c7b1e271768c7af16c23fc207de5fc0ffe08e3364cbfa1b606c35f34ec319e8ba3aabbb87ab5707d76f723cf6180aa672b45a1
- languageName: node
- linkType: hard
-
-"stylis@npm:4.3.6":
- version: 4.3.6
- resolution: "stylis@npm:4.3.6"
- checksum: 10/6ebe8a37827124e0caf0704c13d39c121f6e6a8433eb8c67cfce508477b24a4434d1731198ba0b6e453655022bbf5beda93585f38ff420545e5356f925f83761
- languageName: node
- linkType: hard
-
-"stylus-lookup@npm:^3.0.1":
- version: 3.0.2
- resolution: "stylus-lookup@npm:3.0.2"
- dependencies:
- commander: "npm:^2.8.1"
- debug: "npm:^4.1.0"
- bin:
- stylus-lookup: bin/cli.js
- checksum: 10/94da8b81ef16f73eae0dc734b18165e6f84d41960bc85fb39d9b028f4b6d8c4c2983ce52492751a3eb2e8e65e3e1507adc6739cc3c7893754672546c6af22f62
- languageName: node
- linkType: hard
-
-"sucrase@npm:^3.35.0":
- version: 3.35.1
- resolution: "sucrase@npm:3.35.1"
- dependencies:
- "@jridgewell/gen-mapping": "npm:^0.3.2"
- commander: "npm:^4.0.0"
- lines-and-columns: "npm:^1.1.6"
- mz: "npm:^2.7.0"
- pirates: "npm:^4.0.1"
- tinyglobby: "npm:^0.2.11"
- ts-interface-checker: "npm:^0.1.9"
- bin:
- sucrase: bin/sucrase
- sucrase-node: bin/sucrase-node
- checksum: 10/539f5c6ebc1ff8d449a89eb52b8c8944a730b9840ddadbd299a7d89ebcf16c3f4bc9aa59e1f2e112a502e5cf1508f7e02065f0e97c0435eb9a7058e997dfff5a
- languageName: node
- linkType: hard
-
-"sumchecker@npm:^3.0.1":
- version: 3.0.1
- resolution: "sumchecker@npm:3.0.1"
- dependencies:
- debug: "npm:^4.1.0"
- checksum: 10/5c69776ce2b53040c952cfbca0f7b487b1ee993c55b6d5523f674ec075f30e031fd84b6706dc8ccc4deb9761b58f9925be8806a316e5eedff2286bb48cb75044
- languageName: node
- linkType: hard
-
-"supports-color@npm:^5.3.0":
- version: 5.5.0
- resolution: "supports-color@npm:5.5.0"
- dependencies:
- has-flag: "npm:^3.0.0"
- checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b
- languageName: node
- linkType: hard
-
-"supports-color@npm:^7.1.0":
- version: 7.2.0
- resolution: "supports-color@npm:7.2.0"
- dependencies:
- has-flag: "npm:^4.0.0"
- checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a
- languageName: node
- linkType: hard
-
-"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1":
- version: 8.1.1
- resolution: "supports-color@npm:8.1.1"
- dependencies:
- has-flag: "npm:^4.0.0"
- checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282
- languageName: node
- linkType: hard
-
-"supports-preserve-symlinks-flag@npm:^1.0.0":
- version: 1.0.0
- resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
- checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e
- languageName: node
- linkType: hard
-
-"symbol-tree@npm:^3.2.4":
- version: 3.2.4
- resolution: "symbol-tree@npm:3.2.4"
- checksum: 10/c09a00aadf279d47d0c5c46ca3b6b2fbaeb45f0a184976d599637d412d3a70bbdc043ff33effe1206dea0e36e0ad226cb957112e7ce9a4bf2daedf7fa4f85c53
- languageName: node
- linkType: hard
-
-"tapable@npm:^2.0.0, tapable@npm:^2.2.0, tapable@npm:^2.2.1, tapable@npm:^2.3.0":
- version: 2.3.0
- resolution: "tapable@npm:2.3.0"
- checksum: 10/496a841039960533bb6e44816a01fffc2a1eb428bb2051ecab9e87adf07f19e1f937566cbbbb09dceff31163c0ffd81baafcad84db900b601f0155dd0b37e9f2
- languageName: node
- linkType: hard
-
-"tar-fs@npm:^2.0.0, tar-fs@npm:^2.1.4":
- version: 2.1.4
- resolution: "tar-fs@npm:2.1.4"
- dependencies:
- chownr: "npm:^1.1.1"
- mkdirp-classic: "npm:^0.5.2"
- pump: "npm:^3.0.0"
- tar-stream: "npm:^2.1.4"
- checksum: 10/bdf7e3cb039522e39c6dae3084b1bca8d7bcc1de1906eae4a1caea6a2250d22d26dcc234118bf879b345d91ebf250a744b196e379334a4abcbb109a78db7d3be
- languageName: node
- linkType: hard
-
-"tar-fs@npm:^3.0.7":
- version: 3.1.1
- resolution: "tar-fs@npm:3.1.1"
- dependencies:
- bare-fs: "npm:^4.0.1"
- bare-path: "npm:^3.0.0"
- pump: "npm:^3.0.0"
- tar-stream: "npm:^3.1.5"
- dependenciesMeta:
- bare-fs:
- optional: true
- bare-path:
- optional: true
- checksum: 10/f7f7540b563e10541dc0b95f710c68fc1fccde0c1177b4d3bab2023c6d18da19d941a8697fdc1abff54914b71b6e5f2dfb0455572b5c8993b2ab76571cbbc923
- languageName: node
- linkType: hard
-
-"tar-stream@npm:^2.1.4":
- version: 2.2.0
- resolution: "tar-stream@npm:2.2.0"
- dependencies:
- bl: "npm:^4.0.3"
- end-of-stream: "npm:^1.4.1"
- fs-constants: "npm:^1.0.0"
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^3.1.1"
- checksum: 10/1a52a51d240c118cbcd30f7368ea5e5baef1eac3e6b793fb1a41e6cd7319296c79c0264ccc5859f5294aa80f8f00b9239d519e627b9aade80038de6f966fec6a
- languageName: node
- linkType: hard
-
-"tar-stream@npm:^3.0.0, tar-stream@npm:^3.1.5":
- version: 3.1.7
- resolution: "tar-stream@npm:3.1.7"
- dependencies:
- b4a: "npm:^1.6.4"
- fast-fifo: "npm:^1.2.0"
- streamx: "npm:^2.15.0"
- checksum: 10/b21a82705a72792544697c410451a4846af1f744176feb0ff11a7c3dd0896961552e3def5e1c9a6bbee4f0ae298b8252a1f4c9381e9f991553b9e4847976f05c
- languageName: node
- linkType: hard
-
-"tar@npm:^6.1.12":
- version: 6.2.1
- resolution: "tar@npm:6.2.1"
- dependencies:
- chownr: "npm:^2.0.0"
- fs-minipass: "npm:^2.0.0"
- minipass: "npm:^5.0.0"
- minizlib: "npm:^2.1.1"
- mkdirp: "npm:^1.0.3"
- yallist: "npm:^4.0.0"
- checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0
- languageName: node
- linkType: hard
-
-"tar@npm:^7.5.2":
- version: 7.5.2
- resolution: "tar@npm:7.5.2"
- dependencies:
- "@isaacs/fs-minipass": "npm:^4.0.0"
- chownr: "npm:^3.0.0"
- minipass: "npm:^7.1.2"
- minizlib: "npm:^3.1.0"
- yallist: "npm:^5.0.0"
- checksum: 10/dbad9c9a07863cd1bdf8801d563b3280aa7dd0f4a6cead779ff7516d148dc80b4c04639ba732d47f91f04002f57e8c3c6573a717d649daecaac74ce71daa7ad3
- languageName: node
- linkType: hard
-
-"teex@npm:^1.0.1":
- version: 1.0.1
- resolution: "teex@npm:1.0.1"
- dependencies:
- streamx: "npm:^2.12.5"
- checksum: 10/36bf7ce8bb5eb428ad7b14b695ee7fb0a02f09c1a9d8181cc42531208543a920b299d711bf78dad4ff9bcf36ac437ae8e138053734746076e3e0e7d6d76eef64
- languageName: node
- linkType: hard
-
-"temp-file@npm:^3.4.0":
- version: 3.4.0
- resolution: "temp-file@npm:3.4.0"
- dependencies:
- async-exit-hook: "npm:^2.0.1"
- fs-extra: "npm:^10.0.0"
- checksum: 10/5b7132ff488e91ae928c3e81b25e308d8fc590c08a08fb37b0f1c1e8d186e65d69472abd1af1ea11e1162db2a2e6a7970214c827c92c7c6cebbc91bb7678b037
- languageName: node
- linkType: hard
-
-"temp@npm:^0.9.4":
- version: 0.9.4
- resolution: "temp@npm:0.9.4"
- dependencies:
- mkdirp: "npm:^0.5.1"
- rimraf: "npm:~2.6.2"
- checksum: 10/38d40564656c6e8e3caee41c592b3cc076d257ab4746ae4a6a179c44eb4a6d3e8a19a08c7716c8e88756bb898d6e56dd0a9e0408249bbcb3c990a178c34d0571
- languageName: node
- linkType: hard
-
-"terser-webpack-plugin@npm:^5.3.16":
- version: 5.3.16
- resolution: "terser-webpack-plugin@npm:5.3.16"
- dependencies:
- "@jridgewell/trace-mapping": "npm:^0.3.25"
- jest-worker: "npm:^27.4.5"
- schema-utils: "npm:^4.3.0"
- serialize-javascript: "npm:^6.0.2"
- terser: "npm:^5.31.1"
- peerDependencies:
- webpack: ^5.1.0
- peerDependenciesMeta:
- "@swc/core":
- optional: true
- esbuild:
- optional: true
- uglify-js:
- optional: true
- checksum: 10/09dfbff602acfa114cdd174254b69a04adbc47856021ab351e37982202fd1ec85e0b62ffd5864c98beb8e96aef2f43da490b3448b4541db539c2cff6607394a6
- languageName: node
- linkType: hard
-
-"terser@npm:^5.10.0, terser@npm:^5.31.1":
- version: 5.44.1
- resolution: "terser@npm:5.44.1"
- dependencies:
- "@jridgewell/source-map": "npm:^0.3.3"
- acorn: "npm:^8.15.0"
- commander: "npm:^2.20.0"
- source-map-support: "npm:~0.5.20"
- bin:
- terser: bin/terser
- checksum: 10/516ece205b7db778c4eddb287a556423cb776b7ca591b06270e558a76aa2d57c8d71d9c3c4410b276d3426beb03516fff7d96ff8b517e10730a72908810c6e33
- languageName: node
- linkType: hard
-
-"testcontainers@npm:^10.4.0":
- version: 10.28.0
- resolution: "testcontainers@npm:10.28.0"
- dependencies:
- "@balena/dockerignore": "npm:^1.0.2"
- "@types/dockerode": "npm:^3.3.35"
- archiver: "npm:^7.0.1"
- async-lock: "npm:^1.4.1"
- byline: "npm:^5.0.0"
- debug: "npm:^4.3.5"
- docker-compose: "npm:^0.24.8"
- dockerode: "npm:^4.0.5"
- get-port: "npm:^7.1.0"
- proper-lockfile: "npm:^4.1.2"
- properties-reader: "npm:^2.3.0"
- ssh-remote-port-forward: "npm:^1.0.4"
- tar-fs: "npm:^3.0.7"
- tmp: "npm:^0.2.3"
- undici: "npm:^5.29.0"
- checksum: 10/434d3677e10a114805420f2420831a8eae4091acdaf242787fb100a8755140af0e11eab3932cdb29267f0869af22d0b572532f72ee5450d60f63f3fed30d098c
- languageName: node
- linkType: hard
-
-"text-decoder@npm:^1.1.0":
- version: 1.2.3
- resolution: "text-decoder@npm:1.2.3"
- dependencies:
- b4a: "npm:^1.6.4"
- checksum: 10/bcdec33c0f070aeac38e46e4cafdcd567a58473ed308bdf75260bfbd8f7dc76acbc0b13226afaec4a169d0cb44cec2ab89c57b6395ccf02e941eaebbe19e124a
- languageName: node
- linkType: hard
-
-"text-table@npm:^0.2.0":
- version: 0.2.0
- resolution: "text-table@npm:0.2.0"
- checksum: 10/4383b5baaeffa9bb4cda2ac33a4aa2e6d1f8aaf811848bf73513a9b88fd76372dc461f6fd6d2e9cb5100f48b473be32c6f95bd983509b7d92bb4d92c10747452
- languageName: node
- linkType: hard
-
-"thenify-all@npm:^1.0.0":
- version: 1.6.0
- resolution: "thenify-all@npm:1.6.0"
- dependencies:
- thenify: "npm:>= 3.1.0 < 4"
- checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e
- languageName: node
- linkType: hard
-
-"thenify@npm:>= 3.1.0 < 4":
- version: 3.3.1
- resolution: "thenify@npm:3.3.1"
- dependencies:
- any-promise: "npm:^1.0.0"
- checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d
- languageName: node
- linkType: hard
-
-"thread-stream@npm:^3.0.0":
- version: 3.1.0
- resolution: "thread-stream@npm:3.1.0"
- dependencies:
- real-require: "npm:^0.2.0"
- checksum: 10/ea2d816c4f6077a7062fac5414a88e82977f807c82ee330938fb9691fe11883bb03f078551c0518bb649c239e47ba113d44014fcbb5db42c5abd5996f35e4213
- languageName: node
- linkType: hard
-
-"through2@npm:^2.0.1, through2@npm:~2.0.3":
- version: 2.0.5
- resolution: "through2@npm:2.0.5"
- dependencies:
- readable-stream: "npm:~2.3.6"
- xtend: "npm:~4.0.1"
- checksum: 10/cd71f7dcdc7a8204fea003a14a433ef99384b7d4e31f5497e1f9f622b3cf3be3691f908455f98723bdc80922a53af7fa10c3b7abbe51c6fd3d536dbc7850e2c4
- languageName: node
- linkType: hard
-
-"through2@npm:^4.0.0":
- version: 4.0.2
- resolution: "through2@npm:4.0.2"
- dependencies:
- readable-stream: "npm:3"
- checksum: 10/72c246233d9a989bbebeb6b698ef0b7b9064cb1c47930f79b25d87b6c867e075432811f69b7b2ac8da00ca308191c507bdab913944be8019ac43b036ce88f6ba
- languageName: node
- linkType: hard
-
-"through@npm:^2.3.6, through@npm:~2.3.4":
- version: 2.3.8
- resolution: "through@npm:2.3.8"
- checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198
- languageName: node
- linkType: hard
-
-"thunky@npm:^1.0.2":
- version: 1.1.0
- resolution: "thunky@npm:1.1.0"
- checksum: 10/825e3bd07ab3c9fd6f753c457a60957c628cacba5dd0656fd93b037c445e2828b43cf0805a9f2b16b0c5f5a10fd561206271acddb568df4f867f0aea0eb2772f
- languageName: node
- linkType: hard
-
-"tiny-invariant@npm:^1.0.6":
- version: 1.3.3
- resolution: "tiny-invariant@npm:1.3.3"
- checksum: 10/5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe
- languageName: node
- linkType: hard
-
-"tiny-typed-emitter@npm:^2.1.0":
- version: 2.1.0
- resolution: "tiny-typed-emitter@npm:2.1.0"
- checksum: 10/709bca410054e08df4dc29d5ea0916328bb2900d60245c6a743068ea223887d9fd2c945b6070eb20336275a557a36c2808e5c87d2ed4b60633458632be4a3e10
- languageName: node
- linkType: hard
-
-"tinyexec@npm:^0.3.2":
- version: 0.3.2
- resolution: "tinyexec@npm:0.3.2"
- checksum: 10/b9d5fed3166fb1acd1e7f9a89afcd97ccbe18b9c1af0278e429455f6976d69271ba2d21797e7c36d57d6b05025e525d2882d88c2ab435b60d1ddf2fea361de57
- languageName: node
- linkType: hard
-
-"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13":
- version: 0.2.15
- resolution: "tinyglobby@npm:0.2.15"
- dependencies:
- fdir: "npm:^6.5.0"
- picomatch: "npm:^4.0.3"
- checksum: 10/d72bd826a8b0fa5fa3929e7fe5ba48fceb2ae495df3a231b6c5408cd7d8c00b58ab5a9c2a76ba56a62ee9b5e083626f1f33599734bed1ffc4b792406408f0ca2
- languageName: node
- linkType: hard
-
-"tldts-core@npm:^7.0.19":
- version: 7.0.19
- resolution: "tldts-core@npm:7.0.19"
- checksum: 10/809229186fdf9202711a09293f5c6ab21d26207f34805a98faee59b6c295806cc88c102553e1f106c5d499228b0f22418c9c5226f6dbf81810eaa3c11c0b022a
- languageName: node
- linkType: hard
-
-"tldts@npm:^7.0.8":
- version: 7.0.19
- resolution: "tldts@npm:7.0.19"
- dependencies:
- tldts-core: "npm:^7.0.19"
- bin:
- tldts: bin/cli.js
- checksum: 10/a47f6416bf3790e3313293f00913e14fae44e3315d9ff975c7cae11688ce3532f39d342f45213a2f60a2ac29c3f57f46c870e81d4545724b761891c82658a1d9
- languageName: node
- linkType: hard
-
-"tmp-promise@npm:^3.0.2":
- version: 3.0.3
- resolution: "tmp-promise@npm:3.0.3"
- dependencies:
- tmp: "npm:^0.2.0"
- checksum: 10/0ca65b4f233b1d2b01e17a7a62961d32923e4b27383a370bf4d8d52f1062d79c3250e6b6b706ec390e73c9c58c13dc130b3855eedc89c86c7d90beb28b8382e5
- languageName: node
- linkType: hard
-
-"tmp@npm:^0.2.0, tmp@npm:^0.2.1, tmp@npm:^0.2.3":
- version: 0.2.5
- resolution: "tmp@npm:0.2.5"
- checksum: 10/dd4b78b32385eab4899d3ae296007b34482b035b6d73e1201c4a9aede40860e90997a1452c65a2d21aee73d53e93cd167d741c3db4015d90e63b6d568a93d7ec
- languageName: node
- linkType: hard
-
-"to-buffer@npm:^1.2.0, to-buffer@npm:^1.2.1, to-buffer@npm:^1.2.2":
- version: 1.2.2
- resolution: "to-buffer@npm:1.2.2"
- dependencies:
- isarray: "npm:^2.0.5"
- safe-buffer: "npm:^5.2.1"
- typed-array-buffer: "npm:^1.0.3"
- checksum: 10/69d806c20524ff1e4c44d49276bc96ff282dcae484780a3974e275dabeb75651ea430b074a2a4023701e63b3e1d87811cd82c0972f35280fe5461710e4872aba
- languageName: node
- linkType: hard
-
-"to-readable-stream@npm:^1.0.0":
- version: 1.0.0
- resolution: "to-readable-stream@npm:1.0.0"
- checksum: 10/a99e23d49777d9d03686f03cc0bbbcb4648d991648990a98bc93b55cf91a2ae830c41b5efa36802f1c00a34bba93bd33b10346772fd3f49bcf1667a99c85f354
- languageName: node
- linkType: hard
-
-"to-regex-range@npm:^5.0.1":
- version: 5.0.1
- resolution: "to-regex-range@npm:5.0.1"
- dependencies:
- is-number: "npm:^7.0.0"
- checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a
- languageName: node
- linkType: hard
-
-"to-through@npm:^3.0.0":
- version: 3.0.0
- resolution: "to-through@npm:3.0.0"
- dependencies:
- streamx: "npm:^2.12.5"
- checksum: 10/404ad1a346babab53d75d3b4deb779916760fc9e605f4e64ec789366edf08e75ad592a262ca566e7864f77c03375151dcfac4744ff7fd52417cb2a2e9fc60795
- languageName: node
- linkType: hard
-
-"toggle-selection@npm:^1.0.6":
- version: 1.0.6
- resolution: "toggle-selection@npm:1.0.6"
- checksum: 10/9a0ed0ecbaac72b4944888dacd79fe0a55eeea76120a4c7e46b3bb3d85b24f086e90560bb22f5a965654a25ab43d79ec47dfdb3f1850ba740b14c5a50abc7040
- languageName: node
- linkType: hard
-
-"toidentifier@npm:~1.0.1":
- version: 1.0.1
- resolution: "toidentifier@npm:1.0.1"
- checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45
- languageName: node
- linkType: hard
-
-"tough-cookie@npm:^4.1.4":
- version: 4.1.4
- resolution: "tough-cookie@npm:4.1.4"
- dependencies:
- psl: "npm:^1.1.33"
- punycode: "npm:^2.1.1"
- universalify: "npm:^0.2.0"
- url-parse: "npm:^1.5.3"
- checksum: 10/75663f4e2cd085f16af0b217e4218772adf0617fb3227171102618a54ce0187a164e505d61f773ed7d65988f8ff8a8f935d381f87da981752c1171b076b4afac
- languageName: node
- linkType: hard
-
-"tr46@npm:^5.1.0":
- version: 5.1.1
- resolution: "tr46@npm:5.1.1"
- dependencies:
- punycode: "npm:^2.3.1"
- checksum: 10/833a0e1044574da5790148fd17866d4ddaea89e022de50279967bcd6b28b4ce0d30d59eb3acf9702b60918975b3bad481400337e3a2e6326cffa5c77b874753d
- languageName: node
- linkType: hard
-
-"tr46@npm:~0.0.3":
- version: 0.0.3
- resolution: "tr46@npm:0.0.3"
- checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695
- languageName: node
- linkType: hard
-
-"tree-kill@npm:^1.2.2":
- version: 1.2.2
- resolution: "tree-kill@npm:1.2.2"
- bin:
- tree-kill: cli.js
- checksum: 10/49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7
- languageName: node
- linkType: hard
-
-"trim-lines@npm:^3.0.0":
- version: 3.0.1
- resolution: "trim-lines@npm:3.0.1"
- checksum: 10/7a1325e4ce8ff7e9e52007600e9c9862a166d0db1f1cf0c9357e359e410acab1278fcd91cc279dfa5123fc37b69f080de02f471e91dbbc61b155b9ca92597929
- languageName: node
- linkType: hard
-
-"trim-newlines@npm:^3.0.0":
- version: 3.0.1
- resolution: "trim-newlines@npm:3.0.1"
- checksum: 10/b530f3fadf78e570cf3c761fb74fef655beff6b0f84b29209bac6c9622db75ad1417f4a7b5d54c96605dcd72734ad44526fef9f396807b90839449eb543c6206
- languageName: node
- linkType: hard
-
-"trim-repeated@npm:^1.0.0":
- version: 1.0.0
- resolution: "trim-repeated@npm:1.0.0"
- dependencies:
- escape-string-regexp: "npm:^1.0.2"
- checksum: 10/e25c235305b82c43f1d64a67a71226c406b00281755e4c2c4f3b1d0b09c687a535dd3c4483327f949f28bb89dc400a0bc5e5b749054f4b99f49ebfe48ba36496
- languageName: node
- linkType: hard
-
-"trough@npm:^2.0.0":
- version: 2.2.0
- resolution: "trough@npm:2.2.0"
- checksum: 10/999c1cb3db6ec63e1663f911146a90125065da37f66ba342b031d53edb22a62f56c1f934bbc61a55b2b29dd74207544cfd78875b414665c1ffadcd9a9a009eeb
- languageName: node
- linkType: hard
-
-"truncate-utf8-bytes@npm:^1.0.0":
- version: 1.0.2
- resolution: "truncate-utf8-bytes@npm:1.0.2"
- dependencies:
- utf8-byte-length: "npm:^1.0.1"
- checksum: 10/366e47a0e22cc271d37eb4e62820453fb877784b55b37218842758b7aa1d402eedd0f8833cfb5d6f7a6cae1535d84289bd5e32c4ee962d2a86962fb7038a6983
- languageName: node
- linkType: hard
-
-"ts-api-utils@npm:^1.0.1":
- version: 1.4.3
- resolution: "ts-api-utils@npm:1.4.3"
- peerDependencies:
- typescript: ">=4.2.0"
- checksum: 10/713c51e7392323305bd4867422ba130fbf70873ef6edbf80ea6d7e9c8f41eeeb13e40e8e7fe7cd321d74e4864777329797077268c9f570464303a1723f1eed39
- languageName: node
- linkType: hard
-
-"ts-custom-error@npm:^3.2.1":
- version: 3.3.1
- resolution: "ts-custom-error@npm:3.3.1"
- checksum: 10/92e3a2c426bf6049579aeb889b6f9787e0cfb6bb715a1457e2571708be7fe739662ca9eb2a8c61b72a2d32189645f4fbcf1a370087e030d922e9e2a7b7c1c994
- languageName: node
- linkType: hard
-
-"ts-graphviz@npm:^1.5.0":
- version: 1.8.2
- resolution: "ts-graphviz@npm:1.8.2"
- checksum: 10/969b06332ca622c148f7b404569af1b972bbe7ee9ba1226350dd0d99bc92c1c95eb6bf9e69aafce51a6c2493a1342b25a8edd6883f27bd516778d401b2a3623f
- languageName: node
- linkType: hard
-
-"ts-interface-checker@npm:^0.1.9":
- version: 0.1.13
- resolution: "ts-interface-checker@npm:0.1.13"
- checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00
- languageName: node
- linkType: hard
-
-"ts-loader@npm:^9.5.1":
- version: 9.5.4
- resolution: "ts-loader@npm:9.5.4"
- dependencies:
- chalk: "npm:^4.1.0"
- enhanced-resolve: "npm:^5.0.0"
- micromatch: "npm:^4.0.0"
- semver: "npm:^7.3.4"
- source-map: "npm:^0.7.4"
- peerDependencies:
- typescript: "*"
- webpack: ^5.0.0
- checksum: 10/a9977dce1cda5af08010ae92d96fb57981ce52cb6123054b232fc7f71e151969f45e36ca055c0babe01b3b97dcba54b631ad7a50e3e96e839dfd7033c385de05
- languageName: node
- linkType: hard
-
-"tsconfig-paths@npm:^3.10.1, tsconfig-paths@npm:^3.15.0":
- version: 3.15.0
- resolution: "tsconfig-paths@npm:3.15.0"
- dependencies:
- "@types/json5": "npm:^0.0.29"
- json5: "npm:^1.0.2"
- minimist: "npm:^1.2.6"
- strip-bom: "npm:^3.0.0"
- checksum: 10/2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14
- languageName: node
- linkType: hard
-
-"tsconfig-paths@npm:^4.2.0":
- version: 4.2.0
- resolution: "tsconfig-paths@npm:4.2.0"
- dependencies:
- json5: "npm:^2.2.2"
- minimist: "npm:^1.2.6"
- strip-bom: "npm:^3.0.0"
- checksum: 10/5e55cc2fb6b800eb72011522e10edefccb45b1f9af055681a51354c9b597d1390c6fa9cc356b8c7529f195ac8a90a78190d563159f3a1eed10e01bbd4d01a8ab
- languageName: node
- linkType: hard
-
-"tslib@npm:2.6.2":
- version: 2.6.2
- resolution: "tslib@npm:2.6.2"
- checksum: 10/bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca
- languageName: node
- linkType: hard
-
-"tslib@npm:^1.8.1, tslib@npm:^1.9.0":
- version: 1.14.1
- resolution: "tslib@npm:1.14.1"
- checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb
- languageName: node
- linkType: hard
-
-"tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1":
- version: 2.8.1
- resolution: "tslib@npm:2.8.1"
- checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7
- languageName: node
- linkType: hard
-
-"tsup@npm:*":
- version: 8.5.1
- resolution: "tsup@npm:8.5.1"
- dependencies:
- bundle-require: "npm:^5.1.0"
- cac: "npm:^6.7.14"
- chokidar: "npm:^4.0.3"
- consola: "npm:^3.4.0"
- debug: "npm:^4.4.0"
- esbuild: "npm:^0.27.0"
- fix-dts-default-cjs-exports: "npm:^1.0.0"
- joycon: "npm:^3.1.1"
- picocolors: "npm:^1.1.1"
- postcss-load-config: "npm:^6.0.1"
- resolve-from: "npm:^5.0.0"
- rollup: "npm:^4.34.8"
- source-map: "npm:^0.7.6"
- sucrase: "npm:^3.35.0"
- tinyexec: "npm:^0.3.2"
- tinyglobby: "npm:^0.2.11"
- tree-kill: "npm:^1.2.2"
- peerDependencies:
- "@microsoft/api-extractor": ^7.36.0
- "@swc/core": ^1
- postcss: ^8.4.12
- typescript: ">=4.5.0"
- peerDependenciesMeta:
- "@microsoft/api-extractor":
- optional: true
- "@swc/core":
- optional: true
- postcss:
- optional: true
- typescript:
- optional: true
- bin:
- tsup: dist/cli-default.js
- tsup-node: dist/cli-node.js
- checksum: 10/f1927ec2dda93b218b39cd1cac1040902eef66e026261f5c265197c2f660cb5b9e1fb89353d50de5c6a5616463c02800e87e1daad7620b9c9051221d93c66824
- languageName: node
- linkType: hard
-
-"tsutils@npm:^3.21.0":
- version: 3.21.0
- resolution: "tsutils@npm:3.21.0"
- dependencies:
- tslib: "npm:^1.8.1"
- peerDependencies:
- typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
- checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2
- languageName: node
- linkType: hard
-
-"tunnel-agent@npm:^0.6.0":
- version: 0.6.0
- resolution: "tunnel-agent@npm:0.6.0"
- dependencies:
- safe-buffer: "npm:^5.0.1"
- checksum: 10/7f0d9ed5c22404072b2ae8edc45c071772affd2ed14a74f03b4e71b4dd1a14c3714d85aed64abcaaee5fec2efc79002ba81155c708f4df65821b444abb0cfade
- languageName: node
- linkType: hard
-
-"tweetnacl@npm:1.x.x, tweetnacl@npm:^1.0.3":
- version: 1.0.3
- resolution: "tweetnacl@npm:1.0.3"
- checksum: 10/ca122c2f86631f3c0f6d28efb44af2a301d4a557a62a3e2460286b08e97567b258c2212e4ad1cfa22bd6a57edcdc54ba76ebe946847450ab0999e6d48ccae332
- languageName: node
- linkType: hard
-
-"tweetnacl@npm:^0.14.3":
- version: 0.14.5
- resolution: "tweetnacl@npm:0.14.5"
- checksum: 10/04ee27901cde46c1c0a64b9584e04c96c5fe45b38c0d74930710751ea991408b405747d01dfae72f80fc158137018aea94f9c38c651cb9c318f0861a310c3679
- languageName: node
- linkType: hard
-
-"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
- version: 0.4.0
- resolution: "type-check@npm:0.4.0"
- dependencies:
- prelude-ls: "npm:^1.2.1"
- checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec
- languageName: node
- linkType: hard
-
-"type-fest@npm:^0.13.1":
- version: 0.13.1
- resolution: "type-fest@npm:0.13.1"
- checksum: 10/11e9476dc85bf97a71f6844fb67ba8e64a4c7e445724c0f3bd37eb2ddf4bc97c1dc9337bd880b28bce158de1c0cb275c2d03259815a5bf64986727197126ab56
- languageName: node
- linkType: hard
-
-"type-fest@npm:^0.20.2":
- version: 0.20.2
- resolution: "type-fest@npm:0.20.2"
- checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9
- languageName: node
- linkType: hard
-
-"type-fest@npm:^0.21.3":
- version: 0.21.3
- resolution: "type-fest@npm:0.21.3"
- checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f
- languageName: node
- linkType: hard
-
-"type-fest@npm:^0.6.0":
- version: 0.6.0
- resolution: "type-fest@npm:0.6.0"
- checksum: 10/9ecbf4ba279402b14c1a0614b6761bbe95626fab11377291fecd7e32b196109551e0350dcec6af74d97ced1b000ba8060a23eca33157091e642b409c2054ba82
- languageName: node
- linkType: hard
-
-"type-fest@npm:^0.8.1":
- version: 0.8.1
- resolution: "type-fest@npm:0.8.1"
- checksum: 10/fd4a91bfb706aeeb0d326ebd2e9a8ea5263979e5dec8d16c3e469a5bd3a946e014a062ef76c02e3086d3d1c7209a56a20a4caafd0e9f9a5c2ab975084ea3d388
- languageName: node
- linkType: hard
-
-"type-is@npm:~1.6.18":
- version: 1.6.18
- resolution: "type-is@npm:1.6.18"
- dependencies:
- media-typer: "npm:0.3.0"
- mime-types: "npm:~2.1.24"
- checksum: 10/0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4
- languageName: node
- linkType: hard
-
-"type@npm:^2.7.2":
- version: 2.7.3
- resolution: "type@npm:2.7.3"
- checksum: 10/82e99e7795b3de3ecfe685680685e79a77aea515fad9f60b7c55fbf6d43a5c360b1e6e9443354ec8906b38cdf5325829c69f094cb7cd2a1238e85bef9026dc04
- languageName: node
- linkType: hard
-
-"typed-array-buffer@npm:^1.0.3":
- version: 1.0.3
- resolution: "typed-array-buffer@npm:1.0.3"
- dependencies:
- call-bound: "npm:^1.0.3"
- es-errors: "npm:^1.3.0"
- is-typed-array: "npm:^1.1.14"
- checksum: 10/3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80
- languageName: node
- linkType: hard
-
-"typed-array-byte-length@npm:^1.0.3":
- version: 1.0.3
- resolution: "typed-array-byte-length@npm:1.0.3"
- dependencies:
- call-bind: "npm:^1.0.8"
- for-each: "npm:^0.3.3"
- gopd: "npm:^1.2.0"
- has-proto: "npm:^1.2.0"
- is-typed-array: "npm:^1.1.14"
- checksum: 10/269dad101dda73e3110117a9b84db86f0b5c07dad3a9418116fd38d580cab7fc628a4fc167e29b6d7c39da2f53374b78e7cb578b3c5ec7a556689d985d193519
- languageName: node
- linkType: hard
-
-"typed-array-byte-offset@npm:^1.0.4":
- version: 1.0.4
- resolution: "typed-array-byte-offset@npm:1.0.4"
- dependencies:
- available-typed-arrays: "npm:^1.0.7"
- call-bind: "npm:^1.0.8"
- for-each: "npm:^0.3.3"
- gopd: "npm:^1.2.0"
- has-proto: "npm:^1.2.0"
- is-typed-array: "npm:^1.1.15"
- reflect.getprototypeof: "npm:^1.0.9"
- checksum: 10/c2869aa584cdae24ecfd282f20a0f556b13a49a9d5bca1713370bb3c89dff0ccbc5ceb45cb5b784c98f4579e5e3e2a07e438c3a5b8294583e2bd4abbd5104fb5
- languageName: node
- linkType: hard
-
-"typed-array-length@npm:^1.0.7":
- version: 1.0.7
- resolution: "typed-array-length@npm:1.0.7"
- dependencies:
- call-bind: "npm:^1.0.7"
- for-each: "npm:^0.3.3"
- gopd: "npm:^1.0.1"
- is-typed-array: "npm:^1.1.13"
- possible-typed-array-names: "npm:^1.0.0"
- reflect.getprototypeof: "npm:^1.0.6"
- checksum: 10/d6b2f0e81161682d2726eb92b1dc2b0890890f9930f33f9bcf6fc7272895ce66bc368066d273e6677776de167608adc53fcf81f1be39a146d64b630edbf2081c
- languageName: node
- linkType: hard
-
-"typed-styles@npm:^0.0.7":
- version: 0.0.7
- resolution: "typed-styles@npm:0.0.7"
- checksum: 10/24704459dd5119729a5c20d156f60a1a74489e0a6a57fc6bc93a0d167c805675cc3cadd42ae5d99d7906762e951a44bca9558101353c9d37bedbe8b1e6bf6e51
- languageName: node
- linkType: hard
-
-"typedarray-to-buffer@npm:^3.1.5":
- version: 3.1.5
- resolution: "typedarray-to-buffer@npm:3.1.5"
- dependencies:
- is-typedarray: "npm:^1.0.0"
- checksum: 10/7c850c3433fbdf4d04f04edfc751743b8f577828b8e1eb93b95a3bce782d156e267d83e20fb32b3b47813e69a69ab5e9b5342653332f7d21c7d1210661a7a72c
- languageName: node
- linkType: hard
-
-"typescript@npm:^5.5.4":
- version: 5.9.3
- resolution: "typescript@npm:5.9.3"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 10/c089d9d3da2729fd4ac517f9b0e0485914c4b3c26f80dc0cffcb5de1719a17951e92425d55db59515c1a7ddab65808466debb864d0d56dcf43f27007d0709594
- languageName: node
- linkType: hard
-
-"typescript@patch:typescript@npm%3A^5.5.4#optional!builtin":
- version: 5.9.3
- resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 10/696e1b017bc2635f4e0c94eb4435357701008e2f272f553d06e35b494b8ddc60aa221145e286c28ace0c89ee32827a28c2040e3a69bdc108b1a5dc8fb40b72e3
- languageName: node
- linkType: hard
-
-"ufo@npm:^1.6.1":
- version: 1.6.2
- resolution: "ufo@npm:1.6.2"
- checksum: 10/91888f5a6e21a974b9ce2bc18e0a354d8a84f99f6de3acd57c7a85feb3900a8be0e65d26206d2e9333ab9a3d62289381dbd9e283642816922299364663449fd5
- languageName: node
- linkType: hard
-
-"uglify-js@npm:^3.1.4":
- version: 3.19.3
- resolution: "uglify-js@npm:3.19.3"
- bin:
- uglifyjs: bin/uglifyjs
- checksum: 10/6b9639c1985d24580b01bb0ab68e78de310d38eeba7db45bec7850ab4093d8ee464d80ccfaceda9c68d1c366efbee28573b52f95e69ac792354c145acd380b11
- languageName: node
- linkType: hard
-
-"uint8-varint@npm:^2.0.1":
- version: 2.0.4
- resolution: "uint8-varint@npm:2.0.4"
- dependencies:
- uint8arraylist: "npm:^2.0.0"
- uint8arrays: "npm:^5.0.0"
- checksum: 10/51b5984b0d699d820c255f6cd8fa68628f50b8a09f5f063fa8b22438038e56505ab92445ee2da82966c20bcd5751886c2df8a21708014a3b9b32e871e8869caf
- languageName: node
- linkType: hard
-
-"uint8arraylist@npm:^2.0.0":
- version: 2.4.8
- resolution: "uint8arraylist@npm:2.4.8"
- dependencies:
- uint8arrays: "npm:^5.0.1"
- checksum: 10/0f4dbffa21de25104e28058440c2ab20691cf5bf894a2032bd6e50b6b6480c7194521af2f6ec0d22855510e952afb0e486e5d95d050856a9a3990a5d276b7c7d
- languageName: node
- linkType: hard
-
-"uint8arrays@npm:^5.0.0, uint8arrays@npm:^5.0.1, uint8arrays@npm:^5.0.2":
- version: 5.1.0
- resolution: "uint8arrays@npm:5.1.0"
- dependencies:
- multiformats: "npm:^13.0.0"
- checksum: 10/6c9cd1c1519cdf20d4c4e3715b4ee1acf730636409528ea54e77c4d9aa6e7f70aacd86d735f7c8a9902a9181cc3b37fa048590978e2fb90a98fa1dc39465c1af
- languageName: node
- linkType: hard
-
-"unbox-primitive@npm:^1.1.0":
- version: 1.1.0
- resolution: "unbox-primitive@npm:1.1.0"
- dependencies:
- call-bound: "npm:^1.0.3"
- has-bigints: "npm:^1.0.2"
- has-symbols: "npm:^1.1.0"
- which-boxed-primitive: "npm:^1.1.1"
- checksum: 10/fadb347020f66b2c8aeacf8b9a79826fa34cc5e5457af4eb0bbc4e79bd87fed0fa795949825df534320f7c13f199259516ad30abc55a6e7b91d8d996ca069e50
- languageName: node
- linkType: hard
-
-"undici-types@npm:~5.26.4":
- version: 5.26.5
- resolution: "undici-types@npm:5.26.5"
- checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd
- languageName: node
- linkType: hard
-
-"undici-types@npm:~7.16.0":
- version: 7.16.0
- resolution: "undici-types@npm:7.16.0"
- checksum: 10/db43439f69c2d94cc29f75cbfe9de86df87061d6b0c577ebe9bb3255f49b22c50162a7d7eb413b0458b6510b8ca299ac7cff38c3a29fbd31af9f504bcf7fbc0d
- languageName: node
- linkType: hard
-
-"undici@npm:^5.29.0":
- version: 5.29.0
- resolution: "undici@npm:5.29.0"
- dependencies:
- "@fastify/busboy": "npm:^2.0.0"
- checksum: 10/0ceca8924a32acdcc0cfb8dd2d368c217840970aa3f5e314fc169608474be6341c5b8e50cad7bd257dbe3b4e432bc5d0a0d000f83644b54fa11a48735ec52b93
- languageName: node
- linkType: hard
-
-"unified@npm:^11.0.0":
- version: 11.0.5
- resolution: "unified@npm:11.0.5"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- bail: "npm:^2.0.0"
- devlop: "npm:^1.0.0"
- extend: "npm:^3.0.0"
- is-plain-obj: "npm:^4.0.0"
- trough: "npm:^2.0.0"
- vfile: "npm:^6.0.0"
- checksum: 10/d9e6e88900a075f391b6bbf06f34062d41fa6257798110d1647753cfc2c6a6e2c1d016434e8ee35706c50485f9fb9ae4707a6a4790bd8dc461ec7e7315ed908b
- languageName: node
- linkType: hard
-
-"uniq@npm:^1.0.1":
- version: 1.0.1
- resolution: "uniq@npm:1.0.1"
- checksum: 10/8206535f83745ea83f9da7035f3b983fd6ed5e35b8ed7745441944e4065b616bc67cf0d0a23a86b40ee0074426f0607f0a138f9b78e124eb6a7a6a6966055709
- languageName: node
- linkType: hard
-
-"unique-filename@npm:^5.0.0":
- version: 5.0.0
- resolution: "unique-filename@npm:5.0.0"
- dependencies:
- unique-slug: "npm:^6.0.0"
- checksum: 10/a5f67085caef74bdd2a6869a200ed5d68d171f5cc38435a836b5fd12cce4e4eb55e6a190298035c325053a5687ed7a3c96f0a91e82215fd14729769d9ac57d9b
- languageName: node
- linkType: hard
-
-"unique-slug@npm:^6.0.0":
- version: 6.0.0
- resolution: "unique-slug@npm:6.0.0"
- dependencies:
- imurmurhash: "npm:^0.1.4"
- checksum: 10/b78ed9d5b01ff465f80975f17387750ed3639909ac487fa82c4ae4326759f6de87c2131c0c39eca4c68cf06c537a8d104fba1dfc8a30308f99bc505345e1eba3
- languageName: node
- linkType: hard
-
-"unique-string@npm:^2.0.0":
- version: 2.0.0
- resolution: "unique-string@npm:2.0.0"
- dependencies:
- crypto-random-string: "npm:^2.0.0"
- checksum: 10/107cae65b0b618296c2c663b8e52e4d1df129e9af04ab38d53b4f2189e96da93f599c85f4589b7ffaf1a11c9327cbb8a34f04c71b8d4950d3e385c2da2a93828
- languageName: node
- linkType: hard
-
-"unist-util-is@npm:^6.0.0":
- version: 6.0.1
- resolution: "unist-util-is@npm:6.0.1"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- checksum: 10/dc3ebfb481f097863ae3674c440add6fe2d51a4cfcd565b13fb759c8a2eaefb71903a619b385e892c2ad6db6a5b60d068dfc5592b6dd57f4b60180082b3136d6
- languageName: node
- linkType: hard
-
-"unist-util-position@npm:^5.0.0":
- version: 5.0.0
- resolution: "unist-util-position@npm:5.0.0"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- checksum: 10/89d4da00e74618d7562ac7ac288961df9bcd4ccca6df3b5a90650f018eceb6b95de6e771e88bdbef46cc9d96861d456abe57b7ad1108921e0feb67c6292aa29d
- languageName: node
- linkType: hard
-
-"unist-util-stringify-position@npm:^4.0.0":
- version: 4.0.0
- resolution: "unist-util-stringify-position@npm:4.0.0"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- checksum: 10/d15c88aca7a31902d95d5b5355bbe09583cf6f6ff6e59e134ef76c76d3c30bc1021f2d7ea5b7897c6d0858ed5f3770c1b19de9c78274f50d72f95a0d05f1af71
- languageName: node
- linkType: hard
-
-"unist-util-visit-parents@npm:^6.0.0":
- version: 6.0.2
- resolution: "unist-util-visit-parents@npm:6.0.2"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- unist-util-is: "npm:^6.0.0"
- checksum: 10/aa16e97e45bd1d641e1f933d2fb3bf0800865350eaeb5cc0317ab511075480fb4ac5e2a55f57dd72d27311e8ba29fd23908848bd83479849c626be1f7dabcae5
- languageName: node
- linkType: hard
-
-"unist-util-visit@npm:^5.0.0":
- version: 5.0.0
- resolution: "unist-util-visit@npm:5.0.0"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- unist-util-is: "npm:^6.0.0"
- unist-util-visit-parents: "npm:^6.0.0"
- checksum: 10/f2bbde23641e9ade7640358c06ddeec0f38342322eb8e7819d9ee380b0f859d25d084dde22bf63db0280b3b2f36575f15aa1d6c23acf276c91c2493cf799e3b0
- languageName: node
- linkType: hard
-
-"universal-user-agent@npm:^6.0.0":
- version: 6.0.1
- resolution: "universal-user-agent@npm:6.0.1"
- checksum: 10/fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c
- languageName: node
- linkType: hard
-
-"universalify@npm:^0.1.0":
- version: 0.1.2
- resolution: "universalify@npm:0.1.2"
- checksum: 10/40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff
- languageName: node
- linkType: hard
-
-"universalify@npm:^0.2.0":
- version: 0.2.0
- resolution: "universalify@npm:0.2.0"
- checksum: 10/e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5
- languageName: node
- linkType: hard
-
-"universalify@npm:^2.0.0":
- version: 2.0.1
- resolution: "universalify@npm:2.0.1"
- checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60
- languageName: node
- linkType: hard
-
-"unpipe@npm:~1.0.0":
- version: 1.0.0
- resolution: "unpipe@npm:1.0.0"
- checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2
- languageName: node
- linkType: hard
-
-"unrs-resolver@npm:^1.6.2":
- version: 1.11.1
- resolution: "unrs-resolver@npm:1.11.1"
- dependencies:
- "@unrs/resolver-binding-android-arm-eabi": "npm:1.11.1"
- "@unrs/resolver-binding-android-arm64": "npm:1.11.1"
- "@unrs/resolver-binding-darwin-arm64": "npm:1.11.1"
- "@unrs/resolver-binding-darwin-x64": "npm:1.11.1"
- "@unrs/resolver-binding-freebsd-x64": "npm:1.11.1"
- "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.11.1"
- "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.11.1"
- "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.11.1"
- "@unrs/resolver-binding-linux-arm64-musl": "npm:1.11.1"
- "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.11.1"
- "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.11.1"
- "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.11.1"
- "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.11.1"
- "@unrs/resolver-binding-linux-x64-gnu": "npm:1.11.1"
- "@unrs/resolver-binding-linux-x64-musl": "npm:1.11.1"
- "@unrs/resolver-binding-wasm32-wasi": "npm:1.11.1"
- "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.11.1"
- "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.11.1"
- "@unrs/resolver-binding-win32-x64-msvc": "npm:1.11.1"
- napi-postinstall: "npm:^0.3.0"
- dependenciesMeta:
- "@unrs/resolver-binding-android-arm-eabi":
- optional: true
- "@unrs/resolver-binding-android-arm64":
- optional: true
- "@unrs/resolver-binding-darwin-arm64":
- optional: true
- "@unrs/resolver-binding-darwin-x64":
- optional: true
- "@unrs/resolver-binding-freebsd-x64":
- optional: true
- "@unrs/resolver-binding-linux-arm-gnueabihf":
- optional: true
- "@unrs/resolver-binding-linux-arm-musleabihf":
- optional: true
- "@unrs/resolver-binding-linux-arm64-gnu":
- optional: true
- "@unrs/resolver-binding-linux-arm64-musl":
- optional: true
- "@unrs/resolver-binding-linux-ppc64-gnu":
- optional: true
- "@unrs/resolver-binding-linux-riscv64-gnu":
- optional: true
- "@unrs/resolver-binding-linux-riscv64-musl":
- optional: true
- "@unrs/resolver-binding-linux-s390x-gnu":
- optional: true
- "@unrs/resolver-binding-linux-x64-gnu":
- optional: true
- "@unrs/resolver-binding-linux-x64-musl":
- optional: true
- "@unrs/resolver-binding-wasm32-wasi":
- optional: true
- "@unrs/resolver-binding-win32-arm64-msvc":
- optional: true
- "@unrs/resolver-binding-win32-ia32-msvc":
- optional: true
- "@unrs/resolver-binding-win32-x64-msvc":
- optional: true
- checksum: 10/4de653508cbaae47883a896bd5cdfef0e5e87b428d62620d16fd35cd534beaebf08ebf0cf2f8b4922aa947b2fe745180facf6cc3f39ba364f7ce0f974cb06a70
- languageName: node
- linkType: hard
-
-"update-browserslist-db@npm:^1.2.0":
- version: 1.2.3
- resolution: "update-browserslist-db@npm:1.2.3"
- dependencies:
- escalade: "npm:^3.2.0"
- picocolors: "npm:^1.1.1"
- peerDependencies:
- browserslist: ">= 4.21.0"
- bin:
- update-browserslist-db: cli.js
- checksum: 10/059f774300efb4b084a49293143c511f3ae946d40397b5c30914e900cd5691a12b8e61b41dd54ed73d3b56c8204165a0333107dd784ccf8f8c81790bcc423175
- languageName: node
- linkType: hard
-
-"update-notifier@npm:^5.0.0":
- version: 5.1.0
- resolution: "update-notifier@npm:5.1.0"
- dependencies:
- boxen: "npm:^5.0.0"
- chalk: "npm:^4.1.0"
- configstore: "npm:^5.0.1"
- has-yarn: "npm:^2.1.0"
- import-lazy: "npm:^2.1.0"
- is-ci: "npm:^2.0.0"
- is-installed-globally: "npm:^0.4.0"
- is-npm: "npm:^5.0.0"
- is-yarn-global: "npm:^0.3.0"
- latest-version: "npm:^5.1.0"
- pupa: "npm:^2.1.1"
- semver: "npm:^7.3.4"
- semver-diff: "npm:^3.1.1"
- xdg-basedir: "npm:^4.0.0"
- checksum: 10/9df39e2d4f2e59ea788c719baaacf3d2bdde09d065f00319d52c0af255990e15f98ba40c115fb6246b6b2d5468685f36955ae0679c0b7fec834892fe7db4cab2
- languageName: node
- linkType: hard
-
-"uri-js@npm:^4.2.2":
- version: 4.4.1
- resolution: "uri-js@npm:4.4.1"
- dependencies:
- punycode: "npm:^2.1.0"
- checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb
- languageName: node
- linkType: hard
-
-"url-parse-lax@npm:^3.0.0":
- version: 3.0.0
- resolution: "url-parse-lax@npm:3.0.0"
- dependencies:
- prepend-http: "npm:^2.0.0"
- checksum: 10/1040e357750451173132228036aff1fd04abbd43eac1fb3e4fca7495a078bcb8d33cb765fe71ad7e473d9c94d98fd67adca63bd2716c815a2da066198dd37217
- languageName: node
- linkType: hard
-
-"url-parse@npm:^1.5.3":
- version: 1.5.10
- resolution: "url-parse@npm:1.5.10"
- dependencies:
- querystringify: "npm:^2.1.1"
- requires-port: "npm:^1.0.0"
- checksum: 10/c9e96bc8c5b34e9f05ddfeffc12f6aadecbb0d971b3cc26015b58d5b44676a99f50d5aeb1e5c9e61fa4d49961ae3ab1ae997369ed44da51b2f5ac010d188e6ad
- languageName: node
- linkType: hard
-
-"usb@npm:2.9.0":
- version: 2.9.0
- resolution: "usb@npm:2.9.0"
- dependencies:
- "@types/w3c-web-usb": "npm:^1.0.6"
- node-addon-api: "npm:^6.0.0"
- node-gyp: "npm:latest"
- node-gyp-build: "npm:^4.5.0"
- checksum: 10/ab68d4247a24a463328e293256aec5682c12163278ab474b7243a9dba6283a44bb74f9e0ca96f1d00197bb271f294549c3a4debdbd3452a02750a4a65ff29ee6
- languageName: node
- linkType: hard
-
-"use-memo-one@npm:^1.1.1":
- version: 1.1.3
- resolution: "use-memo-one@npm:1.1.3"
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- checksum: 10/8f08eba26d69406b61bb4b8dacdd5a92bd6aef5b53d346dfe87954f7330ee10ecabc937cc7854635155d46053828e85c10b5a5aff7a04720e6a97b9f42999bac
- languageName: node
- linkType: hard
-
-"utf-8-validate@npm:^5.0.2":
- version: 5.0.10
- resolution: "utf-8-validate@npm:5.0.10"
- dependencies:
- node-gyp: "npm:latest"
- node-gyp-build: "npm:^4.3.0"
- checksum: 10/b89cbc13b4badad04828349ebb7aa2ab1edcb02b46ab12ce0ba5b2d6886d684ad4e93347819e3c8d36224c8742422d2dca69f5cc16c72ae4d7eeecc0c5cb544b
- languageName: node
- linkType: hard
-
-"utf8-byte-length@npm:^1.0.1":
- version: 1.0.5
- resolution: "utf8-byte-length@npm:1.0.5"
- checksum: 10/168edff8f7baca974b5bfb5256cebd57deaef8fbf2d0390301dd1009da52de64774d62f088254c94021e372147b6c938aa82f2318a3a19f9ebd21e48b7f40029
- languageName: node
- linkType: hard
-
-"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1":
- version: 1.0.2
- resolution: "util-deprecate@npm:1.0.2"
- checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
- languageName: node
- linkType: hard
-
-"util-extend@npm:^1.0.1":
- version: 1.0.3
- resolution: "util-extend@npm:1.0.3"
- checksum: 10/da57f399b331f40fe2cea5409b1f4939231433db9b52dac5593e4390a98b7b0d1318a0daefbcc48123fffe5026ef49f418b3e4df7a4cd7649a2583e559c608a5
- languageName: node
- linkType: hard
-
-"util@npm:^0.12.5":
- version: 0.12.5
- resolution: "util@npm:0.12.5"
- dependencies:
- inherits: "npm:^2.0.3"
- is-arguments: "npm:^1.0.4"
- is-generator-function: "npm:^1.0.7"
- is-typed-array: "npm:^1.1.3"
- which-typed-array: "npm:^1.1.2"
- checksum: 10/61a10de7753353dd4d744c917f74cdd7d21b8b46379c1e48e1c4fd8e83f8190e6bd9978fc4e5102ab6a10ebda6019d1b36572fa4a325e175ec8b789a121f6147
- languageName: node
- linkType: hard
-
-"utila@npm:~0.4":
- version: 0.4.0
- resolution: "utila@npm:0.4.0"
- checksum: 10/b068d8cb140588da0d0c80ee3c14c6b75d3f68760d8a1c6c3908d0270e9e4056454ff16189586481b7382926c44674f6929d08e06eaf9ec8f62736cd900169c5
- languageName: node
- linkType: hard
-
-"utils-merge@npm:1.0.1":
- version: 1.0.1
- resolution: "utils-merge@npm:1.0.1"
- checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798
- languageName: node
- linkType: hard
-
-"uuid@npm:^10.0.0":
- version: 10.0.0
- resolution: "uuid@npm:10.0.0"
- bin:
- uuid: dist/bin/uuid
- checksum: 10/35aa60614811a201ff90f8ca5e9ecb7076a75c3821e17f0f5ff72d44e36c2d35fcbc2ceee9c4ac7317f4cc41895da30e74f3885e30313bee48fda6338f250538
- languageName: node
- linkType: hard
-
-"uuid@npm:^7.0.3":
- version: 7.0.3
- resolution: "uuid@npm:7.0.3"
- bin:
- uuid: dist/bin/uuid
- checksum: 10/b2a4d30ecd6581015175487426558aafd7f7b4013a2e30802c128cc28cad9abe46ecd36c02f7fbcde7908fd4672334818d56a441c0871963d6bd89d911bef2ea
- languageName: node
- linkType: hard
-
-"uuid@npm:^8.3.2":
- version: 8.3.2
- resolution: "uuid@npm:8.3.2"
- bin:
- uuid: dist/bin/uuid
- checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1
- languageName: node
- linkType: hard
-
-"uuid@npm:^9.0.0":
- version: 9.0.1
- resolution: "uuid@npm:9.0.1"
- bin:
- uuid: dist/bin/uuid
- checksum: 10/9d0b6adb72b736e36f2b1b53da0d559125ba3e39d913b6072f6f033e0c87835b414f0836b45bcfaf2bdf698f92297fea1c3cc19b0b258bc182c9c43cc0fab9f2
- languageName: node
- linkType: hard
-
-"validate-npm-package-license@npm:^3.0.1":
- version: 3.0.4
- resolution: "validate-npm-package-license@npm:3.0.4"
- dependencies:
- spdx-correct: "npm:^3.0.0"
- spdx-expression-parse: "npm:^3.0.0"
- checksum: 10/86242519b2538bb8aeb12330edebb61b4eb37fd35ef65220ab0b03a26c0592c1c8a7300d32da3cde5abd08d18d95e8dabfad684b5116336f6de9e6f207eec224
- languageName: node
- linkType: hard
-
-"value-or-function@npm:^4.0.0":
- version: 4.0.0
- resolution: "value-or-function@npm:4.0.0"
- checksum: 10/16b6aed84b8f9732a7eb7a5035a1480be3689d097a73b1154fb827caf021d5f2b6f60c0dfe694bfc8c9605f06cfc093dc428efdc3d24cb2768fbe202ffd42ae1
- languageName: node
- linkType: hard
-
-"varint@npm:^5.0.0":
- version: 5.0.2
- resolution: "varint@npm:5.0.2"
- checksum: 10/e1a66bf9a6cea96d1f13259170d4d41b845833acf3a9df990ea1e760d279bd70d5b1f4c002a50197efd2168a2fd43eb0b808444600fd4d23651e8d42fe90eb05
- languageName: node
- linkType: hard
-
-"vary@npm:~1.1.2":
- version: 1.1.2
- resolution: "vary@npm:1.1.2"
- checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242
- languageName: node
- linkType: hard
-
-"verror@npm:^1.10.0":
- version: 1.10.1
- resolution: "verror@npm:1.10.1"
- dependencies:
- assert-plus: "npm:^1.0.0"
- core-util-is: "npm:1.0.2"
- extsprintf: "npm:^1.2.0"
- checksum: 10/2b24eb830ecee7be69ab84192946074d7e8a85a42b0784d9874a28f52616065953ab4297975c87045879505fe9a6ac38dedad29a7470bbe0324540e5b6e92f62
- languageName: node
- linkType: hard
-
-"vfile-location@npm:^5.0.0":
- version: 5.0.3
- resolution: "vfile-location@npm:5.0.3"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- vfile: "npm:^6.0.0"
- checksum: 10/f481d592fd507fe242da9a00d7400ded3c91587931f24e64c54f24752d7b30321721a1c99c0d949be1f6ed5fa7f8b169054fd07c744705b65dbdd10a9e4ebfe0
- languageName: node
- linkType: hard
-
-"vfile-message@npm:^4.0.0":
- version: 4.0.3
- resolution: "vfile-message@npm:4.0.3"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- unist-util-stringify-position: "npm:^4.0.0"
- checksum: 10/7ba3dbeb752722a7913de8ea77c56be58cf805b5e5ccff090b2c4f8a82a32d91e058acb94d1614a40aa28191a5db99fb64014c7dfcad73d982f5d9d6702d2277
- languageName: node
- linkType: hard
-
-"vfile@npm:^6.0.0":
- version: 6.0.3
- resolution: "vfile@npm:6.0.3"
- dependencies:
- "@types/unist": "npm:^3.0.0"
- vfile-message: "npm:^4.0.0"
- checksum: 10/a5a85293c9eb8787aa42e180edaef00c13199a493d6ed82fecf13ab29a68526850788e22434d77808ea6b17a74e03ff899b9b4711df5b9eee75afcddd7c2e1fb
- languageName: node
- linkType: hard
-
-"vinyl-contents@npm:^2.0.0":
- version: 2.0.0
- resolution: "vinyl-contents@npm:2.0.0"
- dependencies:
- bl: "npm:^5.0.0"
- vinyl: "npm:^3.0.0"
- checksum: 10/10d72a032e6317bf89713565d616df8726ee41601a41c48c7d778e61ab557c0a5fdee883ceecbfb33da4a5e11ea80e76e5ae63c1d13fda61edbb5ef50445c8b2
- languageName: node
- linkType: hard
-
-"vinyl-fs@npm:^4.0.0":
- version: 4.0.2
- resolution: "vinyl-fs@npm:4.0.2"
- dependencies:
- fs-mkdirp-stream: "npm:^2.0.1"
- glob-stream: "npm:^8.0.3"
- graceful-fs: "npm:^4.2.11"
- iconv-lite: "npm:^0.6.3"
- is-valid-glob: "npm:^1.0.0"
- lead: "npm:^4.0.0"
- normalize-path: "npm:3.0.0"
- resolve-options: "npm:^2.0.0"
- stream-composer: "npm:^1.0.2"
- streamx: "npm:^2.14.0"
- to-through: "npm:^3.0.0"
- value-or-function: "npm:^4.0.0"
- vinyl: "npm:^3.0.1"
- vinyl-sourcemap: "npm:^2.0.0"
- checksum: 10/18815bb9018b22f0c79e2686cc2e308905930246f432f47e7f450bc6c7c295c5717bbba38a4278ec8e7087cb1effe95c8d552051cb92f64e5b05607ccc9a9706
- languageName: node
- linkType: hard
-
-"vinyl-sourcemap@npm:^2.0.0":
- version: 2.0.0
- resolution: "vinyl-sourcemap@npm:2.0.0"
- dependencies:
- convert-source-map: "npm:^2.0.0"
- graceful-fs: "npm:^4.2.10"
- now-and-later: "npm:^3.0.0"
- streamx: "npm:^2.12.5"
- vinyl: "npm:^3.0.0"
- vinyl-contents: "npm:^2.0.0"
- checksum: 10/f23fc251a3eb72100690e5e93685ef776d8fee20e076f29655536a31b5235426b9404eea76b6b268fa00648437acc98aad54a7e76661b97305706c487a54afdb
- languageName: node
- linkType: hard
-
-"vinyl@npm:^3.0.0, vinyl@npm:^3.0.1":
- version: 3.0.1
- resolution: "vinyl@npm:3.0.1"
- dependencies:
- clone: "npm:^2.1.2"
- remove-trailing-separator: "npm:^1.1.0"
- replace-ext: "npm:^2.0.0"
- teex: "npm:^1.0.1"
- checksum: 10/437f0f38d6a954a64ec067ffa144c3193ca1d9c8e967000abfb217d067f60a268b94515ae13d298f4577593f5fccbab67c12252b9af285ca53c621d6f7b9ddc3
- languageName: node
- linkType: hard
-
-"void-elements@npm:3.1.0":
- version: 3.1.0
- resolution: "void-elements@npm:3.1.0"
- checksum: 10/0390f818107fa8fce55bb0a5c3f661056001c1d5a2a48c28d582d4d847347c2ab5b7f8272314cac58acf62345126b6b09bea623a185935f6b1c3bbce0dfd7f7f
- languageName: node
- linkType: hard
-
-"w3c-xmlserializer@npm:^5.0.0":
- version: 5.0.0
- resolution: "w3c-xmlserializer@npm:5.0.0"
- dependencies:
- xml-name-validator: "npm:^5.0.0"
- checksum: 10/d78f59e6b4f924aa53b6dfc56949959229cae7fe05ea9374eb38d11edcec01398b7f5d7a12576bd5acc57ff446abb5c9115cd83b9d882555015437cf858d42f0
- languageName: node
- linkType: hard
-
-"walkdir@npm:^0.4.1":
- version: 0.4.1
- resolution: "walkdir@npm:0.4.1"
- checksum: 10/54cbe7afc5fb811a55748b0bfa077a9a4aa43f568eb5857db9785af9728e1ad8b1ecf6b9ce6f14b405c6124939a92522e36aaa0397f3f52a9a7a08496f2eebe1
- languageName: node
- linkType: hard
-
-"warning@npm:^4.0.2, warning@npm:^4.0.3":
- version: 4.0.3
- resolution: "warning@npm:4.0.3"
- dependencies:
- loose-envify: "npm:^1.0.0"
- checksum: 10/e7842aff036e2e07ce7a6cc3225e707775b969fe3d0577ad64bd24660e3a9ce3017f0b8c22a136566dcd3a151f37b8ed1ccee103b3bd82bd8a571bf80b247bc4
- languageName: node
- linkType: hard
-
-"watchpack@npm:^2.4.4":
- version: 2.5.0
- resolution: "watchpack@npm:2.5.0"
- dependencies:
- glob-to-regexp: "npm:^0.4.1"
- graceful-fs: "npm:^4.1.2"
- checksum: 10/6793335adecc06944430db1c9dbbb960d357019a3456fa2a5e38a96c0320a9d4444198f3d4a513c9b58306ddd89f2a1754f99056e4b71c512260436287c58361
- languageName: node
- linkType: hard
-
-"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3":
- version: 1.7.3
- resolution: "wbuf@npm:1.7.3"
- dependencies:
- minimalistic-assert: "npm:^1.0.0"
- checksum: 10/c18b51c4e1fb19705c94b93c0cf093ba014606abceee949399d56074ef1863bf4897a8d884be24e8d224d18c9ce411cf6924006d0a5430492729af51256e067a
- languageName: node
- linkType: hard
-
-"wcwidth@npm:^1.0.1":
- version: 1.0.1
- resolution: "wcwidth@npm:1.0.1"
- dependencies:
- defaults: "npm:^1.0.3"
- checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817
- languageName: node
- linkType: hard
-
-"web-namespaces@npm:^2.0.0":
- version: 2.0.1
- resolution: "web-namespaces@npm:2.0.1"
- checksum: 10/b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6
- languageName: node
- linkType: hard
-
-"web-streams-polyfill@npm:^3.0.3":
- version: 3.3.3
- resolution: "web-streams-polyfill@npm:3.3.3"
- checksum: 10/8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9
- languageName: node
- linkType: hard
-
-"web3-core@npm:^4.4.0, web3-core@npm:^4.5.0, web3-core@npm:^4.6.0, web3-core@npm:^4.7.1":
- version: 4.7.1
- resolution: "web3-core@npm:4.7.1"
- dependencies:
- web3-errors: "npm:^1.3.1"
- web3-eth-accounts: "npm:^4.3.1"
- web3-eth-iban: "npm:^4.0.7"
- web3-providers-http: "npm:^4.2.0"
- web3-providers-ipc: "npm:^4.0.7"
- web3-providers-ws: "npm:^4.0.8"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- dependenciesMeta:
- web3-providers-ipc:
- optional: true
- checksum: 10/c6b9447e62f5c57ccc3c96492adf5630cb3256968c15ce5675c660dec1f6da0bf60397efa88588029640f749ff45a1adaa0167a402ba0b4a46e600d8eda76334
- languageName: node
- linkType: hard
-
-"web3-errors@npm:^1.1.3, web3-errors@npm:^1.2.0, web3-errors@npm:^1.3.0, web3-errors@npm:^1.3.1":
- version: 1.3.1
- resolution: "web3-errors@npm:1.3.1"
- dependencies:
- web3-types: "npm:^1.10.0"
- checksum: 10/0d1cb0e02701a4bd619f856b0a6702fdd4cdc0a434029c3c3dcde3f3cc4acaca418117ad10238002aa697745840e7fd312bd43ad5341482b3ff8f9e6eb438a31
- languageName: node
- linkType: hard
-
-"web3-eth-abi@npm:^4.4.1":
- version: 4.4.1
- resolution: "web3-eth-abi@npm:4.4.1"
- dependencies:
- abitype: "npm:0.7.1"
- web3-errors: "npm:^1.3.1"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- checksum: 10/0c7f4f9f05f04e0ac98f6029edfb3bf7e514efc325f6be83e999203f49c7a0cdc9759f4b1011ce12d80c2044c74a867f7fc0ee83538408c2ebb4c9f407027b7f
- languageName: node
- linkType: hard
-
-"web3-eth-accounts@npm:^4.3.1":
- version: 4.3.1
- resolution: "web3-eth-accounts@npm:4.3.1"
- dependencies:
- "@ethereumjs/rlp": "npm:^4.0.1"
- crc-32: "npm:^1.2.2"
- ethereum-cryptography: "npm:^2.0.0"
- web3-errors: "npm:^1.3.1"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- checksum: 10/f8b689146c908d88b983bd467c3e794ed96e284490aa3f74e665580202db4f0826d4108f0aa95dc6ef1e14f9a8a41939ff2c4485e9713744dc6474d7082d9239
- languageName: node
- linkType: hard
-
-"web3-eth-contract@npm:^4.5.0, web3-eth-contract@npm:^4.7.2":
- version: 4.7.2
- resolution: "web3-eth-contract@npm:4.7.2"
- dependencies:
- "@ethereumjs/rlp": "npm:^5.0.2"
- web3-core: "npm:^4.7.1"
- web3-errors: "npm:^1.3.1"
- web3-eth: "npm:^4.11.1"
- web3-eth-abi: "npm:^4.4.1"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- checksum: 10/f5dd22199a69c6f10b0c38daee790341f80247a0155bad03e7c1a9ffad2d6c47722010b4fd0e3fe7832a43eb72a2fceadfd2892712ef199898c1e43067a92c0d
- languageName: node
- linkType: hard
-
-"web3-eth-ens@npm:^4.4.0":
- version: 4.4.0
- resolution: "web3-eth-ens@npm:4.4.0"
- dependencies:
- "@adraffy/ens-normalize": "npm:^1.8.8"
- web3-core: "npm:^4.5.0"
- web3-errors: "npm:^1.2.0"
- web3-eth: "npm:^4.8.0"
- web3-eth-contract: "npm:^4.5.0"
- web3-net: "npm:^4.1.0"
- web3-types: "npm:^1.7.0"
- web3-utils: "npm:^4.3.0"
- web3-validator: "npm:^2.0.6"
- checksum: 10/25a1535e095d8ffcbc0641041af69e42aa60ba2989477108a5678c42a06135df9134ccc6024c89c216cb3408848e3905ee178d5b12e3bb740e895ee6ee0bd2cf
- languageName: node
- linkType: hard
-
-"web3-eth-iban@npm:^4.0.7":
- version: 4.0.7
- resolution: "web3-eth-iban@npm:4.0.7"
- dependencies:
- web3-errors: "npm:^1.1.3"
- web3-types: "npm:^1.3.0"
- web3-utils: "npm:^4.0.7"
- web3-validator: "npm:^2.0.3"
- checksum: 10/9d7521b4d4aef3a0d697905c7859d8e4d7ce82234320beecba9b24d254592a7ccf0354f329289b4e11a816fcbe3eceb842c4c87678f5e8ec622c8351bc1b9170
- languageName: node
- linkType: hard
-
-"web3-eth-personal@npm:^4.1.0":
- version: 4.1.0
- resolution: "web3-eth-personal@npm:4.1.0"
- dependencies:
- web3-core: "npm:^4.6.0"
- web3-eth: "npm:^4.9.0"
- web3-rpc-methods: "npm:^1.3.0"
- web3-types: "npm:^1.8.0"
- web3-utils: "npm:^4.3.1"
- web3-validator: "npm:^2.0.6"
- checksum: 10/a560b0ef1f28961101c47824aa6fc71722c4e581ef5ffc5b68cf1b7db0fd5804032239f872a167a589b3c0ebe223353b8112b38e247e1f5b5ac48991e12f853c
- languageName: node
- linkType: hard
-
-"web3-eth@npm:^4.11.1, web3-eth@npm:^4.8.0, web3-eth@npm:^4.9.0":
- version: 4.11.1
- resolution: "web3-eth@npm:4.11.1"
- dependencies:
- setimmediate: "npm:^1.0.5"
- web3-core: "npm:^4.7.1"
- web3-errors: "npm:^1.3.1"
- web3-eth-abi: "npm:^4.4.1"
- web3-eth-accounts: "npm:^4.3.1"
- web3-net: "npm:^4.1.0"
- web3-providers-ws: "npm:^4.0.8"
- web3-rpc-methods: "npm:^1.3.0"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- checksum: 10/b39f5f1559a012ece0017f3976207ffb5358c4ebb2e8518721efcc4975005ed8948814613795d1ceee67eb28f33608cbc89f6b231534241052de231c6477ed17
- languageName: node
- linkType: hard
-
-"web3-net@npm:^4.1.0":
- version: 4.1.0
- resolution: "web3-net@npm:4.1.0"
- dependencies:
- web3-core: "npm:^4.4.0"
- web3-rpc-methods: "npm:^1.3.0"
- web3-types: "npm:^1.6.0"
- web3-utils: "npm:^4.3.0"
- checksum: 10/2899ed28d9afda9f9faee6424752cb967dabf79128bce25321318e069a41571b9bd9477b480f290fd65f07cd6c0c641def0d72f31a730705112bd14c301f4e5e
- languageName: node
- linkType: hard
-
-"web3-providers-http@npm:^4.2.0":
- version: 4.2.0
- resolution: "web3-providers-http@npm:4.2.0"
- dependencies:
- cross-fetch: "npm:^4.0.0"
- web3-errors: "npm:^1.3.0"
- web3-types: "npm:^1.7.0"
- web3-utils: "npm:^4.3.1"
- checksum: 10/812b05d1e0dd8b6c5005bdcfe3c5fbddfe6cdd082bd2654dfe171ad98c3b7ff85b0bab371c70366d2bace2cf45fbf7d2f087b4cb281dbfa12372b902b8138eeb
- languageName: node
- linkType: hard
-
-"web3-providers-ipc@npm:^4.0.7":
- version: 4.0.7
- resolution: "web3-providers-ipc@npm:4.0.7"
- dependencies:
- web3-errors: "npm:^1.1.3"
- web3-types: "npm:^1.3.0"
- web3-utils: "npm:^4.0.7"
- checksum: 10/b953818479f5d9c7b748e10977430fd7e377696f9160ae19b1917c0317e89671c4be824c06723b6fda190258927160fcec0e8e7c1aa87a5f0344008ef7649cda
- languageName: node
- linkType: hard
-
-"web3-providers-ws@npm:^4.0.8":
- version: 4.0.8
- resolution: "web3-providers-ws@npm:4.0.8"
- dependencies:
- "@types/ws": "npm:8.5.3"
- isomorphic-ws: "npm:^5.0.0"
- web3-errors: "npm:^1.2.0"
- web3-types: "npm:^1.7.0"
- web3-utils: "npm:^4.3.1"
- ws: "npm:^8.17.1"
- checksum: 10/9b9fa96fa1fc9455fb1b632de50f542d2589710002ea2cb0cd6a5c1ed9f72960d80ce219ac66b038ea6d0a767056fe653aa258a1c084aa78d5745870cc2703b4
- languageName: node
- linkType: hard
-
-"web3-rpc-methods@npm:^1.3.0":
- version: 1.3.0
- resolution: "web3-rpc-methods@npm:1.3.0"
- dependencies:
- web3-core: "npm:^4.4.0"
- web3-types: "npm:^1.6.0"
- web3-validator: "npm:^2.0.6"
- checksum: 10/8c134b1f2ae1cf94d5c452c53fe699d5951c22c62ea82084559db06722a5f0db2047be4209172ff90432c42f70cf8081fea0ea85a024e4cbcd0e037efd9acfa8
- languageName: node
- linkType: hard
-
-"web3-rpc-providers@npm:^1.0.0-rc.4":
- version: 1.0.0-rc.4
- resolution: "web3-rpc-providers@npm:1.0.0-rc.4"
- dependencies:
- web3-errors: "npm:^1.3.1"
- web3-providers-http: "npm:^4.2.0"
- web3-providers-ws: "npm:^4.0.8"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- checksum: 10/a6dff5ce76e6905eb3e8e7175984305b859a35f17ffad9511371e0840097cdccc4d8dd4a4bc893aeb78f93c22034b4c73cac79551a4d7cba204e55590018909b
- languageName: node
- linkType: hard
-
-"web3-types@npm:^1.10.0, web3-types@npm:^1.3.0, web3-types@npm:^1.6.0, web3-types@npm:^1.7.0, web3-types@npm:^1.8.0":
- version: 1.10.0
- resolution: "web3-types@npm:1.10.0"
- checksum: 10/849f05a001896b27082c5b5c46c62b65a28f463366eeec7223802418a61db6d3487ebfb73d1fe6dcad3f0849a76e20706098819cb4e266df4f75ca24617e62a1
- languageName: node
- linkType: hard
-
-"web3-utils@npm:^4.0.7, web3-utils@npm:^4.3.0, web3-utils@npm:^4.3.1, web3-utils@npm:^4.3.3":
- version: 4.3.3
- resolution: "web3-utils@npm:4.3.3"
- dependencies:
- ethereum-cryptography: "npm:^2.0.0"
- eventemitter3: "npm:^5.0.1"
- web3-errors: "npm:^1.3.1"
- web3-types: "npm:^1.10.0"
- web3-validator: "npm:^2.0.6"
- checksum: 10/c91ebbe67e469fe184ab258564b1f002f6f0e563a91637429c8e5bd3f0653b970d0c45dac544402021a5512297f0bea39aa2dd0b4c9bc6f54d4b58897f2dd002
- languageName: node
- linkType: hard
-
-"web3-validator@npm:^2.0.3, web3-validator@npm:^2.0.6":
- version: 2.0.6
- resolution: "web3-validator@npm:2.0.6"
- dependencies:
- ethereum-cryptography: "npm:^2.0.0"
- util: "npm:^0.12.5"
- web3-errors: "npm:^1.2.0"
- web3-types: "npm:^1.6.0"
- zod: "npm:^3.21.4"
- checksum: 10/4df08e5317d55cdb674cbd11d7534a6cb41abfa4912cf3ff976c2b34a98e84500732fa0cade68a848e57b61259b4c9b377773f57de6bb69a5029c2ddef1cd0ab
- languageName: node
- linkType: hard
-
-"web3@npm:^4.7.0":
- version: 4.16.0
- resolution: "web3@npm:4.16.0"
- dependencies:
- web3-core: "npm:^4.7.1"
- web3-errors: "npm:^1.3.1"
- web3-eth: "npm:^4.11.1"
- web3-eth-abi: "npm:^4.4.1"
- web3-eth-accounts: "npm:^4.3.1"
- web3-eth-contract: "npm:^4.7.2"
- web3-eth-ens: "npm:^4.4.0"
- web3-eth-iban: "npm:^4.0.7"
- web3-eth-personal: "npm:^4.1.0"
- web3-net: "npm:^4.1.0"
- web3-providers-http: "npm:^4.2.0"
- web3-providers-ws: "npm:^4.0.8"
- web3-rpc-methods: "npm:^1.3.0"
- web3-rpc-providers: "npm:^1.0.0-rc.4"
- web3-types: "npm:^1.10.0"
- web3-utils: "npm:^4.3.3"
- web3-validator: "npm:^2.0.6"
- checksum: 10/8d63e70404914d2717d2675ba19350f112b07e50583a0703a68dd326eeb43a5c82b56f1165f4339cd89e697967581e0cd65fdb42ca0f1150fb7a3ce612f1a829
- languageName: node
- linkType: hard
-
-"webidl-conversions@npm:^3.0.0":
- version: 3.0.1
- resolution: "webidl-conversions@npm:3.0.1"
- checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad
- languageName: node
- linkType: hard
-
-"webidl-conversions@npm:^7.0.0":
- version: 7.0.0
- resolution: "webidl-conversions@npm:7.0.0"
- checksum: 10/4c4f65472c010eddbe648c11b977d048dd96956a625f7f8b9d64e1b30c3c1f23ea1acfd654648426ce5c743c2108a5a757c0592f02902cf7367adb7d14e67721
- languageName: node
- linkType: hard
-
-"webpack-cli@npm:^5.1.4":
- version: 5.1.4
- resolution: "webpack-cli@npm:5.1.4"
- dependencies:
- "@discoveryjs/json-ext": "npm:^0.5.0"
- "@webpack-cli/configtest": "npm:^2.1.1"
- "@webpack-cli/info": "npm:^2.0.2"
- "@webpack-cli/serve": "npm:^2.0.5"
- colorette: "npm:^2.0.14"
- commander: "npm:^10.0.1"
- cross-spawn: "npm:^7.0.3"
- envinfo: "npm:^7.7.3"
- fastest-levenshtein: "npm:^1.0.12"
- import-local: "npm:^3.0.2"
- interpret: "npm:^3.1.1"
- rechoir: "npm:^0.8.0"
- webpack-merge: "npm:^5.7.3"
- peerDependencies:
- webpack: 5.x.x
- peerDependenciesMeta:
- "@webpack-cli/generators":
- optional: true
- webpack-bundle-analyzer:
- optional: true
- webpack-dev-server:
- optional: true
- bin:
- webpack-cli: bin/cli.js
- checksum: 10/9ac3ae7c43b032051de2803d751bd3b44e1f226b931dcd56066a8e01b12734d49730903df9235e1eb1b67b2ee7451faf24a219c8f4a229c4f42c42e827eac44c
- languageName: node
- linkType: hard
-
-"webpack-dev-middleware@npm:^5.3.4":
- version: 5.3.4
- resolution: "webpack-dev-middleware@npm:5.3.4"
- dependencies:
- colorette: "npm:^2.0.10"
- memfs: "npm:^3.4.3"
- mime-types: "npm:^2.1.31"
- range-parser: "npm:^1.2.1"
- schema-utils: "npm:^4.0.0"
- peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
- checksum: 10/3004374130f31c2910da39b80e24296009653bb11caa0b8449d962b67e003d7e73d01fbcfda9be1f1f04179f66a9c39f4caf7963df54303b430e39ba5a94f7c2
- languageName: node
- linkType: hard
-
-"webpack-dev-server@npm:^4.15.1":
- version: 4.15.2
- resolution: "webpack-dev-server@npm:4.15.2"
- dependencies:
- "@types/bonjour": "npm:^3.5.9"
- "@types/connect-history-api-fallback": "npm:^1.3.5"
- "@types/express": "npm:^4.17.13"
- "@types/serve-index": "npm:^1.9.1"
- "@types/serve-static": "npm:^1.13.10"
- "@types/sockjs": "npm:^0.3.33"
- "@types/ws": "npm:^8.5.5"
- ansi-html-community: "npm:^0.0.8"
- bonjour-service: "npm:^1.0.11"
- chokidar: "npm:^3.5.3"
- colorette: "npm:^2.0.10"
- compression: "npm:^1.7.4"
- connect-history-api-fallback: "npm:^2.0.0"
- default-gateway: "npm:^6.0.3"
- express: "npm:^4.17.3"
- graceful-fs: "npm:^4.2.6"
- html-entities: "npm:^2.3.2"
- http-proxy-middleware: "npm:^2.0.3"
- ipaddr.js: "npm:^2.0.1"
- launch-editor: "npm:^2.6.0"
- open: "npm:^8.0.9"
- p-retry: "npm:^4.5.0"
- rimraf: "npm:^3.0.2"
- schema-utils: "npm:^4.0.0"
- selfsigned: "npm:^2.1.1"
- serve-index: "npm:^1.9.1"
- sockjs: "npm:^0.3.24"
- spdy: "npm:^4.0.2"
- webpack-dev-middleware: "npm:^5.3.4"
- ws: "npm:^8.13.0"
- peerDependencies:
- webpack: ^4.37.0 || ^5.0.0
- peerDependenciesMeta:
- webpack:
- optional: true
- webpack-cli:
- optional: true
- bin:
- webpack-dev-server: bin/webpack-dev-server.js
- checksum: 10/86ca4fb49d2a264243b2284c6027a9a91fd7d47737bbb4096e873be8a3f8493a9577b1535d7cc84de1ee991da7da97686c85788ccac547b0f5cf5c7686aacee9
- languageName: node
- linkType: hard
-
-"webpack-merge@npm:^5.10.0, webpack-merge@npm:^5.7.3":
- version: 5.10.0
- resolution: "webpack-merge@npm:5.10.0"
- dependencies:
- clone-deep: "npm:^4.0.1"
- flat: "npm:^5.0.2"
- wildcard: "npm:^2.0.0"
- checksum: 10/fa46ab200f17d06c7cb49fc37ad91f15769753953c9724adac1061fa305a2a223cb37c3ed25a5f501580c91f11a0800990fe3814c70a77bf1aa5b3fca45a2ac6
- languageName: node
- linkType: hard
-
-"webpack-sources@npm:^3.3.3":
- version: 3.3.3
- resolution: "webpack-sources@npm:3.3.3"
- checksum: 10/ec5d72607e8068467370abccbfff855c596c098baedbe9d198a557ccf198e8546a322836a6f74241492576adba06100286592993a62b63196832cdb53c8bae91
- languageName: node
- linkType: hard
-
-"webpack-subresource-integrity@npm:^5.2.0-rc.1":
- version: 5.2.0-rc.1
- resolution: "webpack-subresource-integrity@npm:5.2.0-rc.1"
- peerDependencies:
- html-webpack-plugin: ">= 5.0.0-beta.1 < 6"
- webpack: ^5.12.0
- peerDependenciesMeta:
- html-webpack-plugin:
- optional: true
- checksum: 10/a63e4e999812a753c70070457e6a2fb7e7ef1a05d8525a89796024fc56f26a0e56bd3e8f2b25e61f0ae969d627770a1fe326bebb58c296577d40c6a12aa4be37
- languageName: node
- linkType: hard
-
-"webpack@npm:^5.89.0":
- version: 5.104.1
- resolution: "webpack@npm:5.104.1"
- dependencies:
- "@types/eslint-scope": "npm:^3.7.7"
- "@types/estree": "npm:^1.0.8"
- "@types/json-schema": "npm:^7.0.15"
- "@webassemblyjs/ast": "npm:^1.14.1"
- "@webassemblyjs/wasm-edit": "npm:^1.14.1"
- "@webassemblyjs/wasm-parser": "npm:^1.14.1"
- acorn: "npm:^8.15.0"
- acorn-import-phases: "npm:^1.0.3"
- browserslist: "npm:^4.28.1"
- chrome-trace-event: "npm:^1.0.2"
- enhanced-resolve: "npm:^5.17.4"
- es-module-lexer: "npm:^2.0.0"
- eslint-scope: "npm:5.1.1"
- events: "npm:^3.2.0"
- glob-to-regexp: "npm:^0.4.1"
- graceful-fs: "npm:^4.2.11"
- json-parse-even-better-errors: "npm:^2.3.1"
- loader-runner: "npm:^4.3.1"
- mime-types: "npm:^2.1.27"
- neo-async: "npm:^2.6.2"
- schema-utils: "npm:^4.3.3"
- tapable: "npm:^2.3.0"
- terser-webpack-plugin: "npm:^5.3.16"
- watchpack: "npm:^2.4.4"
- webpack-sources: "npm:^3.3.3"
- peerDependenciesMeta:
- webpack-cli:
- optional: true
- bin:
- webpack: bin/webpack.js
- checksum: 10/c22b58fdf41d993971516154cb621d13b7b61dd744b7e2c6be972e9afcc9942694a8aaa322c07fba46448c69d663023ff53d0aeeb00eb0b125d83ace5ca8fa3c
- languageName: node
- linkType: hard
-
-"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4":
- version: 0.7.4
- resolution: "websocket-driver@npm:0.7.4"
- dependencies:
- http-parser-js: "npm:>=0.5.1"
- safe-buffer: "npm:>=5.1.0"
- websocket-extensions: "npm:>=0.1.1"
- checksum: 10/17197d265d5812b96c728e70fd6fe7d067471e121669768fe0c7100c939d997ddfc807d371a728556e24fc7238aa9d58e630ea4ff5fd4cfbb40f3d0a240ef32d
- languageName: node
- linkType: hard
-
-"websocket-extensions@npm:>=0.1.1":
- version: 0.1.4
- resolution: "websocket-extensions@npm:0.1.4"
- checksum: 10/b5399b487d277c78cdd2aef63764b67764aa9899431e3a2fa272c6ad7236a0fb4549b411d89afa76d5afd664c39d62fc19118582dc937e5bb17deb694f42a0d1
- languageName: node
- linkType: hard
-
-"websocket@npm:^1.0.32, websocket@npm:^1.0.34":
- version: 1.0.35
- resolution: "websocket@npm:1.0.35"
- dependencies:
- bufferutil: "npm:^4.0.1"
- debug: "npm:^2.2.0"
- es5-ext: "npm:^0.10.63"
- typedarray-to-buffer: "npm:^3.1.5"
- utf-8-validate: "npm:^5.0.2"
- yaeti: "npm:^0.0.6"
- checksum: 10/c05a80c536de7befadc530e5134947f7cc000493038ab78e3ed03080bb873b4ecedf95ea4e7087e6a98d04f02f31723bd98ec67f85e9159525a769b5a478fa8d
- languageName: node
- linkType: hard
-
-"whatwg-encoding@npm:^3.1.1":
- version: 3.1.1
- resolution: "whatwg-encoding@npm:3.1.1"
- dependencies:
- iconv-lite: "npm:0.6.3"
- checksum: 10/bbef815eb67f91487c7f2ef96329743f5fd8357d7d62b1119237d25d41c7e452dff8197235b2d3c031365a17f61d3bb73ca49d0ed1582475aa4a670815e79534
- languageName: node
- linkType: hard
-
-"whatwg-mimetype@npm:^4.0.0":
- version: 4.0.0
- resolution: "whatwg-mimetype@npm:4.0.0"
- checksum: 10/894a618e2d90bf444b6f309f3ceb6e58cf21b2beaa00c8b333696958c4076f0c7b30b9d33413c9ffff7c5832a0a0c8569e5bb347ef44beded72aeefd0acd62e8
- languageName: node
- linkType: hard
-
-"whatwg-url@npm:^14.0.0":
- version: 14.2.0
- resolution: "whatwg-url@npm:14.2.0"
- dependencies:
- tr46: "npm:^5.1.0"
- webidl-conversions: "npm:^7.0.0"
- checksum: 10/f0a95b0601c64f417c471536a2d828b4c16fe37c13662483a32f02f183ed0f441616609b0663fb791e524e8cd56d9a86dd7366b1fc5356048ccb09b576495e7c
- languageName: node
- linkType: hard
-
-"whatwg-url@npm:^5.0.0":
- version: 5.0.0
- resolution: "whatwg-url@npm:5.0.0"
- dependencies:
- tr46: "npm:~0.0.3"
- webidl-conversions: "npm:^3.0.0"
- checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07
- languageName: node
- linkType: hard
-
-"which-boxed-primitive@npm:^1.0.2, which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1":
- version: 1.1.1
- resolution: "which-boxed-primitive@npm:1.1.1"
- dependencies:
- is-bigint: "npm:^1.1.0"
- is-boolean-object: "npm:^1.2.1"
- is-number-object: "npm:^1.1.1"
- is-string: "npm:^1.1.1"
- is-symbol: "npm:^1.1.1"
- checksum: 10/a877c0667bc089518c83ad4d845cf8296b03efe3565c1de1940c646e00a2a1ae9ed8a185bcfa27cbf352de7906f0616d83b9d2f19ca500ee02a551fb5cf40740
- languageName: node
- linkType: hard
-
-"which-builtin-type@npm:^1.2.1":
- version: 1.2.1
- resolution: "which-builtin-type@npm:1.2.1"
- dependencies:
- call-bound: "npm:^1.0.2"
- function.prototype.name: "npm:^1.1.6"
- has-tostringtag: "npm:^1.0.2"
- is-async-function: "npm:^2.0.0"
- is-date-object: "npm:^1.1.0"
- is-finalizationregistry: "npm:^1.1.0"
- is-generator-function: "npm:^1.0.10"
- is-regex: "npm:^1.2.1"
- is-weakref: "npm:^1.0.2"
- isarray: "npm:^2.0.5"
- which-boxed-primitive: "npm:^1.1.0"
- which-collection: "npm:^1.0.2"
- which-typed-array: "npm:^1.1.16"
- checksum: 10/22c81c5cb7a896c5171742cd30c90d992ff13fb1ea7693e6cf80af077791613fb3f89aa9b4b7f890bd47b6ce09c6322c409932359580a2a2a54057f7b52d1cbe
- languageName: node
- linkType: hard
-
-"which-collection@npm:^1.0.1, which-collection@npm:^1.0.2":
- version: 1.0.2
- resolution: "which-collection@npm:1.0.2"
- dependencies:
- is-map: "npm:^2.0.3"
- is-set: "npm:^2.0.3"
- is-weakmap: "npm:^2.0.2"
- is-weakset: "npm:^2.0.3"
- checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7
- languageName: node
- linkType: hard
-
-"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2":
- version: 1.1.19
- resolution: "which-typed-array@npm:1.1.19"
- dependencies:
- available-typed-arrays: "npm:^1.0.7"
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- for-each: "npm:^0.3.5"
- get-proto: "npm:^1.0.1"
- gopd: "npm:^1.2.0"
- has-tostringtag: "npm:^1.0.2"
- checksum: 10/12be30fb88567f9863186bee1777f11bea09dd59ed8b3ce4afa7dd5cade75e2f4cc56191a2da165113cc7cf79987ba021dac1e22b5b62aa7e5c56949f2469a68
- languageName: node
- linkType: hard
-
-"which@npm:^2.0.1":
- version: 2.0.2
- resolution: "which@npm:2.0.2"
- dependencies:
- isexe: "npm:^2.0.0"
- bin:
- node-which: ./bin/node-which
- checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f
- languageName: node
- linkType: hard
-
-"which@npm:^6.0.0":
- version: 6.0.0
- resolution: "which@npm:6.0.0"
- dependencies:
- isexe: "npm:^3.1.1"
- bin:
- node-which: bin/which.js
- checksum: 10/df19b2cd8aac94b333fa29b42e8e371a21e634a742a3b156716f7752a5afe1d73fb5d8bce9b89326f453d96879e8fe626eb421e0117eb1a3ce9fd8c97f6b7db9
- languageName: node
- linkType: hard
-
-"wide-align@npm:^1.1.5":
- version: 1.1.5
- resolution: "wide-align@npm:1.1.5"
- dependencies:
- string-width: "npm:^1.0.2 || 2 || 3 || 4"
- checksum: 10/d5f8027b9a8255a493a94e4ec1b74a27bff6679d5ffe29316a3215e4712945c84ef73ca4045c7e20ae7d0c72f5f57f296e04a4928e773d4276a2f1222e4c2e99
- languageName: node
- linkType: hard
-
-"widest-line@npm:^3.1.0":
- version: 3.1.0
- resolution: "widest-line@npm:3.1.0"
- dependencies:
- string-width: "npm:^4.0.0"
- checksum: 10/03db6c9d0af9329c37d74378ff1d91972b12553c7d72a6f4e8525fe61563fa7adb0b9d6e8d546b7e059688712ea874edd5ded475999abdeedf708de9849310e0
- languageName: node
- linkType: hard
-
-"wildcard@npm:^2.0.0":
- version: 2.0.1
- resolution: "wildcard@npm:2.0.1"
- checksum: 10/e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c
- languageName: node
- linkType: hard
-
-"word-wrap@npm:^1.2.5":
- version: 1.2.5
- resolution: "word-wrap@npm:1.2.5"
- checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854
- languageName: node
- linkType: hard
-
-"wordwrap@npm:^1.0.0":
- version: 1.0.0
- resolution: "wordwrap@npm:1.0.0"
- checksum: 10/497d40beb2bdb08e6d38754faa17ce20b0bf1306327f80cb777927edb23f461ee1f6bc659b3c3c93f26b08e1cf4b46acc5bae8fda1f0be3b5ab9a1a0211034cd
- languageName: node
- linkType: hard
-
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
- version: 7.0.0
- resolution: "wrap-ansi@npm:7.0.0"
- dependencies:
- ansi-styles: "npm:^4.0.0"
- string-width: "npm:^4.1.0"
- strip-ansi: "npm:^6.0.0"
- checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540
- languageName: node
- linkType: hard
-
-"wrap-ansi@npm:^6.0.1":
- version: 6.2.0
- resolution: "wrap-ansi@npm:6.2.0"
- dependencies:
- ansi-styles: "npm:^4.0.0"
- string-width: "npm:^4.1.0"
- strip-ansi: "npm:^6.0.0"
- checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187
- languageName: node
- linkType: hard
-
-"wrap-ansi@npm:^8.1.0":
- version: 8.1.0
- resolution: "wrap-ansi@npm:8.1.0"
- dependencies:
- ansi-styles: "npm:^6.1.0"
- string-width: "npm:^5.0.1"
- strip-ansi: "npm:^7.0.1"
- checksum: 10/7b1e4b35e9bb2312d2ee9ee7dc95b8cb5f8b4b5a89f7dde5543fe66c1e3715663094defa50d75454ac900bd210f702d575f15f3f17fa9ec0291806d2578d1ddf
- languageName: node
- linkType: hard
-
-"wrappy@npm:1":
- version: 1.0.2
- resolution: "wrappy@npm:1.0.2"
- checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5
- languageName: node
- linkType: hard
-
-"write-file-atomic@npm:^3.0.0":
- version: 3.0.3
- resolution: "write-file-atomic@npm:3.0.3"
- dependencies:
- imurmurhash: "npm:^0.1.4"
- is-typedarray: "npm:^1.0.0"
- signal-exit: "npm:^3.0.2"
- typedarray-to-buffer: "npm:^3.1.5"
- checksum: 10/0955ab94308b74d32bc252afe69d8b42ba4b8a28b8d79f399f3f405969f82623f981e35d13129a52aa2973450f342107c06d86047572637584e85a1c0c246bf3
- languageName: node
- linkType: hard
-
-"write-json-file@npm:^4.2.0":
- version: 4.3.0
- resolution: "write-json-file@npm:4.3.0"
- dependencies:
- detect-indent: "npm:^6.0.0"
- graceful-fs: "npm:^4.1.15"
- is-plain-obj: "npm:^2.0.0"
- make-dir: "npm:^3.0.0"
- sort-keys: "npm:^4.0.0"
- write-file-atomic: "npm:^3.0.0"
- checksum: 10/33908c591923dc273e6574e7c0e2df157acfcf498e3a87c5615ced006a465c4058877df6abce6fc1acd2844fa3cf4518ace4a34d5d82ab28bcf896317ba1db6f
- languageName: node
- linkType: hard
-
-"ws@npm:^8.13.0, ws@npm:^8.15.1, ws@npm:^8.17.1, ws@npm:^8.18.0, ws@npm:^8.8.1":
- version: 8.19.0
- resolution: "ws@npm:8.19.0"
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ">=5.0.2"
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- checksum: 10/26e4901e93abaf73af9f26a93707c95b4845e91a7a347ec8c569e6e9be7f9df066f6c2b817b2d685544e208207898a750b78461e6e8d810c11a370771450c31b
- languageName: node
- linkType: hard
-
-"xdg-basedir@npm:^4.0.0":
- version: 4.0.0
- resolution: "xdg-basedir@npm:4.0.0"
- checksum: 10/0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c
- languageName: node
- linkType: hard
-
-"xml-name-validator@npm:^5.0.0":
- version: 5.0.0
- resolution: "xml-name-validator@npm:5.0.0"
- checksum: 10/43f30f3f6786e406dd665acf08cd742d5f8a46486bd72517edb04b27d1bcd1599664c2a4a99fc3f1e56a3194bff588b12f178b7972bc45c8047bdc4c3ac8d4a1
- languageName: node
- linkType: hard
-
-"xmlbuilder@npm:>=11.0.1, xmlbuilder@npm:^15.1.1":
- version: 15.1.1
- resolution: "xmlbuilder@npm:15.1.1"
- checksum: 10/e6f4bab2504afdd5f80491bda948894d2146756532521dbe7db33ae0931cd3000e3b4da19b3f5b3f51bedbd9ee06582144d28136d68bd1df96579ecf4d4404a2
- languageName: node
- linkType: hard
-
-"xmlchars@npm:^2.2.0":
- version: 2.2.0
- resolution: "xmlchars@npm:2.2.0"
- checksum: 10/4ad5924974efd004a47cce6acf5c0269aee0e62f9a805a426db3337af7bcbd331099df174b024ace4fb18971b8a56de386d2e73a1c4b020e3abd63a4a9b917f1
- languageName: node
- linkType: hard
-
-"xtend@npm:^4.0.2, xtend@npm:~4.0.1":
- version: 4.0.2
- resolution: "xtend@npm:4.0.2"
- checksum: 10/ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a
- languageName: node
- linkType: hard
-
-"xxhashjs@npm:^0.2.2":
- version: 0.2.2
- resolution: "xxhashjs@npm:0.2.2"
- dependencies:
- cuint: "npm:^0.2.2"
- checksum: 10/974dba1b7dd10f550714456366135fc70ba809e6e4db26e18a760a1f57e18dbc7fa6732738abc3f8fee27bb6a28d185240356ff4a57d7ce54282049e1da99886
- languageName: node
- linkType: hard
-
-"y18n@npm:^5.0.5":
- version: 5.0.8
- resolution: "y18n@npm:5.0.8"
- checksum: 10/5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d
- languageName: node
- linkType: hard
-
-"yaeti@npm:^0.0.6":
- version: 0.0.6
- resolution: "yaeti@npm:0.0.6"
- checksum: 10/6db12c152f7c363b80071086a3ebf5032e03332604eeda988872be50d6c8469e1f13316175544fa320f72edad696c2d83843ad0ff370659045c1a68bcecfcfea
- languageName: node
- linkType: hard
-
-"yallist@npm:^4.0.0":
- version: 4.0.0
- resolution: "yallist@npm:4.0.0"
- checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd
- languageName: node
- linkType: hard
-
-"yallist@npm:^5.0.0":
- version: 5.0.0
- resolution: "yallist@npm:5.0.0"
- checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a
- languageName: node
- linkType: hard
-
-"yaml@npm:^2.2.2":
- version: 2.8.2
- resolution: "yaml@npm:2.8.2"
- bin:
- yaml: bin.mjs
- checksum: 10/4eab0074da6bc5a5bffd25b9b359cf7061b771b95d1b3b571852098380db3b1b8f96e0f1f354b56cc7216aa97cea25163377ccbc33a2e9ce00316fe8d02f4539
- languageName: node
- linkType: hard
-
-"yargs-parser@npm:^18.1.3":
- version: 18.1.3
- resolution: "yargs-parser@npm:18.1.3"
- dependencies:
- camelcase: "npm:^5.0.0"
- decamelize: "npm:^1.2.0"
- checksum: 10/235bcbad5b7ca13e5abc54df61d42f230857c6f83223a38e4ed7b824681875b7f8b6ed52139d88a3ad007050f28dc0324b3c805deac7db22ae3b4815dae0e1bf
- languageName: node
- linkType: hard
-
-"yargs-parser@npm:^20.2.2":
- version: 20.2.9
- resolution: "yargs-parser@npm:20.2.9"
- checksum: 10/0188f430a0f496551d09df6719a9132a3469e47fe2747208b1dd0ab2bb0c512a95d0b081628bbca5400fb20dbf2fabe63d22badb346cecadffdd948b049f3fcc
- languageName: node
- linkType: hard
-
-"yargs-parser@npm:^21.1.1":
- version: 21.1.1
- resolution: "yargs-parser@npm:21.1.1"
- checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e
- languageName: node
- linkType: hard
-
-"yargs@npm:^16.2.0":
- version: 16.2.0
- resolution: "yargs@npm:16.2.0"
- dependencies:
- cliui: "npm:^7.0.2"
- escalade: "npm:^3.1.1"
- get-caller-file: "npm:^2.0.5"
- require-directory: "npm:^2.1.1"
- string-width: "npm:^4.2.0"
- y18n: "npm:^5.0.5"
- yargs-parser: "npm:^20.2.2"
- checksum: 10/807fa21211d2117135d557f95fcd3c3d390530cda2eca0c840f1d95f0f40209dcfeb5ec18c785a1f3425896e623e3b2681e8bb7b6600060eda1c3f4804e7957e
- languageName: node
- linkType: hard
-
-"yargs@npm:^17.0.0, yargs@npm:^17.6.2, yargs@npm:^17.7.2":
- version: 17.7.2
- resolution: "yargs@npm:17.7.2"
- dependencies:
- cliui: "npm:^8.0.1"
- escalade: "npm:^3.1.1"
- get-caller-file: "npm:^2.0.5"
- require-directory: "npm:^2.1.1"
- string-width: "npm:^4.2.3"
- y18n: "npm:^5.0.5"
- yargs-parser: "npm:^21.1.1"
- checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576
- languageName: node
- linkType: hard
-
-"yauzl@npm:^2.10.0":
- version: 2.10.0
- resolution: "yauzl@npm:2.10.0"
- dependencies:
- buffer-crc32: "npm:~0.2.3"
- fd-slicer: "npm:~1.1.0"
- checksum: 10/1e4c311050dc0cf2ee3dbe8854fe0a6cde50e420b3e561a8d97042526b4cf7a0718d6c8d89e9e526a152f4a9cec55bcea9c3617264115f48bd6704cf12a04445
- languageName: node
- linkType: hard
-
-"yocto-queue@npm:^0.1.0":
- version: 0.1.0
- resolution: "yocto-queue@npm:0.1.0"
- checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700
- languageName: node
- linkType: hard
-
-"zip-stream@npm:^6.0.1":
- version: 6.0.1
- resolution: "zip-stream@npm:6.0.1"
- dependencies:
- archiver-utils: "npm:^5.0.0"
- compress-commons: "npm:^6.0.2"
- readable-stream: "npm:^4.0.0"
- checksum: 10/aa5abd6a89590eadeba040afbc375f53337f12637e5e98330012a12d9886cde7a3ccc28bd91aafab50576035bbb1de39a9a316eecf2411c8b9009c9f94f0db27
- languageName: node
- linkType: hard
-
-"zod@npm:^3.21.4, zod@npm:^3.25.76":
- version: 3.25.76
- resolution: "zod@npm:3.25.76"
- checksum: 10/f0c963ec40cd96858451d1690404d603d36507c1fc9682f2dae59ab38b578687d542708a7fdbf645f77926f78c9ed558f57c3d3aa226c285f798df0c4da16995
- languageName: node
- linkType: hard
-
-"zwitch@npm:^2.0.0":
- version: 2.0.4
- resolution: "zwitch@npm:2.0.4"
- checksum: 10/f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6
- languageName: node
- linkType: hard
diff --git a/screenshot.png b/screenshot.png
index 9a501e25..aa3f1af6 100644
Binary files a/screenshot.png and b/screenshot.png differ
diff --git a/shared/blockchain/index.ts b/shared/blockchain/index.ts
index 3e7b0fc0..5e9190c2 100644
--- a/shared/blockchain/index.ts
+++ b/shared/blockchain/index.ts
@@ -5,6 +5,6 @@
* that can be used across web and mobile applications.
*/
-export * from './polkadot';
+export * from './pezkuwi';
// Add more blockchain utility exports as needed
diff --git a/shared/blockchain/polkadot.ts b/shared/blockchain/pezkuwi.ts
similarity index 94%
rename from shared/blockchain/polkadot.ts
rename to shared/blockchain/pezkuwi.ts
index 2b4be438..f28e68e9 100644
--- a/shared/blockchain/polkadot.ts
+++ b/shared/blockchain/pezkuwi.ts
@@ -1,5 +1,5 @@
/**
- * Polkadot/Substrate blockchain utilities
+ * Pezkuwi/Bizinikiwi blockchain utilities
*/
import type { BlockchainNetwork } from '../types/blockchain';
diff --git a/shared/i18n/index.ts b/shared/i18n/index.ts
index a25e3ea6..2b124551 100644
--- a/shared/i18n/index.ts
+++ b/shared/i18n/index.ts
@@ -7,12 +7,14 @@
export { translations as comprehensiveTranslations, supportedLocales } from './translations';
// Import all translation JSON files for i18next compatibility
-import en from './locales/en.json?url';
-import tr from './locales/tr.json?url';
-import kmr from './locales/kmr.json?url';
-import ckb from './locales/ckb.json?url';
-import ar from './locales/ar.json?url';
-import fa from './locales/fa.json?url';
+// Note: For Metro bundler (React Native), we import JSON directly
+// For Vite (web), the ?url syntax would be used, but we handle this via conditional exports
+import en from './locales/en.json';
+import tr from './locales/tr.json';
+import kmr from './locales/kmr.json';
+import ckb from './locales/ckb.json';
+import ar from './locales/ar.json';
+import fa from './locales/fa.json';
/**
* Language configuration with RTL support
@@ -59,9 +61,16 @@ export const translationUrls = {
};
/**
- * Translation resources (empty - load dynamically)
+ * Translation resources (for React Native)
*/
-export const translations = {};
+export const translations = {
+ en,
+ tr,
+ kmr,
+ ckb,
+ ar,
+ fa,
+};
/**
* Check if a language is RTL
diff --git a/shared/images/favicon.png b/shared/images/favicon.png
index fa697152..445f8f22 100644
Binary files a/shared/images/favicon.png and b/shared/images/favicon.png differ
diff --git a/shared/images/kurdish-president.png b/shared/images/kurdish-president.png
new file mode 100644
index 00000000..78d6edf4
Binary files /dev/null and b/shared/images/kurdish-president.png differ
diff --git a/shared/images/kurdistan-map.png b/shared/images/kurdistan-map.png
new file mode 100644
index 00000000..281a3b00
Binary files /dev/null and b/shared/images/kurdistan-map.png differ
diff --git a/shared/images/pezkuwi-extension.png b/shared/images/pezkuwi-extension.png
new file mode 100644
index 00000000..49132d40
Binary files /dev/null and b/shared/images/pezkuwi-extension.png differ
diff --git a/shared/images/pezkuwi-wallet.jpg b/shared/images/pezkuwi-wallet.jpg
new file mode 100644
index 00000000..ff6f719f
Binary files /dev/null and b/shared/images/pezkuwi-wallet.jpg differ
diff --git a/shared/lib/citizenship-workflow.ts b/shared/lib/citizenship-workflow.ts
index 862a9eba..ff74a683 100644
--- a/shared/lib/citizenship-workflow.ts
+++ b/shared/lib/citizenship-workflow.ts
@@ -4,9 +4,16 @@
// Handles citizenship verification, status checks, and workflow logic
import type { ApiPromise } from '@pezkuwi/api';
-import { web3FromAddress } from '@pezkuwi/extension-dapp';
+// Temporarily disabled for React Native compatibility
+// import { web3FromAddress } from '@pezkuwi/extension-dapp';
import type { InjectedAccountWithMeta } from '@pezkuwi/extension-inject/types';
+// Stub for mobile - TODO: implement proper React Native version
+const web3FromAddress = async (address: string) => {
+ // In React Native, we'll use a different signing mechanism
+ throw new Error('web3FromAddress not implemented for React Native yet');
+};
+
// ========================================
// TYPE DEFINITIONS
// ========================================
diff --git a/shared/lib/ipfs.ts b/shared/lib/ipfs.ts
index 9c1f1460..76d46fc1 100644
--- a/shared/lib/ipfs.ts
+++ b/shared/lib/ipfs.ts
@@ -1,6 +1,20 @@
import { toast } from 'sonner';
-const PINATA_JWT = import.meta.env.VITE_PINATA_JWT;
+// Helper to get environment variables that works in both web (Vite) and React Native (Expo)
+const getEnv = (key: string): string | undefined => {
+ // Check for Vite environment (web)
+ if (typeof import.meta !== 'undefined' && import.meta.env) {
+ return (import.meta.env as any)[key];
+ }
+ // Check for Expo environment (React Native)
+ if (typeof process !== 'undefined' && process.env) {
+ const expoKey = key.replace('VITE_', 'EXPO_PUBLIC_');
+ return process.env[expoKey] || process.env[key];
+ }
+ return undefined;
+};
+
+const PINATA_JWT = getEnv('VITE_PINATA_JWT');
const PINATA_API = 'https://api.pinata.cloud/pinning/pinFileToIPFS';
export async function uploadToIPFS(file: File): Promise {
diff --git a/shared/lib/scores.ts b/shared/lib/scores.ts
index b62cf018..c9a5558a 100644
--- a/shared/lib/scores.ts
+++ b/shared/lib/scores.ts
@@ -139,7 +139,7 @@ export async function getReferralScore(
): Promise {
try {
if (!api?.query?.referral?.referralCount) {
- if (import.meta.env.DEV) console.warn('Referral pallet not available');
+ if (typeof __DEV__ !== 'undefined' && __DEV__) console.warn('Referral pallet not available');
return 0;
}
diff --git a/shared/lib/wallet.ts b/shared/lib/wallet.ts
index 517e7e83..fe365eb3 100644
--- a/shared/lib/wallet.ts
+++ b/shared/lib/wallet.ts
@@ -6,14 +6,29 @@
import type { InjectedAccountWithMeta } from '@pezkuwi/extension-inject/types';
import { getCurrentNetworkConfig } from '../blockchain/endpoints';
+// Helper to get environment variables that works in both web (Vite) and React Native (Expo)
+const getEnv = (key: string, defaultValue: string = ''): string => {
+ // Check for Vite environment (web)
+ if (typeof import.meta !== 'undefined' && import.meta.env) {
+ return (import.meta.env as any)[key] || defaultValue;
+ }
+ // Check for Expo environment (React Native)
+ if (typeof process !== 'undefined' && process.env) {
+ // Expo uses EXPO_PUBLIC_ prefix, Vite uses VITE_ prefix
+ const expoKey = key.replace('VITE_', 'EXPO_PUBLIC_');
+ return process.env[expoKey] || process.env[key] || defaultValue;
+ }
+ return defaultValue;
+};
+
// ========================================
// CHAIN CONFIGURATION
// ========================================
export const CHAIN_CONFIG = {
- name: import.meta.env.VITE_CHAIN_NAME || 'PezkuwiChain',
- symbol: import.meta.env.VITE_CHAIN_TOKEN_SYMBOL || 'PEZ',
- decimals: parseInt(import.meta.env.VITE_CHAIN_TOKEN_DECIMALS || '12'),
- ss58Format: parseInt(import.meta.env.VITE_CHAIN_SS58_FORMAT || '42'),
+ name: getEnv('VITE_CHAIN_NAME', 'PezkuwiChain'),
+ symbol: getEnv('VITE_CHAIN_TOKEN_SYMBOL', 'PEZ'),
+ decimals: parseInt(getEnv('VITE_CHAIN_TOKEN_DECIMALS', '12')),
+ ss58Format: parseInt(getEnv('VITE_CHAIN_SS58_FORMAT', '42')),
};
// ========================================
@@ -26,13 +41,13 @@ export const CHAIN_CONFIG = {
// - 0-999: Reserved for protocol tokens (wHEZ, PEZ, etc.)
// - 1000+: Bridged/wrapped external assets (wUSDT, etc.)
export const ASSET_IDS = {
- WHEZ: parseInt(import.meta.env.VITE_ASSET_WHEZ || '0'), // Wrapped HEZ
- PEZ: parseInt(import.meta.env.VITE_ASSET_PEZ || '1'), // PEZ utility token
- WUSDT: parseInt(import.meta.env.VITE_ASSET_WUSDT || '1000'), // Wrapped USDT (6 decimals, Asset ID 1000)
- USDT: parseInt(import.meta.env.VITE_ASSET_USDT || '3'),
- BTC: parseInt(import.meta.env.VITE_ASSET_BTC || '4'),
- ETH: parseInt(import.meta.env.VITE_ASSET_ETH || '5'),
- DOT: parseInt(import.meta.env.VITE_ASSET_DOT || '6'),
+ WHEZ: parseInt(getEnv('VITE_ASSET_WHEZ', '0')), // Wrapped HEZ
+ PEZ: parseInt(getEnv('VITE_ASSET_PEZ', '1')), // PEZ utility token
+ WUSDT: parseInt(getEnv('VITE_ASSET_WUSDT', '1000')), // Wrapped USDT (6 decimals, Asset ID 1000)
+ USDT: parseInt(getEnv('VITE_ASSET_USDT', '3')),
+ BTC: parseInt(getEnv('VITE_ASSET_BTC', '4')),
+ ETH: parseInt(getEnv('VITE_ASSET_ETH', '5')),
+ DOT: parseInt(getEnv('VITE_ASSET_DOT', '6')),
} as const;
// ========================================
@@ -66,8 +81,8 @@ export const ASSET_CONFIGS = {
// EXPLORER URLS
// ========================================
export const EXPLORER_URLS = {
- polkadotJs: import.meta.env.VITE_EXPLORER_URL || 'https://polkadot.js.org/apps/?rpc=',
- custom: import.meta.env.VITE_CUSTOM_EXPLORER_URL || 'https://explorer.pezkuwichain.io',
+ pezkuwiJs: getEnv('VITE_EXPLORER_URL', 'https://js.pezkuwichain.io'),
+ custom: getEnv('VITE_CUSTOM_EXPLORER_URL', 'https://explorer.pezkuwichain.io'),
};
// ========================================
diff --git a/web/.env.example b/web/.env.example
index 93202e4f..56d48c07 100644
--- a/web/.env.example
+++ b/web/.env.example
@@ -99,4 +99,4 @@ VITE_ENABLE_STAKING=true
# ========================================
VITE_DEBUG_MODE=false
VITE_LOG_LEVEL=info
-VITE_API_TIMEOUT=30000
\ No newline at end of file
+VITE_API_TIMEOUT=30000
diff --git a/web/package-lock.json b/web/package-lock.json
deleted file mode 100644
index 2474a4b2..00000000
--- a/web/package-lock.json
+++ /dev/null
@@ -1,12924 +0,0 @@
-{
- "name": "vite_react_shadcn_ts",
- "version": "0.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "vite_react_shadcn_ts",
- "version": "0.0.0",
- "dependencies": {
- "@hookform/resolvers": "^3.9.0",
- "@pezkuwi/api": "^16.5.6",
- "@pezkuwi/extension-dapp": "^0.62.11",
- "@pezkuwi/keyring": "^14.0.7",
- "@pezkuwi/util": "^14.0.7",
- "@pezkuwi/util-crypto": "^14.0.7",
- "@radix-ui/react-accordion": "^1.2.0",
- "@radix-ui/react-alert-dialog": "^1.1.1",
- "@radix-ui/react-aspect-ratio": "^1.1.0",
- "@radix-ui/react-avatar": "^1.1.0",
- "@radix-ui/react-checkbox": "^1.1.1",
- "@radix-ui/react-collapsible": "^1.1.0",
- "@radix-ui/react-context-menu": "^2.2.1",
- "@radix-ui/react-dialog": "^1.1.2",
- "@radix-ui/react-dropdown-menu": "^2.1.1",
- "@radix-ui/react-hover-card": "^1.1.1",
- "@radix-ui/react-label": "^2.1.0",
- "@radix-ui/react-menubar": "^1.1.1",
- "@radix-ui/react-navigation-menu": "^1.2.0",
- "@radix-ui/react-popover": "^1.1.1",
- "@radix-ui/react-progress": "^1.1.0",
- "@radix-ui/react-radio-group": "^1.2.0",
- "@radix-ui/react-scroll-area": "^1.1.0",
- "@radix-ui/react-select": "^2.1.1",
- "@radix-ui/react-separator": "^1.1.0",
- "@radix-ui/react-slider": "^1.2.0",
- "@radix-ui/react-slot": "^1.1.0",
- "@radix-ui/react-switch": "^1.1.0",
- "@radix-ui/react-tabs": "^1.1.0",
- "@radix-ui/react-toast": "^1.2.1",
- "@radix-ui/react-toggle": "^1.1.0",
- "@radix-ui/react-toggle-group": "^1.1.0",
- "@radix-ui/react-tooltip": "^1.1.4",
- "@sentry/react": "^10.26.0",
- "@supabase/supabase-js": "^2.49.4",
- "@tanstack/react-query": "^5.56.2",
- "@types/dompurify": "^3.0.5",
- "@types/react-syntax-highlighter": "^15.5.13",
- "@types/uuid": "^10.0.0",
- "buffer": "^6.0.3",
- "class-variance-authority": "^0.7.1",
- "clsx": "^2.1.1",
- "cmdk": "^1.0.0",
- "date-fns": "^3.6.0",
- "dompurify": "^3.3.1",
- "embla-carousel-react": "^8.3.0",
- "highlight.js": "^11.9.0",
- "i18next": "^23.7.6",
- "i18next-browser-languagedetector": "^7.2.0",
- "input-otp": "^1.2.4",
- "lucide-react": "^0.462.0",
- "marked": "^12.0.1",
- "next-themes": "^0.3.0",
- "qrcode": "^1.5.4",
- "react": "^18.3.1",
- "react-day-picker": "^8.10.1",
- "react-dom": "^18.3.1",
- "react-hook-form": "^7.53.0",
- "react-i18next": "^14.0.0",
- "react-resizable-panels": "^2.1.3",
- "react-router-dom": "^6.26.2",
- "react-syntax-highlighter": "^16.1.0",
- "recharts": "^2.12.7",
- "sonner": "^1.5.0",
- "tailwind-merge": "^2.5.2",
- "tailwindcss-animate": "^1.0.7",
- "uuid": "^11.1.0",
- "vaul": "^0.9.3",
- "zod": "^3.23.8"
- },
- "devDependencies": {
- "@eslint/js": "^9.9.0",
- "@tailwindcss/typography": "^0.5.16",
- "@testing-library/jest-dom": "^6.9.1",
- "@testing-library/react": "^16.3.0",
- "@testing-library/user-event": "^14.6.1",
- "@types/node": "^22.5.5",
- "@types/qrcode": "^1.5.6",
- "@types/react": "^18.3.3",
- "@types/react-dom": "^18.3.0",
- "@vitejs/plugin-react-swc": "^3.5.0",
- "autoprefixer": "^10.4.20",
- "eslint": "^9.9.0",
- "eslint-plugin-react": "^7.37.5",
- "eslint-plugin-react-hooks": "^5.1.0-rc.0",
- "eslint-plugin-react-refresh": "^0.4.9",
- "globals": "^15.15.0",
- "husky": "^9.1.7",
- "jsdom": "^27.2.0",
- "postcss": "^8.4.47",
- "tailwindcss": "^3.4.11",
- "typescript": "^5.5.3",
- "typescript-eslint": "^8.0.1",
- "vite": "^5.4.1",
- "vite-plugin-node-polyfills": "^0.24.0",
- "vitest": "^4.0.10"
- }
- },
- "node_modules/@acemir/cssom": {
- "version": "0.9.30",
- "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.30.tgz",
- "integrity": "sha512-9CnlMCI0LmCIq0olalQqdWrJHPzm0/tw3gzOA9zJSgvFX7Xau3D24mAGa4BtwxwY69nsuJW6kQqqCzf/mEcQgg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@adobe/css-tools": {
- "version": "4.4.4",
- "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz",
- "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@asamuzakjp/css-color": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.1.tgz",
- "integrity": "sha512-B0Hv6G3gWGMn0xKJ0txEi/jM5iFpT3MfDxmhZFb4W047GvytCf1DHQ1D69W3zHI4yWe2aTZAA0JnbMZ7Xc8DuQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@csstools/css-calc": "^2.1.4",
- "@csstools/css-color-parser": "^3.1.0",
- "@csstools/css-parser-algorithms": "^3.0.5",
- "@csstools/css-tokenizer": "^3.0.4",
- "lru-cache": "^11.2.4"
- }
- },
- "node_modules/@asamuzakjp/dom-selector": {
- "version": "6.7.6",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.6.tgz",
- "integrity": "sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@asamuzakjp/nwsapi": "^2.3.9",
- "bidi-js": "^1.0.3",
- "css-tree": "^3.1.0",
- "is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.2.4"
- }
- },
- "node_modules/@asamuzakjp/nwsapi": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
- "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
- "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bizinikiwi/connect": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@bizinikiwi/connect/-/connect-2.1.9.tgz",
- "integrity": "sha512-dHzMerp2f/Q/xhroUVXTLPIqn6PRBBorGwg/Y1L9TWS9Za8L7J3Iw0XJhN3KI2yqdywOGSYM+hMLuGcvkncgkQ==",
- "license": "GPL-3.0-only",
- "optional": true,
- "dependencies": {
- "@bizinikiwi/connect-extension-protocol": "^2.2.2",
- "@bizinikiwi/connect-known-chains": "^1.10.3",
- "@bizinikiwi/smoldot-discovery": "^2.0.3",
- "smoldot": "^2.0.34"
- }
- },
- "node_modules/@bizinikiwi/connect-extension-protocol": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@bizinikiwi/connect-extension-protocol/-/connect-extension-protocol-2.2.2.tgz",
- "integrity": "sha512-2xsfJNAEQqZG1LBxdDzKreBFsvldqTDiC7xGNX/6avWPQDcIkm1gHtVYJ+Yw9wvsEodMrg3gBV87rcFJVgNV/g==",
- "license": "GPL-3.0-only",
- "optional": true
- },
- "node_modules/@bizinikiwi/connect-known-chains": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/@bizinikiwi/connect-known-chains/-/connect-known-chains-1.10.3.tgz",
- "integrity": "sha512-MIL+JP/RkkX4ytoxm4enok4OP+k5rAaBM+yNBCdJataTPQ8OrTuv4FGwBXc7SpMZeRado/v+WmiwQT5qFbISRg==",
- "license": "GPL-3.0-only",
- "optional": true
- },
- "node_modules/@bizinikiwi/discovery": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@bizinikiwi/discovery/-/discovery-0.2.2.tgz",
- "integrity": "sha512-LSq3/4Fb7i3YNzGW9r9ZVvLR6ojlXPUbhfheoKFncG+IwXKKSP6CMIB8QpRGRKMgr15k4L4rQp0awBWhEVdPyQ==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/@bizinikiwi/smoldot-discovery": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@bizinikiwi/smoldot-discovery/-/smoldot-discovery-2.0.3.tgz",
- "integrity": "sha512-7iInxXewJaRZJk+nD89g88uvo1Fhut76cqHi4xCLgZw0dqDhrEzq8LO5MYbISEkZLL4nAANPCmBa0Ohm47fSMA==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@bizinikiwi/discovery": "^0.2.2"
- }
- },
- "node_modules/@csstools/color-helpers": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
- "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@csstools/css-calc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
- "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.5",
- "@csstools/css-tokenizer": "^3.0.4"
- }
- },
- "node_modules/@csstools/css-color-parser": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
- "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/color-helpers": "^5.1.0",
- "@csstools/css-calc": "^2.1.4"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.5",
- "@csstools/css-tokenizer": "^3.0.4"
- }
- },
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
- "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^3.0.4"
- }
- },
- "node_modules/@csstools/css-syntax-patches-for-csstree": {
- "version": "1.0.22",
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.22.tgz",
- "integrity": "sha512-qBcx6zYlhleiFfdtzkRgwNC7VVoAwfK76Vmsw5t+PbvtdknO9StgRk7ROvq9so1iqbdW4uLIDAsXRsTfUrIoOw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
- "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz",
- "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz",
- "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openharmony-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz",
- "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
- "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
- "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/config-array": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
- "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/object-schema": "^2.1.7",
- "debug": "^4.3.1",
- "minimatch": "^3.1.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/config-helpers": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
- "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/core": "^0.17.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/core": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
- "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
- "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/@eslint/eslintrc": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz",
- "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.1",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/js": {
- "version": "9.39.2",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz",
- "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==",
- "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": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
- "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/plugin-kit": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
- "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/core": "^0.17.0",
- "levn": "^0.4.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@exodus/bytes": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.8.0.tgz",
- "integrity": "sha512-8JPn18Bcp8Uo1T82gR8lh2guEOa5KKU/IEKvvdp0sgmi7coPBWf1Doi1EXsGZb2ehc8ym/StJCjffYV+ne7sXQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- },
- "peerDependencies": {
- "@exodus/crypto": "^1.0.0-rc.4"
- },
- "peerDependenciesMeta": {
- "@exodus/crypto": {
- "optional": true
- }
- }
- },
- "node_modules/@floating-ui/core": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
- "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/utils": "^0.2.10"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz",
- "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/core": "^1.7.3",
- "@floating-ui/utils": "^0.2.10"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz",
- "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.7.4"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
- "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
- "license": "MIT"
- },
- "node_modules/@hookform/resolvers": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz",
- "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==",
- "license": "MIT",
- "peerDependencies": {
- "react-hook-form": "^7.0.0"
- }
- },
- "node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanfs/node": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
- "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@humanfs/core": "^0.19.1",
- "@humanwhocodes/retry": "^0.4.0"
- },
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/retry": {
- "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": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@noble/curves": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
- "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==",
- "license": "MIT",
- "dependencies": {
- "@noble/hashes": "1.8.0"
- },
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "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",
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pezkuwi/api": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/api/-/api-16.5.6.tgz",
- "integrity": "sha512-QATfkkFOAqTBKPVjsJ2RXKjoLXX7tg2gMGR6rz2GzfFyqqydNYcjTcn3zCexJmicesXonXfm9zQy8rjkyvdUYA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/api-augment": "16.5.4",
- "@pezkuwi/api-base": "16.5.4",
- "@pezkuwi/api-derive": "16.5.4",
- "@pezkuwi/keyring": "^14.0.1",
- "@pezkuwi/rpc-augment": "16.5.4",
- "@pezkuwi/rpc-core": "16.5.4",
- "@pezkuwi/rpc-provider": "16.5.4",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-augment": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/types-create": "16.5.4",
- "@pezkuwi/types-known": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "@pezkuwi/util-crypto": "^14.0.1",
- "eventemitter3": "^5.0.1",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/api-augment": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/api-augment/-/api-augment-16.5.6.tgz",
- "integrity": "sha512-AoLrZfbhUwfVF3PnZqtyulGrsSZXAPiCvO+3+05zsHnxD6Kj6Fpuma/dZZ3gckdnZm1CK3MKTe9Wh9OkjKwqGQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/api-base": "16.5.4",
- "@pezkuwi/rpc-augment": "16.5.4",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-augment": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/api-base": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/api-base/-/api-base-16.5.6.tgz",
- "integrity": "sha512-3RTuJCmYxlmC/uP/n3gEKCrWjRcjQsxyKXsMCzSmkhg0QEWESurqb6JmdVpGu4C60eOEKMa1p0U93+CUlD9nGg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/rpc-core": "16.5.4",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/api-derive": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/api-derive/-/api-derive-16.5.6.tgz",
- "integrity": "sha512-g/zNWf0Xfdl5+VPwnqBJeUVSy3AWU2emwx95FkdPC86IANzDIsGkAnfcc2bJgNo/GoaYfDF0Fsc3pjfnMY4OMw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/api": "16.5.4",
- "@pezkuwi/api-augment": "16.5.4",
- "@pezkuwi/api-base": "16.5.4",
- "@pezkuwi/rpc-core": "16.5.4",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "@pezkuwi/util-crypto": "^14.0.1",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/extension-dapp": {
- "version": "0.62.11",
- "resolved": "https://registry.npmjs.org/@pezkuwi/extension-dapp/-/extension-dapp-0.62.11.tgz",
- "integrity": "sha512-NoSTFsrZDfTgiB77dhCCd1pGDUPHX720S1tv2U0uk1Aapv58eCPYoGKfrkMKXZGyyJWiY/iYxnA8HIcODy4VmQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/extension-inject": "0.62.11",
- "@pezkuwi/util": "^14.0.5",
- "@pezkuwi/util-crypto": "^14.0.5",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/api": "*",
- "@pezkuwi/util": "*",
- "@pezkuwi/util-crypto": "*"
- }
- },
- "node_modules/@pezkuwi/extension-inject": {
- "version": "0.62.11",
- "resolved": "https://registry.npmjs.org/@pezkuwi/extension-inject/-/extension-inject-0.62.11.tgz",
- "integrity": "sha512-RhPyQplwD0oTx+q4+7EtBAIs9W+Bapc7zlTG3Nl+XXkLZza5a0DxOtBWsZx712gH/aBMT6Xtbb9U7k5krl0log==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/api": "^16.5.5",
- "@pezkuwi/rpc-provider": "^16.5.5",
- "@pezkuwi/types": "^16.5.5",
- "@pezkuwi/util": "^14.0.5",
- "@pezkuwi/util-crypto": "^14.0.5",
- "@pezkuwi/x-global": "^14.0.5",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/api": "*",
- "@pezkuwi/util": "*"
- }
- },
- "node_modules/@pezkuwi/keyring": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/keyring/-/keyring-14.0.7.tgz",
- "integrity": "sha512-O3UtSm18Wr231THuVUdxi0F3FPm3Mdhg/NtSR7o2uXQMZIHBgu7m14g2lVz4IP2CSYB9x1KqOeAg4pJ6DNkB5g==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/util": "14.0.1",
- "@pezkuwi/util-crypto": "^14.0.2",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "14.0.1",
- "@pezkuwi/util-crypto": "^14.0.2"
- }
- },
- "node_modules/@pezkuwi/networks": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/networks/-/networks-14.0.7.tgz",
- "integrity": "sha512-EY6EyAkLgoIp/bwijXGugNBfnKVsmcTI7lW22dx85TWZeGC1PshTB79DahUx81LRccDvmN65+OnSPYg6RhnpDw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/util": "14.0.1",
- "@substrate/ss58-registry": "^1.51.0",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/rpc-augment": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/rpc-augment/-/rpc-augment-16.5.6.tgz",
- "integrity": "sha512-muS+MByF4EpTImYOmnKTDioQYwj6OYP3rEgt9J34BIe4ci50bB1wnf3XSxHZR0f0nfsiujhFaZBLDD91Uvhzqw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/rpc-core": "16.5.4",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/rpc-core": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/rpc-core/-/rpc-core-16.5.6.tgz",
- "integrity": "sha512-az4gCdf0I0FvRI9ouiAHYi9icWdvOd2LHDKZN1wM7YvVEjVIfIzbMeDecaYIdv7xe2KXwbMMZcKkueTnkgciJw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/rpc-augment": "16.5.4",
- "@pezkuwi/rpc-provider": "16.5.4",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/rpc-provider": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/rpc-provider/-/rpc-provider-16.5.6.tgz",
- "integrity": "sha512-gmmT4+OtG7Qk4kPS6/cN3+gfeRTuTXkyYEkiieFLl7pxn5RwTOiF9ePcYy6VC7Ph8xWpZBIqEI5s1Sa+qex3vg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/keyring": "^14.0.1",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-support": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "@pezkuwi/util-crypto": "^14.0.1",
- "@pezkuwi/x-fetch": "^14.0.1",
- "@pezkuwi/x-global": "^14.0.1",
- "@pezkuwi/x-ws": "^14.0.1",
- "eventemitter3": "^5.0.1",
- "mock-socket": "^9.3.1",
- "nock": "^13.5.5",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@bizinikiwi/connect": "2.1.9"
- }
- },
- "node_modules/@pezkuwi/types": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/types/-/types-16.5.6.tgz",
- "integrity": "sha512-7NlAhTyoRa1IBVhcbJqwZM1MlfR6DsZK3wYxTTKlDmTW/gsKJGxs6ItAWhQFVaa3ljS6n+v59uzmxvC93JYSug==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/keyring": "^14.0.1",
- "@pezkuwi/types-augment": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/types-create": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "@pezkuwi/util-crypto": "^14.0.1",
- "rxjs": "^7.8.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/types-augment": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/types-augment/-/types-augment-16.5.6.tgz",
- "integrity": "sha512-oEV08wf0B9yjCdZyAxXvqtEyFyUQP1bcSXu2PBupvspZpxIjeptiZm8eUD8ZMJdvM0BJ7yHhxKOBwie8erQ5BQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/types-codec": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/types-codec/-/types-codec-16.5.6.tgz",
- "integrity": "sha512-4diC1GzePxeW4GM0Djy8FoEaqk2spgqSADLxNGue5hMj7jrgD3XgONaIVcvao4lw5DavIjlLaorDiufbcrEbeA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/util": "^14.0.1",
- "@pezkuwi/x-bigint": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/types-create": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/types-create/-/types-create-16.5.6.tgz",
- "integrity": "sha512-HiiQlhiNWKKPQjRX9xvX7iZCuy4VGclZ7ewbWcFYbmcyTOuBRbIvaw0xqmZ1C8VfznadySgPghuqeZVXL+c56Q==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/types-known": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/types-known/-/types-known-16.5.6.tgz",
- "integrity": "sha512-iixufb2GoA74JkC0Yy6qtIzcR8u+gGmUD3Jpoz2+MgAGkW7DQzNlwxAiBJLw9Vh0Y7Z9YDBWiEJw6mdELlQonA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/networks": "^14.0.1",
- "@pezkuwi/types": "16.5.4",
- "@pezkuwi/types-codec": "16.5.4",
- "@pezkuwi/types-create": "16.5.4",
- "@pezkuwi/util": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/types-support": {
- "version": "16.5.6",
- "resolved": "https://registry.npmjs.org/@pezkuwi/types-support/-/types-support-16.5.6.tgz",
- "integrity": "sha512-ETZ71NdZZqhgWdM2UdBUnVRCPKnFDebcAYhRflQwBG7nqwpn4YHndYAy6eccaFklRJPQ66VjpTll5FdcXYU1cw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/util": "^14.0.1",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/util": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/util/-/util-14.0.7.tgz",
- "integrity": "sha512-aoLq87+6RP8+8SfXKRKqlmu/S0Kzdv4uurU2ojeukQIxxE0GVimIZg3HQMgTdPIL4KYRzV7N6rNdGEOzxSTAcQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-bigint": "14.0.1",
- "@pezkuwi/x-global": "14.0.1",
- "@pezkuwi/x-textdecoder": "14.0.1",
- "@pezkuwi/x-textencoder": "14.0.1",
- "@types/bn.js": "^5.1.6",
- "bn.js": "^5.2.1",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/util-crypto": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/util-crypto/-/util-crypto-14.0.7.tgz",
- "integrity": "sha512-VSEKk7sJCf6fPgHP2polmhb6ou9rGA0XUazQSU9G52Fdpe59wmtDk35t445sa6DNdOUF4qFxv5wCrbzKvEVruw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@noble/curves": "^1.3.0",
- "@noble/hashes": "^1.3.3",
- "@pezkuwi/networks": "14.0.1",
- "@pezkuwi/util": "14.0.1",
- "@pezkuwi/wasm-crypto": "^7.5.4",
- "@pezkuwi/wasm-util": "^7.5.4",
- "@pezkuwi/x-bigint": "14.0.1",
- "@pezkuwi/x-randomvalues": "14.0.1",
- "@scure/base": "^1.1.7",
- "@scure/sr25519": "^0.2.0",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "14.0.1"
- }
- },
- "node_modules/@pezkuwi/wasm-bridge": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-bridge/-/wasm-bridge-7.5.4.tgz",
- "integrity": "sha512-UK2SzudaitB3ohXyJQj6K289KReqmiXPXf1Ml4fc87NMSv665d+WYtIW500SR4IlLKp0yfIbvW1VewBz2KIhIw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/wasm-util": "7.5.3",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*",
- "@pezkuwi/x-randomvalues": "*"
- }
- },
- "node_modules/@pezkuwi/wasm-bridge/node_modules/@pezkuwi/wasm-util": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-util/-/wasm-util-7.5.3.tgz",
- "integrity": "sha512-q0nWKtW8eESANGSb9E9K/Omgh++/a/DAUxtx4CGHAKtDu6hURGYxh3SuEEghueeOuY4MX+Fu5gc0R6V/Z0po+g==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*"
- }
- },
- "node_modules/@pezkuwi/wasm-crypto": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-crypto/-/wasm-crypto-7.5.4.tgz",
- "integrity": "sha512-6VDQ1MJnaqt73ezxuf6NOqYJfsrCJ4qPjZoOFmTjNZt9qKNxDpsw0+3mWsszJvKg0hVsy2vAGoFoVIKf+4pHvg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/wasm-bridge": "7.5.4",
- "@pezkuwi/wasm-crypto-asmjs": "7.5.4",
- "@pezkuwi/wasm-crypto-init": "7.5.4",
- "@pezkuwi/wasm-crypto-wasm": "7.5.4",
- "@pezkuwi/wasm-util": "7.5.4",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*",
- "@pezkuwi/x-randomvalues": "*"
- }
- },
- "node_modules/@pezkuwi/wasm-crypto-asmjs": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.5.4.tgz",
- "integrity": "sha512-zYBTwm9WbDeUuMzn56HHeA13WfWwDEEe0ojH3i0yiuis1Mo6Ie0J3ii7X7gai17Hbnv9ydfgaePvUHUDjt5PQQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*"
- }
- },
- "node_modules/@pezkuwi/wasm-crypto-init": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-crypto-init/-/wasm-crypto-init-7.5.4.tgz",
- "integrity": "sha512-Ie4kQtcj/8J9XaMcnjW0rn9yCCFOHAMwckyfOhddwErxW9p7IzZeEEAxhiI34LaR3OV3/yO3gm8W90WN+k6FCQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/wasm-bridge": "7.5.4",
- "@pezkuwi/wasm-crypto-asmjs": "7.5.4",
- "@pezkuwi/wasm-crypto-wasm": "7.5.4",
- "@pezkuwi/wasm-util": "7.5.4",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*",
- "@pezkuwi/x-randomvalues": "*"
- }
- },
- "node_modules/@pezkuwi/wasm-crypto-wasm": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-crypto-wasm/-/wasm-crypto-wasm-7.5.4.tgz",
- "integrity": "sha512-f2Et7jfZ5shYsmDHTuvDjcl+rg3dVGZqXlhx2KnpyGH5jebA8ULaUGxtmO9vUUJjs/rMkJkCNYrZ0YneYtLe4A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/wasm-util": "7.5.4",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*"
- }
- },
- "node_modules/@pezkuwi/wasm-util": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@pezkuwi/wasm-util/-/wasm-util-7.5.4.tgz",
- "integrity": "sha512-DyWWG8Sn7txg2VltSBqF/0zQCYQ0MNNSkrfHKTOOz6esC1abCDq5LKh8rPqy1IQoeD+lUFubIDmNW3G9pH9lfg==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "*"
- }
- },
- "node_modules/@pezkuwi/x-bigint": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-bigint/-/x-bigint-14.0.7.tgz",
- "integrity": "sha512-VoJrNm5+hhNNkqlPCxlUucelj0nzSST6cFWsoBQCqympC/6a5A4wMcTzmm9L4cphwH2aV2dnfbAZQKgx/uv+0A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-global": "14.0.1",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/x-fetch": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-fetch/-/x-fetch-14.0.7.tgz",
- "integrity": "sha512-xATjfQY5z8Es3Q5sx8gW9tss5KM+ov3K71FVh2Oabokenu7KBwY4bE4abSIwfB2GpcDwwOd9mAhGPEWdMB34AQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-global": "14.0.1",
- "node-fetch": "^3.3.2",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/x-global": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-global/-/x-global-14.0.7.tgz",
- "integrity": "sha512-0dnXeVSywv2pi12/DqWrgFGTYdP3P8SrgXXL3r5rtVUV7T8bjxXp11SswGd7igBcDw11exuaxzQiiuCmpsOY4g==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/x-randomvalues": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-randomvalues/-/x-randomvalues-14.0.7.tgz",
- "integrity": "sha512-m/H7b7PjXSlTcPxUwJeUATO2EdkwmQjPMGqREFOXsYCkPdNIiGRQGAJluIyrJTaN8GAjr3gKt1Q+GxHpcfyFLA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-global": "14.0.1",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@pezkuwi/util": "14.0.1",
- "@pezkuwi/wasm-util": "*"
- }
- },
- "node_modules/@pezkuwi/x-textdecoder": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-textdecoder/-/x-textdecoder-14.0.7.tgz",
- "integrity": "sha512-Kkmk0C3CnHT8O1Mwwc6ICz9qd+o5n2v8I2VKvh+m0Nsg9+Er0edZLHdrBs7lyIsysGh4kEFd0YWOz0BzmIlt/w==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-global": "14.0.1",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/x-textencoder": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-textencoder/-/x-textencoder-14.0.7.tgz",
- "integrity": "sha512-z/594YsW1lLDe73k+cz0pBtrX8tWVzj+pJ3hUm2+1vjl0j2hFlUaqJUiODoZJbf2Be+Fkgvg9wGs2535vZjrwA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-global": "14.0.1",
- "tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@pezkuwi/x-ws": {
- "version": "14.0.7",
- "resolved": "https://registry.npmjs.org/@pezkuwi/x-ws/-/x-ws-14.0.7.tgz",
- "integrity": "sha512-UIHJeHLSMrDPZLs/BBkMplhh5UmOrb4JdKPVHf7TpHtApDcZqJP57PpNvNuiCpyJJvw8sGboJB8gSbzOShAoXA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@pezkuwi/x-global": "14.0.1",
- "tslib": "^2.8.0",
- "ws": "^8.18.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "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/primitive": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
- "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
- "license": "MIT"
- },
- "node_modules/@radix-ui/react-accordion": {
- "version": "1.2.12",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz",
- "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-collapsible": "1.1.12",
- "@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-alert-dialog": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz",
- "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-dialog": "1.1.15",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-slot": "1.2.3"
- },
- "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-alert-dialog/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-arrow": {
- "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.3"
- },
- "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-aspect-ratio": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.8.tgz",
- "integrity": "sha512-5nZrJTF7gH+e0nZS7/QxFz6tJV4VimhQb1avEgtsJxvvIp5JilL+c58HICsKzPxghdwaDt48hEfPM1au4zGy+w==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.4"
- },
- "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-aspect-ratio/node_modules/@radix-ui/react-primitive": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
- "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-slot": "1.2.4"
- },
- "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-avatar": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.11.tgz",
- "integrity": "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-context": "1.1.3",
- "@radix-ui/react-primitive": "2.1.4",
- "@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"
- },
- "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-avatar/node_modules/@radix-ui/react-context": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.3.tgz",
- "integrity": "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==",
- "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-avatar/node_modules/@radix-ui/react-primitive": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
- "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-slot": "1.2.4"
- },
- "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": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz",
- "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-presence": "1.1.5",
- "@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"
- },
- "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-collapsible": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz",
- "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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.5",
- "@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": {
- "@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-collection": {
- "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.3",
- "@radix-ui/react-slot": "1.2.3"
- },
- "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-collection/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-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-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-context-menu": {
- "version": "2.2.16",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz",
- "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-menu": "2.1.16",
- "@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"
- },
- "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-dialog": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz",
- "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.11",
- "@radix-ui/react-focus-guards": "1.1.3",
- "@radix-ui/react-focus-scope": "1.1.7",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-portal": "1.1.9",
- "@radix-ui/react-presence": "1.1.5",
- "@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"
- },
- "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-dialog/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-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-dismissable-layer": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz",
- "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@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"
- },
- "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-dropdown-menu": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz",
- "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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.16",
- "@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-focus-guards": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz",
- "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==",
- "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-focus-scope": {
- "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.3",
- "@radix-ui/react-use-callback-ref": "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-hover-card": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz",
- "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.11",
- "@radix-ui/react-popper": "1.2.8",
- "@radix-ui/react-portal": "1.1.9",
- "@radix-ui/react-presence": "1.1.5",
- "@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-id": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
- "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
- "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-label": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.8.tgz",
- "integrity": "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.4"
- },
- "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-label/node_modules/@radix-ui/react-primitive": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
- "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-slot": "1.2.4"
- },
- "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-menu": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz",
- "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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.11",
- "@radix-ui/react-focus-guards": "1.1.3",
- "@radix-ui/react-focus-scope": "1.1.7",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-popper": "1.2.8",
- "@radix-ui/react-portal": "1.1.9",
- "@radix-ui/react-presence": "1.1.5",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@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"
- },
- "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-menu/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-menubar": {
- "version": "1.1.16",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz",
- "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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-menu": "2.1.16",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@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-navigation-menu": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz",
- "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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.11",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-presence": "1.1.5",
- "@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-use-previous": "1.1.1",
- "@radix-ui/react-visually-hidden": "1.2.3"
- },
- "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-popover": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz",
- "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.11",
- "@radix-ui/react-focus-guards": "1.1.3",
- "@radix-ui/react-focus-scope": "1.1.7",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-popper": "1.2.8",
- "@radix-ui/react-portal": "1.1.9",
- "@radix-ui/react-presence": "1.1.5",
- "@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"
- },
- "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-popover/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-popper": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz",
- "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/react-dom": "^2.0.0",
- "@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.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",
- "@radix-ui/react-use-size": "1.1.1",
- "@radix-ui/rect": "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-portal": {
- "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.3",
- "@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-presence": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz",
- "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==",
- "license": "MIT",
- "dependencies": {
- "@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-primitive": {
- "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.3"
- },
- "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-primitive/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.8.tgz",
- "integrity": "sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-context": "1.1.3",
- "@radix-ui/react-primitive": "2.1.4"
- },
- "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-progress/node_modules/@radix-ui/react-context": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.3.tgz",
- "integrity": "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==",
- "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-progress/node_modules/@radix-ui/react-primitive": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
- "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-slot": "1.2.4"
- },
- "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-radio-group": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz",
- "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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-presence": "1.1.5",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@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"
- },
- "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-roving-focus": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz",
- "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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-callback-ref": "1.1.1",
- "@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-scroll-area": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz",
- "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.1",
- "@radix-ui/primitive": "1.1.3",
- "@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-presence": "1.1.5",
- "@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"
- },
- "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-select": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz",
- "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.1",
- "@radix-ui/primitive": "1.1.3",
- "@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.11",
- "@radix-ui/react-focus-guards": "1.1.3",
- "@radix-ui/react-focus-scope": "1.1.7",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-popper": "1.2.8",
- "@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.3",
- "aria-hidden": "^1.2.4",
- "react-remove-scroll": "^2.6.3"
- },
- "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-select/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-separator": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.8.tgz",
- "integrity": "sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-primitive": "2.1.4"
- },
- "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-separator/node_modules/@radix-ui/react-primitive": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
- "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-slot": "1.2.4"
- },
- "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-slider": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz",
- "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/number": "1.1.1",
- "@radix-ui/primitive": "1.1.3",
- "@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-primitive": "2.1.3",
- "@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-use-size": "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-slot": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz",
- "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==",
- "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-switch": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz",
- "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@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"
- },
- "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-tabs": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz",
- "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-presence": "1.1.5",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@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-toast": {
- "version": "1.2.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz",
- "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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.11",
- "@radix-ui/react-portal": "1.1.9",
- "@radix-ui/react-presence": "1.1.5",
- "@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.3"
- },
- "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-toggle": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz",
- "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@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-toggle-group": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz",
- "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@radix-ui/react-toggle": "1.1.10",
- "@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-tooltip": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz",
- "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-dismissable-layer": "1.1.11",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-popper": "1.2.8",
- "@radix-ui/react-portal": "1.1.9",
- "@radix-ui/react-presence": "1.1.5",
- "@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.3"
- },
- "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-tooltip/node_modules/@radix-ui/react-slot": {
- "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"
- },
- "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-callback-ref": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
- "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
- "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-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-use-effect-event": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
- "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
- "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-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",
- "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-use-callback-ref": "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-use-is-hydrated": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz",
- "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==",
- "license": "MIT",
- "dependencies": {
- "use-sync-external-store": "^1.5.0"
- },
- "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-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-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-use-rect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz",
- "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/rect": "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-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-visually-hidden": {
- "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.3"
- },
- "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/rect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz",
- "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==",
- "license": "MIT"
- },
- "node_modules/@remix-run/router": {
- "version": "1.23.1",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.1.tgz",
- "integrity": "sha512-vDbaOzF7yT2Qs4vO6XV1MHcJv+3dgR1sT+l3B8xxOVhUC336prMvqrvsLL/9Dnw2xr6Qhz4J0dmS0llNAbnUmQ==",
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.27",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
- "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@rollup/plugin-inject": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz",
- "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.3"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
- "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz",
- "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz",
- "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz",
- "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz",
- "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz",
- "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz",
- "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz",
- "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz",
- "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz",
- "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz",
- "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz",
- "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz",
- "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz",
- "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz",
- "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz",
- "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz",
- "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz",
- "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz",
- "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz",
- "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz",
- "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ]
- },
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz",
- "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz",
- "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz",
- "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz",
- "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz",
- "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@scure/base": {
- "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/sr25519": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@scure/sr25519/-/sr25519-0.2.0.tgz",
- "integrity": "sha512-uUuLP7Z126XdSizKtrCGqYyR3b3hYtJ6Fg/XFUXmc2//k2aXHDLqZwFeXxL97gg4XydPROPVnuaHGF2+xriSKg==",
- "license": "MIT",
- "dependencies": {
- "@noble/curves": "~1.9.2",
- "@noble/hashes": "~1.8.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@sentry-internal/browser-utils": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.32.1.tgz",
- "integrity": "sha512-sjLLep1es3rTkbtAdTtdpc/a6g7v7bK5YJiZJsUigoJ4NTiFeMI5uIDCxbH/tjJ1q23YE1LzVn7T96I+qBRjHA==",
- "license": "MIT",
- "dependencies": {
- "@sentry/core": "10.32.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@sentry-internal/feedback": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.32.1.tgz",
- "integrity": "sha512-O24G8jxbfBY1RE/v2qFikPJISVMOrd/zk8FKyl+oUVYdOxU2Ucjk2cR3EQruBFlc7irnL6rT3GPfRZ/kBgLkmQ==",
- "license": "MIT",
- "dependencies": {
- "@sentry/core": "10.32.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@sentry-internal/replay": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.32.1.tgz",
- "integrity": "sha512-KKmLUgIaLRM0VjrMA1ByQTawZyRDYSkG2evvEOVpEtR9F0sumidAQdi7UY71QEKE1RYe/Jcp/3WoaqsMh8tbnQ==",
- "license": "MIT",
- "dependencies": {
- "@sentry-internal/browser-utils": "10.32.1",
- "@sentry/core": "10.32.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@sentry-internal/replay-canvas": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.32.1.tgz",
- "integrity": "sha512-/XGTzWNWVc+B691fIVekV2KeoHFEDA5KftrLFAhEAW7uWOwk/xy3aQX4TYM0LcPm2PBKvoumlAD+Sd/aXk63oA==",
- "license": "MIT",
- "dependencies": {
- "@sentry-internal/replay": "10.32.1",
- "@sentry/core": "10.32.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@sentry/browser": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.32.1.tgz",
- "integrity": "sha512-NPNCXTZ05ZGTFyJdKNqjykpFm+urem0ebosILQiw3C4BxNVNGH4vfYZexyl6prRhmg91oB6GjVNiVDuJiap1gg==",
- "license": "MIT",
- "dependencies": {
- "@sentry-internal/browser-utils": "10.32.1",
- "@sentry-internal/feedback": "10.32.1",
- "@sentry-internal/replay": "10.32.1",
- "@sentry-internal/replay-canvas": "10.32.1",
- "@sentry/core": "10.32.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@sentry/core": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.32.1.tgz",
- "integrity": "sha512-PH2ldpSJlhqsMj2vCTyU0BI2Fx1oIDhm7Izo5xFALvjVCS0gmlqHt1udu6YlKn8BtpGH6bGzssvv5APrk+OdPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@sentry/react": {
- "version": "10.32.1",
- "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.32.1.tgz",
- "integrity": "sha512-/tX0HeACbAmVP57x8txTrGk/U3fa9pDBaoAtlOrnPv5VS/aC5SGkehXWeTGSAa+ahlOWwp3IF8ILVXRiOoG/Vg==",
- "license": "MIT",
- "dependencies": {
- "@sentry/browser": "10.32.1",
- "@sentry/core": "10.32.1",
- "hoist-non-react-statics": "^3.3.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "react": "^16.14.0 || 17.x || 18.x || 19.x"
- }
- },
- "node_modules/@standard-schema/spec": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
- "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@substrate/ss58-registry": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz",
- "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@supabase/auth-js": {
- "version": "2.89.0",
- "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.89.0.tgz",
- "integrity": "sha512-wiWZdz8WMad8LQdJMWYDZ2SJtZP5MwMqzQq3ehtW2ngiI3UTgbKiFrvMUUS3KADiVlk4LiGfODB2mrYx7w2f8w==",
- "license": "MIT",
- "dependencies": {
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/@supabase/functions-js": {
- "version": "2.89.0",
- "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.89.0.tgz",
- "integrity": "sha512-XEueaC5gMe5NufNYfBh9kPwJlP5M2f+Ogr8rvhmRDAZNHgY6mI35RCkYDijd92pMcNM7g8pUUJov93UGUnqfyw==",
- "license": "MIT",
- "dependencies": {
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/@supabase/postgrest-js": {
- "version": "2.89.0",
- "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.89.0.tgz",
- "integrity": "sha512-/b0fKrxV9i7RNOEXMno/I1862RsYhuUo+Q6m6z3ar1f4ulTMXnDfv0y4YYxK2POcgrOXQOgKYQx1eArybyNvtg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/@supabase/realtime-js": {
- "version": "2.89.0",
- "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.89.0.tgz",
- "integrity": "sha512-aMOvfDb2a52u6PX6jrrjvACHXGV3zsOlWRzZsTIOAJa0hOVvRp01AwC1+nLTGUzxzezejrYeCX+KnnM1xHdl+w==",
- "license": "MIT",
- "dependencies": {
- "@types/phoenix": "^1.6.6",
- "@types/ws": "^8.18.1",
- "tslib": "2.8.1",
- "ws": "^8.18.2"
- },
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/@supabase/storage-js": {
- "version": "2.89.0",
- "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.89.0.tgz",
- "integrity": "sha512-6zKcXofk/M/4Eato7iqpRh+B+vnxeiTumCIP+Tz26xEqIiywzD9JxHq+udRrDuv6hXE+pmetvJd8n5wcf4MFRQ==",
- "license": "MIT",
- "dependencies": {
- "iceberg-js": "^0.8.1",
- "tslib": "2.8.1"
- },
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/@supabase/supabase-js": {
- "version": "2.89.0",
- "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.89.0.tgz",
- "integrity": "sha512-KlaRwSfFA0fD73PYVMHj5/iXFtQGCcX7PSx0FdQwYEEw9b2wqM7GxadY+5YwcmuEhalmjFB/YvqaoNVF+sWUlg==",
- "license": "MIT",
- "dependencies": {
- "@supabase/auth-js": "2.89.0",
- "@supabase/functions-js": "2.89.0",
- "@supabase/postgrest-js": "2.89.0",
- "@supabase/realtime-js": "2.89.0",
- "@supabase/storage-js": "2.89.0"
- },
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/@swc/core": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.8.tgz",
- "integrity": "sha512-T8keoJjXaSUoVBCIjgL6wAnhADIb09GOELzKg10CjNg+vLX48P93SME6jTfte9MZIm5m+Il57H3rTSk/0kzDUw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/counter": "^0.1.3",
- "@swc/types": "^0.1.25"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/swc"
- },
- "optionalDependencies": {
- "@swc/core-darwin-arm64": "1.15.8",
- "@swc/core-darwin-x64": "1.15.8",
- "@swc/core-linux-arm-gnueabihf": "1.15.8",
- "@swc/core-linux-arm64-gnu": "1.15.8",
- "@swc/core-linux-arm64-musl": "1.15.8",
- "@swc/core-linux-x64-gnu": "1.15.8",
- "@swc/core-linux-x64-musl": "1.15.8",
- "@swc/core-win32-arm64-msvc": "1.15.8",
- "@swc/core-win32-ia32-msvc": "1.15.8",
- "@swc/core-win32-x64-msvc": "1.15.8"
- },
- "peerDependencies": {
- "@swc/helpers": ">=0.5.17"
- },
- "peerDependenciesMeta": {
- "@swc/helpers": {
- "optional": true
- }
- }
- },
- "node_modules/@swc/core-darwin-arm64": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.8.tgz",
- "integrity": "sha512-M9cK5GwyWWRkRGwwCbREuj6r8jKdES/haCZ3Xckgkl8MUQJZA3XB7IXXK1IXRNeLjg6m7cnoMICpXv1v1hlJOg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-darwin-x64": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.8.tgz",
- "integrity": "sha512-j47DasuOvXl80sKJHSi2X25l44CMc3VDhlJwA7oewC1nV1VsSzwX+KOwE5tLnfORvVJJyeiXgJORNYg4jeIjYQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-arm-gnueabihf": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.8.tgz",
- "integrity": "sha512-siAzDENu2rUbwr9+fayWa26r5A9fol1iORG53HWxQL1J8ym4k7xt9eME0dMPXlYZDytK5r9sW8zEA10F2U3Xwg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-arm64-gnu": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.8.tgz",
- "integrity": "sha512-o+1y5u6k2FfPYbTRUPvurwzNt5qd0NTumCTFscCNuBksycloXY16J8L+SMW5QRX59n4Hp9EmFa3vpvNHRVv1+Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-arm64-musl": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.8.tgz",
- "integrity": "sha512-koiCqL09EwOP1S2RShCI7NbsQuG6r2brTqUYE7pV7kZm9O17wZ0LSz22m6gVibpwEnw8jI3IE1yYsQTVpluALw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-x64-gnu": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.8.tgz",
- "integrity": "sha512-4p6lOMU3bC+Vd5ARtKJ/FxpIC5G8v3XLoPEZ5s7mLR8h7411HWC/LmTXDHcrSXRC55zvAVia1eldy6zDLz8iFQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-x64-musl": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.8.tgz",
- "integrity": "sha512-z3XBnbrZAL+6xDGAhJoN4lOueIxC/8rGrJ9tg+fEaeqLEuAtHSW2QHDHxDwkxZMjuF/pZ6MUTjHjbp8wLbuRLA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-win32-arm64-msvc": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.8.tgz",
- "integrity": "sha512-djQPJ9Rh9vP8GTS/Df3hcc6XP6xnG5c8qsngWId/BLA9oX6C7UzCPAn74BG/wGb9a6j4w3RINuoaieJB3t+7iQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-win32-ia32-msvc": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.8.tgz",
- "integrity": "sha512-/wfAgxORg2VBaUoFdytcVBVCgf1isWZIEXB9MZEUty4wwK93M/PxAkjifOho9RN3WrM3inPLabICRCEgdHpKKQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.8.tgz",
- "integrity": "sha512-GpMePrh9Sl4d61o4KAHOOv5is5+zt6BEXCOCgs/H0FLGeii7j9bWDE8ExvKFy2GRRZVNR1ugsnzaGWHKM6kuzA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "Apache-2.0 AND MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/@swc/types": {
- "version": "0.1.25",
- "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz",
- "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/counter": "^0.1.3"
- }
- },
- "node_modules/@tailwindcss/typography": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz",
- "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "6.0.10"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
- }
- },
- "node_modules/@tanstack/query-core": {
- "version": "5.90.16",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.16.tgz",
- "integrity": "sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- }
- },
- "node_modules/@tanstack/react-query": {
- "version": "5.90.16",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.16.tgz",
- "integrity": "sha512-bpMGOmV4OPmif7TNMteU/Ehf/hoC0Kf98PDc0F4BZkFrEapRMEqI/V6YS0lyzwSV6PQpY1y4xxArUIfBW5LVxQ==",
- "license": "MIT",
- "dependencies": {
- "@tanstack/query-core": "5.90.16"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- },
- "peerDependencies": {
- "react": "^18 || ^19"
- }
- },
- "node_modules/@testing-library/dom": {
- "version": "10.4.1",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
- "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^5.0.1",
- "aria-query": "5.3.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.5.0",
- "picocolors": "1.1.1",
- "pretty-format": "^27.0.2"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@testing-library/jest-dom": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
- "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@adobe/css-tools": "^4.4.0",
- "aria-query": "^5.0.0",
- "css.escape": "^1.5.1",
- "dom-accessibility-api": "^0.6.3",
- "picocolors": "^1.1.1",
- "redent": "^3.0.0"
- },
- "engines": {
- "node": ">=14",
- "npm": ">=6",
- "yarn": ">=1"
- }
- },
- "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
- "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@testing-library/react": {
- "version": "16.3.1",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.1.tgz",
- "integrity": "sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.5"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@testing-library/dom": "^10.0.0",
- "@types/react": "^18.0.0 || ^19.0.0",
- "@types/react-dom": "^18.0.0 || ^19.0.0",
- "react": "^18.0.0 || ^19.0.0",
- "react-dom": "^18.0.0 || ^19.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@testing-library/user-event": {
- "version": "14.6.1",
- "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz",
- "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- },
- "peerDependencies": {
- "@testing-library/dom": ">=7.21.4"
- }
- },
- "node_modules/@types/aria-query": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
- "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@types/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/chai": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
- "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/deep-eql": "*",
- "assertion-error": "^2.0.1"
- }
- },
- "node_modules/@types/d3-array": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",
- "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
- "license": "MIT"
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
- "license": "MIT"
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-color": "*"
- }
- },
- "node_modules/@types/d3-path": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
- "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
- "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-time": "*"
- }
- },
- "node_modules/@types/d3-shape": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
- "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-path": "*"
- }
- },
- "node_modules/@types/d3-time": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
- "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
- "license": "MIT"
- },
- "node_modules/@types/deep-eql": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
- "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/dompurify": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz",
- "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==",
- "license": "MIT",
- "dependencies": {
- "@types/trusted-types": "*"
- }
- },
- "node_modules/@types/estree": {
- "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"
- },
- "node_modules/@types/hast": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "22.19.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz",
- "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.21.0"
- }
- },
- "node_modules/@types/phoenix": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.7.tgz",
- "integrity": "sha512-oN9ive//QSBkf19rfDv45M7eZPi0eEXylht2OLEXicu5b4KoQ1OzXIw+xDSGWxSxe1JmepRR/ZH283vsu518/Q==",
- "license": "MIT"
- },
- "node_modules/@types/prismjs": {
- "version": "1.26.5",
- "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
- "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
- "license": "MIT"
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.15",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
- "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
- "license": "MIT"
- },
- "node_modules/@types/qrcode": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.6.tgz",
- "integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/react": {
- "version": "18.3.27",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
- "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
- "license": "MIT",
- "dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.2.2"
- }
- },
- "node_modules/@types/react-dom": {
- "version": "18.3.7",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
- "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
- "devOptional": true,
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "^18.0.0"
- }
- },
- "node_modules/@types/react-syntax-highlighter": {
- "version": "15.5.13",
- "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz",
- "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==",
- "license": "MIT",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@types/trusted-types": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "license": "MIT"
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
- "license": "MIT"
- },
- "node_modules/@types/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
- "license": "MIT"
- },
- "node_modules/@types/ws": {
- "version": "8.18.1",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
- "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz",
- "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.52.0",
- "@typescript-eslint/type-utils": "8.52.0",
- "@typescript-eslint/utils": "8.52.0",
- "@typescript-eslint/visitor-keys": "8.52.0",
- "ignore": "^7.0.5",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^2.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^8.52.0",
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.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.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz",
- "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.52.0",
- "@typescript-eslint/types": "8.52.0",
- "@typescript-eslint/typescript-estree": "8.52.0",
- "@typescript-eslint/visitor-keys": "8.52.0",
- "debug": "^4.4.3"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz",
- "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.52.0",
- "@typescript-eslint/types": "^8.52.0",
- "debug": "^4.4.3"
- },
- "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 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz",
- "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.52.0",
- "@typescript-eslint/visitor-keys": "8.52.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.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz",
- "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==",
- "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 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz",
- "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.52.0",
- "@typescript-eslint/typescript-estree": "8.52.0",
- "@typescript-eslint/utils": "8.52.0",
- "debug": "^4.4.3",
- "ts-api-utils": "^2.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz",
- "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz",
- "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.52.0",
- "@typescript-eslint/tsconfig-utils": "8.52.0",
- "@typescript-eslint/types": "8.52.0",
- "@typescript-eslint/visitor-keys": "8.52.0",
- "debug": "^4.4.3",
- "minimatch": "^9.0.5",
- "semver": "^7.7.3",
- "tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.4.0"
- },
- "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 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz",
- "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.52.0",
- "@typescript-eslint/types": "8.52.0",
- "@typescript-eslint/typescript-estree": "8.52.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz",
- "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.52.0",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@vitejs/plugin-react-swc": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz",
- "integrity": "sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rolldown/pluginutils": "1.0.0-beta.27",
- "@swc/core": "^1.12.11"
- },
- "peerDependencies": {
- "vite": "^4 || ^5 || ^6 || ^7"
- }
- },
- "node_modules/@vitest/expect": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz",
- "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@standard-schema/spec": "^1.0.0",
- "@types/chai": "^5.2.2",
- "@vitest/spy": "4.0.16",
- "@vitest/utils": "4.0.16",
- "chai": "^6.2.1",
- "tinyrainbow": "^3.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/pretty-format": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz",
- "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyrainbow": "^3.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz",
- "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/utils": "4.0.16",
- "pathe": "^2.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz",
- "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "4.0.16",
- "magic-string": "^0.30.21",
- "pathe": "^2.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/spy": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz",
- "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/utils": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz",
- "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "4.0.16",
- "tinyrainbow": "^3.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/acorn": {
- "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": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/aria-hidden": {
- "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"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/aria-query": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
- "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
- "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "is-array-buffer": "^3.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-includes": {
- "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.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "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"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.findlast": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
- "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flat": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
- "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
- "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.tosorted": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
- "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
- "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "is-array-buffer": "^3.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/asn1.js": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
- "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/asn1.js/node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/assert": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
- "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "is-nan": "^1.3.2",
- "object-is": "^1.1.5",
- "object.assign": "^4.1.4",
- "util": "^0.12.5"
- }
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/async-function": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
- "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/autoprefixer": {
- "version": "10.4.23",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
- "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.1",
- "caniuse-lite": "^1.0.30001760",
- "fraction.js": "^5.3.4",
- "picocolors": "^1.1.1",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/baseline-browser-mapping": {
- "version": "2.9.11",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
- "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "baseline-browser-mapping": "dist/cli.js"
- }
- },
- "node_modules/bidi-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
- "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "require-from-string": "^2.0.2"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bn.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz",
- "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==",
- "license": "MIT"
- },
- "node_modules/brace-expansion": {
- "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": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/browser-resolve": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
- "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "resolve": "^1.17.0"
- }
- },
- "node_modules/browser-resolve/node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "node_modules/browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/browserify-rsa": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz",
- "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^5.2.1",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/browserify-sign": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz",
- "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "bn.js": "^5.2.2",
- "browserify-rsa": "^4.1.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.6.1",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.9",
- "readable-stream": "^2.3.8",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/browserify-sign/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/browserify-sign/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/browserify-sign/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pako": "~1.0.5"
- }
- },
- "node_modules/browserslist": {
- "version": "4.28.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
- "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "baseline-browser-mapping": "^2.9.0",
- "caniuse-lite": "^1.0.30001759",
- "electron-to-chromium": "^1.5.263",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.2.0"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001762",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz",
- "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chai": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
- "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/character-entities": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
- "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-reference-invalid": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
- "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/cipher-base": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz",
- "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "safe-buffer": "^5.2.1",
- "to-buffer": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/class-variance-authority": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
- "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
- "license": "Apache-2.0",
- "dependencies": {
- "clsx": "^2.1.1"
- },
- "funding": {
- "url": "https://polar.sh/cva"
- }
- },
- "node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cmdk": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz",
- "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-compose-refs": "^1.1.1",
- "@radix-ui/react-dialog": "^1.1.6",
- "@radix-ui/react-id": "^1.1.0",
- "@radix-ui/react-primitive": "^2.0.2"
- },
- "peerDependencies": {
- "react": "^18 || ^19 || ^19.0.0-rc",
- "react-dom": "^18 || ^19 || ^19.0.0-rc"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
- "dev": true
- },
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/create-ecdh": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
- "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- }
- },
- "node_modules/create-ecdh/node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/crypto-browserify": {
- "version": "3.12.1",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
- "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "browserify-cipher": "^1.0.1",
- "browserify-sign": "^4.2.3",
- "create-ecdh": "^4.0.4",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "diffie-hellman": "^5.0.3",
- "hash-base": "~3.0.4",
- "inherits": "^2.0.4",
- "pbkdf2": "^3.1.2",
- "public-encrypt": "^4.0.3",
- "randombytes": "^2.1.0",
- "randomfill": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/css-tree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.12.2",
- "source-map-js": "^1.0.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
- "node_modules/css.escape": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
- "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cssstyle": {
- "version": "5.3.7",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz",
- "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@asamuzakjp/css-color": "^4.1.1",
- "@csstools/css-syntax-patches-for-csstree": "^1.0.21",
- "css-tree": "^3.1.0",
- "lru-cache": "^11.2.4"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/csstype": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
- "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "license": "MIT"
- },
- "node_modules/d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "license": "ISC",
- "dependencies": {
- "internmap": "1 - 2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "license": "ISC",
- "dependencies": {
- "d3-path": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "license": "ISC",
- "dependencies": {
- "d3-time": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/data-uri-to-buffer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
- "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/data-urls": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz",
- "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^15.0.0"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/data-view-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
- "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
- "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/inspect-js"
- }
- },
- "node_modules/data-view-byte-offset": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
- "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decimal.js": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
- "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/decimal.js-light": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
- "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
- "license": "MIT"
- },
- "node_modules/decode-named-character-reference": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
- "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
- "license": "MIT",
- "dependencies": {
- "character-entities": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/des.js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
- "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/detect-node-es": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
- "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
- "license": "MIT"
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "license": "Apache-2.0"
- },
- "node_modules/diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "node_modules/diffie-hellman/node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/dijkstrajs": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
- "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==",
- "license": "MIT"
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "license": "MIT"
- },
- "node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/dom-accessibility-api": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
- "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/dom-helpers": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
- "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.8.7",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/domain-browser": {
- "version": "4.22.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz",
- "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://bevry.me/fund"
- }
- },
- "node_modules/dompurify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz",
- "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==",
- "license": "(MPL-2.0 OR Apache-2.0)",
- "optionalDependencies": {
- "@types/trusted-types": "^2.0.7"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.267",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
- "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/elliptic": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
- "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/embla-carousel": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz",
- "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==",
- "license": "MIT"
- },
- "node_modules/embla-carousel-react": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz",
- "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==",
- "license": "MIT",
- "dependencies": {
- "embla-carousel": "8.6.0",
- "embla-carousel-reactive-utils": "8.6.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- }
- },
- "node_modules/embla-carousel-reactive-utils": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz",
- "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==",
- "license": "MIT",
- "peerDependencies": {
- "embla-carousel": "8.6.0"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.24.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
- "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.2",
- "arraybuffer.prototype.slice": "^1.0.4",
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "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.1.1",
- "es-set-tostringtag": "^2.1.0",
- "es-to-primitive": "^1.3.0",
- "function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.3.0",
- "get-proto": "^1.0.1",
- "get-symbol-description": "^1.1.0",
- "globalthis": "^1.0.4",
- "gopd": "^1.2.0",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "internal-slot": "^1.1.0",
- "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.1",
- "math-intrinsics": "^1.1.0",
- "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.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",
- "typed-array-buffer": "^1.0.3",
- "typed-array-byte-length": "^1.0.3",
- "typed-array-byte-offset": "^1.0.4",
- "typed-array-length": "^1.0.7",
- "unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.19"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-iterator-helpers": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz",
- "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.24.1",
- "es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.1.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.3.0",
- "globalthis": "^1.0.4",
- "gopd": "^1.2.0",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.2.0",
- "has-symbols": "^1.1.0",
- "internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.5",
- "safe-array-concat": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
- "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-shim-unscopables": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
- "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
- "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.2.7",
- "is-date-object": "^1.0.5",
- "is-symbol": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint": {
- "version": "9.39.2",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz",
- "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.8.0",
- "@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.21.1",
- "@eslint/config-helpers": "^0.4.2",
- "@eslint/core": "^0.17.0",
- "@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.39.2",
- "@eslint/plugin-kit": "^0.4.1",
- "@humanfs/node": "^0.16.6",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.4.2",
- "@types/estree": "^1.0.6",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.6",
- "debug": "^4.3.2",
- "escape-string-regexp": "^4.0.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",
- "file-entry-cache": "^8.0.0",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://eslint.org/donate"
- },
- "peerDependencies": {
- "jiti": "*"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.37.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
- "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.8",
- "array.prototype.findlast": "^1.2.5",
- "array.prototype.flatmap": "^1.3.3",
- "array.prototype.tosorted": "^1.1.4",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.2.1",
- "estraverse": "^5.3.0",
- "hasown": "^2.0.2",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.9",
- "object.fromentries": "^2.0.8",
- "object.values": "^1.2.1",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.5",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.12",
- "string.prototype.repeat": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
- }
- },
- "node_modules/eslint-plugin-react-hooks": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
- "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
- }
- },
- "node_modules/eslint-plugin-react-refresh": {
- "version": "0.4.26",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz",
- "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "eslint": ">=8.40"
- }
- },
- "node_modules/eslint-scope": {
- "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": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "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": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree": {
- "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.15.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esquery": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
- "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eventemitter3": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
- "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
- "license": "MIT"
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/expect-type": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz",
- "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-equals": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz",
- "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fastq": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
- "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fault": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz",
- "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==",
- "license": "MIT",
- "dependencies": {
- "format": "^0.2.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/fetch-blob": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
- "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "node-domexception": "^1.0.0",
- "web-streams-polyfill": "^3.0.3"
- },
- "engines": {
- "node": "^12.20 || >= 14.13"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
- "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/for-each": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
- "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.2.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
- "engines": {
- "node": ">=0.4.x"
- }
- },
- "node_modules/formdata-polyfill": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
- "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
- "license": "MIT",
- "dependencies": {
- "fetch-blob": "^3.1.2"
- },
- "engines": {
- "node": ">=12.20.0"
- }
- },
- "node_modules/fraction.js": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
- "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
- "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "functions-have-names": "^1.2.3",
- "hasown": "^2.0.2",
- "is-callable": "^1.2.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/generator-function": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
- "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "license": "ISC",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-nonce": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
- "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
- "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/globals": {
- "version": "15.15.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
- "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
- "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
- "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hash-base": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz",
- "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hast-util-parse-selector": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
- "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hastscript": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
- "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-parse-selector": "^4.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/highlight.js": {
- "version": "11.11.1",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz",
- "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/highlightjs-vue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz",
- "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==",
- "license": "CC0-1.0"
- },
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "react-is": "^16.7.0"
- }
- },
- "node_modules/html-encoding-sniffer": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz",
- "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@exodus/bytes": "^1.6.0"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- }
- },
- "node_modules/html-parse-stringify": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
- "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
- "license": "MIT",
- "dependencies": {
- "void-elements": "3.1.0"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/husky": {
- "version": "9.1.7",
- "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
- "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "husky": "bin.js"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/typicode"
- }
- },
- "node_modules/i18next": {
- "version": "23.16.8",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.8.tgz",
- "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==",
- "funding": [
- {
- "type": "individual",
- "url": "https://locize.com"
- },
- {
- "type": "individual",
- "url": "https://locize.com/i18next.html"
- },
- {
- "type": "individual",
- "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.23.2"
- }
- },
- "node_modules/i18next-browser-languagedetector": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.2.tgz",
- "integrity": "sha512-6b7r75uIJDWCcCflmbof+sJ94k9UQO4X0YR62oUfqGI/GjCLVzlCwu8TFdRZIqVLzWbzNcmkmhfqKEr4TLz4HQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.23.2"
- }
- },
- "node_modules/iceberg-js": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/iceberg-js/-/iceberg-js-0.8.1.tgz",
- "integrity": "sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==",
- "license": "MIT",
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
- "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/input-otp": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz",
- "integrity": "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc"
- }
- },
- "node_modules/internal-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
- "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "hasown": "^2.0.2",
- "side-channel": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/is-alphabetical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
- "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-alphanumerical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
- "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
- "license": "MIT",
- "dependencies": {
- "is-alphabetical": "^2.0.0",
- "is-decimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-arguments": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
- "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
- "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-async-function": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
- "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "async-function": "^1.0.0",
- "call-bound": "^1.0.3",
- "get-proto": "^1.0.1",
- "has-tostringtag": "^1.0.2",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
- "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-bigints": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
- "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-data-view": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
- "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
- "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-decimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
- "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
- "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
- "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.4",
- "generator-function": "^2.0.0",
- "get-proto": "^1.0.1",
- "has-tostringtag": "^1.0.2",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-hexadecimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
- "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
- "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-nan": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
- "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "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",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
- "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-regex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
- "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
- "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
- "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-string": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
- "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
- "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-symbols": "^1.1.0",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
- "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "which-typed-array": "^1.1.16"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
- "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
- "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
- "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/isomorphic-timers-promises": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz",
- "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/iterator.prototype": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
- "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.6",
- "get-proto": "^1.0.0",
- "has-symbols": "^1.1.0",
- "set-function-name": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.7",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
- "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
- "license": "MIT",
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsdom": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz",
- "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@acemir/cssom": "^0.9.28",
- "@asamuzakjp/dom-selector": "^6.7.6",
- "@exodus/bytes": "^1.6.0",
- "cssstyle": "^5.3.4",
- "data-urls": "^6.0.0",
- "decimal.js": "^10.6.0",
- "html-encoding-sniffer": "^6.0.0",
- "http-proxy-agent": "^7.0.2",
- "https-proxy-agent": "^7.0.6",
- "is-potential-custom-element-name": "^1.0.1",
- "parse5": "^8.0.0",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^6.0.0",
- "w3c-xmlserializer": "^5.0.0",
- "webidl-conversions": "^8.0.0",
- "whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^15.1.0",
- "ws": "^8.18.3",
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- },
- "peerDependencies": {
- "canvas": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "license": "ISC"
- },
- "node_modules/jsx-ast-utils": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
- "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "license": "MIT"
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "license": "MIT"
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lowlight": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz",
- "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==",
- "license": "MIT",
- "dependencies": {
- "fault": "^1.0.0",
- "highlight.js": "~10.7.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/lowlight/node_modules/highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/lru-cache": {
- "version": "11.2.4",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz",
- "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/lucide-react": {
- "version": "0.462.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.462.0.tgz",
- "integrity": "sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==",
- "license": "ISC",
- "peerDependencies": {
- "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc"
- }
- },
- "node_modules/lz-string": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
- "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "bin": {
- "lz-string": "bin/bin.js"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
- "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/marked": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz",
- "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
- "license": "MIT",
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/mdn-data": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
- "dev": true,
- "license": "CC0-1.0"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
- "bin": {
- "miller-rabin": "bin/miller-rabin"
- }
- },
- "node_modules/miller-rabin/node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mock-socket": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz",
- "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/next-themes": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.3.0.tgz",
- "integrity": "sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8 || ^17 || ^18",
- "react-dom": "^16.8 || ^17 || ^18"
- }
- },
- "node_modules/nock": {
- "version": "13.5.6",
- "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz",
- "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "json-stringify-safe": "^5.0.1",
- "propagate": "^2.0.0"
- },
- "engines": {
- "node": ">= 10.13"
- }
- },
- "node_modules/node-domexception": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
- "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
- "deprecated": "Use your platform's native DOMException instead",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "github",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=10.5.0"
- }
- },
- "node_modules/node-fetch": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
- "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
- "license": "MIT",
- "dependencies": {
- "data-uri-to-buffer": "^4.0.0",
- "fetch-blob": "^3.1.4",
- "formdata-polyfill": "^4.0.10"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/node-fetch"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/node-stdlib-browser": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.3.1.tgz",
- "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "assert": "^2.0.0",
- "browser-resolve": "^2.0.0",
- "browserify-zlib": "^0.2.0",
- "buffer": "^5.7.1",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "create-require": "^1.1.1",
- "crypto-browserify": "^3.12.1",
- "domain-browser": "4.22.0",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "isomorphic-timers-promises": "^1.0.1",
- "os-browserify": "^0.3.0",
- "path-browserify": "^1.0.1",
- "pkg-dir": "^5.0.0",
- "process": "^0.11.10",
- "punycode": "^1.4.1",
- "querystring-es3": "^0.2.1",
- "readable-stream": "^3.6.0",
- "stream-browserify": "^3.0.0",
- "stream-http": "^3.2.0",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.1",
- "url": "^0.11.4",
- "util": "^0.12.4",
- "vm-browserify": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-stdlib-browser/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/node-stdlib-browser/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-is": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
- "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
- "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0",
- "has-symbols": "^1.1.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.entries": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
- "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.fromentries": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
- "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.values": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
- "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/obug": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz",
- "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/sxzz",
- "https://opencollective.com/debug"
- ],
- "license": "MIT"
- },
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/own-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
- "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.6",
- "object-keys": "^1.1.1",
- "safe-push-apply": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true,
- "license": "(MIT AND Zlib)"
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-asn1": {
- "version": "5.1.9",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz",
- "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "asn1.js": "^4.10.1",
- "browserify-aes": "^1.2.0",
- "evp_bytestokey": "^1.0.3",
- "pbkdf2": "^3.1.5",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/parse-entities": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
- "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "character-entities-legacy": "^3.0.0",
- "character-reference-invalid": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "is-alphanumerical": "^2.0.0",
- "is-decimal": "^2.0.0",
- "is-hexadecimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/parse-entities/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
- "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^6.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/path-browserify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "license": "MIT"
- },
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/pbkdf2": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz",
- "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "ripemd160": "^2.0.3",
- "safe-buffer": "^5.2.1",
- "sha.js": "^2.4.12",
- "to-buffer": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
- "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/pngjs": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
- "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
- "license": "MIT",
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/possible-typed-array-names": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
- "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-import/node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
- "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
- "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.1.1"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
- "engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-nested/node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "license": "MIT"
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/pretty-format": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/prismjs": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
- "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/propagate": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
- "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/property-information": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
- "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/public-encrypt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
- "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/public-encrypt/node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qrcode": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz",
- "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
- "license": "MIT",
- "dependencies": {
- "dijkstrajs": "^1.0.1",
- "pngjs": "^5.0.0",
- "yargs": "^15.3.1"
- },
- "bin": {
- "qrcode": "bin/qrcode"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/qs": {
- "version": "6.14.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
- "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "side-channel": "^1.1.0"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.x"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/randomfill": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
- "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-day-picker": {
- "version": "8.10.1",
- "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz",
- "integrity": "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==",
- "license": "MIT",
- "funding": {
- "type": "individual",
- "url": "https://github.com/sponsors/gpbl"
- },
- "peerDependencies": {
- "date-fns": "^2.28.0 || ^3.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-hook-form": {
- "version": "7.70.0",
- "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.70.0.tgz",
- "integrity": "sha512-COOMajS4FI3Wuwrs3GPpi/Jeef/5W1DRR84Yl5/ShlT3dKVFUfoGiEZ/QE6Uw8P4T2/CLJdcTVYKvWBMQTEpvw==",
- "license": "MIT",
- "engines": {
- "node": ">=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/react-hook-form"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17 || ^18 || ^19"
- }
- },
- "node_modules/react-i18next": {
- "version": "14.1.3",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.3.tgz",
- "integrity": "sha512-wZnpfunU6UIAiJ+bxwOiTmBOAaB14ha97MjOEnLGac2RJ+h/maIYXZuTHlmyqQVX1UVHmU1YDTQ5vxLmwfXTjw==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.23.9",
- "html-parse-stringify": "^3.0.1"
- },
- "peerDependencies": {
- "i18next": ">= 23.2.3",
- "react": ">= 16.8.0"
- },
- "peerDependenciesMeta": {
- "react-dom": {
- "optional": true
- },
- "react-native": {
- "optional": true
- }
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "license": "MIT"
- },
- "node_modules/react-remove-scroll": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz",
- "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==",
- "license": "MIT",
- "dependencies": {
- "react-remove-scroll-bar": "^2.3.7",
- "react-style-singleton": "^2.2.3",
- "tslib": "^2.1.0",
- "use-callback-ref": "^1.3.3",
- "use-sidecar": "^1.1.3"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-remove-scroll-bar": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
- "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
- "license": "MIT",
- "dependencies": {
- "react-style-singleton": "^2.2.2",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-resizable-panels": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.9.tgz",
- "integrity": "sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
- "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- }
- },
- "node_modules/react-router": {
- "version": "6.30.2",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.2.tgz",
- "integrity": "sha512-H2Bm38Zu1bm8KUE5NVWRMzuIyAV8p/JrOaBJAwVmp37AXG72+CZJlEBw6pdn9i5TBgLMhNDgijS4ZlblpHyWTA==",
- "license": "MIT",
- "dependencies": {
- "@remix-run/router": "1.23.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8"
- }
- },
- "node_modules/react-router-dom": {
- "version": "6.30.2",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.2.tgz",
- "integrity": "sha512-l2OwHn3UUnEVUqc6/1VMmR1cvZryZ3j3NzapC2eUXO1dB0sYp5mvwdjiXhpUbRb21eFow3qSxpP8Yv6oAU824Q==",
- "license": "MIT",
- "dependencies": {
- "@remix-run/router": "1.23.1",
- "react-router": "6.30.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8",
- "react-dom": ">=16.8"
- }
- },
- "node_modules/react-smooth": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz",
- "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
- "license": "MIT",
- "dependencies": {
- "fast-equals": "^5.0.1",
- "prop-types": "^15.8.1",
- "react-transition-group": "^4.4.5"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/react-style-singleton": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
- "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
- "license": "MIT",
- "dependencies": {
- "get-nonce": "^1.0.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-syntax-highlighter": {
- "version": "16.1.0",
- "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-16.1.0.tgz",
- "integrity": "sha512-E40/hBiP5rCNwkeBN1vRP+xow1X0pndinO+z3h7HLsHyjztbyjfzNWNKuAsJj+7DLam9iT4AaaOZnueCU+Nplg==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.28.4",
- "highlight.js": "^10.4.1",
- "highlightjs-vue": "^1.0.0",
- "lowlight": "^1.17.0",
- "prismjs": "^1.30.0",
- "refractor": "^5.0.0"
- },
- "engines": {
- "node": ">= 16.20.2"
- },
- "peerDependencies": {
- "react": ">= 0.14.0"
- }
- },
- "node_modules/react-syntax-highlighter/node_modules/highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/react-transition-group": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
- "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/runtime": "^7.5.5",
- "dom-helpers": "^5.0.1",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2"
- },
- "peerDependencies": {
- "react": ">=16.6.0",
- "react-dom": ">=16.6.0"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "license": "MIT",
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/recharts": {
- "version": "2.15.4",
- "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz",
- "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==",
- "license": "MIT",
- "dependencies": {
- "clsx": "^2.0.0",
- "eventemitter3": "^4.0.1",
- "lodash": "^4.17.21",
- "react-is": "^18.3.1",
- "react-smooth": "^4.0.4",
- "recharts-scale": "^0.4.4",
- "tiny-invariant": "^1.3.1",
- "victory-vendor": "^36.6.8"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/recharts-scale": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz",
- "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==",
- "license": "MIT",
- "dependencies": {
- "decimal.js-light": "^2.4.1"
- }
- },
- "node_modules/recharts/node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "license": "MIT"
- },
- "node_modules/recharts/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "license": "MIT"
- },
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
- "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.9",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.1",
- "which-builtin-type": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/refractor": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/refractor/-/refractor-5.0.0.tgz",
- "integrity": "sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/prismjs": "^1.0.0",
- "hastscript": "^9.0.0",
- "parse-entities": "^4.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
- "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "set-function-name": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "license": "ISC"
- },
- "node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/ripemd160": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz",
- "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hash-base": "^3.1.2",
- "inherits": "^2.0.4"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ripemd160/node_modules/hash-base": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz",
- "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^2.3.8",
- "safe-buffer": "^5.2.1",
- "to-buffer": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ripemd160/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ripemd160/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ripemd160/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/rollup": {
- "version": "4.55.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz",
- "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.8"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.55.1",
- "@rollup/rollup-android-arm64": "4.55.1",
- "@rollup/rollup-darwin-arm64": "4.55.1",
- "@rollup/rollup-darwin-x64": "4.55.1",
- "@rollup/rollup-freebsd-arm64": "4.55.1",
- "@rollup/rollup-freebsd-x64": "4.55.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.55.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.55.1",
- "@rollup/rollup-linux-arm64-gnu": "4.55.1",
- "@rollup/rollup-linux-arm64-musl": "4.55.1",
- "@rollup/rollup-linux-loong64-gnu": "4.55.1",
- "@rollup/rollup-linux-loong64-musl": "4.55.1",
- "@rollup/rollup-linux-ppc64-gnu": "4.55.1",
- "@rollup/rollup-linux-ppc64-musl": "4.55.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.55.1",
- "@rollup/rollup-linux-riscv64-musl": "4.55.1",
- "@rollup/rollup-linux-s390x-gnu": "4.55.1",
- "@rollup/rollup-linux-x64-gnu": "4.55.1",
- "@rollup/rollup-linux-x64-musl": "4.55.1",
- "@rollup/rollup-openbsd-x64": "4.55.1",
- "@rollup/rollup-openharmony-arm64": "4.55.1",
- "@rollup/rollup-win32-arm64-msvc": "4.55.1",
- "@rollup/rollup-win32-ia32-msvc": "4.55.1",
- "@rollup/rollup-win32-x64-gnu": "4.55.1",
- "@rollup/rollup-win32-x64-msvc": "4.55.1",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
- "has-symbols": "^1.1.0",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safe-push-apply": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
- "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-regex-test": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
- "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-regex": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "license": "ISC"
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-proto": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
- "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/sha.js": {
- "version": "2.4.12",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz",
- "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==",
- "dev": true,
- "license": "(MIT AND BSD-3-Clause)",
- "dependencies": {
- "inherits": "^2.0.4",
- "safe-buffer": "^5.2.1",
- "to-buffer": "^1.2.0"
- },
- "bin": {
- "sha.js": "bin.js"
- },
- "engines": {
- "node": ">= 0.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/smoldot": {
- "version": "2.0.40",
- "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.40.tgz",
- "integrity": "sha512-h6XC/kKDLdZBBTI0X8y4ZxmaZ2KYVVB0+5isCQm6j26ljeNjHZUDOV+hf8VyoE23+jg00wrxNJ2IVcIAURxwtg==",
- "license": "GPL-3.0-or-later WITH Classpath-exception-2.0",
- "optional": true,
- "dependencies": {
- "ws": "^8.8.1"
- }
- },
- "node_modules/sonner": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.4.tgz",
- "integrity": "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc",
- "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/stackback": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/std-env": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
- "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
- "dev": true,
- "license": "MIT"
- },
- "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",
- "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "~2.0.4",
- "readable-stream": "^3.5.0"
- }
- },
- "node_modules/stream-http": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
- "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "xtend": "^4.0.2"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string.prototype.matchall": {
- "version": "4.0.12",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
- "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.6",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "internal-slot": "^1.1.0",
- "regexp.prototype.flags": "^1.5.3",
- "set-function-name": "^2.0.2",
- "side-channel": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.repeat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
- "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
- }
- },
- "node_modules/string.prototype.trim": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
- "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-data-property": "^1.1.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-object-atoms": "^1.0.0",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimend": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
- "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "min-indent": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.1",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
- "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "tinyglobby": "^0.2.11",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tailwind-merge": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz",
- "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/dcastil"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.4.19",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz",
- "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==",
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.7",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "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==",
- "license": "MIT",
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || insiders"
- }
- },
- "node_modules/tailwindcss/node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tailwindcss/node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "setimmediate": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/tiny-invariant": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
- "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
- "license": "MIT"
- },
- "node_modules/tinybench": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
- "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyexec": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz",
- "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/tinyrainbow": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz",
- "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tldts": {
- "version": "7.0.19",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz",
- "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tldts-core": "^7.0.19"
- },
- "bin": {
- "tldts": "bin/cli.js"
- }
- },
- "node_modules/tldts-core": {
- "version": "7.0.19",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz",
- "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/to-buffer": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
- "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "isarray": "^2.0.5",
- "safe-buffer": "^5.2.1",
- "typed-array-buffer": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/tough-cookie": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
- "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "tldts": "^7.0.5"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/tr46": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
- "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
- "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.12"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "license": "Apache-2.0"
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/tty-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
- "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/typed-array-buffer": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/typed-array-byte-length": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
- "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "for-each": "^0.3.3",
- "gopd": "^1.2.0",
- "has-proto": "^1.2.0",
- "is-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
- "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "for-each": "^0.3.3",
- "gopd": "^1.2.0",
- "has-proto": "^1.2.0",
- "is-typed-array": "^1.1.15",
- "reflect.getprototypeof": "^1.0.9"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-length": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
- "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0",
- "reflect.getprototypeof": "^1.0.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typescript": {
- "version": "5.9.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/typescript-eslint": {
- "version": "8.52.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.52.0.tgz",
- "integrity": "sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.52.0",
- "@typescript-eslint/parser": "8.52.0",
- "@typescript-eslint/typescript-estree": "8.52.0",
- "@typescript-eslint/utils": "8.52.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/unbox-primitive": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
- "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.1.0",
- "which-boxed-primitive": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/undici-types": {
- "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/update-browserslist-db": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
- "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
- "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^1.4.1",
- "qs": "^6.12.3"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/url/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/use-callback-ref": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
- "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/use-sidecar": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
- "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
- "license": "MIT",
- "dependencies": {
- "detect-node-es": "^1.1.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
- "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "license": "MIT"
- },
- "node_modules/uuid": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
- "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/esm/bin/uuid"
- }
- },
- "node_modules/vaul": {
- "version": "0.9.9",
- "resolved": "https://registry.npmjs.org/vaul/-/vaul-0.9.9.tgz",
- "integrity": "sha512-7afKg48srluhZwIkaU+lgGtFCUsYBSGOl8vcc8N/M3YQlZFlynHD15AE+pwrYdc826o7nrIND4lL9Y6b9WWZZQ==",
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-dialog": "^1.1.1"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/victory-vendor": {
- "version": "36.9.2",
- "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz",
- "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
- "license": "MIT AND ISC",
- "dependencies": {
- "@types/d3-array": "^3.0.3",
- "@types/d3-ease": "^3.0.0",
- "@types/d3-interpolate": "^3.0.1",
- "@types/d3-scale": "^4.0.2",
- "@types/d3-shape": "^3.1.0",
- "@types/d3-time": "^3.0.0",
- "@types/d3-timer": "^3.0.0",
- "d3-array": "^3.1.6",
- "d3-ease": "^3.0.1",
- "d3-interpolate": "^3.0.1",
- "d3-scale": "^4.0.2",
- "d3-shape": "^3.1.0",
- "d3-time": "^3.0.0",
- "d3-timer": "^3.0.1"
- }
- },
- "node_modules/vite": {
- "version": "5.4.21",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
- "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-node-polyfills": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.24.0.tgz",
- "integrity": "sha512-GA9QKLH+vIM8NPaGA+o2t8PDfFUl32J8rUp1zQfMKVJQiNkOX4unE51tR6ppl6iKw5yOrDAdSH7r/UIFLCVhLw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/plugin-inject": "^5.0.5",
- "node-stdlib-browser": "^1.2.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/davidmyersdev"
- },
- "peerDependencies": {
- "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
- }
- },
- "node_modules/vitest": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz",
- "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/expect": "4.0.16",
- "@vitest/mocker": "4.0.16",
- "@vitest/pretty-format": "4.0.16",
- "@vitest/runner": "4.0.16",
- "@vitest/snapshot": "4.0.16",
- "@vitest/spy": "4.0.16",
- "@vitest/utils": "4.0.16",
- "es-module-lexer": "^1.7.0",
- "expect-type": "^1.2.2",
- "magic-string": "^0.30.21",
- "obug": "^2.1.1",
- "pathe": "^2.0.3",
- "picomatch": "^4.0.3",
- "std-env": "^3.10.0",
- "tinybench": "^2.9.0",
- "tinyexec": "^1.0.2",
- "tinyglobby": "^0.2.15",
- "tinyrainbow": "^3.0.3",
- "vite": "^6.0.0 || ^7.0.0",
- "why-is-node-running": "^2.3.0"
- },
- "bin": {
- "vitest": "vitest.mjs"
- },
- "engines": {
- "node": "^20.0.0 || ^22.0.0 || >=24.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@edge-runtime/vm": "*",
- "@opentelemetry/api": "^1.9.0",
- "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
- "@vitest/browser-playwright": "4.0.16",
- "@vitest/browser-preview": "4.0.16",
- "@vitest/browser-webdriverio": "4.0.16",
- "@vitest/ui": "4.0.16",
- "happy-dom": "*",
- "jsdom": "*"
- },
- "peerDependenciesMeta": {
- "@edge-runtime/vm": {
- "optional": true
- },
- "@opentelemetry/api": {
- "optional": true
- },
- "@types/node": {
- "optional": true
- },
- "@vitest/browser-playwright": {
- "optional": true
- },
- "@vitest/browser-preview": {
- "optional": true
- },
- "@vitest/browser-webdriverio": {
- "optional": true
- },
- "@vitest/ui": {
- "optional": true
- },
- "happy-dom": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- }
- }
- },
- "node_modules/vitest/node_modules/@esbuild/aix-ppc64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz",
- "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/android-arm": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz",
- "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/android-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz",
- "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/android-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz",
- "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/darwin-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz",
- "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/darwin-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz",
- "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz",
- "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/freebsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz",
- "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-arm": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz",
- "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz",
- "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-ia32": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz",
- "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-loong64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz",
- "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-mips64el": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz",
- "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-ppc64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz",
- "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-riscv64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz",
- "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-s390x": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz",
- "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/linux-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz",
- "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/netbsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz",
- "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/openbsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz",
- "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/sunos-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz",
- "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/win32-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz",
- "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/win32-ia32": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz",
- "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@esbuild/win32-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz",
- "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/vitest/node_modules/@vitest/mocker": {
- "version": "4.0.16",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz",
- "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "4.0.16",
- "estree-walker": "^3.0.3",
- "magic-string": "^0.30.21"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "msw": "^2.4.9",
- "vite": "^6.0.0 || ^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/vitest/node_modules/esbuild": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz",
- "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.27.2",
- "@esbuild/android-arm": "0.27.2",
- "@esbuild/android-arm64": "0.27.2",
- "@esbuild/android-x64": "0.27.2",
- "@esbuild/darwin-arm64": "0.27.2",
- "@esbuild/darwin-x64": "0.27.2",
- "@esbuild/freebsd-arm64": "0.27.2",
- "@esbuild/freebsd-x64": "0.27.2",
- "@esbuild/linux-arm": "0.27.2",
- "@esbuild/linux-arm64": "0.27.2",
- "@esbuild/linux-ia32": "0.27.2",
- "@esbuild/linux-loong64": "0.27.2",
- "@esbuild/linux-mips64el": "0.27.2",
- "@esbuild/linux-ppc64": "0.27.2",
- "@esbuild/linux-riscv64": "0.27.2",
- "@esbuild/linux-s390x": "0.27.2",
- "@esbuild/linux-x64": "0.27.2",
- "@esbuild/netbsd-arm64": "0.27.2",
- "@esbuild/netbsd-x64": "0.27.2",
- "@esbuild/openbsd-arm64": "0.27.2",
- "@esbuild/openbsd-x64": "0.27.2",
- "@esbuild/openharmony-arm64": "0.27.2",
- "@esbuild/sunos-x64": "0.27.2",
- "@esbuild/win32-arm64": "0.27.2",
- "@esbuild/win32-ia32": "0.27.2",
- "@esbuild/win32-x64": "0.27.2"
- }
- },
- "node_modules/vitest/node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/vitest/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/vitest/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/vitest/node_modules/vite": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz",
- "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.27.0",
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3",
- "postcss": "^8.5.6",
- "rollup": "^4.43.0",
- "tinyglobby": "^0.2.15"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "lightningcss": "^1.21.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/void-elements": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
- "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/w3c-xmlserializer": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
- "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/web-streams-polyfill": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
- "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz",
- "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/whatwg-mimetype": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
- "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/whatwg-url": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz",
- "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tr46": "^6.0.0",
- "webidl-conversions": "^8.0.0"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
- "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-bigint": "^1.1.0",
- "is-boolean-object": "^1.2.1",
- "is-number-object": "^1.1.1",
- "is-string": "^1.1.1",
- "is-symbol": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-builtin-type": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
- "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "function.prototype.name": "^1.1.6",
- "has-tostringtag": "^1.0.2",
- "is-async-function": "^2.0.0",
- "is-date-object": "^1.1.0",
- "is-finalizationregistry": "^1.1.0",
- "is-generator-function": "^1.0.10",
- "is-regex": "^1.2.1",
- "is-weakref": "^1.0.2",
- "isarray": "^2.0.5",
- "which-boxed-primitive": "^1.1.0",
- "which-collection": "^1.0.2",
- "which-typed-array": "^1.1.16"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-collection": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
- "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-map": "^2.0.3",
- "is-set": "^2.0.3",
- "is-weakmap": "^2.0.2",
- "is-weakset": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-module": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
- "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
- "license": "ISC"
- },
- "node_modules/which-typed-array": {
- "version": "1.1.19",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
- "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "for-each": "^0.3.5",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/why-is-node-running": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "siginfo": "^2.0.0",
- "stackback": "0.0.2"
- },
- "bin": {
- "why-is-node-running": "cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ws": {
- "version": "8.19.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
- "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xml-name-validator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "license": "ISC"
- },
- "node_modules/yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "license": "MIT",
- "dependencies": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "license": "ISC",
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yargs/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zod": {
- "version": "3.25.76",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
- "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- }
- }
-}
diff --git a/web/package.json b/web/package.json
index 185a0abc..ab0ce0c1 100644
--- a/web/package.json
+++ b/web/package.json
@@ -16,7 +16,7 @@
},
"dependencies": {
"@hookform/resolvers": "^3.9.0",
- "@pezkuwi/api": "^16.5.6",
+ "@pezkuwi/api": "^16.5.9",
"@pezkuwi/extension-dapp": "^0.62.14",
"@pezkuwi/keyring": "^14.0.7",
"@pezkuwi/util": "^14.0.7",
diff --git a/web/public/docs/sdk/src/guides/enable_pov_reclaim.rs b/web/public/docs/sdk/src/guides/enable_pov_reclaim.rs
index 6469b368..75030ac8 100644
--- a/web/public/docs/sdk/src/guides/enable_pov_reclaim.rs
+++ b/web/public/docs/sdk/src/guides/enable_pov_reclaim.rs
@@ -6,7 +6,7 @@
//! technical details are available in the original [pull request](https://github.com/pezkuwichain/pezkuwi-sdk/issues/257).
//!
//! # What is PoV reclaim?
-//! When a teyrchain submits a block to a relay chain like Pezkuwi or Kusama, it sends the block
+//! When a teyrchain submits a block to a relay chain like Pezkuwi or Dicle, it sends the block
//! itself and a storage proof. Together they form the Proof-of-Validity (PoV). The PoV allows the
//! relay chain to validate the teyrchain block by re-executing it. Relay chain
//! validators distribute this PoV among themselves over the network. This distribution is costly
diff --git a/web/public/docs/sdk/src/pezkuwi_sdk/templates.rs b/web/public/docs/sdk/src/pezkuwi_sdk/templates.rs
index 07a54d19..51867a00 100644
--- a/web/public/docs/sdk/src/pezkuwi_sdk/templates.rs
+++ b/web/public/docs/sdk/src/pezkuwi_sdk/templates.rs
@@ -18,7 +18,7 @@
//! template can act as a good starting point for those who want to launch a solochain.
//! - [`teyrchain-template`](https://github.com/pezkuwichain/pezkuwi-sdk-teyrchain-template):
//! A teyrchain template ready to be connected to a relay-chain, such as [Paseo](https://github.com/paseo-network/.github)
-//! , Kusama or Pezkuwi.
+//! , Dicle or Pezkuwi.
//!
//! Note that these templates are mirrored automatically from [this](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/templates)
//! directory of pezkuwi-sdk, therefore any changes to them should be made as a PR to this repo.
diff --git a/web/public/docs/sdk/src/reference_docs/glossary.rs b/web/public/docs/sdk/src/reference_docs/glossary.rs
index e0c7de9a..376709d4 100644
--- a/web/public/docs/sdk/src/reference_docs/glossary.rs
+++ b/web/public/docs/sdk/src/reference_docs/glossary.rs
@@ -104,7 +104,7 @@
//! #### Teyrchain
//!
//! Short for "parallelized chain" a teyrchain is a specialized blockchain that runs in parallel to
-//! the Relay Chain (Pezkuwi, Kusama, etc.), benefiting from the shared security and
+//! the Relay Chain (Pezkuwi, Dicle, etc.), benefiting from the shared security and
//! interoperability features of it.
//!
//! **Synonyms**: AppChain
diff --git a/web/src/App.tsx b/web/src/App.tsx
index d46f007d..e8af99cf 100644
--- a/web/src/App.tsx
+++ b/web/src/App.tsx
@@ -2,7 +2,7 @@ import { useEffect, lazy, Suspense } from 'react';
import { BrowserRouter as Router, Routes, Route, useLocation } from 'react-router-dom';
import { ThemeProvider } from '@/components/theme-provider';
import { AppProvider } from '@/contexts/AppContext';
-import { PolkadotProvider } from '@/contexts/PolkadotContext';
+import { PezkuwiProvider } from '@/contexts/PezkuwiContext';
import { WalletProvider } from '@/contexts/WalletContext';
import { WebSocketProvider } from '@/contexts/WebSocketContext';
import { IdentityProvider } from '@/contexts/IdentityContext';
@@ -102,7 +102,7 @@ function App() {
-
+
@@ -218,7 +218,7 @@ function App() {
-
+
diff --git a/web/src/components/AccountBalance.tsx b/web/src/components/AccountBalance.tsx
index 77d66dea..5030747f 100644
--- a/web/src/components/AccountBalance.tsx
+++ b/web/src/components/AccountBalance.tsx
@@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Wallet, TrendingUp, ArrowDownRight, RefreshCw, Award, Plus, Coins, Send, Shield, Users } from 'lucide-react';
import { Button } from '@/components/ui/button';
@@ -18,7 +18,7 @@ interface TokenBalance {
}
export const AccountBalance: React.FC = () => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [balance, setBalance] = useState<{
free: string;
reserved: string;
diff --git a/web/src/components/AddLiquidityModal.tsx b/web/src/components/AddLiquidityModal.tsx
index 22f6d4b1..f99ac16e 100644
--- a/web/src/components/AddLiquidityModal.tsx
+++ b/web/src/components/AddLiquidityModal.tsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from 'react';
import { X, Plus, Info, AlertCircle } from 'lucide-react';
import { web3FromAddress } from '@pezkuwi/extension-dapp';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { Button } from '@/components/ui/button';
import { Alert, AlertDescription } from '@/components/ui/alert';
@@ -54,7 +54,7 @@ export const AddLiquidityModal: React.FC = ({
asset0 = 0, // Default to wHEZ
asset1 = 1 // Default to PEZ
}) => {
- const { api, selectedAccount, isApiReady } = usePolkadot();
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
const { balances, refreshBalances } = useWallet();
const [amount0, setAmount0] = useState('');
diff --git a/web/src/components/AppLayout.tsx b/web/src/components/AppLayout.tsx
index b950aa9f..9c6800e5 100644
--- a/web/src/components/AppLayout.tsx
+++ b/web/src/components/AppLayout.tsx
@@ -28,7 +28,7 @@ import { StakingDashboard } from './staking/StakingDashboard';
import { MultiSigWallet } from './wallet/MultiSigWallet';
import { useWallet } from '@/contexts/WalletContext';
import { supabase } from '@/lib/supabase';
-import { PolkadotWalletButton } from './PolkadotWalletButton';
+import { PezkuwiWalletButton } from './PezkuwiWalletButton';
import { DEXDashboard } from './dex/DEXDashboard';
import { P2PDashboard } from './p2p/P2PDashboard';
import EducationPlatform from '../pages/EducationPlatform';
@@ -286,7 +286,7 @@ const AppLayout: React.FC = () => {
-
+
diff --git a/web/src/components/HeroSection.tsx b/web/src/components/HeroSection.tsx
index 646a6709..41caa232 100644
--- a/web/src/components/HeroSection.tsx
+++ b/web/src/components/HeroSection.tsx
@@ -1,12 +1,14 @@
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
-import { ChevronRight, Shield } from 'lucide-react';
-import { usePolkadot } from '../contexts/PolkadotContext';
+import { ChevronRight, Shield, Smartphone } from 'lucide-react';
+import { usePezkuwi } from '../contexts/PezkuwiContext';
+import { useWallet } from '../contexts/WalletContext'; // Import useWallet
import { formatBalance } from '@pezkuwi/lib/wallet';
const HeroSection: React.FC = () => {
const { t } = useTranslation();
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
+ const { selectedAccount } = useWallet(); // Use selectedAccount from WalletContext
const [stats, setStats] = useState({
activeProposals: 0,
totalVoters: 0,
@@ -18,6 +20,20 @@ const HeroSection: React.FC = () => {
const fetchStats = async () => {
if (!api || !isApiReady) return;
+ let currentTrustScore = 0; // Default if not fetched or no account
+ if (selectedAccount?.address) {
+ try {
+ // Assuming pallet-staking-score has a storage item for trust scores
+ // The exact query might need adjustment based on chain metadata
+ const rawTrustScore = await api.query.stakingScore.trustScore(selectedAccount.address);
+ // Assuming trustScore is a simple number or a wrapper around it
+ currentTrustScore = rawTrustScore.isSome ? rawTrustScore.unwrap().toNumber() : 0;
+ } catch (err) {
+ if (import.meta.env.DEV) console.warn('Failed to fetch trust score:', err);
+ currentTrustScore = 0;
+ }
+ }
+
try {
// Fetch active referenda
let activeProposals = 0;
@@ -60,13 +76,14 @@ const HeroSection: React.FC = () => {
activeProposals,
totalVoters,
tokensStaked,
- trustScore: 0 // TODO: Calculate trust score
+ trustScore: currentTrustScore
});
if (import.meta.env.DEV) console.log('✅ Hero stats updated:', {
activeProposals,
totalVoters,
- tokensStaked
+ tokensStaked,
+ trustScore: currentTrustScore
});
} catch (error) {
if (import.meta.env.DEV) console.error('Failed to fetch hero stats:', error);
@@ -74,7 +91,7 @@ const HeroSection: React.FC = () => {
};
fetchStats();
- }, [api, isApiReady]);
+ }, [api, isApiReady, selectedAccount]); // Add selectedAccount to dependencies
return (
@@ -133,6 +150,14 @@ const HeroSection: React.FC = () => {
{t('hero.exploreGovernance', 'Explore Governance')}
+
+
+ {t('hero.downloadWallet', 'Download Mobile Wallet')}
+
document.getElementById('governance')?.scrollIntoView({ behavior: 'smooth' })}
className="px-8 py-4 bg-gray-900/80 backdrop-blur-sm text-white font-semibold rounded-lg border border-gray-700 hover:bg-gray-800 hover:border-gray-600 transition-all"
diff --git a/web/src/components/MultisigMembers.tsx b/web/src/components/MultisigMembers.tsx
index 30e59458..b8ab627f 100644
--- a/web/src/components/MultisigMembers.tsx
+++ b/web/src/components/MultisigMembers.tsx
@@ -3,7 +3,7 @@ import { Shield, Users, CheckCircle, XCircle, ExternalLink } from 'lucide-react'
import { Card } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Alert, AlertDescription } from '@/components/ui/alert';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import {
getMultisigMemberInfo,
calculateMultisigAddress,
@@ -31,7 +31,7 @@ export const MultisigMembers: React.FC = ({
specificAddresses = {},
showMultisigAddress = true,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const [members, setMembers] = useState([]);
const [multisigAddress, setMultisigAddress] = useState('');
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/NetworkStats.tsx b/web/src/components/NetworkStats.tsx
index 4d077ff1..c74b4f07 100644
--- a/web/src/components/NetworkStats.tsx
+++ b/web/src/components/NetworkStats.tsx
@@ -1,11 +1,11 @@
import React, { useEffect, useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Activity, Wifi, WifiOff, Users, Box, TrendingUp } from 'lucide-react';
export const NetworkStats: React.FC = () => {
- const { api, isApiReady, error } = usePolkadot();
+ const { api, isApiReady, error } = usePezkuwi();
const [blockNumber, setBlockNumber] = useState(0);
const [blockHash, setBlockHash] = useState('');
const [finalizedBlock, setFinalizedBlock] = useState(0);
diff --git a/web/src/components/NftList.tsx b/web/src/components/NftList.tsx
index bafdda38..7394ae4f 100644
--- a/web/src/components/NftList.tsx
+++ b/web/src/components/NftList.tsx
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Loader2, Award, Crown, Shield, Users } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { getUserTikis } from '@pezkuwi/lib/citizenship-workflow';
import type { TikiInfo } from '@pezkuwi/lib/citizenship-workflow';
@@ -39,7 +39,7 @@ const getRoleBadgeColor = (role: string) => {
};
export const NftList: React.FC = () => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [tikis, setTikis] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
diff --git a/web/src/components/PolkadotWalletButton.tsx b/web/src/components/PezkuwiWalletButton.tsx
similarity index 98%
rename from web/src/components/PolkadotWalletButton.tsx
rename to web/src/components/PezkuwiWalletButton.tsx
index fdd64837..25353e44 100644
--- a/web/src/components/PolkadotWalletButton.tsx
+++ b/web/src/components/PezkuwiWalletButton.tsx
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import {
@@ -12,7 +12,7 @@ import {
import { Wallet, Check, ExternalLink, Copy, LogOut } from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
-export const PolkadotWalletButton: React.FC = () => {
+export const PezkuwiWalletButton: React.FC = () => {
const {
accounts,
selectedAccount,
@@ -20,7 +20,7 @@ export const PolkadotWalletButton: React.FC = () => {
connectWallet,
disconnectWallet,
error
- } = usePolkadot();
+ } = usePezkuwi();
const [isOpen, setIsOpen] = useState(false);
const { toast } = useToast();
diff --git a/web/src/components/PoolDashboard.tsx b/web/src/components/PoolDashboard.tsx
index dc19503f..e9180233 100644
--- a/web/src/components/PoolDashboard.tsx
+++ b/web/src/components/PoolDashboard.tsx
@@ -6,7 +6,7 @@ import { Alert, AlertDescription } from '@/components/ui/alert';
import { Badge } from '@/components/ui/badge';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { ASSET_IDS, getAssetSymbol } from '@pezkuwi/lib/wallet';
import { AddLiquidityModal } from '@/components/AddLiquidityModal';
import { RemoveLiquidityModal } from '@/components/RemoveLiquidityModal';
@@ -43,7 +43,7 @@ interface LPPosition {
}
const PoolDashboard = () => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [poolData, setPoolData] = useState(null);
const [lpPosition, setLPPosition] = useState(null);
diff --git a/web/src/components/ProtectedRoute.tsx b/web/src/components/ProtectedRoute.tsx
index fff33ce3..f759f8f4 100644
--- a/web/src/components/ProtectedRoute.tsx
+++ b/web/src/components/ProtectedRoute.tsx
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { Navigate } from 'react-router-dom';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Loader2, Wallet } from 'lucide-react';
import { Button } from '@/components/ui/button';
@@ -15,7 +15,7 @@ export const ProtectedRoute: React.FC = ({
requireAdmin = false
}) => {
const { user, loading, isAdmin } = useAuth();
- const { selectedAccount, connectWallet } = usePolkadot();
+ const { selectedAccount, connectWallet } = usePezkuwi();
const [walletRestoreChecked, setWalletRestoreChecked] = useState(false);
const [forceUpdate, setForceUpdate] = useState(0);
diff --git a/web/src/components/ReceiveModal.tsx b/web/src/components/ReceiveModal.tsx
index 001b7832..40fb3714 100644
--- a/web/src/components/ReceiveModal.tsx
+++ b/web/src/components/ReceiveModal.tsx
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import {
Dialog,
DialogContent,
@@ -18,7 +18,7 @@ interface ReceiveModalProps {
}
export const ReceiveModal: React.FC = ({ isOpen, onClose }) => {
- const { selectedAccount } = usePolkadot();
+ const { selectedAccount } = usePezkuwi();
const { toast } = useToast();
const [copied, setCopied] = useState(false);
const [qrCodeDataUrl, setQrCodeDataUrl] = useState('');
diff --git a/web/src/components/RemoveLiquidityModal.tsx b/web/src/components/RemoveLiquidityModal.tsx
index 9e350219..e81b2a24 100644
--- a/web/src/components/RemoveLiquidityModal.tsx
+++ b/web/src/components/RemoveLiquidityModal.tsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from 'react';
import { X, Minus, AlertCircle, Info } from 'lucide-react';
import { web3FromAddress } from '@pezkuwi/extension-dapp';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { Button } from '@/components/ui/button';
import { Alert, AlertDescription } from '@/components/ui/alert';
@@ -42,7 +42,7 @@ export const RemoveLiquidityModal: React.FC = ({
asset0,
asset1,
}) => {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const { refreshBalances } = useWallet();
const [percentage, setPercentage] = useState(100);
diff --git a/web/src/components/ReservesDashboard.tsx b/web/src/components/ReservesDashboard.tsx
index e35ddcad..d1cd50ed 100644
--- a/web/src/components/ReservesDashboard.tsx
+++ b/web/src/components/ReservesDashboard.tsx
@@ -5,7 +5,7 @@ import { Badge } from '@/components/ui/badge';
import { Alert, AlertDescription } from '@/components/ui/alert';
import { Button } from '@/components/ui/button';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { getWUSDTTotalSupply, checkReserveHealth, formatWUSDT } from '@pezkuwi/lib/usdt';
import { MultisigMembers } from './MultisigMembers';
@@ -18,7 +18,7 @@ export const ReservesDashboard: React.FC = ({
specificAddresses = {},
offChainReserveAmount = 0,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const [wusdtSupply, setWusdtSupply] = useState(0);
const [offChainReserve, setOffChainReserve] = useState(offChainReserveAmount);
diff --git a/web/src/components/RouteGuards.tsx b/web/src/components/RouteGuards.tsx
index 3f0f9585..1c075954 100644
--- a/web/src/components/RouteGuards.tsx
+++ b/web/src/components/RouteGuards.tsx
@@ -5,7 +5,7 @@
import React, { useEffect, useState, ReactNode } from 'react';
import { Navigate } from 'react-router-dom';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useAuth } from '@/contexts/AuthContext';
import {
checkCitizenStatus,
@@ -59,7 +59,7 @@ export const CitizenRoute: React.FC = ({
children,
fallbackPath = '/be-citizen',
}) => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const {} = useAuth();
const [isCitizen, setIsCitizen] = useState(null);
const [loading, setLoading] = useState(true);
@@ -149,7 +149,7 @@ export const ValidatorRoute: React.FC = ({
children,
fallbackPath = '/staking',
}) => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [isValidator, setIsValidator] = useState(null);
const [loading, setLoading] = useState(true);
@@ -240,7 +240,7 @@ export const EducatorRoute: React.FC = ({
children,
fallbackPath = '/education',
}) => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [isEducator, setIsEducator] = useState(null);
const [loading, setLoading] = useState(true);
@@ -337,7 +337,7 @@ export const ModeratorRoute: React.FC = ({
children,
fallbackPath = '/',
}) => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [isModerator, setIsModerator] = useState(null);
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/TokenSwap.tsx b/web/src/components/TokenSwap.tsx
index b2ce3235..c875d437 100644
--- a/web/src/components/TokenSwap.tsx
+++ b/web/src/components/TokenSwap.tsx
@@ -7,7 +7,7 @@ import { Alert, AlertDescription } from '@/components/ui/alert';
import { Badge } from '@/components/ui/badge';
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { ASSET_IDS, formatBalance, parseAmount } from '@pezkuwi/lib/wallet';
import { useToast } from '@/hooks/use-toast';
@@ -22,7 +22,7 @@ const AVAILABLE_TOKENS = [
] as const;
const TokenSwap = () => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { balances, refreshBalances } = useWallet();
const { toast } = useToast();
diff --git a/web/src/components/TransactionHistory.tsx b/web/src/components/TransactionHistory.tsx
index b5d51802..7c36ecce 100644
--- a/web/src/components/TransactionHistory.tsx
+++ b/web/src/components/TransactionHistory.tsx
@@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import {
Dialog,
DialogContent,
@@ -30,7 +30,7 @@ interface Transaction {
}
export const TransactionHistory: React.FC = ({ isOpen, onClose }) => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { toast } = useToast();
const [transactions, setTransactions] = useState([]);
const [isLoading, setIsLoading] = useState(false);
diff --git a/web/src/components/TransferModal.tsx b/web/src/components/TransferModal.tsx
index ea4bec61..fdbcbf28 100644
--- a/web/src/components/TransferModal.tsx
+++ b/web/src/components/TransferModal.tsx
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import {
Dialog,
DialogContent,
@@ -66,7 +66,7 @@ const TOKENS: Token[] = [
];
export const TransferModal: React.FC = ({ isOpen, onClose, selectedAsset }) => {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { toast } = useToast();
const [selectedToken, setSelectedToken] = useState('HEZ');
diff --git a/web/src/components/USDTBridge.tsx b/web/src/components/USDTBridge.tsx
index 9fdc1a6c..f4938e08 100644
--- a/web/src/components/USDTBridge.tsx
+++ b/web/src/components/USDTBridge.tsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from 'react';
import { X, ArrowDown, ArrowUp, AlertCircle, Info, Clock, CheckCircle2 } from 'lucide-react';
import { web3FromAddress } from '@pezkuwi/extension-dapp';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { Button } from '@/components/ui/button';
import { Alert, AlertDescription } from '@/components/ui/alert';
@@ -28,7 +28,7 @@ export const USDTBridge: React.FC = ({
onClose,
specificAddresses = {},
}) => {
- const { api, selectedAccount, isApiReady } = usePolkadot();
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
const { refreshBalances } = useWallet();
const [depositAmount, setDepositAmount] = useState('');
diff --git a/web/src/components/admin/CommissionSetupTab.tsx b/web/src/components/admin/CommissionSetupTab.tsx
index 9791f2e8..f7bcfb4e 100644
--- a/web/src/components/admin/CommissionSetupTab.tsx
+++ b/web/src/components/admin/CommissionSetupTab.tsx
@@ -3,13 +3,13 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { useToast } from '@/hooks/use-toast';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Loader2, Plus, CheckCircle, AlertTriangle, Shield } from 'lucide-react';
import { COMMISSIONS } from '@/config/commissions';
import { Alert, AlertDescription } from '@/components/ui/alert';
export function CommissionSetupTab() {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { toast } = useToast();
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/admin/CommissionVotingTab.tsx b/web/src/components/admin/CommissionVotingTab.tsx
index ac408195..6d66d5a8 100644
--- a/web/src/components/admin/CommissionVotingTab.tsx
+++ b/web/src/components/admin/CommissionVotingTab.tsx
@@ -3,7 +3,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { useToast } from '@/hooks/use-toast';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Loader2, ThumbsUp, ThumbsDown, Clock, RefreshCw } from 'lucide-react';
import {
Table,
@@ -26,7 +26,7 @@ interface Proposal {
}
export function CommissionVotingTab() {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { toast } = useToast();
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/admin/KycApprovalTab.tsx b/web/src/components/admin/KycApprovalTab.tsx
index 155683d1..a8fa8954 100644
--- a/web/src/components/admin/KycApprovalTab.tsx
+++ b/web/src/components/admin/KycApprovalTab.tsx
@@ -3,7 +3,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { useToast } from '@/hooks/use-toast';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Loader2, CheckCircle, XCircle, Clock, User, Mail, FileText, AlertTriangle } from 'lucide-react';
import { COMMISSIONS } from '@/config/commissions';
import {
@@ -37,7 +37,7 @@ interface IdentityInfo {
}
export function KycApprovalTab() {
- const { api, isApiReady, selectedAccount, connectWallet } = usePolkadot();
+ const { api, isApiReady, selectedAccount, connectWallet } = usePezkuwi();
const { toast } = useToast();
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/admin/XCMConfigurationWizard.tsx b/web/src/components/admin/XCMConfigurationWizard.tsx
index 5e7035b7..839148d9 100644
--- a/web/src/components/admin/XCMConfigurationWizard.tsx
+++ b/web/src/components/admin/XCMConfigurationWizard.tsx
@@ -11,7 +11,7 @@
*/
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import {
X,
@@ -65,7 +65,7 @@ export const XCMConfigurationWizard: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const { toast } = useToast();
diff --git a/web/src/components/citizenship/ExistingCitizenAuth.tsx b/web/src/components/citizenship/ExistingCitizenAuth.tsx
index 58f39e02..b4ba4f3d 100644
--- a/web/src/components/citizenship/ExistingCitizenAuth.tsx
+++ b/web/src/components/citizenship/ExistingCitizenAuth.tsx
@@ -5,7 +5,7 @@ import { Label } from '@/components/ui/label';
import { Alert, AlertDescription } from '@/components/ui/alert';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Loader2, CheckCircle, AlertTriangle, Shield } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { verifyCitizenNumber } from '@pezkuwi/lib/tiki';
import { generateAuthChallenge, signChallenge, verifySignature, saveCitizenSession } from '@pezkuwi/lib/citizenship-workflow';
import type { AuthChallenge } from '@pezkuwi/lib/citizenship-workflow';
@@ -15,7 +15,7 @@ interface ExistingCitizenAuthProps {
}
export const ExistingCitizenAuth: React.FC = ({ onClose }) => {
- const { api, isApiReady, selectedAccount, connectWallet } = usePolkadot();
+ const { api, isApiReady, selectedAccount, connectWallet } = usePezkuwi();
const [citizenNumber, setCitizenNumber] = useState('');
const [step, setStep] = useState<'input' | 'verifying' | 'signing' | 'success' | 'error'>('input');
diff --git a/web/src/components/citizenship/NewCitizenApplication.tsx b/web/src/components/citizenship/NewCitizenApplication.tsx
index 3efe0196..efc9bbb7 100644
--- a/web/src/components/citizenship/NewCitizenApplication.tsx
+++ b/web/src/components/citizenship/NewCitizenApplication.tsx
@@ -9,7 +9,7 @@ import { Alert, AlertDescription } from '@/components/ui/alert';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Checkbox } from '@/components/ui/checkbox';
import { Loader2, AlertTriangle, CheckCircle, User, Users as UsersIcon, MapPin, Briefcase, Mail, Check, X, AlertCircle } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import type { CitizenshipData, Region, MaritalStatus } from '@pezkuwi/lib/citizenship-workflow';
import { FOUNDER_ADDRESS, submitKycApplication, subscribeToKycApproval, getKycStatus } from '@pezkuwi/lib/citizenship-workflow';
import { generateCommitmentHash, generateNullifierHash, encryptData, saveLocalCitizenshipData, uploadToIPFS } from '@pezkuwi/lib/citizenship-workflow';
@@ -22,7 +22,7 @@ interface NewCitizenApplicationProps {
type FormData = Omit;
export const NewCitizenApplication: React.FC = ({ onClose, referrerAddress }) => {
- const { api, isApiReady, selectedAccount, connectWallet } = usePolkadot();
+ const { api, isApiReady, selectedAccount, connectWallet } = usePezkuwi();
const { register, handleSubmit, watch, setValue, formState: { errors } } = useForm();
const [submitting, setSubmitting] = useState(false);
diff --git a/web/src/components/dashboard/CommissionProposalsCard.tsx b/web/src/components/dashboard/CommissionProposalsCard.tsx
index a1c07f5d..a7058811 100644
--- a/web/src/components/dashboard/CommissionProposalsCard.tsx
+++ b/web/src/components/dashboard/CommissionProposalsCard.tsx
@@ -3,7 +3,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { useToast } from '@/hooks/use-toast';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Loader2, ThumbsUp, ThumbsDown, Vote } from 'lucide-react';
interface Proposal {
@@ -17,7 +17,7 @@ interface Proposal {
}
export function CommissionProposalsCard() {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { toast } = useToast();
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/delegation/DelegationManager.tsx b/web/src/components/delegation/DelegationManager.tsx
index 62412758..5865b5e6 100644
--- a/web/src/components/delegation/DelegationManager.tsx
+++ b/web/src/components/delegation/DelegationManager.tsx
@@ -10,13 +10,13 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@
import { Users, TrendingUp, Shield, Clock, ChevronRight, Award, Activity } from 'lucide-react';
import DelegateProfile from './DelegateProfile';
import { useDelegation } from '@/hooks/useDelegation';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { formatNumber } from '@/lib/utils';
import { LoadingState } from '@pezkuwi/components/AsyncComponent';
const DelegationManager: React.FC = () => {
const { t } = useTranslation();
- const { selectedAccount } = usePolkadot();
+ const { selectedAccount } = usePezkuwi();
const { delegates, userDelegations, stats, loading, error } = useDelegation(selectedAccount?.address);
const [selectedDelegate, setSelectedDelegate] = useState | null>(null);
const [delegationAmount, setDelegationAmount] = useState('');
diff --git a/web/src/components/dex/AddLiquidityModal.tsx b/web/src/components/dex/AddLiquidityModal.tsx
index 656ce502..98dd17dd 100644
--- a/web/src/components/dex/AddLiquidityModal.tsx
+++ b/web/src/components/dex/AddLiquidityModal.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { X, Plus, AlertCircle, Loader2, CheckCircle, Info } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -21,7 +21,7 @@ export const AddLiquidityModal: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const [amount1Input, setAmount1Input] = useState('');
diff --git a/web/src/components/dex/CreatePoolModal.tsx b/web/src/components/dex/CreatePoolModal.tsx
index 8d157e67..36c82ad1 100644
--- a/web/src/components/dex/CreatePoolModal.tsx
+++ b/web/src/components/dex/CreatePoolModal.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { X, Plus, AlertCircle, Loader2, CheckCircle } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -20,7 +20,7 @@ export const CreatePoolModal: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const [asset1Id, setAsset1Id] = useState(null);
diff --git a/web/src/components/dex/DEXDashboard.tsx b/web/src/components/dex/DEXDashboard.tsx
index 397a5b04..b2f523cb 100644
--- a/web/src/components/dex/DEXDashboard.tsx
+++ b/web/src/components/dex/DEXDashboard.tsx
@@ -1,7 +1,7 @@
import React, { useState } from 'react';
// import { useNavigate } from 'react-router-dom';
import { useWallet } from '@/contexts/WalletContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import TokenSwap from '@/components/TokenSwap';
import PoolDashboard from '@/components/PoolDashboard';
@@ -14,7 +14,7 @@ import { isFounderWallet } from '@pezkuwi/utils/auth';
export const DEXDashboard: React.FC = () => {
const { account } = useWallet();
- const { sudoKey } = usePolkadot();
+ const { sudoKey } = usePezkuwi();
const [activeTab, setActiveTab] = useState('swap');
// Admin modal states
diff --git a/web/src/components/dex/InitializeHezPoolModal.tsx b/web/src/components/dex/InitializeHezPoolModal.tsx
index 247dd76d..6a4124ce 100644
--- a/web/src/components/dex/InitializeHezPoolModal.tsx
+++ b/web/src/components/dex/InitializeHezPoolModal.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { X, AlertCircle, Loader2, CheckCircle, Info } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -22,7 +22,7 @@ export const InitializeHezPoolModal: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const { toast } = useToast();
diff --git a/web/src/components/dex/InitializeUsdtModal.tsx b/web/src/components/dex/InitializeUsdtModal.tsx
index dad7846a..db3172c5 100644
--- a/web/src/components/dex/InitializeUsdtModal.tsx
+++ b/web/src/components/dex/InitializeUsdtModal.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { X, AlertCircle, Loader2, CheckCircle, Info } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -25,7 +25,7 @@ export const InitializeUsdtModal: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const { toast } = useToast();
diff --git a/web/src/components/dex/PoolBrowser.tsx b/web/src/components/dex/PoolBrowser.tsx
index 1f6450d2..53338b03 100644
--- a/web/src/components/dex/PoolBrowser.tsx
+++ b/web/src/components/dex/PoolBrowser.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
@@ -22,7 +22,7 @@ export const PoolBrowser: React.FC = ({
onSwap,
onCreatePool,
}) => {
- const { api, isApiReady, sudoKey } = usePolkadot();
+ const { api, isApiReady, sudoKey } = usePezkuwi();
const { account } = useWallet();
const [pools, setPools] = useState([]);
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/dex/RemoveLiquidityModal.tsx b/web/src/components/dex/RemoveLiquidityModal.tsx
index b09a6149..b7123b10 100644
--- a/web/src/components/dex/RemoveLiquidityModal.tsx
+++ b/web/src/components/dex/RemoveLiquidityModal.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { X, Minus, AlertCircle, Loader2, CheckCircle, Info } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -21,7 +21,7 @@ export const RemoveLiquidityModal: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const [lpTokenBalance, setLpTokenBalance] = useState('0');
diff --git a/web/src/components/dex/SwapInterface.tsx b/web/src/components/dex/SwapInterface.tsx
index 284a5cba..965a50da 100644
--- a/web/src/components/dex/SwapInterface.tsx
+++ b/web/src/components/dex/SwapInterface.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { ArrowDownUp, AlertCircle, Loader2, Info, Settings, AlertTriangle } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -32,7 +32,7 @@ const USER_TOKENS = [
] as const;
export const SwapInterface: React.FC = ({ pools }) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const { toast } = useToast();
diff --git a/web/src/components/dex/XCMBridgeSetupModal.tsx b/web/src/components/dex/XCMBridgeSetupModal.tsx
index dbcca975..b33de8d9 100644
--- a/web/src/components/dex/XCMBridgeSetupModal.tsx
+++ b/web/src/components/dex/XCMBridgeSetupModal.tsx
@@ -1,6 +1,6 @@
// Force reload for mock XCM update
import React, { useState, useEffect, useCallback } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { X, AlertCircle, Loader2, CheckCircle, Info, ExternalLink, Zap } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
@@ -34,7 +34,7 @@ export const XCMBridgeSetupModal: React.FC = ({
onClose,
onSuccess,
}) => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const { toast } = useToast();
diff --git a/web/src/components/governance/ElectionsInterface.tsx b/web/src/components/governance/ElectionsInterface.tsx
index 26e3ced0..6bb9e2c6 100644
--- a/web/src/components/governance/ElectionsInterface.tsx
+++ b/web/src/components/governance/ElectionsInterface.tsx
@@ -5,7 +5,7 @@ import { Badge } from '@/components/ui/badge';
import { Progress } from '@/components/ui/progress';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Vote, Trophy, AlertCircle, CheckCircle, Users, Clock, Activity, Loader2 } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import {
getActiveElections,
@@ -28,7 +28,7 @@ interface ElectionWithCandidates extends ElectionInfo {
}
const ElectionsInterface: React.FC = () => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, signer } = useWallet();
const [elections, setElections] = useState([]);
const [completedResults, setCompletedResults] = useState([]);
diff --git a/web/src/components/governance/GovernanceHistory.tsx b/web/src/components/governance/GovernanceHistory.tsx
index dc760869..71411ca0 100644
--- a/web/src/components/governance/GovernanceHistory.tsx
+++ b/web/src/components/governance/GovernanceHistory.tsx
@@ -3,7 +3,7 @@ import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { FileText, Users, Trophy, CheckCircle, XCircle, Clock, Activity, Loader2, TrendingUp, Calendar } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import {
getElectionResults,
getGovernanceStats,
@@ -25,7 +25,7 @@ interface CompletedProposal {
}
const GovernanceHistory: React.FC = () => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const [completedElections, setCompletedElections] = useState([]);
const [completedProposals, setCompletedProposals] = useState([]);
const [stats, setStats] = useState(null);
diff --git a/web/src/components/governance/GovernanceOverview.tsx b/web/src/components/governance/GovernanceOverview.tsx
index f6333e4a..486f6d65 100644
--- a/web/src/components/governance/GovernanceOverview.tsx
+++ b/web/src/components/governance/GovernanceOverview.tsx
@@ -7,7 +7,7 @@ import {
import { Card, CardContent, CardHeader, CardTitle } from '../ui/card';
import { Badge } from '../ui/badge';
import { Progress } from '../ui/progress';
-import { usePolkadot } from '../../contexts/PolkadotContext';
+import { usePezkuwi } from '../../contexts/PezkuwiContext';
import { formatBalance } from '@pezkuwi/lib/wallet';
import { LoadingState } from '@pezkuwi/components/AsyncComponent';
@@ -23,7 +23,7 @@ interface GovernanceStats {
}
const GovernanceOverview: React.FC = () => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const [stats, setStats] = useState({
activeProposals: 0,
activeElections: 0,
diff --git a/web/src/components/governance/MyVotes.tsx b/web/src/components/governance/MyVotes.tsx
index 98a52daa..bb87b5c3 100644
--- a/web/src/components/governance/MyVotes.tsx
+++ b/web/src/components/governance/MyVotes.tsx
@@ -4,7 +4,7 @@ import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Vote, FileText, Users, CheckCircle, XCircle, Clock, Activity, Loader2, Wallet } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { formatNumber } from '@/lib/utils';
@@ -35,7 +35,7 @@ interface DelegationInfo {
}
const MyVotes: React.FC = () => {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account, isConnected } = useWallet();
const [proposalVotes, setProposalVotes] = useState([]);
const [electionVotes, setElectionVotes] = useState([]);
diff --git a/web/src/components/p2p/DepositModal.tsx b/web/src/components/p2p/DepositModal.tsx
index a88db957..7ceb7c17 100644
--- a/web/src/components/p2p/DepositModal.tsx
+++ b/web/src/components/p2p/DepositModal.tsx
@@ -28,7 +28,7 @@ import {
QrCode,
Wallet
} from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { toast } from 'sonner';
import {
@@ -46,7 +46,7 @@ interface DepositModalProps {
type DepositStep = 'select' | 'send' | 'verify' | 'success';
export function DepositModal({ isOpen, onClose, onSuccess }: DepositModalProps) {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const { balances, signTransaction } = useWallet();
const [step, setStep] = useState('select');
diff --git a/web/src/components/p2p/DisputeModal.tsx b/web/src/components/p2p/DisputeModal.tsx
index e33d87bf..a285e773 100644
--- a/web/src/components/p2p/DisputeModal.tsx
+++ b/web/src/components/p2p/DisputeModal.tsx
@@ -220,16 +220,22 @@ export function DisputeModal({
reference_id: dispute.id,
});
- // Create notification for admin (user-100 / platform admin)
- // In production, this would be a specific admin role
- await supabase.from('p2p_notifications').insert({
- user_id: counterpartyId, // TODO: Replace with actual admin user ID
- type: 'dispute_opened',
- title: 'New Dispute Requires Attention',
- message: `Dispute #${dispute.id.slice(0, 8)} opened. Trade: ${tradeId.slice(0, 8)}`,
- reference_type: 'dispute',
- reference_id: dispute.id,
- });
+ // Fetch admin user IDs and create notifications for each admin
+ const { data: adminIds, error: adminError } = await supabase.rpc('get_admin_user_ids');
+ if (adminError) {
+ console.error('Failed to fetch admin IDs:', adminError);
+ // Continue without admin notifications if fetching fails, but log the error
+ } else if (adminIds && adminIds.length > 0) {
+ const adminNotifications = adminIds.map((admin: { user_id: string }) => ({
+ user_id: admin.user_id,
+ type: 'dispute_opened',
+ title: 'New Dispute Requires Attention',
+ message: `Dispute #${dispute.id.slice(0, 8)} opened. Trade: ${tradeId.slice(0, 8)}`,
+ reference_type: 'dispute',
+ reference_id: dispute.id,
+ }));
+ await supabase.from('p2p_notifications').insert(adminNotifications);
+ }
toast.success('Dispute opened successfully');
onClose();
diff --git a/web/src/components/p2p/TradeModal.tsx b/web/src/components/p2p/TradeModal.tsx
index 83882456..9ea50798 100644
--- a/web/src/components/p2p/TradeModal.tsx
+++ b/web/src/components/p2p/TradeModal.tsx
@@ -14,7 +14,7 @@ import { Label } from '@/components/ui/label';
import { Alert, AlertDescription } from '@/components/ui/alert';
import { Loader2, AlertTriangle, Clock } from 'lucide-react';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import { acceptFiatOffer, type P2PFiatOffer } from '@shared/lib/p2p-fiat';
@@ -26,7 +26,7 @@ interface TradeModalProps {
export function TradeModal({ offer, onClose }: TradeModalProps) {
const navigate = useNavigate();
const { user } = useAuth();
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [amount, setAmount] = useState('');
const [loading, setLoading] = useState(false);
diff --git a/web/src/components/p2p/WithdrawModal.tsx b/web/src/components/p2p/WithdrawModal.tsx
index a22b9e94..39d4dd72 100644
--- a/web/src/components/p2p/WithdrawModal.tsx
+++ b/web/src/components/p2p/WithdrawModal.tsx
@@ -28,7 +28,7 @@ import {
Clock,
Info
} from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import {
getInternalBalances,
@@ -48,7 +48,7 @@ interface WithdrawModalProps {
type WithdrawStep = 'form' | 'confirm' | 'success';
export function WithdrawModal({ isOpen, onClose, onSuccess }: WithdrawModalProps) {
- const { selectedAccount } = usePolkadot();
+ const { selectedAccount } = usePezkuwi();
const [step, setStep] = useState('form');
const [token, setToken] = useState('HEZ');
diff --git a/web/src/components/perwerde/CourseCreator.tsx b/web/src/components/perwerde/CourseCreator.tsx
index 33b6f688..a98146ec 100644
--- a/web/src/components/perwerde/CourseCreator.tsx
+++ b/web/src/components/perwerde/CourseCreator.tsx
@@ -4,7 +4,7 @@ import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Textarea } from '@/components/ui/textarea';
import { Label } from '@/components/ui/label';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import { createCourse } from '@shared/lib/perwerde';
import { uploadToIPFS } from '@shared/lib/ipfs';
@@ -15,7 +15,7 @@ interface CourseCreatorProps {
}
export function CourseCreator({ onCourseCreated }: CourseCreatorProps) {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [name, setName] = useState('');
const [description, setDescription] = useState('');
const [content, setContent] = useState('');
diff --git a/web/src/components/perwerde/CourseList.tsx b/web/src/components/perwerde/CourseList.tsx
index f6faa21c..19f692dd 100644
--- a/web/src/components/perwerde/CourseList.tsx
+++ b/web/src/components/perwerde/CourseList.tsx
@@ -3,7 +3,7 @@ import { Card, CardContent } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { GraduationCap, BookOpen, ExternalLink, Play } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import { LoadingState } from '@shared/components/AsyncComponent';
import { getCourses, enrollInCourse, type Course } from '@shared/lib/perwerde';
@@ -15,7 +15,7 @@ interface CourseListProps {
}
export function CourseList({ enrolledCourseIds, onEnroll }: CourseListProps) {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [courses, setCourses] = useState([]);
const [loading, setLoading] = useState(true);
diff --git a/web/src/components/perwerde/StudentDashboard.tsx b/web/src/components/perwerde/StudentDashboard.tsx
index f018b173..86a43ee3 100644
--- a/web/src/components/perwerde/StudentDashboard.tsx
+++ b/web/src/components/perwerde/StudentDashboard.tsx
@@ -3,7 +3,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { BookOpen, CheckCircle, Award } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import { LoadingState } from '@shared/components/AsyncComponent';
import { completeCourse, type Enrollment } from '@shared/lib/perwerde';
@@ -15,7 +15,7 @@ interface StudentDashboardProps {
}
export function StudentDashboard({ enrollments, loading, onCourseCompleted }: StudentDashboardProps) {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const handleComplete = async (courseId: number) => {
if (!api || !selectedAccount) {
diff --git a/web/src/components/referral/InviteUserModal.tsx b/web/src/components/referral/InviteUserModal.tsx
index 9a88def1..299f488b 100644
--- a/web/src/components/referral/InviteUserModal.tsx
+++ b/web/src/components/referral/InviteUserModal.tsx
@@ -3,7 +3,7 @@ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } f
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Label } from '@/components/ui/label';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import {
Copy,
Check,
@@ -21,7 +21,7 @@ interface InviteUserModalProps {
}
export const InviteUserModal: React.FC = ({ isOpen, onClose }) => {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [copied, setCopied] = useState(false);
const [inviteeAddress, setInviteeAddress] = useState('');
const [initiating, setInitiating] = useState(false);
diff --git a/web/src/components/staking/StakingDashboard.tsx b/web/src/components/staking/StakingDashboard.tsx
index 086fbfcc..c0d77ffe 100644
--- a/web/src/components/staking/StakingDashboard.tsx
+++ b/web/src/components/staking/StakingDashboard.tsx
@@ -7,7 +7,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Alert, AlertDescription } from '@/components/ui/alert';
// import { Badge } from '@/components/ui/badge';
import { AlertCircle, CheckCircle2 } from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { toast } from 'sonner';
import { web3FromAddress } from '@pezkuwi/extension-dapp';
@@ -25,7 +25,7 @@ import { ValidatorPoolDashboard } from './ValidatorPoolDashboard';
import { handleBlockchainError, handleBlockchainSuccess } from '@pezkuwi/lib/error-handler';
export const StakingDashboard: React.FC = () => {
- const { api, selectedAccount, isApiReady } = usePolkadot();
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
const { balances, refreshBalances } = useWallet();
const [stakingInfo, setStakingInfo] = useState(null);
diff --git a/web/src/components/staking/ValidatorPoolDashboard.tsx b/web/src/components/staking/ValidatorPoolDashboard.tsx
index 1bfebed7..a87a3402 100644
--- a/web/src/components/staking/ValidatorPoolDashboard.tsx
+++ b/web/src/components/staking/ValidatorPoolDashboard.tsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import {
getPoolMember,
@@ -16,7 +16,7 @@ import { Loader2, Users, UserCheck, UserX } from 'lucide-react';
import { PoolCategorySelector } from './PoolCategorySelector';
export function ValidatorPoolDashboard() {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [poolMember, setPoolMember] = useState(null);
const [poolSize, setPoolSize] = useState(0);
const [validatorCount, setValidatorCount] = useState(0);
diff --git a/web/src/components/wallet/WalletModal.tsx b/web/src/components/wallet/WalletModal.tsx
index ffb5af0b..e22e0523 100644
--- a/web/src/components/wallet/WalletModal.tsx
+++ b/web/src/components/wallet/WalletModal.tsx
@@ -8,7 +8,7 @@ import {
DialogTitle,
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { formatAddress } from '@pezkuwi/lib/wallet';
import { getAllScores, type UserScores } from '@pezkuwi/lib/scores';
@@ -27,7 +27,7 @@ export const WalletModal: React.FC = ({ isOpen, onClose }) =>
api,
isApiReady,
error
- } = usePolkadot();
+ } = usePezkuwi();
const [copied, setCopied] = useState(false);
const [scores, setScores] = useState({
diff --git a/web/src/contexts/AuthContext.tsx b/web/src/contexts/AuthContext.tsx
index 554bf240..4aaf10e5 100644
--- a/web/src/contexts/AuthContext.tsx
+++ b/web/src/contexts/AuthContext.tsx
@@ -178,7 +178,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
setLoading(false);
});
- // Listen for wallet changes (from PolkadotContext)
+ // Listen for wallet changes (from PezkuwiContext)
const handleWalletChange = () => {
checkAdminStatus();
};
diff --git a/web/src/contexts/DashboardContext.tsx b/web/src/contexts/DashboardContext.tsx
index 6aaae5e7..8ae46b23 100644
--- a/web/src/contexts/DashboardContext.tsx
+++ b/web/src/contexts/DashboardContext.tsx
@@ -1,6 +1,6 @@
import { createContext, useContext, useState, useEffect, useCallback, ReactNode } from 'react';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { supabase } from '@/lib/supabase';
import { getAllTikiNFTDetails, generateCitizenNumber, type TikiNFTDetails } from '@pezkuwi/lib/tiki';
import { getKycStatus } from '@pezkuwi/lib/kyc';
@@ -17,7 +17,7 @@ const DashboardContext = createContext(undefined);
export function DashboardProvider({ children }: { children: ReactNode }) {
const { user } = useAuth();
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [profile, setProfile] = useState | null>(null);
const [nftDetails, setNftDetails] = useState<{ citizenNFT: TikiNFTDetails | null; roleNFTs: TikiNFTDetails[]; totalNFTs: number }>({
citizenNFT: null,
diff --git a/web/src/contexts/PolkadotContext.tsx b/web/src/contexts/PezkuwiContext.tsx
similarity index 88%
rename from web/src/contexts/PolkadotContext.tsx
rename to web/src/contexts/PezkuwiContext.tsx
index 7a085ed8..fb2aff9e 100644
--- a/web/src/contexts/PolkadotContext.tsx
+++ b/web/src/contexts/PezkuwiContext.tsx
@@ -2,9 +2,9 @@ import React, { createContext, useContext, useEffect, useState, ReactNode } from
import { ApiPromise, WsProvider } from '@pezkuwi/api';
import { web3Accounts, web3Enable } from '@pezkuwi/extension-dapp';
import type { InjectedAccountWithMeta } from '@pezkuwi/extension-inject/types';
-import { DEFAULT_ENDPOINT } from '../../../shared/blockchain/polkadot';
+import { DEFAULT_ENDPOINT } from '../../../shared/blockchain/pezkuwi';
-interface PolkadotContextType {
+interface PezkuwiContextType {
api: ApiPromise | null;
isApiReady: boolean;
isConnected: boolean;
@@ -17,14 +17,14 @@ interface PolkadotContextType {
sudoKey: string | null;
}
-const PolkadotContext = createContext(undefined);
+const PezkuwiContext = createContext(undefined);
-interface PolkadotProviderProps {
+interface PezkuwiProviderProps {
children: ReactNode;
endpoint?: string;
}
-export const PolkadotProvider: React.FC = ({
+export const PezkuwiProvider: React.FC = ({
children,
endpoint = DEFAULT_ENDPOINT // Beta testnet RPC from shared config
}) => {
@@ -50,7 +50,7 @@ export const PolkadotProvider: React.FC = ({
}
};
- // Initialize Polkadot API with fallback endpoints
+ // Initialize Pezkuwi API with fallback endpoints
useEffect(() => {
const FALLBACK_ENDPOINTS = [
endpoint,
@@ -161,7 +161,7 @@ export const PolkadotProvider: React.FC = ({
restoreWallet();
}, []);
- // Connect wallet (Polkadot.js extension)
+ // Connect wallet (Pezkuwi.js extension)
const connectWallet = async () => {
try {
setError(null);
@@ -170,20 +170,20 @@ export const PolkadotProvider: React.FC = ({
const extensions = await web3Enable('PezkuwiChain');
if (extensions.length === 0) {
- setError('Please install Polkadot.js extension');
- window.open('https://polkadot.js.org/extension/', '_blank');
+ setError('Please install Pezkuwi.js extension');
+ window.open('https://js.pezkuwichain.io/extension/', '_blank');
return;
}
if (import.meta.env.DEV) {
- if (import.meta.env.DEV) console.log('✅ Polkadot.js extension enabled');
+ if (import.meta.env.DEV) console.log('✅ Pezkuwi.js extension enabled');
}
// Get accounts
const allAccounts = await web3Accounts();
if (allAccounts.length === 0) {
- setError('No accounts found. Please create an account in Polkadot.js extension');
+ setError('No accounts found. Please create an account in Pezkuwi.js extension');
return;
}
@@ -219,7 +219,7 @@ export const PolkadotProvider: React.FC = ({
}
};
- const value: PolkadotContextType = {
+ const value: PezkuwiContextType = {
api,
isApiReady,
isConnected: isApiReady, // Alias for backward compatibility
@@ -233,17 +233,17 @@ export const PolkadotProvider: React.FC = ({
};
return (
-
+
{children}
-
+
);
};
-// Hook to use Polkadot context
-export const usePolkadot = (): PolkadotContextType => {
- const context = useContext(PolkadotContext);
+// Hook to use Pezkuwi context
+export const usePezkuwi = (): PezkuwiContextType => {
+ const context = useContext(PezkuwiContext);
if (!context) {
- throw new Error('usePolkadot must be used within PolkadotProvider');
+ throw new Error('usePezkuwi must be used within PezkuwiProvider');
}
return context;
};
diff --git a/web/src/contexts/ReferralContext.tsx b/web/src/contexts/ReferralContext.tsx
index 120b01df..bb7b6ae4 100644
--- a/web/src/contexts/ReferralContext.tsx
+++ b/web/src/contexts/ReferralContext.tsx
@@ -1,5 +1,5 @@
import { createContext, useContext, useState, useEffect, ReactNode, useCallback } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { useToast } from '@/hooks/use-toast';
import {
@@ -21,7 +21,7 @@ interface ReferralContextValue {
const ReferralContext = createContext(undefined);
export function ReferralProvider({ children }: { children: ReactNode }) {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const { account } = useWallet();
const { toast } = useToast();
diff --git a/web/src/contexts/WalletContext.tsx b/web/src/contexts/WalletContext.tsx
index 1ad02bd3..f940062c 100644
--- a/web/src/contexts/WalletContext.tsx
+++ b/web/src/contexts/WalletContext.tsx
@@ -1,11 +1,11 @@
// ========================================
-// WalletContext - Polkadot.js Wallet Integration
+// WalletContext - Pezkuwi.js Wallet Integration
// ========================================
-// This context wraps PolkadotContext and provides wallet functionality
-// ⚠️ MIGRATION NOTE: This now uses Polkadot.js instead of MetaMask/Ethereum
+// This context wraps PezkuwiContext and provides wallet functionality
+// ⚠️ MIGRATION NOTE: This now uses Pezkuwi.js instead of MetaMask/Ethereum
import React, { createContext, useContext, useState, useEffect, useCallback } from 'react';
-import { usePolkadot } from './PolkadotContext';
+import { usePezkuwi } from './PezkuwiContext';
import { WALLET_ERRORS, formatBalance, ASSET_IDS } from '@pezkuwi/lib/wallet';
import type { InjectedAccountWithMeta } from '@pezkuwi/extension-inject/types';
import type { Signer } from '@pezkuwi/api/types';
@@ -25,7 +25,7 @@ interface WalletContextType {
balance: string; // Legacy: HEZ balance
balances: TokenBalances; // All token balances
error: string | null;
- signer: Signer | null; // Polkadot.js signer for transactions
+ signer: Signer | null; // Pezkuwi.js signer for transactions
connectWallet: () => Promise;
disconnect: () => void;
switchAccount: (account: InjectedAccountWithMeta) => void;
@@ -37,13 +37,13 @@ interface WalletContextType {
const WalletContext = createContext(undefined);
export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
- const polkadot = usePolkadot();
+ const pezkuwi = usePezkuwi();
if (import.meta.env.DEV) console.log('🎯 WalletProvider render:', {
- hasApi: !!polkadot.api,
- isApiReady: polkadot.isApiReady,
- selectedAccount: polkadot.selectedAccount?.address,
- accountsCount: polkadot.accounts.length
+ hasApi: !!pezkuwi.api,
+ isApiReady: pezkuwi.isApiReady,
+ selectedAccount: pezkuwi.selectedAccount?.address,
+ accountsCount: pezkuwi.accounts.length
});
const [balance, setBalance] = useState('0');
@@ -53,7 +53,7 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
// Fetch all token balances when account changes
const updateBalance = useCallback(async (address: string) => {
- if (!polkadot.api || !polkadot.isApiReady) {
+ if (!pezkuwi.api || !pezkuwi.isApiReady) {
if (import.meta.env.DEV) console.warn('API not ready, cannot fetch balance');
return;
}
@@ -62,14 +62,14 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
if (import.meta.env.DEV) console.log('💰 Fetching all token balances for:', address);
// Fetch HEZ (native token)
- const { data: nativeBalance } = await polkadot.api.query.system.account(address);
+ const { data: nativeBalance } = await pezkuwi.api.query.system.account(address);
const hezBalance = formatBalance(nativeBalance.free.toString());
setBalance(hezBalance); // Legacy support
// Fetch PEZ (Asset ID: 1)
let pezBalance = '0';
try {
- const pezData = await polkadot.api.query.assets.account(ASSET_IDS.PEZ, address);
+ const pezData = await pezkuwi.api.query.assets.account(ASSET_IDS.PEZ, address);
if (import.meta.env.DEV) console.log('📊 Raw PEZ data:', pezData.toHuman());
if (pezData.isSome) {
@@ -87,7 +87,7 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
// Fetch wHEZ (Asset ID: 0)
let whezBalance = '0';
try {
- const whezData = await polkadot.api.query.assets.account(ASSET_IDS.WHEZ, address);
+ const whezData = await pezkuwi.api.query.assets.account(ASSET_IDS.WHEZ, address);
if (import.meta.env.DEV) console.log('📊 Raw wHEZ data:', whezData.toHuman());
if (whezData.isSome) {
@@ -105,7 +105,7 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
// Fetch wUSDT (Asset ID: 2) - IMPORTANT: wUSDT has 6 decimals, not 12!
let wusdtBalance = '0';
try {
- const wusdtData = await polkadot.api.query.assets.account(ASSET_IDS.WUSDT, address);
+ const wusdtData = await pezkuwi.api.query.assets.account(ASSET_IDS.WUSDT, address);
if (import.meta.env.DEV) console.log('📊 Raw wUSDT data:', wusdtData.toHuman());
if (wusdtData.isSome) {
@@ -132,45 +132,45 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
if (import.meta.env.DEV) console.error('Failed to fetch balances:', err);
setError('Failed to fetch balances');
}
- }, [polkadot.api, polkadot.isApiReady]);
+ }, [pezkuwi.api, pezkuwi.isApiReady]);
- // Connect wallet (Polkadot.js extension)
+ // Connect wallet (Pezkuwi.js extension)
const connectWallet = useCallback(async () => {
try {
setError(null);
- await polkadot.connectWallet();
+ await pezkuwi.connectWallet();
} catch (err) {
if (import.meta.env.DEV) console.error('Wallet connection failed:', err);
const errorMessage = err instanceof Error ? err.message : WALLET_ERRORS.CONNECTION_FAILED;
setError(errorMessage);
}
- }, [polkadot]);
+ }, [pezkuwi]);
// Disconnect wallet
const disconnect = useCallback(() => {
- polkadot.disconnectWallet();
+ pezkuwi.disconnectWallet();
setBalance('0');
setError(null);
- }, [polkadot]);
+ }, [pezkuwi]);
// Switch account
const switchAccount = useCallback((account: InjectedAccountWithMeta) => {
- polkadot.setSelectedAccount(account);
- }, [polkadot]);
+ pezkuwi.setSelectedAccount(account);
+ }, [pezkuwi]);
// Sign and submit transaction
const signTransaction = useCallback(async (tx: unknown): Promise => {
- if (!polkadot.api || !polkadot.selectedAccount) {
+ if (!pezkuwi.api || !pezkuwi.selectedAccount) {
throw new Error(WALLET_ERRORS.API_NOT_READY);
}
try {
const { web3FromAddress } = await import('@pezkuwi/extension-dapp');
- const injector = await web3FromAddress(polkadot.selectedAccount.address);
+ const injector = await web3FromAddress(pezkuwi.selectedAccount.address);
// Sign and send transaction
const hash = await tx.signAndSend(
- polkadot.selectedAccount.address,
+ pezkuwi.selectedAccount.address,
{ signer: injector.signer }
);
@@ -179,24 +179,24 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
if (import.meta.env.DEV) console.error('Transaction failed:', error);
throw new Error(error instanceof Error ? error.message : WALLET_ERRORS.TRANSACTION_FAILED);
}
- }, [polkadot.api, polkadot.selectedAccount]);
+ }, [pezkuwi.api, pezkuwi.selectedAccount]);
// Sign message
const signMessage = useCallback(async (message: string): Promise => {
- if (!polkadot.selectedAccount) {
+ if (!pezkuwi.selectedAccount) {
throw new Error('No account selected');
}
try {
const { web3FromAddress } = await import('@pezkuwi/extension-dapp');
- const injector = await web3FromAddress(polkadot.selectedAccount.address);
+ const injector = await web3FromAddress(pezkuwi.selectedAccount.address);
if (!injector.signer.signRaw) {
throw new Error('Wallet does not support message signing');
}
const { signature } = await injector.signer.signRaw({
- address: polkadot.selectedAccount.address,
+ address: pezkuwi.selectedAccount.address,
data: message,
type: 'bytes'
});
@@ -206,16 +206,16 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
if (import.meta.env.DEV) console.error('Message signing failed:', error);
throw new Error(error instanceof Error ? error.message : 'Failed to sign message');
}
- }, [polkadot.selectedAccount]);
+ }, [pezkuwi.selectedAccount]);
// Get signer from extension when account changes
useEffect(() => {
const getSigner = async () => {
- if (polkadot.selectedAccount) {
+ if (pezkuwi.selectedAccount) {
try {
- const injector = await web3FromAddress(polkadot.selectedAccount.address);
+ const injector = await web3FromAddress(pezkuwi.selectedAccount.address);
setSigner(injector.signer);
- if (import.meta.env.DEV) console.log('✅ Signer obtained for', polkadot.selectedAccount.address);
+ if (import.meta.env.DEV) console.log('✅ Signer obtained for', pezkuwi.selectedAccount.address);
} catch (error) {
if (import.meta.env.DEV) console.error('Failed to get signer:', error);
setSigner(null);
@@ -226,42 +226,42 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
};
getSigner();
- }, [polkadot.selectedAccount]);
+ }, [pezkuwi.selectedAccount]);
// Update balance when selected account changes
useEffect(() => {
if (import.meta.env.DEV) console.log('🔄 WalletContext useEffect triggered!', {
- hasAccount: !!polkadot.selectedAccount,
- isApiReady: polkadot.isApiReady,
- address: polkadot.selectedAccount?.address
+ hasAccount: !!pezkuwi.selectedAccount,
+ isApiReady: pezkuwi.isApiReady,
+ address: pezkuwi.selectedAccount?.address
});
- if (polkadot.selectedAccount && polkadot.isApiReady) {
- updateBalance(polkadot.selectedAccount.address);
+ if (pezkuwi.selectedAccount && pezkuwi.isApiReady) {
+ updateBalance(pezkuwi.selectedAccount.address);
}
- }, [polkadot.selectedAccount, polkadot.isApiReady, updateBalance]);
+ }, [pezkuwi.selectedAccount, pezkuwi.isApiReady, updateBalance]);
- // Sync error state with PolkadotContext
+ // Sync error state with PezkuwiContext
useEffect(() => {
- if (polkadot.error) {
- setError(polkadot.error);
+ if (pezkuwi.error) {
+ setError(pezkuwi.error);
}
- }, [polkadot.error]);
+ }, [pezkuwi.error]);
// Refresh balances for current account
const refreshBalances = useCallback(async () => {
- if (polkadot.selectedAccount) {
- await updateBalance(polkadot.selectedAccount.address);
+ if (pezkuwi.selectedAccount) {
+ await updateBalance(pezkuwi.selectedAccount.address);
}
- }, [polkadot.selectedAccount, updateBalance]);
+ }, [pezkuwi.selectedAccount, updateBalance]);
const value: WalletContextType = {
- isConnected: polkadot.accounts.length > 0,
- account: polkadot.selectedAccount?.address || null,
- accounts: polkadot.accounts,
+ isConnected: pezkuwi.accounts.length > 0,
+ account: pezkuwi.selectedAccount?.address || null,
+ accounts: pezkuwi.accounts,
balance,
balances,
- error: error || polkadot.error,
+ error: error || pezkuwi.error,
signer,
connectWallet,
disconnect,
diff --git a/web/src/hooks/useDelegation.ts b/web/src/hooks/useDelegation.ts
index 8cd6254a..8455b552 100644
--- a/web/src/hooks/useDelegation.ts
+++ b/web/src/hooks/useDelegation.ts
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
export interface Delegate {
id: string;
@@ -41,7 +41,7 @@ export interface DelegationStats {
}
export function useDelegation(userAddress?: string) {
- const { api, isConnected } = usePolkadot();
+ const { api, isConnected } = usePezkuwi();
const [delegates, setDelegates] = useState([]);
const [userDelegations, setUserDelegations] = useState([]);
const [stats, setStats] = useState({
diff --git a/web/src/hooks/useGovernance.ts b/web/src/hooks/useGovernance.ts
index 7383270a..ca233a7d 100644
--- a/web/src/hooks/useGovernance.ts
+++ b/web/src/hooks/useGovernance.ts
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
export interface Proposal {
id: string;
@@ -28,7 +28,7 @@ export interface Referendum {
}
export function useGovernance() {
- const { api, isConnected } = usePolkadot();
+ const { api, isConnected } = usePezkuwi();
const [proposals, setProposals] = useState([]);
const [referenda, setReferenda] = useState([]);
const [loading, setLoading] = useState(true);
diff --git a/web/src/hooks/useTreasury.ts b/web/src/hooks/useTreasury.ts
index 6381126a..40208bd1 100644
--- a/web/src/hooks/useTreasury.ts
+++ b/web/src/hooks/useTreasury.ts
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
export interface TreasuryMetrics {
totalBalance: number;
@@ -21,7 +21,7 @@ export interface TreasuryProposal {
}
export function useTreasury() {
- const { api, isConnected } = usePolkadot();
+ const { api, isConnected } = usePezkuwi();
const [metrics, setMetrics] = useState({
totalBalance: 0,
monthlyIncome: 0,
diff --git a/web/src/pages/Citizens.tsx b/web/src/pages/Citizens.tsx
index cdc7ebd7..cc582111 100644
--- a/web/src/pages/Citizens.tsx
+++ b/web/src/pages/Citizens.tsx
@@ -4,7 +4,7 @@ import { Card, CardContent } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@/components/ui/dialog';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useAuth } from '@/contexts/AuthContext';
import { useDashboard } from '@/contexts/DashboardContext';
import { FileText, Building2, Home, Bell, ChevronLeft, ChevronRight, Upload, User, Sun, ShieldCheck } from 'lucide-react';
@@ -36,7 +36,7 @@ const announcements = [
];
export default function Citizens() {
- const { selectedAccount } = usePolkadot();
+ const { selectedAccount } = usePezkuwi();
const { user } = useAuth();
const navigate = useNavigate();
const { toast } = useToast();
diff --git a/web/src/pages/Dashboard.tsx b/web/src/pages/Dashboard.tsx
index 1afdde45..88332941 100644
--- a/web/src/pages/Dashboard.tsx
+++ b/web/src/pages/Dashboard.tsx
@@ -5,7 +5,7 @@ import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { supabase } from '@/lib/supabase';
import { User, Mail, Phone, Globe, MapPin, Calendar, Shield, AlertCircle, ArrowLeft, Award, Users, TrendingUp, UserMinus } from 'lucide-react';
import { useToast } from '@/hooks/use-toast';
@@ -18,7 +18,7 @@ import { ReferralDashboard } from '@/components/referral/ReferralDashboard';
export default function Dashboard() {
const { user } = useAuth();
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const navigate = useNavigate();
const { toast } = useToast();
const [profile, setProfile] = useState | null>(null);
diff --git a/web/src/pages/EducationPlatform.tsx b/web/src/pages/EducationPlatform.tsx
index ae77be15..869f48a7 100644
--- a/web/src/pages/EducationPlatform.tsx
+++ b/web/src/pages/EducationPlatform.tsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { GraduationCap } from 'lucide-react';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { CourseList } from '@/components/perwerde/CourseList';
import { StudentDashboard } from '@/components/perwerde/StudentDashboard';
@@ -14,7 +14,7 @@ import { Button } from '@/components/ui/button';
export default function EducationPlatform() {
const { user } = useAuth();
- const { selectedAccount } = usePolkadot();
+ const { selectedAccount } = usePezkuwi();
const [enrollments, setEnrollments] = useState([]);
const [loading, setLoading] = useState(true);
const [activeTab, setActiveTab] = useState('courses');
diff --git a/web/src/pages/Elections.tsx b/web/src/pages/Elections.tsx
index e7067f4c..3b926c6f 100644
--- a/web/src/pages/Elections.tsx
+++ b/web/src/pages/Elections.tsx
@@ -28,7 +28,7 @@ import {
Scale,
Building,
} from 'lucide-react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from '@/components/ui/use-toast';
import { LoadingState } from '@pezkuwi/components/AsyncComponent';
import {
@@ -50,7 +50,7 @@ import {
// import { web3FromAddress } from '@pezkuwi/extension-dapp';
export default function Elections() {
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const [loading, setLoading] = useState(true);
const [elections, setElections] = useState([]);
diff --git a/web/src/pages/Explorer.tsx b/web/src/pages/Explorer.tsx
index d7c345f9..3f69ca00 100644
--- a/web/src/pages/Explorer.tsx
+++ b/web/src/pages/Explorer.tsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import Layout from '@/components/Layout';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
@@ -64,7 +64,7 @@ interface NetworkStats {
const Explorer: React.FC = () => {
const navigate = useNavigate();
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const [stats, setStats] = useState({
bestBlock: 0,
diff --git a/web/src/pages/GovEntrance.tsx b/web/src/pages/GovEntrance.tsx
index 4217a910..5d102bed 100644
--- a/web/src/pages/GovEntrance.tsx
+++ b/web/src/pages/GovEntrance.tsx
@@ -20,7 +20,7 @@ import {
import { useToast } from '@/hooks/use-toast';
export default function GovEntrance() {
- // usePolkadot removed
+ // usePezkuwi removed
const { nftDetails, kycStatus, loading: dashboardLoading } = useDashboard();
const navigate = useNavigate();
const { toast } = useToast();
diff --git a/web/src/pages/Login.tsx b/web/src/pages/Login.tsx
index c8e9363a..cf783d28 100644
--- a/web/src/pages/Login.tsx
+++ b/web/src/pages/Login.tsx
@@ -1,7 +1,7 @@
import { useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Label } from '@/components/ui/label';
@@ -16,7 +16,7 @@ import { useTranslation } from 'react-i18next';
const Login: React.FC = () => {
const { t } = useTranslation();
const navigate = useNavigate();
- const { connectWallet, selectedAccount } = usePolkadot();
+ const { connectWallet, selectedAccount } = usePezkuwi();
const { signIn, signUp } = useAuth();
const [showPassword, setShowPassword] = useState(false);
const [rememberMe, setRememberMe] = useState(false);
diff --git a/web/src/pages/P2PTrade.tsx b/web/src/pages/P2PTrade.tsx
index 18ab07d1..57d7b0c8 100644
--- a/web/src/pages/P2PTrade.tsx
+++ b/web/src/pages/P2PTrade.tsx
@@ -33,7 +33,7 @@ import {
Star,
} from 'lucide-react';
import { useAuth } from '@/contexts/AuthContext';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { toast } from 'sonner';
import { supabase } from '@/lib/supabase';
import {
@@ -73,7 +73,7 @@ export default function P2PTrade() {
const { tradeId } = useParams<{ tradeId: string }>();
const navigate = useNavigate();
const { user } = useAuth();
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const [trade, setTrade] = useState(null);
const [loading, setLoading] = useState(true);
diff --git a/web/src/pages/Presale.tsx b/web/src/pages/Presale.tsx
index 18a1aa87..9180cf50 100644
--- a/web/src/pages/Presale.tsx
+++ b/web/src/pages/Presale.tsx
@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
@@ -12,7 +12,7 @@ import { toast } from 'sonner';
export default function Presale() {
const { t } = useTranslation();
- const { api, selectedAccount, isApiReady } = usePolkadot();
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
const { balances } = useWallet();
const [wusdtAmount, setWusdtAmount] = useState('');
diff --git a/web/src/pages/WalletDashboard.tsx b/web/src/pages/WalletDashboard.tsx
index b4cb6256..606d13a7 100644
--- a/web/src/pages/WalletDashboard.tsx
+++ b/web/src/pages/WalletDashboard.tsx
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { AccountBalance } from '@/components/AccountBalance';
import { TransferModal } from '@/components/TransferModal';
import { ReceiveModal } from '@/components/ReceiveModal';
@@ -24,7 +24,7 @@ interface Transaction {
const WalletDashboard: React.FC = () => {
const navigate = useNavigate();
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const [isTransferModalOpen, setIsTransferModalOpen] = useState(false);
const [isReceiveModalOpen, setIsReceiveModalOpen] = useState(false);
const [isHistoryModalOpen, setIsHistoryModalOpen] = useState(false);
diff --git a/web/src/pages/citizens/CitizensIssues.tsx b/web/src/pages/citizens/CitizensIssues.tsx
index 3f69a754..75ffb799 100644
--- a/web/src/pages/citizens/CitizensIssues.tsx
+++ b/web/src/pages/citizens/CitizensIssues.tsx
@@ -8,7 +8,7 @@ import { Textarea } from '@/components/ui/textarea';
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@/components/ui/dialog';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useAuth } from '@/contexts/AuthContext';
import { useDashboard } from '@/contexts/DashboardContext';
import {
@@ -86,7 +86,7 @@ interface LegislationProposal {
}
export default function CitizensIssues() {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const {} = useAuth();
const {} = useDashboard();
const navigate = useNavigate();
diff --git a/web/src/pages/citizens/GovernmentEntrance.tsx b/web/src/pages/citizens/GovernmentEntrance.tsx
index a75b1145..f97f923a 100644
--- a/web/src/pages/citizens/GovernmentEntrance.tsx
+++ b/web/src/pages/citizens/GovernmentEntrance.tsx
@@ -7,7 +7,7 @@ import { Input } from '@/components/ui/input';
import { Textarea } from '@/components/ui/textarea';
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@/components/ui/dialog';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useDashboard } from '@/contexts/DashboardContext';
import {
ArrowLeft,
@@ -79,7 +79,7 @@ const GOVERNMENT_AUTHORIZED_TIKIS = [
];
export default function GovernmentEntrance() {
- const { api, isApiReady, selectedAccount } = usePolkadot();
+ const { api, isApiReady, selectedAccount } = usePezkuwi();
const { nftDetails, loading: dashboardLoading } = useDashboard();
const navigate = useNavigate();
const { toast } = useToast();
diff --git a/web/src/pages/launchpad/CreatePresale.tsx b/web/src/pages/launchpad/CreatePresale.tsx
index 2e966d5c..42c96190 100644
--- a/web/src/pages/launchpad/CreatePresale.tsx
+++ b/web/src/pages/launchpad/CreatePresale.tsx
@@ -1,5 +1,5 @@
import { useState } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useNavigate } from 'react-router-dom';
import { Card } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
@@ -12,7 +12,7 @@ import { ArrowLeft, Loader2, AlertCircle, Rocket } from 'lucide-react';
import { toast } from 'sonner';
export default function CreatePresale() {
- const { api, selectedAccount } = usePolkadot();
+ const { api, selectedAccount } = usePezkuwi();
const navigate = useNavigate();
const [creating, setCreating] = useState(false);
diff --git a/web/src/pages/launchpad/PresaleDetail.tsx b/web/src/pages/launchpad/PresaleDetail.tsx
index 6d99c8ac..12ee66d8 100644
--- a/web/src/pages/launchpad/PresaleDetail.tsx
+++ b/web/src/pages/launchpad/PresaleDetail.tsx
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useWallet } from '@/contexts/WalletContext';
import { useParams, useNavigate } from 'react-router-dom';
import { Card } from '@/components/ui/card';
@@ -38,7 +38,7 @@ interface PresaleData {
export default function PresaleDetail() {
const { id } = useParams();
- const { api, selectedAccount, isApiReady } = usePolkadot();
+ const { api, selectedAccount, isApiReady } = usePezkuwi();
const { balances } = useWallet();
const navigate = useNavigate();
diff --git a/web/src/pages/launchpad/PresaleList.tsx b/web/src/pages/launchpad/PresaleList.tsx
index 3512e932..d188ceae 100644
--- a/web/src/pages/launchpad/PresaleList.tsx
+++ b/web/src/pages/launchpad/PresaleList.tsx
@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
-import { usePolkadot } from '@/contexts/PolkadotContext';
+import { usePezkuwi } from '@/contexts/PezkuwiContext';
import { useNavigate } from 'react-router-dom';
import { Card } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
@@ -29,7 +29,7 @@ interface PresaleInfo {
export default function PresaleList() {
const { t } = useTranslation();
- const { api, isApiReady } = usePolkadot();
+ const { api, isApiReady } = usePezkuwi();
const navigate = useNavigate();
const [presales, setPresales] = useState([]);
diff --git a/web/supabase/migrations/20241117054602_p2p_rpc_functions.sql b/web/supabase/migrations/20241117054602_p2p_rpc_functions.sql
index c479c715..2fb8439f 100644
--- a/web/supabase/migrations/20241117054602_p2p_rpc_functions.sql
+++ b/web/supabase/migrations/20241117054602_p2p_rpc_functions.sql
@@ -283,7 +283,17 @@ BEGIN
RETURN QUERY
SELECT
pm.method_name,
- v_offer.payment_details_encrypted::JSONB -- TODO: Decrypt
+ CASE
+ WHEN v_offer.payment_details_encrypted IS NOT NULL THEN
+ pgsodium.crypto_aead_aes256gcm_decrypt(
+ pgsodium.url_decode((v_offer.payment_details_encrypted->>'ciphertext')::TEXT),
+ NULL, -- No associated data used in this context
+ pgsodium.url_decode((v_offer.payment_details_encrypted->>'nonce')::TEXT),
+ pg_catalog.get_secret_variable('app.app_encryption_key')::BYTEA
+ )::TEXT::JSONB
+ ELSE
+ NULL
+ END AS payment_details
FROM public.payment_methods pm
WHERE pm.id = v_offer.payment_method_id;
END;
diff --git a/web/supabase/migrations/20260110120000_create_get_admins_function.sql b/web/supabase/migrations/20260110120000_create_get_admins_function.sql
new file mode 100644
index 00000000..85663322
--- /dev/null
+++ b/web/supabase/migrations/20260110120000_create_get_admins_function.sql
@@ -0,0 +1,11 @@
+-- web/supabase/migrations/20260110120000_create_get_admins_function.sql
+
+CREATE OR REPLACE FUNCTION public.get_admin_user_ids()
+RETURNS TABLE(user_id UUID) AS $$
+BEGIN
+ RETURN QUERY
+ SELECT ar.user_id
+ FROM public.admin_roles AS ar
+ WHERE ar.role IN ('admin', 'super_admin');
+END;
+$$ LANGUAGE plpgsql STABLE SECURITY DEFINER;