IIIF Presentation v3.0 typescript types
npm install @iiif/presentation-3A set of types that describe the format of the IIIF Presentation 3.0 specification as accurately as possible.
Installation:
```
$ npm i @iiif/presentation-3
Installation (yarn):
``
$ yarn add @iiif/presentation-3
Usage (Typescript):
`typescript
import { Manifest } from '@iiif/presentation-3';
const manifest = getManifestFromSomewhere() as Manifest;
function doSomethingWithManifest(manifest: Manifest) {
// ...
}
`
Usage (Javascript):
`javascript
/**
* @typedef { import("@iiif/presentation-3").Manifest } Manifest
*/
/**
* @type {Manifest}
*/
const manifest = {};
/**
* @param manifest {Manifest}
*/
function doSomethingWithManifest(manifest) {
console.log(manifest.label);
}
// You can also inline the import:
/**
* @type {import("@iiif/presentation-3").Manifest}
*/
const manifest2 = {};
`
This will enable types completions in VSCode and IDEA, along with inline documentation from the IIIF specification:
The following types are supported:
* Manifest
* Collection
* Canvas
* Annotation
* Annotation Collection
* Annotation Page
* Content Resource
* Provider
* Range
* Service
With some other types that aim to cover common services:
* Auth service
* GeoJSON service
* Image service
* Search service
#### Basic types
| Type | Description |
|----------------------------|-------------------------------------------------------------------------|
| ResourceType | String literals for the possible values of type |{ "none": ["..."] }
| InternationalString | Common language property () |{id: '..', type: '..'}
| Reference | A reference to another resources () |{'@context': ... }
| JsonLDContext | A partial of , extended by resources with contexts |
| MetadataItem | Label value pair used in the metadata field |
| SpecificationBehaviors | String literals for supported behaviors mentioned in the specification |
| SpecificationTimeMode | String literals for supported time modes mentioned in the specification |
| ViewingDirection | String literal for the 4 supported viewing directions |
#### Resources
| Type | Description |
|-----------------------------|-------------------------------------------------------------------------------------------|
| Service | Any service that can appear in services property. Union of generic and specific services. |
| Manifest | Types for a valid IIIF Manifest |
| Canvas | Types for a valid IIIF Canvas |
| ContentResource | Types for a Content Resource - warning this can be many things! |
| AnnotationPage | Types for a valid Annotation page |
| Annotation | Types for a valid Annotation in the context of a IIIF manifest |
| AnnotationW3C | Types for a valid W3C annotation (different from above) |
| Collection | Types for a valid IIIF Collection |
| Range | Types for a valid IIIF Range |
| AnnotationCollection | Types for a valid Annotation collection |
| IIIFExternalWebResource | Abstract type for an external web resource |
| ContentResourceString | Alias for string |
#### Resource items (structural)
| Type | Description |
|---------------------|----------------------------------|
| CanvasItems | Alias for Annotation Page |
| CollectionItems | Union of Manifest or Collection |
| ManifestItems | Alias for Canvas |
| RangeItems | Union of Range, Canvas or string |
#### Services
| Type | Description |
|------------------------------------------|-------------|
| AuthAccessTokenServiceError | [todo] |
| AuthAccessTokenServiceResponse | [todo] |
| AuthAbstractService | [todo] |
| AuthAccessTokenService | [todo] |
| AuthExternalService | [todo] |
| AuthClickThroughService | [todo] |
| AuthKioskService | [todo] |
| AuthLoginService | [todo] |
| AuthLogoutService | [todo] |
| AuthService | [todo] |
| GeoJsonService | [todo] |
| ImageService | [todo] |
| ImageService2 | [todo] |
| ImageServiceProfile | [todo] |
| ImageProfile | [todo] |
| ImageService3 | [todo] |
| ImageSize | [todo] |
| ImageTile | [todo] |
| SearchService | [todo] |
| SearchServiceAutocomplete | [todo] |
| SearchServiceAutocompleteQueryParams | [todo] |
| SearchServiceAutocompleteResponse | [todo] |
| SearchServiceCommonHitSelectors | [todo] |
| SearchServiceCommonResources | [todo] |
| SearchServiceQueryParams | [todo] |
| SearchServiceSearchCommonSelectors | [todo] |
| SearchServiceSearchResponse | [todo] |
#### W3C Annotations
Most of these types are not exported, but internally follows the full W3C specification.
| Type | Description |
|-----------------------------|-------------|
| Agent | [todo] |
| AnnotationBody | [todo] |
| AnnotationTarget | [todo] |
| AnyMotivation | [todo] |
| Audience | [todo] |
| Body | [todo] |
| ChoiceBody | [todo] |
| ChoiceTarget | [todo] |
| Creator | [todo] |
| BasicState | [todo] |
| CssSelector | [todo] |
| DataPositionSelector | [todo] |
| FragmentSelector | [todo] |
| Selector | [todo] |
| RefinedBy | [todo] |
| RefinedByState | [todo] |
| EmbeddedResource | [todo] |
| ExternalResourceTypes | [todo] |
| ExternalWebResource | [todo] |
| RangeSelector | [todo] |
| RequestHeaderState | [todo] |
| SpecificResource | [todo] |
| State | [todo] |
| SvgSelector | [todo] |
| TextPositionSelector | [todo] |
| TextQuoteSelector | [todo] |
| TimeState | [todo] |
| XPathSelector | [todo] |
| Stylesheet | [todo] |
| Target | [todo] |
| TargetComposite | [todo] |
| TargetList | [todo] |
| TargetIndependents | [todo] |
| W3CAnnotationBody | [todo] |
| W3CAnnotationCollection | [todo] |
| W3CAnnotationPage | [todo] |
| W3CAnnotationTarget | [todo] |
| W3CMotivation | [todo] |
| LinkedResource | [todo] |
| ResourceBaseProperties | [todo] |
| OtherProperties | [todo] |
#### Normalized resources
The normalized types have moved
to @iiif/presentation-3-normalized.
#### Partial / Abstract types
These types are building blocks of other types.
| Type | Description |
|---------------------------|-----------------------------------------------------------------------------------|
| LinkingProperties | The linking properties of IIIF in a map LinkingProperties['seeAlso'] |DescriptiveProperties['label']
| DescriptiveProperties | The descriptive properties of IIIF in a map |DescriptiveProperties['id']
| TechnicalProperties | The technical properties of IIIF in a map |DescriptiveProperties['annotations']
| StructuralProperties | The structural properties of IIIF in a map |
#### Helpers
| Type | Description |
|--------------------|---------------------------------------------------------|
| OmitProperties | Helper for removing properties from another type |
| IdOrAtId | Helper for resources that can have either id or @id` |
| SomeRequired | Helper for requiring some properties from another type |
| Required | Helper for requiring all properties from another type |