UNPKG

iiif-processor

Version:

IIIF 2.1 & 3.0 Image API modules for NodeJS

99 lines (96 loc) 2.34 kB
type BoundingBox = { left: number; top: number; width: number; height: number; }; type Dimensions = { width: number; height: number; }; type Format = 'jpg' | 'jpeg' | 'tif' | 'tiff' | 'png' | 'webp'; type IIIFSpec = { id: string; info?: boolean; region?: string; size?: string; rotation?: string; quality?: string; format?: string; density?: number; }; type ImageGeometry = { width?: number; height?: number; pages?: number; sizes?: Dimensions[]; tileWidth?: number; tileHeight?: number; }; type MaxDimensions = { width?: number; height?: number; area?: number; }; type Quality = 'color' | 'gray' | 'bitonal' | 'default'; type ContentResult = { type: 'content'; canonicalLink?: string; profileLink?: string; contentType: string; body: Buffer | string; }; type RedirectResult = { type: 'redirect'; location: string; }; type ErrorResult = { type: 'error'; message: string; statusCode: number; }; type ProcessorResult = ContentResult | RedirectResult | ErrorResult; interface Calculated { region: BoundingBox; size: Dimensions & { fit?: 'fill' | 'inside'; }; rotation: { flop: boolean; degree: number; }; quality: Quality; format: { type: Format; density?: number; }; fullSize: Dimensions; } interface CalculatorLike { region(s: string): this; size(s: string): this; rotation(s: string): this; quality(q: string): this; format(f: string, density?: number): this; info(): Calculated; canonicalPath(): string; } type CalculatorOptions = { max?: MaxDimensions; }; type CalculatorCtor = { new (dims: Dimensions, opts?: CalculatorOptions): CalculatorLike; parsePath(path: string): IIIFSpec | null; }; interface InfoDocInput { id: string; geometry: ImageGeometry; max?: MaxDimensions; } type InfoDoc = Record<string, unknown>; interface VersionModule { profileLink: string; infoDoc(input: InfoDocInput): InfoDoc; Calculator: CalculatorCtor; } export type { BoundingBox as B, CalculatorOptions as C, Dimensions as D, ErrorResult as E, ImageGeometry as I, MaxDimensions as M, ProcessorResult as P, RedirectResult as R, VersionModule as V, Calculated as a, ContentResult as b };