UNPKG

epub

Version:

Parse EPUB electronic book files with Node.JS

77 lines (76 loc) 2.08 kB
import JSZip from "jszip"; export interface ManifestItem { id: string; href: string; "media-type": string; [key: string]: unknown; } export interface TocElement { level: number; order: number; title: string; id: string; href: string; "media-type"?: string; [key: string]: unknown; } export interface Metadata { creator: string; creatorFileAs: string; title: string; language: string; subject: string; subjects?: string[]; date: string; description: string; publisher?: string; source?: string; UUID?: string; [key: string]: unknown; } export declare class EPub { input: string | Buffer | ArrayBuffer; imageroot: string; linkroot: string; metadata: Metadata; manifest: Record<string, ManifestItem>; guide: Record<string, string>[]; spine: { toc: ManifestItem | false; contents: ManifestItem[]; }; flow: ManifestItem[]; toc: TocElement[]; version: string; zip: JSZip; containerFile: string | false; mimeFile: string | false; rootFile: string | false; constructor(input: string | Buffer | ArrayBuffer, imageroot?: string, linkroot?: string); parse(): Promise<void>; private _readFile; private _open; private _checkMimeType; private _getRootFiles; private _handleRootFile; private _parseRootFile; private _parseMetadata; private _parseManifest; private _parseGuide; private _parseSpine; private _parseTOC; walkNavMap(branch: Record<string, unknown> | Record<string, unknown>[], path: string[], idList: Record<string, string>, level?: number): TocElement[]; getChapter(id: string): Promise<string>; getChapterRaw(id: string): Promise<string>; getImage(id: string): Promise<{ data: Buffer; mimeType: string; }>; getFile(id: string): Promise<{ data: Buffer; mimeType: string; }>; readFile(filename: string, encoding?: BufferEncoding): Promise<Buffer | string>; hasDRM(): boolean; } export default EPub;