@iiif/parser
Advanced tools
@@ -1,1 +0,1 @@ | ||
| "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; | ||
| "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 I of r){const o=I?Ge(I):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 _(t){return e=>({...t,...e})}function b(t){return Array.isArray(t)?t:[t]}function lt(t){return t.body&&(t.body=b(t.body)),t.seeAlso&&(t.seeAlso=b(t.seeAlso)),t.body&&(t.body=b(t.body)),t.audience&&(t.audience=b(t.audience)),t.accessibility&&(t.accessibility=b(t.accessibility)),t.motivation&&(t.motivation=b(t.motivation)),t}function vt(t){const e=nt(t),i=fe(),n={},a=at(i),r=st(n),o=new L({collection:[_(j),r("Collection"),a("Collection")],manifest:[_(G),r("Manifest"),a("Manifest")],canvas:[_(N),r("Canvas"),a("Canvas")],annotationPage:[O("AnnotationPage"),_(k),r("AnnotationPage"),a("AnnotationPage")],annotation:[O("Annotation"),lt,r("Annotation"),a("Annotation")],contentResource:[O("ContentResource"),r("ContentResource"),a("ContentResource")],range:[_($),r("Range","Canvas"),a("Range","Canvas")],agent:[_(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 I=pt(t,a.id)||(a.id&&a.type?a:null);if(!I)return c;const o=r(I,t,{isTopLevel:e.id===a.id});let R=o.next();for(;!R.done;){const w=R.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);R=o.next(T)}return R.value===c?c:de(R.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*E(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*E(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*E(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*E(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*E(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*E(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function y(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*A(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*C(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,e,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...y(t),...yield*A(t),...yield*C(t),["items",yield t.items],["structures",s(yield t.structures)],["annotations",s(yield t.annotations)]]:[...y(t),...yield*A(t)]},Canvas:function*(t){return[...y(t),...yield*A(t),...yield*C(t),["items",yield t.items],["annotations",s(yield t.annotations)]]},Agent:function*(t){return[["id",t.id],["type","Agent"],["label",t.label],...yield*C(t)]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i,n])=>i!=="items"),...yield*C(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[...y(t),...yield*A(t),...yield*C(t),["annotations",s(yield t.annotations)]]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t,e,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...y(t),...yield*A(t),...yield*C(t),["items",s(yield t.items)],["annotations",s(yield t.annotations)]]:[...y(t),...yield*A(t)]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...y(t),...yield*A(t),...yield*C(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 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}; | ||
| 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 x{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 x({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",xe="level0",se="level1",oe="level2",Se="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=[Se,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,xe,se,oe],S={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 C of r){const o=C?Ge(C):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(S.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: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:u(S.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 x({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 _(t){return e=>({...t,...e})}function b(t){return Array.isArray(t)?t:[t]}function lt(t){return t.body&&(t.body=b(t.body)),t.seeAlso&&(t.seeAlso=b(t.seeAlso)),t.body&&(t.body=b(t.body)),t.audience&&(t.audience=b(t.audience)),t.accessibility&&(t.accessibility=b(t.accessibility)),t.motivation&&(t.motivation=b(t.motivation)),t}function vt(t){const e=nt(t),i=fe(),n={},a=at(i),r=st(n),o=new L({collection:[_(j),r("Collection"),a("Collection")],manifest:[_(G),r("Manifest"),a("Manifest")],canvas:[_(N),r("Canvas"),a("Canvas")],annotationPage:[P("AnnotationPage"),_(k),r("AnnotationPage"),a("AnnotationPage")],annotation:[P("Annotation"),lt,r("Annotation"),a("Annotation")],contentResource:[P("ContentResource"),r("ContentResource"),a("ContentResource")],range:[_($),r("Range","Canvas"),a("Range","Canvas")],agent:[_(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 C=pt(t,a.id)||(a.id&&a.type?a:null);if(!C)return c;const o=r(C,t,{isTopLevel:e.id===a.id});let R=o.next();for(;!R.done;){const w=R.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);R=o.next(T)}return R.value===c?c:de(R.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*E(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*E(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*E(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*E(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*E(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*E(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function y(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*A(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*I(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,e,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...y(t),...yield*A(t),...yield*I(t),["items",yield t.items],["structures",s(yield t.structures)],["annotations",s(yield t.annotations)]]:[...y(t),...yield*A(t)]},Canvas:function*(t){return[...y(t),...yield*A(t),...yield*I(t),["items",yield t.items],["annotations",s(yield t.annotations)]]},Agent:function*(t){return[["id",t.id],["type","Agent"],["label",t.label],...yield*I(t)]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i,n])=>i!=="items"),...yield*I(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[...y(t),...yield*A(t),...yield*I(t),["annotations",s(yield t.annotations)]]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t,e,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...y(t),...yield*A(t),...yield*I(t),["items",s(yield t.items)],["annotations",s(yield t.annotations)]]:[...y(t),...yield*A(t)]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...y(t),...yield*A(t),...yield*I(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}; |
+4
-1
@@ -309,3 +309,6 @@ import * as _iiif_presentation_3 from '@iiif/presentation-3'; | ||
| 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 SerializerContext = { | ||
| isTopLevel?: boolean; | ||
| }; | ||
| declare type Serializer<Type extends NormalizedEntity> = (entity: Type, state: any, context: SerializerContext) => Generator<Reference | Reference[], typeof UNSET | Field[], any>; | ||
| declare type SerializeConfig = { | ||
@@ -312,0 +315,0 @@ Collection?: Serializer<CollectionNormalized>; |
@@ -1,1 +0,1 @@ | ||
| (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}); | ||
| (function(d,_){typeof exports=="object"&&typeof module!="undefined"?module.exports=_():typeof define=="function"&&define.amd?define(_):(d=typeof globalThis!="undefined"?globalThis:d||self,d.IIIFParser=_())})(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 _(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(_(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",Le="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",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,Le,z,W,we,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 E of r){const o=E?Ge(E):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:_,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 b(t){return e=>({...t,...e})}function R(t){return Array.isArray(t)?t:[t]}function lt(t){return t.body&&(t.body=R(t.body)),t.seeAlso&&(t.seeAlso=R(t.seeAlso)),t.body&&(t.body=R(t.body)),t.audience&&(t.audience=R(t.audience)),t.accessibility&&(t.accessibility=R(t.accessibility)),t.motivation&&(t.motivation=R(t.motivation)),t}function vt(t){const e=le(t),i=me(),n={},a=at(i),r=st(n),o=new M({collection:[b(fe),r("Collection"),a("Collection")],manifest:[b(ce),r("Manifest"),a("Manifest")],canvas:[b(pe),r("Canvas"),a("Canvas")],annotationPage:[D("AnnotationPage"),b(ve),r("AnnotationPage"),a("AnnotationPage")],annotation:[D("Annotation"),lt,r("Annotation"),a("Annotation")],contentResource:[D("ContentResource"),r("ContentResource"),a("ContentResource")],range:[b(he),r("Range","Canvas"),a("Range","Canvas")],agent:[b(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 E=pt(t,a.id)||(a.id&&a.type?a:null);if(!E)return h;const o=r(E,t,{isTopLevel:e.id===a.id});let w=o.next();for(;!w.done;){const x=w.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);w=o.next(N)}return w.value===h?h:ye(w.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*L(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*L(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*L(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*L(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*L(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*L(t),["canvases",i.length===e.length?i:void 0],["members",i.length!==e.length?e:void 0]]}};function A(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*C(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*I(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,e,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...A(t),...yield*C(t),...yield*I(t),["items",yield t.items],["structures",s(yield t.structures)],["annotations",s(yield t.annotations)]]:[...A(t),...yield*C(t)]},Canvas:function*(t){return[...A(t),...yield*C(t),...yield*I(t),["items",yield t.items],["annotations",s(yield t.annotations)]]},Agent:function*(t){return[["id",t.id],["type","Agent"],["label",t.label],...yield*I(t)]},AnnotationPage:function*(t){return[...Object.entries(t).map(([i,n])=>[i,Array.isArray(n)?s(n):n]).filter(([i,n])=>i!=="items"),...yield*I(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[...A(t),...yield*C(t),...yield*I(t),["annotations",s(yield t.annotations)]]},AnnotationCollection:function*(t){return[["id",t.id],["type","AnnotationCollection"],["label",t.label]]},Collection:function*(t,e,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...A(t),...yield*C(t),...yield*I(t),["items",s(yield t.items)],["annotations",s(yield t.annotations)]]:[...A(t),...yield*C(t)]},Range:function*(t){const e=[];for(const i of t.items)i.type==="Range"?e.push(yield i):e.push(i);return[...A(t),...yield*C(t),...yield*I(t),["items",e],["annotations",s(yield t.annotations)]]}}}),dt={Presentation2:it,Presentation3:ut};return dt}); |
+2
-2
| { | ||
| "name": "@iiif/parser", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "license": "MIT", | ||
@@ -36,3 +36,3 @@ "main": "dist/cjs/index.js", | ||
| "@iiif/presentation-2": "^1.0.1", | ||
| "@iiif/presentation-3": "^1.0.3", | ||
| "@iiif/presentation-3": "^1.0.4", | ||
| "@types/geojson": "^7946.0.8" | ||
@@ -39,0 +39,0 @@ }, |
| (function (c, f) { | ||
| typeof exports == "object" && typeof module != "undefined" ? f(exports) : typeof define == "function" && define.amd ? define(["exports"], f) : (c = typeof globalThis != "undefined" ? globalThis : c || self, f(c.IIIFValidator = {})) | ||
| })(this, function (c) { | ||
| "use strict"; | ||
| var f = require("./compile"), p = require("./compile/resolve"), A = require("./cache"), | ||
| v = require("./compile/schema_obj"), I = require("fast-json-stable-stringify"), | ||
| P = require("./compile/formats"), M = require("./compile/rules"), $ = require("./data"), | ||
| _ = require("./compile/util"); | ||
| module.exports = s, s.prototype.validate = x, s.prototype.compile = C, s.prototype.addSchema = E, s.prototype.addMetaSchema = D, s.prototype.validateSchema = z, s.prototype.getSchema = U, s.prototype.removeSchema = B, s.prototype.addFormat = Y, s.prototype.errorsText = H, s.prototype._addSchema = Z, s.prototype._compile = L, s.prototype.compileAsync = require("./compile/async"); | ||
| var d = require("./keyword"); | ||
| s.prototype.addKeyword = d.add, s.prototype.getKeyword = d.get, s.prototype.removeKeyword = d.remove, s.prototype.validateKeyword = d.validate; | ||
| var S = require("./compile/error_classes"); | ||
| s.ValidationError = S.Validation, s.MissingRefError = S.MissingRef, s.$dataMetaSchema = $; | ||
| var y = "http://json-schema.org/draft-07/schema", | ||
| b = ["removeAdditional", "useDefaults", "coerceTypes", "strictDefaults"], T = ["/properties"]; | ||
| function s(e) { | ||
| if (!(this instanceof s)) return new s(e); | ||
| e = this._opts = _.copy(e) || {}, ee(this), this._schemas = {}, this._refs = {}, this._fragments = {}, this._formats = P(e.format), this._cache = e.cache || new A, this._loadingSchemas = {}, this._compilations = [], this.RULES = M(), this._getId = N(e), e.loopRequired = e.loopRequired || 1 / 0, e.errorDataPath == "property" && (e._errorDataPathProperty = !0), e.serialize === void 0 && (e.serialize = I), this._metaOpts = X(this), e.formats && Q(this), e.keywords && W(this), J(this), typeof e.meta == "object" && this.addMetaSchema(e.meta), e.nullable && this.addKeyword("nullable", {metaSchema: {type: "boolean"}}), K(this) | ||
| } | ||
| function x(e, t) { | ||
| var r; | ||
| if (typeof e == "string") { | ||
| if (r = this.getSchema(e), !r) throw new Error('no schema with key or ref "' + e + '"') | ||
| } else { | ||
| var i = this._addSchema(e); | ||
| r = i.validate || this._compile(i) | ||
| } | ||
| var a = r(t); | ||
| return r.$async !== !0 && (this.errors = r.errors), a | ||
| } | ||
| function C(e, t) { | ||
| var r = this._addSchema(e, void 0, t); | ||
| return r.validate || this._compile(r) | ||
| } | ||
| function E(e, t, r, i) { | ||
| if (Array.isArray(e)) { | ||
| for (var a = 0; a < e.length; a++) this.addSchema(e[a], void 0, r, i); | ||
| return this | ||
| } | ||
| var n = this._getId(e); | ||
| if (n !== void 0 && typeof n != "string") throw new Error("schema id must be string"); | ||
| return t = p.normalizeId(t || n), j(this, t), this._schemas[t] = this._addSchema(e, r, i, !0), this | ||
| } | ||
| function D(e, t, r) { | ||
| return this.addSchema(e, t, r, !0), this | ||
| } | ||
| function z(e, t) { | ||
| var r = e.$schema; | ||
| if (r !== void 0 && typeof r != "string") throw new Error("$schema must be a string"); | ||
| if (r = r || this._opts.defaultMeta || V(this), !r) return this.logger.warn("meta-schema not available"), this.errors = null, !0; | ||
| var i = this.validate(r, e); | ||
| if (!i && t) { | ||
| var a = "schema is invalid: " + this.errorsText(); | ||
| if (this._opts.validateSchema == "log") this.logger.error(a); else throw new Error(a) | ||
| } | ||
| return i | ||
| } | ||
| function V(e) { | ||
| var t = e._opts.meta; | ||
| return e._opts.defaultMeta = typeof t == "object" ? e._getId(t) || t : e.getSchema(y) ? y : void 0, e._opts.defaultMeta | ||
| } | ||
| function U(e) { | ||
| var t = w(this, e); | ||
| switch (typeof t) { | ||
| case"object": | ||
| return t.validate || this._compile(t); | ||
| case"string": | ||
| return this.getSchema(t); | ||
| case"undefined": | ||
| return F(this, e) | ||
| } | ||
| } | ||
| function F(e, t) { | ||
| var r = p.schema.call(e, {schema: {}}, t); | ||
| if (r) { | ||
| var i = r.schema, a = r.root, n = r.baseId, o = f.call(e, i, a, void 0, n); | ||
| return e._fragments[t] = new v({ref: t, fragment: !0, schema: i, root: a, baseId: n, validate: o}), o | ||
| } | ||
| } | ||
| function w(e, t) { | ||
| return t = p.normalizeId(t), e._schemas[t] || e._refs[t] || e._fragments[t] | ||
| } | ||
| function B(e) { | ||
| if (e instanceof RegExp) return h(this, this._schemas, e), h(this, this._refs, e), this; | ||
| switch (typeof e) { | ||
| case"undefined": | ||
| return h(this, this._schemas), h(this, this._refs), this._cache.clear(), this; | ||
| case"string": | ||
| var t = w(this, e); | ||
| return t && this._cache.del(t.cacheKey), delete this._schemas[e], delete this._refs[e], this; | ||
| case"object": | ||
| var r = this._opts.serialize, i = r ? r(e) : e; | ||
| this._cache.del(i); | ||
| var a = this._getId(e); | ||
| a && (a = p.normalizeId(a), delete this._schemas[a], delete this._refs[a]) | ||
| } | ||
| return this | ||
| } | ||
| function h(e, t, r) { | ||
| for (var i in t) { | ||
| var a = t[i]; | ||
| !a.meta && (!r || r.test(i)) && (e._cache.del(a.cacheKey), delete t[i]) | ||
| } | ||
| } | ||
| function Z(e, t, r, i) { | ||
| if (typeof e != "object" && typeof e != "boolean") throw new Error("schema should be object or boolean"); | ||
| var a = this._opts.serialize, n = a ? a(e) : e, o = this._cache.get(n); | ||
| if (o) return o; | ||
| i = i || this._opts.addUsedSchema !== !1; | ||
| var l = p.normalizeId(this._getId(e)); | ||
| l && i && j(this, l); | ||
| var O = this._opts.validateSchema !== !1 && !t, q; | ||
| O && !(q = l && l == p.normalizeId(e.$schema)) && this.validateSchema(e, !0); | ||
| var ce = p.ids.call(this, e), m = new v({id: l, schema: e, localRefs: ce, cacheKey: n, meta: r}); | ||
| return l[0] != "#" && i && (this._refs[l] = m), this._cache.put(n, m), O && q && this.validateSchema(e, !0), m | ||
| } | ||
| function L(e, t) { | ||
| if (e.compiling) return e.validate = a, a.schema = e.schema, a.errors = null, a.root = t || a, e.schema.$async === !0 && (a.$async = !0), a; | ||
| e.compiling = !0; | ||
| var r; | ||
| e.meta && (r = this._opts, this._opts = this._metaOpts); | ||
| var i; | ||
| try { | ||
| i = f.call(this, e.schema, t, e.localRefs) | ||
| } catch (n) { | ||
| throw delete e.validate, n | ||
| } finally { | ||
| e.compiling = !1, e.meta && (this._opts = r) | ||
| } | ||
| return e.validate = i, e.refs = i.refs, e.refVal = i.refVal, e.root = i.root, i; | ||
| function a() { | ||
| var n = e.validate, o = n.apply(this, arguments); | ||
| return a.errors = n.errors, o | ||
| } | ||
| } | ||
| function N(e) { | ||
| switch (e.schemaId) { | ||
| case"auto": | ||
| return k; | ||
| case"id": | ||
| return G; | ||
| default: | ||
| return R | ||
| } | ||
| } | ||
| function G(e) { | ||
| return e.$id && this.logger.warn("schema $id ignored", e.$id), e.id | ||
| } | ||
| function R(e) { | ||
| return e.id && this.logger.warn("schema id ignored", e.id), e.$id | ||
| } | ||
| function k(e) { | ||
| if (e.$id && e.id && e.$id != e.id) throw new Error("schema $id is different from id"); | ||
| return e.$id || e.id | ||
| } | ||
| function H(e, t) { | ||
| if (e = e || this.errors, !e) return "No errors"; | ||
| t = t || {}; | ||
| for (var r = t.separator === void 0 ? ", " : t.separator, i = t.dataVar === void 0 ? "data" : t.dataVar, a = "", n = 0; n < e.length; n++) { | ||
| var o = e[n]; | ||
| o && (a += i + o.dataPath + " " + o.message + r) | ||
| } | ||
| return a.slice(0, -r.length) | ||
| } | ||
| function Y(e, t) { | ||
| return typeof t == "string" && (t = new RegExp(t)), this._formats[e] = t, this | ||
| } | ||
| function J(e) { | ||
| var t; | ||
| if (e._opts.$data && (t = require("./refs/data.json"), e.addMetaSchema(t, t.$id, !0)), e._opts.meta !== !1) { | ||
| var r = require("./refs/json-schema-draft-07.json"); | ||
| e._opts.$data && (r = $(r, T)), e.addMetaSchema(r, y, !0), e._refs["http://json-schema.org/schema"] = y | ||
| } | ||
| } | ||
| function K(e) { | ||
| var t = e._opts.schemas; | ||
| if (!!t) if (Array.isArray(t)) e.addSchema(t); else for (var r in t) e.addSchema(t[r], r) | ||
| } | ||
| function Q(e) { | ||
| for (var t in e._opts.formats) { | ||
| var r = e._opts.formats[t]; | ||
| e.addFormat(t, r) | ||
| } | ||
| } | ||
| function W(e) { | ||
| for (var t in e._opts.keywords) { | ||
| var r = e._opts.keywords[t]; | ||
| e.addKeyword(t, r) | ||
| } | ||
| } | ||
| function j(e, t) { | ||
| if (e._schemas[t] || e._refs[t]) throw new Error('schema with key or id "' + t + '" already exists') | ||
| } | ||
| function X(e) { | ||
| for (var t = _.copy(e._opts), r = 0; r < b.length; r++) delete t[b[r]]; | ||
| return t | ||
| } | ||
| function ee(e) { | ||
| var t = e._opts.logger; | ||
| if (t === !1) e.logger = {log: u, warn: u, error: u}; else { | ||
| if (t === void 0 && (t = console), !(typeof t == "object" && t.log && t.warn && t.error)) throw new Error("logger must implement log, warn and error methods"); | ||
| e.logger = t | ||
| } | ||
| } | ||
| function u() { | ||
| } | ||
| var te = Object.freeze({__proto__: null}), re = "http://json-schema.org/schema#", ae = "IIIF Classes", ie = { | ||
| id: {type: "string", format: "uri", pattern: "^http.*$", title: "Id must be presesnt and must be a URI"}, | ||
| lngString: { | ||
| title: "Language string, must have a language and value must be an array.", | ||
| type: "object", | ||
| patternProperties: { | ||
| "^[a-zA-Z-][a-zA-Z-]*$": {type: "array", items: {type: "string"}}, | ||
| "^none$": {type: "array", items: {type: "string"}} | ||
| }, | ||
| additionalProperties: !1 | ||
| }, | ||
| keyValueString: { | ||
| type: "object", | ||
| properties: {label: {$ref: "#/types/lngString"}, value: {$ref: "#/types/lngString"}}, | ||
| required: ["label", "value"] | ||
| }, | ||
| BCP47: {anyOf: [{type: "string", pattern: "^[a-zA-Z-][a-zA-Z-]*$"}, {type: "string", pattern: "^none$"}]}, | ||
| format: {type: "string", pattern: "^[a-z][a-z]*/.*$"}, | ||
| class: { | ||
| title: "Classes MUST have an id and type property and MAY have a label.", | ||
| type: "object", | ||
| properties: {id: {$ref: "#/types/id"}, type: {type: "string"}, label: {$ref: "#/types/lngString"}}, | ||
| required: ["id", "type"] | ||
| }, | ||
| duration: {type: "number", minimum: 0}, | ||
| external: { | ||
| type: "array", | ||
| items: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: {format: {$ref: "#/types/format"}, profile: {type: "string"}} | ||
| }] | ||
| } | ||
| } | ||
| }, se = { | ||
| metadata: {type: "array", items: {$ref: "#/types/keyValueString"}}, | ||
| homepage: { | ||
| type: "array", | ||
| items: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| format: {$ref: "#/types/format"}, | ||
| language: {type: "array", items: {$ref: "#/types/BCP47"}} | ||
| } | ||
| }] | ||
| } | ||
| }, | ||
| seeAlso: {$ref: "#/types/external"}, | ||
| partOf: {type: "array", items: {$ref: "#/types/class"}}, | ||
| choice: { | ||
| type: "object", | ||
| properties: {type: {type: "string", const: "Choice"}, items: {type: "array"}}, | ||
| required: ["type", "items"] | ||
| }, | ||
| resource: { | ||
| oneOf: [{ | ||
| title: "Annotation bodies MUST have an id and type property.", | ||
| type: "object", | ||
| properties: { | ||
| id: {$ref: "#/types/id"}, | ||
| type: {type: "string"}, | ||
| height: {type: "integer"}, | ||
| width: {type: "integer"}, | ||
| duration: {$ref: "#/types/duration"}, | ||
| language: {type: "string"}, | ||
| service: {$ref: "#/classes/service"}, | ||
| format: {$ref: "#/types/format"}, | ||
| label: {$ref: "#/types/lngString"} | ||
| }, | ||
| required: ["id", "type"] | ||
| }, { | ||
| title: "Annotation bodies which are TextualBody MUST have an type and value property.", | ||
| type: "object", | ||
| properties: { | ||
| id: {$ref: "#/types/id"}, | ||
| type: {type: "string", pattern: "^TextualBody$"}, | ||
| value: {type: "string"}, | ||
| format: {$ref: "#/types/format"}, | ||
| language: {type: "string"} | ||
| }, | ||
| required: ["value", "type"] | ||
| }] | ||
| }, | ||
| imgSvr: { | ||
| allOf: [{$ref: "#/classes/service"}, { | ||
| properties: { | ||
| profile: {type: "string"}, | ||
| "@id": {$ref: "#/types/id"}, | ||
| "@type": {type: "string"} | ||
| } | ||
| }] | ||
| }, | ||
| service: { | ||
| type: "array", | ||
| items: { | ||
| oneOf: [{ | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: {profile: {type: "string"}, service: {$ref: "#/classes/service"}} | ||
| }] | ||
| }, { | ||
| type: "object", | ||
| properties: { | ||
| "@id": {$ref: "#/types/id"}, | ||
| "@type": {type: "string"}, | ||
| profile: {type: "string"}, | ||
| service: {$ref: "#/classes/service"} | ||
| }, | ||
| required: ["@id", "@type"] | ||
| }] | ||
| } | ||
| }, | ||
| rights: { | ||
| title: "Rights URI isn't from either Creative Commons or RightsStatements.org. Both require http links.", | ||
| oneOf: [{type: "string", format: "uri", pattern: "http://creativecommons.org/licenses/.*"}, { | ||
| type: "string", | ||
| format: "uri", | ||
| pattern: "http://creativecommons.org/publicdomain/.*" | ||
| }, {type: "string", format: "uri", pattern: "http://rightsstatements.org/vocab/.*"}] | ||
| }, | ||
| navDate: {type: "string", format: "date-time"}, | ||
| viewingDirection: { | ||
| anyOf: [{type: "string", pattern: "^left-to-right$"}, { | ||
| type: "string", | ||
| pattern: "^right-to-left$" | ||
| }, {type: "string", pattern: "^top-to-bottom$"}, {type: "string", pattern: "^bottom-to-top$"}] | ||
| }, | ||
| behavior: { | ||
| type: "array", | ||
| items: { | ||
| anyOf: [{type: "string", pattern: "^auto-advance$"}, { | ||
| type: "string", | ||
| pattern: "^no-auto-advance$" | ||
| }, {type: "string", pattern: "^repeat$"}, {type: "string", pattern: "^no-repeat$"}, { | ||
| type: "string", | ||
| pattern: "^unordered$" | ||
| }, {type: "string", pattern: "^individuals$"}, { | ||
| type: "string", | ||
| pattern: "^continuous$" | ||
| }, {type: "string", pattern: "^paged$"}, {type: "string", pattern: "^facing-pages$"}, { | ||
| type: "string", | ||
| pattern: "^non-paged$" | ||
| }, {type: "string", pattern: "^multi-part$"}, {type: "string", pattern: "^together$"}, { | ||
| type: "string", | ||
| pattern: "^sequence$" | ||
| }, {type: "string", pattern: "^thumbnail-nav$"}, {type: "string", pattern: "^no-nav$"}, { | ||
| type: "string", | ||
| pattern: "^hidden$" | ||
| }] | ||
| } | ||
| }, | ||
| provider: { | ||
| type: "array", | ||
| items: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| type: {type: "string", pattern: "^Agent$"}, | ||
| homepage: {$ref: "#/classes/homepage"}, | ||
| logo: {type: "array", items: {$ref: "#/classes/resource"}}, | ||
| seeAlso: {$ref: "#/classes/seeAlso"} | ||
| } | ||
| }] | ||
| } | ||
| }, | ||
| collection: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| type: { | ||
| type: "string", | ||
| pattern: "^Collection", | ||
| title: "Are you validating a collection?", | ||
| description: "If you are validating a manifest, you may get this error if there are errors in the manifest. The validator first validates it as a manifest and if that fails it will try and validate it using the other types." | ||
| }, | ||
| metadata: {$ref: "#/classes/metadata"}, | ||
| summary: {$ref: "#/types/lngString"}, | ||
| requiredStatement: {$ref: "#/types/keyValueString"}, | ||
| rights: {$ref: "#/classes/rights"}, | ||
| navDate: {$ref: "#/classes/navDate"}, | ||
| provider: {$ref: "#/classes/provider"}, | ||
| seeAlso: {$ref: "#/classes/seeAlso"}, | ||
| services: {$ref: "#/classes/service"}, | ||
| thumbnail: {type: "array", items: {$ref: "#/classes/resource"}}, | ||
| homepage: {$ref: "#/classes/homepage"}, | ||
| behavior: {$ref: "#/classes/behavior"}, | ||
| partOf: {$ref: "#/classes/partOf"}, | ||
| items: { | ||
| type: "array", | ||
| items: {oneOf: [{$ref: "#/classes/manifest"}, {$ref: "#/classes/collection"}]} | ||
| }, | ||
| annotations: {type: "array", items: {$ref: "#/classes/annotationPage"}} | ||
| }, | ||
| required: ["id", "type", "label"] | ||
| }] | ||
| }, | ||
| manifest: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", additionalProperties: !1, properties: { | ||
| "@context": { | ||
| oneOf: [{ | ||
| type: "array", | ||
| items: {type: "string", format: "uri", pattern: "^http.*$"} | ||
| }, {type: "string", const: "http://iiif.io/api/presentation/3/context.json"}] | ||
| }, | ||
| id: {$ref: "#/types/id"}, | ||
| label: {$ref: "#/types/lngString"}, | ||
| type: {type: "string", pattern: "^Manifest"}, | ||
| metadata: {$ref: "#/classes/metadata"}, | ||
| summary: {$ref: "#/types/lngString"}, | ||
| requiredStatement: {$ref: "#/types/keyValueString"}, | ||
| rendering: {$ref: "#/types/external"}, | ||
| service: {$ref: "#/classes/service"}, | ||
| services: {$ref: "#/classes/service"}, | ||
| viewingDirection: {$ref: "#/classes/viewingDirection"}, | ||
| rights: {$ref: "#/classes/rights"}, | ||
| start: {}, | ||
| logo: {type: "array", items: {$ref: "#/classes/resource"}}, | ||
| navDate: {$ref: "#/classes/navDate"}, | ||
| provider: {$ref: "#/classes/provider"}, | ||
| seeAlso: {$ref: "#/classes/seeAlso"}, | ||
| thumbnail: {type: "array", items: {$ref: "#/classes/resource"}}, | ||
| homepage: {$ref: "#/classes/homepage"}, | ||
| behavior: {$ref: "#/classes/behavior"}, | ||
| partOf: {$ref: "#/classes/partOf"}, | ||
| items: {type: "array", items: {$ref: "#/classes/canvas"}}, | ||
| structures: {type: "array", items: {$ref: "#/classes/range"}}, | ||
| annotations: {type: "array", items: {$ref: "#/classes/annotationPage"}} | ||
| }, required: ["id", "type", "label"] | ||
| }] | ||
| }, | ||
| canvas: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| type: {type: "string", pattern: "^Canvas$"}, | ||
| height: {type: "integer"}, | ||
| width: {type: "integer"}, | ||
| duration: {$ref: "#/types/duration"}, | ||
| metadata: {$ref: "#/classes/metadata"}, | ||
| summary: {$ref: "#/types/lngString"}, | ||
| requiredStatement: {$ref: "#/types/keyValueString"}, | ||
| rights: {$ref: "#/classes/rights"}, | ||
| navDate: {$ref: "#/classes/navDate"}, | ||
| provider: {$ref: "#/classes/provider"}, | ||
| seeAlso: {$ref: "#/classes/seeAlso"}, | ||
| thumbnail: {type: "array", items: {$ref: "#/classes/resource"}}, | ||
| homepage: {$ref: "#/classes/homepage"}, | ||
| behavior: {$ref: "#/classes/behavior"}, | ||
| partOf: {$ref: "#/classes/partOf"}, | ||
| items: {type: "array", items: {$ref: "#/classes/annotationPage"}}, | ||
| annotations: {type: "array", items: {$ref: "#/classes/annotationPage"}} | ||
| }, | ||
| anyOf: [{required: ["width"]}, {required: ["height"]}, {required: ["duration"]}], | ||
| dependencies: {width: ["height"], height: ["width"]} | ||
| }] | ||
| }, | ||
| annotationCollection: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| type: {type: "string", pattern: "^AnnotationCollection$"}, | ||
| partOf: {$ref: "#/classes/partOf"}, | ||
| next: {$ref: "#/classes/annotationPage"}, | ||
| first: {$ref: "#/classes/annotationPage"}, | ||
| last: {$ref: "#/classes/annotationPage"}, | ||
| items: {type: "array", items: {$ref: "#/classes/annotation"}} | ||
| } | ||
| }] | ||
| }, | ||
| annotationPage: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| id: {$ref: "#/types/id"}, | ||
| "@context": {}, | ||
| type: {type: "string", pattern: "^AnnotationPage$"}, | ||
| items: {type: "array", items: {$ref: "#/classes/annotation"}} | ||
| }, | ||
| additionalProperties: !1 | ||
| }] | ||
| }, | ||
| annotation: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| type: {type: "string", pattern: "^Annotation$"}, | ||
| motivation: {oneOf: [{type: "string"}, {type: "array", items: {type: "string"}}]}, | ||
| body: { | ||
| anyOf: [{type: "object", $ref: "#/classes/resource"}, { | ||
| type: "object", | ||
| allOf: [{$ref: "#/classes/choice"}, { | ||
| properties: { | ||
| items: { | ||
| type: "array", | ||
| items: {$ref: "#/classes/resource"} | ||
| } | ||
| }, required: ["items"] | ||
| }] | ||
| }, {type: "array", items: {type: "object"}}] | ||
| }, | ||
| target: { | ||
| anyOf: [{$ref: "#/classes/annoTarget"}, { | ||
| type: "array", | ||
| items: {$ref: "#/classes/annoTarget"} | ||
| }] | ||
| } | ||
| }, | ||
| required: ["target", "type"] | ||
| }] | ||
| }, | ||
| annoTarget: { | ||
| oneOf: [{ | ||
| type: "string", | ||
| format: "uri", | ||
| pattern: "^http.*$" | ||
| }, {$ref: "#/classes/specificResource"}] | ||
| }, | ||
| specificResource: { | ||
| type: "object", | ||
| properties: { | ||
| id: {$ref: "#/types/id"}, | ||
| type: {type: "string", pattern: "^SpecificResource$"}, | ||
| format: {$ref: "#/types/format"}, | ||
| accessibility: {type: "string"}, | ||
| source: {$ref: "#/types/id"}, | ||
| selector: { | ||
| oneOf: [{$ref: "#/classes/annoSelector"}, { | ||
| type: "array", | ||
| items: {$ref: "#/classes/annoSelector"} | ||
| }] | ||
| } | ||
| }, | ||
| required: ["source", "selector"] | ||
| }, | ||
| annoSelector: { | ||
| oneOf: [{type: "string", format: "uri", pattern: "^http.*$"}, { | ||
| type: "object", | ||
| properties: {type: {type: "string"}, t: {$ref: "#/types/duration"}}, | ||
| required: ["type"] | ||
| }] | ||
| }, | ||
| range: { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: { | ||
| type: {type: "string", pattern: "^Range$"}, | ||
| supplementary: {$ref: "#/classes/annotationCollection"}, | ||
| items: { | ||
| type: "array", | ||
| items: { | ||
| oneOf: [{$ref: "#/classes/specificResource"}, { | ||
| allOf: [{$ref: "#/types/class"}, { | ||
| type: "object", | ||
| properties: {type: {type: "string", pattern: "^Canvas$"}} | ||
| }] | ||
| }, {$ref: "#/classes/range"}] | ||
| } | ||
| } | ||
| } | ||
| }] | ||
| } | ||
| }, ne = "http://iiif.io/api/presentation/3/schema.json", | ||
| oe = [{$ref: "#/classes/manifest"}, {$ref: "#/classes/collection"}, {$ref: "#/classes/annotationPage"}], | ||
| pe = {$schema: re, $comment: ae, types: ie, classes: se, $id: ne, oneOf: oe}; | ||
| const g = e => ({$id: `http://iiif.io/api/presentation/3/${e}.json`, $ref: `schema.json#/classes/${e}`}); | ||
| class le { | ||
| ajv; | ||
| validators; | ||
| constructor(t = {}) { | ||
| this.ajv = new te({ | ||
| logger: !1, | ||
| schemas: [pe, g("collection"), g("manifest"), g("annotationPage")], ...t | ||
| }), this.validators = { | ||
| all: this.ajv.getSchema("http://iiif.io/api/presentation/3/schema.json"), | ||
| manifest: this.ajv.getSchema("http://iiif.io/api/presentation/3/manifest.json"), | ||
| collection: this.ajv.getSchema("http://iiif.io/api/presentation/3/collection.json"), | ||
| annotationPage: this.ajv.getSchema("http://iiif.io/api/presentation/3/annotationPage.json") | ||
| } | ||
| } | ||
| validate(t) { | ||
| return this.validators.all(t) | ||
| } | ||
| validateManifest(t) { | ||
| return this.validators.manifest(t) | ||
| } | ||
| validateCollection(t) { | ||
| return this.validators.collection(t) | ||
| } | ||
| validateAnnotationPage(t) { | ||
| return this.validators.annotationPage(t) | ||
| } | ||
| validateCustom(t, r) { | ||
| return this.validators[t] || (this.ajv.addSchema(g(t)), this.validators[t] = this.ajv.getSchema(`http://iiif.io/api/presentation/3/${t}.json`)), this.validators[t](r) | ||
| } | ||
| } | ||
| c.Validator = le, Object.defineProperty(c, "__esModule", {value: !0}) | ||
| }); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
7
-12.5%176049
-14.03%12
-7.69%1028
-36.93%1
Infinity%Updated