UNPKG

m3u8parse

Version:

Structural parsing of Apple HTTP Live Streaming .m3u8 format

48 lines (47 loc) 1.55 kB
import { AttrList } from './attrlist.js'; import { MediaPlaylist, MainPlaylist, MediaSegment, M3U8Playlist } from './playlist.js'; import type { PropsOf } from './types.js'; export declare enum PlaylistType { Main = "main", Media = "media" } export interface ParserOptions { extensions?: { [K: string]: boolean; }; debug?: (line: string, ...args: unknown[]) => void; } interface ParserState { readonly m3u8: Partial<Omit<PropsOf<MediaPlaylist>, 'master'> & Omit<PropsOf<MainPlaylist>, 'master'> & { master: boolean; }>; meta: MediaSegment & { info?: AttrList; }; } export declare class M3U8Parser { static debug(line: string, ...args: unknown[]): void; readonly extensions: NonNullable<ParserOptions['extensions']>; state: ParserState; lineNo: number; constructor(options?: ParserOptions); feed(line?: string): void; finalize(type: PlaylistType.Main | `${PlaylistType.Main}`): MainPlaylist; finalize(type: PlaylistType.Media | `${PlaylistType.Media}`): MediaPlaylist; finalize(type?: PlaylistType | `${PlaylistType}`): M3U8Playlist; debug(line: string, ...args: unknown[]): void; _parseLine(line: string): void; _parseExt(cmd: string, arg?: string | null): boolean; } export declare class ParserError extends Error { readonly name = "ParserError"; cause: any; line: string; lineNumber: number; constructor(msg: string, options?: { line?: string; line_no?: number; cause?: unknown; }); } export {};