@adamjessop/tiktok-live-connector
Version:
Node.js module to receive live stream chat events like comments and gifts from TikTok LIVE
86 lines • 3.35 kB
TypeScript
/// <reference types="node" />
import * as tikTokSchema from './tiktok-schema';
import { MessageFns, WebcastResponse, WebcastWebsocketMessage } from './tiktok-schema';
import { AxiosRequestConfig } from 'axios';
import * as http from 'node:http';
export declare type TikTokLiveConnectionOptions = {
processInitialData: boolean;
fetchRoomInfoOnConnect: boolean;
enableExtendedGiftInfo: boolean;
enableRequestPolling: boolean;
requestPollingIntervalMs: number;
sessionId: string | null;
authenticateWs: boolean;
preferredAgentIds: string[];
connectWithUniqueId: boolean;
logFetchFallbackErrors: boolean;
webClientParams: Record<string, string>;
webClientHeaders: Record<string, string>;
webClientOptions: AxiosRequestConfig;
wsClientHeaders: Record<string, string>;
wsClientParams: Record<string, string>;
wsClientOptions: http.RequestOptions;
signedWebSocketProvider?: (props: FetchSignedWebSocketParams) => Promise<WebcastResponse>;
};
export declare type RoomInfo = Record<string, any> & {
status: number;
};
export declare type RoomGiftInfo = any;
export declare type FetchSignedWebSocketParams = {
roomId?: string;
uniqueId?: string;
preferredAgentIds?: string[];
sessionId?: string;
};
export declare type WebcastHttpClientConfig = {
customHeaders: Record<string, string>;
axiosOptions: AxiosRequestConfig;
clientParams: Record<string, string>;
authenticateWs?: boolean;
};
export interface TikTokLiveConnectionWebSocketParams extends Record<string, any> {
compress?: string;
}
export declare type DecodedWebcastWebsocketMessage = WebcastWebsocketMessage & {
webcastResponse?: any;
};
export interface IWebcastConfig {
TIKTOK_HOST_WEB: string;
TIKTOK_HOST_WEBCAST: string;
TIKTOK_HTTP_ORIGIN: string;
DEFAULT_HTTP_CLIENT_COOKIES: Record<string, string>;
DEFAULT_HTTP_CLIENT_PARAMS: Record<string, string>;
DEFAULT_HTTP_CLIENT_OPTIONS: AxiosRequestConfig;
DEFAULT_WS_CLIENT_PARAMS_APPEND_PARAMETER: string;
DEFAULT_HTTP_CLIENT_HEADERS: Record<string, string> & {
'User-Agent': string;
};
DEFAULT_WS_CLIENT_PARAMS: Record<string, string>;
DEFAULT_WS_CLIENT_HEADERS: Record<string, string> & {
'User-Agent': string;
};
}
export interface IWebcastDeserializeConfig {
skipMessageTypes: string[];
}
declare type ExtractMessageType<T> = T extends MessageFns<infer U> ? U : never;
export declare type WebcastMessage = {
[K in keyof typeof tikTokSchema as ExtractMessageType<typeof tikTokSchema[K]> extends never ? never : K]: ExtractMessageType<typeof tikTokSchema[K]>;
};
export declare type WebcastEventMessage = {
[K in keyof WebcastMessage as K extends `Webcast${string}` ? K : never]: WebcastMessage[K];
};
declare module '../types/tiktok-schema' {
interface Message {
decodedData?: WebcastEventMessage[keyof WebcastEventMessage];
}
}
export declare type WebcastWsEvent = string | 'webcastResponse' | 'unknownResponse' | 'messageDecodingFailed' | 'connect' | 'connectFailed' | 'httpResponse';
export declare type WebcastHttpClientRequestParams = Omit<Omit<AxiosRequestConfig, 'url'>, 'baseURL'> & {
host: string;
path: string;
params?: Record<string, string>;
signRequest: boolean;
};
export {};
//# sourceMappingURL=client.d.ts.map