UNPKG

shamela

Version:

Library to interact with the Maktabah Shamela v4 APIs

103 lines (101 loc) 2.45 kB
export type GetMasterMetadataResponsePayload = { url: string; version: number; }; export interface OutputOptions { path: string; } export type DownloadMasterOptions = { masterMetadata?: GetMasterMetadataResponsePayload; outputFile: OutputOptions; }; export type GetBookMetadataOptions = { majorVersion: number; minorVersion: number; }; export type GetBookMetadataResponsePayload = { majorRelease: number; majorReleaseUrl: string; minorRelease?: number; minorReleaseUrl?: string; }; export type DownloadBookOptions = { bookMetadata?: GetBookMetadataResponsePayload; outputFile: OutputOptions; }; export type Author = { biography?: string; death?: number; id: number; name: string; }; type PDFFile = { file: string; id?: string; }; export type PDFLinks = { alias?: number; cover?: number; cover_alias?: number; files?: PDFFile[]; root?: string; size?: number; }; export type Metadata = { coauthor?: number[]; date: string; group?: number; hide_diacritic?: boolean; min_ver?: number; prefix?: string; shorts: Record<string, string>; sub_books: number[]; suffix?: string; }; export type Book = { author: number | number[]; bibliography: string; category: number; date?: number; hint?: string; id: number; major: number; metadata: Metadata; minor?: number; name: string; pdfLinks?: PDFLinks; printed: number; type: number; }; export type Category = { id: number; name: string; }; export type MasterData = { authors: Author[]; books: Book[]; categories: Category[]; }; export type Page = { content: string; id: number; number?: number; page?: number; part?: number; }; export type Title = { content: string; id: number; page: number; parent?: number; }; export type BookData = { pages: Page[]; titles?: Title[]; }; export const getBookMetadata: (id: number, options?: GetBookMetadataOptions) => Promise<GetBookMetadataResponsePayload>; export const downloadBook: (id: number, options: DownloadBookOptions) => Promise<string>; export const getMasterMetadata: (version?: number) => Promise<GetMasterMetadataResponsePayload>; export const downloadMasterDatabase: (options: DownloadMasterOptions) => Promise<string>; export const getBook: (id: number) => Promise<BookData>; //# sourceMappingURL=index.d.ts.map