@allmaps/iiif-parser
Version:
Allmaps IIIF parser
54 lines (53 loc) • 2.4 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 } from './image.js';
import { Canvas } from './canvas.js';
import type { LanguageString, Metadata, MajorVersion, FetchNextResults } 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
* @class EmbeddedManifest
* @property {boolean} embedded - Whether the Manifest is embedded in a Collection
* @property {string} [uri] - URI of Manifest
* @property {LanguageString} [label] - Label of Manifest
* @property {MajorVersion} [majorVersion] - IIIF API version of Manifest
* @property {string} [type] - Resource type, equals 'manifest'
*/
export declare class EmbeddedManifest {
embedded: boolean;
uri: string;
type: typeof ManifestTypeString;
label?: LanguageString;
majorVersion: MajorVersion;
constructor(parsedManifest: ManifestType | EmbeddedManifestType);
}
/**
* Parsed IIIF Manifest
* @class Manifest
* @extends EmbeddedManifest
* @property {Canvas[]} canvases - Array of parsed canvases
* @property {LanguageString} [description] - Description of Manifest
* @property {Metadata} [metadata] - Metadata of Manifest
*/
export declare class Manifest extends EmbeddedManifest {
canvases: Canvas[];
description?: LanguageString;
metadata?: Metadata;
embedded: boolean;
constructor(parsedManifest: ManifestType);
/**
* Parses a IIIF resource and returns a [Manifest](#manifest) containing the parsed version
* @param {any} iiifManifest - Source data of IIIF Manifest
* @param {MajorVersion} [majorVersion=null] - IIIF API version of Manifest. If not provided, it will be determined automatically
* @returns {Manifest} Parsed IIIF Manifest
* @static
*/
static parse(iiifManifest: unknown, majorVersion?: MajorVersion | null): Manifest;
fetchAll(fetchFn?: typeof fetch): Promise<FetchNextResults<Image>[]>;
fetchNext(fetchFn?: typeof fetch, depth?: number): AsyncGenerator<FetchNextResults<Image>, void, void>;
}
export {};