UNPKG

@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
/// <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