UNPKG

nostr-websocket-utils

Version:

Robust WebSocket utilities for Nostr applications with automatic reconnection, supporting both ESM and CommonJS. Features channel-based messaging, heartbeat monitoring, message queueing, and comprehensive error handling with type-safe handlers.

65 lines 2.24 kB
/** * @file NIP-11: Relay Information Document * @module nips/nip-11 * @see https://github.com/nostr-protocol/nips/blob/master/11.md */ /** * Relay information document structure */ export interface RelayInformation { name?: string; description?: string; pubkey?: string; contact?: string; supported_nips?: number[]; software?: string; version?: string; limitation?: { max_message_length?: number; max_subscriptions?: number; max_filters?: number; max_limit?: number; max_subid_length?: number; min_prefix?: number; max_event_tags?: number; max_content_length?: number; min_pow_difficulty?: number; auth_required?: boolean; payment_required?: boolean; }; } /** * Fetches relay information document * @param url - Relay URL (ws:// or wss://) * @returns {Promise<RelayInformation>} Relay information */ export declare function getRelayInformation(url: string): Promise<RelayInformation>; /** * Checks if relay meets requirements * @param relay - Relay information * @param requirements - Required relay features * @returns {boolean} True if relay meets all requirements */ export declare function checkRelayRequirements(relay: RelayInformation, requirements: Partial<RelayInformation>): boolean; /** * Validates relay capabilities against required features * @param info - Relay information * @param requiredNips - Required NIPs * @param requiredFeatures - Required relay features * @returns {boolean} True if relay supports all required features */ export declare function validateRelayCapabilities(info: RelayInformation, requiredNips?: number[], requiredFeatures?: Partial<RelayInformation['limitation']>): boolean; /** * Creates a relay selection score based on capabilities * @param info - Relay information * @param preferences - Scoring preferences * @returns {number} Relay score (higher is better) */ export declare function scoreRelayCapabilities(info: RelayInformation, preferences?: { preferredNips?: number[]; minMessageLength?: number; minSubscriptions?: number; requireAuth?: boolean; requirePayment?: boolean; }): number; //# sourceMappingURL=nip-11.d.ts.map