2018-09-21 10:33:32 +00:00
|
|
|
/// <reference types="node" />
|
2018-09-17 20:29:03 +00:00
|
|
|
import * as JSZip from "jszip";
|
|
|
|
/**
|
|
|
|
* new EPub(fname[, imageroot][, linkroot])
|
|
|
|
* - fname (String): filename for the ebook
|
|
|
|
* - imageroot (String): URL prefix for images
|
|
|
|
* - linkroot (String): URL prefix for links
|
|
|
|
*
|
|
|
|
* Creates an Event Emitter type object for parsing epub files
|
|
|
|
*
|
|
|
|
* var epub = new EPub("book.epub");
|
|
|
|
* epub.on("end", function () {
|
|
|
|
* console.log(epub.spine);
|
|
|
|
* });
|
|
|
|
* epub.on("error", function (error) { ... });
|
|
|
|
* epub.parse();
|
|
|
|
*
|
|
|
|
* Image and link URL format is:
|
|
|
|
*
|
|
|
|
* imageroot + img_id + img_zip_path
|
|
|
|
*
|
|
|
|
* So an image "logo.jpg" which resides in "OPT/" in the zip archive
|
|
|
|
* and is listed in the manifest with id "logo_img" will have the
|
|
|
|
* following url (providing that imageroot is "/images/"):
|
|
|
|
*
|
|
|
|
* /images/logo_img/OPT/logo.jpg
|
|
|
|
**/
|
|
|
|
export declare class EPub {
|
|
|
|
zip: JSZip;
|
|
|
|
filename: string;
|
|
|
|
imageroot: string;
|
|
|
|
linkroot: string;
|
|
|
|
containerFile: string;
|
|
|
|
mimeFile: string;
|
|
|
|
rootFile: string;
|
|
|
|
metadata: {
|
|
|
|
publisher?: string;
|
|
|
|
language?: string;
|
|
|
|
title?: string;
|
|
|
|
subject?: string;
|
|
|
|
description?: string;
|
|
|
|
creator?: string;
|
|
|
|
creatorFileAs?: string;
|
|
|
|
date?: string;
|
|
|
|
ISBN?: string;
|
|
|
|
UUID?: string;
|
|
|
|
};
|
|
|
|
manifest: {};
|
|
|
|
spine: {
|
|
|
|
toc: any;
|
|
|
|
contents: any[];
|
|
|
|
};
|
|
|
|
flow: any[];
|
|
|
|
toc: any[];
|
|
|
|
version: string;
|
2018-09-17 20:38:05 +00:00
|
|
|
constructor(fname: string, imageroot?: string, linkroot?: string);
|
2018-09-17 20:29:03 +00:00
|
|
|
/**
|
|
|
|
* EPub#parse() -> undefined
|
|
|
|
*
|
|
|
|
* Starts the parser, needs to be called by the script
|
|
|
|
**/
|
|
|
|
parse(): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#open() -> undefined
|
|
|
|
*
|
|
|
|
* Opens the epub file with Zip unpacker, retrieves file listing
|
|
|
|
* and runs mime type check
|
|
|
|
**/
|
|
|
|
open(): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#checkMimeType() -> undefined
|
|
|
|
*
|
|
|
|
* Checks if there's a file called "mimetype" and that it's contents
|
|
|
|
* are "application/epub+zip". On success runs root file check.
|
|
|
|
**/
|
|
|
|
checkMimeType(): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#getRootFiles() -> undefined
|
|
|
|
*
|
|
|
|
* Looks for a "meta-inf/container.xml" file and searches for a
|
|
|
|
* rootfile element with mime type "application/oebps-package+xml".
|
|
|
|
* On success calls the rootfile parser
|
|
|
|
**/
|
|
|
|
getRootFiles(): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#handleRootFile() -> undefined
|
|
|
|
*
|
|
|
|
* Parses the rootfile XML and calls rootfile parser
|
|
|
|
**/
|
|
|
|
handleRootFile(): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#parseRootFile() -> undefined
|
|
|
|
*
|
|
|
|
* Parses elements "metadata," "manifest," "spine" and TOC.
|
|
|
|
* Emits "end" if no TOC
|
|
|
|
**/
|
|
|
|
parseRootFile(rootfile: any): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#parseMetadata() -> undefined
|
|
|
|
*
|
|
|
|
* Parses "metadata" block (book metadata, title, author etc.)
|
|
|
|
**/
|
|
|
|
parseMetadata(metadata: any): void;
|
|
|
|
/**
|
|
|
|
* EPub#parseManifest() -> undefined
|
|
|
|
*
|
|
|
|
* Parses "manifest" block (all items included, html files, images, styles)
|
|
|
|
**/
|
|
|
|
parseManifest(manifest: any): void;
|
|
|
|
/**
|
|
|
|
* EPub#parseSpine() -> undefined
|
|
|
|
*
|
|
|
|
* Parses "spine" block (all html elements that are shown to the reader)
|
|
|
|
**/
|
|
|
|
parseSpine(spine: any): void;
|
|
|
|
/**
|
|
|
|
* EPub#parseTOC() -> undefined
|
|
|
|
*
|
|
|
|
* Parses ncx file for table of contents (title, html file)
|
|
|
|
**/
|
|
|
|
parseTOC(): Promise<void>;
|
|
|
|
/**
|
|
|
|
* EPub#walkNavMap(branch, path, id_list,[, level]) -> Array
|
|
|
|
* - branch (Array | Object): NCX NavPoint object
|
|
|
|
* - path (Array): Base path
|
|
|
|
* - id_list (Object): map of file paths and id values
|
|
|
|
* - level (Number): deepness
|
|
|
|
*
|
|
|
|
* Walks the NavMap object through all levels and finds elements
|
|
|
|
* for TOC
|
|
|
|
**/
|
|
|
|
walkNavMap(branch: any, path: any, id_list: any, level?: any): any[];
|
|
|
|
/**
|
|
|
|
* EPub#getChapter(id, callback) -> undefined
|
|
|
|
* - id (String): Manifest id value for a chapter
|
|
|
|
* - callback (Function): callback function
|
|
|
|
*
|
|
|
|
* Finds a chapter text for an id. Replaces image and link URL's, removes
|
|
|
|
* <head> etc. elements. Return only chapters with mime type application/xhtml+xml
|
|
|
|
**/
|
|
|
|
getChapter(id: any): Promise<string>;
|
|
|
|
/**
|
|
|
|
* EPub#getChapterRaw(id, callback) -> undefined
|
|
|
|
* - id (String): Manifest id value for a chapter
|
|
|
|
* - callback (Function): callback function
|
|
|
|
*
|
|
|
|
* Returns the raw chapter text for an id.
|
|
|
|
**/
|
|
|
|
getChapterRaw(id: any): Promise<string>;
|
|
|
|
/**
|
|
|
|
* EPub#getImage(id, callback) -> undefined
|
|
|
|
* - id (String): Manifest id value for an image
|
|
|
|
* - callback (Function): callback function
|
|
|
|
*
|
|
|
|
* Finds an image for an id. Returns the image as Buffer. Callback gets
|
|
|
|
* an error object, image buffer and image content-type.
|
|
|
|
* Return only images with mime type image
|
|
|
|
**/
|
2018-09-21 10:33:32 +00:00
|
|
|
getImage(id: any): Promise<Buffer>;
|
2018-09-17 20:29:03 +00:00
|
|
|
/**
|
|
|
|
* EPub#getFile(id, callback) -> undefined
|
|
|
|
* - id (String): Manifest id value for a file
|
|
|
|
* - callback (Function): callback function
|
|
|
|
*
|
|
|
|
* Finds a file for an id. Returns the file as Buffer. Callback gets
|
|
|
|
* an error object, file contents buffer and file content-type.
|
|
|
|
**/
|
2018-09-21 10:33:32 +00:00
|
|
|
getFile(id: any): Promise<Buffer>;
|
2018-09-17 20:29:03 +00:00
|
|
|
}
|