├── .prettierrc ├── tsconfig.build.json ├── nest-cli.json ├── src ├── main.ts ├── config │ ├── tenderly.config.ts │ └── aave.config.ts ├── route │ ├── route.service.ts │ └── route.controller.ts ├── simulation │ ├── simulation.interface.ts │ └── tenderly.simulation.ts ├── yield │ ├── yield.controller.ts │ └── yield.service.ts ├── app.module.ts └── protocol │ ├── protocol.interface.ts │ └── aave.protocol.ts ├── tsconfig.json ├── .gitignore ├── eslint.config.mjs ├── package.json ├── REFLECTION.md ├── README.md ├── DESIGN.md └── pnpm-lock.yaml /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all" 4 | } 5 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /nest-cli.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/nest-cli", 3 | "collection": "@nestjs/schematics", 4 | "sourceRoot": "src", 5 | "compilerOptions": { 6 | "deleteOutDir": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { NestFactory } from '@nestjs/core'; 2 | import { AppModule } from './app.module'; 3 | 4 | async function bootstrap() { 5 | const app = await NestFactory.create(AppModule); 6 | await app.listen(process.env.PORT ?? 3000); 7 | } 8 | 9 | bootstrap().catch((error) => { 10 | console.error(error); 11 | process.exit(1); 12 | }); 13 | -------------------------------------------------------------------------------- /src/config/tenderly.config.ts: -------------------------------------------------------------------------------- 1 | export const TENDERLY_API_URL = 'https://api.tenderly.co/api/v1'; 2 | 3 | export const TENDERLY_ACCESS_TOKEN = process.env.TENDERLY_ACCESS_TOKEN || ''; 4 | 5 | export const TENDERLY_PROJECT_SLUG = process.env.TENDERLY_PROJECT_SLUG || ''; 6 | 7 | export const TENDERLY_USERNAME = process.env.TENDERLY_USERNAME || ''; 8 | 9 | export const CHAIN_ID_MAP: Record = { 10 | base: '8453', 11 | }; 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "nodenext", 4 | "moduleResolution": "nodenext", 5 | "resolvePackageJsonExports": true, 6 | "esModuleInterop": true, 7 | "isolatedModules": true, 8 | "declaration": true, 9 | "removeComments": true, 10 | "emitDecoratorMetadata": true, 11 | "experimentalDecorators": true, 12 | "allowSyntheticDefaultImports": true, 13 | "target": "ES2023", 14 | "sourceMap": true, 15 | "outDir": "./dist", 16 | "baseUrl": "./", 17 | "incremental": true, 18 | "skipLibCheck": true, 19 | "strictNullChecks": true, 20 | "forceConsistentCasingInFileNames": true, 21 | "noImplicitAny": false, 22 | "strictBindCallApply": false, 23 | "noFallthroughCasesInSwitch": false 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/route/route.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable, Inject } from '@nestjs/common'; 2 | import type { 3 | IProtocol, 4 | DepositRouteRequest, 5 | DepositRouteResponse, 6 | } from '../protocol/protocol.interface'; 7 | 8 | export type { 9 | DepositRouteRequest, 10 | DepositRouteResponse, 11 | } from '../protocol/protocol.interface'; 12 | 13 | @Injectable() 14 | export class RouteService { 15 | constructor(@Inject('PROTOCOL') private readonly protocol: IProtocol) {} 16 | 17 | /** 18 | * Builds a deposit route payload using the configured protocol 19 | * @param request Deposit request with asset and amount 20 | * @returns Deposit route payload with transaction details 21 | */ 22 | async buildDepositRoute( 23 | request: DepositRouteRequest, 24 | ): Promise { 25 | return this.protocol.buildDepositRoute(request); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/simulation/simulation.interface.ts: -------------------------------------------------------------------------------- 1 | export interface SimulationResult { 2 | success: boolean; 3 | gasUsed?: string; 4 | error?: string; 5 | logs?: any[]; 6 | trace?: any; 7 | } 8 | 9 | export interface SimulationRequest { 10 | chain: string; 11 | targetContract: string; 12 | calldata: string; 13 | from?: string; 14 | value?: string; 15 | assetAddress?: string; 16 | amount?: string; 17 | } 18 | 19 | export interface ISimulationProvider { 20 | /** 21 | * Simulates a transaction 22 | * @param request Simulation request with transaction details 23 | * @returns Simulation result with success status and details 24 | */ 25 | simulate(request: SimulationRequest): Promise; 26 | 27 | /** 28 | * Gets the simulation provider name 29 | * @returns Provider name (e.g., "tenderly") 30 | */ 31 | getProviderName(): string; 32 | } 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | /dist 3 | /node_modules 4 | /build 5 | 6 | # Logs 7 | logs 8 | *.log 9 | npm-debug.log* 10 | pnpm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | lerna-debug.log* 14 | 15 | # OS 16 | .DS_Store 17 | 18 | # Tests 19 | /coverage 20 | /.nyc_output 21 | 22 | # IDEs and editors 23 | /.idea 24 | .project 25 | .classpath 26 | .c9/ 27 | *.launch 28 | .settings/ 29 | *.sublime-workspace 30 | 31 | # IDE - VSCode 32 | .vscode/* 33 | !.vscode/settings.json 34 | !.vscode/tasks.json 35 | !.vscode/launch.json 36 | !.vscode/extensions.json 37 | 38 | # dotenv environment variable files 39 | .env 40 | .env.development.local 41 | .env.test.local 42 | .env.production.local 43 | .env.local 44 | 45 | # temp directory 46 | .temp 47 | .tmp 48 | 49 | # Runtime data 50 | pids 51 | *.pid 52 | *.seed 53 | *.pid.lock 54 | 55 | # Diagnostic reports (https://nodejs.org/api/report.html) 56 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 57 | -------------------------------------------------------------------------------- /src/yield/yield.controller.ts: -------------------------------------------------------------------------------- 1 | import { Controller, Get, HttpException, HttpStatus } from '@nestjs/common'; 2 | import { YieldService } from './yield.service'; 3 | 4 | @Controller() 5 | export class YieldController { 6 | constructor(private readonly yieldService: YieldService) {} 7 | 8 | @Get('yield') 9 | async getYield() { 10 | try { 11 | const apy = await this.yieldService.getCurrentAPY(); 12 | const timestamp = this.yieldService.getCurrentTimestamp(); 13 | 14 | return { 15 | protocol: this.yieldService.getProtocolName(), 16 | chain: this.yieldService.getChainName(), 17 | apy, 18 | timestamp, 19 | }; 20 | } catch (error) { 21 | throw new HttpException( 22 | { 23 | statusCode: HttpStatus.INTERNAL_SERVER_ERROR, 24 | message: error.message || 'Failed to fetch yield data', 25 | }, 26 | HttpStatus.INTERNAL_SERVER_ERROR, 27 | ); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/yield/yield.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable, Inject } from '@nestjs/common'; 2 | import type { IProtocol } from '../protocol/protocol.interface'; 3 | 4 | @Injectable() 5 | export class YieldService { 6 | constructor(@Inject('PROTOCOL') private readonly protocol: IProtocol) {} 7 | 8 | /** 9 | * Fetches the current APY from the configured protocol 10 | * @returns APY as a percentage string (e.g., "3.17") 11 | */ 12 | async getCurrentAPY(): Promise { 13 | return this.protocol.getCurrentAPY(); 14 | } 15 | 16 | /** 17 | * Gets the protocol name 18 | * @returns Protocol name (e.g., "AaveV3") 19 | */ 20 | getProtocolName(): string { 21 | return this.protocol.getProtocolName(); 22 | } 23 | 24 | /** 25 | * Gets the chain name 26 | * @returns Chain name (e.g., "base") 27 | */ 28 | getChainName(): string { 29 | return this.protocol.getChainName(); 30 | } 31 | 32 | getCurrentTimestamp(): number { 33 | return Math.floor(Date.now() / 1000); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import eslint from '@eslint/js'; 3 | import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; 4 | import globals from 'globals'; 5 | import tseslint from 'typescript-eslint'; 6 | 7 | export default tseslint.config( 8 | { 9 | ignores: ['eslint.config.mjs'], 10 | }, 11 | eslint.configs.recommended, 12 | ...tseslint.configs.recommendedTypeChecked, 13 | eslintPluginPrettierRecommended, 14 | { 15 | languageOptions: { 16 | globals: { 17 | ...globals.node, 18 | ...globals.jest, 19 | }, 20 | sourceType: 'commonjs', 21 | parserOptions: { 22 | projectService: true, 23 | tsconfigRootDir: import.meta.dirname, 24 | }, 25 | }, 26 | }, 27 | { 28 | rules: { 29 | '@typescript-eslint/no-explicit-any': 'off', 30 | '@typescript-eslint/no-floating-promises': 'warn', 31 | '@typescript-eslint/no-unsafe-argument': 'warn', 32 | "prettier/prettier": ["error", { endOfLine: "auto" }], 33 | }, 34 | }, 35 | ); 36 | -------------------------------------------------------------------------------- /src/app.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { ConfigModule } from '@nestjs/config'; 3 | import { YieldController } from './yield/yield.controller'; 4 | import { YieldService } from './yield/yield.service'; 5 | import { RouteController } from './route/route.controller'; 6 | import { RouteService } from './route/route.service'; 7 | import { AaveProtocol } from './protocol/aave.protocol'; 8 | import { TenderlySimulationProvider } from './simulation/tenderly.simulation'; 9 | 10 | @Module({ 11 | imports: [ 12 | ConfigModule.forRoot({ 13 | isGlobal: true, 14 | envFilePath: '.env', 15 | }), 16 | ], 17 | controllers: [YieldController, RouteController], 18 | providers: [ 19 | YieldService, 20 | RouteService, 21 | AaveProtocol, 22 | TenderlySimulationProvider, 23 | { 24 | provide: 'PROTOCOL', 25 | useClass: AaveProtocol, 26 | }, 27 | { 28 | provide: 'SIMULATION_PROVIDER', 29 | useClass: TenderlySimulationProvider, 30 | }, 31 | ], 32 | }) 33 | export class AppModule {} 34 | -------------------------------------------------------------------------------- /src/protocol/protocol.interface.ts: -------------------------------------------------------------------------------- 1 | export interface DepositRouteRequest { 2 | asset: string; 3 | amount: string; 4 | } 5 | 6 | export interface DepositRouteResponse { 7 | protocol: string; 8 | chain: string; 9 | asset: string; 10 | amount: string; 11 | targetContract: string; 12 | calldata: string; 13 | simulation: { 14 | type: string; 15 | status: string; 16 | success?: boolean; 17 | gasUsed?: string; 18 | error?: string; 19 | }; 20 | } 21 | 22 | export interface IProtocol { 23 | /** 24 | * Gets the current APY for the protocol 25 | * @returns APY as a percentage string (e.g., "3.17") 26 | */ 27 | getCurrentAPY(): Promise; 28 | 29 | /** 30 | * Gets the protocol name 31 | * @returns Protocol name (e.g., "AaveV3") 32 | */ 33 | getProtocolName(): string; 34 | 35 | /** 36 | * Gets the chain name 37 | * @returns Chain name (e.g., "base") 38 | */ 39 | getChainName(): string; 40 | 41 | /** 42 | * Builds a deposit route payload for depositing into the protocol 43 | * @param request Deposit request with asset and amount 44 | * @returns Deposit route payload with transaction details 45 | */ 46 | buildDepositRoute( 47 | request: DepositRouteRequest, 48 | ): Promise; 49 | } 50 | -------------------------------------------------------------------------------- /src/route/route.controller.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Controller, 3 | Post, 4 | Body, 5 | HttpException, 6 | HttpStatus, 7 | } from '@nestjs/common'; 8 | import { RouteService } from './route.service'; 9 | import type { DepositRouteRequest } from './route.service'; 10 | 11 | @Controller() 12 | export class RouteController { 13 | constructor(private readonly routeService: RouteService) {} 14 | 15 | @Post('route-deposit') 16 | async routeDeposit(@Body() body: DepositRouteRequest) { 17 | try { 18 | if (!body.asset || !body.amount) { 19 | throw new HttpException( 20 | { 21 | statusCode: HttpStatus.BAD_REQUEST, 22 | message: 'Missing required fields: asset and amount are required', 23 | }, 24 | HttpStatus.BAD_REQUEST, 25 | ); 26 | } 27 | 28 | const route = await this.routeService.buildDepositRoute(body); 29 | return route; 30 | } catch (error) { 31 | const statusCode = 32 | error instanceof HttpException 33 | ? error.getStatus() 34 | : HttpStatus.INTERNAL_SERVER_ERROR; 35 | 36 | throw new HttpException( 37 | { 38 | statusCode, 39 | message: error.message || 'Failed to build deposit route', 40 | }, 41 | statusCode, 42 | ); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yo-takehome", 3 | "version": "0.0.1", 4 | "description": "", 5 | "author": "erosemberg", 6 | "private": true, 7 | "license": "UNLICENSED", 8 | "scripts": { 9 | "build": "nest build", 10 | "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", 11 | "start": "nest start", 12 | "start:dev": "nest start --watch", 13 | "start:debug": "nest start --debug --watch", 14 | "start:prod": "node dist/main", 15 | "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix" 16 | }, 17 | "dependencies": { 18 | "@nestjs/common": "^11.0.1", 19 | "@nestjs/config": "^4.0.2", 20 | "@nestjs/core": "^11.0.1", 21 | "@nestjs/platform-express": "^11.0.1", 22 | "reflect-metadata": "^0.2.2", 23 | "viem": "^2.41.2" 24 | }, 25 | "devDependencies": { 26 | "@eslint/eslintrc": "^3.2.0", 27 | "@eslint/js": "^9.18.0", 28 | "@nestjs/cli": "^11.0.0", 29 | "@nestjs/schematics": "^11.0.0", 30 | "@nestjs/testing": "^11.0.1", 31 | "@types/express": "^5.0.0", 32 | "@types/jest": "^30.0.0", 33 | "@types/node": "^22.10.7", 34 | "@types/supertest": "^6.0.2", 35 | "eslint": "^9.18.0", 36 | "eslint-config-prettier": "^10.0.1", 37 | "eslint-plugin-prettier": "^5.2.2", 38 | "globals": "^16.0.0", 39 | "prettier": "^3.4.2", 40 | "source-map-support": "^0.5.21", 41 | "ts-loader": "^9.5.2", 42 | "ts-node": "^10.9.2", 43 | "tsconfig-paths": "^4.2.0", 44 | "typescript": "^5.7.3", 45 | "typescript-eslint": "^8.20.0" 46 | } 47 | } -------------------------------------------------------------------------------- /src/config/aave.config.ts: -------------------------------------------------------------------------------- 1 | export const AAVE_V3_POOL_ADDRESS = 2 | '0xA238Dd80C259a72e81d7e4664a9801593F98d1c5'; 3 | 4 | export const USDC_ADDRESS = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'; 5 | 6 | export const BASE_RPC_URL = 7 | process.env.BASE_RPC_URL || 'https://mainnet.base.org'; 8 | 9 | export const AAVE_V3_POOL_ABI = [ 10 | { 11 | name: 'supply', 12 | type: 'function', 13 | stateMutability: 'nonpayable', 14 | inputs: [ 15 | { name: 'asset', type: 'address' }, 16 | { name: 'amount', type: 'uint256' }, 17 | { name: 'onBehalfOf', type: 'address' }, 18 | { name: 'referralCode', type: 'uint16' }, 19 | ], 20 | outputs: [], 21 | }, 22 | { 23 | name: 'getReserveData', 24 | type: 'function', 25 | stateMutability: 'view', 26 | inputs: [{ name: 'asset', type: 'address' }], 27 | outputs: [ 28 | { 29 | components: [ 30 | { name: 'configuration', type: 'uint256' }, 31 | { name: 'liquidityIndex', type: 'uint128' }, 32 | { name: 'currentLiquidityRate', type: 'uint128' }, 33 | { name: 'variableBorrowIndex', type: 'uint128' }, 34 | { name: 'currentVariableBorrowRate', type: 'uint128' }, 35 | { name: 'currentStableBorrowRate', type: 'uint128' }, 36 | { name: 'lastUpdateTimestamp', type: 'uint40' }, 37 | { name: 'id', type: 'uint16' }, 38 | { name: 'aTokenAddress', type: 'address' }, 39 | { name: 'stableDebtTokenAddress', type: 'address' }, 40 | { name: 'variableDebtTokenAddress', type: 'address' }, 41 | { name: 'interestStrategyAddress', type: 'address' }, 42 | { name: 'accruedToTreasury', type: 'uint128' }, 43 | { name: 'unbacked', type: 'uint128' }, 44 | { name: 'isolationModeTotalDebt', type: 'uint128' }, 45 | ], 46 | name: 'reserveData', 47 | type: 'tuple', 48 | }, 49 | ], 50 | }, 51 | ] as const; 52 | -------------------------------------------------------------------------------- /REFLECTION.md: -------------------------------------------------------------------------------- 1 | # Reflection 2 | 3 | ## Intentional Simplifications 4 | 5 | 1. **No Caching**: Yield data is fetched on every request. In production, would add Redis/in-memory cache with 30-60s TTL. 6 | 7 | 2. **Single Asset**: Only supports USDC. Real implementation would support multiple assets with proper address mapping per chain. 8 | 9 | 3. **No RPC Failover**: Single RPC endpoint. Production would have multiple providers with automatic failover. 10 | 11 | 4. **Hardcoded Addresses**: Contract addresses are in config file rather than fetched dynamically. Would use a registry or subgraph for dynamic discovery. 12 | 13 | 5. **No Error Recovery**: Basic error handling. Would add retries, circuit breakers, and graceful degradation. 14 | 15 | ## If I Had Another Day 16 | 17 | **Priority 1**: Add proper caching layer (Redis) to reduce RPC calls and improve response times. 18 | 19 | **Priority 2**: Implement transaction simulation using `eth_call` to validate routes before returning them. 20 | 21 | **Priority 3**: Add RPC failover with multiple providers and retry logic. 22 | 23 | **Priority 4**: Support multiple assets (USDT, DAI) with proper address resolution. 24 | 25 | ## Biggest Risks / Failure Points 26 | 27 | 1. **RPC Reliability**: Single point of failure. If the RPC goes down, entire service fails. Need multiple providers with failover. 28 | 29 | 2. **Stale Yield Data**: No caching means every request hits the RPC. If RPC is slow, users get stale data. Also, yield rates can change between when route is built and when it's executed. 30 | 31 | 3. **No Transaction Validation**: Routes are built without checking if the transaction would actually succeed (balance, allowance, protocol state). Could lead to failed transactions on frontend. 32 | 33 | 4. **Address Hardcoding**: Contract addresses are hardcoded. If market upgrades or deploys new pools, service breaks. Need dynamic discovery or versioning. 34 | 35 | 5. **Rate Limiting**: No rate limiting on API. Could be abused or hit RPC rate limits. Need request throttling. 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # YO Backend Web3 Engineer Takehome 2 | 3 | A NestJS backend service that fetches yield data from Aave V3 on Base chain and generates deposit route payloads. 4 | 5 | ## Features 6 | 7 | - **GET /yield**: Returns current APY for USDC on Aave V3 Base 8 | - **POST /route-deposit**: Generates a deposit transaction route payload for depositing into Aave V3 9 | 10 | ## Prerequisites 11 | 12 | - Node.js 18+ 13 | - pnpm (or npm/yarn) 14 | 15 | ## Installation 16 | 17 | ```bash 18 | # Install dependencies 19 | pnpm install 20 | ``` 21 | 22 | ## Environment Variables 23 | 24 | Create a `.env` file in the root directory (optional): 25 | 26 | ```bash 27 | # Base chain RPC URL (defaults to public RPC if not set) 28 | BASE_RPC_URL=https://mainnet.base.org 29 | # Server port (defaults to 3000) 30 | PORT=3000 31 | ``` 32 | 33 | ## Running the Service 34 | 35 | ```bash 36 | # Development mode (with hot reload) 37 | pnpm run start:dev 38 | ``` 39 | 40 | The service will start on `http://localhost:3000` (or the port specified in `PORT` env var). 41 | 42 | ## API Endpoints 43 | 44 | ### GET /yield 45 | 46 | Returns the current APY for USDC on Aave V3 Base. 47 | 48 | **Response:** 49 | 50 | ```json 51 | { 52 | "protocol": "AaveV3", 53 | "chain": "base", 54 | "apy": "3.12", 55 | "timestamp": 1730569200 56 | } 57 | ``` 58 | 59 | ### POST /route-deposit 60 | 61 | Generates a deposit route payload for depositing into Aave V3. 62 | 63 | **Request:** 64 | 65 | ```json 66 | { 67 | "asset": "USDC", 68 | "amount": "1000" 69 | } 70 | ``` 71 | 72 | **Response:** 73 | 74 | ```json 75 | { 76 | "protocol": "AaveV3", 77 | "chain": "base", 78 | "asset": "USDC", 79 | "amount": "1000", 80 | "targetContract": "0xA238Dd80C259a72e81d7e4664a9801593F98d1c5", 81 | "calldata": "0x617ba037000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", 82 | "simulation": { 83 | "type": "stub", 84 | "status": "not_run" 85 | } 86 | } 87 | ``` 88 | 89 | **Example:** 90 | 91 | ```bash 92 | curl -X POST http://localhost:3000/route-deposit \ 93 | -H "Content-Type: application/json" \ 94 | -d '{"asset": "USDC", "amount": "1000"}' 95 | ``` 96 | 97 | ## Configuration 98 | 99 | Contract addresses and ABIs are stored in `src/config/aave.config.ts`: 100 | -------------------------------------------------------------------------------- /DESIGN.md: -------------------------------------------------------------------------------- 1 | # Design: Extending to Multichain and Multiprotocol 2 | 3 | ## Overview 4 | 5 | This document outlines how to extend the current single-protocol, single-chain implementation to support multiple chains and multiple yield sources. 6 | 7 | ## 1. Supporting Multiple Chains 8 | 9 | ### Architecture 10 | 11 | **Chain Abstraction Layer**: Create a `ChainProvider` interface that abstracts chain-specific operations: 12 | 13 | ```typescript 14 | interface ChainProvider { 15 | chainId: number; 16 | chainName: string; 17 | getPublicClient(): PublicClient; 18 | getRpcUrl(): string; 19 | } 20 | ``` 21 | 22 | **Implementation Strategy**: 23 | 24 | - Create concrete implementations: `BaseChainProvider`, `EthereumChainProvider`, etc. 25 | - Use a factory pattern to instantiate the correct provider based on chain ID 26 | - Store chain configurations in a `chains.config.ts` file with RPC URLs, chain IDs, and native tokens 27 | 28 | **Configuration**: 29 | 30 | ```typescript 31 | const CHAIN_CONFIGS = { 32 | base: { 33 | chainId: 8453, 34 | rpcUrl: process.env.BASE_RPC_URL, 35 | name: 'Base', 36 | }, 37 | ethereum: { 38 | chainId: 1, 39 | rpcUrl: process.env.ETH_RPC_URL, 40 | name: 'Ethereum', 41 | }, 42 | }; 43 | ``` 44 | 45 | ## 2. Supporting Multiple Yield Sources 46 | 47 | ### Protocol Abstraction 48 | 49 | **Protocol Interface**: Define a common interface for all yield protocols: 50 | 51 | ```typescript 52 | interface YieldProtocol { 53 | protocolName: string; 54 | getCurrentAPY(asset: string, chainId: number): Promise; 55 | buildDepositRoute(request: DepositRequest): Promise; 56 | getSupportedAssets(chainId: number): Promise; 57 | } 58 | ``` 59 | 60 | **Protocol Implementations**: 61 | 62 | - `AaveV3Protocol`: Implements Aave V3 logic 63 | - `MorphoProtocol`: Implements Morpho-specific logic 64 | - `CompoundProtocol`: Implements Compound v3 logic 65 | - Each protocol knows its own contract addresses per chain 66 | 67 | ### Asset Abstraction 68 | 69 | - Create an `Asset` enum/type that maps symbols to addresses per chain 70 | - Store asset configurations: `{ symbol: 'USDC', addresses: { base: '0x...', ethereum: '0x...' } }` 71 | 72 | ## 3. Key Components 73 | 74 | ### Data Storage Strategy 75 | 76 | **Caching Layer**: 77 | 78 | - Use Redis or in-memory cache (node-cache) for yield data 79 | - Cache TTL: 30-60 seconds (yield rates change frequently but not every block) 80 | - Key format: `yield:{protocol}:{chain}:{asset}` 81 | 82 | **Database**: 83 | 84 | - PostgreSQL/MySQL/Clickhouse for historical yield data 85 | 86 | ## 4. Safety Considerations 87 | 88 | ### Unreliable RPCs / Stale Data 89 | 90 | **RPC Failover**: 91 | 92 | - Maintain a list of RPC providers per chain (primary + fallbacks) 93 | - Implement retry logic with exponential backoff 94 | - Circuit breaker pattern: if RPC fails N times, mark as down and use fallback 95 | - Return cached data if all RPCs fail (with a "stale" flag in response) 96 | 97 | **Data Freshness**: 98 | 99 | - Track last successful update timestamp 100 | - Return HTTP 503 if data is older than threshold (e.g., 5 minutes) 101 | - Include `dataAge` field in API responses 102 | 103 | ### Transaction Building 104 | 105 | **Safety Checks**: 106 | 107 | - Verify protocol is not paused (check protocol state) 108 | - Check user has sufficient balance 109 | - Verify token approval (or include in route) 110 | - Validate amount is within protocol limits 111 | -------------------------------------------------------------------------------- /src/protocol/aave.protocol.ts: -------------------------------------------------------------------------------- 1 | import { Injectable, Logger, Inject, Optional } from '@nestjs/common'; 2 | import { ConfigService } from '@nestjs/config'; 3 | import { 4 | createPublicClient, 5 | http, 6 | formatUnits, 7 | Address, 8 | encodeFunctionData, 9 | parseUnits, 10 | } from 'viem'; 11 | import { base } from 'viem/chains'; 12 | import { 13 | AAVE_V3_POOL_ADDRESS, 14 | USDC_ADDRESS, 15 | AAVE_V3_POOL_ABI, 16 | } from '../config/aave.config'; 17 | import type { 18 | IProtocol, 19 | DepositRouteRequest, 20 | DepositRouteResponse, 21 | } from './protocol.interface'; 22 | import type { ISimulationProvider } from '../simulation/simulation.interface'; 23 | 24 | @Injectable() 25 | export class AaveProtocol implements IProtocol { 26 | private readonly logger = new Logger(AaveProtocol.name); 27 | private readonly publicClient; 28 | private readonly SECONDS_PER_YEAR = 365 * 24 * 60 * 60; 29 | 30 | constructor( 31 | private readonly configService: ConfigService, 32 | @Optional() 33 | @Inject('SIMULATION_PROVIDER') 34 | private readonly simulationProvider?: ISimulationProvider, 35 | ) { 36 | const baseRpcUrl = 37 | this.configService.get('BASE_RPC_URL') || 38 | 'https://mainnet.base.org'; 39 | this.publicClient = createPublicClient({ 40 | chain: base, 41 | transport: http(baseRpcUrl), 42 | }); 43 | } 44 | 45 | /** 46 | * Fetches the current APY for USDC on Aave V3 Base 47 | * @returns APY as a percentage string (e.g., "3.17") 48 | */ 49 | async getCurrentAPY(): Promise { 50 | try { 51 | const reserveData = await this.publicClient.readContract({ 52 | address: AAVE_V3_POOL_ADDRESS as Address, 53 | abi: AAVE_V3_POOL_ABI, 54 | functionName: 'getReserveData', 55 | args: [USDC_ADDRESS as Address], 56 | }); 57 | 58 | const liquidityRate = reserveData.currentLiquidityRate; 59 | const apr = Number(formatUnits(liquidityRate, 27)); 60 | const apy = 61 | Math.pow(1 + apr / this.SECONDS_PER_YEAR, this.SECONDS_PER_YEAR) - 1; 62 | 63 | return (apy * 100).toFixed(2); 64 | } catch (error: any) { 65 | this.logger.error(`Error fetching APY: ${error.message}`, error.stack); 66 | throw new Error(`Failed to fetch yield data: ${error.message}`); 67 | } 68 | } 69 | 70 | getProtocolName(): string { 71 | return 'AaveV3'; 72 | } 73 | 74 | getChainName(): string { 75 | return 'base'; 76 | } 77 | 78 | /** 79 | * Builds a deposit route payload for depositing into Aave V3 80 | * @param request Deposit request with asset and amount 81 | * @returns Deposit route payload with transaction details 82 | */ 83 | async buildDepositRoute( 84 | request: DepositRouteRequest, 85 | ): Promise { 86 | try { 87 | if (request.asset.toUpperCase() !== 'USDC') { 88 | throw new Error( 89 | `Unsupported asset: ${request.asset}. Only USDC is supported.`, 90 | ); 91 | } 92 | 93 | const amountStr = String(request.amount); 94 | if (isNaN(Number(amountStr)) || Number(amountStr) <= 0) { 95 | throw new Error('Invalid amount: must be a positive number'); 96 | } 97 | 98 | const amountWei = parseUnits(amountStr, 6); 99 | 100 | const calldata = encodeFunctionData({ 101 | abi: AAVE_V3_POOL_ABI, 102 | functionName: 'supply', 103 | args: [ 104 | USDC_ADDRESS as Address, 105 | amountWei, 106 | '0x77EC2176824Df1145425EB51b3C88B9551847667' as Address, 107 | 0, 108 | ], 109 | }); 110 | 111 | let simulation: DepositRouteResponse['simulation'] = { 112 | type: 'stub', 113 | status: 'not_run', 114 | }; 115 | 116 | if (this.simulationProvider) { 117 | try { 118 | const simResult = await this.simulationProvider.simulate({ 119 | chain: this.getChainName(), 120 | targetContract: AAVE_V3_POOL_ADDRESS, 121 | calldata, 122 | assetAddress: USDC_ADDRESS, 123 | from: '0x77EC2176824Df1145425EB51b3C88B9551847667', 124 | amount: request.amount, 125 | }); 126 | 127 | if (simResult.success) { 128 | simulation = { 129 | type: this.simulationProvider.getProviderName(), 130 | status: 'success', 131 | success: true, 132 | gasUsed: simResult.gasUsed, 133 | }; 134 | } else { 135 | this.logger.warn( 136 | `Simulation failed but continuing: ${simResult.error}`, 137 | ); 138 | simulation = { 139 | type: this.simulationProvider.getProviderName(), 140 | status: 'failed', 141 | success: false, 142 | error: simResult.error, 143 | }; 144 | } 145 | } catch (error: any) { 146 | this.logger.warn( 147 | `Simulation error: ${error.message}. Continuing with stub simulation.`, 148 | ); 149 | } 150 | } 151 | 152 | return { 153 | protocol: this.getProtocolName(), 154 | chain: this.getChainName(), 155 | asset: request.asset, 156 | amount: request.amount, 157 | targetContract: AAVE_V3_POOL_ADDRESS, 158 | calldata, 159 | simulation, 160 | }; 161 | } catch (error: any) { 162 | this.logger.error( 163 | `Error building deposit route: ${error.message}`, 164 | error.stack, 165 | ); 166 | throw new Error(`Failed to build deposit route: ${error.message}`); 167 | } 168 | } 169 | } 170 | -------------------------------------------------------------------------------- /src/simulation/tenderly.simulation.ts: -------------------------------------------------------------------------------- 1 | import { Injectable, Logger } from '@nestjs/common'; 2 | import { ConfigService } from '@nestjs/config'; 3 | import { 4 | keccak256, 5 | encodeAbiParameters, 6 | Address, 7 | getAddress, 8 | parseUnits, 9 | } from 'viem'; 10 | import type { 11 | ISimulationProvider, 12 | SimulationRequest, 13 | SimulationResult, 14 | } from './simulation.interface'; 15 | import { TENDERLY_API_URL, CHAIN_ID_MAP } from '../config/tenderly.config'; 16 | 17 | @Injectable() 18 | export class TenderlySimulationProvider implements ISimulationProvider { 19 | private readonly logger = new Logger(TenderlySimulationProvider.name); 20 | 21 | constructor(private readonly configService: ConfigService) {} 22 | 23 | /** 24 | * Simulates a transaction using Tenderly API 25 | * @param request Simulation request with transaction details 26 | * @returns Simulation result with success status and details 27 | */ 28 | async simulate(request: SimulationRequest): Promise { 29 | try { 30 | const accessToken = 31 | this.configService.get('TENDERLY_ACCESS_TOKEN') || ''; 32 | const projectSlug = 33 | this.configService.get('TENDERLY_PROJECT_SLUG') || ''; 34 | const username = 35 | this.configService.get('TENDERLY_USERNAME') || ''; 36 | 37 | if (!accessToken || !projectSlug || !username) { 38 | this.logger.warn( 39 | 'Tenderly not configured. Returning stub simulation result.', 40 | ); 41 | return { 42 | success: false, 43 | error: 'Tenderly not configured', 44 | }; 45 | } 46 | 47 | const chainId = CHAIN_ID_MAP[request.chain.toLowerCase()]; 48 | if (!chainId) { 49 | throw new Error(`Unsupported chain for simulation: ${request.chain}`); 50 | } 51 | 52 | const simulationUrl = `${TENDERLY_API_URL}/account/${username}/project/${projectSlug}/simulate`; 53 | 54 | const fromAddress = 55 | request.from || '0x0000000000000000000000000000000000000000'; 56 | 57 | const stateOverrides: Record = {}; 58 | if ( 59 | request.assetAddress && 60 | fromAddress !== '0x0000000000000000000000000000000000000000' 61 | ) { 62 | let balanceAmount: bigint; 63 | if (request.amount) { 64 | const requestedAmount = parseUnits(String(request.amount), 6); 65 | balanceAmount = requestedAmount * 2n; 66 | } else { 67 | balanceAmount = 68 | 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn; 69 | } 70 | 71 | const maxUint256 = 72 | 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn; 73 | 74 | const balanceSlot = keccak256( 75 | encodeAbiParameters( 76 | [{ type: 'address' }, { type: 'uint256' }], 77 | [fromAddress as Address, 0n], 78 | ), 79 | ); 80 | 81 | const allowanceMappingSlots = [2n, 3n, 4n, 5n]; 82 | const storage: Record = {}; 83 | 84 | const encodedBalance = encodeAbiParameters( 85 | [{ type: 'uint256' }], 86 | [balanceAmount], 87 | ); 88 | storage[balanceSlot.slice(2).toLowerCase()] = encodedBalance; 89 | 90 | const encodedAllowance = encodeAbiParameters( 91 | [{ type: 'uint256' }], 92 | [maxUint256], 93 | ); 94 | 95 | for (const allowanceSlot of allowanceMappingSlots) { 96 | const ownerSlot = keccak256( 97 | encodeAbiParameters( 98 | [{ type: 'address' }, { type: 'uint256' }], 99 | [fromAddress as Address, allowanceSlot], 100 | ), 101 | ); 102 | const spenderSlot = keccak256( 103 | encodeAbiParameters( 104 | [{ type: 'address' }, { type: 'bytes32' }], 105 | [request.targetContract as Address, ownerSlot as `0x${string}`], 106 | ), 107 | ); 108 | storage[spenderSlot.slice(2).toLowerCase()] = encodedAllowance; 109 | } 110 | 111 | stateOverrides[getAddress(request.assetAddress)] = { 112 | storage, 113 | }; 114 | } 115 | 116 | const simulationPayload: any = { 117 | network_id: chainId, 118 | from: fromAddress, 119 | to: request.targetContract, 120 | input: request.calldata, 121 | value: request.value || '0', 122 | gas: 8000000, 123 | gas_price: '0', 124 | save: false, 125 | }; 126 | 127 | if (Object.keys(stateOverrides).length > 0) { 128 | simulationPayload.state_objects = stateOverrides; 129 | } 130 | 131 | const response = await fetch(simulationUrl, { 132 | method: 'POST', 133 | headers: { 134 | 'Content-Type': 'application/json', 135 | 'X-Access-Key': accessToken, 136 | }, 137 | body: JSON.stringify(simulationPayload), 138 | }); 139 | 140 | if (!response.ok) { 141 | const errorText = await response.text(); 142 | this.logger.error( 143 | `Tenderly simulation failed: ${response.status} - ${errorText}`, 144 | ); 145 | return { 146 | success: false, 147 | error: `Tenderly API error: ${response.status}`, 148 | }; 149 | } 150 | 151 | const data = await response.json(); 152 | 153 | const transaction = data.transaction; 154 | const success = transaction.status === true; 155 | 156 | return { 157 | success, 158 | gasUsed: transaction.gas_used?.toString(), 159 | error: success ? undefined : transaction.error_message, 160 | logs: transaction.logs, 161 | trace: data.simulation, 162 | }; 163 | } catch (error: any) { 164 | this.logger.error( 165 | `Error simulating transaction: ${error.message}`, 166 | error.stack, 167 | ); 168 | return { 169 | success: false, 170 | error: `Simulation failed: ${error.message}`, 171 | }; 172 | } 173 | } 174 | 175 | getProviderName(): string { 176 | return 'tenderly'; 177 | } 178 | } 179 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@nestjs/common': 12 | specifier: ^11.0.1 13 | version: 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) 14 | '@nestjs/config': 15 | specifier: ^4.0.2 16 | version: 4.0.2(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2) 17 | '@nestjs/core': 18 | specifier: ^11.0.1 19 | version: 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) 20 | '@nestjs/platform-express': 21 | specifier: ^11.0.1 22 | version: 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) 23 | reflect-metadata: 24 | specifier: ^0.2.2 25 | version: 0.2.2 26 | viem: 27 | specifier: ^2.41.2 28 | version: 2.41.2(typescript@5.9.3) 29 | devDependencies: 30 | '@eslint/eslintrc': 31 | specifier: ^3.2.0 32 | version: 3.3.3 33 | '@eslint/js': 34 | specifier: ^9.18.0 35 | version: 9.39.1 36 | '@nestjs/cli': 37 | specifier: ^11.0.0 38 | version: 11.0.14(@types/node@22.19.2) 39 | '@nestjs/schematics': 40 | specifier: ^11.0.0 41 | version: 11.0.9(chokidar@4.0.3)(typescript@5.9.3) 42 | '@nestjs/testing': 43 | specifier: ^11.0.1 44 | version: 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-express@11.1.9) 45 | '@types/express': 46 | specifier: ^5.0.0 47 | version: 5.0.6 48 | '@types/jest': 49 | specifier: ^30.0.0 50 | version: 30.0.0 51 | '@types/node': 52 | specifier: ^22.10.7 53 | version: 22.19.2 54 | '@types/supertest': 55 | specifier: ^6.0.2 56 | version: 6.0.3 57 | eslint: 58 | specifier: ^9.18.0 59 | version: 9.39.1 60 | eslint-config-prettier: 61 | specifier: ^10.0.1 62 | version: 10.1.8(eslint@9.39.1) 63 | eslint-plugin-prettier: 64 | specifier: ^5.2.2 65 | version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.7.4) 66 | globals: 67 | specifier: ^16.0.0 68 | version: 16.5.0 69 | prettier: 70 | specifier: ^3.4.2 71 | version: 3.7.4 72 | source-map-support: 73 | specifier: ^0.5.21 74 | version: 0.5.21 75 | ts-loader: 76 | specifier: ^9.5.2 77 | version: 9.5.4(typescript@5.9.3)(webpack@5.103.0) 78 | ts-node: 79 | specifier: ^10.9.2 80 | version: 10.9.2(@types/node@22.19.2)(typescript@5.9.3) 81 | tsconfig-paths: 82 | specifier: ^4.2.0 83 | version: 4.2.0 84 | typescript: 85 | specifier: ^5.7.3 86 | version: 5.9.3 87 | typescript-eslint: 88 | specifier: ^8.20.0 89 | version: 8.49.0(eslint@9.39.1)(typescript@5.9.3) 90 | 91 | packages: 92 | 93 | '@adraffy/ens-normalize@1.11.1': 94 | resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} 95 | 96 | '@angular-devkit/core@19.2.17': 97 | resolution: {integrity: sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ==} 98 | engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} 99 | peerDependencies: 100 | chokidar: ^4.0.0 101 | peerDependenciesMeta: 102 | chokidar: 103 | optional: true 104 | 105 | '@angular-devkit/core@19.2.19': 106 | resolution: {integrity: sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ==} 107 | engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} 108 | peerDependencies: 109 | chokidar: ^4.0.0 110 | peerDependenciesMeta: 111 | chokidar: 112 | optional: true 113 | 114 | '@angular-devkit/schematics-cli@19.2.19': 115 | resolution: {integrity: sha512-7q9UY6HK6sccL9F3cqGRUwKhM7b/XfD2YcVaZ2WD7VMaRlRm85v6mRjSrfKIAwxcQU0UK27kMc79NIIqaHjzxA==} 116 | engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} 117 | hasBin: true 118 | 119 | '@angular-devkit/schematics@19.2.17': 120 | resolution: {integrity: sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg==} 121 | engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} 122 | 123 | '@angular-devkit/schematics@19.2.19': 124 | resolution: {integrity: sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==} 125 | engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} 126 | 127 | '@babel/code-frame@7.27.1': 128 | resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 129 | engines: {node: '>=6.9.0'} 130 | 131 | '@babel/helper-validator-identifier@7.28.5': 132 | resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 133 | engines: {node: '>=6.9.0'} 134 | 135 | '@borewit/text-codec@0.1.1': 136 | resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} 137 | 138 | '@colors/colors@1.5.0': 139 | resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} 140 | engines: {node: '>=0.1.90'} 141 | 142 | '@cspotcode/source-map-support@0.8.1': 143 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 144 | engines: {node: '>=12'} 145 | 146 | '@eslint-community/eslint-utils@4.9.0': 147 | resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} 148 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 149 | peerDependencies: 150 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 151 | 152 | '@eslint-community/regexpp@4.12.2': 153 | resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 154 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 155 | 156 | '@eslint/config-array@0.21.1': 157 | resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} 158 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 159 | 160 | '@eslint/config-helpers@0.4.2': 161 | resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} 162 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 163 | 164 | '@eslint/core@0.17.0': 165 | resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} 166 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 167 | 168 | '@eslint/eslintrc@3.3.3': 169 | resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} 170 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 171 | 172 | '@eslint/js@9.39.1': 173 | resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} 174 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 175 | 176 | '@eslint/object-schema@2.1.7': 177 | resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} 178 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 179 | 180 | '@eslint/plugin-kit@0.4.1': 181 | resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} 182 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 183 | 184 | '@humanfs/core@0.19.1': 185 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 186 | engines: {node: '>=18.18.0'} 187 | 188 | '@humanfs/node@0.16.7': 189 | resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} 190 | engines: {node: '>=18.18.0'} 191 | 192 | '@humanwhocodes/module-importer@1.0.1': 193 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 194 | engines: {node: '>=12.22'} 195 | 196 | '@humanwhocodes/retry@0.4.3': 197 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 198 | engines: {node: '>=18.18'} 199 | 200 | '@inquirer/ansi@1.0.2': 201 | resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} 202 | engines: {node: '>=18'} 203 | 204 | '@inquirer/checkbox@4.3.2': 205 | resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} 206 | engines: {node: '>=18'} 207 | peerDependencies: 208 | '@types/node': '>=18' 209 | peerDependenciesMeta: 210 | '@types/node': 211 | optional: true 212 | 213 | '@inquirer/confirm@5.1.21': 214 | resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} 215 | engines: {node: '>=18'} 216 | peerDependencies: 217 | '@types/node': '>=18' 218 | peerDependenciesMeta: 219 | '@types/node': 220 | optional: true 221 | 222 | '@inquirer/core@10.3.2': 223 | resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} 224 | engines: {node: '>=18'} 225 | peerDependencies: 226 | '@types/node': '>=18' 227 | peerDependenciesMeta: 228 | '@types/node': 229 | optional: true 230 | 231 | '@inquirer/editor@4.2.23': 232 | resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} 233 | engines: {node: '>=18'} 234 | peerDependencies: 235 | '@types/node': '>=18' 236 | peerDependenciesMeta: 237 | '@types/node': 238 | optional: true 239 | 240 | '@inquirer/expand@4.0.23': 241 | resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} 242 | engines: {node: '>=18'} 243 | peerDependencies: 244 | '@types/node': '>=18' 245 | peerDependenciesMeta: 246 | '@types/node': 247 | optional: true 248 | 249 | '@inquirer/external-editor@1.0.3': 250 | resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} 251 | engines: {node: '>=18'} 252 | peerDependencies: 253 | '@types/node': '>=18' 254 | peerDependenciesMeta: 255 | '@types/node': 256 | optional: true 257 | 258 | '@inquirer/figures@1.0.15': 259 | resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} 260 | engines: {node: '>=18'} 261 | 262 | '@inquirer/input@4.3.1': 263 | resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} 264 | engines: {node: '>=18'} 265 | peerDependencies: 266 | '@types/node': '>=18' 267 | peerDependenciesMeta: 268 | '@types/node': 269 | optional: true 270 | 271 | '@inquirer/number@3.0.23': 272 | resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} 273 | engines: {node: '>=18'} 274 | peerDependencies: 275 | '@types/node': '>=18' 276 | peerDependenciesMeta: 277 | '@types/node': 278 | optional: true 279 | 280 | '@inquirer/password@4.0.23': 281 | resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} 282 | engines: {node: '>=18'} 283 | peerDependencies: 284 | '@types/node': '>=18' 285 | peerDependenciesMeta: 286 | '@types/node': 287 | optional: true 288 | 289 | '@inquirer/prompts@7.10.1': 290 | resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} 291 | engines: {node: '>=18'} 292 | peerDependencies: 293 | '@types/node': '>=18' 294 | peerDependenciesMeta: 295 | '@types/node': 296 | optional: true 297 | 298 | '@inquirer/prompts@7.3.2': 299 | resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} 300 | engines: {node: '>=18'} 301 | peerDependencies: 302 | '@types/node': '>=18' 303 | peerDependenciesMeta: 304 | '@types/node': 305 | optional: true 306 | 307 | '@inquirer/rawlist@4.1.11': 308 | resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} 309 | engines: {node: '>=18'} 310 | peerDependencies: 311 | '@types/node': '>=18' 312 | peerDependenciesMeta: 313 | '@types/node': 314 | optional: true 315 | 316 | '@inquirer/search@3.2.2': 317 | resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} 318 | engines: {node: '>=18'} 319 | peerDependencies: 320 | '@types/node': '>=18' 321 | peerDependenciesMeta: 322 | '@types/node': 323 | optional: true 324 | 325 | '@inquirer/select@4.4.2': 326 | resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} 327 | engines: {node: '>=18'} 328 | peerDependencies: 329 | '@types/node': '>=18' 330 | peerDependenciesMeta: 331 | '@types/node': 332 | optional: true 333 | 334 | '@inquirer/type@3.0.10': 335 | resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} 336 | engines: {node: '>=18'} 337 | peerDependencies: 338 | '@types/node': '>=18' 339 | peerDependenciesMeta: 340 | '@types/node': 341 | optional: true 342 | 343 | '@isaacs/balanced-match@4.0.1': 344 | resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} 345 | engines: {node: 20 || >=22} 346 | 347 | '@isaacs/brace-expansion@5.0.0': 348 | resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} 349 | engines: {node: 20 || >=22} 350 | 351 | '@jest/diff-sequences@30.0.1': 352 | resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} 353 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 354 | 355 | '@jest/expect-utils@30.2.0': 356 | resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} 357 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 358 | 359 | '@jest/get-type@30.1.0': 360 | resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} 361 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 362 | 363 | '@jest/pattern@30.0.1': 364 | resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} 365 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 366 | 367 | '@jest/schemas@30.0.5': 368 | resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} 369 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 370 | 371 | '@jest/types@30.2.0': 372 | resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} 373 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 374 | 375 | '@jridgewell/gen-mapping@0.3.13': 376 | resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 377 | 378 | '@jridgewell/resolve-uri@3.1.2': 379 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 380 | engines: {node: '>=6.0.0'} 381 | 382 | '@jridgewell/source-map@0.3.11': 383 | resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} 384 | 385 | '@jridgewell/sourcemap-codec@1.5.5': 386 | resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 387 | 388 | '@jridgewell/trace-mapping@0.3.31': 389 | resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 390 | 391 | '@jridgewell/trace-mapping@0.3.9': 392 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 393 | 394 | '@lukeed/csprng@1.1.0': 395 | resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} 396 | engines: {node: '>=8'} 397 | 398 | '@nestjs/cli@11.0.14': 399 | resolution: {integrity: sha512-YwP03zb5VETTwelXU+AIzMVbEZKk/uxJL+z9pw0mdG9ogAtqZ6/mpmIM4nEq/NU8D0a7CBRLcMYUmWW/55pfqw==} 400 | engines: {node: '>= 20.11'} 401 | hasBin: true 402 | peerDependencies: 403 | '@swc/cli': ^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 404 | '@swc/core': ^1.3.62 405 | peerDependenciesMeta: 406 | '@swc/cli': 407 | optional: true 408 | '@swc/core': 409 | optional: true 410 | 411 | '@nestjs/common@11.1.9': 412 | resolution: {integrity: sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ==} 413 | peerDependencies: 414 | class-transformer: '>=0.4.1' 415 | class-validator: '>=0.13.2' 416 | reflect-metadata: ^0.1.12 || ^0.2.0 417 | rxjs: ^7.1.0 418 | peerDependenciesMeta: 419 | class-transformer: 420 | optional: true 421 | class-validator: 422 | optional: true 423 | 424 | '@nestjs/config@4.0.2': 425 | resolution: {integrity: sha512-McMW6EXtpc8+CwTUwFdg6h7dYcBUpH5iUILCclAsa+MbCEvC9ZKu4dCHRlJqALuhjLw97pbQu62l4+wRwGeZqA==} 426 | peerDependencies: 427 | '@nestjs/common': ^10.0.0 || ^11.0.0 428 | rxjs: ^7.1.0 429 | 430 | '@nestjs/core@11.1.9': 431 | resolution: {integrity: sha512-a00B0BM4X+9z+t3UxJqIZlemIwCQdYoPKrMcM+ky4z3pkqqG1eTWexjs+YXpGObnLnjtMPVKWlcZHp3adDYvUw==} 432 | engines: {node: '>= 20'} 433 | peerDependencies: 434 | '@nestjs/common': ^11.0.0 435 | '@nestjs/microservices': ^11.0.0 436 | '@nestjs/platform-express': ^11.0.0 437 | '@nestjs/websockets': ^11.0.0 438 | reflect-metadata: ^0.1.12 || ^0.2.0 439 | rxjs: ^7.1.0 440 | peerDependenciesMeta: 441 | '@nestjs/microservices': 442 | optional: true 443 | '@nestjs/platform-express': 444 | optional: true 445 | '@nestjs/websockets': 446 | optional: true 447 | 448 | '@nestjs/platform-express@11.1.9': 449 | resolution: {integrity: sha512-GVd3+0lO0mJq2m1kl9hDDnVrX3Nd4oH3oDfklz0pZEVEVS0KVSp63ufHq2Lu9cyPdSBuelJr9iPm2QQ1yX+Kmw==} 450 | peerDependencies: 451 | '@nestjs/common': ^11.0.0 452 | '@nestjs/core': ^11.0.0 453 | 454 | '@nestjs/schematics@11.0.9': 455 | resolution: {integrity: sha512-0NfPbPlEaGwIT8/TCThxLzrlz3yzDNkfRNpbL7FiplKq3w4qXpJg0JYwqgMEJnLQZm3L/L/5XjoyfJHUO3qX9g==} 456 | peerDependencies: 457 | typescript: '>=4.8.2' 458 | 459 | '@nestjs/testing@11.1.9': 460 | resolution: {integrity: sha512-UFxerBDdb0RUNxQNj25pvkvNE7/vxKhXYWBt3QuwBFnYISzRIzhVlyIqLfoV5YI3zV0m0Nn4QAn1KM0zzwfEng==} 461 | peerDependencies: 462 | '@nestjs/common': ^11.0.0 463 | '@nestjs/core': ^11.0.0 464 | '@nestjs/microservices': ^11.0.0 465 | '@nestjs/platform-express': ^11.0.0 466 | peerDependenciesMeta: 467 | '@nestjs/microservices': 468 | optional: true 469 | '@nestjs/platform-express': 470 | optional: true 471 | 472 | '@noble/ciphers@1.3.0': 473 | resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} 474 | engines: {node: ^14.21.3 || >=16} 475 | 476 | '@noble/curves@1.9.1': 477 | resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} 478 | engines: {node: ^14.21.3 || >=16} 479 | 480 | '@noble/hashes@1.8.0': 481 | resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} 482 | engines: {node: ^14.21.3 || >=16} 483 | 484 | '@nuxt/opencollective@0.4.1': 485 | resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==} 486 | engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'} 487 | hasBin: true 488 | 489 | '@pkgr/core@0.2.9': 490 | resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} 491 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 492 | 493 | '@scure/base@1.2.6': 494 | resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} 495 | 496 | '@scure/bip32@1.7.0': 497 | resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} 498 | 499 | '@scure/bip39@1.6.0': 500 | resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} 501 | 502 | '@sinclair/typebox@0.34.41': 503 | resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} 504 | 505 | '@tokenizer/inflate@0.3.1': 506 | resolution: {integrity: sha512-4oeoZEBQdLdt5WmP/hx1KZ6D3/Oid/0cUb2nk4F0pTDAWy+KCH3/EnAkZF/bvckWo8I33EqBm01lIPgmgc8rCA==} 507 | engines: {node: '>=18'} 508 | 509 | '@tokenizer/token@0.3.0': 510 | resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} 511 | 512 | '@tsconfig/node10@1.0.12': 513 | resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} 514 | 515 | '@tsconfig/node12@1.0.11': 516 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 517 | 518 | '@tsconfig/node14@1.0.3': 519 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 520 | 521 | '@tsconfig/node16@1.0.4': 522 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 523 | 524 | '@types/body-parser@1.19.6': 525 | resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} 526 | 527 | '@types/connect@3.4.38': 528 | resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} 529 | 530 | '@types/cookiejar@2.1.5': 531 | resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} 532 | 533 | '@types/eslint-scope@3.7.7': 534 | resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} 535 | 536 | '@types/eslint@9.6.1': 537 | resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} 538 | 539 | '@types/estree@1.0.8': 540 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 541 | 542 | '@types/express-serve-static-core@5.1.0': 543 | resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} 544 | 545 | '@types/express@5.0.6': 546 | resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} 547 | 548 | '@types/http-errors@2.0.5': 549 | resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} 550 | 551 | '@types/istanbul-lib-coverage@2.0.6': 552 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 553 | 554 | '@types/istanbul-lib-report@3.0.3': 555 | resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} 556 | 557 | '@types/istanbul-reports@3.0.4': 558 | resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} 559 | 560 | '@types/jest@30.0.0': 561 | resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} 562 | 563 | '@types/json-schema@7.0.15': 564 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 565 | 566 | '@types/methods@1.1.4': 567 | resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} 568 | 569 | '@types/node@22.19.2': 570 | resolution: {integrity: sha512-LPM2G3Syo1GLzXLGJAKdqoU35XvrWzGJ21/7sgZTUpbkBaOasTj8tjwn6w+hCkqaa1TfJ/w67rJSwYItlJ2mYw==} 571 | 572 | '@types/qs@6.14.0': 573 | resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} 574 | 575 | '@types/range-parser@1.2.7': 576 | resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} 577 | 578 | '@types/send@1.2.1': 579 | resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} 580 | 581 | '@types/serve-static@2.2.0': 582 | resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} 583 | 584 | '@types/stack-utils@2.0.3': 585 | resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} 586 | 587 | '@types/superagent@8.1.9': 588 | resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} 589 | 590 | '@types/supertest@6.0.3': 591 | resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} 592 | 593 | '@types/yargs-parser@21.0.3': 594 | resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} 595 | 596 | '@types/yargs@17.0.35': 597 | resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} 598 | 599 | '@typescript-eslint/eslint-plugin@8.49.0': 600 | resolution: {integrity: sha512-JXij0vzIaTtCwu6SxTh8qBc66kmf1xs7pI4UOiMDFVct6q86G0Zs7KRcEoJgY3Cav3x5Tq0MF5jwgpgLqgKG3A==} 601 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 602 | peerDependencies: 603 | '@typescript-eslint/parser': ^8.49.0 604 | eslint: ^8.57.0 || ^9.0.0 605 | typescript: '>=4.8.4 <6.0.0' 606 | 607 | '@typescript-eslint/parser@8.49.0': 608 | resolution: {integrity: sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==} 609 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 610 | peerDependencies: 611 | eslint: ^8.57.0 || ^9.0.0 612 | typescript: '>=4.8.4 <6.0.0' 613 | 614 | '@typescript-eslint/project-service@8.49.0': 615 | resolution: {integrity: sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g==} 616 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 617 | peerDependencies: 618 | typescript: '>=4.8.4 <6.0.0' 619 | 620 | '@typescript-eslint/scope-manager@8.49.0': 621 | resolution: {integrity: sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg==} 622 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 623 | 624 | '@typescript-eslint/tsconfig-utils@8.49.0': 625 | resolution: {integrity: sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA==} 626 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 627 | peerDependencies: 628 | typescript: '>=4.8.4 <6.0.0' 629 | 630 | '@typescript-eslint/type-utils@8.49.0': 631 | resolution: {integrity: sha512-KTExJfQ+svY8I10P4HdxKzWsvtVnsuCifU5MvXrRwoP2KOlNZ9ADNEWWsQTJgMxLzS5VLQKDjkCT/YzgsnqmZg==} 632 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 633 | peerDependencies: 634 | eslint: ^8.57.0 || ^9.0.0 635 | typescript: '>=4.8.4 <6.0.0' 636 | 637 | '@typescript-eslint/types@8.49.0': 638 | resolution: {integrity: sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ==} 639 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 640 | 641 | '@typescript-eslint/typescript-estree@8.49.0': 642 | resolution: {integrity: sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA==} 643 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 644 | peerDependencies: 645 | typescript: '>=4.8.4 <6.0.0' 646 | 647 | '@typescript-eslint/utils@8.49.0': 648 | resolution: {integrity: sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA==} 649 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 650 | peerDependencies: 651 | eslint: ^8.57.0 || ^9.0.0 652 | typescript: '>=4.8.4 <6.0.0' 653 | 654 | '@typescript-eslint/visitor-keys@8.49.0': 655 | resolution: {integrity: sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA==} 656 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 657 | 658 | '@webassemblyjs/ast@1.14.1': 659 | resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} 660 | 661 | '@webassemblyjs/floating-point-hex-parser@1.13.2': 662 | resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} 663 | 664 | '@webassemblyjs/helper-api-error@1.13.2': 665 | resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} 666 | 667 | '@webassemblyjs/helper-buffer@1.14.1': 668 | resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} 669 | 670 | '@webassemblyjs/helper-numbers@1.13.2': 671 | resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} 672 | 673 | '@webassemblyjs/helper-wasm-bytecode@1.13.2': 674 | resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} 675 | 676 | '@webassemblyjs/helper-wasm-section@1.14.1': 677 | resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} 678 | 679 | '@webassemblyjs/ieee754@1.13.2': 680 | resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} 681 | 682 | '@webassemblyjs/leb128@1.13.2': 683 | resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} 684 | 685 | '@webassemblyjs/utf8@1.13.2': 686 | resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} 687 | 688 | '@webassemblyjs/wasm-edit@1.14.1': 689 | resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} 690 | 691 | '@webassemblyjs/wasm-gen@1.14.1': 692 | resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} 693 | 694 | '@webassemblyjs/wasm-opt@1.14.1': 695 | resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} 696 | 697 | '@webassemblyjs/wasm-parser@1.14.1': 698 | resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} 699 | 700 | '@webassemblyjs/wast-printer@1.14.1': 701 | resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} 702 | 703 | '@xtuc/ieee754@1.2.0': 704 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} 705 | 706 | '@xtuc/long@4.2.2': 707 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 708 | 709 | abitype@1.1.0: 710 | resolution: {integrity: sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==} 711 | peerDependencies: 712 | typescript: '>=5.0.4' 713 | zod: ^3.22.0 || ^4.0.0 714 | peerDependenciesMeta: 715 | typescript: 716 | optional: true 717 | zod: 718 | optional: true 719 | 720 | accepts@2.0.0: 721 | resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} 722 | engines: {node: '>= 0.6'} 723 | 724 | acorn-import-phases@1.0.4: 725 | resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} 726 | engines: {node: '>=10.13.0'} 727 | peerDependencies: 728 | acorn: ^8.14.0 729 | 730 | acorn-jsx@5.3.2: 731 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 732 | peerDependencies: 733 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 734 | 735 | acorn-walk@8.3.4: 736 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 737 | engines: {node: '>=0.4.0'} 738 | 739 | acorn@8.15.0: 740 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 741 | engines: {node: '>=0.4.0'} 742 | hasBin: true 743 | 744 | ajv-formats@2.1.1: 745 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 746 | peerDependencies: 747 | ajv: ^8.0.0 748 | peerDependenciesMeta: 749 | ajv: 750 | optional: true 751 | 752 | ajv-formats@3.0.1: 753 | resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} 754 | peerDependencies: 755 | ajv: ^8.0.0 756 | peerDependenciesMeta: 757 | ajv: 758 | optional: true 759 | 760 | ajv-keywords@3.5.2: 761 | resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} 762 | peerDependencies: 763 | ajv: ^6.9.1 764 | 765 | ajv-keywords@5.1.0: 766 | resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} 767 | peerDependencies: 768 | ajv: ^8.8.2 769 | 770 | ajv@6.12.6: 771 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 772 | 773 | ajv@8.17.1: 774 | resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} 775 | 776 | ansi-colors@4.1.3: 777 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 778 | engines: {node: '>=6'} 779 | 780 | ansi-regex@5.0.1: 781 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 782 | engines: {node: '>=8'} 783 | 784 | ansi-styles@4.3.0: 785 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 786 | engines: {node: '>=8'} 787 | 788 | ansi-styles@5.2.0: 789 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 790 | engines: {node: '>=10'} 791 | 792 | ansis@4.2.0: 793 | resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 794 | engines: {node: '>=14'} 795 | 796 | append-field@1.0.0: 797 | resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} 798 | 799 | arg@4.1.3: 800 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 801 | 802 | argparse@2.0.1: 803 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 804 | 805 | array-timsort@1.0.3: 806 | resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} 807 | 808 | asynckit@0.4.0: 809 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 810 | 811 | balanced-match@1.0.2: 812 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 813 | 814 | base64-js@1.5.1: 815 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 816 | 817 | baseline-browser-mapping@2.9.7: 818 | resolution: {integrity: sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==} 819 | hasBin: true 820 | 821 | bl@4.1.0: 822 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 823 | 824 | body-parser@2.2.1: 825 | resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} 826 | engines: {node: '>=18'} 827 | 828 | brace-expansion@1.1.12: 829 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 830 | 831 | brace-expansion@2.0.2: 832 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 833 | 834 | braces@3.0.3: 835 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 836 | engines: {node: '>=8'} 837 | 838 | browserslist@4.28.1: 839 | resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} 840 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 841 | hasBin: true 842 | 843 | buffer-from@1.1.2: 844 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 845 | 846 | buffer@5.7.1: 847 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 848 | 849 | busboy@1.6.0: 850 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 851 | engines: {node: '>=10.16.0'} 852 | 853 | bytes@3.1.2: 854 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 855 | engines: {node: '>= 0.8'} 856 | 857 | call-bind-apply-helpers@1.0.2: 858 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 859 | engines: {node: '>= 0.4'} 860 | 861 | call-bound@1.0.4: 862 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 863 | engines: {node: '>= 0.4'} 864 | 865 | callsites@3.1.0: 866 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 867 | engines: {node: '>=6'} 868 | 869 | caniuse-lite@1.0.30001760: 870 | resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} 871 | 872 | chalk@4.1.2: 873 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 874 | engines: {node: '>=10'} 875 | 876 | chardet@2.1.1: 877 | resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} 878 | 879 | chokidar@4.0.3: 880 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 881 | engines: {node: '>= 14.16.0'} 882 | 883 | chrome-trace-event@1.0.4: 884 | resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} 885 | engines: {node: '>=6.0'} 886 | 887 | ci-info@4.3.1: 888 | resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} 889 | engines: {node: '>=8'} 890 | 891 | cli-cursor@3.1.0: 892 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 893 | engines: {node: '>=8'} 894 | 895 | cli-spinners@2.9.2: 896 | resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} 897 | engines: {node: '>=6'} 898 | 899 | cli-table3@0.6.5: 900 | resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} 901 | engines: {node: 10.* || >= 12.*} 902 | 903 | cli-width@4.1.0: 904 | resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} 905 | engines: {node: '>= 12'} 906 | 907 | clone@1.0.4: 908 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 909 | engines: {node: '>=0.8'} 910 | 911 | color-convert@2.0.1: 912 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 913 | engines: {node: '>=7.0.0'} 914 | 915 | color-name@1.1.4: 916 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 917 | 918 | combined-stream@1.0.8: 919 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 920 | engines: {node: '>= 0.8'} 921 | 922 | commander@2.20.3: 923 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 924 | 925 | commander@4.1.1: 926 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 927 | engines: {node: '>= 6'} 928 | 929 | comment-json@4.4.1: 930 | resolution: {integrity: sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==} 931 | engines: {node: '>= 6'} 932 | 933 | concat-map@0.0.1: 934 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 935 | 936 | concat-stream@2.0.0: 937 | resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} 938 | engines: {'0': node >= 6.0} 939 | 940 | consola@3.4.2: 941 | resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} 942 | engines: {node: ^14.18.0 || >=16.10.0} 943 | 944 | content-disposition@1.0.1: 945 | resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} 946 | engines: {node: '>=18'} 947 | 948 | content-type@1.0.5: 949 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 950 | engines: {node: '>= 0.6'} 951 | 952 | cookie-signature@1.2.2: 953 | resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} 954 | engines: {node: '>=6.6.0'} 955 | 956 | cookie@0.7.2: 957 | resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} 958 | engines: {node: '>= 0.6'} 959 | 960 | core-util-is@1.0.3: 961 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 962 | 963 | cors@2.8.5: 964 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} 965 | engines: {node: '>= 0.10'} 966 | 967 | cosmiconfig@8.3.6: 968 | resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} 969 | engines: {node: '>=14'} 970 | peerDependencies: 971 | typescript: '>=4.9.5' 972 | peerDependenciesMeta: 973 | typescript: 974 | optional: true 975 | 976 | create-require@1.1.1: 977 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 978 | 979 | cross-spawn@7.0.6: 980 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 981 | engines: {node: '>= 8'} 982 | 983 | debug@4.4.3: 984 | resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 985 | engines: {node: '>=6.0'} 986 | peerDependencies: 987 | supports-color: '*' 988 | peerDependenciesMeta: 989 | supports-color: 990 | optional: true 991 | 992 | deep-is@0.1.4: 993 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 994 | 995 | deepmerge@4.3.1: 996 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 997 | engines: {node: '>=0.10.0'} 998 | 999 | defaults@1.0.4: 1000 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 1001 | 1002 | delayed-stream@1.0.0: 1003 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1004 | engines: {node: '>=0.4.0'} 1005 | 1006 | depd@2.0.0: 1007 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 1008 | engines: {node: '>= 0.8'} 1009 | 1010 | diff@4.0.2: 1011 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1012 | engines: {node: '>=0.3.1'} 1013 | 1014 | dotenv-expand@12.0.1: 1015 | resolution: {integrity: sha512-LaKRbou8gt0RNID/9RoI+J2rvXsBRPMV7p+ElHlPhcSARbCPDYcYG2s1TIzAfWv4YSgyY5taidWzzs31lNV3yQ==} 1016 | engines: {node: '>=12'} 1017 | 1018 | dotenv@16.4.7: 1019 | resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} 1020 | engines: {node: '>=12'} 1021 | 1022 | dunder-proto@1.0.1: 1023 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 1024 | engines: {node: '>= 0.4'} 1025 | 1026 | ee-first@1.1.1: 1027 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 1028 | 1029 | electron-to-chromium@1.5.267: 1030 | resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} 1031 | 1032 | emoji-regex@8.0.0: 1033 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1034 | 1035 | encodeurl@2.0.0: 1036 | resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} 1037 | engines: {node: '>= 0.8'} 1038 | 1039 | enhanced-resolve@5.18.4: 1040 | resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} 1041 | engines: {node: '>=10.13.0'} 1042 | 1043 | error-ex@1.3.4: 1044 | resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} 1045 | 1046 | es-define-property@1.0.1: 1047 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 1048 | engines: {node: '>= 0.4'} 1049 | 1050 | es-errors@1.3.0: 1051 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1052 | engines: {node: '>= 0.4'} 1053 | 1054 | es-module-lexer@1.7.0: 1055 | resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1056 | 1057 | es-object-atoms@1.1.1: 1058 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 1059 | engines: {node: '>= 0.4'} 1060 | 1061 | es-set-tostringtag@2.1.0: 1062 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 1063 | engines: {node: '>= 0.4'} 1064 | 1065 | escalade@3.2.0: 1066 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1067 | engines: {node: '>=6'} 1068 | 1069 | escape-html@1.0.3: 1070 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1071 | 1072 | escape-string-regexp@2.0.0: 1073 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 1074 | engines: {node: '>=8'} 1075 | 1076 | escape-string-regexp@4.0.0: 1077 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1078 | engines: {node: '>=10'} 1079 | 1080 | eslint-config-prettier@10.1.8: 1081 | resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} 1082 | hasBin: true 1083 | peerDependencies: 1084 | eslint: '>=7.0.0' 1085 | 1086 | eslint-plugin-prettier@5.5.4: 1087 | resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} 1088 | engines: {node: ^14.18.0 || >=16.0.0} 1089 | peerDependencies: 1090 | '@types/eslint': '>=8.0.0' 1091 | eslint: '>=8.0.0' 1092 | eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' 1093 | prettier: '>=3.0.0' 1094 | peerDependenciesMeta: 1095 | '@types/eslint': 1096 | optional: true 1097 | eslint-config-prettier: 1098 | optional: true 1099 | 1100 | eslint-scope@5.1.1: 1101 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1102 | engines: {node: '>=8.0.0'} 1103 | 1104 | eslint-scope@8.4.0: 1105 | resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 1106 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1107 | 1108 | eslint-visitor-keys@3.4.3: 1109 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1110 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1111 | 1112 | eslint-visitor-keys@4.2.1: 1113 | resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 1114 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1115 | 1116 | eslint@9.39.1: 1117 | resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} 1118 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1119 | hasBin: true 1120 | peerDependencies: 1121 | jiti: '*' 1122 | peerDependenciesMeta: 1123 | jiti: 1124 | optional: true 1125 | 1126 | espree@10.4.0: 1127 | resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 1128 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1129 | 1130 | esprima@4.0.1: 1131 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1132 | engines: {node: '>=4'} 1133 | hasBin: true 1134 | 1135 | esquery@1.6.0: 1136 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1137 | engines: {node: '>=0.10'} 1138 | 1139 | esrecurse@4.3.0: 1140 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1141 | engines: {node: '>=4.0'} 1142 | 1143 | estraverse@4.3.0: 1144 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1145 | engines: {node: '>=4.0'} 1146 | 1147 | estraverse@5.3.0: 1148 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1149 | engines: {node: '>=4.0'} 1150 | 1151 | esutils@2.0.3: 1152 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1153 | engines: {node: '>=0.10.0'} 1154 | 1155 | etag@1.8.1: 1156 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1157 | engines: {node: '>= 0.6'} 1158 | 1159 | eventemitter3@5.0.1: 1160 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 1161 | 1162 | events@3.3.0: 1163 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1164 | engines: {node: '>=0.8.x'} 1165 | 1166 | expect@30.2.0: 1167 | resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} 1168 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1169 | 1170 | express@5.1.0: 1171 | resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} 1172 | engines: {node: '>= 18'} 1173 | 1174 | fast-deep-equal@3.1.3: 1175 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1176 | 1177 | fast-diff@1.3.0: 1178 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} 1179 | 1180 | fast-json-stable-stringify@2.1.0: 1181 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1182 | 1183 | fast-levenshtein@2.0.6: 1184 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1185 | 1186 | fast-safe-stringify@2.1.1: 1187 | resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} 1188 | 1189 | fast-uri@3.1.0: 1190 | resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} 1191 | 1192 | fdir@6.5.0: 1193 | resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 1194 | engines: {node: '>=12.0.0'} 1195 | peerDependencies: 1196 | picomatch: ^3 || ^4 1197 | peerDependenciesMeta: 1198 | picomatch: 1199 | optional: true 1200 | 1201 | fflate@0.8.2: 1202 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} 1203 | 1204 | file-entry-cache@8.0.0: 1205 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 1206 | engines: {node: '>=16.0.0'} 1207 | 1208 | file-type@21.1.0: 1209 | resolution: {integrity: sha512-boU4EHmP3JXkwDo4uhyBhTt5pPstxB6eEXKJBu2yu2l7aAMMm7QQYQEzssJmKReZYrFdFOJS8koVo6bXIBGDqA==} 1210 | engines: {node: '>=20'} 1211 | 1212 | fill-range@7.1.1: 1213 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1214 | engines: {node: '>=8'} 1215 | 1216 | finalhandler@2.1.1: 1217 | resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} 1218 | engines: {node: '>= 18.0.0'} 1219 | 1220 | find-up@5.0.0: 1221 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1222 | engines: {node: '>=10'} 1223 | 1224 | flat-cache@4.0.1: 1225 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 1226 | engines: {node: '>=16'} 1227 | 1228 | flatted@3.3.3: 1229 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1230 | 1231 | fork-ts-checker-webpack-plugin@9.1.0: 1232 | resolution: {integrity: sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==} 1233 | engines: {node: '>=14.21.3'} 1234 | peerDependencies: 1235 | typescript: '>3.6.0' 1236 | webpack: ^5.11.0 1237 | 1238 | form-data@4.0.5: 1239 | resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} 1240 | engines: {node: '>= 6'} 1241 | 1242 | forwarded@0.2.0: 1243 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1244 | engines: {node: '>= 0.6'} 1245 | 1246 | fresh@2.0.0: 1247 | resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} 1248 | engines: {node: '>= 0.8'} 1249 | 1250 | fs-extra@10.1.0: 1251 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 1252 | engines: {node: '>=12'} 1253 | 1254 | fs-monkey@1.1.0: 1255 | resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} 1256 | 1257 | function-bind@1.1.2: 1258 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1259 | 1260 | get-intrinsic@1.3.0: 1261 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 1262 | engines: {node: '>= 0.4'} 1263 | 1264 | get-proto@1.0.1: 1265 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1266 | engines: {node: '>= 0.4'} 1267 | 1268 | glob-parent@6.0.2: 1269 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1270 | engines: {node: '>=10.13.0'} 1271 | 1272 | glob-to-regexp@0.4.1: 1273 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1274 | 1275 | glob@13.0.0: 1276 | resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} 1277 | engines: {node: 20 || >=22} 1278 | 1279 | globals@14.0.0: 1280 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1281 | engines: {node: '>=18'} 1282 | 1283 | globals@16.5.0: 1284 | resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} 1285 | engines: {node: '>=18'} 1286 | 1287 | gopd@1.2.0: 1288 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1289 | engines: {node: '>= 0.4'} 1290 | 1291 | graceful-fs@4.2.11: 1292 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1293 | 1294 | has-flag@4.0.0: 1295 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1296 | engines: {node: '>=8'} 1297 | 1298 | has-symbols@1.1.0: 1299 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1300 | engines: {node: '>= 0.4'} 1301 | 1302 | has-tostringtag@1.0.2: 1303 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1304 | engines: {node: '>= 0.4'} 1305 | 1306 | hasown@2.0.2: 1307 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1308 | engines: {node: '>= 0.4'} 1309 | 1310 | http-errors@2.0.1: 1311 | resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} 1312 | engines: {node: '>= 0.8'} 1313 | 1314 | iconv-lite@0.7.1: 1315 | resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} 1316 | engines: {node: '>=0.10.0'} 1317 | 1318 | ieee754@1.2.1: 1319 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1320 | 1321 | ignore@5.3.2: 1322 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1323 | engines: {node: '>= 4'} 1324 | 1325 | ignore@7.0.5: 1326 | resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 1327 | engines: {node: '>= 4'} 1328 | 1329 | import-fresh@3.3.1: 1330 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1331 | engines: {node: '>=6'} 1332 | 1333 | imurmurhash@0.1.4: 1334 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1335 | engines: {node: '>=0.8.19'} 1336 | 1337 | inherits@2.0.4: 1338 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1339 | 1340 | ipaddr.js@1.9.1: 1341 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1342 | engines: {node: '>= 0.10'} 1343 | 1344 | is-arrayish@0.2.1: 1345 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1346 | 1347 | is-extglob@2.1.1: 1348 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1349 | engines: {node: '>=0.10.0'} 1350 | 1351 | is-fullwidth-code-point@3.0.0: 1352 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1353 | engines: {node: '>=8'} 1354 | 1355 | is-glob@4.0.3: 1356 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1357 | engines: {node: '>=0.10.0'} 1358 | 1359 | is-interactive@1.0.0: 1360 | resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} 1361 | engines: {node: '>=8'} 1362 | 1363 | is-number@7.0.0: 1364 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1365 | engines: {node: '>=0.12.0'} 1366 | 1367 | is-promise@4.0.0: 1368 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} 1369 | 1370 | is-unicode-supported@0.1.0: 1371 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 1372 | engines: {node: '>=10'} 1373 | 1374 | isexe@2.0.0: 1375 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1376 | 1377 | isows@1.0.7: 1378 | resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} 1379 | peerDependencies: 1380 | ws: '*' 1381 | 1382 | iterare@1.2.1: 1383 | resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} 1384 | engines: {node: '>=6'} 1385 | 1386 | jest-diff@30.2.0: 1387 | resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} 1388 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1389 | 1390 | jest-matcher-utils@30.2.0: 1391 | resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} 1392 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1393 | 1394 | jest-message-util@30.2.0: 1395 | resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} 1396 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1397 | 1398 | jest-mock@30.2.0: 1399 | resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} 1400 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1401 | 1402 | jest-regex-util@30.0.1: 1403 | resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} 1404 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1405 | 1406 | jest-util@30.2.0: 1407 | resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} 1408 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1409 | 1410 | jest-worker@27.5.1: 1411 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 1412 | engines: {node: '>= 10.13.0'} 1413 | 1414 | js-tokens@4.0.0: 1415 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1416 | 1417 | js-yaml@4.1.1: 1418 | resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 1419 | hasBin: true 1420 | 1421 | json-buffer@3.0.1: 1422 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1423 | 1424 | json-parse-even-better-errors@2.3.1: 1425 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1426 | 1427 | json-schema-traverse@0.4.1: 1428 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1429 | 1430 | json-schema-traverse@1.0.0: 1431 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1432 | 1433 | json-stable-stringify-without-jsonify@1.0.1: 1434 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1435 | 1436 | json5@2.2.3: 1437 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1438 | engines: {node: '>=6'} 1439 | hasBin: true 1440 | 1441 | jsonc-parser@3.3.1: 1442 | resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 1443 | 1444 | jsonfile@6.2.0: 1445 | resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} 1446 | 1447 | keyv@4.5.4: 1448 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1449 | 1450 | levn@0.4.1: 1451 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1452 | engines: {node: '>= 0.8.0'} 1453 | 1454 | lines-and-columns@1.2.4: 1455 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1456 | 1457 | load-esm@1.0.3: 1458 | resolution: {integrity: sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA==} 1459 | engines: {node: '>=13.2.0'} 1460 | 1461 | loader-runner@4.3.1: 1462 | resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} 1463 | engines: {node: '>=6.11.5'} 1464 | 1465 | locate-path@6.0.0: 1466 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1467 | engines: {node: '>=10'} 1468 | 1469 | lodash.merge@4.6.2: 1470 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1471 | 1472 | lodash@4.17.21: 1473 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1474 | 1475 | log-symbols@4.1.0: 1476 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1477 | engines: {node: '>=10'} 1478 | 1479 | lru-cache@11.2.4: 1480 | resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} 1481 | engines: {node: 20 || >=22} 1482 | 1483 | magic-string@0.30.17: 1484 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1485 | 1486 | make-error@1.3.6: 1487 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1488 | 1489 | math-intrinsics@1.1.0: 1490 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1491 | engines: {node: '>= 0.4'} 1492 | 1493 | media-typer@0.3.0: 1494 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1495 | engines: {node: '>= 0.6'} 1496 | 1497 | media-typer@1.1.0: 1498 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} 1499 | engines: {node: '>= 0.8'} 1500 | 1501 | memfs@3.5.3: 1502 | resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} 1503 | engines: {node: '>= 4.0.0'} 1504 | 1505 | merge-descriptors@2.0.0: 1506 | resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} 1507 | engines: {node: '>=18'} 1508 | 1509 | merge-stream@2.0.0: 1510 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1511 | 1512 | micromatch@4.0.8: 1513 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1514 | engines: {node: '>=8.6'} 1515 | 1516 | mime-db@1.52.0: 1517 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1518 | engines: {node: '>= 0.6'} 1519 | 1520 | mime-db@1.54.0: 1521 | resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} 1522 | engines: {node: '>= 0.6'} 1523 | 1524 | mime-types@2.1.35: 1525 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1526 | engines: {node: '>= 0.6'} 1527 | 1528 | mime-types@3.0.2: 1529 | resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} 1530 | engines: {node: '>=18'} 1531 | 1532 | mimic-fn@2.1.0: 1533 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1534 | engines: {node: '>=6'} 1535 | 1536 | minimatch@10.1.1: 1537 | resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} 1538 | engines: {node: 20 || >=22} 1539 | 1540 | minimatch@3.1.2: 1541 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1542 | 1543 | minimatch@9.0.5: 1544 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1545 | engines: {node: '>=16 || 14 >=14.17'} 1546 | 1547 | minimist@1.2.8: 1548 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1549 | 1550 | minipass@7.1.2: 1551 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1552 | engines: {node: '>=16 || 14 >=14.17'} 1553 | 1554 | mkdirp@0.5.6: 1555 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1556 | hasBin: true 1557 | 1558 | ms@2.1.3: 1559 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1560 | 1561 | multer@2.0.2: 1562 | resolution: {integrity: sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==} 1563 | engines: {node: '>= 10.16.0'} 1564 | 1565 | mute-stream@2.0.0: 1566 | resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} 1567 | engines: {node: ^18.17.0 || >=20.5.0} 1568 | 1569 | natural-compare@1.4.0: 1570 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1571 | 1572 | negotiator@1.0.0: 1573 | resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} 1574 | engines: {node: '>= 0.6'} 1575 | 1576 | neo-async@2.6.2: 1577 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1578 | 1579 | node-abort-controller@3.1.1: 1580 | resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} 1581 | 1582 | node-emoji@1.11.0: 1583 | resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} 1584 | 1585 | node-releases@2.0.27: 1586 | resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} 1587 | 1588 | object-assign@4.1.1: 1589 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1590 | engines: {node: '>=0.10.0'} 1591 | 1592 | object-inspect@1.13.4: 1593 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1594 | engines: {node: '>= 0.4'} 1595 | 1596 | on-finished@2.4.1: 1597 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1598 | engines: {node: '>= 0.8'} 1599 | 1600 | once@1.4.0: 1601 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1602 | 1603 | onetime@5.1.2: 1604 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1605 | engines: {node: '>=6'} 1606 | 1607 | optionator@0.9.4: 1608 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1609 | engines: {node: '>= 0.8.0'} 1610 | 1611 | ora@5.4.1: 1612 | resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} 1613 | engines: {node: '>=10'} 1614 | 1615 | ox@0.9.6: 1616 | resolution: {integrity: sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==} 1617 | peerDependencies: 1618 | typescript: '>=5.4.0' 1619 | peerDependenciesMeta: 1620 | typescript: 1621 | optional: true 1622 | 1623 | p-limit@3.1.0: 1624 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1625 | engines: {node: '>=10'} 1626 | 1627 | p-locate@5.0.0: 1628 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1629 | engines: {node: '>=10'} 1630 | 1631 | parent-module@1.0.1: 1632 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1633 | engines: {node: '>=6'} 1634 | 1635 | parse-json@5.2.0: 1636 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1637 | engines: {node: '>=8'} 1638 | 1639 | parseurl@1.3.3: 1640 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1641 | engines: {node: '>= 0.8'} 1642 | 1643 | path-exists@4.0.0: 1644 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1645 | engines: {node: '>=8'} 1646 | 1647 | path-key@3.1.1: 1648 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1649 | engines: {node: '>=8'} 1650 | 1651 | path-scurry@2.0.1: 1652 | resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} 1653 | engines: {node: 20 || >=22} 1654 | 1655 | path-to-regexp@8.3.0: 1656 | resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} 1657 | 1658 | path-type@4.0.0: 1659 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1660 | engines: {node: '>=8'} 1661 | 1662 | picocolors@1.1.1: 1663 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1664 | 1665 | picomatch@2.3.1: 1666 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1667 | engines: {node: '>=8.6'} 1668 | 1669 | picomatch@4.0.2: 1670 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1671 | engines: {node: '>=12'} 1672 | 1673 | picomatch@4.0.3: 1674 | resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1675 | engines: {node: '>=12'} 1676 | 1677 | pluralize@8.0.0: 1678 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 1679 | engines: {node: '>=4'} 1680 | 1681 | prelude-ls@1.2.1: 1682 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1683 | engines: {node: '>= 0.8.0'} 1684 | 1685 | prettier-linter-helpers@1.0.0: 1686 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 1687 | engines: {node: '>=6.0.0'} 1688 | 1689 | prettier@3.7.4: 1690 | resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} 1691 | engines: {node: '>=14'} 1692 | hasBin: true 1693 | 1694 | pretty-format@30.2.0: 1695 | resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} 1696 | engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} 1697 | 1698 | proxy-addr@2.0.7: 1699 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1700 | engines: {node: '>= 0.10'} 1701 | 1702 | punycode@2.3.1: 1703 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1704 | engines: {node: '>=6'} 1705 | 1706 | qs@6.14.0: 1707 | resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} 1708 | engines: {node: '>=0.6'} 1709 | 1710 | randombytes@2.1.0: 1711 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1712 | 1713 | range-parser@1.2.1: 1714 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1715 | engines: {node: '>= 0.6'} 1716 | 1717 | raw-body@3.0.2: 1718 | resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} 1719 | engines: {node: '>= 0.10'} 1720 | 1721 | react-is@18.3.1: 1722 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 1723 | 1724 | readable-stream@3.6.2: 1725 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1726 | engines: {node: '>= 6'} 1727 | 1728 | readdirp@4.1.2: 1729 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1730 | engines: {node: '>= 14.18.0'} 1731 | 1732 | reflect-metadata@0.2.2: 1733 | resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} 1734 | 1735 | require-from-string@2.0.2: 1736 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1737 | engines: {node: '>=0.10.0'} 1738 | 1739 | resolve-from@4.0.0: 1740 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1741 | engines: {node: '>=4'} 1742 | 1743 | restore-cursor@3.1.0: 1744 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 1745 | engines: {node: '>=8'} 1746 | 1747 | router@2.2.0: 1748 | resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} 1749 | engines: {node: '>= 18'} 1750 | 1751 | rxjs@7.8.1: 1752 | resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 1753 | 1754 | rxjs@7.8.2: 1755 | resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} 1756 | 1757 | safe-buffer@5.2.1: 1758 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1759 | 1760 | safer-buffer@2.1.2: 1761 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1762 | 1763 | schema-utils@3.3.0: 1764 | resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} 1765 | engines: {node: '>= 10.13.0'} 1766 | 1767 | schema-utils@4.3.3: 1768 | resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} 1769 | engines: {node: '>= 10.13.0'} 1770 | 1771 | semver@7.7.3: 1772 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1773 | engines: {node: '>=10'} 1774 | hasBin: true 1775 | 1776 | send@1.2.0: 1777 | resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} 1778 | engines: {node: '>= 18'} 1779 | 1780 | serialize-javascript@6.0.2: 1781 | resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 1782 | 1783 | serve-static@2.2.0: 1784 | resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} 1785 | engines: {node: '>= 18'} 1786 | 1787 | setprototypeof@1.2.0: 1788 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1789 | 1790 | shebang-command@2.0.0: 1791 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1792 | engines: {node: '>=8'} 1793 | 1794 | shebang-regex@3.0.0: 1795 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1796 | engines: {node: '>=8'} 1797 | 1798 | side-channel-list@1.0.0: 1799 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1800 | engines: {node: '>= 0.4'} 1801 | 1802 | side-channel-map@1.0.1: 1803 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1804 | engines: {node: '>= 0.4'} 1805 | 1806 | side-channel-weakmap@1.0.2: 1807 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1808 | engines: {node: '>= 0.4'} 1809 | 1810 | side-channel@1.1.0: 1811 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1812 | engines: {node: '>= 0.4'} 1813 | 1814 | signal-exit@3.0.7: 1815 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1816 | 1817 | signal-exit@4.1.0: 1818 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1819 | engines: {node: '>=14'} 1820 | 1821 | slash@3.0.0: 1822 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1823 | engines: {node: '>=8'} 1824 | 1825 | source-map-support@0.5.21: 1826 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1827 | 1828 | source-map@0.6.1: 1829 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1830 | engines: {node: '>=0.10.0'} 1831 | 1832 | source-map@0.7.4: 1833 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 1834 | engines: {node: '>= 8'} 1835 | 1836 | source-map@0.7.6: 1837 | resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} 1838 | engines: {node: '>= 12'} 1839 | 1840 | stack-utils@2.0.6: 1841 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} 1842 | engines: {node: '>=10'} 1843 | 1844 | statuses@2.0.2: 1845 | resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} 1846 | engines: {node: '>= 0.8'} 1847 | 1848 | streamsearch@1.1.0: 1849 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1850 | engines: {node: '>=10.0.0'} 1851 | 1852 | string-width@4.2.3: 1853 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1854 | engines: {node: '>=8'} 1855 | 1856 | string_decoder@1.3.0: 1857 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1858 | 1859 | strip-ansi@6.0.1: 1860 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1861 | engines: {node: '>=8'} 1862 | 1863 | strip-bom@3.0.0: 1864 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1865 | engines: {node: '>=4'} 1866 | 1867 | strip-json-comments@3.1.1: 1868 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1869 | engines: {node: '>=8'} 1870 | 1871 | strtok3@10.3.4: 1872 | resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} 1873 | engines: {node: '>=18'} 1874 | 1875 | supports-color@7.2.0: 1876 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1877 | engines: {node: '>=8'} 1878 | 1879 | supports-color@8.1.1: 1880 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1881 | engines: {node: '>=10'} 1882 | 1883 | symbol-observable@4.0.0: 1884 | resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} 1885 | engines: {node: '>=0.10'} 1886 | 1887 | synckit@0.11.11: 1888 | resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} 1889 | engines: {node: ^14.18.0 || >=16.0.0} 1890 | 1891 | tapable@2.3.0: 1892 | resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} 1893 | engines: {node: '>=6'} 1894 | 1895 | terser-webpack-plugin@5.3.16: 1896 | resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} 1897 | engines: {node: '>= 10.13.0'} 1898 | peerDependencies: 1899 | '@swc/core': '*' 1900 | esbuild: '*' 1901 | uglify-js: '*' 1902 | webpack: ^5.1.0 1903 | peerDependenciesMeta: 1904 | '@swc/core': 1905 | optional: true 1906 | esbuild: 1907 | optional: true 1908 | uglify-js: 1909 | optional: true 1910 | 1911 | terser@5.44.1: 1912 | resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} 1913 | engines: {node: '>=10'} 1914 | hasBin: true 1915 | 1916 | tinyglobby@0.2.15: 1917 | resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1918 | engines: {node: '>=12.0.0'} 1919 | 1920 | to-regex-range@5.0.1: 1921 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1922 | engines: {node: '>=8.0'} 1923 | 1924 | toidentifier@1.0.1: 1925 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1926 | engines: {node: '>=0.6'} 1927 | 1928 | token-types@6.1.1: 1929 | resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==} 1930 | engines: {node: '>=14.16'} 1931 | 1932 | ts-api-utils@2.1.0: 1933 | resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 1934 | engines: {node: '>=18.12'} 1935 | peerDependencies: 1936 | typescript: '>=4.8.4' 1937 | 1938 | ts-loader@9.5.4: 1939 | resolution: {integrity: sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==} 1940 | engines: {node: '>=12.0.0'} 1941 | peerDependencies: 1942 | typescript: '*' 1943 | webpack: ^5.0.0 1944 | 1945 | ts-node@10.9.2: 1946 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 1947 | hasBin: true 1948 | peerDependencies: 1949 | '@swc/core': '>=1.2.50' 1950 | '@swc/wasm': '>=1.2.50' 1951 | '@types/node': '*' 1952 | typescript: '>=2.7' 1953 | peerDependenciesMeta: 1954 | '@swc/core': 1955 | optional: true 1956 | '@swc/wasm': 1957 | optional: true 1958 | 1959 | tsconfig-paths-webpack-plugin@4.2.0: 1960 | resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} 1961 | engines: {node: '>=10.13.0'} 1962 | 1963 | tsconfig-paths@4.2.0: 1964 | resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} 1965 | engines: {node: '>=6'} 1966 | 1967 | tslib@2.8.1: 1968 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1969 | 1970 | type-check@0.4.0: 1971 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1972 | engines: {node: '>= 0.8.0'} 1973 | 1974 | type-is@1.6.18: 1975 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1976 | engines: {node: '>= 0.6'} 1977 | 1978 | type-is@2.0.1: 1979 | resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} 1980 | engines: {node: '>= 0.6'} 1981 | 1982 | typedarray@0.0.6: 1983 | resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} 1984 | 1985 | typescript-eslint@8.49.0: 1986 | resolution: {integrity: sha512-zRSVH1WXD0uXczCXw+nsdjGPUdx4dfrs5VQoHnUWmv1U3oNlAKv4FUNdLDhVUg+gYn+a5hUESqch//Rv5wVhrg==} 1987 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1988 | peerDependencies: 1989 | eslint: ^8.57.0 || ^9.0.0 1990 | typescript: '>=4.8.4 <6.0.0' 1991 | 1992 | typescript@5.9.3: 1993 | resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1994 | engines: {node: '>=14.17'} 1995 | hasBin: true 1996 | 1997 | uid@2.0.2: 1998 | resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} 1999 | engines: {node: '>=8'} 2000 | 2001 | uint8array-extras@1.5.0: 2002 | resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} 2003 | engines: {node: '>=18'} 2004 | 2005 | undici-types@6.21.0: 2006 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 2007 | 2008 | universalify@2.0.1: 2009 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 2010 | engines: {node: '>= 10.0.0'} 2011 | 2012 | unpipe@1.0.0: 2013 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 2014 | engines: {node: '>= 0.8'} 2015 | 2016 | update-browserslist-db@1.2.2: 2017 | resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} 2018 | hasBin: true 2019 | peerDependencies: 2020 | browserslist: '>= 4.21.0' 2021 | 2022 | uri-js@4.4.1: 2023 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2024 | 2025 | util-deprecate@1.0.2: 2026 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2027 | 2028 | v8-compile-cache-lib@3.0.1: 2029 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 2030 | 2031 | vary@1.1.2: 2032 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 2033 | engines: {node: '>= 0.8'} 2034 | 2035 | viem@2.41.2: 2036 | resolution: {integrity: sha512-LYliajglBe1FU6+EH9mSWozp+gRA/QcHfxeD9Odf83AdH5fwUS7DroH4gHvlv6Sshqi1uXrYFA2B/EOczxd15g==} 2037 | peerDependencies: 2038 | typescript: '>=5.0.4' 2039 | peerDependenciesMeta: 2040 | typescript: 2041 | optional: true 2042 | 2043 | watchpack@2.4.4: 2044 | resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} 2045 | engines: {node: '>=10.13.0'} 2046 | 2047 | wcwidth@1.0.1: 2048 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 2049 | 2050 | webpack-node-externals@3.0.0: 2051 | resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} 2052 | engines: {node: '>=6'} 2053 | 2054 | webpack-sources@3.3.3: 2055 | resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} 2056 | engines: {node: '>=10.13.0'} 2057 | 2058 | webpack@5.103.0: 2059 | resolution: {integrity: sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==} 2060 | engines: {node: '>=10.13.0'} 2061 | hasBin: true 2062 | peerDependencies: 2063 | webpack-cli: '*' 2064 | peerDependenciesMeta: 2065 | webpack-cli: 2066 | optional: true 2067 | 2068 | which@2.0.2: 2069 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2070 | engines: {node: '>= 8'} 2071 | hasBin: true 2072 | 2073 | word-wrap@1.2.5: 2074 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2075 | engines: {node: '>=0.10.0'} 2076 | 2077 | wrap-ansi@6.2.0: 2078 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 2079 | engines: {node: '>=8'} 2080 | 2081 | wrappy@1.0.2: 2082 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2083 | 2084 | ws@8.18.3: 2085 | resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} 2086 | engines: {node: '>=10.0.0'} 2087 | peerDependencies: 2088 | bufferutil: ^4.0.1 2089 | utf-8-validate: '>=5.0.2' 2090 | peerDependenciesMeta: 2091 | bufferutil: 2092 | optional: true 2093 | utf-8-validate: 2094 | optional: true 2095 | 2096 | xtend@4.0.2: 2097 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 2098 | engines: {node: '>=0.4'} 2099 | 2100 | yargs-parser@21.1.1: 2101 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2102 | engines: {node: '>=12'} 2103 | 2104 | yn@3.1.1: 2105 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2106 | engines: {node: '>=6'} 2107 | 2108 | yocto-queue@0.1.0: 2109 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2110 | engines: {node: '>=10'} 2111 | 2112 | yoctocolors-cjs@2.1.3: 2113 | resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} 2114 | engines: {node: '>=18'} 2115 | 2116 | snapshots: 2117 | 2118 | '@adraffy/ens-normalize@1.11.1': {} 2119 | 2120 | '@angular-devkit/core@19.2.17(chokidar@4.0.3)': 2121 | dependencies: 2122 | ajv: 8.17.1 2123 | ajv-formats: 3.0.1(ajv@8.17.1) 2124 | jsonc-parser: 3.3.1 2125 | picomatch: 4.0.2 2126 | rxjs: 7.8.1 2127 | source-map: 0.7.4 2128 | optionalDependencies: 2129 | chokidar: 4.0.3 2130 | 2131 | '@angular-devkit/core@19.2.19(chokidar@4.0.3)': 2132 | dependencies: 2133 | ajv: 8.17.1 2134 | ajv-formats: 3.0.1(ajv@8.17.1) 2135 | jsonc-parser: 3.3.1 2136 | picomatch: 4.0.2 2137 | rxjs: 7.8.1 2138 | source-map: 0.7.4 2139 | optionalDependencies: 2140 | chokidar: 4.0.3 2141 | 2142 | '@angular-devkit/schematics-cli@19.2.19(@types/node@22.19.2)(chokidar@4.0.3)': 2143 | dependencies: 2144 | '@angular-devkit/core': 19.2.19(chokidar@4.0.3) 2145 | '@angular-devkit/schematics': 19.2.19(chokidar@4.0.3) 2146 | '@inquirer/prompts': 7.3.2(@types/node@22.19.2) 2147 | ansi-colors: 4.1.3 2148 | symbol-observable: 4.0.0 2149 | yargs-parser: 21.1.1 2150 | transitivePeerDependencies: 2151 | - '@types/node' 2152 | - chokidar 2153 | 2154 | '@angular-devkit/schematics@19.2.17(chokidar@4.0.3)': 2155 | dependencies: 2156 | '@angular-devkit/core': 19.2.17(chokidar@4.0.3) 2157 | jsonc-parser: 3.3.1 2158 | magic-string: 0.30.17 2159 | ora: 5.4.1 2160 | rxjs: 7.8.1 2161 | transitivePeerDependencies: 2162 | - chokidar 2163 | 2164 | '@angular-devkit/schematics@19.2.19(chokidar@4.0.3)': 2165 | dependencies: 2166 | '@angular-devkit/core': 19.2.19(chokidar@4.0.3) 2167 | jsonc-parser: 3.3.1 2168 | magic-string: 0.30.17 2169 | ora: 5.4.1 2170 | rxjs: 7.8.1 2171 | transitivePeerDependencies: 2172 | - chokidar 2173 | 2174 | '@babel/code-frame@7.27.1': 2175 | dependencies: 2176 | '@babel/helper-validator-identifier': 7.28.5 2177 | js-tokens: 4.0.0 2178 | picocolors: 1.1.1 2179 | 2180 | '@babel/helper-validator-identifier@7.28.5': {} 2181 | 2182 | '@borewit/text-codec@0.1.1': {} 2183 | 2184 | '@colors/colors@1.5.0': 2185 | optional: true 2186 | 2187 | '@cspotcode/source-map-support@0.8.1': 2188 | dependencies: 2189 | '@jridgewell/trace-mapping': 0.3.9 2190 | 2191 | '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)': 2192 | dependencies: 2193 | eslint: 9.39.1 2194 | eslint-visitor-keys: 3.4.3 2195 | 2196 | '@eslint-community/regexpp@4.12.2': {} 2197 | 2198 | '@eslint/config-array@0.21.1': 2199 | dependencies: 2200 | '@eslint/object-schema': 2.1.7 2201 | debug: 4.4.3 2202 | minimatch: 3.1.2 2203 | transitivePeerDependencies: 2204 | - supports-color 2205 | 2206 | '@eslint/config-helpers@0.4.2': 2207 | dependencies: 2208 | '@eslint/core': 0.17.0 2209 | 2210 | '@eslint/core@0.17.0': 2211 | dependencies: 2212 | '@types/json-schema': 7.0.15 2213 | 2214 | '@eslint/eslintrc@3.3.3': 2215 | dependencies: 2216 | ajv: 6.12.6 2217 | debug: 4.4.3 2218 | espree: 10.4.0 2219 | globals: 14.0.0 2220 | ignore: 5.3.2 2221 | import-fresh: 3.3.1 2222 | js-yaml: 4.1.1 2223 | minimatch: 3.1.2 2224 | strip-json-comments: 3.1.1 2225 | transitivePeerDependencies: 2226 | - supports-color 2227 | 2228 | '@eslint/js@9.39.1': {} 2229 | 2230 | '@eslint/object-schema@2.1.7': {} 2231 | 2232 | '@eslint/plugin-kit@0.4.1': 2233 | dependencies: 2234 | '@eslint/core': 0.17.0 2235 | levn: 0.4.1 2236 | 2237 | '@humanfs/core@0.19.1': {} 2238 | 2239 | '@humanfs/node@0.16.7': 2240 | dependencies: 2241 | '@humanfs/core': 0.19.1 2242 | '@humanwhocodes/retry': 0.4.3 2243 | 2244 | '@humanwhocodes/module-importer@1.0.1': {} 2245 | 2246 | '@humanwhocodes/retry@0.4.3': {} 2247 | 2248 | '@inquirer/ansi@1.0.2': {} 2249 | 2250 | '@inquirer/checkbox@4.3.2(@types/node@22.19.2)': 2251 | dependencies: 2252 | '@inquirer/ansi': 1.0.2 2253 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2254 | '@inquirer/figures': 1.0.15 2255 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2256 | yoctocolors-cjs: 2.1.3 2257 | optionalDependencies: 2258 | '@types/node': 22.19.2 2259 | 2260 | '@inquirer/confirm@5.1.21(@types/node@22.19.2)': 2261 | dependencies: 2262 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2263 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2264 | optionalDependencies: 2265 | '@types/node': 22.19.2 2266 | 2267 | '@inquirer/core@10.3.2(@types/node@22.19.2)': 2268 | dependencies: 2269 | '@inquirer/ansi': 1.0.2 2270 | '@inquirer/figures': 1.0.15 2271 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2272 | cli-width: 4.1.0 2273 | mute-stream: 2.0.0 2274 | signal-exit: 4.1.0 2275 | wrap-ansi: 6.2.0 2276 | yoctocolors-cjs: 2.1.3 2277 | optionalDependencies: 2278 | '@types/node': 22.19.2 2279 | 2280 | '@inquirer/editor@4.2.23(@types/node@22.19.2)': 2281 | dependencies: 2282 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2283 | '@inquirer/external-editor': 1.0.3(@types/node@22.19.2) 2284 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2285 | optionalDependencies: 2286 | '@types/node': 22.19.2 2287 | 2288 | '@inquirer/expand@4.0.23(@types/node@22.19.2)': 2289 | dependencies: 2290 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2291 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2292 | yoctocolors-cjs: 2.1.3 2293 | optionalDependencies: 2294 | '@types/node': 22.19.2 2295 | 2296 | '@inquirer/external-editor@1.0.3(@types/node@22.19.2)': 2297 | dependencies: 2298 | chardet: 2.1.1 2299 | iconv-lite: 0.7.1 2300 | optionalDependencies: 2301 | '@types/node': 22.19.2 2302 | 2303 | '@inquirer/figures@1.0.15': {} 2304 | 2305 | '@inquirer/input@4.3.1(@types/node@22.19.2)': 2306 | dependencies: 2307 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2308 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2309 | optionalDependencies: 2310 | '@types/node': 22.19.2 2311 | 2312 | '@inquirer/number@3.0.23(@types/node@22.19.2)': 2313 | dependencies: 2314 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2315 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2316 | optionalDependencies: 2317 | '@types/node': 22.19.2 2318 | 2319 | '@inquirer/password@4.0.23(@types/node@22.19.2)': 2320 | dependencies: 2321 | '@inquirer/ansi': 1.0.2 2322 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2323 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2324 | optionalDependencies: 2325 | '@types/node': 22.19.2 2326 | 2327 | '@inquirer/prompts@7.10.1(@types/node@22.19.2)': 2328 | dependencies: 2329 | '@inquirer/checkbox': 4.3.2(@types/node@22.19.2) 2330 | '@inquirer/confirm': 5.1.21(@types/node@22.19.2) 2331 | '@inquirer/editor': 4.2.23(@types/node@22.19.2) 2332 | '@inquirer/expand': 4.0.23(@types/node@22.19.2) 2333 | '@inquirer/input': 4.3.1(@types/node@22.19.2) 2334 | '@inquirer/number': 3.0.23(@types/node@22.19.2) 2335 | '@inquirer/password': 4.0.23(@types/node@22.19.2) 2336 | '@inquirer/rawlist': 4.1.11(@types/node@22.19.2) 2337 | '@inquirer/search': 3.2.2(@types/node@22.19.2) 2338 | '@inquirer/select': 4.4.2(@types/node@22.19.2) 2339 | optionalDependencies: 2340 | '@types/node': 22.19.2 2341 | 2342 | '@inquirer/prompts@7.3.2(@types/node@22.19.2)': 2343 | dependencies: 2344 | '@inquirer/checkbox': 4.3.2(@types/node@22.19.2) 2345 | '@inquirer/confirm': 5.1.21(@types/node@22.19.2) 2346 | '@inquirer/editor': 4.2.23(@types/node@22.19.2) 2347 | '@inquirer/expand': 4.0.23(@types/node@22.19.2) 2348 | '@inquirer/input': 4.3.1(@types/node@22.19.2) 2349 | '@inquirer/number': 3.0.23(@types/node@22.19.2) 2350 | '@inquirer/password': 4.0.23(@types/node@22.19.2) 2351 | '@inquirer/rawlist': 4.1.11(@types/node@22.19.2) 2352 | '@inquirer/search': 3.2.2(@types/node@22.19.2) 2353 | '@inquirer/select': 4.4.2(@types/node@22.19.2) 2354 | optionalDependencies: 2355 | '@types/node': 22.19.2 2356 | 2357 | '@inquirer/rawlist@4.1.11(@types/node@22.19.2)': 2358 | dependencies: 2359 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2360 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2361 | yoctocolors-cjs: 2.1.3 2362 | optionalDependencies: 2363 | '@types/node': 22.19.2 2364 | 2365 | '@inquirer/search@3.2.2(@types/node@22.19.2)': 2366 | dependencies: 2367 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2368 | '@inquirer/figures': 1.0.15 2369 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2370 | yoctocolors-cjs: 2.1.3 2371 | optionalDependencies: 2372 | '@types/node': 22.19.2 2373 | 2374 | '@inquirer/select@4.4.2(@types/node@22.19.2)': 2375 | dependencies: 2376 | '@inquirer/ansi': 1.0.2 2377 | '@inquirer/core': 10.3.2(@types/node@22.19.2) 2378 | '@inquirer/figures': 1.0.15 2379 | '@inquirer/type': 3.0.10(@types/node@22.19.2) 2380 | yoctocolors-cjs: 2.1.3 2381 | optionalDependencies: 2382 | '@types/node': 22.19.2 2383 | 2384 | '@inquirer/type@3.0.10(@types/node@22.19.2)': 2385 | optionalDependencies: 2386 | '@types/node': 22.19.2 2387 | 2388 | '@isaacs/balanced-match@4.0.1': {} 2389 | 2390 | '@isaacs/brace-expansion@5.0.0': 2391 | dependencies: 2392 | '@isaacs/balanced-match': 4.0.1 2393 | 2394 | '@jest/diff-sequences@30.0.1': {} 2395 | 2396 | '@jest/expect-utils@30.2.0': 2397 | dependencies: 2398 | '@jest/get-type': 30.1.0 2399 | 2400 | '@jest/get-type@30.1.0': {} 2401 | 2402 | '@jest/pattern@30.0.1': 2403 | dependencies: 2404 | '@types/node': 22.19.2 2405 | jest-regex-util: 30.0.1 2406 | 2407 | '@jest/schemas@30.0.5': 2408 | dependencies: 2409 | '@sinclair/typebox': 0.34.41 2410 | 2411 | '@jest/types@30.2.0': 2412 | dependencies: 2413 | '@jest/pattern': 30.0.1 2414 | '@jest/schemas': 30.0.5 2415 | '@types/istanbul-lib-coverage': 2.0.6 2416 | '@types/istanbul-reports': 3.0.4 2417 | '@types/node': 22.19.2 2418 | '@types/yargs': 17.0.35 2419 | chalk: 4.1.2 2420 | 2421 | '@jridgewell/gen-mapping@0.3.13': 2422 | dependencies: 2423 | '@jridgewell/sourcemap-codec': 1.5.5 2424 | '@jridgewell/trace-mapping': 0.3.31 2425 | 2426 | '@jridgewell/resolve-uri@3.1.2': {} 2427 | 2428 | '@jridgewell/source-map@0.3.11': 2429 | dependencies: 2430 | '@jridgewell/gen-mapping': 0.3.13 2431 | '@jridgewell/trace-mapping': 0.3.31 2432 | 2433 | '@jridgewell/sourcemap-codec@1.5.5': {} 2434 | 2435 | '@jridgewell/trace-mapping@0.3.31': 2436 | dependencies: 2437 | '@jridgewell/resolve-uri': 3.1.2 2438 | '@jridgewell/sourcemap-codec': 1.5.5 2439 | 2440 | '@jridgewell/trace-mapping@0.3.9': 2441 | dependencies: 2442 | '@jridgewell/resolve-uri': 3.1.2 2443 | '@jridgewell/sourcemap-codec': 1.5.5 2444 | 2445 | '@lukeed/csprng@1.1.0': {} 2446 | 2447 | '@nestjs/cli@11.0.14(@types/node@22.19.2)': 2448 | dependencies: 2449 | '@angular-devkit/core': 19.2.19(chokidar@4.0.3) 2450 | '@angular-devkit/schematics': 19.2.19(chokidar@4.0.3) 2451 | '@angular-devkit/schematics-cli': 19.2.19(@types/node@22.19.2)(chokidar@4.0.3) 2452 | '@inquirer/prompts': 7.10.1(@types/node@22.19.2) 2453 | '@nestjs/schematics': 11.0.9(chokidar@4.0.3)(typescript@5.9.3) 2454 | ansis: 4.2.0 2455 | chokidar: 4.0.3 2456 | cli-table3: 0.6.5 2457 | commander: 4.1.1 2458 | fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.103.0) 2459 | glob: 13.0.0 2460 | node-emoji: 1.11.0 2461 | ora: 5.4.1 2462 | tsconfig-paths: 4.2.0 2463 | tsconfig-paths-webpack-plugin: 4.2.0 2464 | typescript: 5.9.3 2465 | webpack: 5.103.0 2466 | webpack-node-externals: 3.0.0 2467 | transitivePeerDependencies: 2468 | - '@types/node' 2469 | - esbuild 2470 | - uglify-js 2471 | - webpack-cli 2472 | 2473 | '@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2)': 2474 | dependencies: 2475 | file-type: 21.1.0 2476 | iterare: 1.2.1 2477 | load-esm: 1.0.3 2478 | reflect-metadata: 0.2.2 2479 | rxjs: 7.8.2 2480 | tslib: 2.8.1 2481 | uid: 2.0.2 2482 | transitivePeerDependencies: 2483 | - supports-color 2484 | 2485 | '@nestjs/config@4.0.2(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(rxjs@7.8.2)': 2486 | dependencies: 2487 | '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) 2488 | dotenv: 16.4.7 2489 | dotenv-expand: 12.0.1 2490 | lodash: 4.17.21 2491 | rxjs: 7.8.2 2492 | 2493 | '@nestjs/core@11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)': 2494 | dependencies: 2495 | '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) 2496 | '@nuxt/opencollective': 0.4.1 2497 | fast-safe-stringify: 2.1.1 2498 | iterare: 1.2.1 2499 | path-to-regexp: 8.3.0 2500 | reflect-metadata: 0.2.2 2501 | rxjs: 7.8.2 2502 | tslib: 2.8.1 2503 | uid: 2.0.2 2504 | optionalDependencies: 2505 | '@nestjs/platform-express': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) 2506 | 2507 | '@nestjs/platform-express@11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)': 2508 | dependencies: 2509 | '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) 2510 | '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) 2511 | cors: 2.8.5 2512 | express: 5.1.0 2513 | multer: 2.0.2 2514 | path-to-regexp: 8.3.0 2515 | tslib: 2.8.1 2516 | transitivePeerDependencies: 2517 | - supports-color 2518 | 2519 | '@nestjs/schematics@11.0.9(chokidar@4.0.3)(typescript@5.9.3)': 2520 | dependencies: 2521 | '@angular-devkit/core': 19.2.17(chokidar@4.0.3) 2522 | '@angular-devkit/schematics': 19.2.17(chokidar@4.0.3) 2523 | comment-json: 4.4.1 2524 | jsonc-parser: 3.3.1 2525 | pluralize: 8.0.0 2526 | typescript: 5.9.3 2527 | transitivePeerDependencies: 2528 | - chokidar 2529 | 2530 | '@nestjs/testing@11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-express@11.1.9)': 2531 | dependencies: 2532 | '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) 2533 | '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) 2534 | tslib: 2.8.1 2535 | optionalDependencies: 2536 | '@nestjs/platform-express': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) 2537 | 2538 | '@noble/ciphers@1.3.0': {} 2539 | 2540 | '@noble/curves@1.9.1': 2541 | dependencies: 2542 | '@noble/hashes': 1.8.0 2543 | 2544 | '@noble/hashes@1.8.0': {} 2545 | 2546 | '@nuxt/opencollective@0.4.1': 2547 | dependencies: 2548 | consola: 3.4.2 2549 | 2550 | '@pkgr/core@0.2.9': {} 2551 | 2552 | '@scure/base@1.2.6': {} 2553 | 2554 | '@scure/bip32@1.7.0': 2555 | dependencies: 2556 | '@noble/curves': 1.9.1 2557 | '@noble/hashes': 1.8.0 2558 | '@scure/base': 1.2.6 2559 | 2560 | '@scure/bip39@1.6.0': 2561 | dependencies: 2562 | '@noble/hashes': 1.8.0 2563 | '@scure/base': 1.2.6 2564 | 2565 | '@sinclair/typebox@0.34.41': {} 2566 | 2567 | '@tokenizer/inflate@0.3.1': 2568 | dependencies: 2569 | debug: 4.4.3 2570 | fflate: 0.8.2 2571 | token-types: 6.1.1 2572 | transitivePeerDependencies: 2573 | - supports-color 2574 | 2575 | '@tokenizer/token@0.3.0': {} 2576 | 2577 | '@tsconfig/node10@1.0.12': {} 2578 | 2579 | '@tsconfig/node12@1.0.11': {} 2580 | 2581 | '@tsconfig/node14@1.0.3': {} 2582 | 2583 | '@tsconfig/node16@1.0.4': {} 2584 | 2585 | '@types/body-parser@1.19.6': 2586 | dependencies: 2587 | '@types/connect': 3.4.38 2588 | '@types/node': 22.19.2 2589 | 2590 | '@types/connect@3.4.38': 2591 | dependencies: 2592 | '@types/node': 22.19.2 2593 | 2594 | '@types/cookiejar@2.1.5': {} 2595 | 2596 | '@types/eslint-scope@3.7.7': 2597 | dependencies: 2598 | '@types/eslint': 9.6.1 2599 | '@types/estree': 1.0.8 2600 | 2601 | '@types/eslint@9.6.1': 2602 | dependencies: 2603 | '@types/estree': 1.0.8 2604 | '@types/json-schema': 7.0.15 2605 | 2606 | '@types/estree@1.0.8': {} 2607 | 2608 | '@types/express-serve-static-core@5.1.0': 2609 | dependencies: 2610 | '@types/node': 22.19.2 2611 | '@types/qs': 6.14.0 2612 | '@types/range-parser': 1.2.7 2613 | '@types/send': 1.2.1 2614 | 2615 | '@types/express@5.0.6': 2616 | dependencies: 2617 | '@types/body-parser': 1.19.6 2618 | '@types/express-serve-static-core': 5.1.0 2619 | '@types/serve-static': 2.2.0 2620 | 2621 | '@types/http-errors@2.0.5': {} 2622 | 2623 | '@types/istanbul-lib-coverage@2.0.6': {} 2624 | 2625 | '@types/istanbul-lib-report@3.0.3': 2626 | dependencies: 2627 | '@types/istanbul-lib-coverage': 2.0.6 2628 | 2629 | '@types/istanbul-reports@3.0.4': 2630 | dependencies: 2631 | '@types/istanbul-lib-report': 3.0.3 2632 | 2633 | '@types/jest@30.0.0': 2634 | dependencies: 2635 | expect: 30.2.0 2636 | pretty-format: 30.2.0 2637 | 2638 | '@types/json-schema@7.0.15': {} 2639 | 2640 | '@types/methods@1.1.4': {} 2641 | 2642 | '@types/node@22.19.2': 2643 | dependencies: 2644 | undici-types: 6.21.0 2645 | 2646 | '@types/qs@6.14.0': {} 2647 | 2648 | '@types/range-parser@1.2.7': {} 2649 | 2650 | '@types/send@1.2.1': 2651 | dependencies: 2652 | '@types/node': 22.19.2 2653 | 2654 | '@types/serve-static@2.2.0': 2655 | dependencies: 2656 | '@types/http-errors': 2.0.5 2657 | '@types/node': 22.19.2 2658 | 2659 | '@types/stack-utils@2.0.3': {} 2660 | 2661 | '@types/superagent@8.1.9': 2662 | dependencies: 2663 | '@types/cookiejar': 2.1.5 2664 | '@types/methods': 1.1.4 2665 | '@types/node': 22.19.2 2666 | form-data: 4.0.5 2667 | 2668 | '@types/supertest@6.0.3': 2669 | dependencies: 2670 | '@types/methods': 1.1.4 2671 | '@types/superagent': 8.1.9 2672 | 2673 | '@types/yargs-parser@21.0.3': {} 2674 | 2675 | '@types/yargs@17.0.35': 2676 | dependencies: 2677 | '@types/yargs-parser': 21.0.3 2678 | 2679 | '@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)': 2680 | dependencies: 2681 | '@eslint-community/regexpp': 4.12.2 2682 | '@typescript-eslint/parser': 8.49.0(eslint@9.39.1)(typescript@5.9.3) 2683 | '@typescript-eslint/scope-manager': 8.49.0 2684 | '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) 2685 | '@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) 2686 | '@typescript-eslint/visitor-keys': 8.49.0 2687 | eslint: 9.39.1 2688 | ignore: 7.0.5 2689 | natural-compare: 1.4.0 2690 | ts-api-utils: 2.1.0(typescript@5.9.3) 2691 | typescript: 5.9.3 2692 | transitivePeerDependencies: 2693 | - supports-color 2694 | 2695 | '@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3)': 2696 | dependencies: 2697 | '@typescript-eslint/scope-manager': 8.49.0 2698 | '@typescript-eslint/types': 8.49.0 2699 | '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) 2700 | '@typescript-eslint/visitor-keys': 8.49.0 2701 | debug: 4.4.3 2702 | eslint: 9.39.1 2703 | typescript: 5.9.3 2704 | transitivePeerDependencies: 2705 | - supports-color 2706 | 2707 | '@typescript-eslint/project-service@8.49.0(typescript@5.9.3)': 2708 | dependencies: 2709 | '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) 2710 | '@typescript-eslint/types': 8.49.0 2711 | debug: 4.4.3 2712 | typescript: 5.9.3 2713 | transitivePeerDependencies: 2714 | - supports-color 2715 | 2716 | '@typescript-eslint/scope-manager@8.49.0': 2717 | dependencies: 2718 | '@typescript-eslint/types': 8.49.0 2719 | '@typescript-eslint/visitor-keys': 8.49.0 2720 | 2721 | '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.9.3)': 2722 | dependencies: 2723 | typescript: 5.9.3 2724 | 2725 | '@typescript-eslint/type-utils@8.49.0(eslint@9.39.1)(typescript@5.9.3)': 2726 | dependencies: 2727 | '@typescript-eslint/types': 8.49.0 2728 | '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) 2729 | '@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) 2730 | debug: 4.4.3 2731 | eslint: 9.39.1 2732 | ts-api-utils: 2.1.0(typescript@5.9.3) 2733 | typescript: 5.9.3 2734 | transitivePeerDependencies: 2735 | - supports-color 2736 | 2737 | '@typescript-eslint/types@8.49.0': {} 2738 | 2739 | '@typescript-eslint/typescript-estree@8.49.0(typescript@5.9.3)': 2740 | dependencies: 2741 | '@typescript-eslint/project-service': 8.49.0(typescript@5.9.3) 2742 | '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) 2743 | '@typescript-eslint/types': 8.49.0 2744 | '@typescript-eslint/visitor-keys': 8.49.0 2745 | debug: 4.4.3 2746 | minimatch: 9.0.5 2747 | semver: 7.7.3 2748 | tinyglobby: 0.2.15 2749 | ts-api-utils: 2.1.0(typescript@5.9.3) 2750 | typescript: 5.9.3 2751 | transitivePeerDependencies: 2752 | - supports-color 2753 | 2754 | '@typescript-eslint/utils@8.49.0(eslint@9.39.1)(typescript@5.9.3)': 2755 | dependencies: 2756 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) 2757 | '@typescript-eslint/scope-manager': 8.49.0 2758 | '@typescript-eslint/types': 8.49.0 2759 | '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) 2760 | eslint: 9.39.1 2761 | typescript: 5.9.3 2762 | transitivePeerDependencies: 2763 | - supports-color 2764 | 2765 | '@typescript-eslint/visitor-keys@8.49.0': 2766 | dependencies: 2767 | '@typescript-eslint/types': 8.49.0 2768 | eslint-visitor-keys: 4.2.1 2769 | 2770 | '@webassemblyjs/ast@1.14.1': 2771 | dependencies: 2772 | '@webassemblyjs/helper-numbers': 1.13.2 2773 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2774 | 2775 | '@webassemblyjs/floating-point-hex-parser@1.13.2': {} 2776 | 2777 | '@webassemblyjs/helper-api-error@1.13.2': {} 2778 | 2779 | '@webassemblyjs/helper-buffer@1.14.1': {} 2780 | 2781 | '@webassemblyjs/helper-numbers@1.13.2': 2782 | dependencies: 2783 | '@webassemblyjs/floating-point-hex-parser': 1.13.2 2784 | '@webassemblyjs/helper-api-error': 1.13.2 2785 | '@xtuc/long': 4.2.2 2786 | 2787 | '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} 2788 | 2789 | '@webassemblyjs/helper-wasm-section@1.14.1': 2790 | dependencies: 2791 | '@webassemblyjs/ast': 1.14.1 2792 | '@webassemblyjs/helper-buffer': 1.14.1 2793 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2794 | '@webassemblyjs/wasm-gen': 1.14.1 2795 | 2796 | '@webassemblyjs/ieee754@1.13.2': 2797 | dependencies: 2798 | '@xtuc/ieee754': 1.2.0 2799 | 2800 | '@webassemblyjs/leb128@1.13.2': 2801 | dependencies: 2802 | '@xtuc/long': 4.2.2 2803 | 2804 | '@webassemblyjs/utf8@1.13.2': {} 2805 | 2806 | '@webassemblyjs/wasm-edit@1.14.1': 2807 | dependencies: 2808 | '@webassemblyjs/ast': 1.14.1 2809 | '@webassemblyjs/helper-buffer': 1.14.1 2810 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2811 | '@webassemblyjs/helper-wasm-section': 1.14.1 2812 | '@webassemblyjs/wasm-gen': 1.14.1 2813 | '@webassemblyjs/wasm-opt': 1.14.1 2814 | '@webassemblyjs/wasm-parser': 1.14.1 2815 | '@webassemblyjs/wast-printer': 1.14.1 2816 | 2817 | '@webassemblyjs/wasm-gen@1.14.1': 2818 | dependencies: 2819 | '@webassemblyjs/ast': 1.14.1 2820 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2821 | '@webassemblyjs/ieee754': 1.13.2 2822 | '@webassemblyjs/leb128': 1.13.2 2823 | '@webassemblyjs/utf8': 1.13.2 2824 | 2825 | '@webassemblyjs/wasm-opt@1.14.1': 2826 | dependencies: 2827 | '@webassemblyjs/ast': 1.14.1 2828 | '@webassemblyjs/helper-buffer': 1.14.1 2829 | '@webassemblyjs/wasm-gen': 1.14.1 2830 | '@webassemblyjs/wasm-parser': 1.14.1 2831 | 2832 | '@webassemblyjs/wasm-parser@1.14.1': 2833 | dependencies: 2834 | '@webassemblyjs/ast': 1.14.1 2835 | '@webassemblyjs/helper-api-error': 1.13.2 2836 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2837 | '@webassemblyjs/ieee754': 1.13.2 2838 | '@webassemblyjs/leb128': 1.13.2 2839 | '@webassemblyjs/utf8': 1.13.2 2840 | 2841 | '@webassemblyjs/wast-printer@1.14.1': 2842 | dependencies: 2843 | '@webassemblyjs/ast': 1.14.1 2844 | '@xtuc/long': 4.2.2 2845 | 2846 | '@xtuc/ieee754@1.2.0': {} 2847 | 2848 | '@xtuc/long@4.2.2': {} 2849 | 2850 | abitype@1.1.0(typescript@5.9.3): 2851 | optionalDependencies: 2852 | typescript: 5.9.3 2853 | 2854 | accepts@2.0.0: 2855 | dependencies: 2856 | mime-types: 3.0.2 2857 | negotiator: 1.0.0 2858 | 2859 | acorn-import-phases@1.0.4(acorn@8.15.0): 2860 | dependencies: 2861 | acorn: 8.15.0 2862 | 2863 | acorn-jsx@5.3.2(acorn@8.15.0): 2864 | dependencies: 2865 | acorn: 8.15.0 2866 | 2867 | acorn-walk@8.3.4: 2868 | dependencies: 2869 | acorn: 8.15.0 2870 | 2871 | acorn@8.15.0: {} 2872 | 2873 | ajv-formats@2.1.1(ajv@8.17.1): 2874 | optionalDependencies: 2875 | ajv: 8.17.1 2876 | 2877 | ajv-formats@3.0.1(ajv@8.17.1): 2878 | optionalDependencies: 2879 | ajv: 8.17.1 2880 | 2881 | ajv-keywords@3.5.2(ajv@6.12.6): 2882 | dependencies: 2883 | ajv: 6.12.6 2884 | 2885 | ajv-keywords@5.1.0(ajv@8.17.1): 2886 | dependencies: 2887 | ajv: 8.17.1 2888 | fast-deep-equal: 3.1.3 2889 | 2890 | ajv@6.12.6: 2891 | dependencies: 2892 | fast-deep-equal: 3.1.3 2893 | fast-json-stable-stringify: 2.1.0 2894 | json-schema-traverse: 0.4.1 2895 | uri-js: 4.4.1 2896 | 2897 | ajv@8.17.1: 2898 | dependencies: 2899 | fast-deep-equal: 3.1.3 2900 | fast-uri: 3.1.0 2901 | json-schema-traverse: 1.0.0 2902 | require-from-string: 2.0.2 2903 | 2904 | ansi-colors@4.1.3: {} 2905 | 2906 | ansi-regex@5.0.1: {} 2907 | 2908 | ansi-styles@4.3.0: 2909 | dependencies: 2910 | color-convert: 2.0.1 2911 | 2912 | ansi-styles@5.2.0: {} 2913 | 2914 | ansis@4.2.0: {} 2915 | 2916 | append-field@1.0.0: {} 2917 | 2918 | arg@4.1.3: {} 2919 | 2920 | argparse@2.0.1: {} 2921 | 2922 | array-timsort@1.0.3: {} 2923 | 2924 | asynckit@0.4.0: {} 2925 | 2926 | balanced-match@1.0.2: {} 2927 | 2928 | base64-js@1.5.1: {} 2929 | 2930 | baseline-browser-mapping@2.9.7: {} 2931 | 2932 | bl@4.1.0: 2933 | dependencies: 2934 | buffer: 5.7.1 2935 | inherits: 2.0.4 2936 | readable-stream: 3.6.2 2937 | 2938 | body-parser@2.2.1: 2939 | dependencies: 2940 | bytes: 3.1.2 2941 | content-type: 1.0.5 2942 | debug: 4.4.3 2943 | http-errors: 2.0.1 2944 | iconv-lite: 0.7.1 2945 | on-finished: 2.4.1 2946 | qs: 6.14.0 2947 | raw-body: 3.0.2 2948 | type-is: 2.0.1 2949 | transitivePeerDependencies: 2950 | - supports-color 2951 | 2952 | brace-expansion@1.1.12: 2953 | dependencies: 2954 | balanced-match: 1.0.2 2955 | concat-map: 0.0.1 2956 | 2957 | brace-expansion@2.0.2: 2958 | dependencies: 2959 | balanced-match: 1.0.2 2960 | 2961 | braces@3.0.3: 2962 | dependencies: 2963 | fill-range: 7.1.1 2964 | 2965 | browserslist@4.28.1: 2966 | dependencies: 2967 | baseline-browser-mapping: 2.9.7 2968 | caniuse-lite: 1.0.30001760 2969 | electron-to-chromium: 1.5.267 2970 | node-releases: 2.0.27 2971 | update-browserslist-db: 1.2.2(browserslist@4.28.1) 2972 | 2973 | buffer-from@1.1.2: {} 2974 | 2975 | buffer@5.7.1: 2976 | dependencies: 2977 | base64-js: 1.5.1 2978 | ieee754: 1.2.1 2979 | 2980 | busboy@1.6.0: 2981 | dependencies: 2982 | streamsearch: 1.1.0 2983 | 2984 | bytes@3.1.2: {} 2985 | 2986 | call-bind-apply-helpers@1.0.2: 2987 | dependencies: 2988 | es-errors: 1.3.0 2989 | function-bind: 1.1.2 2990 | 2991 | call-bound@1.0.4: 2992 | dependencies: 2993 | call-bind-apply-helpers: 1.0.2 2994 | get-intrinsic: 1.3.0 2995 | 2996 | callsites@3.1.0: {} 2997 | 2998 | caniuse-lite@1.0.30001760: {} 2999 | 3000 | chalk@4.1.2: 3001 | dependencies: 3002 | ansi-styles: 4.3.0 3003 | supports-color: 7.2.0 3004 | 3005 | chardet@2.1.1: {} 3006 | 3007 | chokidar@4.0.3: 3008 | dependencies: 3009 | readdirp: 4.1.2 3010 | 3011 | chrome-trace-event@1.0.4: {} 3012 | 3013 | ci-info@4.3.1: {} 3014 | 3015 | cli-cursor@3.1.0: 3016 | dependencies: 3017 | restore-cursor: 3.1.0 3018 | 3019 | cli-spinners@2.9.2: {} 3020 | 3021 | cli-table3@0.6.5: 3022 | dependencies: 3023 | string-width: 4.2.3 3024 | optionalDependencies: 3025 | '@colors/colors': 1.5.0 3026 | 3027 | cli-width@4.1.0: {} 3028 | 3029 | clone@1.0.4: {} 3030 | 3031 | color-convert@2.0.1: 3032 | dependencies: 3033 | color-name: 1.1.4 3034 | 3035 | color-name@1.1.4: {} 3036 | 3037 | combined-stream@1.0.8: 3038 | dependencies: 3039 | delayed-stream: 1.0.0 3040 | 3041 | commander@2.20.3: {} 3042 | 3043 | commander@4.1.1: {} 3044 | 3045 | comment-json@4.4.1: 3046 | dependencies: 3047 | array-timsort: 1.0.3 3048 | core-util-is: 1.0.3 3049 | esprima: 4.0.1 3050 | 3051 | concat-map@0.0.1: {} 3052 | 3053 | concat-stream@2.0.0: 3054 | dependencies: 3055 | buffer-from: 1.1.2 3056 | inherits: 2.0.4 3057 | readable-stream: 3.6.2 3058 | typedarray: 0.0.6 3059 | 3060 | consola@3.4.2: {} 3061 | 3062 | content-disposition@1.0.1: {} 3063 | 3064 | content-type@1.0.5: {} 3065 | 3066 | cookie-signature@1.2.2: {} 3067 | 3068 | cookie@0.7.2: {} 3069 | 3070 | core-util-is@1.0.3: {} 3071 | 3072 | cors@2.8.5: 3073 | dependencies: 3074 | object-assign: 4.1.1 3075 | vary: 1.1.2 3076 | 3077 | cosmiconfig@8.3.6(typescript@5.9.3): 3078 | dependencies: 3079 | import-fresh: 3.3.1 3080 | js-yaml: 4.1.1 3081 | parse-json: 5.2.0 3082 | path-type: 4.0.0 3083 | optionalDependencies: 3084 | typescript: 5.9.3 3085 | 3086 | create-require@1.1.1: {} 3087 | 3088 | cross-spawn@7.0.6: 3089 | dependencies: 3090 | path-key: 3.1.1 3091 | shebang-command: 2.0.0 3092 | which: 2.0.2 3093 | 3094 | debug@4.4.3: 3095 | dependencies: 3096 | ms: 2.1.3 3097 | 3098 | deep-is@0.1.4: {} 3099 | 3100 | deepmerge@4.3.1: {} 3101 | 3102 | defaults@1.0.4: 3103 | dependencies: 3104 | clone: 1.0.4 3105 | 3106 | delayed-stream@1.0.0: {} 3107 | 3108 | depd@2.0.0: {} 3109 | 3110 | diff@4.0.2: {} 3111 | 3112 | dotenv-expand@12.0.1: 3113 | dependencies: 3114 | dotenv: 16.4.7 3115 | 3116 | dotenv@16.4.7: {} 3117 | 3118 | dunder-proto@1.0.1: 3119 | dependencies: 3120 | call-bind-apply-helpers: 1.0.2 3121 | es-errors: 1.3.0 3122 | gopd: 1.2.0 3123 | 3124 | ee-first@1.1.1: {} 3125 | 3126 | electron-to-chromium@1.5.267: {} 3127 | 3128 | emoji-regex@8.0.0: {} 3129 | 3130 | encodeurl@2.0.0: {} 3131 | 3132 | enhanced-resolve@5.18.4: 3133 | dependencies: 3134 | graceful-fs: 4.2.11 3135 | tapable: 2.3.0 3136 | 3137 | error-ex@1.3.4: 3138 | dependencies: 3139 | is-arrayish: 0.2.1 3140 | 3141 | es-define-property@1.0.1: {} 3142 | 3143 | es-errors@1.3.0: {} 3144 | 3145 | es-module-lexer@1.7.0: {} 3146 | 3147 | es-object-atoms@1.1.1: 3148 | dependencies: 3149 | es-errors: 1.3.0 3150 | 3151 | es-set-tostringtag@2.1.0: 3152 | dependencies: 3153 | es-errors: 1.3.0 3154 | get-intrinsic: 1.3.0 3155 | has-tostringtag: 1.0.2 3156 | hasown: 2.0.2 3157 | 3158 | escalade@3.2.0: {} 3159 | 3160 | escape-html@1.0.3: {} 3161 | 3162 | escape-string-regexp@2.0.0: {} 3163 | 3164 | escape-string-regexp@4.0.0: {} 3165 | 3166 | eslint-config-prettier@10.1.8(eslint@9.39.1): 3167 | dependencies: 3168 | eslint: 9.39.1 3169 | 3170 | eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.7.4): 3171 | dependencies: 3172 | eslint: 9.39.1 3173 | prettier: 3.7.4 3174 | prettier-linter-helpers: 1.0.0 3175 | synckit: 0.11.11 3176 | optionalDependencies: 3177 | '@types/eslint': 9.6.1 3178 | eslint-config-prettier: 10.1.8(eslint@9.39.1) 3179 | 3180 | eslint-scope@5.1.1: 3181 | dependencies: 3182 | esrecurse: 4.3.0 3183 | estraverse: 4.3.0 3184 | 3185 | eslint-scope@8.4.0: 3186 | dependencies: 3187 | esrecurse: 4.3.0 3188 | estraverse: 5.3.0 3189 | 3190 | eslint-visitor-keys@3.4.3: {} 3191 | 3192 | eslint-visitor-keys@4.2.1: {} 3193 | 3194 | eslint@9.39.1: 3195 | dependencies: 3196 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) 3197 | '@eslint-community/regexpp': 4.12.2 3198 | '@eslint/config-array': 0.21.1 3199 | '@eslint/config-helpers': 0.4.2 3200 | '@eslint/core': 0.17.0 3201 | '@eslint/eslintrc': 3.3.3 3202 | '@eslint/js': 9.39.1 3203 | '@eslint/plugin-kit': 0.4.1 3204 | '@humanfs/node': 0.16.7 3205 | '@humanwhocodes/module-importer': 1.0.1 3206 | '@humanwhocodes/retry': 0.4.3 3207 | '@types/estree': 1.0.8 3208 | ajv: 6.12.6 3209 | chalk: 4.1.2 3210 | cross-spawn: 7.0.6 3211 | debug: 4.4.3 3212 | escape-string-regexp: 4.0.0 3213 | eslint-scope: 8.4.0 3214 | eslint-visitor-keys: 4.2.1 3215 | espree: 10.4.0 3216 | esquery: 1.6.0 3217 | esutils: 2.0.3 3218 | fast-deep-equal: 3.1.3 3219 | file-entry-cache: 8.0.0 3220 | find-up: 5.0.0 3221 | glob-parent: 6.0.2 3222 | ignore: 5.3.2 3223 | imurmurhash: 0.1.4 3224 | is-glob: 4.0.3 3225 | json-stable-stringify-without-jsonify: 1.0.1 3226 | lodash.merge: 4.6.2 3227 | minimatch: 3.1.2 3228 | natural-compare: 1.4.0 3229 | optionator: 0.9.4 3230 | transitivePeerDependencies: 3231 | - supports-color 3232 | 3233 | espree@10.4.0: 3234 | dependencies: 3235 | acorn: 8.15.0 3236 | acorn-jsx: 5.3.2(acorn@8.15.0) 3237 | eslint-visitor-keys: 4.2.1 3238 | 3239 | esprima@4.0.1: {} 3240 | 3241 | esquery@1.6.0: 3242 | dependencies: 3243 | estraverse: 5.3.0 3244 | 3245 | esrecurse@4.3.0: 3246 | dependencies: 3247 | estraverse: 5.3.0 3248 | 3249 | estraverse@4.3.0: {} 3250 | 3251 | estraverse@5.3.0: {} 3252 | 3253 | esutils@2.0.3: {} 3254 | 3255 | etag@1.8.1: {} 3256 | 3257 | eventemitter3@5.0.1: {} 3258 | 3259 | events@3.3.0: {} 3260 | 3261 | expect@30.2.0: 3262 | dependencies: 3263 | '@jest/expect-utils': 30.2.0 3264 | '@jest/get-type': 30.1.0 3265 | jest-matcher-utils: 30.2.0 3266 | jest-message-util: 30.2.0 3267 | jest-mock: 30.2.0 3268 | jest-util: 30.2.0 3269 | 3270 | express@5.1.0: 3271 | dependencies: 3272 | accepts: 2.0.0 3273 | body-parser: 2.2.1 3274 | content-disposition: 1.0.1 3275 | content-type: 1.0.5 3276 | cookie: 0.7.2 3277 | cookie-signature: 1.2.2 3278 | debug: 4.4.3 3279 | encodeurl: 2.0.0 3280 | escape-html: 1.0.3 3281 | etag: 1.8.1 3282 | finalhandler: 2.1.1 3283 | fresh: 2.0.0 3284 | http-errors: 2.0.1 3285 | merge-descriptors: 2.0.0 3286 | mime-types: 3.0.2 3287 | on-finished: 2.4.1 3288 | once: 1.4.0 3289 | parseurl: 1.3.3 3290 | proxy-addr: 2.0.7 3291 | qs: 6.14.0 3292 | range-parser: 1.2.1 3293 | router: 2.2.0 3294 | send: 1.2.0 3295 | serve-static: 2.2.0 3296 | statuses: 2.0.2 3297 | type-is: 2.0.1 3298 | vary: 1.1.2 3299 | transitivePeerDependencies: 3300 | - supports-color 3301 | 3302 | fast-deep-equal@3.1.3: {} 3303 | 3304 | fast-diff@1.3.0: {} 3305 | 3306 | fast-json-stable-stringify@2.1.0: {} 3307 | 3308 | fast-levenshtein@2.0.6: {} 3309 | 3310 | fast-safe-stringify@2.1.1: {} 3311 | 3312 | fast-uri@3.1.0: {} 3313 | 3314 | fdir@6.5.0(picomatch@4.0.3): 3315 | optionalDependencies: 3316 | picomatch: 4.0.3 3317 | 3318 | fflate@0.8.2: {} 3319 | 3320 | file-entry-cache@8.0.0: 3321 | dependencies: 3322 | flat-cache: 4.0.1 3323 | 3324 | file-type@21.1.0: 3325 | dependencies: 3326 | '@tokenizer/inflate': 0.3.1 3327 | strtok3: 10.3.4 3328 | token-types: 6.1.1 3329 | uint8array-extras: 1.5.0 3330 | transitivePeerDependencies: 3331 | - supports-color 3332 | 3333 | fill-range@7.1.1: 3334 | dependencies: 3335 | to-regex-range: 5.0.1 3336 | 3337 | finalhandler@2.1.1: 3338 | dependencies: 3339 | debug: 4.4.3 3340 | encodeurl: 2.0.0 3341 | escape-html: 1.0.3 3342 | on-finished: 2.4.1 3343 | parseurl: 1.3.3 3344 | statuses: 2.0.2 3345 | transitivePeerDependencies: 3346 | - supports-color 3347 | 3348 | find-up@5.0.0: 3349 | dependencies: 3350 | locate-path: 6.0.0 3351 | path-exists: 4.0.0 3352 | 3353 | flat-cache@4.0.1: 3354 | dependencies: 3355 | flatted: 3.3.3 3356 | keyv: 4.5.4 3357 | 3358 | flatted@3.3.3: {} 3359 | 3360 | fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.103.0): 3361 | dependencies: 3362 | '@babel/code-frame': 7.27.1 3363 | chalk: 4.1.2 3364 | chokidar: 4.0.3 3365 | cosmiconfig: 8.3.6(typescript@5.9.3) 3366 | deepmerge: 4.3.1 3367 | fs-extra: 10.1.0 3368 | memfs: 3.5.3 3369 | minimatch: 3.1.2 3370 | node-abort-controller: 3.1.1 3371 | schema-utils: 3.3.0 3372 | semver: 7.7.3 3373 | tapable: 2.3.0 3374 | typescript: 5.9.3 3375 | webpack: 5.103.0 3376 | 3377 | form-data@4.0.5: 3378 | dependencies: 3379 | asynckit: 0.4.0 3380 | combined-stream: 1.0.8 3381 | es-set-tostringtag: 2.1.0 3382 | hasown: 2.0.2 3383 | mime-types: 2.1.35 3384 | 3385 | forwarded@0.2.0: {} 3386 | 3387 | fresh@2.0.0: {} 3388 | 3389 | fs-extra@10.1.0: 3390 | dependencies: 3391 | graceful-fs: 4.2.11 3392 | jsonfile: 6.2.0 3393 | universalify: 2.0.1 3394 | 3395 | fs-monkey@1.1.0: {} 3396 | 3397 | function-bind@1.1.2: {} 3398 | 3399 | get-intrinsic@1.3.0: 3400 | dependencies: 3401 | call-bind-apply-helpers: 1.0.2 3402 | es-define-property: 1.0.1 3403 | es-errors: 1.3.0 3404 | es-object-atoms: 1.1.1 3405 | function-bind: 1.1.2 3406 | get-proto: 1.0.1 3407 | gopd: 1.2.0 3408 | has-symbols: 1.1.0 3409 | hasown: 2.0.2 3410 | math-intrinsics: 1.1.0 3411 | 3412 | get-proto@1.0.1: 3413 | dependencies: 3414 | dunder-proto: 1.0.1 3415 | es-object-atoms: 1.1.1 3416 | 3417 | glob-parent@6.0.2: 3418 | dependencies: 3419 | is-glob: 4.0.3 3420 | 3421 | glob-to-regexp@0.4.1: {} 3422 | 3423 | glob@13.0.0: 3424 | dependencies: 3425 | minimatch: 10.1.1 3426 | minipass: 7.1.2 3427 | path-scurry: 2.0.1 3428 | 3429 | globals@14.0.0: {} 3430 | 3431 | globals@16.5.0: {} 3432 | 3433 | gopd@1.2.0: {} 3434 | 3435 | graceful-fs@4.2.11: {} 3436 | 3437 | has-flag@4.0.0: {} 3438 | 3439 | has-symbols@1.1.0: {} 3440 | 3441 | has-tostringtag@1.0.2: 3442 | dependencies: 3443 | has-symbols: 1.1.0 3444 | 3445 | hasown@2.0.2: 3446 | dependencies: 3447 | function-bind: 1.1.2 3448 | 3449 | http-errors@2.0.1: 3450 | dependencies: 3451 | depd: 2.0.0 3452 | inherits: 2.0.4 3453 | setprototypeof: 1.2.0 3454 | statuses: 2.0.2 3455 | toidentifier: 1.0.1 3456 | 3457 | iconv-lite@0.7.1: 3458 | dependencies: 3459 | safer-buffer: 2.1.2 3460 | 3461 | ieee754@1.2.1: {} 3462 | 3463 | ignore@5.3.2: {} 3464 | 3465 | ignore@7.0.5: {} 3466 | 3467 | import-fresh@3.3.1: 3468 | dependencies: 3469 | parent-module: 1.0.1 3470 | resolve-from: 4.0.0 3471 | 3472 | imurmurhash@0.1.4: {} 3473 | 3474 | inherits@2.0.4: {} 3475 | 3476 | ipaddr.js@1.9.1: {} 3477 | 3478 | is-arrayish@0.2.1: {} 3479 | 3480 | is-extglob@2.1.1: {} 3481 | 3482 | is-fullwidth-code-point@3.0.0: {} 3483 | 3484 | is-glob@4.0.3: 3485 | dependencies: 3486 | is-extglob: 2.1.1 3487 | 3488 | is-interactive@1.0.0: {} 3489 | 3490 | is-number@7.0.0: {} 3491 | 3492 | is-promise@4.0.0: {} 3493 | 3494 | is-unicode-supported@0.1.0: {} 3495 | 3496 | isexe@2.0.0: {} 3497 | 3498 | isows@1.0.7(ws@8.18.3): 3499 | dependencies: 3500 | ws: 8.18.3 3501 | 3502 | iterare@1.2.1: {} 3503 | 3504 | jest-diff@30.2.0: 3505 | dependencies: 3506 | '@jest/diff-sequences': 30.0.1 3507 | '@jest/get-type': 30.1.0 3508 | chalk: 4.1.2 3509 | pretty-format: 30.2.0 3510 | 3511 | jest-matcher-utils@30.2.0: 3512 | dependencies: 3513 | '@jest/get-type': 30.1.0 3514 | chalk: 4.1.2 3515 | jest-diff: 30.2.0 3516 | pretty-format: 30.2.0 3517 | 3518 | jest-message-util@30.2.0: 3519 | dependencies: 3520 | '@babel/code-frame': 7.27.1 3521 | '@jest/types': 30.2.0 3522 | '@types/stack-utils': 2.0.3 3523 | chalk: 4.1.2 3524 | graceful-fs: 4.2.11 3525 | micromatch: 4.0.8 3526 | pretty-format: 30.2.0 3527 | slash: 3.0.0 3528 | stack-utils: 2.0.6 3529 | 3530 | jest-mock@30.2.0: 3531 | dependencies: 3532 | '@jest/types': 30.2.0 3533 | '@types/node': 22.19.2 3534 | jest-util: 30.2.0 3535 | 3536 | jest-regex-util@30.0.1: {} 3537 | 3538 | jest-util@30.2.0: 3539 | dependencies: 3540 | '@jest/types': 30.2.0 3541 | '@types/node': 22.19.2 3542 | chalk: 4.1.2 3543 | ci-info: 4.3.1 3544 | graceful-fs: 4.2.11 3545 | picomatch: 4.0.3 3546 | 3547 | jest-worker@27.5.1: 3548 | dependencies: 3549 | '@types/node': 22.19.2 3550 | merge-stream: 2.0.0 3551 | supports-color: 8.1.1 3552 | 3553 | js-tokens@4.0.0: {} 3554 | 3555 | js-yaml@4.1.1: 3556 | dependencies: 3557 | argparse: 2.0.1 3558 | 3559 | json-buffer@3.0.1: {} 3560 | 3561 | json-parse-even-better-errors@2.3.1: {} 3562 | 3563 | json-schema-traverse@0.4.1: {} 3564 | 3565 | json-schema-traverse@1.0.0: {} 3566 | 3567 | json-stable-stringify-without-jsonify@1.0.1: {} 3568 | 3569 | json5@2.2.3: {} 3570 | 3571 | jsonc-parser@3.3.1: {} 3572 | 3573 | jsonfile@6.2.0: 3574 | dependencies: 3575 | universalify: 2.0.1 3576 | optionalDependencies: 3577 | graceful-fs: 4.2.11 3578 | 3579 | keyv@4.5.4: 3580 | dependencies: 3581 | json-buffer: 3.0.1 3582 | 3583 | levn@0.4.1: 3584 | dependencies: 3585 | prelude-ls: 1.2.1 3586 | type-check: 0.4.0 3587 | 3588 | lines-and-columns@1.2.4: {} 3589 | 3590 | load-esm@1.0.3: {} 3591 | 3592 | loader-runner@4.3.1: {} 3593 | 3594 | locate-path@6.0.0: 3595 | dependencies: 3596 | p-locate: 5.0.0 3597 | 3598 | lodash.merge@4.6.2: {} 3599 | 3600 | lodash@4.17.21: {} 3601 | 3602 | log-symbols@4.1.0: 3603 | dependencies: 3604 | chalk: 4.1.2 3605 | is-unicode-supported: 0.1.0 3606 | 3607 | lru-cache@11.2.4: {} 3608 | 3609 | magic-string@0.30.17: 3610 | dependencies: 3611 | '@jridgewell/sourcemap-codec': 1.5.5 3612 | 3613 | make-error@1.3.6: {} 3614 | 3615 | math-intrinsics@1.1.0: {} 3616 | 3617 | media-typer@0.3.0: {} 3618 | 3619 | media-typer@1.1.0: {} 3620 | 3621 | memfs@3.5.3: 3622 | dependencies: 3623 | fs-monkey: 1.1.0 3624 | 3625 | merge-descriptors@2.0.0: {} 3626 | 3627 | merge-stream@2.0.0: {} 3628 | 3629 | micromatch@4.0.8: 3630 | dependencies: 3631 | braces: 3.0.3 3632 | picomatch: 2.3.1 3633 | 3634 | mime-db@1.52.0: {} 3635 | 3636 | mime-db@1.54.0: {} 3637 | 3638 | mime-types@2.1.35: 3639 | dependencies: 3640 | mime-db: 1.52.0 3641 | 3642 | mime-types@3.0.2: 3643 | dependencies: 3644 | mime-db: 1.54.0 3645 | 3646 | mimic-fn@2.1.0: {} 3647 | 3648 | minimatch@10.1.1: 3649 | dependencies: 3650 | '@isaacs/brace-expansion': 5.0.0 3651 | 3652 | minimatch@3.1.2: 3653 | dependencies: 3654 | brace-expansion: 1.1.12 3655 | 3656 | minimatch@9.0.5: 3657 | dependencies: 3658 | brace-expansion: 2.0.2 3659 | 3660 | minimist@1.2.8: {} 3661 | 3662 | minipass@7.1.2: {} 3663 | 3664 | mkdirp@0.5.6: 3665 | dependencies: 3666 | minimist: 1.2.8 3667 | 3668 | ms@2.1.3: {} 3669 | 3670 | multer@2.0.2: 3671 | dependencies: 3672 | append-field: 1.0.0 3673 | busboy: 1.6.0 3674 | concat-stream: 2.0.0 3675 | mkdirp: 0.5.6 3676 | object-assign: 4.1.1 3677 | type-is: 1.6.18 3678 | xtend: 4.0.2 3679 | 3680 | mute-stream@2.0.0: {} 3681 | 3682 | natural-compare@1.4.0: {} 3683 | 3684 | negotiator@1.0.0: {} 3685 | 3686 | neo-async@2.6.2: {} 3687 | 3688 | node-abort-controller@3.1.1: {} 3689 | 3690 | node-emoji@1.11.0: 3691 | dependencies: 3692 | lodash: 4.17.21 3693 | 3694 | node-releases@2.0.27: {} 3695 | 3696 | object-assign@4.1.1: {} 3697 | 3698 | object-inspect@1.13.4: {} 3699 | 3700 | on-finished@2.4.1: 3701 | dependencies: 3702 | ee-first: 1.1.1 3703 | 3704 | once@1.4.0: 3705 | dependencies: 3706 | wrappy: 1.0.2 3707 | 3708 | onetime@5.1.2: 3709 | dependencies: 3710 | mimic-fn: 2.1.0 3711 | 3712 | optionator@0.9.4: 3713 | dependencies: 3714 | deep-is: 0.1.4 3715 | fast-levenshtein: 2.0.6 3716 | levn: 0.4.1 3717 | prelude-ls: 1.2.1 3718 | type-check: 0.4.0 3719 | word-wrap: 1.2.5 3720 | 3721 | ora@5.4.1: 3722 | dependencies: 3723 | bl: 4.1.0 3724 | chalk: 4.1.2 3725 | cli-cursor: 3.1.0 3726 | cli-spinners: 2.9.2 3727 | is-interactive: 1.0.0 3728 | is-unicode-supported: 0.1.0 3729 | log-symbols: 4.1.0 3730 | strip-ansi: 6.0.1 3731 | wcwidth: 1.0.1 3732 | 3733 | ox@0.9.6(typescript@5.9.3): 3734 | dependencies: 3735 | '@adraffy/ens-normalize': 1.11.1 3736 | '@noble/ciphers': 1.3.0 3737 | '@noble/curves': 1.9.1 3738 | '@noble/hashes': 1.8.0 3739 | '@scure/bip32': 1.7.0 3740 | '@scure/bip39': 1.6.0 3741 | abitype: 1.1.0(typescript@5.9.3) 3742 | eventemitter3: 5.0.1 3743 | optionalDependencies: 3744 | typescript: 5.9.3 3745 | transitivePeerDependencies: 3746 | - zod 3747 | 3748 | p-limit@3.1.0: 3749 | dependencies: 3750 | yocto-queue: 0.1.0 3751 | 3752 | p-locate@5.0.0: 3753 | dependencies: 3754 | p-limit: 3.1.0 3755 | 3756 | parent-module@1.0.1: 3757 | dependencies: 3758 | callsites: 3.1.0 3759 | 3760 | parse-json@5.2.0: 3761 | dependencies: 3762 | '@babel/code-frame': 7.27.1 3763 | error-ex: 1.3.4 3764 | json-parse-even-better-errors: 2.3.1 3765 | lines-and-columns: 1.2.4 3766 | 3767 | parseurl@1.3.3: {} 3768 | 3769 | path-exists@4.0.0: {} 3770 | 3771 | path-key@3.1.1: {} 3772 | 3773 | path-scurry@2.0.1: 3774 | dependencies: 3775 | lru-cache: 11.2.4 3776 | minipass: 7.1.2 3777 | 3778 | path-to-regexp@8.3.0: {} 3779 | 3780 | path-type@4.0.0: {} 3781 | 3782 | picocolors@1.1.1: {} 3783 | 3784 | picomatch@2.3.1: {} 3785 | 3786 | picomatch@4.0.2: {} 3787 | 3788 | picomatch@4.0.3: {} 3789 | 3790 | pluralize@8.0.0: {} 3791 | 3792 | prelude-ls@1.2.1: {} 3793 | 3794 | prettier-linter-helpers@1.0.0: 3795 | dependencies: 3796 | fast-diff: 1.3.0 3797 | 3798 | prettier@3.7.4: {} 3799 | 3800 | pretty-format@30.2.0: 3801 | dependencies: 3802 | '@jest/schemas': 30.0.5 3803 | ansi-styles: 5.2.0 3804 | react-is: 18.3.1 3805 | 3806 | proxy-addr@2.0.7: 3807 | dependencies: 3808 | forwarded: 0.2.0 3809 | ipaddr.js: 1.9.1 3810 | 3811 | punycode@2.3.1: {} 3812 | 3813 | qs@6.14.0: 3814 | dependencies: 3815 | side-channel: 1.1.0 3816 | 3817 | randombytes@2.1.0: 3818 | dependencies: 3819 | safe-buffer: 5.2.1 3820 | 3821 | range-parser@1.2.1: {} 3822 | 3823 | raw-body@3.0.2: 3824 | dependencies: 3825 | bytes: 3.1.2 3826 | http-errors: 2.0.1 3827 | iconv-lite: 0.7.1 3828 | unpipe: 1.0.0 3829 | 3830 | react-is@18.3.1: {} 3831 | 3832 | readable-stream@3.6.2: 3833 | dependencies: 3834 | inherits: 2.0.4 3835 | string_decoder: 1.3.0 3836 | util-deprecate: 1.0.2 3837 | 3838 | readdirp@4.1.2: {} 3839 | 3840 | reflect-metadata@0.2.2: {} 3841 | 3842 | require-from-string@2.0.2: {} 3843 | 3844 | resolve-from@4.0.0: {} 3845 | 3846 | restore-cursor@3.1.0: 3847 | dependencies: 3848 | onetime: 5.1.2 3849 | signal-exit: 3.0.7 3850 | 3851 | router@2.2.0: 3852 | dependencies: 3853 | debug: 4.4.3 3854 | depd: 2.0.0 3855 | is-promise: 4.0.0 3856 | parseurl: 1.3.3 3857 | path-to-regexp: 8.3.0 3858 | transitivePeerDependencies: 3859 | - supports-color 3860 | 3861 | rxjs@7.8.1: 3862 | dependencies: 3863 | tslib: 2.8.1 3864 | 3865 | rxjs@7.8.2: 3866 | dependencies: 3867 | tslib: 2.8.1 3868 | 3869 | safe-buffer@5.2.1: {} 3870 | 3871 | safer-buffer@2.1.2: {} 3872 | 3873 | schema-utils@3.3.0: 3874 | dependencies: 3875 | '@types/json-schema': 7.0.15 3876 | ajv: 6.12.6 3877 | ajv-keywords: 3.5.2(ajv@6.12.6) 3878 | 3879 | schema-utils@4.3.3: 3880 | dependencies: 3881 | '@types/json-schema': 7.0.15 3882 | ajv: 8.17.1 3883 | ajv-formats: 2.1.1(ajv@8.17.1) 3884 | ajv-keywords: 5.1.0(ajv@8.17.1) 3885 | 3886 | semver@7.7.3: {} 3887 | 3888 | send@1.2.0: 3889 | dependencies: 3890 | debug: 4.4.3 3891 | encodeurl: 2.0.0 3892 | escape-html: 1.0.3 3893 | etag: 1.8.1 3894 | fresh: 2.0.0 3895 | http-errors: 2.0.1 3896 | mime-types: 3.0.2 3897 | ms: 2.1.3 3898 | on-finished: 2.4.1 3899 | range-parser: 1.2.1 3900 | statuses: 2.0.2 3901 | transitivePeerDependencies: 3902 | - supports-color 3903 | 3904 | serialize-javascript@6.0.2: 3905 | dependencies: 3906 | randombytes: 2.1.0 3907 | 3908 | serve-static@2.2.0: 3909 | dependencies: 3910 | encodeurl: 2.0.0 3911 | escape-html: 1.0.3 3912 | parseurl: 1.3.3 3913 | send: 1.2.0 3914 | transitivePeerDependencies: 3915 | - supports-color 3916 | 3917 | setprototypeof@1.2.0: {} 3918 | 3919 | shebang-command@2.0.0: 3920 | dependencies: 3921 | shebang-regex: 3.0.0 3922 | 3923 | shebang-regex@3.0.0: {} 3924 | 3925 | side-channel-list@1.0.0: 3926 | dependencies: 3927 | es-errors: 1.3.0 3928 | object-inspect: 1.13.4 3929 | 3930 | side-channel-map@1.0.1: 3931 | dependencies: 3932 | call-bound: 1.0.4 3933 | es-errors: 1.3.0 3934 | get-intrinsic: 1.3.0 3935 | object-inspect: 1.13.4 3936 | 3937 | side-channel-weakmap@1.0.2: 3938 | dependencies: 3939 | call-bound: 1.0.4 3940 | es-errors: 1.3.0 3941 | get-intrinsic: 1.3.0 3942 | object-inspect: 1.13.4 3943 | side-channel-map: 1.0.1 3944 | 3945 | side-channel@1.1.0: 3946 | dependencies: 3947 | es-errors: 1.3.0 3948 | object-inspect: 1.13.4 3949 | side-channel-list: 1.0.0 3950 | side-channel-map: 1.0.1 3951 | side-channel-weakmap: 1.0.2 3952 | 3953 | signal-exit@3.0.7: {} 3954 | 3955 | signal-exit@4.1.0: {} 3956 | 3957 | slash@3.0.0: {} 3958 | 3959 | source-map-support@0.5.21: 3960 | dependencies: 3961 | buffer-from: 1.1.2 3962 | source-map: 0.6.1 3963 | 3964 | source-map@0.6.1: {} 3965 | 3966 | source-map@0.7.4: {} 3967 | 3968 | source-map@0.7.6: {} 3969 | 3970 | stack-utils@2.0.6: 3971 | dependencies: 3972 | escape-string-regexp: 2.0.0 3973 | 3974 | statuses@2.0.2: {} 3975 | 3976 | streamsearch@1.1.0: {} 3977 | 3978 | string-width@4.2.3: 3979 | dependencies: 3980 | emoji-regex: 8.0.0 3981 | is-fullwidth-code-point: 3.0.0 3982 | strip-ansi: 6.0.1 3983 | 3984 | string_decoder@1.3.0: 3985 | dependencies: 3986 | safe-buffer: 5.2.1 3987 | 3988 | strip-ansi@6.0.1: 3989 | dependencies: 3990 | ansi-regex: 5.0.1 3991 | 3992 | strip-bom@3.0.0: {} 3993 | 3994 | strip-json-comments@3.1.1: {} 3995 | 3996 | strtok3@10.3.4: 3997 | dependencies: 3998 | '@tokenizer/token': 0.3.0 3999 | 4000 | supports-color@7.2.0: 4001 | dependencies: 4002 | has-flag: 4.0.0 4003 | 4004 | supports-color@8.1.1: 4005 | dependencies: 4006 | has-flag: 4.0.0 4007 | 4008 | symbol-observable@4.0.0: {} 4009 | 4010 | synckit@0.11.11: 4011 | dependencies: 4012 | '@pkgr/core': 0.2.9 4013 | 4014 | tapable@2.3.0: {} 4015 | 4016 | terser-webpack-plugin@5.3.16(webpack@5.103.0): 4017 | dependencies: 4018 | '@jridgewell/trace-mapping': 0.3.31 4019 | jest-worker: 27.5.1 4020 | schema-utils: 4.3.3 4021 | serialize-javascript: 6.0.2 4022 | terser: 5.44.1 4023 | webpack: 5.103.0 4024 | 4025 | terser@5.44.1: 4026 | dependencies: 4027 | '@jridgewell/source-map': 0.3.11 4028 | acorn: 8.15.0 4029 | commander: 2.20.3 4030 | source-map-support: 0.5.21 4031 | 4032 | tinyglobby@0.2.15: 4033 | dependencies: 4034 | fdir: 6.5.0(picomatch@4.0.3) 4035 | picomatch: 4.0.3 4036 | 4037 | to-regex-range@5.0.1: 4038 | dependencies: 4039 | is-number: 7.0.0 4040 | 4041 | toidentifier@1.0.1: {} 4042 | 4043 | token-types@6.1.1: 4044 | dependencies: 4045 | '@borewit/text-codec': 0.1.1 4046 | '@tokenizer/token': 0.3.0 4047 | ieee754: 1.2.1 4048 | 4049 | ts-api-utils@2.1.0(typescript@5.9.3): 4050 | dependencies: 4051 | typescript: 5.9.3 4052 | 4053 | ts-loader@9.5.4(typescript@5.9.3)(webpack@5.103.0): 4054 | dependencies: 4055 | chalk: 4.1.2 4056 | enhanced-resolve: 5.18.4 4057 | micromatch: 4.0.8 4058 | semver: 7.7.3 4059 | source-map: 0.7.6 4060 | typescript: 5.9.3 4061 | webpack: 5.103.0 4062 | 4063 | ts-node@10.9.2(@types/node@22.19.2)(typescript@5.9.3): 4064 | dependencies: 4065 | '@cspotcode/source-map-support': 0.8.1 4066 | '@tsconfig/node10': 1.0.12 4067 | '@tsconfig/node12': 1.0.11 4068 | '@tsconfig/node14': 1.0.3 4069 | '@tsconfig/node16': 1.0.4 4070 | '@types/node': 22.19.2 4071 | acorn: 8.15.0 4072 | acorn-walk: 8.3.4 4073 | arg: 4.1.3 4074 | create-require: 1.1.1 4075 | diff: 4.0.2 4076 | make-error: 1.3.6 4077 | typescript: 5.9.3 4078 | v8-compile-cache-lib: 3.0.1 4079 | yn: 3.1.1 4080 | 4081 | tsconfig-paths-webpack-plugin@4.2.0: 4082 | dependencies: 4083 | chalk: 4.1.2 4084 | enhanced-resolve: 5.18.4 4085 | tapable: 2.3.0 4086 | tsconfig-paths: 4.2.0 4087 | 4088 | tsconfig-paths@4.2.0: 4089 | dependencies: 4090 | json5: 2.2.3 4091 | minimist: 1.2.8 4092 | strip-bom: 3.0.0 4093 | 4094 | tslib@2.8.1: {} 4095 | 4096 | type-check@0.4.0: 4097 | dependencies: 4098 | prelude-ls: 1.2.1 4099 | 4100 | type-is@1.6.18: 4101 | dependencies: 4102 | media-typer: 0.3.0 4103 | mime-types: 2.1.35 4104 | 4105 | type-is@2.0.1: 4106 | dependencies: 4107 | content-type: 1.0.5 4108 | media-typer: 1.1.0 4109 | mime-types: 3.0.2 4110 | 4111 | typedarray@0.0.6: {} 4112 | 4113 | typescript-eslint@8.49.0(eslint@9.39.1)(typescript@5.9.3): 4114 | dependencies: 4115 | '@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) 4116 | '@typescript-eslint/parser': 8.49.0(eslint@9.39.1)(typescript@5.9.3) 4117 | '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) 4118 | '@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) 4119 | eslint: 9.39.1 4120 | typescript: 5.9.3 4121 | transitivePeerDependencies: 4122 | - supports-color 4123 | 4124 | typescript@5.9.3: {} 4125 | 4126 | uid@2.0.2: 4127 | dependencies: 4128 | '@lukeed/csprng': 1.1.0 4129 | 4130 | uint8array-extras@1.5.0: {} 4131 | 4132 | undici-types@6.21.0: {} 4133 | 4134 | universalify@2.0.1: {} 4135 | 4136 | unpipe@1.0.0: {} 4137 | 4138 | update-browserslist-db@1.2.2(browserslist@4.28.1): 4139 | dependencies: 4140 | browserslist: 4.28.1 4141 | escalade: 3.2.0 4142 | picocolors: 1.1.1 4143 | 4144 | uri-js@4.4.1: 4145 | dependencies: 4146 | punycode: 2.3.1 4147 | 4148 | util-deprecate@1.0.2: {} 4149 | 4150 | v8-compile-cache-lib@3.0.1: {} 4151 | 4152 | vary@1.1.2: {} 4153 | 4154 | viem@2.41.2(typescript@5.9.3): 4155 | dependencies: 4156 | '@noble/curves': 1.9.1 4157 | '@noble/hashes': 1.8.0 4158 | '@scure/bip32': 1.7.0 4159 | '@scure/bip39': 1.6.0 4160 | abitype: 1.1.0(typescript@5.9.3) 4161 | isows: 1.0.7(ws@8.18.3) 4162 | ox: 0.9.6(typescript@5.9.3) 4163 | ws: 8.18.3 4164 | optionalDependencies: 4165 | typescript: 5.9.3 4166 | transitivePeerDependencies: 4167 | - bufferutil 4168 | - utf-8-validate 4169 | - zod 4170 | 4171 | watchpack@2.4.4: 4172 | dependencies: 4173 | glob-to-regexp: 0.4.1 4174 | graceful-fs: 4.2.11 4175 | 4176 | wcwidth@1.0.1: 4177 | dependencies: 4178 | defaults: 1.0.4 4179 | 4180 | webpack-node-externals@3.0.0: {} 4181 | 4182 | webpack-sources@3.3.3: {} 4183 | 4184 | webpack@5.103.0: 4185 | dependencies: 4186 | '@types/eslint-scope': 3.7.7 4187 | '@types/estree': 1.0.8 4188 | '@types/json-schema': 7.0.15 4189 | '@webassemblyjs/ast': 1.14.1 4190 | '@webassemblyjs/wasm-edit': 1.14.1 4191 | '@webassemblyjs/wasm-parser': 1.14.1 4192 | acorn: 8.15.0 4193 | acorn-import-phases: 1.0.4(acorn@8.15.0) 4194 | browserslist: 4.28.1 4195 | chrome-trace-event: 1.0.4 4196 | enhanced-resolve: 5.18.4 4197 | es-module-lexer: 1.7.0 4198 | eslint-scope: 5.1.1 4199 | events: 3.3.0 4200 | glob-to-regexp: 0.4.1 4201 | graceful-fs: 4.2.11 4202 | json-parse-even-better-errors: 2.3.1 4203 | loader-runner: 4.3.1 4204 | mime-types: 2.1.35 4205 | neo-async: 2.6.2 4206 | schema-utils: 4.3.3 4207 | tapable: 2.3.0 4208 | terser-webpack-plugin: 5.3.16(webpack@5.103.0) 4209 | watchpack: 2.4.4 4210 | webpack-sources: 3.3.3 4211 | transitivePeerDependencies: 4212 | - '@swc/core' 4213 | - esbuild 4214 | - uglify-js 4215 | 4216 | which@2.0.2: 4217 | dependencies: 4218 | isexe: 2.0.0 4219 | 4220 | word-wrap@1.2.5: {} 4221 | 4222 | wrap-ansi@6.2.0: 4223 | dependencies: 4224 | ansi-styles: 4.3.0 4225 | string-width: 4.2.3 4226 | strip-ansi: 6.0.1 4227 | 4228 | wrappy@1.0.2: {} 4229 | 4230 | ws@8.18.3: {} 4231 | 4232 | xtend@4.0.2: {} 4233 | 4234 | yargs-parser@21.1.1: {} 4235 | 4236 | yn@3.1.1: {} 4237 | 4238 | yocto-queue@0.1.0: {} 4239 | 4240 | yoctocolors-cjs@2.1.3: {} 4241 | --------------------------------------------------------------------------------