mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* Add type definitions for async-stream-emitter, consumable-stream, writable-consumable-stream, stream-demux, ag-channel, ag-simple-broker, ncom, async-iterable-stream * Upgrade sc-broker to 8.0 * Upgrade socketcluster-client to 15.1 * Rename definition files to match module file names The files in the module were renamed. * Move socketcluster-server to v14 folder In preparation for socketcluster-server v15, since the old version is still used by other type packages. * Update scc-broker-client to 7.0 * Add current socketcluster-server type definitions Current version is v15.0 * Move sc-broker-cluster to v6 folder In preparation for sc-broker-cluster v9, since the old version is still used by other type packages. * Add current sc-broker-cluster type definitions Current version is v9.0 * Move sc-channel to v1 folder In preparation for sc-channel v2, since the old version is still used by other type packages. * Add current sc-channel type definitions Current version is v2.0 * Include the relevant sc-broker-cluster type-definitions directly in sc-channel It can be run using older and newer version of sc-broker-cluster, which have differently versioned dependencies. * Move sc-channel tests to sc-broker-cluster In the tests we use sc-broker-cluster. If the tests are in sc-channel, they drag in all dependencies for sc-broker-cluster, including esnext.asynciterable, which we don't want. * Simplify sc-errors tests In the tests we used socketcluster-server. That dragged in all of its dependencies, including esnext.asynciterable, which we don't want. * Move sc-channel to v1 folder In preparation for sc-channel v2, since the old version is still used by other type packages.
266 lines
9.0 KiB
TypeScript
266 lines
9.0 KiB
TypeScript
import { IncomingMessage } from 'http';
|
|
import { SCExchange } from 'sc-broker-cluster';
|
|
import { SignOptions } from 'jsonwebtoken';
|
|
import { SocketProtocolIgnoreStatuses, SocketProtocolErrorStatuses } from 'sc-errors';
|
|
import WebSocket = require('ws');
|
|
import AsyncStreamEmitter = require('async-stream-emitter');
|
|
import WritableConsumableStream = require('writable-consumable-stream');
|
|
import DemuxedConsumableStream = require('stream-demux/demuxed-consumable-stream');
|
|
import Consumer = require('writable-consumable-stream/consumer');
|
|
import ConsumableStream = require('consumable-stream');
|
|
import AGSimpleBroker = require('ag-simple-broker');
|
|
|
|
import AGServer = require('./server');
|
|
|
|
declare class AGServerSocket extends AsyncStreamEmitter<any> {
|
|
readonly CONNECTING: 'connecting';
|
|
readonly OPEN: 'open';
|
|
readonly CLOSED: 'closed';
|
|
|
|
readonly AUTHENTICATED: 'authenticated';
|
|
readonly UNAUTHENTICATED: 'unauthenticated';
|
|
|
|
readonly ignoreStatuses: SocketProtocolIgnoreStatuses;
|
|
readonly errorStatuses: SocketProtocolErrorStatuses;
|
|
|
|
id: string;
|
|
server: AGServer;
|
|
socket: WebSocket;
|
|
protocolVersion: number;
|
|
|
|
request: IncomingMessage;
|
|
|
|
inboundReceivedMessageCount: number;
|
|
inboundProcessedMessageCount: number;
|
|
outboundPreparedMessageCount: number;
|
|
outboundSentMessageCount: number;
|
|
|
|
cloneData: boolean;
|
|
|
|
inboundMessageStream: WritableConsumableStream<any>;
|
|
outboundPacketStream: WritableConsumableStream<any>;
|
|
middlewareHandshakeStream: WritableConsumableStream<any>;
|
|
middlewareInboundRawStream: WritableConsumableStream<any>;
|
|
middlewareInboundStream: WritableConsumableStream<any>;
|
|
middlewareOutboundStream: WritableConsumableStream<any>;
|
|
|
|
remoteAddress: string;
|
|
remoteFamily: string;
|
|
remotePort: number;
|
|
forwardedForAddress?: string;
|
|
|
|
isBufferingBatch: boolean;
|
|
isBatching: boolean;
|
|
batchOnHandshake: boolean;
|
|
batchOnHandshakeDuration: number;
|
|
batchInterval: number;
|
|
|
|
channelSubscriptions: {
|
|
[channelName: string]: boolean;
|
|
};
|
|
channelSubscriptionsCount: number;
|
|
|
|
exchange: AGSimpleBroker.SimpleExchange;
|
|
|
|
state: 'connecting' | 'open' | 'closed';
|
|
authState: 'authenticated' | 'unauthenticated';
|
|
authToken?: AGServerSocket.AuthToken;
|
|
signedAuthToken?: string;
|
|
|
|
constructor(id: string, server: AGServer, socket: WebSocket, protocolVersion: number);
|
|
|
|
emit(eventName: 'message' | 'raw', data: { message: { data: any; type: string; target: WebSocket } }): void;
|
|
emit(eventName: 'error', data: { error: Error }): void;
|
|
emit(eventName: 'authStateChange', data: AGServerSocket.StateChangeData): void;
|
|
emit(eventName: 'authenticate', data: AGServerSocket.AuthenticateData): void;
|
|
emit(eventName: 'authTokenSigned', data: { signedAuthToken: string }): void;
|
|
emit(eventName: 'deauthenticate', data: AGServerSocket.DeauthenticateData): void;
|
|
emit(eventName: 'badAuthToken', data: AGServerSocket.BadAuthTokenData): void;
|
|
emit(eventName: 'connect', data: AGServerSocket.ConnectData): void;
|
|
emit(eventName: 'subscribe', data: AGServerSocket.SubscribeData): void;
|
|
emit(eventName: 'unsubscribe', data: AGServerSocket.UnsubscribeData): void;
|
|
emit(eventName: 'connectAbort', data: AGServerSocket.ConnectAbortData): void;
|
|
emit(eventName: 'disconnect', data: AGServerSocket.DisconnectData): void;
|
|
emit(eventName: 'close', data: AGServerSocket.CloseData): void;
|
|
|
|
emit(eventName: 'message' | 'raw'): ConsumableStream<{ message: { data: any; type: string; target: WebSocket } }>;
|
|
emit(eventName: 'error'): ConsumableStream<{ error: Error }>;
|
|
emit(eventName: 'authStateChange'): ConsumableStream<AGServerSocket.StateChangeData>;
|
|
emit(eventName: 'authenticate'): ConsumableStream<AGServerSocket.AuthenticateData>;
|
|
emit(eventName: 'authTokenSigned'): ConsumableStream<{ signedAuthToken: string }>;
|
|
emit(eventName: 'deauthenticate'): ConsumableStream<AGServerSocket.DeauthenticateData>;
|
|
emit(eventName: 'badAuthToken'): ConsumableStream<AGServerSocket.BadAuthTokenData>;
|
|
emit(eventName: 'connect'): ConsumableStream<AGServerSocket.ConnectData>;
|
|
emit(eventName: 'subscribe'): ConsumableStream<AGServerSocket.SubscribeData>;
|
|
emit(eventName: 'unsubscribe'): ConsumableStream<AGServerSocket.UnsubscribeData>;
|
|
emit(eventName: 'connectAbort'): ConsumableStream<AGServerSocket.ConnectAbortData>;
|
|
emit(eventName: 'disconnect'): ConsumableStream<AGServerSocket.DisconnectData>;
|
|
emit(eventName: 'close'): ConsumableStream<AGServerSocket.CloseData>;
|
|
|
|
emitError(error: Error): void;
|
|
|
|
getBackpressure(): number;
|
|
getInboundBackpressure(): number;
|
|
getOutboundBackpressure(): number;
|
|
|
|
receiver(receiverName: string): DemuxedConsumableStream<any>;
|
|
|
|
closeReceiver(receiverName: string): void;
|
|
closeAllReceivers(): void;
|
|
|
|
killReceiver(receiverName: string): void;
|
|
killAllReceivers(): void;
|
|
killReceiverConsumer(consumerId: number): void;
|
|
|
|
getReceiverConsumerStats(consumerId: number): Consumer.ConsumerStats;
|
|
getReceiverConsumerStatsList(receiverName: string): Consumer.ConsumerStats[];
|
|
getAllReceiversConsumerStatsList(): Consumer.ConsumerStats[];
|
|
|
|
getReceiverBackpressure(receiverName: string): number;
|
|
getAllReceiversBackpressure(): number;
|
|
getReceiverConsumerBackpressure(consumerId: number): number;
|
|
|
|
hasReceiverConsumer(receiverName: string, consumerId: number): boolean;
|
|
hasAnyReceiverConsumer(consumerId: number): boolean;
|
|
|
|
procedure(procedureName: string): DemuxedConsumableStream<any>;
|
|
|
|
closeProcedure(procedureName: string): void;
|
|
closeAllProcedures(): void;
|
|
|
|
killProcedure(procedureName: string): void;
|
|
killAllProcedures(): void;
|
|
killProcedureConsumer(consumerId: number): void;
|
|
|
|
getProcedureConsumerStats(consumerId: number): Consumer.ConsumerStats;
|
|
getProcedureConsumerStatsList(procedureName: string): Consumer.ConsumerStats[];
|
|
getAllProceduresConsumerStatsList(): Consumer.ConsumerStats[];
|
|
|
|
getProcedureBackpressure(procedureName: string): number;
|
|
getAllProceduresBackpressure(): number;
|
|
getProcedureConsumerBackpressure(consumerId: number): number;
|
|
|
|
hasProcedureConsumer(procedureName: string, consumerId: number): boolean;
|
|
hasAnyProcedureConsumer(consumerId: number): boolean;
|
|
|
|
getState(): 'connecting' | 'open' | 'closed';
|
|
getBytesReceived(): number;
|
|
|
|
closeAllMiddlewares(): void;
|
|
closeInput(): void;
|
|
closeOutput(): void;
|
|
closeIO(): void;
|
|
closeAllStreams(): void;
|
|
|
|
killAllMiddlewares(): void;
|
|
killInput(): void;
|
|
killOutput(): void;
|
|
killIO(): void;
|
|
killAllStreams(): void;
|
|
|
|
disconnect(code?: number, reason?: string): void;
|
|
terminate(): void;
|
|
|
|
send(data: any, options: { mask?: boolean; binary?: boolean; compress?: boolean; fin?: boolean }): void;
|
|
|
|
decode(message: any): any;
|
|
encode(object: any): any;
|
|
|
|
startBatch(): void;
|
|
flushBatch(): void;
|
|
cancelBatch(): void;
|
|
|
|
startBatching(): void;
|
|
stopBatching(): void;
|
|
cancelBatching(): void;
|
|
|
|
serializeObject(object: any): any;
|
|
sendObject(object: any): void;
|
|
|
|
transmit(event: string, data: any, options: any): Promise<void>;
|
|
|
|
invoke(event: string, data: any, options: any): Promise<any>;
|
|
|
|
triggerAuthenticationEvents(oldAuthState: 'authenticated' | 'unauthenticated'): void;
|
|
|
|
getAuthToken(): AGServerSocket.AuthToken;
|
|
setAuthToken(data: AGServerSocket.AuthToken, options?: AGServerSocket.AuthTokenOptions): Promise<void>;
|
|
isAuthTokenExpired(token: AGServerSocket.AuthToken): boolean;
|
|
|
|
deauthenticateSelf(): void;
|
|
deauthenticate(options?: { rejectOnFailedDelivery: boolean }): Promise<void>;
|
|
|
|
kickOut(channel?: string, message?: string): any;
|
|
|
|
subscriptions(): string[];
|
|
isSubscribed(channel: string): boolean;
|
|
}
|
|
|
|
export = AGServerSocket;
|
|
|
|
declare namespace AGServerSocket {
|
|
interface AuthToken {
|
|
[x: string]: any;
|
|
}
|
|
|
|
interface AuthTokenOptions extends SignOptions {
|
|
rejectOnFailedDelivery?: boolean;
|
|
}
|
|
|
|
interface StateChangeData {
|
|
oldState: 'authenticated' | 'unauthenticated';
|
|
newState: 'authenticated' | 'unauthenticated';
|
|
authToken?: AuthToken;
|
|
}
|
|
|
|
interface AuthenticateData {
|
|
authToken?: AuthToken;
|
|
}
|
|
|
|
interface DeauthenticateData {
|
|
oldAuthToken?: AuthToken;
|
|
}
|
|
|
|
interface BadAuthTokenData {
|
|
authError: Error;
|
|
signedAuthToken: string;
|
|
}
|
|
|
|
interface ConnectData {
|
|
id: string;
|
|
pingTimeout: number;
|
|
authError?: Error;
|
|
isAuthenticated: boolean;
|
|
}
|
|
|
|
interface SubscribeData {
|
|
channel: string;
|
|
subscriptionOptions: SubscriptionOptions;
|
|
}
|
|
|
|
interface SubscriptionOptions {
|
|
channel: string;
|
|
waitForAuth?: boolean;
|
|
data?: any;
|
|
}
|
|
|
|
interface UnsubscribeData {
|
|
channel: string;
|
|
}
|
|
|
|
interface ConnectAbortData {
|
|
code: number;
|
|
reason: string;
|
|
}
|
|
|
|
interface DisconnectData {
|
|
code: number;
|
|
reason: string;
|
|
}
|
|
|
|
interface CloseData {
|
|
code: number;
|
|
reason: string;
|
|
}
|
|
}
|