UNPKG

@limitrate/cli

Version:

CLI dashboard for LimitRate rate limiting inspection

64 lines (60 loc) 1.38 kB
import { LimitRateEvent } from '@limitrate/core'; /** * SQLite storage for LimitRate events */ interface StoredEvent extends LimitRateEvent { id: number; } interface EventStats { endpoint: string; totalHits: number; blocked: number; slowdowns: number; } interface TopOffender { user: string; plan: string; blocks: number; } declare class EventStorage { private db; constructor(dbPath?: string); private initSchema; /** * Save an event to storage */ saveEvent(event: LimitRateEvent): void; /** * Get endpoint statistics */ getEndpointStats(): EventStats[]; /** * Get top offenders (users with most blocks) */ getTopOffenders(limit?: number): TopOffender[]; /** * Get recent events */ getRecentEvents(limit?: number): StoredEvent[]; /** * Clean up events older than 48 hours */ cleanup(): void; /** * Get total event count */ getEventCount(): number; /** * Close database connection */ close(): void; } /** * Get or create storage instance */ declare function getStorage(): EventStorage; /** * Save event (convenience function for middleware) */ declare function saveEvent(event: LimitRateEvent): void; export { type EventStats, EventStorage, type StoredEvent, type TopOffender, getStorage, saveEvent };