@allmaps/iiif-parser

中文文档
1.0.0-beta.49发布于 2026/09/22MITES Module近 30 天下载 1.5万

Allmaps IIIF parser

原始使用文档
文档目录121 节
  1. Installation
  2. Usage
  3. CLI
  4. License
  5. API
  6. new Canvas(parsedCanvas)
  7. Canvas#annotations?
  8. Canvas#description?
  9. Canvas#height
  10. Canvas#homepage?
  11. Canvas#image
  12. Canvas#label?
  13. Canvas#metadata?
  14. Canvas#navDate?
  15. Canvas#navPlace?
  16. Canvas#provider?
  17. Canvas#rendering?
  18. Canvas#requiredStatement?
  19. Canvas#rights?
  20. Canvas#seeAlso?
  21. Canvas#summary?
  22. Canvas#thumbnail?
  23. Canvas#type
  24. Canvas#uri
  25. Canvas#width
  26. new Collection(parsedCollection, options)
  27. Collection#annotations?
  28. Collection#canvases
  29. Collection#embedded
  30. Collection#fetchAllItems(options)
  31. Collection#fetchItemWithId(id, fetchFn)
  32. Collection#fetchItemWithIndex(index, fetchFn)
  33. Collection#fetchNextItem(options, depth)
  34. Collection#fetchUntilPath(path)
  35. Collection#getItemAtPath(path)
  36. Collection#homepage?
  37. Collection#images
  38. Collection#items
  39. Collection#provider?
  40. Collection#rendering?
  41. Collection#requiredStatement?
  42. Collection#rights?
  43. Collection#seeAlso?
  44. Collection#source?
  45. Collection#summary?
  46. Collection.parse(iiifCollection, options)
  47. new EmbeddedCollection(parsedCollection)
  48. EmbeddedCollection#description?
  49. EmbeddedCollection#embedded
  50. EmbeddedCollection#label?
  51. EmbeddedCollection#majorVersion
  52. EmbeddedCollection#metadata?
  53. EmbeddedCollection#navDate?
  54. EmbeddedCollection#navPlace?
  55. EmbeddedCollection#thumbnail?
  56. EmbeddedCollection#type
  57. EmbeddedCollection#uri
  58. EmbeddedCollection.parse(iiifCollection, options)
  59. new EmbeddedImage(parsedImage, options)
  60. EmbeddedImage#embedded
  61. EmbeddedImage#getImageRequest(size, mode)
  62. EmbeddedImage#getImageUrl(imageRequest, options)
  63. EmbeddedImage#height
  64. EmbeddedImage#majorVersion
  65. EmbeddedImage#maxArea
  66. EmbeddedImage#maxHeight
  67. EmbeddedImage#maxWidth
  68. EmbeddedImage#preferredFormats?
  69. EmbeddedImage#supportedFormats
  70. EmbeddedImage#supportsAnyRegionAndSize
  71. EmbeddedImage#type
  72. EmbeddedImage#uri
  73. EmbeddedImage#width
  74. new EmbeddedManifest(parsedManifest)
  75. EmbeddedManifest#description?
  76. EmbeddedManifest#embedded
  77. EmbeddedManifest#label?
  78. EmbeddedManifest#majorVersion
  79. EmbeddedManifest#metadata?
  80. EmbeddedManifest#navDate?
  81. EmbeddedManifest#navPlace?
  82. EmbeddedManifest#thumbnail?
  83. EmbeddedManifest#type
  84. EmbeddedManifest#uri
  85. new IIIF()
  86. IIIF.parse(iiifResource, options)
  87. new Image(parsedImage, options)
  88. Image#embedded
  89. Image#getImageRequest(size, mode)
  90. Image#getTileImageRequest(zoomLevel, column, row)
  91. Image#sizes?
  92. Image#source?
  93. Image#tileZoomLevels
  94. Image.parse(iiifImage, parseOptions)
  95. ImageRequest
  96. ImageUrlOptions
  97. LanguageString
  98. MajorVersion
  99. new Manifest(parsedManifest, options)
  100. Manifest#annotations?
  101. Manifest#canvases
  102. Manifest#embedded
  103. Manifest#fetchAllItems(fetchFn)
  104. Manifest#fetchImageByUri(imageUri, fetchFn)
  105. Manifest#fetchNextItem(fetchFn, depth)
  106. Manifest#homepage?
  107. Manifest#images
  108. Manifest#provider?
  109. Manifest#rendering?
  110. Manifest#requiredStatement?
  111. Manifest#rights?
  112. Manifest#seeAlso?
  113. Manifest#source?
  114. Manifest#summary?
  115. Manifest.parse(iiifManifest, options)
  116. Metadata
  117. ProfileProperties
  118. Region
  119. Size
  120. TileZoomLevel
  121. Tileset

@allmaps/iiif-parser

This is a JavaScript module that parser IIIF Collections, Manifests and Images. This is a core module of Allmaps and is used in all its apps and components.

Note: this module parses IIIF data to an intermediate format that is used by Allmaps internally. It does not parse all properties defined by the IIIF Image and Presentation APIs, only properties that are needed for Allmaps to function. See the files in the src/classes and src/schemas directories for details about these proeprties.

@allmaps/iiif-parser is written in TypeScript and is built using Zod.

Versions 1, 2 and 3 of the IIIF Image and Presentation APIs are supported.

This module has been tested on a wide variety of IIIF servers. Run npm test to run all tests.

Installation

This is an ESM-only module that works in browsers and Node.js.

Node.js:

First, run pnpm install @allmaps/iiif-parser to add this module to your project.

import { IIIF } from '@allmaps/iiif-parser'

Browser:

<script type="module">
  import { IIIF } from 'https://unpkg.com/@allmaps/iiif-parser?module'
</script>

Usage

import { IIIF } from '@allmaps/iiif-parser'

const manifestUrl =
  'https://collections.leventhalmap.org/search/commonwealth:wd376720z/manifest'
const manifest = await fetch(manifestUrl).then((response) => response.json())
const parsedManifest = IIIF.parse(manifest)
console.log(parsedManifest)

This will log parsedManifest to the console:

{
  "embedded": false,
  "type": "manifest",
  "uri": "https://ark.digitalcommonwealth.org/ark:/50959/wd376720z/manifest",
  "majorVersion": 2,
  "label": {
    "none": [
      "Map of Boston and vicinity showing tracks operated by the Boston Elevated Railway Co., surface lines"
    ]
  },
  "canvases": [
    {
      "type": "canvas",
      "width": 7486,
      "height": 9138,
      "uri": "https://ark.digitalcommonwealth.org/ark:/50959/wd376720z/canvas/wd3767217",
      "label": {
        "none": ["image 1"]
      },
      "image": {
        "embedded": true,
        "type": "image",
        "uri": "https://iiif.digitalcommonwealth.org/iiif/2/commonwealth:wd3767217",
        "majorVersion": 2,
        "supportsAnyRegionAndSize": true,
        "width": 7486,
        "height": 9138
      }
    }
  ],
  "metadata": [
    {
      "label": {
        "none": ["Title"]
      },
      "value": {
        "none": [
          "Map of Boston and vicinity showing tracks operated by the Boston Elevated Railway Co., surface lines"
        ]
      }
    },
    {
      "label": {
        "none": ["Date"]
      },
      "value": {
        "none": ["1898"]
      }
    },
    {
      "label": {
        "none": ["Publisher"]
      },
      "value": {
        "none": ["Boston, Mass : [Geo. H. Walker & Co.]"]
      }
    },
    {
      "label": {
        "none": ["Type of Resource"]
      },
      "value": {
        "none": ["Cartographic"]
      }
    },
    {
      "label": {
        "none": ["Format"]
      },
      "value": {
        "none": ["Maps"]
      }
    },
    {
      "label": {
        "none": ["Language"]
      },
      "value": {
        "none": ["English"]
      }
    },
    {
      "label": {
        "none": ["Subjects"]
      },
      "value": {
        "none": [
          "Boston Elevated Railway Company",
          "Street-railroads--Massachusetts--Boston--Maps",
          "Boston (Mass.)--Maps",
          "Massachusetts--Maps"
        ]
      }
    },
    {
      "label": {
        "none": ["Location"]
      },
      "value": {
        "none": ["Boston Public Library"]
      }
    },
    {
      "label": {
        "none": ["Collection (local)"]
      },
      "value": {
        "none": ["Norman B. Leventhal Map Center Collection"]
      }
    },
    {
      "label": {
        "none": ["Identifier"]
      },
      "value": {
        "none": [
          "https://ark.digitalcommonwealth.org/ark:/50959/wd376720z",
          "06_01_003041",
          "G3764.B6P33 1898 .M3",
          "39999058997337"
        ]
      }
    },
    {
      "label": {
        "none": ["Terms of Use"]
      },
      "value": {
        "none": [
          "No known copyright restrictions.",
          "No known restrictions on use."
        ]
      }
    }
  ]
}

You can also call the parse function on a specific IIIF class:

import { Image } from '@allmaps/iiif-parser'

const imageUrl =
  'https://iiif.digitalcommonwealth.org/iiif/2/commonwealth:wd3767217'
const image = await fetch(`${imageUrl}/info.json`).then((response) =>
  response.json()
)
const parsedImage = Image.parse(image)
console.log(parsedImage)

This will log parsedImage to the console:

{
  "embedded": false,
  "type": "image",
  "uri": "https://iiif.digitalcommonwealth.org/iiif/2/commonwealth:wd3767217",
  "majorVersion": 2,
  "supportsAnyRegionAndSize": true,
  "width": 7486,
  "height": 9138,
  "tileZoomLevels": [
    {
      "scaleFactor": 1,
      "width": 1024,
      "height": 1024,
      "originalWidth": 1024,
      "originalHeight": 1024,
      "columns": 8,
      "rows": 9
    },
    {
      "scaleFactor": 2,
      "width": 1024,
      "height": 1024,
      "originalWidth": 2048,
      "originalHeight": 2048,
      "columns": 4,
      "rows": 5
    },
    {
      "scaleFactor": 4,
      "width": 1024,
      "height": 1024,
      "originalWidth": 4096,
      "originalHeight": 4096,
      "columns": 2,
      "rows": 3
    },
    {
      "scaleFactor": 8,
      "width": 1024,
      "height": 1024,
      "originalWidth": 8192,
      "originalHeight": 8192,
      "columns": 1,
      "rows": 2
    },
    {
      "scaleFactor": 16,
      "width": 1024,
      "height": 1024,
      "originalWidth": 16384,
      "originalHeight": 16384,
      "columns": 1,
      "rows": 1
    },
    {
      "scaleFactor": 32,
      "width": 1024,
      "height": 1024,
      "originalWidth": 32768,
      "originalHeight": 32768,
      "columns": 1,
      "rows": 1
    },
    {
      "scaleFactor": 64,
      "width": 1024,
      "height": 1024,
      "originalWidth": 65536,
      "originalHeight": 65536,
      "columns": 1,
      "rows": 1
    }
  ],
  "sizes": [
    {
      "width": 117,
      "height": 143
    },
    {
      "width": 234,
      "height": 286
    },
    {
      "width": 468,
      "height": 571
    },
    {
      "width": 936,
      "height": 1142
    },
    {
      "width": 1872,
      "height": 2285
    },
    {
      "width": 3743,
      "height": 4569
    },
    {
      "width": 7486,
      "height": 9138
    }
  ]
}

You can check if a parsed IIIF resource object is of a specific class by using the instanceof operator or checking the type property:

import { IIIF } from '@allmaps/iiif-parser'

const url =
  'https://collections.leventhalmap.org/search/commonwealth:wd376720z/manifest'
const iiif = await fetch(url).then((response) => response.json())
const parsedIiif = IIIF.parse(manifest)

if (parsedIiif.type === 'manifest') {
  console.log('This is a IIIF Manifest!')
}

CLI

Parsing IIIF resources is also possible using the Allmaps CLI.

For example:

curl https://collections.leventhalmap.org/search/commonwealth:wd376720z/manifest | allmaps iiif parse

License

MIT

API

new Canvas(parsedCanvas)

Parameters
  • parsedCanvas ({ '@id': string; '@type'?: "sc:Canvas" | undefined; width: number; height: number; images: Array<{ resource: { width?: number | undefined; height?: number | undefined; service: { '@id': string; '@type'?: "ImageService1" | "ImageService2" | "ImageService3" | undefined; profile: string | ValidImage2ProfileArray; width...)
Returns

Canvas.

Canvas#annotations?

Type
Array<{id: string; type: 'AnnotationPage'; items?: unknown[]}>

Canvas#description?

Type
{[language: string]: Array<string | number | boolean>}

Canvas#height

Type
number

Canvas#homepage?

Type
Array<{
  id: string
  type?: string
  label?: LanguageString
  format?: string
  language?: string | string[]
}>

Canvas#image

Type
EmbeddedImage | Image

Canvas#label?

Type
{[language: string]: Array<string | number | boolean>}

Canvas#metadata?

Type
Array<MetadataItem>

Canvas#navDate?

Type
Date

Canvas#navPlace?

Type
object

Canvas#provider?

Type
Array<Agent>

Canvas#rendering?

Type
Array<{
  id: string
  type?: string
  label?: LanguageString
  format?: string
}>

Canvas#requiredStatement?

Type
{label: LanguageString; value: LanguageString}

Canvas#rights?

Type
string

Canvas#seeAlso?

Type
Array<{id: string; type?: string; format?: string; profile?: string}>

Canvas#summary?

Type
{[language: string]: Array<string | number | boolean>}

Canvas#thumbnail?

Type
Array<{
  id: string
  type?: string
  format?: string
  width?: number
  height?: number
}>

Canvas#type

Type
CanvasTypeString

Canvas#uri

Type
string

Canvas#width

Type
number

new Collection(parsedCollection, options)

Parameters
  • parsedCollection ({ '@id': string; '@type': "sc:Collection"; manifests?: Array<{ '@id': string; '@type': "sc:Collection"; manifests?: Array<... | { '@id': string; '@type': "sc:Manifest"; label?: string | Array<string> | Array<{ '@value': string | Array<string>; '@language'?: string | undefined; }> | { '@value': string | Array<string>...)
  • options? (Partial<ConstructorOptions> | undefined)
Returns

Collection.

Extends
  • EmbeddedCollection

Collection#annotations?

Type
Array<{id: string; type: 'AnnotationPage'; items?: unknown[]}>

Collection#canvases

Type
Array<Canvas>

Collection#embedded

Type
false

Collection#fetchAllItems(options)

Parameters
  • options? (Partial<FetchNextItemOptions> | undefined)
Returns

Promise<Array<FetchNextItemResults<Collection | Image | Manifest>>>.

Collection#fetchItemWithId(id, fetchFn)

Parameters
  • id (string)
  • fetchFn ( | ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) | undefined)
Returns

Promise<EmbeddedCollection | EmbeddedManifest | undefined>.

Collection#fetchItemWithIndex(index, fetchFn)

Parameters
  • index (number)
  • fetchFn ( | ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) | undefined)
Returns

Promise<Collection | EmbeddedCollection | EmbeddedManifest | Manifest>.

Collection#fetchNextItem(options, depth)

Parameters
  • options? (Partial<FetchNextItemOptions> | undefined)
  • depth (number | undefined)
Returns

AsyncGenerator< FetchNextItemResults<Collection | Image | Manifest>, void, void >.

Collection#fetchUntilPath(path)

Parameters
  • path (Array<number>)
Returns

Promise<void>.

Collection#getItemAtPath(path)

Parameters
  • path (Array<number>)
Returns

Canvas | EmbeddedCollection | EmbeddedManifest | undefined.

Collection#homepage?

Type
Array<{
  id: string
  type?: string
  label?: LanguageString
  format?: string
  language?: string | string[]
}>

Collection#images

Type
Array<EmbeddedImage | Image>

Collection#items

Type
Array<never>

Collection#provider?

Type
Array<Agent>

Collection#rendering?

Type
Array<{
  id: string
  type?: string
  label?: LanguageString
  format?: string
}>

Collection#requiredStatement?

Type
{label: LanguageString; value: LanguageString}

Collection#rights?

Type
string

Collection#seeAlso?

Type
Array<{id: string; type?: string; format?: string; profile?: string}>

Collection#source?

Type
unknown

Collection#summary?

Type
{[language: string]: Array<string | number | boolean>}

Collection.parse(iiifCollection, options)

Parses a IIIF Collection and returns a Collection containing the parsed version

Parameters
  • iiifCollection (unknown)
    • Source data of IIIF Collection
  • options? (Partial<ParseOptions> | undefined)
Returns

Parsed IIIF Collection (Collection).

new EmbeddedCollection(parsedCollection)

Parameters
  • parsedCollection ({ '@id': string; '@type': "sc:Collection"; manifests?: Array<{ '@id': string; '@type': "sc:Collection"; manifests?: Array<... | { '@id': string; '@type': "sc:Manifest"; label?: string | Array<string> | Array<{ '@value': string | Array<string>; '@language'?: string | undefined; }> | { '@value': string | Array<string>...)
Returns

EmbeddedCollection.

EmbeddedCollection#description?

Type
{[language: string]: Array<string | number | boolean>}

EmbeddedCollection#embedded

Type
true

EmbeddedCollection#label?

Type
{[language: string]: Array<string | number | boolean>}

EmbeddedCollection#majorVersion

Type
1 | 2 | 3

EmbeddedCollection#metadata?

Type
Array<MetadataItem>

EmbeddedCollection#navDate?

Type
Date

EmbeddedCollection#navPlace?

Type
object

EmbeddedCollection#thumbnail?

Type
Array<{
  id: string
  type?: string
  format?: string
  width?: number
  height?: number
}>

EmbeddedCollection#type

Type
CollectionTypeString

EmbeddedCollection#uri

Type
string

EmbeddedCollection.parse(iiifCollection, options)

Parses a IIIF Collection and returns a Collection containing the parsed version

Parameters
  • iiifCollection (unknown)
    • Source data of IIIF Collection
  • options? (Partial<ParseOptions> | undefined)
Returns

Parsed IIIF Collection (Collection).

new EmbeddedImage(parsedImage, options)

Parameters
  • parsedImage ({ '@context': "http://library.stanford.edu/iiif/image-api/1.1/context.json"; '@id': string; profile?: string | undefined; width: number; height: number; scale_factors?: Array<number> | undefined; tile_width?: number | undefined; tile_height?: number | undefined; } | { ...; } | { ...; } | EmbeddedImageType)
  • options? (Partial<ImageConstructorOptions> | undefined)
Returns

EmbeddedImage.

EmbeddedImage#embedded

Type
true

EmbeddedImage#getImageRequest(size, mode)

Parameters
  • size ({width: number; height: number})
  • mode (Fit | undefined)
Returns

Array<Array<ImageRequest>> | ImageRequest.

EmbeddedImage#getImageUrl(imageRequest, options)

Generates a IIIF Image API URL for the requested region and size

Parameters
  • imageRequest ({region?: Region; size?: SizeObject})
    • Image request object containing the desired region and size of the requested image
  • options? (ImageUrlOptions | undefined)
    • Options for generating the requested image URL
Returns

Image API URL that can be used to fetch the requested image (string).

EmbeddedImage#height

Type
number

EmbeddedImage#majorVersion

Type
1 | 2 | 3

EmbeddedImage#maxArea

Type
number | undefined

EmbeddedImage#maxHeight

Type
number | undefined

EmbeddedImage#maxWidth

Type
number | undefined

EmbeddedImage#preferredFormats?

Type
Array<string>

EmbeddedImage#supportedFormats

Type
Array<string>

EmbeddedImage#supportsAnyRegionAndSize

Type
boolean

EmbeddedImage#type

Type
ImageTypeString

EmbeddedImage#uri

Type
string

EmbeddedImage#width

Type
number

new EmbeddedManifest(parsedManifest)

Parameters
  • parsedManifest ({ '@id': string; '@type': "sc:Manifest"; sequences: Array<{ canvases: Array<{ '@id': string; '@type'?: "sc:Canvas" | undefined; width: number; height: number; images: Array<{ resource: { width?: number | undefined; height?: number | undefined; service: { ...; } | ... 2 more ... | { ...; }; }; }>; ... 9 more ...; nav...)
Returns

EmbeddedManifest.

EmbeddedManifest#description?

Type
{[language: string]: Array<string | number | boolean>}

EmbeddedManifest#embedded

Type
true

EmbeddedManifest#label?

Type
{[language: string]: Array<string | number | boolean>}

EmbeddedManifest#majorVersion

Type
1 | 2 | 3

EmbeddedManifest#metadata?

Type
Array<MetadataItem>

EmbeddedManifest#navDate?

Type
Date

EmbeddedManifest#navPlace?

Type
object

EmbeddedManifest#thumbnail?

Type
Array<{
  id: string
  type?: string
  format?: string
  width?: number
  height?: number
}>

EmbeddedManifest#type

Type
ManifestTypeString

EmbeddedManifest#uri

Type
string

new IIIF()

Base class that contains a static parse function for IIIF resources

Parameters

There are no parameters.

Returns

IIIF.

IIIF.parse(iiifResource, options)

Parses as IIIF resource and returns a class containing the parsed version

Parameters
  • iiifResource (unknown)
    • Source data of a IIIF resource
  • options? (Partial<ParseOptions> | undefined)
Returns

Parsed IIIF resource (Collection | Image | Manifest).

new Image(parsedImage, options)

Parameters
  • parsedImage ({ '@context': "http://library.stanford.edu/iiif/image-api/1.1/context.json"; '@id': string; profile?: string | undefined; width: number; height: number; scale_factors?: Array<number> | undefined; tile_width?: number | undefined; tile_height?: number | undefined; } | { ...; } | { ...; })
  • options? (Partial<ConstructorOptions> | undefined)
Returns

Image.

Extends
  • EmbeddedImage

Image#embedded

Type
false

Image#getImageRequest(size, mode)

Returns a Image request object for the requested region and size

Parameters
  • size ({width: number; height: number})
    • Size of the requested thumbnail
  • mode (Fit | undefined)
    • Desired fit mode of the requested thumbnail
Returns

Image request object that can be used to fetch the requested thumbnail (Array<Array<ImageRequest>> | ImageRequest).

Image#getTileImageRequest(zoomLevel, column, row)

Returns a Image request object for a tile with the requested zoom level, column, and row

Parameters
  • zoomLevel ({ scaleFactor: number width: number height: number originalWidth: number originalHeight: number columns: number rows: number })
    • Desired zoom level of the requested tile
  • column (number)
    • Column of the requested tile
  • row (number)
    • Row of the requested tile
Returns

Image request object that can be used to fetch the requested tile ({region?: Region; size?: SizeObject}).

Image#sizes?

Type
Array<SizeObject>

Image#source?

Type
unknown

Image#tileZoomLevels

Type
Array<TileZoomLevel>

Image.parse(iiifImage, parseOptions)

Parses a IIIF image and returns a Image containing the parsed version

Parameters
  • iiifImage (unknown)
    • Source data of IIIF Image
  • parseOptions? (Partial<ParseOptions> | undefined)
Returns

Parsed IIIF Image (Image).

ImageRequest

Fields
  • region? ({x: number; y: number; width: number; height: number})
  • size? ({width: number; height: number})

ImageUrlOptions

Fields
  • preferredFormats? (Array<string>)

LanguageString

Fields
  • [language: string] (Array<string | number | boolean>)

MajorVersion

Type
1 | 2 | 3

new Manifest(parsedManifest, options)

Parameters
  • parsedManifest ({ '@id': string; '@type': "sc:Manifest"; sequences: Array<{ canvases: Array<{ '@id': string; '@type'?: "sc:Canvas" | undefined; width: number; height: number; images: Array<{ resource: { width?: number | undefined; height?: number | undefined; service: { ...; } | ... 2 more ... | { ...; }; }; }>; ... 9 more ...; nav...)
  • options? (Partial<ConstructorOptions> | undefined)
Returns

Manifest.

Extends
  • EmbeddedManifest

Manifest#annotations?

Type
Array<{id: string; type: 'AnnotationPage'; items?: unknown[]}>

Manifest#canvases

Type
Array<never>

Manifest#embedded

Type
false

Manifest#fetchAllItems(fetchFn)

Parameters
  • fetchFn ( | ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) | undefined)
Returns

Promise<Array<FetchNextItemResults<Image>>>.

Manifest#fetchImageByUri(imageUri, fetchFn)

Parameters
  • imageUri (string)
  • fetchFn ( | ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) | undefined)
Returns

Promise<Image | undefined>.

Manifest#fetchNextItem(fetchFn, depth)

Parameters
  • fetchFn ( | ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) | undefined)
  • depth (number | undefined)
Returns

AsyncGenerator<FetchNextItemResults<Image>, void, void>.

Manifest#homepage?

Type
Array<{
  id: string
  type?: string
  label?: LanguageString
  format?: string
  language?: string | string[]
}>

Manifest#images

Type
Array<EmbeddedImage | Image>

Manifest#provider?

Type
Array<Agent>

Manifest#rendering?

Type
Array<{
  id: string
  type?: string
  label?: LanguageString
  format?: string
}>

Manifest#requiredStatement?

Type
{label: LanguageString; value: LanguageString}

Manifest#rights?

Type
string

Manifest#seeAlso?

Type
Array<{id: string; type?: string; format?: string; profile?: string}>

Manifest#source?

Type
unknown

Manifest#summary?

Type
{[language: string]: Array<string | number | boolean>}

Manifest.parse(iiifManifest, options)

Parses a IIIF resource and returns a Manifest containing the parsed version

Parameters
  • iiifManifest (unknown)
    • Source data of IIIF Manifest
  • options? (Partial<ParseOptions> | undefined)
Returns

Parsed IIIF Manifest (Manifest).

Metadata

Type
Array<MetadataItem>

ProfileProperties

Fields
  • maxArea? (number)
  • maxHeight? (number)
  • maxWidth? (number)
  • supportsAnyRegionAndSize (boolean)

Region

Fields
  • height (number)
  • width (number)
  • x (number)
  • y (number)

Size

Two numbers indicating the size of a Bbox as [width, height] or [xSize, ySize] ([number, number]). Alternatively, two numbers indicating the minimum and maximum of, for example, an array of numbers Alternatively, two numbers indicating the dimensions of a matrix: rows, cols (which is a different handedness!)

TileZoomLevel

Fields
  • columns (number)
  • height (number)
  • originalHeight (number)
  • originalWidth (number)
  • rows (number)
  • scaleFactor (number)
  • width (number)

Tileset

Type
{
  width: number
  height?: number | undefined
  scaleFactors: Array<number>
}

版本与发布记录

@allmaps/iiif-parser 共发布 60 个版本,首次发布于 2021/04/13;过去 12 个月发布了 4 个版本。

版本发布日期距今
1.0.0-beta.49latest2026/09/221 个月前
1.0.0-beta.482026/05/295 个月前
1.0.0-beta.472025/11/2711 个月前
1.0.0-beta.462025/11/1111 个月前
1.0.0-beta.452025/07/101.3 年前
1.0.0-beta.442025/07/071.3 年前

其他发布通道:beta → 1.0.0-beta.43。

关于 @allmaps/iiif-parser 的常见问题

@allmaps/iiif-parser 是什么?

Allmaps IIIF parser

如何安装 @allmaps/iiif-parser?

在项目目录运行 npm install @allmaps/iiif-parser,或使用 pnpm add / yarn add / bun add。

@allmaps/iiif-parser 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/allmaps__iiif-parser 是否存在。

@allmaps/iiif-parser 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@allmaps/iiif-parser 可以商用吗?

@allmaps/iiif-parser 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@allmaps/iiif-parser 的下载量有多少?

根据 npm 官方下载统计,@allmaps/iiif-parser 在 2026/10/06 – 2026/11/04 这 30 天内被下载 14,867 次,日均约 496 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@allmaps/iiif-parser 还在维护吗?

最新版本 1.0.0-beta.49 发布于 2026/09/22(1 个月前);至今共发布 60 个版本,其中过去 12 个月发布了 4 个;首次发布于 2021/04/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。