@iiif/parser
Advanced tools
@@ -1,2 +0,2 @@ | ||
| "use strict";var e=Object.defineProperty,t=(t,i,r)=>(((t,i,r)=>{i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r})(t,"symbol"!=typeof i?i+"":i,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=[];Object.freeze(i);const r={id:"https://iiif-parser/annotation",type:"Annotation",behavior:i,label:null,thumbnail:i,summary:null,requiredStatement:null,metadata:i,seeAlso:i,homepage:i,logo:i,rendering:i,service:i,accessibility:i,audience:i,body:i,bodyValue:null,canonical:null,created:null,creator:i,generated:null,generator:i,modified:null,motivation:i,rights:i,stylesheet:null,target:i,timeMode:void 0,via:i,partOf:i},n={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:i,motivation:null,label:null,thumbnail:i,summary:null,requiredStatement:null,metadata:i,rights:null,provider:i,items:i,seeAlso:i,homepage:i,logo:i,rendering:i,service:i},a={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:i,motivation:null,thumbnail:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:i,rights:null,navDate:null,provider:i,items:i,annotations:i,seeAlso:i,homepage:i,logo:i,partOf:i,rendering:i,service:i,duration:0,height:0,width:0},s={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:i,motivation:null,thumbnail:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:i,rights:null,navDate:null,provider:i,items:i,annotations:i,seeAlso:i,homepage:i,logo:i,partOf:i,rendering:i,service:i,services:i},o={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:i,behavior:i,homepage:i,items:i,label:null,logo:i,metadata:i,motivation:null,navDate:null,provider:i,partOf:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:i,requiredStatement:null,rights:null,seeAlso:i,service:i,services:i,start:null,structures:i,summary:null,thumbnail:i,viewingDirection:"left-to-right"},l={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:i,motivation:null,thumbnail:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:i,rights:null,navDate:null,provider:i,items:i,annotations:i,seeAlso:i,homepage:i,logo:i,partOf:i,rendering:i,service:i,start:null,supplementary:null,viewingDirection:"left-to-right"},c={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:i,seeAlso:i,homepage:i};function p(e){return Array.isArray(e)?e:[e]}const u=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function v(e){if(null==e)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if("object"!=typeof e)throw new Error(typeof e+" is not a valid entity");if("string"==typeof e.type){const t=u.indexOf(e.type);if(-1!==t)return u[t]}if(e.profile)return"Service";throw new Error("Resource type is not known")}class h{constructor(e,i={}){t(this,"traversals"),t(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new h({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((e=>this.traverseType(e,this.traversals.contentResource)))),e.provider&&(e.provider=e.provider.map((e=>this.traverseAgent(e)))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.service&&(e.service=p(e.service).map((e=>this.traverseType(e,this.traversals.service)))),e.services&&(e.services=e.services.map((e=>this.traverseType(e,this.traversals.service)))),e.logo&&(e.logo=e.logo.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.homepage&&(e.homepage=e.homepage.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.partOf&&(e.partOf=e.partOf.map((e=>"string"!=typeof e&&e.type?"Canvas"===e.type?this.traverseType(e,this.traversals.canvas):"AnnotationCollection"===e.type?this.traverseType(e,this.traversals.annotationCollection):this.traverseType(e,this.traversals.contentResource):this.traverseType(e,this.traversals.contentResource)))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.supplementary&&(e.supplementary=e.supplementary.map((e=>this.traverseType(e,this.traversals.contentResource)))),e}traverseCollectionItems(e){return e.items&&e.items.map((e=>"Collection"===e.type?this.traverseCollection(e):this.traverseManifest(e))),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((e=>this.traverseCanvas(e)))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseAnnotationPage(e))),e}traverseInlineAnnotationPages(e){return"string"!=typeof e&&e?(e.annotations&&(e.annotations=e.annotations.map((e=>this.traverseAnnotationPage(e)))),e):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((e=>this.traverseAnnotation(e)))),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((e=>this.traverseContentResource(e))):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseCanvas(e.posterCanvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseCanvas(e.placeholderCanvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseCanvas(e.accompanyingCanvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return"string"!=typeof e&&e?(e&&e.service&&(e.service=p(e.service||[]).map((e=>this.traverseType(e,this.traversals.service)))),e):e}traverseContentResource(e){return"Choice"===e.type&&(e.items=e.items.map((e=>this.traverseContentResource(e)))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map((e=>"string"==typeof e?this.traverseCanvas({id:e,type:"Canvas"}):"Manifest"===e.type?this.traverseManifest(e):this.traverseRange(e)))),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,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const t=v(e);switch(t){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 ${t}`)}}}const f=["sc:Collection","sc:Manifest","sc:Canvas","sc:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];class m{constructor(e,i={}){t(this,"traversals"),t(this,"options"),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 m({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 t=[...(e.manifests||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)),...(e.collections||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)),...e.members||[]];delete e.collections,delete e.manifests,e.members=t}return e.manifests&&(e.manifests=e.manifests.map((e=>this.traverseManifest("string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)))),e.collections&&(e.collections=e.collections.map((e=>this.traverseCollection("string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)))),e.members&&(e.members=e.members.map((e=>"string"==typeof e?e:this.traverseUnknown(e)))),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((e=>this.traverseSequence(e)))),e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseCanvas(e)))),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((e=>this.traverseAnnotation(e)))),e.otherContent&&(e.otherContent=e.otherContent.map((e=>this.traverseAnnotationList(e)))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const t=[...(e.ranges||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Range"}:e)),...(e.canvases||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Canvas"}:e)),...e.members||[]];delete e.ranges,delete e.canvases,e.members=t.length?t.map((e=>this.traverseUnknown(e))):void 0}return e}traverseAnnotationList(e){const t="string"==typeof e?{"@id":e,"@type":"sc:AnnotationList"}:e;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(t)),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map((e=>this.traverseAnnotation(e)))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(Array.isArray(e.resource)?e.resource=e.resource.map((e=>this.traverseContentResource(e))):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((e=>this.traverseAnnotationList(e)))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&"rdf:nil"!==e.default&&(e.default=this.traverseContentResource(e.default)),e.item&&"rdf:nil"!==e.item&&(e.item=e.item.map((e=>this.traverseContentResource(e)))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return"oa:Choice"===e["@type"]?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||"string"==typeof e)return e;switch(function(e){if(null==e)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if("object"!=typeof e)throw new Error(typeof e+" is not a valid entity");if("string"==typeof e["@type"]){const t=f.indexOf(e["@type"]);if(-1!==t)return f[t]}if(e.profile)return"Service";if(e.format)return"ContentResource";if(e["@type"])return"ContentResource";throw new Error("Resource type is not known")}(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"sc: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 t=Array.isArray(e),i=Array.isArray(e)?e:[e],r=[];for(const n of i)"string"==typeof n?r.push(this.traverseContentResource({"@id":n,"@type":"dctypes:Image"})):r.push(this.traverseContentResource(n));return t||this.options.convertPropsToArray?r:r[0]}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const t=Array.isArray(e),i=Array.isArray(e)?e:[e],r=[];for(const n of i)r.push(this.traverseService(n));return t||this.options.convertPropsToArray?r:r[0]}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&&("string"==typeof e.within||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&("string"==typeof e.startCanvas?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&("string"==typeof e.contentLayer?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,t){if(!Array.isArray(e)){if(!this.options.convertPropsToArray)return this.traverseType(e,t);e=[e]}return e.map((e=>this.traverseType(e,t)))}traverseType(e,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}}const y=["http://iiif.io/api/image/2/level1","http://iiif.io/api/image/2/level2","http://library.stanford.edu/iiif/image-api/compliance.html#level1","http://library.stanford.edu/iiif/image-api/compliance.html#level2","http://library.stanford.edu/iiif/image-api/conformance.html#level1","http://library.stanford.edu/iiif/image-api/conformance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2","http://iiif.io/api/image/1/level1.json","http://iiif.io/api/image/1/profiles/level1.json","http://iiif.io/api/image/1/level2.json","http://iiif.io/api/image/1/profiles/level2.json","http://iiif.io/api/image/2/level1.json","http://iiif.io/api/image/2/profiles/level1.json","http://iiif.io/api/image/2/level2.json","http://iiif.io/api/image/2/profiles/level2.json","level1","level2"],d=["http://iiif.io/api/image/2/level0","http://iiif.io/api/image/2/level1","http://iiif.io/api/image/2/level2","http://library.stanford.edu/iiif/image-api/compliance.html#level0","http://library.stanford.edu/iiif/image-api/compliance.html#level1","http://library.stanford.edu/iiif/image-api/compliance.html#level2","http://library.stanford.edu/iiif/image-api/conformance.html#level0","http://library.stanford.edu/iiif/image-api/conformance.html#level1","http://library.stanford.edu/iiif/image-api/conformance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2","http://iiif.io/api/image/1/level0.json","http://iiif.io/api/image/1/profiles/level0.json","http://iiif.io/api/image/1/level1.json","http://iiif.io/api/image/1/profiles/level1.json","http://iiif.io/api/image/1/level2.json","http://iiif.io/api/image/1/profiles/level2.json","http://iiif.io/api/image/2/level0.json","http://iiif.io/api/image/2/profiles/level0.json","http://iiif.io/api/image/2/level1.json","http://iiif.io/api/image/2/profiles/level1.json","http://iiif.io/api/image/2/level2.json","http://iiif.io/api/image/2/profiles/level2.json","level0","level1","level2"],g="Attribution",A="http://example.org/provider",C="Unknown";function b(e,t="none"){if(!e)return{};const i=Array.isArray(e)?e:[e],r={};for(const n of i){if("string"==typeof n){r[t]=r[t]?r[t]:[],r[t].push(n||"");continue}if(!n["@language"]){r[t]=r[t]?r[t]:[],r[t].push(n["@value"]||"");continue}const e=n["@language"];r[e]=r[e]?r[e]:[],r[e].push(n["@value"]||"")}return r}function w(e){return Array.isArray(e)?w(e.find((e=>"string"==typeof e))):-1!==d.indexOf(e)?"level2":-1!==y.indexOf(e)?"level1":"string"==typeof e?e:void 0}function R(e){for(const t of["sc","oa","dcterms","dctypes","iiif"])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}const x=["Collection","Manifest","Annotation","AnnotationPage","Range","Service"];function S(e){const t=e["@id"]||e.id;let i=e["@type"]||e.type;const r=e.profile||void 0,n=e["@context"]||void 0;if(r){const e=function(e){switch(e){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"}}(r);if(e)return e}if(n){const e=function(e){const t=Array.isArray(e)?e:[e];for(const i of t)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"}}(n);if(e)return e}if(i){if(Array.isArray(i)){if(-1!==i.indexOf("oa:CssStylesheet"))return"CssStylesheet";if(-1!==i.indexOf("cnt:ContentAsText"))return"TextualBody";i=i[0]}for(const e of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${e}:`)){i=i.slice(e.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(i&&-1!==x.indexOf(i))return i;if(e.format){if(e.format.startsWith("image/"))return"Image";if(e.format.startsWith("text/"))return"Text";if("application/pdf"===e.format)return"Text";if(e.format.startsWith("application/"))return"Dataset"}return t&&(t.endsWith(".jpg")||t.endsWith(".png")||t.endsWith(".jpeg"))?"Image":i||"unknown"}const j=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function T(e){const t=e.match(j);return t?t[0]:e}const L=["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 I(e){if(e){const t=Array.isArray(e)?e:[e],i=[];for(const e of t)"http://iiif.io/api/presentation/2/context.json"===e&&i.push("http://iiif.io/api/presentation/3/context.json"),-1===L.indexOf(e)&&i.push(e);if(t.length)return 1===i.length?i[0]:i}}function M(e){for(const t in e)void 0!==e[t]&&null!==e[t]||delete e[t];return e}let P=0;function O(e,t){const i=encodeURI(e.id||e["@id"]||"").trim();return i&&t?`${i}/${t}`:i||(P++,`http://example.org/${e["@type"]}${t?`/${t}`:""}/${P}`)}function k(e){const t=[...e.behavior||[]];let i;return e.viewingHint&&t.push(e.viewingHint),Array.isArray(e.motivation)?i=e.motivation.map(R):e.motivation&&(i=R(e.motivation)),{"@context":e["@context"]?I(e["@context"]):void 0,id:(e["@id"]||O(e)).trim(),type:S(e),behavior:t.length?t:void 0,height:e.height?e.height:void 0,width:e.width?e.width:void 0,motivation:i,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function D(e){const[t,i]=function(e,t="Rights/License",i="none"){let r=null;const n=[],a=Array.isArray(e)?e:[e];for(const s of a){const e=s?T(s):void 0;!e||-1===e.indexOf("creativecommons.org")&&-1===e.indexOf("rightsstatements.org")?e&&n.push({label:{[i]:[t]},value:{[i]:[e]}}):r=e.startsWith("https://")?`http://${e.slice(8)}`:e}return[r,n]}(e.license),r=[...e.metadata?(n=e.metadata,n?n.map((e=>({label:b(e.label),value:b(e.value)}))):[]):[],...i];var n;return{rights:t,metadata:r.length?r:void 0,label:e.label?b(e.label):void 0,requiredStatement:e.attribution?{label:b(g),value:b(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?b(e.description):void 0,thumbnail:e.thumbnail}}function q(e){if(!e.within)return;const t=Array.isArray(e.within)?e.within:[e.within],i=[];for(const r of t)if("string"==typeof r){if(r&&"sc:Manifest"===e["@type"])i.push({id:r,type:"Collection"})}else r["@id"]&&i.push({id:r["@id"],type:S(r)});return i.length?i:void 0}function U(e){const t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],i=e.contentLayer;return{provider:e.logo||t.length?[{id:A,type:"Agent",homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:b(C)}]:void 0,partOf:q(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?p(e.service):void 0,supplementary:i?[i]:void 0}}function E(e){const t=e;return M({...k(t),...D(t),...U(t),...(i=t,{chars:i.chars,format:i.format?i.format:void 0,language:i.language})});var i}const $=new m({collection:[function(e){return M({...k(e),...D(e),...U(e),items:e.members})}],manifest:[function(e){const t=[],i=[];for(const n of e.sequences||[])n.canvases.length&&t.push(...n.canvases),n.behavior&&i.push(...n.behavior);const r=k(e);return i.length&&(r.behavior?r.behavior.push(...i):r.behavior=i),M({...r,...D(e),...U(e),items:t,structures:e.structures})}],canvas:[function(e){return M({...k(e),...D(e),...U(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:O(e,"annotation-page"),type:"AnnotationPage",items:e.images}]:void 0})}],annotationList:[function(e){return M({...k(e),...D(e),...U(e),items:e.resources&&e.resources.length?e.resources:void 0})}],sequence:[function(e){return e.canvases&&0!==e.canvases.length?{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[]}:{canvases:[],behavior:[]}}],annotation:[function(e){return M({...k(e),...D(e),...U(e),target:function e(t){if(Array.isArray(t)){if(t.length>1)return{type:"List",items:t.map(e)};t=t[0]}if("string"==typeof t)return encodeURI(t).trim();if("@type"in t){let e;if("string"==typeof t.full)e=t.full;else if("dctypes:Image"===t.full["@type"])e={id:t.full["@id"],type:"Image"};else{if("sc:Canvas"!==t.full["@type"])throw new Error(`Unsupported source type on annotation: ${t.full["@type"]}`);e={id:t.full["@id"],type:"Canvas"}}return{type:"SpecificResource",source:e,selector:W(t.selector)}}return encodeURI(t["@id"]).trim()}(e.on),body:Array.isArray(e.resource)?e.resource.map(E):E(e.resource)})}],contentResource:[E],choice:[function(e){const t=[];return e.default&&"rdf:nil"!==e.default&&t.push(e.default),e.item&&"rdf:nil"!==e.item&&t.push(...e.item),{...k(e),...D(e),items:t}}],range:[function(e){return M({...k(e),...D(e),...U(e),items:e.members})}],service:[function(e){const{"@id":t,"@type":i,"@context":r,profile:n,...a}=e,s={};return t&&(s["@id"]=t),s["@type"]=S(e),"unknown"===s["@type"]&&(r&&r.length&&(s["@context"]=r),s["@type"]="Service"),n&&(s.profile=w(n)),M({...s,...a})}],layer:[function(e){return M({...k(e),...D(e),...U(e)})}]});function W(e){if((Array.isArray(e["@type"])&&e["@type"].includes("oa:SvgSelector")||"oa:SvgSelector"==e["@type"])&&("chars"in e||"value"in e))return{type:"SvgSelector",value:"chars"in e?e.chars:e.value};if("oa:FragmentSelector"===e["@type"])return{type:"FragmentSelector",value:e.value};if("oa:Choice"===e["@type"])return[W(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(W)];if("iiif:ImageApiSelector"==e["@type"])return{type:"ImageApiSelector",region:"region"in e?e.region:void 0,rotation:"rotation"in e?e.rotation:void 0};throw new Error(`Unsupported selector type: ${e["@type"]}`)}function _(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function z(e,t){if("string"==typeof e)return{id:e,type:t};if(!e.id)throw new Error(`Invalid resource does not have an ID (${t})`);return e}function N(e){return(t,i)=>{const r=e[t]?e[t]:{};return e=>{const n=z(e,i||t);return n&&n.id&&t?(r[n.id]=r[n.id]?function(e,t){if("string"==typeof e)return e;if(t.id!==e.id||t.type!==e.type)throw new Error("Can only merge entities with identical identifiers and type!");return B({...e},t)}(r[n.id],n):Object.assign({},n),{id:n.id,type:"ContentResource"===t?t:n.type}):n}}}function B(e,t){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw new Error("Cannot merge array with non-array");const i=[...e];for(const r of t)if(null!=r)if(Array.isArray(r))i.push(r);else if("object"==typeof r&&r.id&&r.type){const e=i.findIndex((e=>e.id===r.id&&e.type===r.type));e>=0&&(i[e]=B(i[e],r))}else-1===e.indexOf(r)&&i.push(r);return i}if("object"==typeof e){if(Array.isArray(t)||"object"!=typeof t)throw new Error("Cannot merge object with non-object");const r={...e};for(const[e,n]of Object.entries(t)){const t=r[e];r[e]=t!==i&&t?B(t,n):n}return r}return e||t}function F(e){const t=JSON.stringify(e);let i=5381,r=t.length;for(;r;)i=33*i^t.charCodeAt(--r);const n=(i>>>0).toString(16);return n.length%2?"0"+n:n}function H(e){return t=>"string"==typeof t?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${F(t)}`,type:e,...t}}function J(e){return t=>({...e,...t})}function V(e){return Array.isArray(e)?e:[e]}function Y(e){return e.body&&(e.body=V(e.body)),e.seeAlso&&(e.seeAlso=V(e.seeAlso)),e.body&&(e.body=V(e.body)),e.audience&&(e.audience=V(e.audience)),e.accessibility&&(e.accessibility=V(e.accessibility)),e.motivation&&(e.motivation=V(e.motivation)),e}const G="__$UNSET$__",K="__$UNWRAP$__";function Q(e){const t={};for(const[i,r]of e){if(i===K&&r!==G)return r;r!==G&&null!=r&&(t[i]=r)}return t}function X(e){if(!e)return;const t=Object.keys(e);if(0!==t.length){if(1===t.length){const i=t[0];if(!i)return"";const r=(e[i]||[]).join("");return"@none"===i||"none"===i||"en"===i?r:{"@language":i,"@value":r}}return t.map((t=>({"@language":t,"@value":(e[t]||[]).join("")})))}}function Z(e){return Array.isArray(e)?e.map((e=>Z(e))):"string"==typeof e?e:e.type&&"Canvas"===e.type?e.id:e}function ee(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function te(e){if(e){if("string"==typeof e)return{"@id":e};if("@id"in e){const t={...e};return delete t["@type"],t}return{"@context":"http://iiif.io/api/image/2/context.json","@id":e.id,profile:`http://iiif.io/api/image/2/profiles/${e.profile}.json`}}}function ie(e,t){return[["@id",e.id],["@type",t],["format",e.format],["height",e.height],["width",e.width],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0]]}function*re(e){const t=e.provider?yield e.provider[0]:void 0;return[["label",X(e.label)],["metadata",e.metadata&&e.metadata.length?e.metadata.map((e=>({label:X(e.label)||"",value:X(e.value)||""}))):void 0],["description",X(e.summary)],["thumbnail",ee(yield e.thumbnail)],["navDate",e.navDate],["logo",t?ee(t.logo):void 0],["homepage",t?t.homepage:void 0],["attribution",e.requiredStatement?X(e.requiredStatement.value):void 0]]}function*ne(e){return[["seeAlso",ee(yield e.seeAlso)],["service",ee((e.service||[]).map(te))],["rendering",ee(yield e.rendering)],["startCanvas",e.start?e.start.id:void 0]]}const ae={Manifest:function*(e){return[...ie(e,"sc:Manifest"),...yield*re(e),...yield*ne(e),["sequences",[{"@id":`${e.id}/sequence0`,"@type":"sc:Sequence",canvases:yield e.items}]],["structures",yield e.structures]]},Canvas:function*(e){const t=(yield e.items)[0];return[...ie(e,"sc:Canvas"),...yield*re(e),...yield*ne(e),["images",t?[t.resources]:void 0],["annotations",e.annotations&&e.annotations.length?ee(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...ie(e,"sc:AnnotationList"),...yield*re(e),["resources",e.items&&e.items.length?ee(yield e.items):void 0]]},Annotation:function*(e){return[["@id",e.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",Z(e.target)],["resource",ee(yield e.body,!0)]]},ContentResource:function*(e){return"Image"===e.type?[...ie(e,"dctypes:Image"),...yield*re(e),...yield*ne(e)]:[...ie(e,void 0),...yield*re(e)]},AnnotationCollection:function*(e){return[["@id",e.id],["@type","sc:Layer"],["label",X(e.label)]]},Collection:function*(e){return[...ie(e,"sc:Collection"),...yield*re(e),...yield*ne(e),["members",yield*e.items]]},Range:function*(e){const t=[],i=[];if(e.items)for(const r of e.items){const n=yield r;t.push({"@id":r.id,"@type":r.type,label:n?n.label:void 0,within:e.id}),"Canvas"===r.type&&i.push(r.id)}return[...ie(e,"sc:Range"),...yield*re(e),...yield*ne(e),["canvases",i.length===t.length?i:void 0],["members",i.length!==t.length?t:void 0]]}};function se(e){var t;return[["id",(null==(t=e.id)?void 0:t.startsWith("vault://"))?void 0:e.id],["type",e.type],["format",e.format],["profile",e.profile],["height",e.height],["width",e.width],["duration",e.duration||void 0],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0],["behavior",e.behavior&&e.behavior.length?e.behavior:void 0],["timeMode",e.timeMode],["motivation",Array.isArray(e.motivation)?e.motivation[0]:e.motivation]]}function oe(e){if(e&&0!==e.length)return e}function le(e){if(e&&e.type&&"ImageService2"===e.type){const{id:t,type:i,profile:r,...n}=e,a="string"==typeof r?r:Array.isArray(r)?r.find((e=>"string"==typeof e)):"";return{"@id":t,"@type":i,profile:a?a.startsWith("http")?a:`http://iiif.io/api/image/2/${a}.json`:"http://iiif.io/api/image/2/level0.json",...n}}return e}function ce(e){if(e&&0!==e.length)return e.map(le)}function*pe(e){return[["label",e.label],["metadata",oe(e.metadata)],["summary",e.summary],["requiredStatement",e.requiredStatement],["rights",e.rights],["navDate",e.navDate],["language",e.language],["thumbnail",oe(yield e.thumbnail)],["placeholderCanvas",yield e.placeholderCanvas],["accompanyingCanvas",yield e.accompanyingCanvas],["provider",oe(yield e.provider)]]}function*ue(e){return[["seeAlso",oe(yield e.seeAlso)],["service",ce(e.service)],["services",ce(e.services)],["rendering",oe(yield e.rendering)],["supplementary",oe(yield e.supplementary)],["homepage",oe(yield e.homepage)],["logo",oe(yield e.logo)],["partOf",oe(yield e.partOf)],["start",e.start]]}const ve={Manifest:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...se(e),...yield*pe(e),...yield*ue(e),["items",yield e.items],["structures",oe(yield e.structures)],["annotations",oe(yield e.annotations)]]:[...se(e),...yield*pe(e)]},Canvas:function*(e){return[...se(e),...yield*pe(e),...yield*ue(e),["items",yield e.items],["annotations",oe(yield e.annotations)]]},Agent:function*(e){return[["id",e.id],["type","Agent"],["label",e.label],...yield*ue(e)]},AnnotationPage:function*(e){return[...Object.entries(e).map((([e,t])=>[e,Array.isArray(t)?oe(t):t])).filter((([e,t])=>"items"!==e)),...yield*ue(e),["items",yield e.items]]},Service:function*(e){return[[K,le(e)]]},Annotation:function*(e){const t=Object.entries(e).map((([e,t])=>"motivation"===e?[e,Array.isArray(t)?t[0]:t]:[e,Array.isArray(t)?oe(t):t])).filter((([e])=>"body"!==e)),i=yield e.body;return[...t,["body",1===i.length?i[0]:i]]},ContentResource:function*(e){return[...se(e),...yield*pe(e),...yield*ue(e),["annotations",oe(yield e.annotations)],["items",oe(yield e.items)]]},AnnotationCollection:function*(e){return[["id",e.id],["type","AnnotationCollection"],["label",e.label]]},Collection:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...se(e),...yield*pe(e),...yield*ue(e),["items",oe(yield e.items)]]:[...se(e),...yield*pe(e)]},Range:function*(e){const t=[];for(const i of e.items)"Range"===i.type?t.push(yield i):t.push(i);return[...se(e),...yield*pe(e),...yield*ue(e),["items",t],["annotations",oe(yield e.annotations)]]}};exports.EMPTY=i,exports.Traverse=h,exports.UNSET=G,exports.UNWRAP=K,exports.defaultEntities={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},exports.emptyAgent=c,exports.emptyAnnotation=r,exports.emptyAnnotationPage=n,exports.emptyCanvas=a,exports.emptyCollection=s,exports.emptyManifest=o,exports.emptyRange=l,exports.getDefaultEntities=_,exports.identifyResource=v,exports.languageString2to3=X,exports.normalize=function(e){const t=function(e){return e&&e["@context"]&&("http://iiif.io/api/presentation/2/context.json"===e["@context"]||-1!==e["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")||"http://www.shared-canvas.org/ns/context.json"===e["@context"])||"http://iiif.io/api/image/2/context.json"===e["@context"]?$.traverseUnknown(e):e}(e),i={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},r={},p=N(i),u=function(e){return(t,i)=>r=>{const{id:n,type:a}=z(r,i||t);if(void 0===n)throw new Error("Found invalid entity without an ID.");return e[n]="ContentResource"===t?t:a,r}}(r);return{entities:i,resource:new h({collection:[J(s),u("Collection"),p("Collection")],manifest:[J(o),u("Manifest"),p("Manifest")],canvas:[J(a),u("Canvas"),p("Canvas")],annotationPage:[H("AnnotationPage"),J(n),u("AnnotationPage"),p("AnnotationPage")],annotation:[H("Annotation"),Y,u("Annotation"),p("Annotation")],contentResource:[H("ContentResource"),u("ContentResource"),p("ContentResource")],range:[J(l),u("Range","Canvas"),p("Range","Canvas")],agent:[J(c),u("Agent"),p("Agent")]}).traverseUnknown(t),mapping:r}},exports.serialize=function(e,t,i){if(!t.type||!t.id)throw new Error("Unknown entity");if(!i[t.type])throw new Error(`Serializer not found for ${t.type}`);return function r(n){const a=i[n.type];if(!a)return G;const s=function(e,t){const i=e.requests[t],r=e.mapping[t];if(r&&(!i||!i.resourceUri||e.entities[r][i.resourceUri]))return e.entities[r][i?i.resourceUri:t]}(e,n.id)||(n.id&&n.type?n:null);if(!s)return G;const o=a(s,e,{isTopLevel:t.id===n.id});let l=o.next();for(;!l.done;){const e=l.value;let t=G;if(e)if(Array.isArray(e)){const i=[];for(const t of e)i.push(r(t));t=i}else t=r(e);l=o.next(t)}return l.value===G?G:Q(l.value)}(t)},exports.serializeConfigPresentation2=ae,exports.serializeConfigPresentation3=ve,exports.serializedFieldsToObject=Q,exports.types=u; | ||
| "use strict";var e=Object.defineProperty,t=(t,i,r)=>(((t,i,r)=>{i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r})(t,"symbol"!=typeof i?i+"":i,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=[];Object.freeze(i);const r={id:"https://iiif-parser/annotation",type:"Annotation",behavior:i,label:null,thumbnail:i,summary:null,requiredStatement:null,metadata:i,seeAlso:i,homepage:i,logo:i,rendering:i,service:i,accessibility:i,audience:i,body:i,bodyValue:null,canonical:null,created:null,creator:i,generated:null,generator:i,modified:null,motivation:i,rights:i,stylesheet:null,target:i,timeMode:void 0,via:i,partOf:i},n={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:i,motivation:null,label:null,thumbnail:i,summary:null,requiredStatement:null,metadata:i,rights:null,provider:i,items:i,seeAlso:i,homepage:i,logo:i,rendering:i,service:i},a={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:i,motivation:null,thumbnail:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:i,rights:null,navDate:null,provider:i,items:i,annotations:i,seeAlso:i,homepage:i,logo:i,partOf:i,rendering:i,service:i,duration:0,height:0,width:0},s={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:i,motivation:null,thumbnail:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:i,rights:null,navDate:null,provider:i,items:i,annotations:i,seeAlso:i,homepage:i,logo:i,partOf:i,rendering:i,service:i,services:i},o={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:i,behavior:i,homepage:i,items:i,label:null,logo:i,metadata:i,motivation:null,navDate:null,provider:i,partOf:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:i,requiredStatement:null,rights:null,seeAlso:i,service:i,services:i,start:null,structures:i,summary:null,thumbnail:i,viewingDirection:"left-to-right"},l={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:i,motivation:null,thumbnail:i,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:i,rights:null,navDate:null,provider:i,items:i,annotations:i,seeAlso:i,homepage:i,logo:i,partOf:i,rendering:i,service:i,start:null,supplementary:null,viewingDirection:"left-to-right"},c={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:i,seeAlso:i,homepage:i};function p(e){return Array.isArray(e)?e:[e]}const u=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function v(e){if(null==e)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if("object"!=typeof e)throw new Error(typeof e+" is not a valid entity");if("string"==typeof e.type){const t=u.indexOf(e.type);if(-1!==t)return u[t]}if(e.profile)return"Service";throw new Error("Resource type is not known")}class h{constructor(e,i={}){t(this,"traversals"),t(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...i}}static all(e){return new h({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((e=>this.traverseType(e,this.traversals.contentResource)))),e.provider&&(e.provider=e.provider.map((e=>this.traverseAgent(e)))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.service&&(e.service=p(e.service).map((e=>this.traverseType(e,this.traversals.service)))),e.services&&(e.services=e.services.map((e=>this.traverseType(e,this.traversals.service)))),e.logo&&(e.logo=e.logo.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.homepage&&(e.homepage=e.homepage.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.partOf&&(e.partOf=e.partOf.map((e=>"string"!=typeof e&&e.type?"Canvas"===e.type?this.traverseType(e,this.traversals.canvas):"AnnotationCollection"===e.type?this.traverseType(e,this.traversals.annotationCollection):"Collection"===e.type?this.traverseType(e,this.traversals.collection):this.traverseType(e,this.traversals.contentResource):this.traverseType(e,this.traversals.contentResource)))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.supplementary&&(e.supplementary=e.supplementary.map((e=>this.traverseType(e,this.traversals.contentResource)))),e}traverseCollectionItems(e){return e.items&&e.items.map((e=>"Collection"===e.type?this.traverseCollection(e):this.traverseManifest(e))),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((e=>this.traverseCanvas(e)))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseAnnotationPage(e))),e}traverseInlineAnnotationPages(e){return"string"!=typeof e&&e?(e.annotations&&(e.annotations=e.annotations.map((e=>this.traverseAnnotationPage(e)))),e):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((e=>this.traverseAnnotation(e)))),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((e=>this.traverseContentResource(e))):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseCanvas(e.posterCanvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseCanvas(e.placeholderCanvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseCanvas(e.accompanyingCanvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return"string"!=typeof e&&e?(e&&e.service&&(e.service=p(e.service||[]).map((e=>this.traverseType(e,this.traversals.service)))),e):e}traverseContentResource(e){return"Choice"===e.type&&(e.items=e.items.map((e=>this.traverseContentResource(e)))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map((e=>"string"==typeof e?this.traverseCanvas({id:e,type:"Canvas"}):"Manifest"===e.type?this.traverseManifest(e):this.traverseRange(e)))),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,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const t=v(e);switch(t){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 ${t}`)}}}const f=["sc:Collection","sc:Manifest","sc:Canvas","sc:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];class m{constructor(e,i={}){t(this,"traversals"),t(this,"options"),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 m({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 t=[...(e.manifests||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)),...(e.collections||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)),...e.members||[]];delete e.collections,delete e.manifests,e.members=t}return e.manifests&&(e.manifests=e.manifests.map((e=>this.traverseManifest("string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)))),e.collections&&(e.collections=e.collections.map((e=>this.traverseCollection("string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)))),e.members&&(e.members=e.members.map((e=>"string"==typeof e?e:this.traverseUnknown(e)))),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((e=>this.traverseSequence(e)))),e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseCanvas(e)))),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((e=>this.traverseAnnotation(e)))),e.otherContent&&(e.otherContent=e.otherContent.map((e=>this.traverseAnnotationList(e)))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const t=[...(e.ranges||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Range"}:e)),...(e.canvases||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Canvas"}:e)),...e.members||[]];delete e.ranges,delete e.canvases,e.members=t.length?t.map((e=>this.traverseUnknown(e))):void 0}return e}traverseAnnotationList(e){const t="string"==typeof e?{"@id":e,"@type":"sc:AnnotationList"}:e;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(t)),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map((e=>this.traverseAnnotation(e)))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(Array.isArray(e.resource)?e.resource=e.resource.map((e=>this.traverseContentResource(e))):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((e=>this.traverseAnnotationList(e)))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&"rdf:nil"!==e.default&&(e.default=this.traverseContentResource(e.default)),e.item&&"rdf:nil"!==e.item&&(e.item=e.item.map((e=>this.traverseContentResource(e)))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return"oa:Choice"===e["@type"]?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||"string"==typeof e)return e;switch(function(e){if(null==e)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if("object"!=typeof e)throw new Error(typeof e+" is not a valid entity");if("string"==typeof e["@type"]){const t=f.indexOf(e["@type"]);if(-1!==t)return f[t]}if(e.profile)return"Service";if(e.format)return"ContentResource";if(e["@type"])return"ContentResource";throw new Error("Resource type is not known")}(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"sc: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 t=Array.isArray(e),i=Array.isArray(e)?e:[e],r=[];for(const n of i)"string"==typeof n?r.push(this.traverseContentResource({"@id":n,"@type":"dctypes:Image"})):r.push(this.traverseContentResource(n));return t||this.options.convertPropsToArray?r:r[0]}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const t=Array.isArray(e),i=Array.isArray(e)?e:[e],r=[];for(const n of i)r.push(this.traverseService(n));return t||this.options.convertPropsToArray?r:r[0]}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&&("string"==typeof e.within||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&("string"==typeof e.startCanvas?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&("string"==typeof e.contentLayer?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,t){if(!Array.isArray(e)){if(!this.options.convertPropsToArray)return this.traverseType(e,t);e=[e]}return e.map((e=>this.traverseType(e,t)))}traverseType(e,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}}const y=["http://iiif.io/api/image/2/level1","http://iiif.io/api/image/2/level2","http://library.stanford.edu/iiif/image-api/compliance.html#level1","http://library.stanford.edu/iiif/image-api/compliance.html#level2","http://library.stanford.edu/iiif/image-api/conformance.html#level1","http://library.stanford.edu/iiif/image-api/conformance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2","http://iiif.io/api/image/1/level1.json","http://iiif.io/api/image/1/profiles/level1.json","http://iiif.io/api/image/1/level2.json","http://iiif.io/api/image/1/profiles/level2.json","http://iiif.io/api/image/2/level1.json","http://iiif.io/api/image/2/profiles/level1.json","http://iiif.io/api/image/2/level2.json","http://iiif.io/api/image/2/profiles/level2.json","level1","level2"],d=["http://iiif.io/api/image/2/level0","http://iiif.io/api/image/2/level1","http://iiif.io/api/image/2/level2","http://library.stanford.edu/iiif/image-api/compliance.html#level0","http://library.stanford.edu/iiif/image-api/compliance.html#level1","http://library.stanford.edu/iiif/image-api/compliance.html#level2","http://library.stanford.edu/iiif/image-api/conformance.html#level0","http://library.stanford.edu/iiif/image-api/conformance.html#level1","http://library.stanford.edu/iiif/image-api/conformance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1","http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2","http://iiif.io/api/image/1/level0.json","http://iiif.io/api/image/1/profiles/level0.json","http://iiif.io/api/image/1/level1.json","http://iiif.io/api/image/1/profiles/level1.json","http://iiif.io/api/image/1/level2.json","http://iiif.io/api/image/1/profiles/level2.json","http://iiif.io/api/image/2/level0.json","http://iiif.io/api/image/2/profiles/level0.json","http://iiif.io/api/image/2/level1.json","http://iiif.io/api/image/2/profiles/level1.json","http://iiif.io/api/image/2/level2.json","http://iiif.io/api/image/2/profiles/level2.json","level0","level1","level2"],g="Attribution",A="http://example.org/provider",C="Unknown";function b(e,t="none"){if(!e)return{};const i=Array.isArray(e)?e:[e],r={};for(const n of i){if("string"==typeof n){r[t]=r[t]?r[t]:[],r[t].push(n||"");continue}if(!n["@language"]){r[t]=r[t]?r[t]:[],r[t].push(n["@value"]||"");continue}const e=n["@language"];r[e]=r[e]?r[e]:[],r[e].push(n["@value"]||"")}return r}function w(e){return Array.isArray(e)?w(e.find((e=>"string"==typeof e))):-1!==d.indexOf(e)?"level2":-1!==y.indexOf(e)?"level1":"string"==typeof e?e:void 0}function R(e){for(const t of["sc","oa","dcterms","dctypes","iiif"])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}const x=["Collection","Manifest","Annotation","AnnotationPage","Range","Service"];function S(e){const t=e["@id"]||e.id;let i=e["@type"]||e.type;const r=e.profile||void 0,n=e["@context"]||void 0;if(r){const e=function(e){switch(e){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"}}(r);if(e)return e}if(n){const e=function(e){const t=Array.isArray(e)?e:[e];for(const i of t)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"}}(n);if(e)return e}if(i){if(Array.isArray(i)){if(-1!==i.indexOf("oa:CssStylesheet"))return"CssStylesheet";if(-1!==i.indexOf("cnt:ContentAsText"))return"TextualBody";i=i[0]}for(const e of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${e}:`)){i=i.slice(e.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(i&&-1!==x.indexOf(i))return i;if(e.format){if(e.format.startsWith("image/"))return"Image";if(e.format.startsWith("text/"))return"Text";if("application/pdf"===e.format)return"Text";if(e.format.startsWith("application/"))return"Dataset"}return t&&(t.endsWith(".jpg")||t.endsWith(".png")||t.endsWith(".jpeg"))?"Image":i||"unknown"}const j=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function T(e){const t=e.match(j);return t?t[0]:e}const L=["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 I(e){if(e){const t=Array.isArray(e)?e:[e],i=[];for(const e of t)"http://iiif.io/api/presentation/2/context.json"===e&&i.push("http://iiif.io/api/presentation/3/context.json"),-1===L.indexOf(e)&&i.push(e);if(t.length)return 1===i.length?i[0]:i}}function M(e){for(const t in e)void 0!==e[t]&&null!==e[t]||delete e[t];return e}let P=0;function O(e,t){const i=encodeURI(e.id||e["@id"]||"").trim();return i&&t?`${i}/${t}`:i||(P++,`http://example.org/${e["@type"]}${t?`/${t}`:""}/${P}`)}function k(e){const t=[...e.behavior||[]];let i;return e.viewingHint&&t.push(e.viewingHint),Array.isArray(e.motivation)?i=e.motivation.map(R):e.motivation&&(i=R(e.motivation)),{"@context":e["@context"]?I(e["@context"]):void 0,id:(e["@id"]||O(e)).trim(),type:S(e),behavior:t.length?t:void 0,height:e.height?e.height:void 0,width:e.width?e.width:void 0,motivation:i,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function D(e){const[t,i]=function(e,t="Rights/License",i="none"){let r=null;const n=[],a=Array.isArray(e)?e:[e];for(const s of a){const e=s?T(s):void 0;!e||-1===e.indexOf("creativecommons.org")&&-1===e.indexOf("rightsstatements.org")?e&&n.push({label:{[i]:[t]},value:{[i]:[e]}}):r=e.startsWith("https://")?`http://${e.slice(8)}`:e}return[r,n]}(e.license),r=[...e.metadata?(n=e.metadata,n?n.map((e=>({label:b(e.label),value:b(e.value)}))):[]):[],...i];var n;return{rights:t,metadata:r.length?r:void 0,label:e.label?b(e.label):void 0,requiredStatement:e.attribution?{label:b(g),value:b(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?b(e.description):void 0,thumbnail:e.thumbnail}}function q(e){if(!e.within)return;const t=Array.isArray(e.within)?e.within:[e.within],i=[];for(const r of t)if("string"==typeof r){if(r&&"sc:Manifest"===e["@type"])i.push({id:r,type:"Collection"})}else r["@id"]&&i.push({id:r["@id"],type:S(r)});return i.length?i:void 0}function U(e){const t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],i=e.contentLayer;return{provider:e.logo||t.length?[{id:A,type:"Agent",homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:b(C)}]:void 0,partOf:q(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?p(e.service):void 0,supplementary:i?[i]:void 0}}function E(e){const t=e;return M({...k(t),...D(t),...U(t),...(i=t,{chars:i.chars,format:i.format?i.format:void 0,language:i.language})});var i}const $=new m({collection:[function(e){return M({...k(e),...D(e),...U(e),items:e.members})}],manifest:[function(e){const t=[],i=[];for(const n of e.sequences||[])n.canvases.length&&t.push(...n.canvases),n.behavior&&i.push(...n.behavior);const r=k(e);return i.length&&(r.behavior?r.behavior.push(...i):r.behavior=i),M({...r,...D(e),...U(e),items:t,structures:e.structures})}],canvas:[function(e){return M({...k(e),...D(e),...U(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:O(e,"annotation-page"),type:"AnnotationPage",items:e.images}]:void 0})}],annotationList:[function(e){return M({...k(e),...D(e),...U(e),items:e.resources&&e.resources.length?e.resources:void 0})}],sequence:[function(e){return e.canvases&&0!==e.canvases.length?{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[]}:{canvases:[],behavior:[]}}],annotation:[function(e){return M({...k(e),...D(e),...U(e),target:function e(t){if(Array.isArray(t)){if(t.length>1)return{type:"List",items:t.map(e)};t=t[0]}if("string"==typeof t)return encodeURI(t).trim();if("@type"in t){let e;if("string"==typeof t.full)e=t.full;else if("dctypes:Image"===t.full["@type"])e={id:t.full["@id"],type:"Image"};else{if("sc:Canvas"!==t.full["@type"])throw new Error(`Unsupported source type on annotation: ${t.full["@type"]}`);e={id:t.full["@id"],type:"Canvas"}}return{type:"SpecificResource",source:e,selector:W(t.selector)}}return encodeURI(t["@id"]).trim()}(e.on),body:Array.isArray(e.resource)?e.resource.map(E):E(e.resource)})}],contentResource:[E],choice:[function(e){const t=[];return e.default&&"rdf:nil"!==e.default&&t.push(e.default),e.item&&"rdf:nil"!==e.item&&t.push(...e.item),{...k(e),...D(e),items:t}}],range:[function(e){return M({...k(e),...D(e),...U(e),items:e.members})}],service:[function(e){const{"@id":t,"@type":i,"@context":r,profile:n,...a}=e,s={};return t&&(s["@id"]=t),s["@type"]=S(e),"unknown"===s["@type"]&&(r&&r.length&&(s["@context"]=r),s["@type"]="Service"),n&&(s.profile=w(n)),M({...s,...a})}],layer:[function(e){return M({...k(e),...D(e),...U(e)})}]});function W(e){if((Array.isArray(e["@type"])&&e["@type"].includes("oa:SvgSelector")||"oa:SvgSelector"==e["@type"])&&("chars"in e||"value"in e))return{type:"SvgSelector",value:"chars"in e?e.chars:e.value};if("oa:FragmentSelector"===e["@type"])return{type:"FragmentSelector",value:e.value};if("oa:Choice"===e["@type"])return[W(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(W)];if("iiif:ImageApiSelector"==e["@type"])return{type:"ImageApiSelector",region:"region"in e?e.region:void 0,rotation:"rotation"in e?e.rotation:void 0};throw new Error(`Unsupported selector type: ${e["@type"]}`)}function _(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function z(e,t){if("string"==typeof e)return{id:e,type:t};if(!e.id)throw new Error(`Invalid resource does not have an ID (${t})`);return e}function N(e){return(t,i)=>{const r=e[t]?e[t]:{};return e=>{const n=z(e,i||t);return n&&n.id&&t?(r[n.id]=r[n.id]?function(e,t){if("string"==typeof e)return e;if(t.id!==e.id||t.type!==e.type)throw new Error("Can only merge entities with identical identifiers and type!");return B({...e},t)}(r[n.id],n):Object.assign({},n),{id:n.id,type:"ContentResource"===t?t:n.type}):n}}}function B(e,t){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw new Error("Cannot merge array with non-array");const i=[...e];for(const r of t)if(null!=r)if(Array.isArray(r))i.push(r);else if("object"==typeof r&&r.id&&r.type){const e=i.findIndex((e=>e.id===r.id&&e.type===r.type));e>=0&&(i[e]=B(i[e],r))}else-1===e.indexOf(r)&&i.push(r);return i}if("object"==typeof e){if(Array.isArray(t)||"object"!=typeof t)throw new Error("Cannot merge object with non-object");const r={...e};for(const[e,n]of Object.entries(t)){const t=r[e];r[e]=t!==i&&t?B(t,n):n}return r}return e||t}function F(e){const t=JSON.stringify(e);let i=5381,r=t.length;for(;r;)i=33*i^t.charCodeAt(--r);const n=(i>>>0).toString(16);return n.length%2?"0"+n:n}function H(e){return t=>"string"==typeof t?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${F(t)}`,type:e,...t}}function J(e){return t=>({...e,...t})}function V(e){return Array.isArray(e)?e:[e]}function Y(e){return e.body&&(e.body=V(e.body)),e.seeAlso&&(e.seeAlso=V(e.seeAlso)),e.body&&(e.body=V(e.body)),e.audience&&(e.audience=V(e.audience)),e.accessibility&&(e.accessibility=V(e.accessibility)),e.motivation&&(e.motivation=V(e.motivation)),e}const G="__$UNSET$__",K="__$UNWRAP$__";function Q(e){const t={};for(const[i,r]of e){if(i===K&&r!==G)return r;r!==G&&null!=r&&(t[i]=r)}return t}function X(e){if(!e)return;const t=Object.keys(e);if(0!==t.length){if(1===t.length){const i=t[0];if(!i)return"";const r=(e[i]||[]).join("");return"@none"===i||"none"===i||"en"===i?r:{"@language":i,"@value":r}}return t.map((t=>({"@language":t,"@value":(e[t]||[]).join("")})))}}function Z(e){return Array.isArray(e)?e.map((e=>Z(e))):"string"==typeof e?e:e.type&&"Canvas"===e.type?e.id:e}function ee(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function te(e){if(e){if("string"==typeof e)return{"@id":e};if("@id"in e){const t={...e};return delete t["@type"],t}return{"@context":"http://iiif.io/api/image/2/context.json","@id":e.id,profile:`http://iiif.io/api/image/2/profiles/${e.profile}.json`}}}function ie(e,t){return[["@id",e.id],["@type",t],["format",e.format],["height",e.height],["width",e.width],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0]]}function*re(e){const t=e.provider?yield e.provider[0]:void 0;return[["label",X(e.label)],["metadata",e.metadata&&e.metadata.length?e.metadata.map((e=>({label:X(e.label)||"",value:X(e.value)||""}))):void 0],["description",X(e.summary)],["thumbnail",ee(yield e.thumbnail)],["navDate",e.navDate],["logo",t?ee(t.logo):void 0],["homepage",t?t.homepage:void 0],["attribution",e.requiredStatement?X(e.requiredStatement.value):void 0]]}function*ne(e){return[["seeAlso",ee(yield e.seeAlso)],["service",ee((e.service||[]).map(te))],["rendering",ee(yield e.rendering)],["startCanvas",e.start?e.start.id:void 0]]}const ae={Manifest:function*(e){return[...ie(e,"sc:Manifest"),...yield*re(e),...yield*ne(e),["sequences",[{"@id":`${e.id}/sequence0`,"@type":"sc:Sequence",canvases:yield e.items}]],["structures",yield e.structures]]},Canvas:function*(e){const t=(yield e.items)[0];return[...ie(e,"sc:Canvas"),...yield*re(e),...yield*ne(e),["images",t?[t.resources]:void 0],["annotations",e.annotations&&e.annotations.length?ee(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...ie(e,"sc:AnnotationList"),...yield*re(e),["resources",e.items&&e.items.length?ee(yield e.items):void 0]]},Annotation:function*(e){return[["@id",e.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",Z(e.target)],["resource",ee(yield e.body,!0)]]},ContentResource:function*(e){return"Image"===e.type?[...ie(e,"dctypes:Image"),...yield*re(e),...yield*ne(e)]:[...ie(e,void 0),...yield*re(e)]},AnnotationCollection:function*(e){return[["@id",e.id],["@type","sc:Layer"],["label",X(e.label)]]},Collection:function*(e){return[...ie(e,"sc:Collection"),...yield*re(e),...yield*ne(e),["members",yield*e.items]]},Range:function*(e){const t=[],i=[];if(e.items)for(const r of e.items){const n=yield r;t.push({"@id":r.id,"@type":r.type,label:n?n.label:void 0,within:e.id}),"Canvas"===r.type&&i.push(r.id)}return[...ie(e,"sc:Range"),...yield*re(e),...yield*ne(e),["canvases",i.length===t.length?i:void 0],["members",i.length!==t.length?t:void 0]]}};function se(e){var t;return[["id",(null==(t=e.id)?void 0:t.startsWith("vault://"))?void 0:e.id],["type",e.type],["format",e.format],["profile",e.profile],["height",e.height],["width",e.width],["duration",e.duration||void 0],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0],["behavior",e.behavior&&e.behavior.length?e.behavior:void 0],["timeMode",e.timeMode],["motivation",Array.isArray(e.motivation)?e.motivation[0]:e.motivation]]}function oe(e){if(e&&0!==e.length)return e}function le(e){if(e&&e.type&&"ImageService2"===e.type){const{id:t,type:i,profile:r,...n}=e,a="string"==typeof r?r:Array.isArray(r)?r.find((e=>"string"==typeof e)):"";return{"@id":t,"@type":i,profile:a?a.startsWith("http")?a:`http://iiif.io/api/image/2/${a}.json`:"http://iiif.io/api/image/2/level0.json",...n}}return e}function ce(e){if(e&&0!==e.length)return e.map(le)}function*pe(e){return[["label",e.label],["metadata",oe(e.metadata)],["summary",e.summary],["requiredStatement",e.requiredStatement],["rights",e.rights],["navDate",e.navDate],["language",e.language],["thumbnail",oe(yield e.thumbnail)],["placeholderCanvas",yield e.placeholderCanvas],["accompanyingCanvas",yield e.accompanyingCanvas],["provider",oe(yield e.provider)]]}function*ue(e){return[["seeAlso",oe(yield e.seeAlso)],["service",ce(e.service)],["services",ce(e.services)],["rendering",oe(yield e.rendering)],["supplementary",oe(yield e.supplementary)],["homepage",oe(yield e.homepage)],["logo",oe(yield e.logo)],["partOf",oe(yield e.partOf)],["start",e.start]]}const ve={Manifest:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...se(e),...yield*pe(e),...yield*ue(e),["items",yield e.items],["structures",oe(yield e.structures)],["annotations",oe(yield e.annotations)]]:[...se(e),...yield*pe(e)]},Canvas:function*(e){return[...se(e),...yield*pe(e),...yield*ue(e),["items",yield e.items],["annotations",oe(yield e.annotations)]]},Agent:function*(e){return[["id",e.id],["type","Agent"],["label",e.label],...yield*ue(e)]},AnnotationPage:function*(e){return[...Object.entries(e).map((([e,t])=>[e,Array.isArray(t)?oe(t):t])).filter((([e,t])=>"items"!==e)),...yield*ue(e),["items",yield e.items]]},Service:function*(e){return[[K,le(e)]]},Annotation:function*(e){const t=Object.entries(e).map((([e,t])=>"motivation"===e?[e,Array.isArray(t)?t[0]:t]:[e,Array.isArray(t)?oe(t):t])).filter((([e])=>"body"!==e)),i=yield e.body;return[...t,["body",1===i.length?i[0]:i]]},ContentResource:function*(e){return[...se(e),...yield*pe(e),...yield*ue(e),["annotations",oe(yield e.annotations)],["items",oe(yield e.items)]]},AnnotationCollection:function*(e){return[["id",e.id],["type","AnnotationCollection"],["label",e.label]]},Collection:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...se(e),...yield*pe(e),...yield*ue(e),["items",oe(yield e.items)]]:[...se(e),...yield*pe(e)]},Range:function*(e){const t=[];for(const i of e.items)"Range"===i.type?t.push(yield i):t.push(i);return[...se(e),...yield*pe(e),...yield*ue(e),["items",t],["annotations",oe(yield e.annotations)]]}};exports.EMPTY=i,exports.Traverse=h,exports.UNSET=G,exports.UNWRAP=K,exports.defaultEntities={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},exports.emptyAgent=c,exports.emptyAnnotation=r,exports.emptyAnnotationPage=n,exports.emptyCanvas=a,exports.emptyCollection=s,exports.emptyManifest=o,exports.emptyRange=l,exports.getDefaultEntities=_,exports.identifyResource=v,exports.languageString2to3=X,exports.normalize=function(e){const t=function(e){return e&&e["@context"]&&("http://iiif.io/api/presentation/2/context.json"===e["@context"]||-1!==e["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")||"http://www.shared-canvas.org/ns/context.json"===e["@context"])||"http://iiif.io/api/image/2/context.json"===e["@context"]?$.traverseUnknown(e):e}(e),i={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},r={},p=N(i),u=function(e){return(t,i)=>r=>{const{id:n,type:a}=z(r,i||t);if(void 0===n)throw new Error("Found invalid entity without an ID.");return e[n]="ContentResource"===t?t:a,r}}(r);return{entities:i,resource:new h({collection:[J(s),u("Collection"),p("Collection")],manifest:[J(o),u("Manifest"),p("Manifest")],canvas:[J(a),u("Canvas"),p("Canvas")],annotationPage:[H("AnnotationPage"),J(n),u("AnnotationPage"),p("AnnotationPage")],annotation:[H("Annotation"),Y,u("Annotation"),p("Annotation")],contentResource:[H("ContentResource"),u("ContentResource"),p("ContentResource")],range:[J(l),u("Range","Canvas"),p("Range","Canvas")],agent:[J(c),u("Agent"),p("Agent")]}).traverseUnknown(t),mapping:r}},exports.serialize=function(e,t,i){if(!t.type||!t.id)throw new Error("Unknown entity");if(!i[t.type])throw new Error(`Serializer not found for ${t.type}`);return function r(n){const a=i[n.type];if(!a)return G;const s=function(e,t){const i=e.requests[t],r=e.mapping[t];if(r&&(!i||!i.resourceUri||e.entities[r][i.resourceUri]))return e.entities[r][i?i.resourceUri:t]}(e,n.id)||(n.id&&n.type?n:null);if(!s)return G;const o=a(s,e,{isTopLevel:t.id===n.id});let l=o.next();for(;!l.done;){const e=l.value;let t=G;if(e)if(Array.isArray(e)){const i=[];for(const t of e)i.push(r(t));t=i}else t=r(e);l=o.next(t)}return l.value===G?G:Q(l.value)}(t)},exports.serializeConfigPresentation2=ae,exports.serializeConfigPresentation3=ve,exports.serializedFieldsToObject=Q,exports.types=u; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,2 +0,2 @@ | ||
| var __defProp=Object.defineProperty,__defNormalProp=(e,t,i)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,__publicField=(e,t,i)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,i),i);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).IIIFParser=t()}(this,(function(){"use strict";const e=["sc:Collection","sc:Manifest","sc:Canvas","sc:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function t(t){if(null==t)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("object"!=typeof t)throw new Error(typeof t+" is not a valid entity");if("string"==typeof t["@type"]){const i=e.indexOf(t["@type"]);if(-1!==i)return e[i]}if(t.profile)return"Service";if(t.format)return"ContentResource";if(t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class i{constructor(e,t={}){__publicField(this,"traversals"),__publicField(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...t}}static all(e){return new i({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 t=[...(e.manifests||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)),...(e.collections||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)),...e.members||[]];delete e.collections,delete e.manifests,e.members=t}return e.manifests&&(e.manifests=e.manifests.map((e=>this.traverseManifest("string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)))),e.collections&&(e.collections=e.collections.map((e=>this.traverseCollection("string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)))),e.members&&(e.members=e.members.map((e=>"string"==typeof e?e:this.traverseUnknown(e)))),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((e=>this.traverseSequence(e)))),e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseCanvas(e)))),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((e=>this.traverseAnnotation(e)))),e.otherContent&&(e.otherContent=e.otherContent.map((e=>this.traverseAnnotationList(e)))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const t=[...(e.ranges||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Range"}:e)),...(e.canvases||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Canvas"}:e)),...e.members||[]];delete e.ranges,delete e.canvases,e.members=t.length?t.map((e=>this.traverseUnknown(e))):void 0}return e}traverseAnnotationList(e){const t="string"==typeof e?{"@id":e,"@type":"sc:AnnotationList"}:e;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(t)),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map((e=>this.traverseAnnotation(e)))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(Array.isArray(e.resource)?e.resource=e.resource.map((e=>this.traverseContentResource(e))):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((e=>this.traverseAnnotationList(e)))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&"rdf:nil"!==e.default&&(e.default=this.traverseContentResource(e.default)),e.item&&"rdf:nil"!==e.item&&(e.item=e.item.map((e=>this.traverseContentResource(e)))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return"oa:Choice"===e["@type"]?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||"string"==typeof e)return e;switch(t(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"sc: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 t=Array.isArray(e),i=Array.isArray(e)?e:[e],n=[];for(const r of i)"string"==typeof r?n.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):n.push(this.traverseContentResource(r));return t||this.options.convertPropsToArray?n:n[0]}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const t=Array.isArray(e),i=Array.isArray(e)?e:[e],n=[];for(const r of i)n.push(this.traverseService(r));return t||this.options.convertPropsToArray?n:n[0]}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&&("string"==typeof e.within||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&("string"==typeof e.startCanvas?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&("string"==typeof e.contentLayer?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,t){if(!Array.isArray(e)){if(!this.options.convertPropsToArray)return this.traverseType(e,t);e=[e]}return e.map((e=>this.traverseType(e,t)))}traverseType(e,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}}const n="http://library.stanford.edu/iiif/image-api/compliance.html#level1",r="http://library.stanford.edu/iiif/image-api/compliance.html#level2",a="http://library.stanford.edu/iiif/image-api/conformance.html#level1",s="http://library.stanford.edu/iiif/image-api/conformance.html#level2",o="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",l="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",c="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",u="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",v="http://iiif.io/api/image/1/level1.json",p="http://iiif.io/api/image/1/profiles/level1.json",h="http://iiif.io/api/image/1/level2.json",f="http://iiif.io/api/image/1/profiles/level2.json",y="http://iiif.io/api/image/2/level1.json",d="http://iiif.io/api/image/2/profiles/level1.json",m="http://iiif.io/api/image/2/level2.json",g="http://iiif.io/api/image/2/profiles/level2.json",A="level1",C="level2",b="http://iiif.io/api/image/2/level1",w="http://iiif.io/api/image/2/level2",R=[b,w,n,r,a,s,o,l,c,u,v,p,h,f,y,d,m,g,A,C],S=["http://iiif.io/api/image/2/level0",b,w,"http://library.stanford.edu/iiif/image-api/compliance.html#level0",n,r,"http://library.stanford.edu/iiif/image-api/conformance.html#level0",a,s,"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",o,l,"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",c,u,"http://iiif.io/api/image/1/level0.json","http://iiif.io/api/image/1/profiles/level0.json",v,p,h,f,"http://iiif.io/api/image/2/level0.json","http://iiif.io/api/image/2/profiles/level0.json",y,d,m,g,"level0",A,C];function T(e){return Array.isArray(e)?e:[e]}const x="Attribution",j="http://example.org/provider",L="Unknown";function P(e,t="none"){if(!e)return{};const i=Array.isArray(e)?e:[e],n={};for(const r of i){if("string"==typeof r){n[t]=n[t]?n[t]:[],n[t].push(r||"");continue}if(!r["@language"]){n[t]=n[t]?n[t]:[],n[t].push(r["@value"]||"");continue}const e=r["@language"];n[e]=n[e]?n[e]:[],n[e].push(r["@value"]||"")}return n}function I(e){return Array.isArray(e)?I(e.find((e=>"string"==typeof e))):-1!==S.indexOf(e)?"level2":-1!==R.indexOf(e)?"level1":"string"==typeof e?e:void 0}function M(e){const t=Array.isArray(e)?e:[e];for(const i of t)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 O(e){for(const t of["sc","oa","dcterms","dctypes","iiif"])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}const k=["Collection","Manifest","Annotation","AnnotationPage","Range","Service"];function D(e){const t=e["@id"]||e.id;let i=e["@type"]||e.type;const n=e.profile||void 0,r=e["@context"]||void 0;if(n){const e=function(e){switch(e){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"}}(n);if(e)return e}if(r){const e=M(r);if(e)return e}if(i){if(Array.isArray(i)){if(-1!==i.indexOf("oa:CssStylesheet"))return"CssStylesheet";if(-1!==i.indexOf("cnt:ContentAsText"))return"TextualBody";i=i[0]}for(const e of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${e}:`)){i=i.slice(e.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(i&&-1!==k.indexOf(i))return i;if(e.format){if(e.format.startsWith("image/"))return"Image";if(e.format.startsWith("text/"))return"Text";if("application/pdf"===e.format)return"Text";if(e.format.startsWith("application/"))return"Dataset"}return t&&(t.endsWith(".jpg")||t.endsWith(".png")||t.endsWith(".jpeg"))?"Image":i||"unknown"}const _=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function q(e){const t=e.match(_);return t?t[0]:e}const U=["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 E(e){if(e){const t=Array.isArray(e)?e:[e],i=[];for(const e of t)"http://iiif.io/api/presentation/2/context.json"===e&&i.push("http://iiif.io/api/presentation/3/context.json"),-1===U.indexOf(e)&&i.push(e);if(t.length)return 1===i.length?i[0]:i}}function $(e){for(const t in e)void 0!==e[t]&&null!==e[t]||delete e[t];return e}let W=0;function F(e,t){const i=encodeURI(e.id||e["@id"]||"").trim();return i&&t?`${i}/${t}`:i||(W++,`http://example.org/${e["@type"]}${t?`/${t}`:""}/${W}`)}function z(e){const t=[...e.behavior||[]];let i;return e.viewingHint&&t.push(e.viewingHint),Array.isArray(e.motivation)?i=e.motivation.map(O):e.motivation&&(i=O(e.motivation)),{"@context":e["@context"]?E(e["@context"]):void 0,id:(e["@id"]||F(e)).trim(),type:D(e),behavior:t.length?t:void 0,height:e.height?e.height:void 0,width:e.width?e.width:void 0,motivation:i,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function N(e){const[t,i]=function(e,t="Rights/License",i="none"){let n=null;const r=[],a=Array.isArray(e)?e:[e];for(const s of a){const e=s?q(s):void 0;!e||-1===e.indexOf("creativecommons.org")&&-1===e.indexOf("rightsstatements.org")?e&&r.push({label:{[i]:[t]},value:{[i]:[e]}}):n=e.startsWith("https://")?`http://${e.slice(8)}`:e}return[n,r]}(e.license),n=[...e.metadata?(r=e.metadata,r?r.map((e=>({label:P(e.label),value:P(e.value)}))):[]):[],...i];var r;return{rights:t,metadata:n.length?n:void 0,label:e.label?P(e.label):void 0,requiredStatement:e.attribution?{label:P(x),value:P(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?P(e.description):void 0,thumbnail:e.thumbnail}}function B(e){if(!e.within)return;const t=Array.isArray(e.within)?e.within:[e.within],i=[];for(const n of t)if("string"==typeof n){if(n&&"sc:Manifest"===e["@type"])i.push({id:n,type:"Collection"})}else n["@id"]&&i.push({id:n["@id"],type:D(n)});return i.length?i:void 0}function H(e){const t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],i=e.contentLayer;return{provider:e.logo||t.length?[{id:j,type:"Agent",homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:P(L)}]:void 0,partOf:B(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?T(e.service):void 0,supplementary:i?[i]:void 0}}function J(e){const t=e;return $({...z(t),...N(t),...H(t),...(i=t,{chars:i.chars,format:i.format?i.format:void 0,language:i.language})});var i}const V=new i({collection:[function(e){return $({...z(e),...N(e),...H(e),items:e.members})}],manifest:[function(e){const t=[],i=[];for(const r of e.sequences||[])r.canvases.length&&t.push(...r.canvases),r.behavior&&i.push(...r.behavior);const n=z(e);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),$({...n,...N(e),...H(e),items:t,structures:e.structures})}],canvas:[function(e){return $({...z(e),...N(e),...H(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:F(e,"annotation-page"),type:"AnnotationPage",items:e.images}]:void 0})}],annotationList:[function(e){return $({...z(e),...N(e),...H(e),items:e.resources&&e.resources.length?e.resources:void 0})}],sequence:[function(e){return e.canvases&&0!==e.canvases.length?{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[]}:{canvases:[],behavior:[]}}],annotation:[function(e){return $({...z(e),...N(e),...H(e),target:function e(t){if(Array.isArray(t)){if(t.length>1)return{type:"List",items:t.map(e)};t=t[0]}if("string"==typeof t)return encodeURI(t).trim();if("@type"in t){let e;if("string"==typeof t.full)e=t.full;else if("dctypes:Image"===t.full["@type"])e={id:t.full["@id"],type:"Image"};else{if("sc:Canvas"!==t.full["@type"])throw new Error(`Unsupported source type on annotation: ${t.full["@type"]}`);e={id:t.full["@id"],type:"Canvas"}}return{type:"SpecificResource",source:e,selector:G(t.selector)}}return encodeURI(t["@id"]).trim()}(e.on),body:Array.isArray(e.resource)?e.resource.map(J):J(e.resource)})}],contentResource:[J],choice:[function(e){const t=[];return e.default&&"rdf:nil"!==e.default&&t.push(e.default),e.item&&"rdf:nil"!==e.item&&t.push(...e.item),{...z(e),...N(e),items:t}}],range:[function(e){return $({...z(e),...N(e),...H(e),items:e.members})}],service:[function(e){const{"@id":t,"@type":i,"@context":n,profile:r,...a}=e,s={};return t&&(s["@id"]=t),s["@type"]=D(e),"unknown"===s["@type"]&&(n&&n.length&&(s["@context"]=n),s["@type"]="Service"),r&&(s.profile=I(r)),$({...s,...a})}],layer:[function(e){return $({...z(e),...N(e),...H(e)})}]});function Y(e){return e&&e["@context"]&&("http://iiif.io/api/presentation/2/context.json"===e["@context"]||-1!==e["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")||"http://www.shared-canvas.org/ns/context.json"===e["@context"])||"http://iiif.io/api/image/2/context.json"===e["@context"]?V.traverseUnknown(e):e}function G(e){if((Array.isArray(e["@type"])&&e["@type"].includes("oa:SvgSelector")||"oa:SvgSelector"==e["@type"])&&("chars"in e||"value"in e))return{type:"SvgSelector",value:"chars"in e?e.chars:e.value};if("oa:FragmentSelector"===e["@type"])return{type:"FragmentSelector",value:e.value};if("oa:Choice"===e["@type"])return[G(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(G)];if("iiif:ImageApiSelector"==e["@type"])return{type:"ImageApiSelector",region:"region"in e?e.region:void 0,rotation:"rotation"in e?e.rotation:void 0};throw new Error(`Unsupported selector type: ${e["@type"]}`)}const K=Object.freeze(Object.defineProperty({__proto__:null,types:e,identifyResource:t,Traverse:i,convertLanguageMapping:P,getProfile:I,getTypeFromContext:M,presentation2to3:V,convertPresentation2:Y},Symbol.toStringTag,{value:"Module"})),Q=[];Object.freeze(Q);const X={id:"https://iiif-parser/annotation",type:"Annotation",behavior:Q,label:null,thumbnail:Q,summary:null,requiredStatement:null,metadata:Q,seeAlso:Q,homepage:Q,logo:Q,rendering:Q,service:Q,accessibility:Q,audience:Q,body:Q,bodyValue:null,canonical:null,created:null,creator:Q,generated:null,generator:Q,modified:null,motivation:Q,rights:Q,stylesheet:null,target:Q,timeMode:void 0,via:Q,partOf:Q},Z={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:Q,motivation:null,label:null,thumbnail:Q,summary:null,requiredStatement:null,metadata:Q,rights:null,provider:Q,items:Q,seeAlso:Q,homepage:Q,logo:Q,rendering:Q,service:Q},ee={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:Q,motivation:null,thumbnail:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:Q,rights:null,navDate:null,provider:Q,items:Q,annotations:Q,seeAlso:Q,homepage:Q,logo:Q,partOf:Q,rendering:Q,service:Q,duration:0,height:0,width:0},te={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:Q,motivation:null,thumbnail:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:Q,rights:null,navDate:null,provider:Q,items:Q,annotations:Q,seeAlso:Q,homepage:Q,logo:Q,partOf:Q,rendering:Q,service:Q,services:Q},ie={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:Q,behavior:Q,homepage:Q,items:Q,label:null,logo:Q,metadata:Q,motivation:null,navDate:null,provider:Q,partOf:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:Q,requiredStatement:null,rights:null,seeAlso:Q,service:Q,services:Q,start:null,structures:Q,summary:null,thumbnail:Q,viewingDirection:"left-to-right"},ne={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:Q,motivation:null,thumbnail:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:Q,rights:null,navDate:null,provider:Q,items:Q,annotations:Q,seeAlso:Q,homepage:Q,logo:Q,partOf:Q,rendering:Q,service:Q,start:null,supplementary:null,viewingDirection:"left-to-right"},re={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:Q,seeAlso:Q,homepage:Q},ae=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function se(e){if(null==e)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if("object"!=typeof e)throw new Error(typeof e+" is not a valid entity");if("string"==typeof e.type){const t=ae.indexOf(e.type);if(-1!==t)return ae[t]}if(e.profile)return"Service";throw new Error("Resource type is not known")}class oe{constructor(e,t={}){__publicField(this,"traversals"),__publicField(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...t}}static all(e){return new oe({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((e=>this.traverseType(e,this.traversals.contentResource)))),e.provider&&(e.provider=e.provider.map((e=>this.traverseAgent(e)))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.service&&(e.service=T(e.service).map((e=>this.traverseType(e,this.traversals.service)))),e.services&&(e.services=e.services.map((e=>this.traverseType(e,this.traversals.service)))),e.logo&&(e.logo=e.logo.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.homepage&&(e.homepage=e.homepage.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.partOf&&(e.partOf=e.partOf.map((e=>"string"!=typeof e&&e.type?"Canvas"===e.type?this.traverseType(e,this.traversals.canvas):"AnnotationCollection"===e.type?this.traverseType(e,this.traversals.annotationCollection):this.traverseType(e,this.traversals.contentResource):this.traverseType(e,this.traversals.contentResource)))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.supplementary&&(e.supplementary=e.supplementary.map((e=>this.traverseType(e,this.traversals.contentResource)))),e}traverseCollectionItems(e){return e.items&&e.items.map((e=>"Collection"===e.type?this.traverseCollection(e):this.traverseManifest(e))),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((e=>this.traverseCanvas(e)))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseAnnotationPage(e))),e}traverseInlineAnnotationPages(e){return"string"!=typeof e&&e?(e.annotations&&(e.annotations=e.annotations.map((e=>this.traverseAnnotationPage(e)))),e):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((e=>this.traverseAnnotation(e)))),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((e=>this.traverseContentResource(e))):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseCanvas(e.posterCanvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseCanvas(e.placeholderCanvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseCanvas(e.accompanyingCanvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return"string"!=typeof e&&e?(e&&e.service&&(e.service=T(e.service||[]).map((e=>this.traverseType(e,this.traversals.service)))),e):e}traverseContentResource(e){return"Choice"===e.type&&(e.items=e.items.map((e=>this.traverseContentResource(e)))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map((e=>"string"==typeof e?this.traverseCanvas({id:e,type:"Canvas"}):"Manifest"===e.type?this.traverseManifest(e):this.traverseRange(e)))),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,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const t=se(e);switch(t){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 ${t}`)}}}function le(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function ce(e,t){if("string"==typeof e)return{id:e,type:t};if(!e.id)throw new Error(`Invalid resource does not have an ID (${t})`);return e}function ue(e){return(t,i)=>{const n=e[t]?e[t]:{};return e=>{const r=ce(e,i||t);return r&&r.id&&t?(n[r.id]=n[r.id]?function(e,t){if("string"==typeof e)return e;if(t.id!==e.id||t.type!==e.type)throw new Error("Can only merge entities with identical identifiers and type!");return ve({...e},t)}(n[r.id],r):Object.assign({},r),{id:r.id,type:"ContentResource"===t?t:r.type}):r}}}function ve(e,t){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw new Error("Cannot merge array with non-array");const i=[...e];for(const n of t)if(null!=n)if(Array.isArray(n))i.push(n);else if("object"==typeof n&&n.id&&n.type){const e=i.findIndex((e=>e.id===n.id&&e.type===n.type));e>=0&&(i[e]=ve(i[e],n))}else-1===e.indexOf(n)&&i.push(n);return i}if("object"==typeof e){if(Array.isArray(t)||"object"!=typeof t)throw new Error("Cannot merge object with non-object");const i={...e};for(const[e,n]of Object.entries(t)){const t=i[e];i[e]=t!==Q&&t?ve(t,n):n}return i}return e||t}function pe(e){const t=JSON.stringify(e);let i=5381,n=t.length;for(;n;)i=33*i^t.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function he(e){return t=>"string"==typeof t?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${pe(t)}`,type:e,...t}}function fe(e){return t=>({...e,...t})}function ye(e){return Array.isArray(e)?e:[e]}function de(e){return e.body&&(e.body=ye(e.body)),e.seeAlso&&(e.seeAlso=ye(e.seeAlso)),e.body&&(e.body=ye(e.body)),e.audience&&(e.audience=ye(e.audience)),e.accessibility&&(e.accessibility=ye(e.accessibility)),e.motivation&&(e.motivation=ye(e.motivation)),e}const me="__$UNSET$__",ge="__$UNWRAP$__";function Ae(e){const t={};for(const[i,n]of e){if(i===ge&&n!==me)return n;n!==me&&null!=n&&(t[i]=n)}return t}function Ce(e){if(!e)return;const t=Object.keys(e);if(0!==t.length){if(1===t.length){const i=t[0];if(!i)return"";const n=(e[i]||[]).join("");return"@none"===i||"none"===i||"en"===i?n:{"@language":i,"@value":n}}return t.map((t=>({"@language":t,"@value":(e[t]||[]).join("")})))}}function be(e){return Array.isArray(e)?e.map((e=>be(e))):"string"==typeof e?e:e.type&&"Canvas"===e.type?e.id:e}function we(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function Re(e){if(e){if("string"==typeof e)return{"@id":e};if("@id"in e){const t={...e};return delete t["@type"],t}return{"@context":"http://iiif.io/api/image/2/context.json","@id":e.id,profile:`http://iiif.io/api/image/2/profiles/${e.profile}.json`}}}function Se(e,t){return[["@id",e.id],["@type",t],["format",e.format],["height",e.height],["width",e.width],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0]]}function*Te(e){const t=e.provider?yield e.provider[0]:void 0;return[["label",Ce(e.label)],["metadata",e.metadata&&e.metadata.length?e.metadata.map((e=>({label:Ce(e.label)||"",value:Ce(e.value)||""}))):void 0],["description",Ce(e.summary)],["thumbnail",we(yield e.thumbnail)],["navDate",e.navDate],["logo",t?we(t.logo):void 0],["homepage",t?t.homepage:void 0],["attribution",e.requiredStatement?Ce(e.requiredStatement.value):void 0]]}function*xe(e){return[["seeAlso",we(yield e.seeAlso)],["service",we((e.service||[]).map(Re))],["rendering",we(yield e.rendering)],["startCanvas",e.start?e.start.id:void 0]]}const je={Manifest:function*(e){return[...Se(e,"sc:Manifest"),...yield*Te(e),...yield*xe(e),["sequences",[{"@id":`${e.id}/sequence0`,"@type":"sc:Sequence",canvases:yield e.items}]],["structures",yield e.structures]]},Canvas:function*(e){const t=(yield e.items)[0];return[...Se(e,"sc:Canvas"),...yield*Te(e),...yield*xe(e),["images",t?[t.resources]:void 0],["annotations",e.annotations&&e.annotations.length?we(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...Se(e,"sc:AnnotationList"),...yield*Te(e),["resources",e.items&&e.items.length?we(yield e.items):void 0]]},Annotation:function*(e){return[["@id",e.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",be(e.target)],["resource",we(yield e.body,!0)]]},ContentResource:function*(e){return"Image"===e.type?[...Se(e,"dctypes:Image"),...yield*Te(e),...yield*xe(e)]:[...Se(e,void 0),...yield*Te(e)]},AnnotationCollection:function*(e){return[["@id",e.id],["@type","sc:Layer"],["label",Ce(e.label)]]},Collection:function*(e){return[...Se(e,"sc:Collection"),...yield*Te(e),...yield*xe(e),["members",yield*e.items]]},Range:function*(e){const t=[],i=[];if(e.items)for(const n of e.items){const r=yield n;t.push({"@id":n.id,"@type":n.type,label:r?r.label:void 0,within:e.id}),"Canvas"===n.type&&i.push(n.id)}return[...Se(e,"sc:Range"),...yield*Te(e),...yield*xe(e),["canvases",i.length===t.length?i:void 0],["members",i.length!==t.length?t:void 0]]}};function Le(e){var t;return[["id",(null==(t=e.id)?void 0:t.startsWith("vault://"))?void 0:e.id],["type",e.type],["format",e.format],["profile",e.profile],["height",e.height],["width",e.width],["duration",e.duration||void 0],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0],["behavior",e.behavior&&e.behavior.length?e.behavior:void 0],["timeMode",e.timeMode],["motivation",Array.isArray(e.motivation)?e.motivation[0]:e.motivation]]}function Pe(e){if(e&&0!==e.length)return e}function Ie(e){if(e&&e.type&&"ImageService2"===e.type){const{id:t,type:i,profile:n,...r}=e,a="string"==typeof n?n:Array.isArray(n)?n.find((e=>"string"==typeof e)):"";return{"@id":t,"@type":i,profile:a?a.startsWith("http")?a:`http://iiif.io/api/image/2/${a}.json`:"http://iiif.io/api/image/2/level0.json",...r}}return e}function Me(e){if(e&&0!==e.length)return e.map(Ie)}function*Oe(e){return[["label",e.label],["metadata",Pe(e.metadata)],["summary",e.summary],["requiredStatement",e.requiredStatement],["rights",e.rights],["navDate",e.navDate],["language",e.language],["thumbnail",Pe(yield e.thumbnail)],["placeholderCanvas",yield e.placeholderCanvas],["accompanyingCanvas",yield e.accompanyingCanvas],["provider",Pe(yield e.provider)]]}function*ke(e){return[["seeAlso",Pe(yield e.seeAlso)],["service",Me(e.service)],["services",Me(e.services)],["rendering",Pe(yield e.rendering)],["supplementary",Pe(yield e.supplementary)],["homepage",Pe(yield e.homepage)],["logo",Pe(yield e.logo)],["partOf",Pe(yield e.partOf)],["start",e.start]]}const De={Manifest:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...Le(e),...yield*Oe(e),...yield*ke(e),["items",yield e.items],["structures",Pe(yield e.structures)],["annotations",Pe(yield e.annotations)]]:[...Le(e),...yield*Oe(e)]},Canvas:function*(e){return[...Le(e),...yield*Oe(e),...yield*ke(e),["items",yield e.items],["annotations",Pe(yield e.annotations)]]},Agent:function*(e){return[["id",e.id],["type","Agent"],["label",e.label],...yield*ke(e)]},AnnotationPage:function*(e){return[...Object.entries(e).map((([e,t])=>[e,Array.isArray(t)?Pe(t):t])).filter((([e,t])=>"items"!==e)),...yield*ke(e),["items",yield e.items]]},Service:function*(e){return[[ge,Ie(e)]]},Annotation:function*(e){const t=Object.entries(e).map((([e,t])=>"motivation"===e?[e,Array.isArray(t)?t[0]:t]:[e,Array.isArray(t)?Pe(t):t])).filter((([e])=>"body"!==e)),i=yield e.body;return[...t,["body",1===i.length?i[0]:i]]},ContentResource:function*(e){return[...Le(e),...yield*Oe(e),...yield*ke(e),["annotations",Pe(yield e.annotations)],["items",Pe(yield e.items)]]},AnnotationCollection:function*(e){return[["id",e.id],["type","AnnotationCollection"],["label",e.label]]},Collection:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...Le(e),...yield*Oe(e),...yield*ke(e),["items",Pe(yield e.items)]]:[...Le(e),...yield*Oe(e)]},Range:function*(e){const t=[];for(const i of e.items)"Range"===i.type?t.push(yield i):t.push(i);return[...Le(e),...yield*Oe(e),...yield*ke(e),["items",t],["annotations",Pe(yield e.annotations)]]}};return{Presentation2:K,Presentation3:Object.freeze(Object.defineProperty({__proto__:null,EMPTY:Q,emptyAnnotation:X,emptyAnnotationPage:Z,emptyCanvas:ee,emptyCollection:te,emptyManifest:ie,emptyRange:ne,emptyAgent:re,defaultEntities:{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},getDefaultEntities:le,normalize:function(e){const t=Y(e),i={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},n={},r=ue(i),a=function(e){return(t,i)=>n=>{const{id:r,type:a}=ce(n,i||t);if(void 0===r)throw new Error("Found invalid entity without an ID.");return e[r]="ContentResource"===t?t:a,n}}(n);return{entities:i,resource:new oe({collection:[fe(te),a("Collection"),r("Collection")],manifest:[fe(ie),a("Manifest"),r("Manifest")],canvas:[fe(ee),a("Canvas"),r("Canvas")],annotationPage:[he("AnnotationPage"),fe(Z),a("AnnotationPage"),r("AnnotationPage")],annotation:[he("Annotation"),de,a("Annotation"),r("Annotation")],contentResource:[he("ContentResource"),a("ContentResource"),r("ContentResource")],range:[fe(ne),a("Range","Canvas"),r("Range","Canvas")],agent:[fe(re),a("Agent"),r("Agent")]}).traverseUnknown(t),mapping:n}},types:ae,identifyResource:se,Traverse:oe,UNSET:me,UNWRAP:ge,serializedFieldsToObject:Ae,serialize:function(e,t,i){if(!t.type||!t.id)throw new Error("Unknown entity");if(!i[t.type])throw new Error(`Serializer not found for ${t.type}`);return function n(r){const a=i[r.type];if(!a)return me;const s=function(e,t){const i=e.requests[t],n=e.mapping[t];if(n&&(!i||!i.resourceUri||e.entities[n][i.resourceUri]))return e.entities[n][i?i.resourceUri:t]}(e,r.id)||(r.id&&r.type?r:null);if(!s)return me;const o=a(s,e,{isTopLevel:t.id===r.id});let l=o.next();for(;!l.done;){const e=l.value;let t=me;if(e)if(Array.isArray(e)){const i=[];for(const t of e)i.push(n(t));t=i}else t=n(e);l=o.next(t)}return l.value===me?me:Ae(l.value)}(t)},languageString2to3:Ce,serializeConfigPresentation2:je,serializeConfigPresentation3:De},Symbol.toStringTag,{value:"Module"}))}})); | ||
| var __defProp=Object.defineProperty,__defNormalProp=(e,t,i)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,__publicField=(e,t,i)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,i),i);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).IIIFParser=t()}(this,(function(){"use strict";const e=["sc:Collection","sc:Manifest","sc:Canvas","sc:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function t(t){if(null==t)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("object"!=typeof t)throw new Error(typeof t+" is not a valid entity");if("string"==typeof t["@type"]){const i=e.indexOf(t["@type"]);if(-1!==i)return e[i]}if(t.profile)return"Service";if(t.format)return"ContentResource";if(t["@type"])return"ContentResource";throw new Error("Resource type is not known")}class i{constructor(e,t={}){__publicField(this,"traversals"),__publicField(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...e},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...t}}static all(e){return new i({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 t=[...(e.manifests||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)),...(e.collections||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)),...e.members||[]];delete e.collections,delete e.manifests,e.members=t}return e.manifests&&(e.manifests=e.manifests.map((e=>this.traverseManifest("string"==typeof e?{"@id":e,"@type":"sc:Manifest"}:e)))),e.collections&&(e.collections=e.collections.map((e=>this.traverseCollection("string"==typeof e?{"@id":e,"@type":"sc:Collection"}:e)))),e.members&&(e.members=e.members.map((e=>"string"==typeof e?e:this.traverseUnknown(e)))),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((e=>this.traverseSequence(e)))),e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseCanvas(e)))),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((e=>this.traverseAnnotation(e)))),e.otherContent&&(e.otherContent=e.otherContent.map((e=>this.traverseAnnotationList(e)))),e}traverseRange(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(e))),this.traversals.range)}traverseRangeItems(e){if(this.options.mergeMemberProperties){const t=[...(e.ranges||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Range"}:e)),...(e.canvases||[]).map((e=>"string"==typeof e?{"@id":e,"@type":"sc:Canvas"}:e)),...e.members||[]];delete e.ranges,delete e.canvases,e.members=t.length?t.map((e=>this.traverseUnknown(e))):void 0}return e}traverseAnnotationList(e){const t="string"==typeof e?{"@id":e,"@type":"sc:AnnotationList"}:e;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(t)),this.traversals.annotationList)}traverseAnnotationListItems(e){return e.resources&&(e.resources=e.resources.map((e=>this.traverseAnnotation(e)))),e}traverseAnnotation(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(e))),this.traversals.annotation)}traverseAnnotationItems(e){return e.resource&&(Array.isArray(e.resource)?e.resource=e.resource.map((e=>this.traverseContentResource(e))):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((e=>this.traverseAnnotationList(e)))),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&"rdf:nil"!==e.default&&(e.default=this.traverseContentResource(e.default)),e.item&&"rdf:nil"!==e.item&&(e.item=e.item.map((e=>this.traverseContentResource(e)))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return"oa:Choice"===e["@type"]?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e["@type"]||"string"==typeof e)return e;switch(t(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"sc: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 t=Array.isArray(e),i=Array.isArray(e)?e:[e],n=[];for(const r of i)"string"==typeof r?n.push(this.traverseContentResource({"@id":r,"@type":"dctypes:Image"})):n.push(this.traverseContentResource(r));return t||this.options.convertPropsToArray?n:n[0]}traverseDescriptive(e){return e.thumbnail&&(e.thumbnail=this.traverseImageResource(e.thumbnail)),e.logo&&(e.logo=this.traverseImageResource(e.logo)),e}traverseOneOrMoreServices(e){const t=Array.isArray(e),i=Array.isArray(e)?e:[e],n=[];for(const r of i)n.push(this.traverseService(r));return t||this.options.convertPropsToArray?n:n[0]}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&&("string"==typeof e.within||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&("string"==typeof e.startCanvas?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&("string"==typeof e.contentLayer?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":"sc:Layer"}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,t){if(!Array.isArray(e)){if(!this.options.convertPropsToArray)return this.traverseType(e,t);e=[e]}return e.map((e=>this.traverseType(e,t)))}traverseType(e,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}}const n="http://library.stanford.edu/iiif/image-api/compliance.html#level1",r="http://library.stanford.edu/iiif/image-api/compliance.html#level2",a="http://library.stanford.edu/iiif/image-api/conformance.html#level1",s="http://library.stanford.edu/iiif/image-api/conformance.html#level2",o="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",l="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",c="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",u="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",v="http://iiif.io/api/image/1/level1.json",p="http://iiif.io/api/image/1/profiles/level1.json",h="http://iiif.io/api/image/1/level2.json",f="http://iiif.io/api/image/1/profiles/level2.json",y="http://iiif.io/api/image/2/level1.json",d="http://iiif.io/api/image/2/profiles/level1.json",m="http://iiif.io/api/image/2/level2.json",g="http://iiif.io/api/image/2/profiles/level2.json",A="level1",C="level2",b="http://iiif.io/api/image/2/level1",w="http://iiif.io/api/image/2/level2",R=[b,w,n,r,a,s,o,l,c,u,v,p,h,f,y,d,m,g,A,C],S=["http://iiif.io/api/image/2/level0",b,w,"http://library.stanford.edu/iiif/image-api/compliance.html#level0",n,r,"http://library.stanford.edu/iiif/image-api/conformance.html#level0",a,s,"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",o,l,"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",c,u,"http://iiif.io/api/image/1/level0.json","http://iiif.io/api/image/1/profiles/level0.json",v,p,h,f,"http://iiif.io/api/image/2/level0.json","http://iiif.io/api/image/2/profiles/level0.json",y,d,m,g,"level0",A,C];function T(e){return Array.isArray(e)?e:[e]}const x="Attribution",j="http://example.org/provider",L="Unknown";function P(e,t="none"){if(!e)return{};const i=Array.isArray(e)?e:[e],n={};for(const r of i){if("string"==typeof r){n[t]=n[t]?n[t]:[],n[t].push(r||"");continue}if(!r["@language"]){n[t]=n[t]?n[t]:[],n[t].push(r["@value"]||"");continue}const e=r["@language"];n[e]=n[e]?n[e]:[],n[e].push(r["@value"]||"")}return n}function I(e){return Array.isArray(e)?I(e.find((e=>"string"==typeof e))):-1!==S.indexOf(e)?"level2":-1!==R.indexOf(e)?"level1":"string"==typeof e?e:void 0}function M(e){const t=Array.isArray(e)?e:[e];for(const i of t)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 O(e){for(const t of["sc","oa","dcterms","dctypes","iiif"])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}const k=["Collection","Manifest","Annotation","AnnotationPage","Range","Service"];function D(e){const t=e["@id"]||e.id;let i=e["@type"]||e.type;const n=e.profile||void 0,r=e["@context"]||void 0;if(n){const e=function(e){switch(e){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"}}(n);if(e)return e}if(r){const e=M(r);if(e)return e}if(i){if(Array.isArray(i)){if(-1!==i.indexOf("oa:CssStylesheet"))return"CssStylesheet";if(-1!==i.indexOf("cnt:ContentAsText"))return"TextualBody";i=i[0]}for(const e of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${e}:`)){i=i.slice(e.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(i&&-1!==k.indexOf(i))return i;if(e.format){if(e.format.startsWith("image/"))return"Image";if(e.format.startsWith("text/"))return"Text";if("application/pdf"===e.format)return"Text";if(e.format.startsWith("application/"))return"Dataset"}return t&&(t.endsWith(".jpg")||t.endsWith(".png")||t.endsWith(".jpeg"))?"Image":i||"unknown"}const _=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function q(e){const t=e.match(_);return t?t[0]:e}const U=["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 E(e){if(e){const t=Array.isArray(e)?e:[e],i=[];for(const e of t)"http://iiif.io/api/presentation/2/context.json"===e&&i.push("http://iiif.io/api/presentation/3/context.json"),-1===U.indexOf(e)&&i.push(e);if(t.length)return 1===i.length?i[0]:i}}function $(e){for(const t in e)void 0!==e[t]&&null!==e[t]||delete e[t];return e}let W=0;function F(e,t){const i=encodeURI(e.id||e["@id"]||"").trim();return i&&t?`${i}/${t}`:i||(W++,`http://example.org/${e["@type"]}${t?`/${t}`:""}/${W}`)}function z(e){const t=[...e.behavior||[]];let i;return e.viewingHint&&t.push(e.viewingHint),Array.isArray(e.motivation)?i=e.motivation.map(O):e.motivation&&(i=O(e.motivation)),{"@context":e["@context"]?E(e["@context"]):void 0,id:(e["@id"]||F(e)).trim(),type:D(e),behavior:t.length?t:void 0,height:e.height?e.height:void 0,width:e.width?e.width:void 0,motivation:i,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function N(e){const[t,i]=function(e,t="Rights/License",i="none"){let n=null;const r=[],a=Array.isArray(e)?e:[e];for(const s of a){const e=s?q(s):void 0;!e||-1===e.indexOf("creativecommons.org")&&-1===e.indexOf("rightsstatements.org")?e&&r.push({label:{[i]:[t]},value:{[i]:[e]}}):n=e.startsWith("https://")?`http://${e.slice(8)}`:e}return[n,r]}(e.license),n=[...e.metadata?(r=e.metadata,r?r.map((e=>({label:P(e.label),value:P(e.value)}))):[]):[],...i];var r;return{rights:t,metadata:n.length?n:void 0,label:e.label?P(e.label):void 0,requiredStatement:e.attribution?{label:P(x),value:P(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?P(e.description):void 0,thumbnail:e.thumbnail}}function B(e){if(!e.within)return;const t=Array.isArray(e.within)?e.within:[e.within],i=[];for(const n of t)if("string"==typeof n){if(n&&"sc:Manifest"===e["@type"])i.push({id:n,type:"Collection"})}else n["@id"]&&i.push({id:n["@id"],type:D(n)});return i.length?i:void 0}function H(e){const t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],i=e.contentLayer;return{provider:e.logo||t.length?[{id:j,type:"Agent",homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:P(L)}]:void 0,partOf:B(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?T(e.service):void 0,supplementary:i?[i]:void 0}}function J(e){const t=e;return $({...z(t),...N(t),...H(t),...(i=t,{chars:i.chars,format:i.format?i.format:void 0,language:i.language})});var i}const V=new i({collection:[function(e){return $({...z(e),...N(e),...H(e),items:e.members})}],manifest:[function(e){const t=[],i=[];for(const r of e.sequences||[])r.canvases.length&&t.push(...r.canvases),r.behavior&&i.push(...r.behavior);const n=z(e);return i.length&&(n.behavior?n.behavior.push(...i):n.behavior=i),$({...n,...N(e),...H(e),items:t,structures:e.structures})}],canvas:[function(e){return $({...z(e),...N(e),...H(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:F(e,"annotation-page"),type:"AnnotationPage",items:e.images}]:void 0})}],annotationList:[function(e){return $({...z(e),...N(e),...H(e),items:e.resources&&e.resources.length?e.resources:void 0})}],sequence:[function(e){return e.canvases&&0!==e.canvases.length?{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[]}:{canvases:[],behavior:[]}}],annotation:[function(e){return $({...z(e),...N(e),...H(e),target:function e(t){if(Array.isArray(t)){if(t.length>1)return{type:"List",items:t.map(e)};t=t[0]}if("string"==typeof t)return encodeURI(t).trim();if("@type"in t){let e;if("string"==typeof t.full)e=t.full;else if("dctypes:Image"===t.full["@type"])e={id:t.full["@id"],type:"Image"};else{if("sc:Canvas"!==t.full["@type"])throw new Error(`Unsupported source type on annotation: ${t.full["@type"]}`);e={id:t.full["@id"],type:"Canvas"}}return{type:"SpecificResource",source:e,selector:G(t.selector)}}return encodeURI(t["@id"]).trim()}(e.on),body:Array.isArray(e.resource)?e.resource.map(J):J(e.resource)})}],contentResource:[J],choice:[function(e){const t=[];return e.default&&"rdf:nil"!==e.default&&t.push(e.default),e.item&&"rdf:nil"!==e.item&&t.push(...e.item),{...z(e),...N(e),items:t}}],range:[function(e){return $({...z(e),...N(e),...H(e),items:e.members})}],service:[function(e){const{"@id":t,"@type":i,"@context":n,profile:r,...a}=e,s={};return t&&(s["@id"]=t),s["@type"]=D(e),"unknown"===s["@type"]&&(n&&n.length&&(s["@context"]=n),s["@type"]="Service"),r&&(s.profile=I(r)),$({...s,...a})}],layer:[function(e){return $({...z(e),...N(e),...H(e)})}]});function Y(e){return e&&e["@context"]&&("http://iiif.io/api/presentation/2/context.json"===e["@context"]||-1!==e["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")||"http://www.shared-canvas.org/ns/context.json"===e["@context"])||"http://iiif.io/api/image/2/context.json"===e["@context"]?V.traverseUnknown(e):e}function G(e){if((Array.isArray(e["@type"])&&e["@type"].includes("oa:SvgSelector")||"oa:SvgSelector"==e["@type"])&&("chars"in e||"value"in e))return{type:"SvgSelector",value:"chars"in e?e.chars:e.value};if("oa:FragmentSelector"===e["@type"])return{type:"FragmentSelector",value:e.value};if("oa:Choice"===e["@type"])return[G(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(G)];if("iiif:ImageApiSelector"==e["@type"])return{type:"ImageApiSelector",region:"region"in e?e.region:void 0,rotation:"rotation"in e?e.rotation:void 0};throw new Error(`Unsupported selector type: ${e["@type"]}`)}const K=Object.freeze(Object.defineProperty({__proto__:null,types:e,identifyResource:t,Traverse:i,convertLanguageMapping:P,getProfile:I,getTypeFromContext:M,presentation2to3:V,convertPresentation2:Y},Symbol.toStringTag,{value:"Module"})),Q=[];Object.freeze(Q);const X={id:"https://iiif-parser/annotation",type:"Annotation",behavior:Q,label:null,thumbnail:Q,summary:null,requiredStatement:null,metadata:Q,seeAlso:Q,homepage:Q,logo:Q,rendering:Q,service:Q,accessibility:Q,audience:Q,body:Q,bodyValue:null,canonical:null,created:null,creator:Q,generated:null,generator:Q,modified:null,motivation:Q,rights:Q,stylesheet:null,target:Q,timeMode:void 0,via:Q,partOf:Q},Z={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:Q,motivation:null,label:null,thumbnail:Q,summary:null,requiredStatement:null,metadata:Q,rights:null,provider:Q,items:Q,seeAlso:Q,homepage:Q,logo:Q,rendering:Q,service:Q},ee={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:Q,motivation:null,thumbnail:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:Q,rights:null,navDate:null,provider:Q,items:Q,annotations:Q,seeAlso:Q,homepage:Q,logo:Q,partOf:Q,rendering:Q,service:Q,duration:0,height:0,width:0},te={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:Q,motivation:null,thumbnail:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:Q,rights:null,navDate:null,provider:Q,items:Q,annotations:Q,seeAlso:Q,homepage:Q,logo:Q,partOf:Q,rendering:Q,service:Q,services:Q},ie={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:Q,behavior:Q,homepage:Q,items:Q,label:null,logo:Q,metadata:Q,motivation:null,navDate:null,provider:Q,partOf:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,rendering:Q,requiredStatement:null,rights:null,seeAlso:Q,service:Q,services:Q,start:null,structures:Q,summary:null,thumbnail:Q,viewingDirection:"left-to-right"},ne={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:Q,motivation:null,thumbnail:Q,posterCanvas:null,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:Q,rights:null,navDate:null,provider:Q,items:Q,annotations:Q,seeAlso:Q,homepage:Q,logo:Q,partOf:Q,rendering:Q,service:Q,start:null,supplementary:null,viewingDirection:"left-to-right"},re={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:Q,seeAlso:Q,homepage:Q},ae=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function se(e){if(null==e)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if("object"!=typeof e)throw new Error(typeof e+" is not a valid entity");if("string"==typeof e.type){const t=ae.indexOf(e.type);if(-1!==t)return ae[t]}if(e.profile)return"Service";throw new Error("Resource type is not known")}class oe{constructor(e,t={}){__publicField(this,"traversals"),__publicField(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],...e},this.options={allowUndefinedReturn:!1,...t}}static all(e){return new oe({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((e=>this.traverseType(e,this.traversals.contentResource)))),e.provider&&(e.provider=e.provider.map((e=>this.traverseAgent(e)))),e}traverseLinking(e){return e.seeAlso&&(e.seeAlso=e.seeAlso.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.service&&(e.service=T(e.service).map((e=>this.traverseType(e,this.traversals.service)))),e.services&&(e.services=e.services.map((e=>this.traverseType(e,this.traversals.service)))),e.logo&&(e.logo=e.logo.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.homepage&&(e.homepage=e.homepage.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.partOf&&(e.partOf=e.partOf.map((e=>"string"!=typeof e&&e.type?"Canvas"===e.type?this.traverseType(e,this.traversals.canvas):"AnnotationCollection"===e.type?this.traverseType(e,this.traversals.annotationCollection):"Collection"===e.type?this.traverseType(e,this.traversals.collection):this.traverseType(e,this.traversals.contentResource):this.traverseType(e,this.traversals.contentResource)))),e.start&&(e.start=e.start?this.traverseType(e.start,this.traversals.canvas):null),e.rendering&&(e.rendering=e.rendering.map((e=>this.traverseType(e,this.traversals.contentResource)))),e.supplementary&&(e.supplementary=e.supplementary.map((e=>this.traverseType(e,this.traversals.contentResource)))),e}traverseCollectionItems(e){return e.items&&e.items.map((e=>"Collection"===e.type?this.traverseCollection(e):this.traverseManifest(e))),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((e=>this.traverseCanvas(e)))),e}traverseManifestStructures(e){return e.structures&&(e.structures=e.structures.map((e=>this.traverseRange(e)))),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((e=>this.traverseAnnotationPage(e))),e}traverseInlineAnnotationPages(e){return"string"!=typeof e&&e?(e.annotations&&(e.annotations=e.annotations.map((e=>this.traverseAnnotationPage(e)))),e):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((e=>this.traverseAnnotation(e)))),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((e=>this.traverseContentResource(e))):e.body&&(e.body=this.traverseContentResource(e.body)),e}traversePosterCanvas(e){return e.posterCanvas&&(e.posterCanvas=this.traverseCanvas(e.posterCanvas)),e.placeholderCanvas&&(e.placeholderCanvas=this.traverseCanvas(e.placeholderCanvas)),e.accompanyingCanvas&&(e.accompanyingCanvas=this.traverseCanvas(e.accompanyingCanvas)),e}traverseAnnotation(e){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(e)),this.traversals.annotation)}traverseContentResourceLinking(e){return"string"!=typeof e&&e?(e&&e.service&&(e.service=T(e.service||[]).map((e=>this.traverseType(e,this.traversals.service)))),e):e}traverseContentResource(e){return"Choice"===e.type&&(e.items=e.items.map((e=>this.traverseContentResource(e)))),this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),this.traversals.contentResource)}traverseRangeRanges(e){return e.items&&(e.items=e.items.map((e=>"string"==typeof e?this.traverseCanvas({id:e,type:"Canvas"}):"Manifest"===e.type?this.traverseManifest(e):this.traverseRange(e)))),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,t){return t.reduce(((e,t)=>{const i=t(e);return void 0!==i||this.options.allowUndefinedReturn?i:e}),e)}traverseService(e){return this.traverseType(e,this.traversals.service)}traverseUnknown(e){const t=se(e);switch(t){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 ${t}`)}}}function le(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function ce(e,t){if("string"==typeof e)return{id:e,type:t};if(!e.id)throw new Error(`Invalid resource does not have an ID (${t})`);return e}function ue(e){return(t,i)=>{const n=e[t]?e[t]:{};return e=>{const r=ce(e,i||t);return r&&r.id&&t?(n[r.id]=n[r.id]?function(e,t){if("string"==typeof e)return e;if(t.id!==e.id||t.type!==e.type)throw new Error("Can only merge entities with identical identifiers and type!");return ve({...e},t)}(n[r.id],r):Object.assign({},r),{id:r.id,type:"ContentResource"===t?t:r.type}):r}}}function ve(e,t){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw new Error("Cannot merge array with non-array");const i=[...e];for(const n of t)if(null!=n)if(Array.isArray(n))i.push(n);else if("object"==typeof n&&n.id&&n.type){const e=i.findIndex((e=>e.id===n.id&&e.type===n.type));e>=0&&(i[e]=ve(i[e],n))}else-1===e.indexOf(n)&&i.push(n);return i}if("object"==typeof e){if(Array.isArray(t)||"object"!=typeof t)throw new Error("Cannot merge object with non-object");const i={...e};for(const[e,n]of Object.entries(t)){const t=i[e];i[e]=t!==Q&&t?ve(t,n):n}return i}return e||t}function pe(e){const t=JSON.stringify(e);let i=5381,n=t.length;for(;n;)i=33*i^t.charCodeAt(--n);const r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function he(e){return t=>"string"==typeof t?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${pe(t)}`,type:e,...t}}function fe(e){return t=>({...e,...t})}function ye(e){return Array.isArray(e)?e:[e]}function de(e){return e.body&&(e.body=ye(e.body)),e.seeAlso&&(e.seeAlso=ye(e.seeAlso)),e.body&&(e.body=ye(e.body)),e.audience&&(e.audience=ye(e.audience)),e.accessibility&&(e.accessibility=ye(e.accessibility)),e.motivation&&(e.motivation=ye(e.motivation)),e}const me="__$UNSET$__",ge="__$UNWRAP$__";function Ae(e){const t={};for(const[i,n]of e){if(i===ge&&n!==me)return n;n!==me&&null!=n&&(t[i]=n)}return t}function Ce(e){if(!e)return;const t=Object.keys(e);if(0!==t.length){if(1===t.length){const i=t[0];if(!i)return"";const n=(e[i]||[]).join("");return"@none"===i||"none"===i||"en"===i?n:{"@language":i,"@value":n}}return t.map((t=>({"@language":t,"@value":(e[t]||[]).join("")})))}}function be(e){return Array.isArray(e)?e.map((e=>be(e))):"string"==typeof e?e:e.type&&"Canvas"===e.type?e.id:e}function we(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function Re(e){if(e){if("string"==typeof e)return{"@id":e};if("@id"in e){const t={...e};return delete t["@type"],t}return{"@context":"http://iiif.io/api/image/2/context.json","@id":e.id,profile:`http://iiif.io/api/image/2/profiles/${e.profile}.json`}}}function Se(e,t){return[["@id",e.id],["@type",t],["format",e.format],["height",e.height],["width",e.width],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0]]}function*Te(e){const t=e.provider?yield e.provider[0]:void 0;return[["label",Ce(e.label)],["metadata",e.metadata&&e.metadata.length?e.metadata.map((e=>({label:Ce(e.label)||"",value:Ce(e.value)||""}))):void 0],["description",Ce(e.summary)],["thumbnail",we(yield e.thumbnail)],["navDate",e.navDate],["logo",t?we(t.logo):void 0],["homepage",t?t.homepage:void 0],["attribution",e.requiredStatement?Ce(e.requiredStatement.value):void 0]]}function*xe(e){return[["seeAlso",we(yield e.seeAlso)],["service",we((e.service||[]).map(Re))],["rendering",we(yield e.rendering)],["startCanvas",e.start?e.start.id:void 0]]}const je={Manifest:function*(e){return[...Se(e,"sc:Manifest"),...yield*Te(e),...yield*xe(e),["sequences",[{"@id":`${e.id}/sequence0`,"@type":"sc:Sequence",canvases:yield e.items}]],["structures",yield e.structures]]},Canvas:function*(e){const t=(yield e.items)[0];return[...Se(e,"sc:Canvas"),...yield*Te(e),...yield*xe(e),["images",t?[t.resources]:void 0],["annotations",e.annotations&&e.annotations.length?we(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...Se(e,"sc:AnnotationList"),...yield*Te(e),["resources",e.items&&e.items.length?we(yield e.items):void 0]]},Annotation:function*(e){return[["@id",e.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",be(e.target)],["resource",we(yield e.body,!0)]]},ContentResource:function*(e){return"Image"===e.type?[...Se(e,"dctypes:Image"),...yield*Te(e),...yield*xe(e)]:[...Se(e,void 0),...yield*Te(e)]},AnnotationCollection:function*(e){return[["@id",e.id],["@type","sc:Layer"],["label",Ce(e.label)]]},Collection:function*(e){return[...Se(e,"sc:Collection"),...yield*Te(e),...yield*xe(e),["members",yield*e.items]]},Range:function*(e){const t=[],i=[];if(e.items)for(const n of e.items){const r=yield n;t.push({"@id":n.id,"@type":n.type,label:r?r.label:void 0,within:e.id}),"Canvas"===n.type&&i.push(n.id)}return[...Se(e,"sc:Range"),...yield*Te(e),...yield*xe(e),["canvases",i.length===t.length?i:void 0],["members",i.length!==t.length?t:void 0]]}};function Le(e){var t;return[["id",(null==(t=e.id)?void 0:t.startsWith("vault://"))?void 0:e.id],["type",e.type],["format",e.format],["profile",e.profile],["height",e.height],["width",e.width],["duration",e.duration||void 0],["viewingDirection","left-to-right"!==e.viewingDirection?e.viewingDirection:void 0],["behavior",e.behavior&&e.behavior.length?e.behavior:void 0],["timeMode",e.timeMode],["motivation",Array.isArray(e.motivation)?e.motivation[0]:e.motivation]]}function Pe(e){if(e&&0!==e.length)return e}function Ie(e){if(e&&e.type&&"ImageService2"===e.type){const{id:t,type:i,profile:n,...r}=e,a="string"==typeof n?n:Array.isArray(n)?n.find((e=>"string"==typeof e)):"";return{"@id":t,"@type":i,profile:a?a.startsWith("http")?a:`http://iiif.io/api/image/2/${a}.json`:"http://iiif.io/api/image/2/level0.json",...r}}return e}function Me(e){if(e&&0!==e.length)return e.map(Ie)}function*Oe(e){return[["label",e.label],["metadata",Pe(e.metadata)],["summary",e.summary],["requiredStatement",e.requiredStatement],["rights",e.rights],["navDate",e.navDate],["language",e.language],["thumbnail",Pe(yield e.thumbnail)],["placeholderCanvas",yield e.placeholderCanvas],["accompanyingCanvas",yield e.accompanyingCanvas],["provider",Pe(yield e.provider)]]}function*ke(e){return[["seeAlso",Pe(yield e.seeAlso)],["service",Me(e.service)],["services",Me(e.services)],["rendering",Pe(yield e.rendering)],["supplementary",Pe(yield e.supplementary)],["homepage",Pe(yield e.homepage)],["logo",Pe(yield e.logo)],["partOf",Pe(yield e.partOf)],["start",e.start]]}const De={Manifest:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...Le(e),...yield*Oe(e),...yield*ke(e),["items",yield e.items],["structures",Pe(yield e.structures)],["annotations",Pe(yield e.annotations)]]:[...Le(e),...yield*Oe(e)]},Canvas:function*(e){return[...Le(e),...yield*Oe(e),...yield*ke(e),["items",yield e.items],["annotations",Pe(yield e.annotations)]]},Agent:function*(e){return[["id",e.id],["type","Agent"],["label",e.label],...yield*ke(e)]},AnnotationPage:function*(e){return[...Object.entries(e).map((([e,t])=>[e,Array.isArray(t)?Pe(t):t])).filter((([e,t])=>"items"!==e)),...yield*ke(e),["items",yield e.items]]},Service:function*(e){return[[ge,Ie(e)]]},Annotation:function*(e){const t=Object.entries(e).map((([e,t])=>"motivation"===e?[e,Array.isArray(t)?t[0]:t]:[e,Array.isArray(t)?Pe(t):t])).filter((([e])=>"body"!==e)),i=yield e.body;return[...t,["body",1===i.length?i[0]:i]]},ContentResource:function*(e){return[...Le(e),...yield*Oe(e),...yield*ke(e),["annotations",Pe(yield e.annotations)],["items",Pe(yield e.items)]]},AnnotationCollection:function*(e){return[["id",e.id],["type","AnnotationCollection"],["label",e.label]]},Collection:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...Le(e),...yield*Oe(e),...yield*ke(e),["items",Pe(yield e.items)]]:[...Le(e),...yield*Oe(e)]},Range:function*(e){const t=[];for(const i of e.items)"Range"===i.type?t.push(yield i):t.push(i);return[...Le(e),...yield*Oe(e),...yield*ke(e),["items",t],["annotations",Pe(yield e.annotations)]]}};return{Presentation2:K,Presentation3:Object.freeze(Object.defineProperty({__proto__:null,EMPTY:Q,emptyAnnotation:X,emptyAnnotationPage:Z,emptyCanvas:ee,emptyCollection:te,emptyManifest:ie,emptyRange:ne,emptyAgent:re,defaultEntities:{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},getDefaultEntities:le,normalize:function(e){const t=Y(e),i={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}},n={},r=ue(i),a=function(e){return(t,i)=>n=>{const{id:r,type:a}=ce(n,i||t);if(void 0===r)throw new Error("Found invalid entity without an ID.");return e[r]="ContentResource"===t?t:a,n}}(n);return{entities:i,resource:new oe({collection:[fe(te),a("Collection"),r("Collection")],manifest:[fe(ie),a("Manifest"),r("Manifest")],canvas:[fe(ee),a("Canvas"),r("Canvas")],annotationPage:[he("AnnotationPage"),fe(Z),a("AnnotationPage"),r("AnnotationPage")],annotation:[he("Annotation"),de,a("Annotation"),r("Annotation")],contentResource:[he("ContentResource"),a("ContentResource"),r("ContentResource")],range:[fe(ne),a("Range","Canvas"),r("Range","Canvas")],agent:[fe(re),a("Agent"),r("Agent")]}).traverseUnknown(t),mapping:n}},types:ae,identifyResource:se,Traverse:oe,UNSET:me,UNWRAP:ge,serializedFieldsToObject:Ae,serialize:function(e,t,i){if(!t.type||!t.id)throw new Error("Unknown entity");if(!i[t.type])throw new Error(`Serializer not found for ${t.type}`);return function n(r){const a=i[r.type];if(!a)return me;const s=function(e,t){const i=e.requests[t],n=e.mapping[t];if(n&&(!i||!i.resourceUri||e.entities[n][i.resourceUri]))return e.entities[n][i?i.resourceUri:t]}(e,r.id)||(r.id&&r.type?r:null);if(!s)return me;const o=a(s,e,{isTopLevel:t.id===r.id});let l=o.next();for(;!l.done;){const e=l.value;let t=me;if(e)if(Array.isArray(e)){const i=[];for(const t of e)i.push(n(t));t=i}else t=n(e);l=o.next(t)}return l.value===me?me:Ae(l.value)}(t)},languageString2to3:Ce,serializeConfigPresentation2:je,serializeConfigPresentation3:De},Symbol.toStringTag,{value:"Module"}))}})); | ||
| //# sourceMappingURL=index.umd.js.map |
+1
-1
| { | ||
| "name": "@iiif/parser", | ||
| "version": "1.1.0", | ||
| "version": "1.1.1", | ||
| "license": "MIT", | ||
@@ -5,0 +5,0 @@ "main": "dist/bundle/cjs/index.js", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed 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
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
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed 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
860612
0.11%4255
0.07%0
-100%