Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@iiif/parser

Package Overview
Dependencies
Maintainers
4
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@iiif/parser - npm Package Compare versions

Comparing version
1.0.0
to
1.0.1
+21
LICENSE
MIT License
Copyright (c) 2022 IIIF Commons
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+1
-1

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const Ae={id:"https://iiif-parser/annotation",type:"Annotation",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],seeAlso:[],homepage:null,logo:[],rendering:[],service:[],accessibility:[],audience:[],body:[],bodyValue:null,canonical:null,created:null,creator:[],generated:null,generator:[],modified:null,motivation:[],rights:[],stylesheet:null,target:[],timeMode:void 0,via:[],partOf:[]},k={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:[],motivation:null,label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:null,logo:[],rendering:[],service:[]},N={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],duration:0,height:0,width:0},j={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],services:[]},G={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:[],behavior:[],homepage:null,items:[],label:null,logo:[],metadata:[],motivation:null,navDate:null,provider:[],partOf:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:[],requiredStatement:null,rights:null,seeAlso:[],service:[],services:[],start:null,structures:[],summary:null,thumbnail:[],viewingDirection:"left-to-right"},$={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],start:null,supplementary:null,viewingDirection:"left-to-right"},M=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector"];function q(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t.type=="string"){const e=M.indexOf(t.type);if(e!==-1)return M[e]}if(t.profile)return"Service";throw new Error("Resource type is not known")}class L{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new L({collection:[e],manifest:[e],canvas:[e],annotationCollection:[e],annotationPage:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e]})}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=e.thumbnail.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map(i=>this.traverseType(i,this.traversals.contentResource))),e.service&&(e.service=e.service.map(i=>this.traverseType(i,this.traversals.service))),e.services&&(e.services=e.services.map(i=>this.traverseType(i,this.traversals.service))),e.logo&&(e.logo=e.logo.map(i=>this.traverseType(i,this.traversals.contentResource))),e.homepage&&(e.homepage=this.traverseType(e.homepage,this.traversals.contentResource)),e.partOf&&(e.partOf=e.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,this.traversals.annotationCollection):this.traverseType(i,this.traversals.contentResource))),e.start&&(e.start=e.start.map(i=>this.traverseType(i,this.traversals.canvas))),e.rendering&&(e.rendering=e.rendering.map(i=>this.traverseType(i,this.traversals.contentResource))),e.supplementary&&(e.supplementary=e.supplementary.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseCollectionItems(e){return e.items&&e.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),e}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traversePosterCanvas(this.traverseCollectionItems(e)))),this.traversals.collection)}traverseManifestItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseCanvas(i))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseManifest(e){return this.traverseType(this.traverseManifestStructures(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))))),this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(i=>this.traverseAnnotationPage(i)),e}traverseInlineAnnotationPages(e){return e.annotations&&(e.annotations=e.annotations.map(i=>this.traverseAnnotationPage(i))),e}traverseCanvas(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))))),this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseAnnotation(i))),e}traverseAnnotationPage(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationPageItems(e))),this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(i=>this.traverseContentResource(i)):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseType(e.posterCanvas,this.traversals.canvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseType(e.placeholderCanvas,this.traversals.canvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseType(e.accompanyingCanvas,this.traversals.canvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e=="string"||!e||e&&e.service&&(e.service=(e.service||[]).map(i=>this.traverseType(i,this.traversals.service))),e}traverseContentResource(e){return e.type==="Choice"&&(e.items=e.items.map(i=>this.traverseContentResource(i))),this.traverseType(this.traverseContentResourceLinking(e),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"}):i.type==="Manifest"?this.traverseManifest(i):this.traverseRange(i))),e}traverseRange(e){return this.traverseType(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseRangeRanges(e)))),this.traversals.range)}traverseType(e,i){return i.reduce((n,s)=>{const r=s(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const i=q(e);switch(i){case"Collection":return this.traverseCollection(e);case"Manifest":return this.traverseManifest(e);case"Canvas":return this.traverseCanvas(e);case"AnnotationPage":return this.traverseAnnotationPage(e);case"Annotation":return this.traverseAnnotation(e);case"ContentResource":return this.traverseContentResource(e);case"Range":return this.traverseRange(e);case"Service":return this.traverseService(e);default:throw new Error(`Unknown or unsupported resource type of ${i}`)}}}const U=["sc:Collection","sc:Manifest","sc:Canvas","oa:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function Ce(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t["@type"]=="string"){const e=U.indexOf(t["@type"]);if(e!==-1)return U[e]}if(t.profile)return"Service";if(t.format||t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class S{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(e){return new S({collection:[e],manifest:[e],canvas:[e],annotationList:[e],sequence:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e],layer:[e]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){const i=[...(e.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(e.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...e.members||[]];delete e.collections,delete e.manifests,e.members=i}return e.manifests&&(e.manifests=e.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),e.collections&&(e.collections=e.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),e.members&&(e.members=e.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),e}traverseManifest(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))),this.traversals.manifest)}traverseManifestItems(e){return e.sequences&&(e.sequences=e.sequences.map(i=>this.traverseSequence(i))),e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseSequence(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(e))),this.traversals.sequence)}traverseSequenceItems(e){return e.canvases&&(e.canvases=e.canvases.map(i=>this.traverseCanvas(i))),e}traverseCanvas(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))),this.traversals.canvas)}traverseCanvasItems(e){return e.images&&(e.images=e.images.map(i=>this.traverseAnnotation(i))),e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const i=[...(e.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(e.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...e.members||[]];delete e.ranges,delete e.canvases,e.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return e}traverseAnnotationList(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationListItems(e))),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map(i=>this.traverseAnnotation(i))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(e.resource=this.traverseContentResource(e.resource)),e.on,e}traverseLayer(e){return this.traverseType(this.traverseLinking(this.traverseLayerItems(e)),this.traversals.layer)}traverseLayerItems(e){return e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!=="rdf:nil"&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!=="rdf:nil"&&(e.item=e.item.map(i=>this.traverseContentResource(i))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e["@type"]==="oa:Choice"?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||typeof e=="string")return e;switch(Ce(e)){case"sc:Collection":return this.traverseCollection(e);case"sc:Manifest":return this.traverseManifest(e);case"sc:Canvas":return this.traverseCanvas(e);case"sc:Sequence":return this.traverseSequence(e);case"sc:Range":return this.traverseRange(e);case"oa:Annotation":return this.traverseAnnotation(e);case"oa:AnnotationList":return this.traverseAnnotationList(e);case"sc:Layer":return this.traverseLayer(e);case"Service":return this.traverseService(e);case"oa:Choice":return this.traverseChoice(e);case"ContentResource":return this.traverseContentResource(e)}return e.profile?this.traverseService(e):e}traverseImageResource(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],s=[];for(const r of n)typeof r=="string"?s.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):s.push(this.traverseContentResource(r));return!i&&!this.options.convertPropsToArray?s[0]:s}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],s=[];for(const r of n)s.push(this.traverseService(r));return!i&&!this.options.convertPropsToArray?s[0]:s}traverseLinking(e){return e.related&&(e.related=this.traverseOneOrManyType(e.related,this.traversals.contentResource)),e.rendering&&(e.rendering=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource)),e.service&&(e.service=this.traverseOneOrMoreServices(e.service)),e.seeAlso&&(e.seeAlso=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource)),e.within&&(typeof e.within=="string"||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas=="string"?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer=="string"?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,i){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,i);return e.map(n=>this.traverseType(n,i))}traverseType(e,i){return i.reduce((n,s)=>{const r=s(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}}const Ie="http://library.stanford.edu/iiif/image-api/compliance.html#level0",V="http://library.stanford.edu/iiif/image-api/compliance.html#level1",W="http://library.stanford.edu/iiif/image-api/compliance.html#level2",_e="http://library.stanford.edu/iiif/image-api/conformance.html#level0",z="http://library.stanford.edu/iiif/image-api/conformance.html#level1",H="http://library.stanford.edu/iiif/image-api/conformance.html#level2",be="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",B="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",K="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Re="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Q="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",X="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Ee="http://iiif.io/api/image/1/level0.json",we="http://iiif.io/api/image/1/profiles/level0.json",Y="http://iiif.io/api/image/1/level1.json",Z="http://iiif.io/api/image/1/profiles/level1.json",J="http://iiif.io/api/image/1/level2.json",ee="http://iiif.io/api/image/1/profiles/level2.json",Le="http://iiif.io/api/image/2/level0.json",Te="http://iiif.io/api/image/2/profiles/level0.json",te="http://iiif.io/api/image/2/level1.json",ie="http://iiif.io/api/image/2/profiles/level1.json",ne="http://iiif.io/api/image/2/level2.json",re="http://iiif.io/api/image/2/profiles/level2.json",Me="level0",se="level1",ae="level2",Se="http://iiif.io/api/image/2/level0",oe="http://iiif.io/api/image/2/level1",le="http://iiif.io/api/image/2/level2",xe=[oe,le,V,W,z,H,B,K,Q,X,Y,Z,J,ee,te,ie,ne,re,se,ae],Oe=[Se,oe,le,Ie,V,W,_e,z,H,be,B,K,Re,Q,X,Ee,we,Y,Z,J,ee,Le,Te,te,ie,ne,re,Me,se,ae],x={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function f(t,e="none"){if(!t)return{};const i=Array.isArray(t)?t:[t],n={};for(const s of i){if(typeof s=="string"){n[e]=n[e]?n[e]:[],n[e].push(s||"");continue}if(!s["@language"]){n[e]=n[e]?n[e]:[],n[e].push(s["@value"]||"");continue}const r=s["@language"];n[r]=n[r]?n[r]:[],n[r].push(s["@value"]||"")}return n}function ve(t){if(Array.isArray(t))return ve(t.find(e=>typeof e=="string"));if(Oe.indexOf(t)!==-1)return"level2";if(xe.indexOf(t)!==-1)return"level1";if(typeof t=="string")return t}function Pe(t){const e=Array.isArray(t)?t:[t];for(const i of e)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function Fe(t){switch(t){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function De(t){return Array.isArray(t)?t:[t]}function ke(t){for(const e of["sc","oa","dcterms","dctypes","iiif"])if(t.startsWith(`${e}:`))return t.slice(e.length+1);return t}function O(t){const e=t["@id"]||t.id;let i=t["@type"]||t.type;const n=t.profile||void 0,s=t["@context"]||void 0;if(n){const r=Fe(n);if(r)return r}if(s){const r=Pe(s);if(r)return r}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(const r of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${r}:`)){i=i.slice(r.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(t.format){if(t.format.startsWith("image/"))return"Image";if(t.format.startsWith("text/")||t.format==="application/pdf")return"Text";if(t.format.startsWith("application/"))return"Dataset"}return e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".jpeg"))?"Image":i||"unknown"}const Ne=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function je(t){const e=t.match(Ne);return e?e[0]:t}function Ge(t,e="Rights/License",i="none"){let n=null;const s=[],r=Array.isArray(t)?t:[t];for(const y of r){const a=y?je(y):void 0;if(a&&(a.indexOf("creativecommons.org")!==-1||a.indexOf("rightsstatements.org")!==-1)){a.startsWith("https://")?n=`http://${a.slice(8)}`:n=a;continue}a&&s.push({label:{[i]:[e]},value:{[i]:[a]}})}return[n,s]}const $e=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function qe(t){if(t){const e=Array.isArray(t)?t:[t],i=[];for(const n of e)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),$e.indexOf(n)===-1&&i.push(n);if(e.length)return i.length===1?i[0]:i}}function Ue(t){return t?t.map(e=>({label:f(e.label),value:f(e.value)})):[]}function v(t){for(const e in t)(typeof t[e]=="undefined"||t[e]===null)&&delete t[e];return t}let ce=0;function pe(t,e){const i=encodeURI(t.id||t["@id"]||"").trim();return i&&e?`${i}/${e}`:i||(ce++,`http://example.org/${t["@type"]}${e?`/${e}`:""}/${ce}`)}function c(t){const e=[...t.behavior||[]];return t.viewingHint&&e.push(t.viewingHint),{"@context":t["@context"]?qe(t["@context"]):void 0,id:(t["@id"]||pe(t)).trim(),type:O(t),behavior:e.length?e:void 0,height:t.height?t.height:void 0,width:t.width?t.width:void 0,motivation:t.motivation?ke(t.motivation):void 0,viewingDirection:t.viewingDirection,profile:t.profile,format:t.format?t.format:void 0,duration:void 0,timeMode:void 0}}function l(t){const[e,i]=Ge(t.license),n=[...t.metadata?Ue(t.metadata):[],...i];return{rights:e,metadata:n.length?n:void 0,label:t.label?f(t.label):void 0,requiredStatement:t.attribution?{label:f(x.attributionLabel),value:f(t.attribution)}:void 0,navDate:t.navDate,summary:t.description?f(t.description):void 0,thumbnail:t.thumbnail}}function Ve(t){if(!t.within)return;const e=Array.isArray(t.within)?t.within:[t.within],i=[];for(const n of e)if(typeof n=="string"){if(n)switch(t["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:O(n)});return i.length?i:void 0}function p(t){const e=t.related?Array.isArray(t.related)?t.related:[t.related]:[],i=t.contentLayer;return{provider:t.logo||e.length?[{id:x.providerId,type:"Agent",homepage:e.length?[e[0]]:void 0,logo:t.logo?Array.isArray(t.logo)?t.logo:[t.logo]:void 0,label:f(x.providerName)}]:void 0,partOf:Ve(t),rendering:t.rendering,seeAlso:t.seeAlso,start:t.startCanvas,service:t.service?De(t.service):void 0,supplementary:i?[i]:void 0}}function We(t){return v({...c(t),...l(t),...p(t),items:t.members})}function ze(t){const e=[],i=[];for(const s of t.sequences||[])s.canvases.length&&e.push(...s.canvases),s.behavior&&i.push(...s.behavior);const n=c(t);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),v({...n,...l(t),...p(t),items:e,structures:t.structures})}function He(t){return v({...c(t),...l(t),...p(t),items:t.images&&t.images.length?[{id:pe(t,"annotation-page"),type:"AnnotationPage",items:t.images}]:void 0})}function Be(t){return v({...c(t),...l(t),...p(t),items:t.resources})}function Ke(t){return!t.canvases||t.canvases.length===0?{canvases:[],behavior:[]}:{canvases:t.canvases,behavior:t.viewingHint?[t.viewingHint]:[]}}function Qe(t){return v({...c(t),...l(t),...p(t),target:typeof t.on=="string"?encodeURI(t.on).trim():t.on,body:t.resource})}function Xe(t){const e=t;return v({...c(e),...l(e),...p(e)})}function Ye(t){const e=[];return t.default&&t.default!=="rdf:nil"&&e.push(t.default),t.item&&t.item!=="rdf:nil"&&e.push(...t.item),{...c(t),...l(t),items:e}}function Ze(t){return v({...c(t),...l(t),...p(t),items:t.members})}function Je(t){const{"@id":e,"@type":i,"@context":n,profile:s,...r}=t;return e&&(r.id=e),r.type=O(t),r.type==="unknown"&&(r.type="Service"),s&&(r.profile=ve(s)),v({...r,...l(r)})}function et(t){return v({...c(t),...l(t),...p(t)})}const tt=new S({collection:[We],manifest:[ze],canvas:[He],annotationList:[Be],sequence:[Ke],annotation:[Qe],contentResource:[Xe],choice:[Ye],range:[Ze],service:[Je],layer:[et]});function it(t){return t&&t["@context"]&&(t["@context"]==="http://iiif.io/api/presentation/2/context.json"||t["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||t["@context"]==="http://www.shared-canvas.org/ns/context.json")||t["@context"]==="http://iiif.io/api/image/2/context.json"?tt.traverseUnknown(t):t}const nt={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{}};function ue(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{}}}function fe(t,e){if(typeof t=="string")return{id:t,type:e};if(!t.id)throw new Error(`Invalid resource does not have an ID (${e})`);return t}function rt(t){return(e,i)=>{const n=t[e]?t[e]:{};return s=>{const r=fe(s,i||e);return r&&r.id&&e?(n[r.id]=n[r.id]?Object.assign({},n[r.id],r):Object.assign({},r),{id:r.id,type:e==="ContentResource"?e:r.type}):r}}}function st(t){return(e,i)=>n=>{const{id:s,type:r}=fe(n,i||e);if(typeof s=="undefined")throw new Error("Found invalid entity without an ID.");return e==="ContentResource"?t[s]=e:t[s]=r,n}}function at(t){const e=JSON.stringify(t);let i=5381,n=e.length;for(;n;)i=i*33^e.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function P(t){return e=>typeof e=="string"?{id:e,type:t}:e.id?e.type?e:{type:t,...e}:{id:at(e),type:t,...e}}function _(t){return e=>({...t,...e})}function A(t){return Array.isArray(t)?t:[t]}function ot(t){return t.body&&(t.body=A(t.body)),t.seeAlso&&(t.seeAlso=A(t.seeAlso)),t.body&&(t.body=A(t.body)),t.audience&&(t.audience=A(t.audience)),t.accessibility&&(t.accessibility=A(t.accessibility)),t.motivation&&(t.motivation=A(t.motivation)),t}function lt(t){const e=it(t),i=ue(),n={},s=rt(i),r=st(n),a=new L({collection:[_(j),r("Collection"),s("Collection")],manifest:[_(G),r("Manifest"),s("Manifest")],canvas:[_(N),r("Canvas"),s("Canvas")],annotationPage:[P("AnnotationPage"),_(k),r("AnnotationPage"),s("AnnotationPage")],annotation:[P("Annotation"),ot,r("Annotation"),s("Annotation")],contentResource:[P("ContentResource"),r("ContentResource"),s("ContentResource")],range:[_($),r("Range","Canvas"),s("Range","Canvas")]}).traverseUnknown(e);return{entities:i,resource:a,mapping:n}}const h="__$UNSET$__",F="__$UNWRAP$__";function vt(t,e){const i=t.requests[e],n=t.mapping[e];if(!(!n||i&&i.resourceUri&&!t.entities[n][i.resourceUri]))return t.entities[n][i?i.resourceUri:e]}function he(t){const e={};for(const[i,n]of t){if(i===F)return n;n!==h&&typeof n!="undefined"&&n!==null&&(e[i]=n)}return e}function ct(t,e,i){if(!e.type||!e.id)throw new Error("Unknown entity");if(!i[e.type])throw new Error(`Serializer not found for ${e.type}`);function n(s){const r=i[s.type];if(!r)return h;const y=vt(t,s.id);if(!y)return h;const a=r(y,t);let I=a.next();for(;!I.done;){const w=I.value;let T=h;if(w)if(Array.isArray(w)){const D=[];for(const ye of w)D.push(n(ye));T=D}else T=n(w);I=a.next(T)}return I.value===h?h:he(I.value)}return n(e)}function d(t){if(!t)return;const e=Object.keys(t);if(e.length!==0){if(e.length===1){const i=e[0];if(!i)return"";const n=(t[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return e.map(i=>({"@language":i,"@value":(t[i]||[]).join("")}))}}function de(t){return Array.isArray(t)?t.map(e=>de(e)):typeof t=="string"?t:t.type&&t.type==="Canvas"?t.id:t}function u(t,e=!1){if(!!t)return t.length>1&&!e?t:t[0]||void 0}function pt(t){if(!!t){if(typeof t=="string")return{"@id":t};if("@id"in t){const e={...t};return delete e["@type"],e}return{"@context":"http://iiif.io/api/image/2/context.json","@id":t.id,profile:`http://iiif.io/api/image/2/profiles/${t.profile}.json`}}}function m(t,e){return[["@id",t.id],["@type",e],["format",t.format],["height",t.height],["width",t.width],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0]]}function*g(t){const e=t.provider?t.provider[0]:void 0;return[["label",d(t.label)],["metadata",t.metadata&&t.metadata.length?t.metadata.map(i=>({label:d(i.label)||"",value:d(i.value)||""})):void 0],["description",d(t.summary)],["thumbnail",u(yield t.thumbnail)],["navDate",t.navDate],["logo",e?u(e.logo):void 0],["homepage",e?e.homepage:void 0],["attribution",t.requiredStatement?d(t.requiredStatement.value):void 0]]}function*b(t){return[["seeAlso",u(yield t.seeAlso)],["service",u((t.service||[]).map(pt))],["rendering",u(yield t.rendering)],["startCanvas",t.start?t.start.id:void 0]]}const ut={Manifest:function*(t){return[...m(t,"sc:Manifest"),...yield*g(t),...yield*b(t),["sequences",[{"@id":`${t.id}/sequence0`,"@type":"sc:Sequence",canvases:yield t.items}]],["structures",yield t.structures]]},Canvas:function*(t){const i=(yield t.items)[0];return[...m(t,"sc:Canvas"),...yield*g(t),...yield*b(t),["images",i?[i.resources]:void 0],["annotations",t.annotations&&t.annotations.length?u(yield t.annotations):void 0]]},AnnotationPage:function*(t){return[...m(t,"sc:AnnotationList"),...yield*g(t),["resources",t.items&&t.items.length?u(yield t.items):void 0]]},Annotation:function*(t){return[["@id",t.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",de(t.target)],["resource",u(yield t.body,!0)]]},ContentResource:function*(t){switch(t.type){case"Image":return[...m(t,"dctypes:Image"),...yield*g(t),...yield*b(t)];case"Text":case"Dataset":default:return[...m(t,void 0),...yield*g(t)]}},AnnotationCollection:function*(t){return[["@id",t.id],["@type","sc:Layer"],["label",d(t.label)]]},Collection:function*(t){return[...m(t,"sc:Collection"),...yield*g(t),...yield*b(t),["members",yield*t.items]]},Range:function*(t){const e=[],i=[];if(t.items)for(const n of t.items){const s=yield n;e.push({"@id":n.id,"@type":n.type,label:s?s.label:void 0,within:t.id}),n.type==="Canvas"&&i.push(n.id)}return[...m(t,"sc:Range"),...yield*g(t),...yield*b(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function R(t){return[["id",t.id],["type",t.type],["format",t.format],["profile",t.profile],["height",t.height],["width",t.width],["duration",t.duration||void 0],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0],["behavior",t.behavior&&t.behavior.length?t.behavior:void 0],["timeMode",t.timeMode],["motivation",t.motivation]]}function o(t){if(!(!t||t.length===0))return t}function me(t){if(t&&t.type&&t.type==="ImageService2"){const{id:e,type:i,profile:n,...s}=t;return{"@id":e,"@type":i,profile:n.startsWith("http")?n:`http://iiif.io/api/image/2/${n}.json`,...s}}return t}function ge(t){if(!(!t||t.length===0))return t.map(me)}function*E(t){return[["label",t.label],["metadata",o(t.metadata)],["summary",t.summary],["requiredStatement",t.requiredStatement],["rights",t.rights],["navDate",t.navDate],["language",t.language],["thumbnail",o(yield t.thumbnail)],["placeholderCanvas",yield t.placeholderCanvas],["accompanyingCanvas",yield t.accompanyingCanvas],["provider",o(t.provider)]]}function*C(t){return[["seeAlso",o(yield t.seeAlso)],["service",ge(t.service)],["services",ge(t.services)],["rendering",o(yield t.rendering)],["supplementary",o(yield t.supplementary)],["partOf",o(t.partOf)],["start",t.start]]}const ft={Manifest:function*(t){return[...R(t),...yield*E(t),...yield*C(t),["items",yield t.items],["structures",o(yield t.structures)]]},Canvas:function*(t){return[...R(t),...yield*E(t),...yield*C(t),["items",yield t.items],["annotations",o(yield t.annotations)]]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?o(n):n]).filter(([i,n])=>i!=="items"),...yield*C(t),["items",yield t.items]]},Service:function*(t){return[[F,me(t)]]},Annotation:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?o(n):n]).filter(([i])=>i!=="body"),["body",yield t.body]]},ContentResource:function*(t){return[...R(t),...yield*E(t),...yield*C(t)]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t){return[...R(t),...yield*E(t),...yield*C(t),["items",yield*t.items]]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...R(t),...yield*E(t),...yield*C(t),["items",e],["annotations",o(yield t.annotations)]]}};exports.Traverse=L,exports.UNSET=h,exports.UNWRAP=F,exports.defaultEntities=nt,exports.emptyAnnotation=Ae,exports.emptyAnnotationPage=k,exports.emptyCanvas=N,exports.emptyCollection=j,exports.emptyManifest=G,exports.emptyRange=$,exports.getDefaultEntities=ue,exports.identifyResource=q,exports.languageString2to3=d,exports.normalize=lt,exports.serialize=ct,exports.serializeConfigPresentation2=ut,exports.serializeConfigPresentation3=ft,exports.serializedFieldsToObject=he,exports.types=M;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const Ce={id:"https://iiif-parser/annotation",type:"Annotation",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],seeAlso:[],homepage:[],logo:[],rendering:[],service:[],accessibility:[],audience:[],body:[],bodyValue:null,canonical:null,created:null,creator:[],generated:null,generator:[],modified:null,motivation:[],rights:[],stylesheet:null,target:[],timeMode:void 0,via:[],partOf:[]},k={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:[],motivation:null,label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],logo:[],rendering:[],service:[]},N={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],duration:0,height:0,width:0},j={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],services:[]},G={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:[],behavior:[],homepage:[],items:[],label:null,logo:[],metadata:[],motivation:null,navDate:null,provider:[],partOf:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:[],requiredStatement:null,rights:null,seeAlso:[],service:[],services:[],start:null,structures:[],summary:null,thumbnail:[],viewingDirection:"left-to-right"},$={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],start:null,supplementary:null,viewingDirection:"left-to-right"},q={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:[],seeAlso:[],homepage:[]},M=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function U(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t.type=="string"){const e=M.indexOf(t.type);if(e!==-1)return M[e]}if(t.profile)return"Service";throw new Error("Resource type is not known")}class L{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new L({collection:[e],manifest:[e],canvas:[e],annotationCollection:[e],annotationPage:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e]})}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=e.thumbnail.map(i=>this.traverseType(i,this.traversals.contentResource))),e.provider&&(e.provider=e.provider.map(i=>this.traverseAgent(i))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map(i=>this.traverseType(i,this.traversals.contentResource))),e.service&&(e.service=e.service.map(i=>this.traverseType(i,this.traversals.service))),e.services&&(e.services=e.services.map(i=>this.traverseType(i,this.traversals.service))),e.logo&&(e.logo=e.logo.map(i=>this.traverseType(i,this.traversals.contentResource))),e.homepage&&(e.homepage=e.homepage.map(i=>this.traverseType(i,this.traversals.contentResource))),e.partOf&&(e.partOf=e.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,this.traversals.annotationCollection):this.traverseType(i,this.traversals.contentResource))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map(i=>this.traverseType(i,this.traversals.contentResource))),e.supplementary&&(e.supplementary=e.supplementary.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseCollectionItems(e){return e.items&&e.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),e}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseInlineAnnotationPages(this.traverseLinking(this.traversePosterCanvas(this.traverseCollectionItems(e))))),this.traversals.collection)}traverseManifestItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseCanvas(i))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseManifest(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traverseManifestStructures(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e)))))),this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(i=>this.traverseAnnotationPage(i)),e}traverseInlineAnnotationPages(e){return typeof e=="string"||!e||e.annotations&&(e.annotations=e.annotations.map(i=>this.traverseAnnotationPage(i))),e}traverseCanvas(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))))),this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseAnnotation(i))),e}traverseAnnotationPage(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationPageItems(e))),this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(i=>this.traverseContentResource(i)):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseType(e.posterCanvas,this.traversals.canvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseType(e.placeholderCanvas,this.traversals.canvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseType(e.accompanyingCanvas,this.traversals.canvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e=="string"||!e||e&&e.service&&(e.service=(e.service||[]).map(i=>this.traverseType(i,this.traversals.service))),e}traverseContentResource(e){return e.type==="Choice"&&(e.items=e.items.map(i=>this.traverseContentResource(i))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"}):i.type==="Manifest"?this.traverseManifest(i):this.traverseRange(i))),e}traverseRange(e){return this.traverseType(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseRangeRanges(e)))),this.traversals.range)}traverseAgent(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.agent)}traverseType(e,i){return i.reduce((n,a)=>{const r=a(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const i=U(e);switch(i){case"Collection":return this.traverseCollection(e);case"Manifest":return this.traverseManifest(e);case"Canvas":return this.traverseCanvas(e);case"AnnotationPage":return this.traverseAnnotationPage(e);case"Annotation":return this.traverseAnnotation(e);case"ContentResource":return this.traverseContentResource(e);case"Range":return this.traverseRange(e);case"Service":return this.traverseService(e);case"Agent":return this.traverseAgent(e);default:throw new Error(`Unknown or unsupported resource type of ${i}`)}}}const V=["sc:Collection","sc:Manifest","sc:Canvas","oa:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function Ie(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t["@type"]=="string"){const e=V.indexOf(t["@type"]);if(e!==-1)return V[e]}if(t.profile)return"Service";if(t.format||t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class S{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(e){return new S({collection:[e],manifest:[e],canvas:[e],annotationList:[e],sequence:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e],layer:[e]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){const i=[...(e.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(e.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...e.members||[]];delete e.collections,delete e.manifests,e.members=i}return e.manifests&&(e.manifests=e.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),e.collections&&(e.collections=e.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),e.members&&(e.members=e.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),e}traverseManifest(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))),this.traversals.manifest)}traverseManifestItems(e){return e.sequences&&(e.sequences=e.sequences.map(i=>this.traverseSequence(i))),e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseSequence(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(e))),this.traversals.sequence)}traverseSequenceItems(e){return e.canvases&&(e.canvases=e.canvases.map(i=>this.traverseCanvas(i))),e}traverseCanvas(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))),this.traversals.canvas)}traverseCanvasItems(e){return e.images&&(e.images=e.images.map(i=>this.traverseAnnotation(i))),e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const i=[...(e.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(e.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...e.members||[]];delete e.ranges,delete e.canvases,e.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return e}traverseAnnotationList(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationListItems(e))),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map(i=>this.traverseAnnotation(i))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(e.resource=this.traverseContentResource(e.resource)),e.on,e}traverseLayer(e){return this.traverseType(this.traverseLinking(this.traverseLayerItems(e)),this.traversals.layer)}traverseLayerItems(e){return e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!=="rdf:nil"&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!=="rdf:nil"&&(e.item=e.item.map(i=>this.traverseContentResource(i))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e["@type"]==="oa:Choice"?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||typeof e=="string")return e;switch(Ie(e)){case"sc:Collection":return this.traverseCollection(e);case"sc:Manifest":return this.traverseManifest(e);case"sc:Canvas":return this.traverseCanvas(e);case"sc:Sequence":return this.traverseSequence(e);case"sc:Range":return this.traverseRange(e);case"oa:Annotation":return this.traverseAnnotation(e);case"oa:AnnotationList":return this.traverseAnnotationList(e);case"sc:Layer":return this.traverseLayer(e);case"Service":return this.traverseService(e);case"oa:Choice":return this.traverseChoice(e);case"ContentResource":return this.traverseContentResource(e)}return e.profile?this.traverseService(e):e}traverseImageResource(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],a=[];for(const r of n)typeof r=="string"?a.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):a.push(this.traverseContentResource(r));return!i&&!this.options.convertPropsToArray?a[0]:a}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],a=[];for(const r of n)a.push(this.traverseService(r));return!i&&!this.options.convertPropsToArray?a[0]:a}traverseLinking(e){return e.related&&(e.related=this.traverseOneOrManyType(e.related,this.traversals.contentResource)),e.rendering&&(e.rendering=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource)),e.service&&(e.service=this.traverseOneOrMoreServices(e.service)),e.seeAlso&&(e.seeAlso=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource)),e.within&&(typeof e.within=="string"||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas=="string"?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer=="string"?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,i){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,i);return e.map(n=>this.traverseType(n,i))}traverseType(e,i){return i.reduce((n,a)=>{const r=a(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}}const _e="http://library.stanford.edu/iiif/image-api/compliance.html#level0",W="http://library.stanford.edu/iiif/image-api/compliance.html#level1",z="http://library.stanford.edu/iiif/image-api/compliance.html#level2",be="http://library.stanford.edu/iiif/image-api/conformance.html#level0",H="http://library.stanford.edu/iiif/image-api/conformance.html#level1",B="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Re="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",K="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Q="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Ee="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",X="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",Y="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",we="http://iiif.io/api/image/1/level0.json",Le="http://iiif.io/api/image/1/profiles/level0.json",Z="http://iiif.io/api/image/1/level1.json",J="http://iiif.io/api/image/1/profiles/level1.json",ee="http://iiif.io/api/image/1/level2.json",te="http://iiif.io/api/image/1/profiles/level2.json",Te="http://iiif.io/api/image/2/level0.json",Me="http://iiif.io/api/image/2/profiles/level0.json",ie="http://iiif.io/api/image/2/level1.json",ne="http://iiif.io/api/image/2/profiles/level1.json",re="http://iiif.io/api/image/2/level2.json",ae="http://iiif.io/api/image/2/profiles/level2.json",Se="level0",se="level1",oe="level2",xe="http://iiif.io/api/image/2/level0",le="http://iiif.io/api/image/2/level1",ve="http://iiif.io/api/image/2/level2",Pe=[le,ve,W,z,H,B,K,Q,X,Y,Z,J,ee,te,ie,ne,re,ae,se,oe],Oe=[xe,le,ve,_e,W,z,be,H,B,Re,K,Q,Ee,X,Y,we,Le,Z,J,ee,te,Te,Me,ie,ne,re,ae,Se,se,oe],x={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function u(t,e="none"){if(!t)return{};const i=Array.isArray(t)?t:[t],n={};for(const a of i){if(typeof a=="string"){n[e]=n[e]?n[e]:[],n[e].push(a||"");continue}if(!a["@language"]){n[e]=n[e]?n[e]:[],n[e].push(a["@value"]||"");continue}const r=a["@language"];n[r]=n[r]?n[r]:[],n[r].push(a["@value"]||"")}return n}function pe(t){if(Array.isArray(t))return pe(t.find(e=>typeof e=="string"));if(Oe.indexOf(t)!==-1)return"level2";if(Pe.indexOf(t)!==-1)return"level1";if(typeof t=="string")return t}function Fe(t){const e=Array.isArray(t)?t:[t];for(const i of e)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function De(t){switch(t){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function ke(t){return Array.isArray(t)?t:[t]}function Ne(t){for(const e of["sc","oa","dcterms","dctypes","iiif"])if(t.startsWith(`${e}:`))return t.slice(e.length+1);return t}function P(t){const e=t["@id"]||t.id;let i=t["@type"]||t.type;const n=t.profile||void 0,a=t["@context"]||void 0;if(n){const r=De(n);if(r)return r}if(a){const r=Fe(a);if(r)return r}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(const r of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${r}:`)){i=i.slice(r.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(t.format){if(t.format.startsWith("image/"))return"Image";if(t.format.startsWith("text/")||t.format==="application/pdf")return"Text";if(t.format.startsWith("application/"))return"Dataset"}return e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".jpeg"))?"Image":i||"unknown"}const je=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function Ge(t){const e=t.match(je);return e?e[0]:t}function $e(t,e="Rights/License",i="none"){let n=null;const a=[],r=Array.isArray(t)?t:[t];for(const A of r){const o=A?Ge(A):void 0;if(o&&(o.indexOf("creativecommons.org")!==-1||o.indexOf("rightsstatements.org")!==-1)){o.startsWith("https://")?n=`http://${o.slice(8)}`:n=o;continue}o&&a.push({label:{[i]:[e]},value:{[i]:[o]}})}return[n,a]}const qe=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function Ue(t){if(t){const e=Array.isArray(t)?t:[t],i=[];for(const n of e)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),qe.indexOf(n)===-1&&i.push(n);if(e.length)return i.length===1?i[0]:i}}function Ve(t){return t?t.map(e=>({label:u(e.label),value:u(e.value)})):[]}function v(t){for(const e in t)(typeof t[e]=="undefined"||t[e]===null)&&delete t[e];return t}let he=0;function ce(t,e){const i=encodeURI(t.id||t["@id"]||"").trim();return i&&e?`${i}/${e}`:i||(he++,`http://example.org/${t["@type"]}${e?`/${e}`:""}/${he}`)}function p(t){const e=[...t.behavior||[]];return t.viewingHint&&e.push(t.viewingHint),{"@context":t["@context"]?Ue(t["@context"]):void 0,id:(t["@id"]||ce(t)).trim(),type:P(t),behavior:e.length?e:void 0,height:t.height?t.height:void 0,width:t.width?t.width:void 0,motivation:t.motivation?Ne(t.motivation):void 0,viewingDirection:t.viewingDirection,profile:t.profile,format:t.format?t.format:void 0,duration:void 0,timeMode:void 0}}function l(t){const[e,i]=$e(t.license),n=[...t.metadata?Ve(t.metadata):[],...i];return{rights:e,metadata:n.length?n:void 0,label:t.label?u(t.label):void 0,requiredStatement:t.attribution?{label:u(x.attributionLabel),value:u(t.attribution)}:void 0,navDate:t.navDate,summary:t.description?u(t.description):void 0,thumbnail:t.thumbnail}}function We(t){if(!t.within)return;const e=Array.isArray(t.within)?t.within:[t.within],i=[];for(const n of e)if(typeof n=="string"){if(n)switch(t["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:P(n)});return i.length?i:void 0}function h(t){const e=t.related?Array.isArray(t.related)?t.related:[t.related]:[],i=t.contentLayer;return{provider:t.logo||e.length?[{id:x.providerId,type:"Agent",homepage:e.length?[e[0]]:void 0,logo:t.logo?Array.isArray(t.logo)?t.logo:[t.logo]:void 0,label:u(x.providerName)}]:void 0,partOf:We(t),rendering:t.rendering,seeAlso:t.seeAlso,start:t.startCanvas,service:t.service?ke(t.service):void 0,supplementary:i?[i]:void 0}}function ze(t){return v({...p(t),...l(t),...h(t),items:t.members})}function He(t){const e=[],i=[];for(const a of t.sequences||[])a.canvases.length&&e.push(...a.canvases),a.behavior&&i.push(...a.behavior);const n=p(t);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),v({...n,...l(t),...h(t),items:e,structures:t.structures})}function Be(t){return v({...p(t),...l(t),...h(t),items:t.images&&t.images.length?[{id:ce(t,"annotation-page"),type:"AnnotationPage",items:t.images}]:void 0})}function Ke(t){return v({...p(t),...l(t),...h(t),items:t.resources})}function Qe(t){return!t.canvases||t.canvases.length===0?{canvases:[],behavior:[]}:{canvases:t.canvases,behavior:t.viewingHint?[t.viewingHint]:[]}}function Xe(t){return v({...p(t),...l(t),...h(t),target:typeof t.on=="string"?encodeURI(t.on).trim():t.on,body:t.resource})}function Ye(t){const e=t;return v({...p(e),...l(e),...h(e)})}function Ze(t){const e=[];return t.default&&t.default!=="rdf:nil"&&e.push(t.default),t.item&&t.item!=="rdf:nil"&&e.push(...t.item),{...p(t),...l(t),items:e}}function Je(t){return v({...p(t),...l(t),...h(t),items:t.members})}function et(t){const{"@id":e,"@type":i,"@context":n,profile:a,...r}=t;return e&&(r.id=e),r.type=P(t),r.type==="unknown"&&(r.type="Service"),a&&(r.profile=pe(a)),v({...r,...l(r)})}function tt(t){return v({...p(t),...l(t),...h(t)})}const it=new S({collection:[ze],manifest:[He],canvas:[Be],annotationList:[Ke],sequence:[Qe],annotation:[Xe],contentResource:[Ye],choice:[Ze],range:[Je],service:[et],layer:[tt]});function nt(t){return t&&t["@context"]&&(t["@context"]==="http://iiif.io/api/presentation/2/context.json"||t["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||t["@context"]==="http://www.shared-canvas.org/ns/context.json")||t["@context"]==="http://iiif.io/api/image/2/context.json"?it.traverseUnknown(t):t}const rt={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function fe(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function ue(t,e){if(typeof t=="string")return{id:t,type:e};if(!t.id)throw new Error(`Invalid resource does not have an ID (${e})`);return t}function at(t){return(e,i)=>{const n=t[e]?t[e]:{};return a=>{const r=ue(a,i||e);return r&&r.id&&e?(n[r.id]=n[r.id]?Object.assign({},n[r.id],r):Object.assign({},r),{id:r.id,type:e==="ContentResource"?e:r.type}):r}}}function st(t){return(e,i)=>n=>{const{id:a,type:r}=ue(n,i||e);if(typeof a=="undefined")throw new Error("Found invalid entity without an ID.");return e==="ContentResource"?t[a]=e:t[a]=r,n}}function ot(t){const e=JSON.stringify(t);let i=5381,n=e.length;for(;n;)i=i*33^e.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function O(t){return e=>typeof e=="string"?{id:e,type:t}:e.id?e.type?e:{type:t,...e}:{id:ot(e),type:t,...e}}function C(t){return e=>({...t,...e})}function I(t){return Array.isArray(t)?t:[t]}function lt(t){return t.body&&(t.body=I(t.body)),t.seeAlso&&(t.seeAlso=I(t.seeAlso)),t.body&&(t.body=I(t.body)),t.audience&&(t.audience=I(t.audience)),t.accessibility&&(t.accessibility=I(t.accessibility)),t.motivation&&(t.motivation=I(t.motivation)),t}function vt(t){const e=nt(t),i=fe(),n={},a=at(i),r=st(n),o=new L({collection:[C(j),r("Collection"),a("Collection")],manifest:[C(G),r("Manifest"),a("Manifest")],canvas:[C(N),r("Canvas"),a("Canvas")],annotationPage:[O("AnnotationPage"),C(k),r("AnnotationPage"),a("AnnotationPage")],annotation:[O("Annotation"),lt,r("Annotation"),a("Annotation")],contentResource:[O("ContentResource"),r("ContentResource"),a("ContentResource")],range:[C($),r("Range","Canvas"),a("Range","Canvas")],agent:[C(q),r("Agent"),a("Agent")]}).traverseUnknown(e);return{entities:i,resource:o,mapping:n}}const c="__$UNSET$__",F="__$UNWRAP$__";function pt(t,e){const i=t.requests[e],n=t.mapping[e];if(!(!n||i&&i.resourceUri&&!t.entities[n][i.resourceUri]))return t.entities[n][i?i.resourceUri:e]}function de(t){const e={};for(const[i,n]of t){if(i===F&&n!==c)return n;n!==c&&typeof n!="undefined"&&n!==null&&(e[i]=n)}return e}function ht(t,e,i){if(!e.type||!e.id)throw new Error("Unknown entity");if(!i[e.type])throw new Error(`Serializer not found for ${e.type}`);function n(a){const r=i[a.type];if(!r)return c;const A=pt(t,a.id)||(a.id&&a.type?a:null);if(!A)return c;const o=r(A,t);let _=o.next();for(;!_.done;){const w=_.value;let T=c;if(w)if(Array.isArray(w)){const D=[];for(const Ae of w)D.push(n(Ae));T=D}else T=n(w);_=o.next(T)}return _.value===c?c:de(_.value)}return n(e)}function d(t){if(!t)return;const e=Object.keys(t);if(e.length!==0){if(e.length===1){const i=e[0];if(!i)return"";const n=(t[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return e.map(i=>({"@language":i,"@value":(t[i]||[]).join("")}))}}function me(t){return Array.isArray(t)?t.map(e=>me(e)):typeof t=="string"?t:t.type&&t.type==="Canvas"?t.id:t}function f(t,e=!1){if(!!t)return t.length>1&&!e?t:t[0]||void 0}function ct(t){if(!!t){if(typeof t=="string")return{"@id":t};if("@id"in t){const e={...t};return delete e["@type"],e}return{"@context":"http://iiif.io/api/image/2/context.json","@id":t.id,profile:`http://iiif.io/api/image/2/profiles/${t.profile}.json`}}}function m(t,e){return[["@id",t.id],["@type",e],["format",t.format],["height",t.height],["width",t.width],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0]]}function*g(t){const e=t.provider?yield t.provider[0]:void 0;return[["label",d(t.label)],["metadata",t.metadata&&t.metadata.length?t.metadata.map(i=>({label:d(i.label)||"",value:d(i.value)||""})):void 0],["description",d(t.summary)],["thumbnail",f(yield t.thumbnail)],["navDate",t.navDate],["logo",e?f(e.logo):void 0],["homepage",e?e.homepage:void 0],["attribution",t.requiredStatement?d(t.requiredStatement.value):void 0]]}function*b(t){return[["seeAlso",f(yield t.seeAlso)],["service",f((t.service||[]).map(ct))],["rendering",f(yield t.rendering)],["startCanvas",t.start?t.start.id:void 0]]}const ft={Manifest:function*(t){return[...m(t,"sc:Manifest"),...yield*g(t),...yield*b(t),["sequences",[{"@id":`${t.id}/sequence0`,"@type":"sc:Sequence",canvases:yield t.items}]],["structures",yield t.structures]]},Canvas:function*(t){const i=(yield t.items)[0];return[...m(t,"sc:Canvas"),...yield*g(t),...yield*b(t),["images",i?[i.resources]:void 0],["annotations",t.annotations&&t.annotations.length?f(yield t.annotations):void 0]]},AnnotationPage:function*(t){return[...m(t,"sc:AnnotationList"),...yield*g(t),["resources",t.items&&t.items.length?f(yield t.items):void 0]]},Annotation:function*(t){return[["@id",t.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",me(t.target)],["resource",f(yield t.body,!0)]]},ContentResource:function*(t){switch(t.type){case"Image":return[...m(t,"dctypes:Image"),...yield*g(t),...yield*b(t)];case"Text":case"Dataset":default:return[...m(t,void 0),...yield*g(t)]}},AnnotationCollection:function*(t){return[["@id",t.id],["@type","sc:Layer"],["label",d(t.label)]]},Collection:function*(t){return[...m(t,"sc:Collection"),...yield*g(t),...yield*b(t),["members",yield*t.items]]},Range:function*(t){const e=[],i=[];if(t.items)for(const n of t.items){const a=yield n;e.push({"@id":n.id,"@type":n.type,label:a?a.label:void 0,within:t.id}),n.type==="Canvas"&&i.push(n.id)}return[...m(t,"sc:Range"),...yield*g(t),...yield*b(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function R(t){return[["id",t.id],["type",t.type],["format",t.format],["profile",t.profile],["height",t.height],["width",t.width],["duration",t.duration||void 0],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0],["behavior",t.behavior&&t.behavior.length?t.behavior:void 0],["timeMode",t.timeMode],["motivation",t.motivation]]}function s(t){if(!(!t||t.length===0))return t}function ge(t){if(t&&t.type&&t.type==="ImageService2"){const{id:e,type:i,profile:n,...a}=t;return{"@id":e,"@type":i,profile:n.startsWith("http")?n:`http://iiif.io/api/image/2/${n}.json`,...a}}return t}function ye(t){if(!(!t||t.length===0))return t.map(ge)}function*E(t){return[["label",t.label],["metadata",s(t.metadata)],["summary",t.summary],["requiredStatement",t.requiredStatement],["rights",t.rights],["navDate",t.navDate],["language",t.language],["thumbnail",s(yield t.thumbnail)],["placeholderCanvas",yield t.placeholderCanvas],["accompanyingCanvas",yield t.accompanyingCanvas],["provider",s(yield t.provider)]]}function*y(t){return[["seeAlso",s(yield t.seeAlso)],["service",ye(t.service)],["services",ye(t.services)],["rendering",s(yield t.rendering)],["supplementary",s(yield t.supplementary)],["homepage",s(yield t.homepage)],["logo",s(yield t.logo)],["partOf",s(yield t.partOf)],["start",t.start]]}const ut={Manifest:function*(t){return[["@context","http://iiif.io/api/presentation/3/context.json"],...R(t),...yield*E(t),...yield*y(t),["items",yield t.items],["structures",s(yield t.structures)],["annotations",s(yield t.annotations)]]},Canvas:function*(t){return[...R(t),...yield*E(t),...yield*y(t),["items",yield t.items],["annotations",s(yield t.annotations)]]},Agent:function*(t){return[["id",t.id],["type","Agent"],["label",t.label],...yield*y(t)]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i,n])=>i!=="items"),...yield*y(t),["items",yield t.items]]},Service:function*(t){return[[F,ge(t)]]},Annotation:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i])=>i!=="body"),["body",yield t.body]]},ContentResource:function*(t){return[...R(t),...yield*E(t),...yield*y(t),["annotations",s(yield t.annotations)]]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t){return[...R(t),...yield*E(t),...yield*y(t),["items",yield*t.items],["annotations",s(yield t.annotations)]]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...R(t),...yield*E(t),...yield*y(t),["items",e],["annotations",s(yield t.annotations)]]}};exports.Traverse=L,exports.UNSET=c,exports.UNWRAP=F,exports.defaultEntities=rt,exports.emptyAgent=q,exports.emptyAnnotation=Ce,exports.emptyAnnotationPage=k,exports.emptyCanvas=N,exports.emptyCollection=j,exports.emptyManifest=G,exports.emptyRange=$,exports.getDefaultEntities=fe,exports.identifyResource=U,exports.languageString2to3=d,exports.normalize=vt,exports.serialize=ht,exports.serializeConfigPresentation2=ft,exports.serializeConfigPresentation3=ut,exports.serializedFieldsToObject=de,exports.types=M;

@@ -1,1 +0,1 @@

const Ae={id:"https://iiif-parser/annotation",type:"Annotation",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],seeAlso:[],homepage:null,logo:[],rendering:[],service:[],accessibility:[],audience:[],body:[],bodyValue:null,canonical:null,created:null,creator:[],generated:null,generator:[],modified:null,motivation:[],rights:[],stylesheet:null,target:[],timeMode:void 0,via:[],partOf:[]},k={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:[],motivation:null,label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:null,logo:[],rendering:[],service:[]},N={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],duration:0,height:0,width:0},G={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],services:[]},$={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:[],behavior:[],homepage:null,items:[],label:null,logo:[],metadata:[],motivation:null,navDate:null,provider:[],partOf:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:[],requiredStatement:null,rights:null,seeAlso:[],service:[],services:[],start:null,structures:[],summary:null,thumbnail:[],viewingDirection:"left-to-right"},j={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],start:null,supplementary:null,viewingDirection:"left-to-right"},M=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector"];function q(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t.type=="string"){const e=M.indexOf(t.type);if(e!==-1)return M[e]}if(t.profile)return"Service";throw new Error("Resource type is not known")}class L{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new L({collection:[e],manifest:[e],canvas:[e],annotationCollection:[e],annotationPage:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e]})}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=e.thumbnail.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map(i=>this.traverseType(i,this.traversals.contentResource))),e.service&&(e.service=e.service.map(i=>this.traverseType(i,this.traversals.service))),e.services&&(e.services=e.services.map(i=>this.traverseType(i,this.traversals.service))),e.logo&&(e.logo=e.logo.map(i=>this.traverseType(i,this.traversals.contentResource))),e.homepage&&(e.homepage=this.traverseType(e.homepage,this.traversals.contentResource)),e.partOf&&(e.partOf=e.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,this.traversals.annotationCollection):this.traverseType(i,this.traversals.contentResource))),e.start&&(e.start=e.start.map(i=>this.traverseType(i,this.traversals.canvas))),e.rendering&&(e.rendering=e.rendering.map(i=>this.traverseType(i,this.traversals.contentResource))),e.supplementary&&(e.supplementary=e.supplementary.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseCollectionItems(e){return e.items&&e.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),e}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traversePosterCanvas(this.traverseCollectionItems(e)))),this.traversals.collection)}traverseManifestItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseCanvas(i))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseManifest(e){return this.traverseType(this.traverseManifestStructures(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))))),this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(i=>this.traverseAnnotationPage(i)),e}traverseInlineAnnotationPages(e){return e.annotations&&(e.annotations=e.annotations.map(i=>this.traverseAnnotationPage(i))),e}traverseCanvas(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))))),this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseAnnotation(i))),e}traverseAnnotationPage(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationPageItems(e))),this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(i=>this.traverseContentResource(i)):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseType(e.posterCanvas,this.traversals.canvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseType(e.placeholderCanvas,this.traversals.canvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseType(e.accompanyingCanvas,this.traversals.canvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e=="string"||!e||e&&e.service&&(e.service=(e.service||[]).map(i=>this.traverseType(i,this.traversals.service))),e}traverseContentResource(e){return e.type==="Choice"&&(e.items=e.items.map(i=>this.traverseContentResource(i))),this.traverseType(this.traverseContentResourceLinking(e),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"}):i.type==="Manifest"?this.traverseManifest(i):this.traverseRange(i))),e}traverseRange(e){return this.traverseType(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseRangeRanges(e)))),this.traversals.range)}traverseType(e,i){return i.reduce((n,s)=>{const r=s(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const i=q(e);switch(i){case"Collection":return this.traverseCollection(e);case"Manifest":return this.traverseManifest(e);case"Canvas":return this.traverseCanvas(e);case"AnnotationPage":return this.traverseAnnotationPage(e);case"Annotation":return this.traverseAnnotation(e);case"ContentResource":return this.traverseContentResource(e);case"Range":return this.traverseRange(e);case"Service":return this.traverseService(e);default:throw new Error(`Unknown or unsupported resource type of ${i}`)}}}const U=["sc:Collection","sc:Manifest","sc:Canvas","oa:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function Ce(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t["@type"]=="string"){const e=U.indexOf(t["@type"]);if(e!==-1)return U[e]}if(t.profile)return"Service";if(t.format||t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class S{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(e){return new S({collection:[e],manifest:[e],canvas:[e],annotationList:[e],sequence:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e],layer:[e]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){const i=[...(e.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(e.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...e.members||[]];delete e.collections,delete e.manifests,e.members=i}return e.manifests&&(e.manifests=e.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),e.collections&&(e.collections=e.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),e.members&&(e.members=e.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),e}traverseManifest(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))),this.traversals.manifest)}traverseManifestItems(e){return e.sequences&&(e.sequences=e.sequences.map(i=>this.traverseSequence(i))),e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseSequence(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(e))),this.traversals.sequence)}traverseSequenceItems(e){return e.canvases&&(e.canvases=e.canvases.map(i=>this.traverseCanvas(i))),e}traverseCanvas(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))),this.traversals.canvas)}traverseCanvasItems(e){return e.images&&(e.images=e.images.map(i=>this.traverseAnnotation(i))),e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const i=[...(e.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(e.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...e.members||[]];delete e.ranges,delete e.canvases,e.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return e}traverseAnnotationList(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationListItems(e))),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map(i=>this.traverseAnnotation(i))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(e.resource=this.traverseContentResource(e.resource)),e.on,e}traverseLayer(e){return this.traverseType(this.traverseLinking(this.traverseLayerItems(e)),this.traversals.layer)}traverseLayerItems(e){return e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!=="rdf:nil"&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!=="rdf:nil"&&(e.item=e.item.map(i=>this.traverseContentResource(i))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e["@type"]==="oa:Choice"?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||typeof e=="string")return e;switch(Ce(e)){case"sc:Collection":return this.traverseCollection(e);case"sc:Manifest":return this.traverseManifest(e);case"sc:Canvas":return this.traverseCanvas(e);case"sc:Sequence":return this.traverseSequence(e);case"sc:Range":return this.traverseRange(e);case"oa:Annotation":return this.traverseAnnotation(e);case"oa:AnnotationList":return this.traverseAnnotationList(e);case"sc:Layer":return this.traverseLayer(e);case"Service":return this.traverseService(e);case"oa:Choice":return this.traverseChoice(e);case"ContentResource":return this.traverseContentResource(e)}return e.profile?this.traverseService(e):e}traverseImageResource(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],s=[];for(const r of n)typeof r=="string"?s.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):s.push(this.traverseContentResource(r));return!i&&!this.options.convertPropsToArray?s[0]:s}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],s=[];for(const r of n)s.push(this.traverseService(r));return!i&&!this.options.convertPropsToArray?s[0]:s}traverseLinking(e){return e.related&&(e.related=this.traverseOneOrManyType(e.related,this.traversals.contentResource)),e.rendering&&(e.rendering=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource)),e.service&&(e.service=this.traverseOneOrMoreServices(e.service)),e.seeAlso&&(e.seeAlso=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource)),e.within&&(typeof e.within=="string"||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas=="string"?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer=="string"?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,i){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,i);return e.map(n=>this.traverseType(n,i))}traverseType(e,i){return i.reduce((n,s)=>{const r=s(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}}const Ie="http://library.stanford.edu/iiif/image-api/compliance.html#level0",V="http://library.stanford.edu/iiif/image-api/compliance.html#level1",W="http://library.stanford.edu/iiif/image-api/compliance.html#level2",_e="http://library.stanford.edu/iiif/image-api/conformance.html#level0",z="http://library.stanford.edu/iiif/image-api/conformance.html#level1",H="http://library.stanford.edu/iiif/image-api/conformance.html#level2",be="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",B="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",K="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Re="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Q="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",X="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Ee="http://iiif.io/api/image/1/level0.json",we="http://iiif.io/api/image/1/profiles/level0.json",Y="http://iiif.io/api/image/1/level1.json",Z="http://iiif.io/api/image/1/profiles/level1.json",J="http://iiif.io/api/image/1/level2.json",ee="http://iiif.io/api/image/1/profiles/level2.json",Le="http://iiif.io/api/image/2/level0.json",Te="http://iiif.io/api/image/2/profiles/level0.json",te="http://iiif.io/api/image/2/level1.json",ie="http://iiif.io/api/image/2/profiles/level1.json",ne="http://iiif.io/api/image/2/level2.json",re="http://iiif.io/api/image/2/profiles/level2.json",Me="level0",se="level1",ae="level2",Se="http://iiif.io/api/image/2/level0",oe="http://iiif.io/api/image/2/level1",le="http://iiif.io/api/image/2/level2",xe=[oe,le,V,W,z,H,B,K,Q,X,Y,Z,J,ee,te,ie,ne,re,se,ae],Oe=[Se,oe,le,Ie,V,W,_e,z,H,be,B,K,Re,Q,X,Ee,we,Y,Z,J,ee,Le,Te,te,ie,ne,re,Me,se,ae],x={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function h(t,e="none"){if(!t)return{};const i=Array.isArray(t)?t:[t],n={};for(const s of i){if(typeof s=="string"){n[e]=n[e]?n[e]:[],n[e].push(s||"");continue}if(!s["@language"]){n[e]=n[e]?n[e]:[],n[e].push(s["@value"]||"");continue}const r=s["@language"];n[r]=n[r]?n[r]:[],n[r].push(s["@value"]||"")}return n}function ve(t){if(Array.isArray(t))return ve(t.find(e=>typeof e=="string"));if(Oe.indexOf(t)!==-1)return"level2";if(xe.indexOf(t)!==-1)return"level1";if(typeof t=="string")return t}function Pe(t){const e=Array.isArray(t)?t:[t];for(const i of e)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function Fe(t){switch(t){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function De(t){return Array.isArray(t)?t:[t]}function ke(t){for(const e of["sc","oa","dcterms","dctypes","iiif"])if(t.startsWith(`${e}:`))return t.slice(e.length+1);return t}function O(t){const e=t["@id"]||t.id;let i=t["@type"]||t.type;const n=t.profile||void 0,s=t["@context"]||void 0;if(n){const r=Fe(n);if(r)return r}if(s){const r=Pe(s);if(r)return r}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(const r of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${r}:`)){i=i.slice(r.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(t.format){if(t.format.startsWith("image/"))return"Image";if(t.format.startsWith("text/")||t.format==="application/pdf")return"Text";if(t.format.startsWith("application/"))return"Dataset"}return e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".jpeg"))?"Image":i||"unknown"}const Ne=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function Ge(t){const e=t.match(Ne);return e?e[0]:t}function $e(t,e="Rights/License",i="none"){let n=null;const s=[],r=Array.isArray(t)?t:[t];for(const y of r){const a=y?Ge(y):void 0;if(a&&(a.indexOf("creativecommons.org")!==-1||a.indexOf("rightsstatements.org")!==-1)){a.startsWith("https://")?n=`http://${a.slice(8)}`:n=a;continue}a&&s.push({label:{[i]:[e]},value:{[i]:[a]}})}return[n,s]}const je=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function qe(t){if(t){const e=Array.isArray(t)?t:[t],i=[];for(const n of e)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),je.indexOf(n)===-1&&i.push(n);if(e.length)return i.length===1?i[0]:i}}function Ue(t){return t?t.map(e=>({label:h(e.label),value:h(e.value)})):[]}function v(t){for(const e in t)(typeof t[e]=="undefined"||t[e]===null)&&delete t[e];return t}let ce=0;function pe(t,e){const i=encodeURI(t.id||t["@id"]||"").trim();return i&&e?`${i}/${e}`:i||(ce++,`http://example.org/${t["@type"]}${e?`/${e}`:""}/${ce}`)}function c(t){const e=[...t.behavior||[]];return t.viewingHint&&e.push(t.viewingHint),{"@context":t["@context"]?qe(t["@context"]):void 0,id:(t["@id"]||pe(t)).trim(),type:O(t),behavior:e.length?e:void 0,height:t.height?t.height:void 0,width:t.width?t.width:void 0,motivation:t.motivation?ke(t.motivation):void 0,viewingDirection:t.viewingDirection,profile:t.profile,format:t.format?t.format:void 0,duration:void 0,timeMode:void 0}}function l(t){const[e,i]=$e(t.license),n=[...t.metadata?Ue(t.metadata):[],...i];return{rights:e,metadata:n.length?n:void 0,label:t.label?h(t.label):void 0,requiredStatement:t.attribution?{label:h(x.attributionLabel),value:h(t.attribution)}:void 0,navDate:t.navDate,summary:t.description?h(t.description):void 0,thumbnail:t.thumbnail}}function Ve(t){if(!t.within)return;const e=Array.isArray(t.within)?t.within:[t.within],i=[];for(const n of e)if(typeof n=="string"){if(n)switch(t["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:O(n)});return i.length?i:void 0}function p(t){const e=t.related?Array.isArray(t.related)?t.related:[t.related]:[],i=t.contentLayer;return{provider:t.logo||e.length?[{id:x.providerId,type:"Agent",homepage:e.length?[e[0]]:void 0,logo:t.logo?Array.isArray(t.logo)?t.logo:[t.logo]:void 0,label:h(x.providerName)}]:void 0,partOf:Ve(t),rendering:t.rendering,seeAlso:t.seeAlso,start:t.startCanvas,service:t.service?De(t.service):void 0,supplementary:i?[i]:void 0}}function We(t){return v({...c(t),...l(t),...p(t),items:t.members})}function ze(t){const e=[],i=[];for(const s of t.sequences||[])s.canvases.length&&e.push(...s.canvases),s.behavior&&i.push(...s.behavior);const n=c(t);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),v({...n,...l(t),...p(t),items:e,structures:t.structures})}function He(t){return v({...c(t),...l(t),...p(t),items:t.images&&t.images.length?[{id:pe(t,"annotation-page"),type:"AnnotationPage",items:t.images}]:void 0})}function Be(t){return v({...c(t),...l(t),...p(t),items:t.resources})}function Ke(t){return!t.canvases||t.canvases.length===0?{canvases:[],behavior:[]}:{canvases:t.canvases,behavior:t.viewingHint?[t.viewingHint]:[]}}function Qe(t){return v({...c(t),...l(t),...p(t),target:typeof t.on=="string"?encodeURI(t.on).trim():t.on,body:t.resource})}function Xe(t){const e=t;return v({...c(e),...l(e),...p(e)})}function Ye(t){const e=[];return t.default&&t.default!=="rdf:nil"&&e.push(t.default),t.item&&t.item!=="rdf:nil"&&e.push(...t.item),{...c(t),...l(t),items:e}}function Ze(t){return v({...c(t),...l(t),...p(t),items:t.members})}function Je(t){const{"@id":e,"@type":i,"@context":n,profile:s,...r}=t;return e&&(r.id=e),r.type=O(t),r.type==="unknown"&&(r.type="Service"),s&&(r.profile=ve(s)),v({...r,...l(r)})}function et(t){return v({...c(t),...l(t),...p(t)})}const tt=new S({collection:[We],manifest:[ze],canvas:[He],annotationList:[Be],sequence:[Ke],annotation:[Qe],contentResource:[Xe],choice:[Ye],range:[Ze],service:[Je],layer:[et]});function it(t){return t&&t["@context"]&&(t["@context"]==="http://iiif.io/api/presentation/2/context.json"||t["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||t["@context"]==="http://www.shared-canvas.org/ns/context.json")||t["@context"]==="http://iiif.io/api/image/2/context.json"?tt.traverseUnknown(t):t}const nt={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{}};function ue(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{}}}function he(t,e){if(typeof t=="string")return{id:t,type:e};if(!t.id)throw new Error(`Invalid resource does not have an ID (${e})`);return t}function rt(t){return(e,i)=>{const n=t[e]?t[e]:{};return s=>{const r=he(s,i||e);return r&&r.id&&e?(n[r.id]=n[r.id]?Object.assign({},n[r.id],r):Object.assign({},r),{id:r.id,type:e==="ContentResource"?e:r.type}):r}}}function st(t){return(e,i)=>n=>{const{id:s,type:r}=he(n,i||e);if(typeof s=="undefined")throw new Error("Found invalid entity without an ID.");return e==="ContentResource"?t[s]=e:t[s]=r,n}}function at(t){const e=JSON.stringify(t);let i=5381,n=e.length;for(;n;)i=i*33^e.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function P(t){return e=>typeof e=="string"?{id:e,type:t}:e.id?e.type?e:{type:t,...e}:{id:at(e),type:t,...e}}function _(t){return e=>({...t,...e})}function A(t){return Array.isArray(t)?t:[t]}function ot(t){return t.body&&(t.body=A(t.body)),t.seeAlso&&(t.seeAlso=A(t.seeAlso)),t.body&&(t.body=A(t.body)),t.audience&&(t.audience=A(t.audience)),t.accessibility&&(t.accessibility=A(t.accessibility)),t.motivation&&(t.motivation=A(t.motivation)),t}function lt(t){const e=it(t),i=ue(),n={},s=rt(i),r=st(n),a=new L({collection:[_(G),r("Collection"),s("Collection")],manifest:[_($),r("Manifest"),s("Manifest")],canvas:[_(N),r("Canvas"),s("Canvas")],annotationPage:[P("AnnotationPage"),_(k),r("AnnotationPage"),s("AnnotationPage")],annotation:[P("Annotation"),ot,r("Annotation"),s("Annotation")],contentResource:[P("ContentResource"),r("ContentResource"),s("ContentResource")],range:[_(j),r("Range","Canvas"),s("Range","Canvas")]}).traverseUnknown(e);return{entities:i,resource:a,mapping:n}}const f="__$UNSET$__",F="__$UNWRAP$__";function vt(t,e){const i=t.requests[e],n=t.mapping[e];if(!(!n||i&&i.resourceUri&&!t.entities[n][i.resourceUri]))return t.entities[n][i?i.resourceUri:e]}function fe(t){const e={};for(const[i,n]of t){if(i===F)return n;n!==f&&typeof n!="undefined"&&n!==null&&(e[i]=n)}return e}function ct(t,e,i){if(!e.type||!e.id)throw new Error("Unknown entity");if(!i[e.type])throw new Error(`Serializer not found for ${e.type}`);function n(s){const r=i[s.type];if(!r)return f;const y=vt(t,s.id);if(!y)return f;const a=r(y,t);let I=a.next();for(;!I.done;){const w=I.value;let T=f;if(w)if(Array.isArray(w)){const D=[];for(const ye of w)D.push(n(ye));T=D}else T=n(w);I=a.next(T)}return I.value===f?f:fe(I.value)}return n(e)}function d(t){if(!t)return;const e=Object.keys(t);if(e.length!==0){if(e.length===1){const i=e[0];if(!i)return"";const n=(t[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return e.map(i=>({"@language":i,"@value":(t[i]||[]).join("")}))}}function de(t){return Array.isArray(t)?t.map(e=>de(e)):typeof t=="string"?t:t.type&&t.type==="Canvas"?t.id:t}function u(t,e=!1){if(!!t)return t.length>1&&!e?t:t[0]||void 0}function pt(t){if(!!t){if(typeof t=="string")return{"@id":t};if("@id"in t){const e={...t};return delete e["@type"],e}return{"@context":"http://iiif.io/api/image/2/context.json","@id":t.id,profile:`http://iiif.io/api/image/2/profiles/${t.profile}.json`}}}function m(t,e){return[["@id",t.id],["@type",e],["format",t.format],["height",t.height],["width",t.width],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0]]}function*g(t){const e=t.provider?t.provider[0]:void 0;return[["label",d(t.label)],["metadata",t.metadata&&t.metadata.length?t.metadata.map(i=>({label:d(i.label)||"",value:d(i.value)||""})):void 0],["description",d(t.summary)],["thumbnail",u(yield t.thumbnail)],["navDate",t.navDate],["logo",e?u(e.logo):void 0],["homepage",e?e.homepage:void 0],["attribution",t.requiredStatement?d(t.requiredStatement.value):void 0]]}function*b(t){return[["seeAlso",u(yield t.seeAlso)],["service",u((t.service||[]).map(pt))],["rendering",u(yield t.rendering)],["startCanvas",t.start?t.start.id:void 0]]}const ut={Manifest:function*(t){return[...m(t,"sc:Manifest"),...yield*g(t),...yield*b(t),["sequences",[{"@id":`${t.id}/sequence0`,"@type":"sc:Sequence",canvases:yield t.items}]],["structures",yield t.structures]]},Canvas:function*(t){const i=(yield t.items)[0];return[...m(t,"sc:Canvas"),...yield*g(t),...yield*b(t),["images",i?[i.resources]:void 0],["annotations",t.annotations&&t.annotations.length?u(yield t.annotations):void 0]]},AnnotationPage:function*(t){return[...m(t,"sc:AnnotationList"),...yield*g(t),["resources",t.items&&t.items.length?u(yield t.items):void 0]]},Annotation:function*(t){return[["@id",t.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",de(t.target)],["resource",u(yield t.body,!0)]]},ContentResource:function*(t){switch(t.type){case"Image":return[...m(t,"dctypes:Image"),...yield*g(t),...yield*b(t)];case"Text":case"Dataset":default:return[...m(t,void 0),...yield*g(t)]}},AnnotationCollection:function*(t){return[["@id",t.id],["@type","sc:Layer"],["label",d(t.label)]]},Collection:function*(t){return[...m(t,"sc:Collection"),...yield*g(t),...yield*b(t),["members",yield*t.items]]},Range:function*(t){const e=[],i=[];if(t.items)for(const n of t.items){const s=yield n;e.push({"@id":n.id,"@type":n.type,label:s?s.label:void 0,within:t.id}),n.type==="Canvas"&&i.push(n.id)}return[...m(t,"sc:Range"),...yield*g(t),...yield*b(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function R(t){return[["id",t.id],["type",t.type],["format",t.format],["profile",t.profile],["height",t.height],["width",t.width],["duration",t.duration||void 0],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0],["behavior",t.behavior&&t.behavior.length?t.behavior:void 0],["timeMode",t.timeMode],["motivation",t.motivation]]}function o(t){if(!(!t||t.length===0))return t}function me(t){if(t&&t.type&&t.type==="ImageService2"){const{id:e,type:i,profile:n,...s}=t;return{"@id":e,"@type":i,profile:n.startsWith("http")?n:`http://iiif.io/api/image/2/${n}.json`,...s}}return t}function ge(t){if(!(!t||t.length===0))return t.map(me)}function*E(t){return[["label",t.label],["metadata",o(t.metadata)],["summary",t.summary],["requiredStatement",t.requiredStatement],["rights",t.rights],["navDate",t.navDate],["language",t.language],["thumbnail",o(yield t.thumbnail)],["placeholderCanvas",yield t.placeholderCanvas],["accompanyingCanvas",yield t.accompanyingCanvas],["provider",o(t.provider)]]}function*C(t){return[["seeAlso",o(yield t.seeAlso)],["service",ge(t.service)],["services",ge(t.services)],["rendering",o(yield t.rendering)],["supplementary",o(yield t.supplementary)],["partOf",o(t.partOf)],["start",t.start]]}const ht={Manifest:function*(t){return[...R(t),...yield*E(t),...yield*C(t),["items",yield t.items],["structures",o(yield t.structures)]]},Canvas:function*(t){return[...R(t),...yield*E(t),...yield*C(t),["items",yield t.items],["annotations",o(yield t.annotations)]]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?o(n):n]).filter(([i,n])=>i!=="items"),...yield*C(t),["items",yield t.items]]},Service:function*(t){return[[F,me(t)]]},Annotation:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?o(n):n]).filter(([i])=>i!=="body"),["body",yield t.body]]},ContentResource:function*(t){return[...R(t),...yield*E(t),...yield*C(t)]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t){return[...R(t),...yield*E(t),...yield*C(t),["items",yield*t.items]]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...R(t),...yield*E(t),...yield*C(t),["items",e],["annotations",o(yield t.annotations)]]}};export{L as Traverse,f as UNSET,F as UNWRAP,nt as defaultEntities,Ae as emptyAnnotation,k as emptyAnnotationPage,N as emptyCanvas,G as emptyCollection,$ as emptyManifest,j as emptyRange,ue as getDefaultEntities,q as identifyResource,d as languageString2to3,lt as normalize,ct as serialize,ut as serializeConfigPresentation2,ht as serializeConfigPresentation3,fe as serializedFieldsToObject,M as types};
const Ie={id:"https://iiif-parser/annotation",type:"Annotation",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],seeAlso:[],homepage:[],logo:[],rendering:[],service:[],accessibility:[],audience:[],body:[],bodyValue:null,canonical:null,created:null,creator:[],generated:null,generator:[],modified:null,motivation:[],rights:[],stylesheet:null,target:[],timeMode:void 0,via:[],partOf:[]},k={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:[],motivation:null,label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],logo:[],rendering:[],service:[]},N={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],duration:0,height:0,width:0},j={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],services:[]},G={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:[],behavior:[],homepage:[],items:[],label:null,logo:[],metadata:[],motivation:null,navDate:null,provider:[],partOf:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:[],requiredStatement:null,rights:null,seeAlso:[],service:[],services:[],start:null,structures:[],summary:null,thumbnail:[],viewingDirection:"left-to-right"},$={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],start:null,supplementary:null,viewingDirection:"left-to-right"},q={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:[],seeAlso:[],homepage:[]},M=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function U(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t.type=="string"){const e=M.indexOf(t.type);if(e!==-1)return M[e]}if(t.profile)return"Service";throw new Error("Resource type is not known")}class L{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new L({collection:[e],manifest:[e],canvas:[e],annotationCollection:[e],annotationPage:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e]})}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=e.thumbnail.map(i=>this.traverseType(i,this.traversals.contentResource))),e.provider&&(e.provider=e.provider.map(i=>this.traverseAgent(i))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map(i=>this.traverseType(i,this.traversals.contentResource))),e.service&&(e.service=e.service.map(i=>this.traverseType(i,this.traversals.service))),e.services&&(e.services=e.services.map(i=>this.traverseType(i,this.traversals.service))),e.logo&&(e.logo=e.logo.map(i=>this.traverseType(i,this.traversals.contentResource))),e.homepage&&(e.homepage=e.homepage.map(i=>this.traverseType(i,this.traversals.contentResource))),e.partOf&&(e.partOf=e.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,this.traversals.annotationCollection):this.traverseType(i,this.traversals.contentResource))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map(i=>this.traverseType(i,this.traversals.contentResource))),e.supplementary&&(e.supplementary=e.supplementary.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseCollectionItems(e){return e.items&&e.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),e}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseInlineAnnotationPages(this.traverseLinking(this.traversePosterCanvas(this.traverseCollectionItems(e))))),this.traversals.collection)}traverseManifestItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseCanvas(i))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseManifest(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traverseManifestStructures(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e)))))),this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(i=>this.traverseAnnotationPage(i)),e}traverseInlineAnnotationPages(e){return typeof e=="string"||!e||e.annotations&&(e.annotations=e.annotations.map(i=>this.traverseAnnotationPage(i))),e}traverseCanvas(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))))),this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseAnnotation(i))),e}traverseAnnotationPage(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationPageItems(e))),this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(i=>this.traverseContentResource(i)):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseType(e.posterCanvas,this.traversals.canvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseType(e.placeholderCanvas,this.traversals.canvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseType(e.accompanyingCanvas,this.traversals.canvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e=="string"||!e||e&&e.service&&(e.service=(e.service||[]).map(i=>this.traverseType(i,this.traversals.service))),e}traverseContentResource(e){return e.type==="Choice"&&(e.items=e.items.map(i=>this.traverseContentResource(i))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"}):i.type==="Manifest"?this.traverseManifest(i):this.traverseRange(i))),e}traverseRange(e){return this.traverseType(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseRangeRanges(e)))),this.traversals.range)}traverseAgent(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.agent)}traverseType(e,i){return i.reduce((n,a)=>{const r=a(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const i=U(e);switch(i){case"Collection":return this.traverseCollection(e);case"Manifest":return this.traverseManifest(e);case"Canvas":return this.traverseCanvas(e);case"AnnotationPage":return this.traverseAnnotationPage(e);case"Annotation":return this.traverseAnnotation(e);case"ContentResource":return this.traverseContentResource(e);case"Range":return this.traverseRange(e);case"Service":return this.traverseService(e);case"Agent":return this.traverseAgent(e);default:throw new Error(`Unknown or unsupported resource type of ${i}`)}}}const V=["sc:Collection","sc:Manifest","sc:Canvas","oa:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function Ce(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t["@type"]=="string"){const e=V.indexOf(t["@type"]);if(e!==-1)return V[e]}if(t.profile)return"Service";if(t.format||t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class S{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(e){return new S({collection:[e],manifest:[e],canvas:[e],annotationList:[e],sequence:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e],layer:[e]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){const i=[...(e.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(e.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...e.members||[]];delete e.collections,delete e.manifests,e.members=i}return e.manifests&&(e.manifests=e.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),e.collections&&(e.collections=e.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),e.members&&(e.members=e.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),e}traverseManifest(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))),this.traversals.manifest)}traverseManifestItems(e){return e.sequences&&(e.sequences=e.sequences.map(i=>this.traverseSequence(i))),e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseSequence(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(e))),this.traversals.sequence)}traverseSequenceItems(e){return e.canvases&&(e.canvases=e.canvases.map(i=>this.traverseCanvas(i))),e}traverseCanvas(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))),this.traversals.canvas)}traverseCanvasItems(e){return e.images&&(e.images=e.images.map(i=>this.traverseAnnotation(i))),e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const i=[...(e.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(e.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...e.members||[]];delete e.ranges,delete e.canvases,e.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return e}traverseAnnotationList(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationListItems(e))),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map(i=>this.traverseAnnotation(i))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(e.resource=this.traverseContentResource(e.resource)),e.on,e}traverseLayer(e){return this.traverseType(this.traverseLinking(this.traverseLayerItems(e)),this.traversals.layer)}traverseLayerItems(e){return e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!=="rdf:nil"&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!=="rdf:nil"&&(e.item=e.item.map(i=>this.traverseContentResource(i))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e["@type"]==="oa:Choice"?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||typeof e=="string")return e;switch(Ce(e)){case"sc:Collection":return this.traverseCollection(e);case"sc:Manifest":return this.traverseManifest(e);case"sc:Canvas":return this.traverseCanvas(e);case"sc:Sequence":return this.traverseSequence(e);case"sc:Range":return this.traverseRange(e);case"oa:Annotation":return this.traverseAnnotation(e);case"oa:AnnotationList":return this.traverseAnnotationList(e);case"sc:Layer":return this.traverseLayer(e);case"Service":return this.traverseService(e);case"oa:Choice":return this.traverseChoice(e);case"ContentResource":return this.traverseContentResource(e)}return e.profile?this.traverseService(e):e}traverseImageResource(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],a=[];for(const r of n)typeof r=="string"?a.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):a.push(this.traverseContentResource(r));return!i&&!this.options.convertPropsToArray?a[0]:a}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],a=[];for(const r of n)a.push(this.traverseService(r));return!i&&!this.options.convertPropsToArray?a[0]:a}traverseLinking(e){return e.related&&(e.related=this.traverseOneOrManyType(e.related,this.traversals.contentResource)),e.rendering&&(e.rendering=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource)),e.service&&(e.service=this.traverseOneOrMoreServices(e.service)),e.seeAlso&&(e.seeAlso=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource)),e.within&&(typeof e.within=="string"||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas=="string"?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer=="string"?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,i){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,i);return e.map(n=>this.traverseType(n,i))}traverseType(e,i){return i.reduce((n,a)=>{const r=a(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}}const _e="http://library.stanford.edu/iiif/image-api/compliance.html#level0",W="http://library.stanford.edu/iiif/image-api/compliance.html#level1",z="http://library.stanford.edu/iiif/image-api/compliance.html#level2",be="http://library.stanford.edu/iiif/image-api/conformance.html#level0",H="http://library.stanford.edu/iiif/image-api/conformance.html#level1",B="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Re="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",K="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Q="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Ee="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",X="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",Y="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",we="http://iiif.io/api/image/1/level0.json",Le="http://iiif.io/api/image/1/profiles/level0.json",Z="http://iiif.io/api/image/1/level1.json",J="http://iiif.io/api/image/1/profiles/level1.json",ee="http://iiif.io/api/image/1/level2.json",te="http://iiif.io/api/image/1/profiles/level2.json",Te="http://iiif.io/api/image/2/level0.json",Me="http://iiif.io/api/image/2/profiles/level0.json",ie="http://iiif.io/api/image/2/level1.json",ne="http://iiif.io/api/image/2/profiles/level1.json",re="http://iiif.io/api/image/2/level2.json",ae="http://iiif.io/api/image/2/profiles/level2.json",Se="level0",se="level1",oe="level2",xe="http://iiif.io/api/image/2/level0",le="http://iiif.io/api/image/2/level1",ve="http://iiif.io/api/image/2/level2",Oe=[le,ve,W,z,H,B,K,Q,X,Y,Z,J,ee,te,ie,ne,re,ae,se,oe],Pe=[xe,le,ve,_e,W,z,be,H,B,Re,K,Q,Ee,X,Y,we,Le,Z,J,ee,te,Te,Me,ie,ne,re,ae,Se,se,oe],x={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function u(t,e="none"){if(!t)return{};const i=Array.isArray(t)?t:[t],n={};for(const a of i){if(typeof a=="string"){n[e]=n[e]?n[e]:[],n[e].push(a||"");continue}if(!a["@language"]){n[e]=n[e]?n[e]:[],n[e].push(a["@value"]||"");continue}const r=a["@language"];n[r]=n[r]?n[r]:[],n[r].push(a["@value"]||"")}return n}function pe(t){if(Array.isArray(t))return pe(t.find(e=>typeof e=="string"));if(Pe.indexOf(t)!==-1)return"level2";if(Oe.indexOf(t)!==-1)return"level1";if(typeof t=="string")return t}function Fe(t){const e=Array.isArray(t)?t:[t];for(const i of e)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function De(t){switch(t){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function ke(t){return Array.isArray(t)?t:[t]}function Ne(t){for(const e of["sc","oa","dcterms","dctypes","iiif"])if(t.startsWith(`${e}:`))return t.slice(e.length+1);return t}function O(t){const e=t["@id"]||t.id;let i=t["@type"]||t.type;const n=t.profile||void 0,a=t["@context"]||void 0;if(n){const r=De(n);if(r)return r}if(a){const r=Fe(a);if(r)return r}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(const r of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${r}:`)){i=i.slice(r.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(t.format){if(t.format.startsWith("image/"))return"Image";if(t.format.startsWith("text/")||t.format==="application/pdf")return"Text";if(t.format.startsWith("application/"))return"Dataset"}return e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".jpeg"))?"Image":i||"unknown"}const je=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function Ge(t){const e=t.match(je);return e?e[0]:t}function $e(t,e="Rights/License",i="none"){let n=null;const a=[],r=Array.isArray(t)?t:[t];for(const A of r){const o=A?Ge(A):void 0;if(o&&(o.indexOf("creativecommons.org")!==-1||o.indexOf("rightsstatements.org")!==-1)){o.startsWith("https://")?n=`http://${o.slice(8)}`:n=o;continue}o&&a.push({label:{[i]:[e]},value:{[i]:[o]}})}return[n,a]}const qe=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function Ue(t){if(t){const e=Array.isArray(t)?t:[t],i=[];for(const n of e)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),qe.indexOf(n)===-1&&i.push(n);if(e.length)return i.length===1?i[0]:i}}function Ve(t){return t?t.map(e=>({label:u(e.label),value:u(e.value)})):[]}function v(t){for(const e in t)(typeof t[e]=="undefined"||t[e]===null)&&delete t[e];return t}let he=0;function ce(t,e){const i=encodeURI(t.id||t["@id"]||"").trim();return i&&e?`${i}/${e}`:i||(he++,`http://example.org/${t["@type"]}${e?`/${e}`:""}/${he}`)}function p(t){const e=[...t.behavior||[]];return t.viewingHint&&e.push(t.viewingHint),{"@context":t["@context"]?Ue(t["@context"]):void 0,id:(t["@id"]||ce(t)).trim(),type:O(t),behavior:e.length?e:void 0,height:t.height?t.height:void 0,width:t.width?t.width:void 0,motivation:t.motivation?Ne(t.motivation):void 0,viewingDirection:t.viewingDirection,profile:t.profile,format:t.format?t.format:void 0,duration:void 0,timeMode:void 0}}function l(t){const[e,i]=$e(t.license),n=[...t.metadata?Ve(t.metadata):[],...i];return{rights:e,metadata:n.length?n:void 0,label:t.label?u(t.label):void 0,requiredStatement:t.attribution?{label:u(x.attributionLabel),value:u(t.attribution)}:void 0,navDate:t.navDate,summary:t.description?u(t.description):void 0,thumbnail:t.thumbnail}}function We(t){if(!t.within)return;const e=Array.isArray(t.within)?t.within:[t.within],i=[];for(const n of e)if(typeof n=="string"){if(n)switch(t["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:O(n)});return i.length?i:void 0}function h(t){const e=t.related?Array.isArray(t.related)?t.related:[t.related]:[],i=t.contentLayer;return{provider:t.logo||e.length?[{id:x.providerId,type:"Agent",homepage:e.length?[e[0]]:void 0,logo:t.logo?Array.isArray(t.logo)?t.logo:[t.logo]:void 0,label:u(x.providerName)}]:void 0,partOf:We(t),rendering:t.rendering,seeAlso:t.seeAlso,start:t.startCanvas,service:t.service?ke(t.service):void 0,supplementary:i?[i]:void 0}}function ze(t){return v({...p(t),...l(t),...h(t),items:t.members})}function He(t){const e=[],i=[];for(const a of t.sequences||[])a.canvases.length&&e.push(...a.canvases),a.behavior&&i.push(...a.behavior);const n=p(t);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),v({...n,...l(t),...h(t),items:e,structures:t.structures})}function Be(t){return v({...p(t),...l(t),...h(t),items:t.images&&t.images.length?[{id:ce(t,"annotation-page"),type:"AnnotationPage",items:t.images}]:void 0})}function Ke(t){return v({...p(t),...l(t),...h(t),items:t.resources})}function Qe(t){return!t.canvases||t.canvases.length===0?{canvases:[],behavior:[]}:{canvases:t.canvases,behavior:t.viewingHint?[t.viewingHint]:[]}}function Xe(t){return v({...p(t),...l(t),...h(t),target:typeof t.on=="string"?encodeURI(t.on).trim():t.on,body:t.resource})}function Ye(t){const e=t;return v({...p(e),...l(e),...h(e)})}function Ze(t){const e=[];return t.default&&t.default!=="rdf:nil"&&e.push(t.default),t.item&&t.item!=="rdf:nil"&&e.push(...t.item),{...p(t),...l(t),items:e}}function Je(t){return v({...p(t),...l(t),...h(t),items:t.members})}function et(t){const{"@id":e,"@type":i,"@context":n,profile:a,...r}=t;return e&&(r.id=e),r.type=O(t),r.type==="unknown"&&(r.type="Service"),a&&(r.profile=pe(a)),v({...r,...l(r)})}function tt(t){return v({...p(t),...l(t),...h(t)})}const it=new S({collection:[ze],manifest:[He],canvas:[Be],annotationList:[Ke],sequence:[Qe],annotation:[Xe],contentResource:[Ye],choice:[Ze],range:[Je],service:[et],layer:[tt]});function nt(t){return t&&t["@context"]&&(t["@context"]==="http://iiif.io/api/presentation/2/context.json"||t["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||t["@context"]==="http://www.shared-canvas.org/ns/context.json")||t["@context"]==="http://iiif.io/api/image/2/context.json"?it.traverseUnknown(t):t}const rt={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function fe(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function ue(t,e){if(typeof t=="string")return{id:t,type:e};if(!t.id)throw new Error(`Invalid resource does not have an ID (${e})`);return t}function at(t){return(e,i)=>{const n=t[e]?t[e]:{};return a=>{const r=ue(a,i||e);return r&&r.id&&e?(n[r.id]=n[r.id]?Object.assign({},n[r.id],r):Object.assign({},r),{id:r.id,type:e==="ContentResource"?e:r.type}):r}}}function st(t){return(e,i)=>n=>{const{id:a,type:r}=ue(n,i||e);if(typeof a=="undefined")throw new Error("Found invalid entity without an ID.");return e==="ContentResource"?t[a]=e:t[a]=r,n}}function ot(t){const e=JSON.stringify(t);let i=5381,n=e.length;for(;n;)i=i*33^e.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function P(t){return e=>typeof e=="string"?{id:e,type:t}:e.id?e.type?e:{type:t,...e}:{id:ot(e),type:t,...e}}function I(t){return e=>({...t,...e})}function C(t){return Array.isArray(t)?t:[t]}function lt(t){return t.body&&(t.body=C(t.body)),t.seeAlso&&(t.seeAlso=C(t.seeAlso)),t.body&&(t.body=C(t.body)),t.audience&&(t.audience=C(t.audience)),t.accessibility&&(t.accessibility=C(t.accessibility)),t.motivation&&(t.motivation=C(t.motivation)),t}function vt(t){const e=nt(t),i=fe(),n={},a=at(i),r=st(n),o=new L({collection:[I(j),r("Collection"),a("Collection")],manifest:[I(G),r("Manifest"),a("Manifest")],canvas:[I(N),r("Canvas"),a("Canvas")],annotationPage:[P("AnnotationPage"),I(k),r("AnnotationPage"),a("AnnotationPage")],annotation:[P("Annotation"),lt,r("Annotation"),a("Annotation")],contentResource:[P("ContentResource"),r("ContentResource"),a("ContentResource")],range:[I($),r("Range","Canvas"),a("Range","Canvas")],agent:[I(q),r("Agent"),a("Agent")]}).traverseUnknown(e);return{entities:i,resource:o,mapping:n}}const c="__$UNSET$__",F="__$UNWRAP$__";function pt(t,e){const i=t.requests[e],n=t.mapping[e];if(!(!n||i&&i.resourceUri&&!t.entities[n][i.resourceUri]))return t.entities[n][i?i.resourceUri:e]}function de(t){const e={};for(const[i,n]of t){if(i===F&&n!==c)return n;n!==c&&typeof n!="undefined"&&n!==null&&(e[i]=n)}return e}function ht(t,e,i){if(!e.type||!e.id)throw new Error("Unknown entity");if(!i[e.type])throw new Error(`Serializer not found for ${e.type}`);function n(a){const r=i[a.type];if(!r)return c;const A=pt(t,a.id)||(a.id&&a.type?a:null);if(!A)return c;const o=r(A,t);let _=o.next();for(;!_.done;){const w=_.value;let T=c;if(w)if(Array.isArray(w)){const D=[];for(const Ae of w)D.push(n(Ae));T=D}else T=n(w);_=o.next(T)}return _.value===c?c:de(_.value)}return n(e)}function d(t){if(!t)return;const e=Object.keys(t);if(e.length!==0){if(e.length===1){const i=e[0];if(!i)return"";const n=(t[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return e.map(i=>({"@language":i,"@value":(t[i]||[]).join("")}))}}function me(t){return Array.isArray(t)?t.map(e=>me(e)):typeof t=="string"?t:t.type&&t.type==="Canvas"?t.id:t}function f(t,e=!1){if(!!t)return t.length>1&&!e?t:t[0]||void 0}function ct(t){if(!!t){if(typeof t=="string")return{"@id":t};if("@id"in t){const e={...t};return delete e["@type"],e}return{"@context":"http://iiif.io/api/image/2/context.json","@id":t.id,profile:`http://iiif.io/api/image/2/profiles/${t.profile}.json`}}}function m(t,e){return[["@id",t.id],["@type",e],["format",t.format],["height",t.height],["width",t.width],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0]]}function*g(t){const e=t.provider?yield t.provider[0]:void 0;return[["label",d(t.label)],["metadata",t.metadata&&t.metadata.length?t.metadata.map(i=>({label:d(i.label)||"",value:d(i.value)||""})):void 0],["description",d(t.summary)],["thumbnail",f(yield t.thumbnail)],["navDate",t.navDate],["logo",e?f(e.logo):void 0],["homepage",e?e.homepage:void 0],["attribution",t.requiredStatement?d(t.requiredStatement.value):void 0]]}function*b(t){return[["seeAlso",f(yield t.seeAlso)],["service",f((t.service||[]).map(ct))],["rendering",f(yield t.rendering)],["startCanvas",t.start?t.start.id:void 0]]}const ft={Manifest:function*(t){return[...m(t,"sc:Manifest"),...yield*g(t),...yield*b(t),["sequences",[{"@id":`${t.id}/sequence0`,"@type":"sc:Sequence",canvases:yield t.items}]],["structures",yield t.structures]]},Canvas:function*(t){const i=(yield t.items)[0];return[...m(t,"sc:Canvas"),...yield*g(t),...yield*b(t),["images",i?[i.resources]:void 0],["annotations",t.annotations&&t.annotations.length?f(yield t.annotations):void 0]]},AnnotationPage:function*(t){return[...m(t,"sc:AnnotationList"),...yield*g(t),["resources",t.items&&t.items.length?f(yield t.items):void 0]]},Annotation:function*(t){return[["@id",t.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",me(t.target)],["resource",f(yield t.body,!0)]]},ContentResource:function*(t){switch(t.type){case"Image":return[...m(t,"dctypes:Image"),...yield*g(t),...yield*b(t)];case"Text":case"Dataset":default:return[...m(t,void 0),...yield*g(t)]}},AnnotationCollection:function*(t){return[["@id",t.id],["@type","sc:Layer"],["label",d(t.label)]]},Collection:function*(t){return[...m(t,"sc:Collection"),...yield*g(t),...yield*b(t),["members",yield*t.items]]},Range:function*(t){const e=[],i=[];if(t.items)for(const n of t.items){const a=yield n;e.push({"@id":n.id,"@type":n.type,label:a?a.label:void 0,within:t.id}),n.type==="Canvas"&&i.push(n.id)}return[...m(t,"sc:Range"),...yield*g(t),...yield*b(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function R(t){return[["id",t.id],["type",t.type],["format",t.format],["profile",t.profile],["height",t.height],["width",t.width],["duration",t.duration||void 0],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0],["behavior",t.behavior&&t.behavior.length?t.behavior:void 0],["timeMode",t.timeMode],["motivation",t.motivation]]}function s(t){if(!(!t||t.length===0))return t}function ge(t){if(t&&t.type&&t.type==="ImageService2"){const{id:e,type:i,profile:n,...a}=t;return{"@id":e,"@type":i,profile:n.startsWith("http")?n:`http://iiif.io/api/image/2/${n}.json`,...a}}return t}function ye(t){if(!(!t||t.length===0))return t.map(ge)}function*E(t){return[["label",t.label],["metadata",s(t.metadata)],["summary",t.summary],["requiredStatement",t.requiredStatement],["rights",t.rights],["navDate",t.navDate],["language",t.language],["thumbnail",s(yield t.thumbnail)],["placeholderCanvas",yield t.placeholderCanvas],["accompanyingCanvas",yield t.accompanyingCanvas],["provider",s(yield t.provider)]]}function*y(t){return[["seeAlso",s(yield t.seeAlso)],["service",ye(t.service)],["services",ye(t.services)],["rendering",s(yield t.rendering)],["supplementary",s(yield t.supplementary)],["homepage",s(yield t.homepage)],["logo",s(yield t.logo)],["partOf",s(yield t.partOf)],["start",t.start]]}const ut={Manifest:function*(t){return[["@context","http://iiif.io/api/presentation/3/context.json"],...R(t),...yield*E(t),...yield*y(t),["items",yield t.items],["structures",s(yield t.structures)],["annotations",s(yield t.annotations)]]},Canvas:function*(t){return[...R(t),...yield*E(t),...yield*y(t),["items",yield t.items],["annotations",s(yield t.annotations)]]},Agent:function*(t){return[["id",t.id],["type","Agent"],["label",t.label],...yield*y(t)]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i,n])=>i!=="items"),...yield*y(t),["items",yield t.items]]},Service:function*(t){return[[F,ge(t)]]},Annotation:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i])=>i!=="body"),["body",yield t.body]]},ContentResource:function*(t){return[...R(t),...yield*E(t),...yield*y(t),["annotations",s(yield t.annotations)]]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t){return[...R(t),...yield*E(t),...yield*y(t),["items",yield*t.items],["annotations",s(yield t.annotations)]]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...R(t),...yield*E(t),...yield*y(t),["items",e],["annotations",s(yield t.annotations)]]}};export{L as Traverse,c as UNSET,F as UNWRAP,rt as defaultEntities,q as emptyAgent,Ie as emptyAnnotation,k as emptyAnnotationPage,N as emptyCanvas,j as emptyCollection,G as emptyManifest,$ as emptyRange,fe as getDefaultEntities,U as identifyResource,d as languageString2to3,vt as normalize,ht as serialize,ft as serializeConfigPresentation2,ut as serializeConfigPresentation3,de as serializedFieldsToObject,M as types};
import * as _iiif_presentation_3 from '@iiif/presentation-3';
import { AnnotationNormalized, AnnotationPageNormalized, CanvasNormalized, CollectionNormalized, ManifestNormalized, RangeNormalized, Reference, Collection, Manifest, Canvas, AnnotationCollection, AnnotationPage, Annotation, ContentResource, ChoiceTarget, ChoiceBody, Range, Service, DescriptiveProperties, LinkingProperties, AnnotationCollectionNormalized, ServiceNormalized, Selector, InternationalString } from '@iiif/presentation-3';
import { ResourceProviderNormalized, ResourceProvider } from '@iiif/presentation-3/resources/provider';
import * as geojson from 'geojson';

@@ -12,2 +13,3 @@ import * as Presentation2 from '@iiif/presentation-2';

declare const emptyRange: RangeNormalized;
declare const emptyAgent: ResourceProviderNormalized;

@@ -25,2 +27,3 @@ declare const defaultEntities: {

Selector: {};
Agent: {};
};

@@ -38,2 +41,3 @@ declare function getDefaultEntities(): {

Selector: {};
Agent: {};
};

@@ -52,2 +56,3 @@ declare function normalize(unknownEntity: unknown): {

Selector: {};
Agent: {};
};

@@ -71,2 +76,3 @@ resource: Reference<string>;

service?: Array<Traversal<Service>>;
agent?: Array<Traversal<ResourceProvider>>;
};

@@ -90,3 +96,3 @@ declare type TraverseOptions = {

traverseCanvasItems(canvas: Canvas): Canvas;
traverseInlineAnnotationPages<T extends Manifest | Canvas>(resource: T): T;
traverseInlineAnnotationPages<T extends Manifest | Canvas | Range | string>(resource: T): T;
traverseCanvas(canvas: Canvas): Canvas;

@@ -102,2 +108,3 @@ traverseAnnotationPageItems(annotationPage: AnnotationPage): AnnotationPage;

traverseRange(range: Range): Range;
traverseAgent(agent: ResourceProvider): ResourceProvider;
traverseType<T>(object: T, traversals: Array<Traversal<T>>): T;

@@ -287,3 +294,3 @@ traverseService(service: Service): Service;

profile: "http://iiif.io/api/search/1/search" | "SearchService1";
}) | Collection | Manifest | Canvas | AnnotationPage | Annotation | _iiif_presentation_3.EmbeddedResource | _iiif_presentation_3.ExternalWebResource | _iiif_presentation_3.SpecificResource | Range;
}) | Collection | Manifest | Canvas | AnnotationPage | Annotation | _iiif_presentation_3.EmbeddedResource | _iiif_presentation_3.ExternalWebResource | _iiif_presentation_3.SpecificResource | Range | ResourceProvider;
}

@@ -309,4 +316,4 @@

};
declare type NormalizedEntity = CollectionNormalized | ManifestNormalized | CanvasNormalized | AnnotationPageNormalized | AnnotationCollectionNormalized | AnnotationCollection | AnnotationNormalized | ContentResource | RangeNormalized | ServiceNormalized | Selector;
declare type Serializer<Type extends NormalizedEntity> = (entity: Type, state: {}) => Generator<Reference | Reference[], typeof UNSET | Field[], any>;
declare type NormalizedEntity = CollectionNormalized | ManifestNormalized | CanvasNormalized | AnnotationPageNormalized | AnnotationCollectionNormalized | AnnotationCollection | AnnotationNormalized | ContentResource | RangeNormalized | ServiceNormalized | Selector | ResourceProviderNormalized;
declare type Serializer<Type extends NormalizedEntity> = (entity: Type, state: any) => Generator<Reference | Reference[], typeof UNSET | Field[], any>;
declare type SerializeConfig = {

@@ -323,2 +330,3 @@ Collection?: Serializer<CollectionNormalized>;

Selector?: Serializer<Selector>;
Agent?: Serializer<ResourceProviderNormalized>;
};

@@ -333,2 +341,2 @@ declare function serializedFieldsToObject<T>(fields: Field[] | [string]): T;

export { CompatibleStore, Field, NormalizedEntity, SerializeConfig, Serializer, Traversal, TraversalMap, Traverse, TraverseOptions, UNSET, UNWRAP, defaultEntities, emptyAnnotation, emptyAnnotationPage, emptyCanvas, emptyCollection, emptyManifest, emptyRange, getDefaultEntities, identifyResource, languageString2to3, normalize, serialize, serializeConfigPresentation2, serializeConfigPresentation3, serializedFieldsToObject, types };
export { CompatibleStore, Field, NormalizedEntity, SerializeConfig, Serializer, Traversal, TraversalMap, Traverse, TraverseOptions, UNSET, UNWRAP, defaultEntities, emptyAgent, emptyAnnotation, emptyAnnotationPage, emptyCanvas, emptyCollection, emptyManifest, emptyRange, getDefaultEntities, identifyResource, languageString2to3, normalize, serialize, serializeConfigPresentation2, serializeConfigPresentation3, serializedFieldsToObject, types };

@@ -1,1 +0,1 @@

(function(h,A){typeof exports=="object"&&typeof module!="undefined"?module.exports=A():typeof define=="function"&&define.amd?define(A):(h=typeof globalThis!="undefined"?globalThis:h||self,h.IIIFParser=A())})(this,function(){"use strict";const h=["sc:Collection","sc:Manifest","sc:Canvas","oa:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function A(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t["@type"]=="string"){const e=h.indexOf(t["@type"]);if(e!==-1)return h[e]}if(t.profile)return"Service";if(t.format||t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class T{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(e){return new T({collection:[e],manifest:[e],canvas:[e],annotationList:[e],sequence:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e],layer:[e]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){const i=[...(e.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(e.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...e.members||[]];delete e.collections,delete e.manifests,e.members=i}return e.manifests&&(e.manifests=e.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),e.collections&&(e.collections=e.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),e.members&&(e.members=e.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),e}traverseManifest(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))),this.traversals.manifest)}traverseManifestItems(e){return e.sequences&&(e.sequences=e.sequences.map(i=>this.traverseSequence(i))),e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseSequence(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(e))),this.traversals.sequence)}traverseSequenceItems(e){return e.canvases&&(e.canvases=e.canvases.map(i=>this.traverseCanvas(i))),e}traverseCanvas(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))),this.traversals.canvas)}traverseCanvasItems(e){return e.images&&(e.images=e.images.map(i=>this.traverseAnnotation(i))),e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const i=[...(e.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(e.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...e.members||[]];delete e.ranges,delete e.canvases,e.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return e}traverseAnnotationList(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationListItems(e))),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map(i=>this.traverseAnnotation(i))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(e.resource=this.traverseContentResource(e.resource)),e.on,e}traverseLayer(e){return this.traverseType(this.traverseLinking(this.traverseLayerItems(e)),this.traversals.layer)}traverseLayerItems(e){return e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!=="rdf:nil"&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!=="rdf:nil"&&(e.item=e.item.map(i=>this.traverseContentResource(i))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e["@type"]==="oa:Choice"?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||typeof e=="string")return e;switch(A(e)){case"sc:Collection":return this.traverseCollection(e);case"sc:Manifest":return this.traverseManifest(e);case"sc:Canvas":return this.traverseCanvas(e);case"sc:Sequence":return this.traverseSequence(e);case"sc:Range":return this.traverseRange(e);case"oa:Annotation":return this.traverseAnnotation(e);case"oa:AnnotationList":return this.traverseAnnotationList(e);case"sc:Layer":return this.traverseLayer(e);case"Service":return this.traverseService(e);case"oa:Choice":return this.traverseChoice(e);case"ContentResource":return this.traverseContentResource(e)}return e.profile?this.traverseService(e):e}traverseImageResource(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],s=[];for(const r of n)typeof r=="string"?s.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):s.push(this.traverseContentResource(r));return!i&&!this.options.convertPropsToArray?s[0]:s}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],s=[];for(const r of n)s.push(this.traverseService(r));return!i&&!this.options.convertPropsToArray?s[0]:s}traverseLinking(e){return e.related&&(e.related=this.traverseOneOrManyType(e.related,this.traversals.contentResource)),e.rendering&&(e.rendering=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource)),e.service&&(e.service=this.traverseOneOrMoreServices(e.service)),e.seeAlso&&(e.seeAlso=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource)),e.within&&(typeof e.within=="string"||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas=="string"?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer=="string"?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,i){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,i);return e.map(n=>this.traverseType(n,i))}traverseType(e,i){return i.reduce((n,s)=>{const r=s(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}}const _e="http://library.stanford.edu/iiif/image-api/compliance.html#level0",j="http://library.stanford.edu/iiif/image-api/compliance.html#level1",G="http://library.stanford.edu/iiif/image-api/compliance.html#level2",be="http://library.stanford.edu/iiif/image-api/conformance.html#level0",$="http://library.stanford.edu/iiif/image-api/conformance.html#level1",q="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Re="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",U="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",V="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Ee="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",z="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",W="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",we="http://iiif.io/api/image/1/level0.json",Le="http://iiif.io/api/image/1/profiles/level0.json",H="http://iiif.io/api/image/1/level1.json",B="http://iiif.io/api/image/1/profiles/level1.json",K="http://iiif.io/api/image/1/level2.json",Q="http://iiif.io/api/image/1/profiles/level2.json",Te="http://iiif.io/api/image/2/level0.json",Me="http://iiif.io/api/image/2/profiles/level0.json",X="http://iiif.io/api/image/2/level1.json",Y="http://iiif.io/api/image/2/profiles/level1.json",Z="http://iiif.io/api/image/2/level2.json",J="http://iiif.io/api/image/2/profiles/level2.json",Se="level0",ee="level1",te="level2",xe="http://iiif.io/api/image/2/level0",ie="http://iiif.io/api/image/2/level1",ne="http://iiif.io/api/image/2/level2",Pe=[ie,ne,j,G,$,q,U,V,z,W,H,B,K,Q,X,Y,Z,J,ee,te],Oe=[xe,ie,ne,_e,j,G,be,$,q,Re,U,V,Ee,z,W,we,Le,H,B,K,Q,Te,Me,X,Y,Z,J,Se,ee,te],x={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function c(t,e="none"){if(!t)return{};const i=Array.isArray(t)?t:[t],n={};for(const s of i){if(typeof s=="string"){n[e]=n[e]?n[e]:[],n[e].push(s||"");continue}if(!s["@language"]){n[e]=n[e]?n[e]:[],n[e].push(s["@value"]||"");continue}const r=s["@language"];n[r]=n[r]?n[r]:[],n[r].push(s["@value"]||"")}return n}function P(t){if(Array.isArray(t))return P(t.find(e=>typeof e=="string"));if(Oe.indexOf(t)!==-1)return"level2";if(Pe.indexOf(t)!==-1)return"level1";if(typeof t=="string")return t}function re(t){const e=Array.isArray(t)?t:[t];for(const i of e)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function Fe(t){switch(t){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function De(t){return Array.isArray(t)?t:[t]}function ke(t){for(const e of["sc","oa","dcterms","dctypes","iiif"])if(t.startsWith(`${e}:`))return t.slice(e.length+1);return t}function O(t){const e=t["@id"]||t.id;let i=t["@type"]||t.type;const n=t.profile||void 0,s=t["@context"]||void 0;if(n){const r=Fe(n);if(r)return r}if(s){const r=re(s);if(r)return r}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(const r of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${r}:`)){i=i.slice(r.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(t.format){if(t.format.startsWith("image/"))return"Image";if(t.format.startsWith("text/")||t.format==="application/pdf")return"Text";if(t.format.startsWith("application/"))return"Dataset"}return e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".jpeg"))?"Image":i||"unknown"}const Ne=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function je(t){const e=t.match(Ne);return e?e[0]:t}function Ge(t,e="Rights/License",i="none"){let n=null;const s=[],r=Array.isArray(t)?t:[t];for(const _ of r){const a=_?je(_):void 0;if(a&&(a.indexOf("creativecommons.org")!==-1||a.indexOf("rightsstatements.org")!==-1)){a.startsWith("https://")?n=`http://${a.slice(8)}`:n=a;continue}a&&s.push({label:{[i]:[e]},value:{[i]:[a]}})}return[n,s]}const $e=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function qe(t){if(t){const e=Array.isArray(t)?t:[t],i=[];for(const n of e)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),$e.indexOf(n)===-1&&i.push(n);if(e.length)return i.length===1?i[0]:i}}function Ue(t){return t?t.map(e=>({label:c(e.label),value:c(e.value)})):[]}function v(t){for(const e in t)(typeof t[e]=="undefined"||t[e]===null)&&delete t[e];return t}let se=0;function ae(t,e){const i=encodeURI(t.id||t["@id"]||"").trim();return i&&e?`${i}/${e}`:i||(se++,`http://example.org/${t["@type"]}${e?`/${e}`:""}/${se}`)}function p(t){const e=[...t.behavior||[]];return t.viewingHint&&e.push(t.viewingHint),{"@context":t["@context"]?qe(t["@context"]):void 0,id:(t["@id"]||ae(t)).trim(),type:O(t),behavior:e.length?e:void 0,height:t.height?t.height:void 0,width:t.width?t.width:void 0,motivation:t.motivation?ke(t.motivation):void 0,viewingDirection:t.viewingDirection,profile:t.profile,format:t.format?t.format:void 0,duration:void 0,timeMode:void 0}}function l(t){const[e,i]=Ge(t.license),n=[...t.metadata?Ue(t.metadata):[],...i];return{rights:e,metadata:n.length?n:void 0,label:t.label?c(t.label):void 0,requiredStatement:t.attribution?{label:c(x.attributionLabel),value:c(t.attribution)}:void 0,navDate:t.navDate,summary:t.description?c(t.description):void 0,thumbnail:t.thumbnail}}function Ve(t){if(!t.within)return;const e=Array.isArray(t.within)?t.within:[t.within],i=[];for(const n of e)if(typeof n=="string"){if(n)switch(t["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:O(n)});return i.length?i:void 0}function u(t){const e=t.related?Array.isArray(t.related)?t.related:[t.related]:[],i=t.contentLayer;return{provider:t.logo||e.length?[{id:x.providerId,type:"Agent",homepage:e.length?[e[0]]:void 0,logo:t.logo?Array.isArray(t.logo)?t.logo:[t.logo]:void 0,label:c(x.providerName)}]:void 0,partOf:Ve(t),rendering:t.rendering,seeAlso:t.seeAlso,start:t.startCanvas,service:t.service?De(t.service):void 0,supplementary:i?[i]:void 0}}function ze(t){return v({...p(t),...l(t),...u(t),items:t.members})}function We(t){const e=[],i=[];for(const s of t.sequences||[])s.canvases.length&&e.push(...s.canvases),s.behavior&&i.push(...s.behavior);const n=p(t);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),v({...n,...l(t),...u(t),items:e,structures:t.structures})}function He(t){return v({...p(t),...l(t),...u(t),items:t.images&&t.images.length?[{id:ae(t,"annotation-page"),type:"AnnotationPage",items:t.images}]:void 0})}function Be(t){return v({...p(t),...l(t),...u(t),items:t.resources})}function Ke(t){return!t.canvases||t.canvases.length===0?{canvases:[],behavior:[]}:{canvases:t.canvases,behavior:t.viewingHint?[t.viewingHint]:[]}}function Qe(t){return v({...p(t),...l(t),...u(t),target:typeof t.on=="string"?encodeURI(t.on).trim():t.on,body:t.resource})}function Xe(t){const e=t;return v({...p(e),...l(e),...u(e)})}function Ye(t){const e=[];return t.default&&t.default!=="rdf:nil"&&e.push(t.default),t.item&&t.item!=="rdf:nil"&&e.push(...t.item),{...p(t),...l(t),items:e}}function Ze(t){return v({...p(t),...l(t),...u(t),items:t.members})}function Je(t){const{"@id":e,"@type":i,"@context":n,profile:s,...r}=t;return e&&(r.id=e),r.type=O(t),r.type==="unknown"&&(r.type="Service"),s&&(r.profile=P(s)),v({...r,...l(r)})}function et(t){return v({...p(t),...l(t),...u(t)})}const oe=new T({collection:[ze],manifest:[We],canvas:[He],annotationList:[Be],sequence:[Ke],annotation:[Qe],contentResource:[Xe],choice:[Ye],range:[Ze],service:[Je],layer:[et]});function le(t){return t&&t["@context"]&&(t["@context"]==="http://iiif.io/api/presentation/2/context.json"||t["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||t["@context"]==="http://www.shared-canvas.org/ns/context.json")||t["@context"]==="http://iiif.io/api/image/2/context.json"?oe.traverseUnknown(t):t}var tt=Object.freeze({__proto__:null,types:h,identifyResource:A,Traverse:T,convertLanguageMapping:c,getProfile:P,getTypeFromContext:re,presentation2to3:oe,convertPresentation2:le});const it={id:"https://iiif-parser/annotation",type:"Annotation",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],seeAlso:[],homepage:null,logo:[],rendering:[],service:[],accessibility:[],audience:[],body:[],bodyValue:null,canonical:null,created:null,creator:[],generated:null,generator:[],modified:null,motivation:[],rights:[],stylesheet:null,target:[],timeMode:void 0,via:[],partOf:[]},ve={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:[],motivation:null,label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:null,logo:[],rendering:[],service:[]},pe={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],duration:0,height:0,width:0},ce={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],services:[]},ue={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:[],behavior:[],homepage:null,items:[],label:null,logo:[],metadata:[],motivation:null,navDate:null,provider:[],partOf:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:[],requiredStatement:null,rights:null,seeAlso:[],service:[],services:[],start:null,structures:[],summary:null,thumbnail:[],viewingDirection:"left-to-right"},fe={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:null,logo:[],partOf:[],rendering:[],service:[],start:null,supplementary:null,viewingDirection:"left-to-right"},F=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector"];function he(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t.type=="string"){const e=F.indexOf(t.type);if(e!==-1)return F[e]}if(t.profile)return"Service";throw new Error("Resource type is not known")}class M{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new M({collection:[e],manifest:[e],canvas:[e],annotationCollection:[e],annotationPage:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e]})}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=e.thumbnail.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map(i=>this.traverseType(i,this.traversals.contentResource))),e.service&&(e.service=e.service.map(i=>this.traverseType(i,this.traversals.service))),e.services&&(e.services=e.services.map(i=>this.traverseType(i,this.traversals.service))),e.logo&&(e.logo=e.logo.map(i=>this.traverseType(i,this.traversals.contentResource))),e.homepage&&(e.homepage=this.traverseType(e.homepage,this.traversals.contentResource)),e.partOf&&(e.partOf=e.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,this.traversals.annotationCollection):this.traverseType(i,this.traversals.contentResource))),e.start&&(e.start=e.start.map(i=>this.traverseType(i,this.traversals.canvas))),e.rendering&&(e.rendering=e.rendering.map(i=>this.traverseType(i,this.traversals.contentResource))),e.supplementary&&(e.supplementary=e.supplementary.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseCollectionItems(e){return e.items&&e.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),e}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traversePosterCanvas(this.traverseCollectionItems(e)))),this.traversals.collection)}traverseManifestItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseCanvas(i))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseManifest(e){return this.traverseType(this.traverseManifestStructures(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))))),this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(i=>this.traverseAnnotationPage(i)),e}traverseInlineAnnotationPages(e){return e.annotations&&(e.annotations=e.annotations.map(i=>this.traverseAnnotationPage(i))),e}traverseCanvas(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))))),this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseAnnotation(i))),e}traverseAnnotationPage(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationPageItems(e))),this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(i=>this.traverseContentResource(i)):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseType(e.posterCanvas,this.traversals.canvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseType(e.placeholderCanvas,this.traversals.canvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseType(e.accompanyingCanvas,this.traversals.canvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e=="string"||!e||e&&e.service&&(e.service=(e.service||[]).map(i=>this.traverseType(i,this.traversals.service))),e}traverseContentResource(e){return e.type==="Choice"&&(e.items=e.items.map(i=>this.traverseContentResource(i))),this.traverseType(this.traverseContentResourceLinking(e),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"}):i.type==="Manifest"?this.traverseManifest(i):this.traverseRange(i))),e}traverseRange(e){return this.traverseType(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseRangeRanges(e)))),this.traversals.range)}traverseType(e,i){return i.reduce((n,s)=>{const r=s(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const i=he(e);switch(i){case"Collection":return this.traverseCollection(e);case"Manifest":return this.traverseManifest(e);case"Canvas":return this.traverseCanvas(e);case"AnnotationPage":return this.traverseAnnotationPage(e);case"Annotation":return this.traverseAnnotation(e);case"ContentResource":return this.traverseContentResource(e);case"Range":return this.traverseRange(e);case"Service":return this.traverseService(e);default:throw new Error(`Unknown or unsupported resource type of ${i}`)}}}const nt={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{}};function de(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{}}}function me(t,e){if(typeof t=="string")return{id:t,type:e};if(!t.id)throw new Error(`Invalid resource does not have an ID (${e})`);return t}function rt(t){return(e,i)=>{const n=t[e]?t[e]:{};return s=>{const r=me(s,i||e);return r&&r.id&&e?(n[r.id]=n[r.id]?Object.assign({},n[r.id],r):Object.assign({},r),{id:r.id,type:e==="ContentResource"?e:r.type}):r}}}function st(t){return(e,i)=>n=>{const{id:s,type:r}=me(n,i||e);if(typeof s=="undefined")throw new Error("Found invalid entity without an ID.");return e==="ContentResource"?t[s]=e:t[s]=r,n}}function at(t){const e=JSON.stringify(t);let i=5381,n=e.length;for(;n;)i=i*33^e.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function D(t){return e=>typeof e=="string"?{id:e,type:t}:e.id?e.type?e:{type:t,...e}:{id:at(e),type:t,...e}}function b(t){return e=>({...t,...e})}function C(t){return Array.isArray(t)?t:[t]}function ot(t){return t.body&&(t.body=C(t.body)),t.seeAlso&&(t.seeAlso=C(t.seeAlso)),t.body&&(t.body=C(t.body)),t.audience&&(t.audience=C(t.audience)),t.accessibility&&(t.accessibility=C(t.accessibility)),t.motivation&&(t.motivation=C(t.motivation)),t}function lt(t){const e=le(t),i=de(),n={},s=rt(i),r=st(n),a=new M({collection:[b(ce),r("Collection"),s("Collection")],manifest:[b(ue),r("Manifest"),s("Manifest")],canvas:[b(pe),r("Canvas"),s("Canvas")],annotationPage:[D("AnnotationPage"),b(ve),r("AnnotationPage"),s("AnnotationPage")],annotation:[D("Annotation"),ot,r("Annotation"),s("Annotation")],contentResource:[D("ContentResource"),r("ContentResource"),s("ContentResource")],range:[b(fe),r("Range","Canvas"),s("Range","Canvas")]}).traverseUnknown(e);return{entities:i,resource:a,mapping:n}}const d="__$UNSET$__",k="__$UNWRAP$__";function vt(t,e){const i=t.requests[e],n=t.mapping[e];if(!(!n||i&&i.resourceUri&&!t.entities[n][i.resourceUri]))return t.entities[n][i?i.resourceUri:e]}function ge(t){const e={};for(const[i,n]of t){if(i===k)return n;n!==d&&typeof n!="undefined"&&n!==null&&(e[i]=n)}return e}function pt(t,e,i){if(!e.type||!e.id)throw new Error("Unknown entity");if(!i[e.type])throw new Error(`Serializer not found for ${e.type}`);function n(s){const r=i[s.type];if(!r)return d;const _=vt(t,s.id);if(!_)return d;const a=r(_,t);let L=a.next();for(;!L.done;){const S=L.value;let N=d;if(S)if(Array.isArray(S)){const Ie=[];for(const dt of S)Ie.push(n(dt));N=Ie}else N=n(S);L=a.next(N)}return L.value===d?d:ge(L.value)}return n(e)}function m(t){if(!t)return;const e=Object.keys(t);if(e.length!==0){if(e.length===1){const i=e[0];if(!i)return"";const n=(t[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return e.map(i=>({"@language":i,"@value":(t[i]||[]).join("")}))}}function ye(t){return Array.isArray(t)?t.map(e=>ye(e)):typeof t=="string"?t:t.type&&t.type==="Canvas"?t.id:t}function f(t,e=!1){if(!!t)return t.length>1&&!e?t:t[0]||void 0}function ct(t){if(!!t){if(typeof t=="string")return{"@id":t};if("@id"in t){const e={...t};return delete e["@type"],e}return{"@context":"http://iiif.io/api/image/2/context.json","@id":t.id,profile:`http://iiif.io/api/image/2/profiles/${t.profile}.json`}}}function g(t,e){return[["@id",t.id],["@type",e],["format",t.format],["height",t.height],["width",t.width],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0]]}function*y(t){const e=t.provider?t.provider[0]:void 0;return[["label",m(t.label)],["metadata",t.metadata&&t.metadata.length?t.metadata.map(i=>({label:m(i.label)||"",value:m(i.value)||""})):void 0],["description",m(t.summary)],["thumbnail",f(yield t.thumbnail)],["navDate",t.navDate],["logo",e?f(e.logo):void 0],["homepage",e?e.homepage:void 0],["attribution",t.requiredStatement?m(t.requiredStatement.value):void 0]]}function*R(t){return[["seeAlso",f(yield t.seeAlso)],["service",f((t.service||[]).map(ct))],["rendering",f(yield t.rendering)],["startCanvas",t.start?t.start.id:void 0]]}const ut={Manifest:function*(t){return[...g(t,"sc:Manifest"),...yield*y(t),...yield*R(t),["sequences",[{"@id":`${t.id}/sequence0`,"@type":"sc:Sequence",canvases:yield t.items}]],["structures",yield t.structures]]},Canvas:function*(t){const i=(yield t.items)[0];return[...g(t,"sc:Canvas"),...yield*y(t),...yield*R(t),["images",i?[i.resources]:void 0],["annotations",t.annotations&&t.annotations.length?f(yield t.annotations):void 0]]},AnnotationPage:function*(t){return[...g(t,"sc:AnnotationList"),...yield*y(t),["resources",t.items&&t.items.length?f(yield t.items):void 0]]},Annotation:function*(t){return[["@id",t.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",ye(t.target)],["resource",f(yield t.body,!0)]]},ContentResource:function*(t){switch(t.type){case"Image":return[...g(t,"dctypes:Image"),...yield*y(t),...yield*R(t)];case"Text":case"Dataset":default:return[...g(t,void 0),...yield*y(t)]}},AnnotationCollection:function*(t){return[["@id",t.id],["@type","sc:Layer"],["label",m(t.label)]]},Collection:function*(t){return[...g(t,"sc:Collection"),...yield*y(t),...yield*R(t),["members",yield*t.items]]},Range:function*(t){const e=[],i=[];if(t.items)for(const n of t.items){const s=yield n;e.push({"@id":n.id,"@type":n.type,label:s?s.label:void 0,within:t.id}),n.type==="Canvas"&&i.push(n.id)}return[...g(t,"sc:Range"),...yield*y(t),...yield*R(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function E(t){return[["id",t.id],["type",t.type],["format",t.format],["profile",t.profile],["height",t.height],["width",t.width],["duration",t.duration||void 0],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0],["behavior",t.behavior&&t.behavior.length?t.behavior:void 0],["timeMode",t.timeMode],["motivation",t.motivation]]}function o(t){if(!(!t||t.length===0))return t}function Ae(t){if(t&&t.type&&t.type==="ImageService2"){const{id:e,type:i,profile:n,...s}=t;return{"@id":e,"@type":i,profile:n.startsWith("http")?n:`http://iiif.io/api/image/2/${n}.json`,...s}}return t}function Ce(t){if(!(!t||t.length===0))return t.map(Ae)}function*w(t){return[["label",t.label],["metadata",o(t.metadata)],["summary",t.summary],["requiredStatement",t.requiredStatement],["rights",t.rights],["navDate",t.navDate],["language",t.language],["thumbnail",o(yield t.thumbnail)],["placeholderCanvas",yield t.placeholderCanvas],["accompanyingCanvas",yield t.accompanyingCanvas],["provider",o(t.provider)]]}function*I(t){return[["seeAlso",o(yield t.seeAlso)],["service",Ce(t.service)],["services",Ce(t.services)],["rendering",o(yield t.rendering)],["supplementary",o(yield t.supplementary)],["partOf",o(t.partOf)],["start",t.start]]}var ft=Object.freeze({__proto__:null,emptyAnnotation:it,emptyAnnotationPage:ve,emptyCanvas:pe,emptyCollection:ce,emptyManifest:ue,emptyRange:fe,defaultEntities:nt,getDefaultEntities:de,normalize:lt,types:F,identifyResource:he,Traverse:M,UNSET:d,UNWRAP:k,serializedFieldsToObject:ge,serialize:pt,languageString2to3:m,serializeConfigPresentation2:ut,serializeConfigPresentation3:{Manifest:function*(t){return[...E(t),...yield*w(t),...yield*I(t),["items",yield t.items],["structures",o(yield t.structures)]]},Canvas:function*(t){return[...E(t),...yield*w(t),...yield*I(t),["items",yield t.items],["annotations",o(yield t.annotations)]]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?o(n):n]).filter(([i,n])=>i!=="items"),...yield*I(t),["items",yield t.items]]},Service:function*(t){return[[k,Ae(t)]]},Annotation:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?o(n):n]).filter(([i])=>i!=="body"),["body",yield t.body]]},ContentResource:function*(t){return[...E(t),...yield*w(t),...yield*I(t)]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t){return[...E(t),...yield*w(t),...yield*I(t),["items",yield*t.items]]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...E(t),...yield*w(t),...yield*I(t),["items",e],["annotations",o(yield t.annotations)]]}}}),ht={Presentation2:tt,Presentation3:ft};return ht});
(function(d,C){typeof exports=="object"&&typeof module!="undefined"?module.exports=C():typeof define=="function"&&define.amd?define(C):(d=typeof globalThis!="undefined"?globalThis:d||self,d.IIIFParser=C())})(this,function(){"use strict";const d=["sc:Collection","sc:Manifest","sc:Canvas","oa:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function C(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t["@type"]=="string"){const e=d.indexOf(t["@type"]);if(e!==-1)return d[e]}if(t.profile)return"Service";if(t.format||t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class T{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(e){return new T({collection:[e],manifest:[e],canvas:[e],annotationList:[e],sequence:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e],layer:[e]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){const i=[...(e.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(e.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...e.members||[]];delete e.collections,delete e.manifests,e.members=i}return e.manifests&&(e.manifests=e.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),e.collections&&(e.collections=e.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),e.members&&(e.members=e.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),e}traverseManifest(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e))),this.traversals.manifest)}traverseManifestItems(e){return e.sequences&&(e.sequences=e.sequences.map(i=>this.traverseSequence(i))),e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseSequence(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(e))),this.traversals.sequence)}traverseSequenceItems(e){return e.canvases&&(e.canvases=e.canvases.map(i=>this.traverseCanvas(i))),e}traverseCanvas(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))),this.traversals.canvas)}traverseCanvasItems(e){return e.images&&(e.images=e.images.map(i=>this.traverseAnnotation(i))),e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const i=[...(e.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(e.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...e.members||[]];delete e.ranges,delete e.canvases,e.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return e}traverseAnnotationList(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationListItems(e))),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map(i=>this.traverseAnnotation(i))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(e.resource=this.traverseContentResource(e.resource)),e.on,e}traverseLayer(e){return this.traverseType(this.traverseLinking(this.traverseLayerItems(e)),this.traversals.layer)}traverseLayerItems(e){return e.otherContent&&(e.otherContent=e.otherContent.map(i=>this.traverseAnnotationList(i))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!=="rdf:nil"&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!=="rdf:nil"&&(e.item=e.item.map(i=>this.traverseContentResource(i))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e["@type"]==="oa:Choice"?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||typeof e=="string")return e;switch(C(e)){case"sc:Collection":return this.traverseCollection(e);case"sc:Manifest":return this.traverseManifest(e);case"sc:Canvas":return this.traverseCanvas(e);case"sc:Sequence":return this.traverseSequence(e);case"sc:Range":return this.traverseRange(e);case"oa:Annotation":return this.traverseAnnotation(e);case"oa:AnnotationList":return this.traverseAnnotationList(e);case"sc:Layer":return this.traverseLayer(e);case"Service":return this.traverseService(e);case"oa:Choice":return this.traverseChoice(e);case"ContentResource":return this.traverseContentResource(e)}return e.profile?this.traverseService(e):e}traverseImageResource(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],a=[];for(const r of n)typeof r=="string"?a.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):a.push(this.traverseContentResource(r));return!i&&!this.options.convertPropsToArray?a[0]:a}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const i=Array.isArray(e),n=Array.isArray(e)?e:[e],a=[];for(const r of n)a.push(this.traverseService(r));return!i&&!this.options.convertPropsToArray?a[0]:a}traverseLinking(e){return e.related&&(e.related=this.traverseOneOrManyType(e.related,this.traversals.contentResource)),e.rendering&&(e.rendering=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource)),e.service&&(e.service=this.traverseOneOrMoreServices(e.service)),e.seeAlso&&(e.seeAlso=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource)),e.within&&(typeof e.within=="string"||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas=="string"?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer=="string"?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,i){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,i);return e.map(n=>this.traverseType(n,i))}traverseType(e,i){return i.reduce((n,a)=>{const r=a(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}}const be="http://library.stanford.edu/iiif/image-api/compliance.html#level0",j="http://library.stanford.edu/iiif/image-api/compliance.html#level1",G="http://library.stanford.edu/iiif/image-api/compliance.html#level2",Re="http://library.stanford.edu/iiif/image-api/conformance.html#level0",$="http://library.stanford.edu/iiif/image-api/conformance.html#level1",q="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Ee="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",U="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",V="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",we="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",z="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",W="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Le="http://iiif.io/api/image/1/level0.json",Te="http://iiif.io/api/image/1/profiles/level0.json",H="http://iiif.io/api/image/1/level1.json",B="http://iiif.io/api/image/1/profiles/level1.json",K="http://iiif.io/api/image/1/level2.json",Q="http://iiif.io/api/image/1/profiles/level2.json",Me="http://iiif.io/api/image/2/level0.json",xe="http://iiif.io/api/image/2/profiles/level0.json",X="http://iiif.io/api/image/2/level1.json",Y="http://iiif.io/api/image/2/profiles/level1.json",Z="http://iiif.io/api/image/2/level2.json",J="http://iiif.io/api/image/2/profiles/level2.json",Se="level0",ee="level1",te="level2",Pe="http://iiif.io/api/image/2/level0",ie="http://iiif.io/api/image/2/level1",ne="http://iiif.io/api/image/2/level2",Oe=[ie,ne,j,G,$,q,U,V,z,W,H,B,K,Q,X,Y,Z,J,ee,te],Fe=[Pe,ie,ne,be,j,G,Re,$,q,Ee,U,V,we,z,W,Le,Te,H,B,K,Q,Me,xe,X,Y,Z,J,Se,ee,te],S={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function f(t,e="none"){if(!t)return{};const i=Array.isArray(t)?t:[t],n={};for(const a of i){if(typeof a=="string"){n[e]=n[e]?n[e]:[],n[e].push(a||"");continue}if(!a["@language"]){n[e]=n[e]?n[e]:[],n[e].push(a["@value"]||"");continue}const r=a["@language"];n[r]=n[r]?n[r]:[],n[r].push(a["@value"]||"")}return n}function P(t){if(Array.isArray(t))return P(t.find(e=>typeof e=="string"));if(Fe.indexOf(t)!==-1)return"level2";if(Oe.indexOf(t)!==-1)return"level1";if(typeof t=="string")return t}function re(t){const e=Array.isArray(t)?t:[t];for(const i of e)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function De(t){switch(t){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function ke(t){return Array.isArray(t)?t:[t]}function Ne(t){for(const e of["sc","oa","dcterms","dctypes","iiif"])if(t.startsWith(`${e}:`))return t.slice(e.length+1);return t}function O(t){const e=t["@id"]||t.id;let i=t["@type"]||t.type;const n=t.profile||void 0,a=t["@context"]||void 0;if(n){const r=De(n);if(r)return r}if(a){const r=re(a);if(r)return r}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(const r of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${r}:`)){i=i.slice(r.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(t.format){if(t.format.startsWith("image/"))return"Image";if(t.format.startsWith("text/")||t.format==="application/pdf")return"Text";if(t.format.startsWith("application/"))return"Dataset"}return e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".jpeg"))?"Image":i||"unknown"}const je=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function Ge(t){const e=t.match(je);return e?e[0]:t}function $e(t,e="Rights/License",i="none"){let n=null;const a=[],r=Array.isArray(t)?t:[t];for(const b of r){const o=b?Ge(b):void 0;if(o&&(o.indexOf("creativecommons.org")!==-1||o.indexOf("rightsstatements.org")!==-1)){o.startsWith("https://")?n=`http://${o.slice(8)}`:n=o;continue}o&&a.push({label:{[i]:[e]},value:{[i]:[o]}})}return[n,a]}const qe=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function Ue(t){if(t){const e=Array.isArray(t)?t:[t],i=[];for(const n of e)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),qe.indexOf(n)===-1&&i.push(n);if(e.length)return i.length===1?i[0]:i}}function Ve(t){return t?t.map(e=>({label:f(e.label),value:f(e.value)})):[]}function v(t){for(const e in t)(typeof t[e]=="undefined"||t[e]===null)&&delete t[e];return t}let ae=0;function se(t,e){const i=encodeURI(t.id||t["@id"]||"").trim();return i&&e?`${i}/${e}`:i||(ae++,`http://example.org/${t["@type"]}${e?`/${e}`:""}/${ae}`)}function p(t){const e=[...t.behavior||[]];return t.viewingHint&&e.push(t.viewingHint),{"@context":t["@context"]?Ue(t["@context"]):void 0,id:(t["@id"]||se(t)).trim(),type:O(t),behavior:e.length?e:void 0,height:t.height?t.height:void 0,width:t.width?t.width:void 0,motivation:t.motivation?Ne(t.motivation):void 0,viewingDirection:t.viewingDirection,profile:t.profile,format:t.format?t.format:void 0,duration:void 0,timeMode:void 0}}function l(t){const[e,i]=$e(t.license),n=[...t.metadata?Ve(t.metadata):[],...i];return{rights:e,metadata:n.length?n:void 0,label:t.label?f(t.label):void 0,requiredStatement:t.attribution?{label:f(S.attributionLabel),value:f(t.attribution)}:void 0,navDate:t.navDate,summary:t.description?f(t.description):void 0,thumbnail:t.thumbnail}}function ze(t){if(!t.within)return;const e=Array.isArray(t.within)?t.within:[t.within],i=[];for(const n of e)if(typeof n=="string"){if(n)switch(t["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:O(n)});return i.length?i:void 0}function c(t){const e=t.related?Array.isArray(t.related)?t.related:[t.related]:[],i=t.contentLayer;return{provider:t.logo||e.length?[{id:S.providerId,type:"Agent",homepage:e.length?[e[0]]:void 0,logo:t.logo?Array.isArray(t.logo)?t.logo:[t.logo]:void 0,label:f(S.providerName)}]:void 0,partOf:ze(t),rendering:t.rendering,seeAlso:t.seeAlso,start:t.startCanvas,service:t.service?ke(t.service):void 0,supplementary:i?[i]:void 0}}function We(t){return v({...p(t),...l(t),...c(t),items:t.members})}function He(t){const e=[],i=[];for(const a of t.sequences||[])a.canvases.length&&e.push(...a.canvases),a.behavior&&i.push(...a.behavior);const n=p(t);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),v({...n,...l(t),...c(t),items:e,structures:t.structures})}function Be(t){return v({...p(t),...l(t),...c(t),items:t.images&&t.images.length?[{id:se(t,"annotation-page"),type:"AnnotationPage",items:t.images}]:void 0})}function Ke(t){return v({...p(t),...l(t),...c(t),items:t.resources})}function Qe(t){return!t.canvases||t.canvases.length===0?{canvases:[],behavior:[]}:{canvases:t.canvases,behavior:t.viewingHint?[t.viewingHint]:[]}}function Xe(t){return v({...p(t),...l(t),...c(t),target:typeof t.on=="string"?encodeURI(t.on).trim():t.on,body:t.resource})}function Ye(t){const e=t;return v({...p(e),...l(e),...c(e)})}function Ze(t){const e=[];return t.default&&t.default!=="rdf:nil"&&e.push(t.default),t.item&&t.item!=="rdf:nil"&&e.push(...t.item),{...p(t),...l(t),items:e}}function Je(t){return v({...p(t),...l(t),...c(t),items:t.members})}function et(t){const{"@id":e,"@type":i,"@context":n,profile:a,...r}=t;return e&&(r.id=e),r.type=O(t),r.type==="unknown"&&(r.type="Service"),a&&(r.profile=P(a)),v({...r,...l(r)})}function tt(t){return v({...p(t),...l(t),...c(t)})}const oe=new T({collection:[We],manifest:[He],canvas:[Be],annotationList:[Ke],sequence:[Qe],annotation:[Xe],contentResource:[Ye],choice:[Ze],range:[Je],service:[et],layer:[tt]});function le(t){return t&&t["@context"]&&(t["@context"]==="http://iiif.io/api/presentation/2/context.json"||t["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||t["@context"]==="http://www.shared-canvas.org/ns/context.json")||t["@context"]==="http://iiif.io/api/image/2/context.json"?oe.traverseUnknown(t):t}var it=Object.freeze({__proto__:null,types:d,identifyResource:C,Traverse:T,convertLanguageMapping:f,getProfile:P,getTypeFromContext:re,presentation2to3:oe,convertPresentation2:le});const nt={id:"https://iiif-parser/annotation",type:"Annotation",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],seeAlso:[],homepage:[],logo:[],rendering:[],service:[],accessibility:[],audience:[],body:[],bodyValue:null,canonical:null,created:null,creator:[],generated:null,generator:[],modified:null,motivation:[],rights:[],stylesheet:null,target:[],timeMode:void 0,via:[],partOf:[]},ve={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:[],motivation:null,label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],logo:[],rendering:[],service:[]},pe={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],duration:0,height:0,width:0},fe={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],services:[]},ce={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:[],behavior:[],homepage:[],items:[],label:null,logo:[],metadata:[],motivation:null,navDate:null,provider:[],partOf:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:[],requiredStatement:null,rights:null,seeAlso:[],service:[],services:[],start:null,structures:[],summary:null,thumbnail:[],viewingDirection:"left-to-right"},he={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:[],motivation:null,thumbnail:[],posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:[],rights:null,navDate:null,provider:[],items:[],annotations:[],seeAlso:[],homepage:[],logo:[],partOf:[],rendering:[],service:[],start:null,supplementary:null,viewingDirection:"left-to-right"},ue={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:[],seeAlso:[],homepage:[]},F=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function de(t){if(typeof t=="undefined"||t===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(t))throw new Error("Array is not a valid entity");if(typeof t!="object")throw new Error(`${typeof t} is not a valid entity`);if(typeof t.type=="string"){const e=F.indexOf(t.type);if(e!==-1)return F[e]}if(t.profile)return"Service";throw new Error("Resource type is not known")}class M{traversals;options;constructor(e,i={}){this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new M({collection:[e],manifest:[e],canvas:[e],annotationCollection:[e],annotationPage:[e],annotation:[e],contentResource:[e],choice:[e],range:[e],service:[e]})}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=e.thumbnail.map(i=>this.traverseType(i,this.traversals.contentResource))),e.provider&&(e.provider=e.provider.map(i=>this.traverseAgent(i))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map(i=>this.traverseType(i,this.traversals.contentResource))),e.service&&(e.service=e.service.map(i=>this.traverseType(i,this.traversals.service))),e.services&&(e.services=e.services.map(i=>this.traverseType(i,this.traversals.service))),e.logo&&(e.logo=e.logo.map(i=>this.traverseType(i,this.traversals.contentResource))),e.homepage&&(e.homepage=e.homepage.map(i=>this.traverseType(i,this.traversals.contentResource))),e.partOf&&(e.partOf=e.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,this.traversals.annotationCollection):this.traverseType(i,this.traversals.contentResource))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map(i=>this.traverseType(i,this.traversals.contentResource))),e.supplementary&&(e.supplementary=e.supplementary.map(i=>this.traverseType(i,this.traversals.contentResource))),e}traverseCollectionItems(e){return e.items&&e.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),e}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseInlineAnnotationPages(this.traverseLinking(this.traversePosterCanvas(this.traverseCollectionItems(e))))),this.traversals.collection)}traverseManifestItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseCanvas(i))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map(i=>this.traverseRange(i))),e}traverseManifest(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traverseManifestStructures(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(e)))))),this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(i=>this.traverseAnnotationPage(i)),e}traverseInlineAnnotationPages(e){return typeof e=="string"||!e||e.annotations&&(e.annotations=e.annotations.map(i=>this.traverseAnnotationPage(i))),e}traverseCanvas(e){return this.traverseType(this.traverseInlineAnnotationPages(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(e))))),this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&(e.items=e.items.map(i=>this.traverseAnnotation(i))),e}traverseAnnotationPage(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationPageItems(e))),this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(i=>this.traverseContentResource(i)):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseType(e.posterCanvas,this.traversals.canvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseType(e.placeholderCanvas,this.traversals.canvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseType(e.accompanyingCanvas,this.traversals.canvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e=="string"||!e||e&&e.service&&(e.service=(e.service||[]).map(i=>this.traverseType(i,this.traversals.service))),e}traverseContentResource(e){return e.type==="Choice"&&(e.items=e.items.map(i=>this.traverseContentResource(i))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"}):i.type==="Manifest"?this.traverseManifest(i):this.traverseRange(i))),e}traverseRange(e){return this.traverseType(this.traversePosterCanvas(this.traverseDescriptive(this.traverseLinking(this.traverseRangeRanges(e)))),this.traversals.range)}traverseAgent(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.agent)}traverseType(e,i){return i.reduce((n,a)=>{const r=a(n);return typeof r=="undefined"&&!this.options.allowUndefinedReturn?n:r},e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const i=de(e);switch(i){case"Collection":return this.traverseCollection(e);case"Manifest":return this.traverseManifest(e);case"Canvas":return this.traverseCanvas(e);case"AnnotationPage":return this.traverseAnnotationPage(e);case"Annotation":return this.traverseAnnotation(e);case"ContentResource":return this.traverseContentResource(e);case"Range":return this.traverseRange(e);case"Service":return this.traverseService(e);case"Agent":return this.traverseAgent(e);default:throw new Error(`Unknown or unsupported resource type of ${i}`)}}}const rt={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function me(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function ge(t,e){if(typeof t=="string")return{id:t,type:e};if(!t.id)throw new Error(`Invalid resource does not have an ID (${e})`);return t}function at(t){return(e,i)=>{const n=t[e]?t[e]:{};return a=>{const r=ge(a,i||e);return r&&r.id&&e?(n[r.id]=n[r.id]?Object.assign({},n[r.id],r):Object.assign({},r),{id:r.id,type:e==="ContentResource"?e:r.type}):r}}}function st(t){return(e,i)=>n=>{const{id:a,type:r}=ge(n,i||e);if(typeof a=="undefined")throw new Error("Found invalid entity without an ID.");return e==="ContentResource"?t[a]=e:t[a]=r,n}}function ot(t){const e=JSON.stringify(t);let i=5381,n=e.length;for(;n;)i=i*33^e.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function D(t){return e=>typeof e=="string"?{id:e,type:t}:e.id?e.type?e:{type:t,...e}:{id:ot(e),type:t,...e}}function I(t){return e=>({...t,...e})}function _(t){return Array.isArray(t)?t:[t]}function lt(t){return t.body&&(t.body=_(t.body)),t.seeAlso&&(t.seeAlso=_(t.seeAlso)),t.body&&(t.body=_(t.body)),t.audience&&(t.audience=_(t.audience)),t.accessibility&&(t.accessibility=_(t.accessibility)),t.motivation&&(t.motivation=_(t.motivation)),t}function vt(t){const e=le(t),i=me(),n={},a=at(i),r=st(n),o=new M({collection:[I(fe),r("Collection"),a("Collection")],manifest:[I(ce),r("Manifest"),a("Manifest")],canvas:[I(pe),r("Canvas"),a("Canvas")],annotationPage:[D("AnnotationPage"),I(ve),r("AnnotationPage"),a("AnnotationPage")],annotation:[D("Annotation"),lt,r("Annotation"),a("Annotation")],contentResource:[D("ContentResource"),r("ContentResource"),a("ContentResource")],range:[I(he),r("Range","Canvas"),a("Range","Canvas")],agent:[I(ue),r("Agent"),a("Agent")]}).traverseUnknown(e);return{entities:i,resource:o,mapping:n}}const h="__$UNSET$__",k="__$UNWRAP$__";function pt(t,e){const i=t.requests[e],n=t.mapping[e];if(!(!n||i&&i.resourceUri&&!t.entities[n][i.resourceUri]))return t.entities[n][i?i.resourceUri:e]}function ye(t){const e={};for(const[i,n]of t){if(i===k&&n!==h)return n;n!==h&&typeof n!="undefined"&&n!==null&&(e[i]=n)}return e}function ft(t,e,i){if(!e.type||!e.id)throw new Error("Unknown entity");if(!i[e.type])throw new Error(`Serializer not found for ${e.type}`);function n(a){const r=i[a.type];if(!r)return h;const b=pt(t,a.id)||(a.id&&a.type?a:null);if(!b)return h;const o=r(b,t);let L=o.next();for(;!L.done;){const x=L.value;let N=h;if(x)if(Array.isArray(x)){const _e=[];for(const mt of x)_e.push(n(mt));N=_e}else N=n(x);L=o.next(N)}return L.value===h?h:ye(L.value)}return n(e)}function m(t){if(!t)return;const e=Object.keys(t);if(e.length!==0){if(e.length===1){const i=e[0];if(!i)return"";const n=(t[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return e.map(i=>({"@language":i,"@value":(t[i]||[]).join("")}))}}function Ae(t){return Array.isArray(t)?t.map(e=>Ae(e)):typeof t=="string"?t:t.type&&t.type==="Canvas"?t.id:t}function u(t,e=!1){if(!!t)return t.length>1&&!e?t:t[0]||void 0}function ct(t){if(!!t){if(typeof t=="string")return{"@id":t};if("@id"in t){const e={...t};return delete e["@type"],e}return{"@context":"http://iiif.io/api/image/2/context.json","@id":t.id,profile:`http://iiif.io/api/image/2/profiles/${t.profile}.json`}}}function g(t,e){return[["@id",t.id],["@type",e],["format",t.format],["height",t.height],["width",t.width],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0]]}function*y(t){const e=t.provider?yield t.provider[0]:void 0;return[["label",m(t.label)],["metadata",t.metadata&&t.metadata.length?t.metadata.map(i=>({label:m(i.label)||"",value:m(i.value)||""})):void 0],["description",m(t.summary)],["thumbnail",u(yield t.thumbnail)],["navDate",t.navDate],["logo",e?u(e.logo):void 0],["homepage",e?e.homepage:void 0],["attribution",t.requiredStatement?m(t.requiredStatement.value):void 0]]}function*R(t){return[["seeAlso",u(yield t.seeAlso)],["service",u((t.service||[]).map(ct))],["rendering",u(yield t.rendering)],["startCanvas",t.start?t.start.id:void 0]]}const ht={Manifest:function*(t){return[...g(t,"sc:Manifest"),...yield*y(t),...yield*R(t),["sequences",[{"@id":`${t.id}/sequence0`,"@type":"sc:Sequence",canvases:yield t.items}]],["structures",yield t.structures]]},Canvas:function*(t){const i=(yield t.items)[0];return[...g(t,"sc:Canvas"),...yield*y(t),...yield*R(t),["images",i?[i.resources]:void 0],["annotations",t.annotations&&t.annotations.length?u(yield t.annotations):void 0]]},AnnotationPage:function*(t){return[...g(t,"sc:AnnotationList"),...yield*y(t),["resources",t.items&&t.items.length?u(yield t.items):void 0]]},Annotation:function*(t){return[["@id",t.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",Ae(t.target)],["resource",u(yield t.body,!0)]]},ContentResource:function*(t){switch(t.type){case"Image":return[...g(t,"dctypes:Image"),...yield*y(t),...yield*R(t)];case"Text":case"Dataset":default:return[...g(t,void 0),...yield*y(t)]}},AnnotationCollection:function*(t){return[["@id",t.id],["@type","sc:Layer"],["label",m(t.label)]]},Collection:function*(t){return[...g(t,"sc:Collection"),...yield*y(t),...yield*R(t),["members",yield*t.items]]},Range:function*(t){const e=[],i=[];if(t.items)for(const n of t.items){const a=yield n;e.push({"@id":n.id,"@type":n.type,label:a?a.label:void 0,within:t.id}),n.type==="Canvas"&&i.push(n.id)}return[...g(t,"sc:Range"),...yield*y(t),...yield*R(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function E(t){return[["id",t.id],["type",t.type],["format",t.format],["profile",t.profile],["height",t.height],["width",t.width],["duration",t.duration||void 0],["viewingDirection",t.viewingDirection!=="left-to-right"?t.viewingDirection:void 0],["behavior",t.behavior&&t.behavior.length?t.behavior:void 0],["timeMode",t.timeMode],["motivation",t.motivation]]}function s(t){if(!(!t||t.length===0))return t}function Ce(t){if(t&&t.type&&t.type==="ImageService2"){const{id:e,type:i,profile:n,...a}=t;return{"@id":e,"@type":i,profile:n.startsWith("http")?n:`http://iiif.io/api/image/2/${n}.json`,...a}}return t}function Ie(t){if(!(!t||t.length===0))return t.map(Ce)}function*w(t){return[["label",t.label],["metadata",s(t.metadata)],["summary",t.summary],["requiredStatement",t.requiredStatement],["rights",t.rights],["navDate",t.navDate],["language",t.language],["thumbnail",s(yield t.thumbnail)],["placeholderCanvas",yield t.placeholderCanvas],["accompanyingCanvas",yield t.accompanyingCanvas],["provider",s(yield t.provider)]]}function*A(t){return[["seeAlso",s(yield t.seeAlso)],["service",Ie(t.service)],["services",Ie(t.services)],["rendering",s(yield t.rendering)],["supplementary",s(yield t.supplementary)],["homepage",s(yield t.homepage)],["logo",s(yield t.logo)],["partOf",s(yield t.partOf)],["start",t.start]]}var ut=Object.freeze({__proto__:null,emptyAnnotation:nt,emptyAnnotationPage:ve,emptyCanvas:pe,emptyCollection:fe,emptyManifest:ce,emptyRange:he,emptyAgent:ue,defaultEntities:rt,getDefaultEntities:me,normalize:vt,types:F,identifyResource:de,Traverse:M,UNSET:h,UNWRAP:k,serializedFieldsToObject:ye,serialize:ft,languageString2to3:m,serializeConfigPresentation2:ht,serializeConfigPresentation3:{Manifest:function*(t){return[["@context","http://iiif.io/api/presentation/3/context.json"],...E(t),...yield*w(t),...yield*A(t),["items",yield t.items],["structures",s(yield t.structures)],["annotations",s(yield t.annotations)]]},Canvas:function*(t){return[...E(t),...yield*w(t),...yield*A(t),["items",yield t.items],["annotations",s(yield t.annotations)]]},Agent:function*(t){return[["id",t.id],["type","Agent"],["label",t.label],...yield*A(t)]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i,n])=>i!=="items"),...yield*A(t),["items",yield t.items]]},Service:function*(t){return[[k,Ce(t)]]},Annotation:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i])=>i!=="body"),["body",yield t.body]]},ContentResource:function*(t){return[...E(t),...yield*w(t),...yield*A(t),["annotations",s(yield t.annotations)]]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t){return[...E(t),...yield*w(t),...yield*A(t),["items",yield*t.items],["annotations",s(yield t.annotations)]]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...E(t),...yield*w(t),...yield*A(t),["items",e],["annotations",s(yield t.annotations)]]}}}),dt={Presentation2:it,Presentation3:ut};return dt});
{
"name": "@iiif/parser",
"version": "1.0.0",
"version": "1.0.1",
"license": "MIT",

@@ -11,2 +11,5 @@ "main": "dist/cjs/index.js",

],
"resolutions": {
"@iiif/presentation-3": "^1.0.3"
},
"exports": {

@@ -32,2 +35,3 @@ ".": {

"build": "tsc -p . --declaration --emitDeclarationOnly && rollup -c",
"prepublishOnly": "tsc -p . --declaration --emitDeclarationOnly && rollup -c",
"test": "jest"

@@ -37,3 +41,3 @@ },

"@iiif/presentation-2": "^1.0.0",
"@iiif/presentation-3": "^1.0.0",
"@iiif/presentation-3": "^1.0.3",
"@types/geojson": "^7946.0.8"

@@ -40,0 +44,0 @@ },