npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@iiif/presentation-3

v2.2.3

Published

IIIF Presentation v3.0 typescript types

Downloads

11,318

Readme

IIIF Presentation 3 types

A 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):

import { Manifest } from '@iiif/presentation-3';

const manifest = getManifestFromSomewhere() as Manifest;

function doSomethingWithManifest(manifest: Manifest) {
  // ...
}

Usage (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:

Support

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

Full List of types

Basic types

| Type | Description | |----------------------------|-------------------------------------------------------------------------| | ResourceType | String literals for the possible values of type | | InternationalString | Common language property ({ "none": ["..."] }) | | Reference | A reference to another resources ({id: '..', type: '..'}) | | JsonLDContext | A partial of {'@context': ... }, 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.

W3C Model 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 | The descriptive properties of IIIF in a map DescriptiveProperties['label'] | | TechnicalProperties | The technical properties of IIIF in a map DescriptiveProperties['id'] | | StructuralProperties | The structural properties of IIIF in a map DescriptiveProperties['annotations'] |

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 |