@allmaps/iiif-parser
Version:
Allmaps IIIF parser
63 lines (62 loc) • 2.69 kB
TypeScript
import { z } from 'zod';
import { ManifestSchema } from '../schemas/iiif.js';
import { EmbeddedManifest2Schema } from '../schemas/presentation.2.js';
import { EmbeddedManifest3Schema } from '../schemas/presentation.3.js';
import { Image, EmbeddedImage } from './image.js';
import { Canvas } from './canvas.js';
import type { LanguageString, Metadata, MajorVersion, FetchNextResults, NavDate, NavPlace, Thumbnail, SeeAlso, Summary, RequiredStatement, Annotations, Homepage, Rendering } from '../lib/types.js';
type ManifestType = z.infer<typeof ManifestSchema>;
type EmbeddedManifestType = z.infer<typeof EmbeddedManifest2Schema> | z.infer<typeof EmbeddedManifest3Schema>;
declare const ManifestTypeString = "manifest";
/**
* Parsed IIIF Manifest, embedded in a Collection
* @property embedded - Whether the Manifest is embedded in a Collection
* @property uri - URI of Manifest
* @property label - Label of Manifest
* @property majorVersion - IIIF API version of Manifest
* @property type - Resource type, equals 'manifest'
*/
export declare class EmbeddedManifest {
readonly embedded: boolean;
uri: string;
type: typeof ManifestTypeString;
label?: LanguageString;
majorVersion: MajorVersion;
constructor(parsedManifest: ManifestType | EmbeddedManifestType);
}
/**
* Parsed IIIF Manifest
*
* @property canvases - Array of parsed canvases
* @property description - Description of Manifest
* @property metadata - Metadata of Manifest
*/
export declare class Manifest extends EmbeddedManifest {
#private;
canvases: Canvas[];
description?: LanguageString;
metadata?: Metadata;
navDate?: NavDate;
navPlace?: NavPlace;
homepage?: Homepage;
thumbnail?: Thumbnail;
rendering?: Rendering;
seeAlso?: SeeAlso;
summary?: Summary;
requiredStatement?: RequiredStatement;
annotations?: Annotations;
readonly embedded = false;
constructor(parsedManifest: ManifestType);
/**
* Parses a IIIF resource and returns a [Manifest](#manifest) containing the parsed version
* @param iiifManifest - Source data of IIIF Manifest
* @param majorVersion - IIIF API version of Manifest. If not provided, it will be determined automatically
* @returns Parsed IIIF Manifest
*/
static parse(iiifManifest: unknown, majorVersion?: MajorVersion | null): Manifest;
get images(): (EmbeddedImage | Image)[];
fetchAll(fetchFn?: typeof fetch): Promise<FetchNextResults<Image>[]>;
fetchNext(fetchFn?: typeof fetch, depth?: number): AsyncGenerator<FetchNextResults<Image>, void, void>;
fetchImageByUri(imageUri: string, fetchFn?: typeof fetch): Promise<Image | undefined>;
}
export {};