@fishjam-cloud/js-server-sdk
Version:
Fishjam server SDK for JavaScript
192 lines (189 loc) • 8.02 kB
text/typescript
import { BinaryWriter, BinaryReader } from '@bufbuild/protobuf/wire';
/** Defines message groups for which client can subscribe */
declare enum ServerMessage_EventType {
EVENT_TYPE_UNSPECIFIED = 0,
EVENT_TYPE_SERVER_NOTIFICATION = 1,
EVENT_TYPE_METRICS = 2,
UNRECOGNIZED = -1
}
/** Defines types of tracks being published by peers and component */
declare enum ServerMessage_TrackType {
TRACK_TYPE_UNSPECIFIED = 0,
TRACK_TYPE_VIDEO = 1,
TRACK_TYPE_AUDIO = 2,
UNRECOGNIZED = -1
}
/** Defines any type of message passed between FJ and server client */
interface ServerMessage {
roomCrashed?: ServerMessage_RoomCrashed | undefined;
peerConnected?: ServerMessage_PeerConnected | undefined;
peerDisconnected?: ServerMessage_PeerDisconnected | undefined;
peerCrashed?: ServerMessage_PeerCrashed | undefined;
componentCrashed?: ServerMessage_ComponentCrashed | undefined;
authenticated?: ServerMessage_Authenticated | undefined;
authRequest?: ServerMessage_AuthRequest | undefined;
subscribeRequest?: ServerMessage_SubscribeRequest | undefined;
subscribeResponse?: ServerMessage_SubscribeResponse | undefined;
roomCreated?: ServerMessage_RoomCreated | undefined;
roomDeleted?: ServerMessage_RoomDeleted | undefined;
metricsReport?: ServerMessage_MetricsReport | undefined;
hlsPlayable?: ServerMessage_HlsPlayable | undefined;
hlsUploaded?: ServerMessage_HlsUploaded | undefined;
hlsUploadCrashed?: ServerMessage_HlsUploadCrashed | undefined;
peerMetadataUpdated?: ServerMessage_PeerMetadataUpdated | undefined;
trackAdded?: ServerMessage_TrackAdded | undefined;
trackRemoved?: ServerMessage_TrackRemoved | undefined;
trackMetadataUpdated?: ServerMessage_TrackMetadataUpdated | undefined;
peerAdded?: ServerMessage_PeerAdded | undefined;
peerDeleted?: ServerMessage_PeerDeleted | undefined;
}
declare const ServerMessage: MessageFns<ServerMessage>;
/** Notification sent when a room crashes */
interface ServerMessage_RoomCrashed {
roomId: string;
}
declare const ServerMessage_RoomCrashed: MessageFns<ServerMessage_RoomCrashed>;
/** Notification sent when a peer is added */
interface ServerMessage_PeerAdded {
roomId: string;
peerId: string;
}
declare const ServerMessage_PeerAdded: MessageFns<ServerMessage_PeerAdded>;
/** Notification sent when a peer is removed */
interface ServerMessage_PeerDeleted {
roomId: string;
peerId: string;
}
declare const ServerMessage_PeerDeleted: MessageFns<ServerMessage_PeerDeleted>;
/** Notification sent when a peer connects */
interface ServerMessage_PeerConnected {
roomId: string;
peerId: string;
}
declare const ServerMessage_PeerConnected: MessageFns<ServerMessage_PeerConnected>;
/** Notification sent when a peer disconnects from FJ */
interface ServerMessage_PeerDisconnected {
roomId: string;
peerId: string;
}
declare const ServerMessage_PeerDisconnected: MessageFns<ServerMessage_PeerDisconnected>;
/** Notification sent when a peer crashes */
interface ServerMessage_PeerCrashed {
roomId: string;
peerId: string;
reason: string;
}
declare const ServerMessage_PeerCrashed: MessageFns<ServerMessage_PeerCrashed>;
/** Notification sent when a component crashes */
interface ServerMessage_ComponentCrashed {
roomId: string;
componentId: string;
}
declare const ServerMessage_ComponentCrashed: MessageFns<ServerMessage_ComponentCrashed>;
/** Response sent by FJ, confirming successfull authentication */
interface ServerMessage_Authenticated {
}
declare const ServerMessage_Authenticated: MessageFns<ServerMessage_Authenticated>;
/** Request sent by client, to authenticate to FJ server */
interface ServerMessage_AuthRequest {
token: string;
}
declare const ServerMessage_AuthRequest: MessageFns<ServerMessage_AuthRequest>;
/** Request sent by client to subsribe for certain message type */
interface ServerMessage_SubscribeRequest {
eventType: ServerMessage_EventType;
}
declare const ServerMessage_SubscribeRequest: MessageFns<ServerMessage_SubscribeRequest>;
/** Response sent by FJ, confirming subscription for message type */
interface ServerMessage_SubscribeResponse {
eventType: ServerMessage_EventType;
}
declare const ServerMessage_SubscribeResponse: MessageFns<ServerMessage_SubscribeResponse>;
/** Notification sent when a room is created */
interface ServerMessage_RoomCreated {
roomId: string;
}
declare const ServerMessage_RoomCreated: MessageFns<ServerMessage_RoomCreated>;
/** Notification sent when a room is deleted */
interface ServerMessage_RoomDeleted {
roomId: string;
}
declare const ServerMessage_RoomDeleted: MessageFns<ServerMessage_RoomDeleted>;
/** Message containing WebRTC metrics from FJ */
interface ServerMessage_MetricsReport {
metrics: string;
}
declare const ServerMessage_MetricsReport: MessageFns<ServerMessage_MetricsReport>;
/** Notification sent when the HLS stream becomes available in a room */
interface ServerMessage_HlsPlayable {
roomId: string;
componentId: string;
}
declare const ServerMessage_HlsPlayable: MessageFns<ServerMessage_HlsPlayable>;
/** Notification sent when the HLS recording is successfully uploded to AWS S3 */
interface ServerMessage_HlsUploaded {
roomId: string;
}
declare const ServerMessage_HlsUploaded: MessageFns<ServerMessage_HlsUploaded>;
/** Notification sent when the upload of HLS recording to AWS S3 fails */
interface ServerMessage_HlsUploadCrashed {
roomId: string;
}
declare const ServerMessage_HlsUploadCrashed: MessageFns<ServerMessage_HlsUploadCrashed>;
/** Notification sent when peer updates its metadata */
interface ServerMessage_PeerMetadataUpdated {
roomId: string;
peerId: string;
metadata: string;
}
declare const ServerMessage_PeerMetadataUpdated: MessageFns<ServerMessage_PeerMetadataUpdated>;
/** Describes a media track */
interface ServerMessage_Track {
id: string;
type: ServerMessage_TrackType;
metadata: string;
}
declare const ServerMessage_Track: MessageFns<ServerMessage_Track>;
/** Notification sent when peer or component adds new track */
interface ServerMessage_TrackAdded {
roomId: string;
peerId?: string | undefined;
componentId?: string | undefined;
track: ServerMessage_Track | undefined;
}
declare const ServerMessage_TrackAdded: MessageFns<ServerMessage_TrackAdded>;
/** Notification sent when a track is removed */
interface ServerMessage_TrackRemoved {
roomId: string;
peerId?: string | undefined;
componentId?: string | undefined;
track: ServerMessage_Track | undefined;
}
declare const ServerMessage_TrackRemoved: MessageFns<ServerMessage_TrackRemoved>;
/** Notification sent when metadata of a multimedia track is updated */
interface ServerMessage_TrackMetadataUpdated {
roomId: string;
peerId?: string | undefined;
componentId?: string | undefined;
track: ServerMessage_Track | undefined;
}
declare const ServerMessage_TrackMetadataUpdated: MessageFns<ServerMessage_TrackMetadataUpdated>;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
[K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
type Exact<P, I extends P> = P extends Builtin ? P : P & {
[K in keyof P]: Exact<P[K], I[K]>;
} & {
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
export { ServerMessage, ServerMessage_AuthRequest, ServerMessage_EventType };