UNPKG

@fnlb-project/stanza

Version:

Modern XMPP in the browser, with a JSON API

52 lines (51 loc) 1.98 kB
import { AsyncPriorityQueue } from 'async'; import { EventEmitter } from 'events'; import { Agent, AgentConfig, Transport } from './'; import StreamManagement from './helpers/StreamManagement'; import * as JXT from './jxt'; import { JSONData } from './jxt'; import * as SASL from './lib/sasl'; import { IQ, Message, Presence, StreamError, Stream } from './protocol'; import NetworkDiscovery from './helpers/NetworkDiscovery'; interface StreamData { kind: string; stanza: any; replay?: boolean; } export default class Client extends EventEmitter { jid: string; config: AgentConfig; sm: StreamManagement; transport?: Transport; stanzas: JXT.Registry; resolver: NetworkDiscovery; sessionStarting?: boolean; sessionStarted?: boolean; sessionTerminating?: boolean; reconnectAttempts: number; transports: { [key: string]: new (client: Agent, sm: StreamManagement, registry: JXT.Registry) => Transport; }; sasl: SASL.Factory; incomingDataQueue: AsyncPriorityQueue<StreamData>; outgoingDataQueue: AsyncPriorityQueue<StreamData>; private reconnectTimer; constructor(opts?: AgentConfig); updateConfig(opts?: AgentConfig): void; get stream(): Stream | undefined; emit(name: string, ...args: any[]): boolean; use(pluginInit: boolean | ((agent: Agent, registry: JXT.Registry, config: AgentConfig) => void)): void; nextId(): string; getCredentials(): Promise<SASL.Credentials>; connect(): Promise<void>; disconnect(): Promise<void>; send(kind: string, stanza: JSONData, replay?: boolean): Promise<void>; sendMessage(data: Message): string; sendPresence(data?: Presence): string; sendIQ<T extends IQ = IQ, R extends IQ = T>(data: T): Promise<R>; sendIQResult(original: IQ, reply: Partial<IQ>): void; sendIQError(original: IQ, error: Partial<IQ>): void; sendStreamError(error: StreamError): void; private _getConfiguredCredentials; } export {};