@iiif/parser
Advanced tools
| import{Traverse as e,isSpecificResource as t}from"./traverse-BDmGe7EO.js";import{convertPresentation2 as n}from"./upgrader-DoVcNsFK.js";function r(e,n){let i=n||`unknown`;if(!e)return;if(typeof e==`string`)return{id:e,type:i};if(t(e))return r(e.source,n);let a=i&&i!==`unknown`?i:e.type||e[`@type`],o=e.id||e[`@id`];if(a&&a.indexOf(`:`)!==-1&&(a=a.split(`:`).pop()),o&&a)return{id:o,type:a}}const i={},a=`iiif-parser:hasPart`,o=`iiif-parser:partOf`,s=`iiif-parser:isExternal`,c=`__$UNSET$__`,l=`__$UNWRAP$__`,u=[];Object.freeze(u),Object.freeze(i);function d(e){if(e===i||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function f(e,t){if(t&&t[`@explicit`]){let n={},r=Object.keys(t);for(let i of r){if(i===o||i===`@explicit`)continue;d(t[i])?n[i]=e[i]:n[i]=t[i]}return n}return e}function p(e,t,n){let i=r(t);if(!i)return[void 0,void 0];let s=e.requests[i.id],c=i.type||e.mapping[i.id];if(!c||s&&s.resourceUri&&(!e.entities[c]||!e.entities[c][s.resourceUri]))return[void 0,void 0];let l=e.entities[c][s?s.resourceUri:i.id];if(i.type&&!l)return p(e,{id:i.id},n);if(l&&l[a]){let e=l[a].find(e=>n?e[o]===n.id:e[o]===l.id),t=f(l,e);return[t,l]}return[l,l]}const ee={id:`https://iiif-parser/annotation`,type:`Annotation`,behavior:u,label:null,thumbnail:u,summary:null,requiredStatement:null,metadata:u,seeAlso:u,homepage:u,rendering:u,service:u,accessibility:u,audience:u,body:u,bodyValue:null,canonical:null,created:null,creator:u,generated:null,generator:u,modified:null,motivation:u,rights:null,stylesheet:null,target:u,timeMode:void 0,via:u,partOf:u},m={id:`https://iiif-parser/annotation-page`,type:`AnnotationPage`,behavior:u,label:null,thumbnail:u,summary:null,requiredStatement:null,metadata:u,rights:null,provider:u,items:u,seeAlso:u,homepage:u,rendering:u,service:u},h={id:`https://iiif-parser/empty-canvas`,type:`Canvas`,label:null,behavior:u,thumbnail:u,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:u,rights:null,navDate:null,provider:u,items:u,annotations:u,seeAlso:u,homepage:u,partOf:u,rendering:u,service:u,duration:0,height:0,width:0},g={id:`https://iiif-parser/empty-collection`,type:`Collection`,label:null,viewingDirection:`left-to-right`,behavior:u,thumbnail:u,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:u,rights:null,navDate:null,provider:u,items:u,annotations:u,seeAlso:u,homepage:u,partOf:u,rendering:u,service:u,services:u},_={id:`https://iiif-parser/empty-manifest`,type:`Manifest`,annotations:u,behavior:u,homepage:u,items:u,label:null,metadata:u,navDate:null,provider:u,partOf:u,accompanyingCanvas:null,placeholderCanvas:null,rendering:u,requiredStatement:null,rights:null,seeAlso:u,service:u,services:u,start:null,structures:u,summary:null,thumbnail:u,viewingDirection:`left-to-right`},v={id:`https://iiif-parser/empty-canvas`,type:`Range`,label:null,behavior:u,thumbnail:u,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:u,rights:null,navDate:null,provider:u,items:u,annotations:u,seeAlso:u,homepage:u,partOf:u,rendering:u,service:u,start:null,supplementary:null,viewingDirection:`left-to-right`},y={id:`https://iiif-parser/empty-agent`,type:`Agent`,label:{},logo:u,seeAlso:u,homepage:u},b={id:`https://iiif-parser/empty-service`,type:`UnknownService`};function x(e,t={}){if(Array.isArray(e))return x(e[0]);if(typeof e==`string`){let[n,r]=e.split(`#`);return r?{type:`SpecificResource`,source:{id:n,type:t.typeHint||`Unknown`},selector:{type:`FragmentSelector`,value:r}}:{type:`SpecificResource`,source:{id:n,type:t.typeMap&&t.typeMap[n]||t.typeHint||`Unknown`}}}if(e.type===`Choice`||e.type===`List`||e.type===`Composite`||e.type===`Independents`)return x(e.items[0]);if(!e.type&&`source`in e&&(e.type=`SpecificResource`),e.type===`SpecificResource`){e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:`Manifest`}]);let n=typeof e.source==`string`?e.source:e.source.id;if(n?.includes(`#`)){let r=x(n,t);r&&(e.selector=r.selector,e.source=r.source)}return e.selector?{...e,type:`SpecificResource`,source:e.source,selector:e.selector}:{...e,type:`SpecificResource`,source:e.source}}if(e.id){e.type===`Canvas`&&e.partOf&&typeof e.partOf==`string`&&(e.partOf=[{id:e.partOf,type:`Manifest`}]);let[t,n]=e.id.split(`#`);return n?{type:`SpecificResource`,source:{...e,id:t},selector:{type:`FragmentSelector`,value:n}}:{type:`SpecificResource`,source:{...e,id:t}}}return{type:`SpecificResource`,source:e}}const S={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function C(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function w(e,t){if(typeof e==`string`)return{id:e,type:t};if(!e.id)throw Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function T(e,t){return(n,r)=>{let i=e[n]?e[n]:{};return(e,a)=>{let o=w(e,r||n);return o&&o.id&&n?(i[o.id]=i[o.id]?D(i[o.id],o,{parent:a.parent,isTopLevel:t.id===o.id}):D({id:o.id,type:o.type},o,{parent:a.parent,isTopLevel:t.id===o.id}),{id:o.id,type:n===`ContentResource`?n:o.type}):o}}}function E(e,t,n){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw Error(`Cannot merge array with non-array`);let n=[...e];for(let r of t){if(r[`@id`]&&!r.id&&(r.id=r[`@id`]),r[`@type`]&&!r.type&&(r.type=r[`@type`]),r==null)continue;if(Array.isArray(r))n.push(r);else if(typeof r==`object`&&r.id&&r.type){let e=n.findIndex(e=>e.id===r.id&&e.type===r.type);e>=0&&(n[e]=E(n[e],r))}else e.indexOf(r)===-1&&n.push(r)}return n}else if(typeof e==`object`){if(Array.isArray(t)||typeof t!=`object`)throw Error(`Cannot merge object with non-object`);let r={...e},s=[],c=[],l=Object.keys(e).filter(e=>e!==a&&e!==`id`&&e!==`type`),d={},f={};for(let[e,n]of Object.entries(t)){if(e===a||e===`id`||e===`type`)continue;let t=r[e];t===n?c.push(e):t===u||!t?(s.push(e),r[e]=n):(t&&n&&(d[e]=t,f[e]=n),r[e]=E(t,n),r[e]===d[e]&&(c.push(e),delete d[e]))}if(n&&(n.parent&&n.parent.id||n.isTopLevel)){let t=[],u={};if(n.parent?u[o]=n.parent.id:n.isTopLevel&&(u[o]=e.id),r[a]&&r[a].length){let e=!(r[a]||[]).find(e=>e[`@explicit`]),n=s.length>0||c.length!==l.length;if(e&&n)for(let e of r[a]){let n={...e},r=Object.keys(d);if(n){n[`@explicit`]=!0;for(let e of l)e!==a&&(n[e]=i);for(let e of r)n[e]=d[e]}t.push(n)}else t.push(...r[a]);if(n){let e=Object.keys(f);u[`@explicit`]=!0;for(let e of s)u[e]=i;for(let e of c)u[e]=i;for(let t of e)u[t]=f[t]}}u.id=r.id,u.type=r.type,t.push(u),r[a]=t}return r}else if(e)return e;return t}function D(e,t,n){if(typeof e==`string`)return e;if(t.id!==e.id||t.type!==e.type){if(t.type===`ImageService3`)return t;if(e.type===`ImageService3`)return e;throw Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return E({...e},t,n)}function O(e){return(t,n)=>r=>{let{id:i,type:a}=w(r,n||t);if(i===void 0)throw Error(`Found invalid entity without an ID.`);return t===`ContentResource`||t===`Service`?e[i]=t:e[i]=a,r}}function te(e){let t=Object.assign({},e);if(t[`@id`]&&(t.id=t[`@id`]),t[`@type`]&&(t.type=t[`@type`]),t.service){let e=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)e.push({id:n[`@id`]||n.id,type:n[`@type`]||n.type});t.service=e}return Object.assign({},b,t)}function ne(e){return t=>{e.Service=e.Service?e.Service:{};let n=t.id||t[`@id`],r=te(t);return r&&r.id&&(e.Service[r.id]?e.Service[n]=D(e.Service[n],r):e.Service[n]=r),t}}function re(e){let t=JSON.stringify(e),n=5381,r=t.length;for(;r;)n=n*33^t.charCodeAt(--r);let i=n>>>0,a=i.toString(16);return a.length%2?`0`+a:a}function k(e){return t=>typeof t==`string`?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${re(t)}`,type:e,...t}}function A(e){return t=>({...e,...t})}function j(e){return Array.isArray(e)?e:[e]}function M(e){return e.body&&=j(e.body),e.seeAlso&&=j(e.seeAlso),e.audience&&=j(e.audience),e.accessibility&&=j(e.accessibility),e.motivation&&=j(e.motivation),e}function N(e,{typeHint:n,partOfTypeHint:r}={}){if(typeof e==`string`&&(e={id:e,type:n||`unknown`}),t(e))return typeof e.source==`string`&&(e.source={id:e.source,type:n||`unknown`}),e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:r||`Manifest`}]),e;let i;if((e.id||``).indexOf(`#`)!==-1){let[t,n]=(e.id||``).split(`#`);e.id=t,n&&(i={type:`FragmentSelector`,value:n})}return{type:`SpecificResource`,source:e,selector:i}}function P(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(e=>typeof e==`string`||e.type===`Canvas`?N(e):e)),t}function ie(e){let t=Object.assign({},e);return t.start?(t.start=N(t.start,{typeHint:`Canvas`}),t):e}function ae(e){let t=Object.assign({},e);return t.target?(t.target=x(t.target,{typeHint:`Canvas`}),t):e}function F(e){return e}function I(e){return e.items===void 0&&(e[s]=!0),e}function L(t){let r=n(t),i=C(),a={},o=T(i,r),s=O(a),c=new e({collection:[I,A(g),s(`Collection`),o(`Collection`)],manifest:[I,A(_),ie,s(`Manifest`),o(`Manifest`)],canvas:[A(h),s(`Canvas`),o(`Canvas`)],annotationPage:[I,k(`AnnotationPage`),A(m),s(`AnnotationPage`),o(`AnnotationPage`)],annotation:[k(`Annotation`),M,ae,s(`Annotation`),o(`Annotation`)],contentResource:[k(`ContentResource`),s(`ContentResource`),o(`ContentResource`)],range:[A(v),P,s(`Range`,`Canvas`),o(`Range`,`Canvas`)],agent:[A(y),s(`Agent`),o(`Agent`)],specificResource:[F],service:[ne(i)]}),l=c.traverseUnknown(r);return{entities:i,resource:l,mapping:a}}function R(e){let t={};for(let[n,r]of e){if(n===l&&r!==c)return r;r!==c&&r!=null&&(t[n]=r)}return t}function oe(e,t,n){if(!t.type||!t.id)throw Error(`Unknown entity`);if(!n[t.type])throw Error(`Serializer not found for ${t.type}`);function r(i,a,o=0){let s=n[i.type];if(!s)return c;if(o>20)throw Error(`Circular reference: `+i.id+` `+i.type);let[l,u]=p(e,i.type?i:i.id,a)||(i.id&&i.type?i:null);if(!l)return c;let d=s(l,e,{parent:a,isTopLevel:t.id===i.id,fullResource:u}),f=d.next();for(;!f.done;){let e=f.value,t=c;if(e)if(Array.isArray(e)){let n=[];for(let t of e)n.push(r(t,i,o+1));t=n}else t=r(e,i,o+1);f=d.next(t)}return f.value===c?c:R(f.value)}return r(t)}function z(e,{allowSourceString:t=!0,allowString:n=!1,allowedStringType:r}={}){let i=e=>{if(t&&e&&e.source&&typeof e.source!=`string`){let t=Object.keys(e.source);if(e.source.id&&e.source.type&&t.length===2)return{...e,source:e.source.id}}return e};if(e){if(e.source&&e.source.partOf)return i(e);let t=Object.keys(e);if(t.length===2&&e.type&&e.source||t.length===3&&e.type&&e.source&&t.indexOf(`selector`)!==-1&&!e.selector)return n&&(!r||r===e.source.type)?e.source.id:e.source.type===`ContentResource`?{type:`SpecificResource`,source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!=`string`&&e.selector.type===`FragmentSelector`){let t=`${e.source.id}#${e.selector.value}`;return n?t:{id:t,type:e.source.type}}}return i(e)}function B(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let n=t[0];if(!n)return``;let r=(e[n]||[]).join(``);return n===`@none`||n===`none`||n===`en`?r:{"@language":n,"@value":r}}return t.map(t=>({"@language":t,"@value":(e[t]||[]).join(``)}))}}function V(e){return Array.isArray(e)?e.map(e=>V(e)):typeof e==`string`?e:e.type&&e.type===`Canvas`?e.id:e}function H(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function U(e){if(e){if(typeof e==`string`)return{"@id":e};if(`@id`in e){let 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 W(e,t){return[[`@id`,e.id],[`@type`,t],[`format`,e.format],[`height`,e.height],[`width`,e.width],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`license`,e.license?e.license:void 0]]}function*G(e){let t=e.provider?yield e.provider[0]:void 0;return[[`label`,B(e.label)],[`metadata`,e.metadata&&e.metadata.length?e.metadata.map(e=>({label:B(e.label)||``,value:B(e.value)||``})):void 0],[`description`,B(e.summary)],[`thumbnail`,H(yield e.thumbnail)],[`navDate`,e.navDate],[`logo`,t?H(t.logo):void 0],[`homepage`,t?t.homepage:void 0],[`attribution`,e.requiredStatement?B(e.requiredStatement.value):void 0]]}function*K(e){let t=e.start&&e.start.type&&e.start.type===`SpecificResource`?z(e.start):e.start;return[[`seeAlso`,H(yield e.seeAlso)],[`service`,H((e.service||[]).map(U))],[`rendering`,H(yield e.rendering)],[`startCanvas`,t?t.id:void 0]]}function se(e){return e.type===`SpecificResource`}function ce(e){return e&&e.type===`FragmentSelector`}function le(e){if(e&&se(e)){let t=e.id,n=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return ce(n)&&(t+=`#`+n.value),t}return e?.id}const ue={Manifest:function*(e,t,{isTopLevel:n}){return[...n?[[`@context`,`http://iiif.io/api/presentation/2/context.json`]]:[],...W(e,`sc:Manifest`),...yield*G(e),...yield*K(e),[`sequences`,[{"@id":`${e.id}/sequence0`,"@type":`sc:Sequence`,canvases:yield e.items}]],[`structures`,yield e.structures]]},Canvas:function*(e){let t=yield e.items,n=t[0];return[...W(e,`sc:Canvas`),...yield*G(e),...yield*K(e),[`images`,n?[n.resources]:void 0],[`annotations`,e.annotations&&e.annotations.length?H(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...W(e,`sc:AnnotationList`),...yield*G(e),[`resources`,e.items&&e.items.length?H(yield e.items):void 0]]},Annotation:function*(e){return[[`@id`,e.id],[`@type`,`oa:Annotation`],[`motivation`,`sc:painting`],[`on`,V(e.target)],[`resource`,H(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case`Image`:return[...W(e,`dctypes:Image`),...yield*G(e),...yield*K(e)];case`Text`:case`Dataset`:default:return[...W(e,void 0),...yield*G(e)]}},AnnotationCollection:function*(e){return[[`@id`,e.id],[`@type`,`sc:Layer`],[`label`,B(e.label)]]},Collection:function*(e){return[...W(e,`sc:Collection`),...yield*G(e),...yield*K(e),[`members`,yield*e.items]]},Range:function*(e){let t=[],n=[];if(e.items)for(let r of e.items){let i=r.type===`SpecificResource`?r.source:r;if(i){let a=yield i;t.push({"@id":le(r),"@type":i.type,label:a?a.label:void 0,within:e.id}),i.type===`Canvas`&&n.push(i.id)}}return[...W(e,`sc:Range`),...yield*G(e),...yield*K(e),[`canvases`,n.length===t.length?n:void 0],[`members`,n.length===t.length?void 0:t]]}};function q(e){return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],[`type`,e.type],[`format`,e.format],[`profile`,e.profile],[`height`,e.height||void 0],[`width`,e.width||void 0],[`duration`,e.duration||void 0],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`behavior`,e.behavior&&e.behavior.length?e.behavior:void 0],[`timeMode`,e.timeMode],[`motivation`,Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[a,c]]}function J(e){if(e===c||!e||e.length===0)return;let t=e.filter(e=>e!==c);if(t.length!==0)return t}function Y(e){if(e&&e.type&&e.type===`ImageService2`){let{id:t,type:n,profile:r,...i}=e,a=typeof r==`string`?r:Array.isArray(r)?r.find(e=>typeof e==`string`):``;return{"@id":t,"@type":n,profile:a?a.startsWith(`http`)?a:`http://iiif.io/api/image/2/${a}.json`:`http://iiif.io/api/image/2/level0.json`,...i}}return e}function X(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Y)}function*Z(e){return[[`label`,e.label],[`metadata`,J(e.metadata)],[`summary`,e.summary],[`requiredStatement`,e.requiredStatement],[`rights`,Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],[`navDate`,e.navDate],[`language`,e.language],[`thumbnail`,J(yield e.thumbnail)],[`placeholderCanvas`,yield e.placeholderCanvas],[`accompanyingCanvas`,yield e.accompanyingCanvas],[`provider`,J(yield e.provider)]]}function*Q(e,t){let n=[];for(let r of e.partOf||[]){if(r.type===`Manifest`&&t.type===`Manifest`)continue;n.push(yield r)}return[[`seeAlso`,J(yield e.seeAlso)],[`service`,J(X(e.service))],[`services`,J(X(e.services))],[`rendering`,J(yield e.rendering)],[`supplementary`,J(yield e.supplementary)],[`homepage`,J(yield e.homepage)],[`logo`,J(yield e.logo)],[`partOf`,J(n)],[`start`,e.start?z(e.start):e.start]]}const de={Manifest:function*(e,t,{isTopLevel:n}){if(!n)return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]];let r=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(r=[`http://iiif.io/api/presentation/3/context.json`,`http://iiif.io/api/extension/navplace/context.json`]),[[`@context`,e[`@context`]?e[`@context`]:r],...q(e),...yield*Z(e),...yield*Q(e),[`items`,yield e.items],[`structures`,J(yield e.structures)],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Canvas:function*(e,t,{parent:n}){return n&&n.type!==`Manifest`&&n.type!==`Canvas`?[[`id`,e.id]]:[...q(e),...yield*Z(e),...yield*Q(e,n),[`items`,yield e.items],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Agent:function*(e){return[[`id`,e.id],[`type`,`Agent`],[`label`,e.label],...yield*Q(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?J(t):t]).filter(([e,t])=>e!==`items`&&e!==`id`&&e!==a&&e!==o&&e!==s),n=yield e.items;return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],...t,...yield*Q(e),[`items`,n.length||e[s]===!1?n:c]]},Service:function*(e){return[[l,Y(e)]]},Annotation:function*(e){let n=Object.entries(e).map(([e,t])=>e===`motivation`?[e,Array.isArray(t)?t[0]:t]:e===`target`?[e,z(t,{allowString:!0,allowSourceString:!0,allowedStringType:`Canvas`})]:[e,Array.isArray(t)?J(t):t]).filter(([e])=>e!==`body`&&e!==a&&e!==s),r;if(Array.isArray(e.body)){let n=[];for(let r of e.body)if(r&&t(r)){let e={...r};r.source.type===`Canvas`?e.source=r.source:e.source=yield r.source,n.push(z(e,{allowSourceString:!0}))}else n.push(yield r);r=n}else e.body&&t(e.body)?(r={...e.body},r.source=yield e.body.source):r=yield e.body;return[...n,...yield*Z(e),...yield*Q(e),[`body`,r.length===1?r[0]:r]]},ContentResource:function*(e){return fe([...q(e),...yield*Z(e),...yield*Q(e),[`annotations`,J(yield e.annotations)],[`items`,J(yield e.items)]],e)},AnnotationCollection:function*(e){return[[`id`,e.id],[`type`,`AnnotationCollection`],[`label`,e.label]]},Collection:function*(e,t,{isTopLevel:n}){if(n){let t=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(t=[`http://iiif.io/api/extension/navplace/context.json`,`http://iiif.io/api/presentation/3/context.json`]),[[`@context`,t],...q(e),...yield*Z(e),...yield*Q(e),[`items`,J(yield e.items)],[`navPlace`,e.navPlace]]}return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]]},Range:function*(e){let t=[];for(let n of e.items)n.type===`Range`?t.push(yield n):n&&n.type===`SpecificResource`?t.push(z(n)):t.push(n);return[...q(e),...yield*Z(e),...yield*Q(e),[`items`,t],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]}};function fe(e,t){let n=Object.keys(t),r=e.map(([e])=>e);for(let i of n){if(i===a||i===s)continue;r.indexOf(i)===-1&&t[i]!==void 0&&e.push([i,t[i]])}return e}function $(e){if(!e.items||!Array.isArray(e.items))return!1;for(let t of e.items)if(t.navPlace)return!0;return!1}export{u as EMPTY,a as HAS_PART,s as IS_EXTERNAL,o as PART_OF,c as UNSET,l as UNWRAP,i as WILDCARD,I as addFlagForExternalResource,z as compressSpecificResource,S as defaultEntities,y as emptyAgent,ee as emptyAnnotation,m as emptyAnnotationPage,h as emptyCanvas,g as emptyCollection,_ as emptyManifest,v as emptyRange,b as emptyService,f as frameResource,C as getDefaultEntities,d as isWildcard,B as languageString2to3,E as merge,D as mergeEntities,L as normalize,p as resolveIfExists,oe as serialize,ue as serializeConfigPresentation2,de as serializeConfigPresentation3,R as serializedFieldsToObject,r as toRef,F as traverseSpecificResource}; | ||
| //# sourceMappingURL=presentation-3-sAnB7vhe.js.map |
Sorry, the diff of this file is too big to display
| const e=require(`./traverse-CLpGzNvI.cjs`),t=require(`./upgrader-FVo4y5jh.cjs`);function n(t,r){let i=r||`unknown`;if(!t)return;if(typeof t==`string`)return{id:t,type:i};if(e.isSpecificResource(t))return n(t.source,r);let a=i&&i!==`unknown`?i:t.type||t[`@type`],o=t.id||t[`@id`];if(a&&a.indexOf(`:`)!==-1&&(a=a.split(`:`).pop()),o&&a)return{id:o,type:a}}const r={},i=`iiif-parser:hasPart`,a=`iiif-parser:partOf`,o=`iiif-parser:isExternal`,s=`__$UNSET$__`,c=`__$UNWRAP$__`,l=[];Object.freeze(l),Object.freeze(r);function u(e){if(e===r||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function d(e,t){if(t&&t[`@explicit`]){let n={},r=Object.keys(t);for(let i of r){if(i===a||i===`@explicit`)continue;u(t[i])?n[i]=e[i]:n[i]=t[i]}return n}return e}function f(e,t,r){let o=n(t);if(!o)return[void 0,void 0];let s=e.requests[o.id],c=o.type||e.mapping[o.id];if(!c||s&&s.resourceUri&&(!e.entities[c]||!e.entities[c][s.resourceUri]))return[void 0,void 0];let l=e.entities[c][s?s.resourceUri:o.id];if(o.type&&!l)return f(e,{id:o.id},r);if(l&&l[i]){let e=l[i].find(e=>r?e[a]===r.id:e[a]===l.id),t=d(l,e);return[t,l]}return[l,l]}const p={id:`https://iiif-parser/annotation`,type:`Annotation`,behavior:l,label:null,thumbnail:l,summary:null,requiredStatement:null,metadata:l,seeAlso:l,homepage:l,rendering:l,service:l,accessibility:l,audience:l,body:l,bodyValue:null,canonical:null,created:null,creator:l,generated:null,generator:l,modified:null,motivation:l,rights:null,stylesheet:null,target:l,timeMode:void 0,via:l,partOf:l},m={id:`https://iiif-parser/annotation-page`,type:`AnnotationPage`,behavior:l,label:null,thumbnail:l,summary:null,requiredStatement:null,metadata:l,rights:null,provider:l,items:l,seeAlso:l,homepage:l,rendering:l,service:l},h={id:`https://iiif-parser/empty-canvas`,type:`Canvas`,label:null,behavior:l,thumbnail:l,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:l,rights:null,navDate:null,provider:l,items:l,annotations:l,seeAlso:l,homepage:l,partOf:l,rendering:l,service:l,duration:0,height:0,width:0},g={id:`https://iiif-parser/empty-collection`,type:`Collection`,label:null,viewingDirection:`left-to-right`,behavior:l,thumbnail:l,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:l,rights:null,navDate:null,provider:l,items:l,annotations:l,seeAlso:l,homepage:l,partOf:l,rendering:l,service:l,services:l},_={id:`https://iiif-parser/empty-manifest`,type:`Manifest`,annotations:l,behavior:l,homepage:l,items:l,label:null,metadata:l,navDate:null,provider:l,partOf:l,accompanyingCanvas:null,placeholderCanvas:null,rendering:l,requiredStatement:null,rights:null,seeAlso:l,service:l,services:l,start:null,structures:l,summary:null,thumbnail:l,viewingDirection:`left-to-right`},v={id:`https://iiif-parser/empty-canvas`,type:`Range`,label:null,behavior:l,thumbnail:l,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:l,rights:null,navDate:null,provider:l,items:l,annotations:l,seeAlso:l,homepage:l,partOf:l,rendering:l,service:l,start:null,supplementary:null,viewingDirection:`left-to-right`},y={id:`https://iiif-parser/empty-agent`,type:`Agent`,label:{},logo:l,seeAlso:l,homepage:l},b={id:`https://iiif-parser/empty-service`,type:`UnknownService`};function x(e,t={}){if(Array.isArray(e))return x(e[0]);if(typeof e==`string`){let[n,r]=e.split(`#`);return r?{type:`SpecificResource`,source:{id:n,type:t.typeHint||`Unknown`},selector:{type:`FragmentSelector`,value:r}}:{type:`SpecificResource`,source:{id:n,type:t.typeMap&&t.typeMap[n]||t.typeHint||`Unknown`}}}if(e.type===`Choice`||e.type===`List`||e.type===`Composite`||e.type===`Independents`)return x(e.items[0]);if(!e.type&&`source`in e&&(e.type=`SpecificResource`),e.type===`SpecificResource`){e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:`Manifest`}]);let n=typeof e.source==`string`?e.source:e.source.id;if(n?.includes(`#`)){let r=x(n,t);r&&(e.selector=r.selector,e.source=r.source)}return e.selector?{...e,type:`SpecificResource`,source:e.source,selector:e.selector}:{...e,type:`SpecificResource`,source:e.source}}if(e.id){e.type===`Canvas`&&e.partOf&&typeof e.partOf==`string`&&(e.partOf=[{id:e.partOf,type:`Manifest`}]);let[t,n]=e.id.split(`#`);return n?{type:`SpecificResource`,source:{...e,id:t},selector:{type:`FragmentSelector`,value:n}}:{type:`SpecificResource`,source:{...e,id:t}}}return{type:`SpecificResource`,source:e}}const ee={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function S(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function C(e,t){if(typeof e==`string`)return{id:e,type:t};if(!e.id)throw Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function w(e,t){return(n,r)=>{let i=e[n]?e[n]:{};return(e,a)=>{let o=C(e,r||n);return o&&o.id&&n?(i[o.id]=i[o.id]?E(i[o.id],o,{parent:a.parent,isTopLevel:t.id===o.id}):E({id:o.id,type:o.type},o,{parent:a.parent,isTopLevel:t.id===o.id}),{id:o.id,type:n===`ContentResource`?n:o.type}):o}}}function T(e,t,n){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw Error(`Cannot merge array with non-array`);let n=[...e];for(let r of t){if(r[`@id`]&&!r.id&&(r.id=r[`@id`]),r[`@type`]&&!r.type&&(r.type=r[`@type`]),r==null)continue;if(Array.isArray(r))n.push(r);else if(typeof r==`object`&&r.id&&r.type){let e=n.findIndex(e=>e.id===r.id&&e.type===r.type);e>=0&&(n[e]=T(n[e],r))}else e.indexOf(r)===-1&&n.push(r)}return n}else if(typeof e==`object`){if(Array.isArray(t)||typeof t!=`object`)throw Error(`Cannot merge object with non-object`);let o={...e},s=[],c=[],u=Object.keys(e).filter(e=>e!==i&&e!==`id`&&e!==`type`),d={},f={};for(let[e,n]of Object.entries(t)){if(e===i||e===`id`||e===`type`)continue;let t=o[e];t===n?c.push(e):t===l||!t?(s.push(e),o[e]=n):(t&&n&&(d[e]=t,f[e]=n),o[e]=T(t,n),o[e]===d[e]&&(c.push(e),delete d[e]))}if(n&&(n.parent&&n.parent.id||n.isTopLevel)){let t=[],l={};if(n.parent?l[a]=n.parent.id:n.isTopLevel&&(l[a]=e.id),o[i]&&o[i].length){let e=!(o[i]||[]).find(e=>e[`@explicit`]),n=s.length>0||c.length!==u.length;if(e&&n)for(let e of o[i]){let n={...e},a=Object.keys(d);if(n){n[`@explicit`]=!0;for(let e of u)e!==i&&(n[e]=r);for(let e of a)n[e]=d[e]}t.push(n)}else t.push(...o[i]);if(n){let e=Object.keys(f);l[`@explicit`]=!0;for(let e of s)l[e]=r;for(let e of c)l[e]=r;for(let t of e)l[t]=f[t]}}l.id=o.id,l.type=o.type,t.push(l),o[i]=t}return o}else if(e)return e;return t}function E(e,t,n){if(typeof e==`string`)return e;if(t.id!==e.id||t.type!==e.type){if(t.type===`ImageService3`)return t;if(e.type===`ImageService3`)return e;throw Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return T({...e},t,n)}function te(e){return(t,n)=>r=>{let{id:i,type:a}=C(r,n||t);if(i===void 0)throw Error(`Found invalid entity without an ID.`);return t===`ContentResource`||t===`Service`?e[i]=t:e[i]=a,r}}function ne(e){let t=Object.assign({},e);if(t[`@id`]&&(t.id=t[`@id`]),t[`@type`]&&(t.type=t[`@type`]),t.service){let e=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)e.push({id:n[`@id`]||n.id,type:n[`@type`]||n.type});t.service=e}return Object.assign({},b,t)}function re(e){return t=>{e.Service=e.Service?e.Service:{};let n=t.id||t[`@id`],r=ne(t);return r&&r.id&&(e.Service[r.id]?e.Service[n]=E(e.Service[n],r):e.Service[n]=r),t}}function ie(e){let t=JSON.stringify(e),n=5381,r=t.length;for(;r;)n=n*33^t.charCodeAt(--r);let i=n>>>0,a=i.toString(16);return a.length%2?`0`+a:a}function D(e){return t=>typeof t==`string`?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${ie(t)}`,type:e,...t}}function O(e){return t=>({...e,...t})}function k(e){return Array.isArray(e)?e:[e]}function A(e){return e.body&&=k(e.body),e.seeAlso&&=k(e.seeAlso),e.audience&&=k(e.audience),e.accessibility&&=k(e.accessibility),e.motivation&&=k(e.motivation),e}function j(t,{typeHint:n,partOfTypeHint:r}={}){if(typeof t==`string`&&(t={id:t,type:n||`unknown`}),e.isSpecificResource(t))return typeof t.source==`string`&&(t.source={id:t.source,type:n||`unknown`}),t.source.type===`Canvas`&&t.source.partOf&&typeof t.source.partOf==`string`&&(t.source.partOf=[{id:t.source.partOf,type:r||`Manifest`}]),t;let i;if((t.id||``).indexOf(`#`)!==-1){let[e,n]=(t.id||``).split(`#`);t.id=e,n&&(i={type:`FragmentSelector`,value:n})}return{type:`SpecificResource`,source:t,selector:i}}function M(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(e=>typeof e==`string`||e.type===`Canvas`?j(e):e)),t}function N(e){let t=Object.assign({},e);return t.start?(t.start=j(t.start,{typeHint:`Canvas`}),t):e}function ae(e){let t=Object.assign({},e);return t.target?(t.target=x(t.target,{typeHint:`Canvas`}),t):e}function P(e){return e}function F(e){return e.items===void 0&&(e[o]=!0),e}function I(n){let r=t.convertPresentation2(n),i=S(),a={},o=w(i,r),s=te(a),c=new e.Traverse({collection:[F,O(g),s(`Collection`),o(`Collection`)],manifest:[F,O(_),N,s(`Manifest`),o(`Manifest`)],canvas:[O(h),s(`Canvas`),o(`Canvas`)],annotationPage:[F,D(`AnnotationPage`),O(m),s(`AnnotationPage`),o(`AnnotationPage`)],annotation:[D(`Annotation`),A,ae,s(`Annotation`),o(`Annotation`)],contentResource:[D(`ContentResource`),s(`ContentResource`),o(`ContentResource`)],range:[O(v),M,s(`Range`,`Canvas`),o(`Range`,`Canvas`)],agent:[O(y),s(`Agent`),o(`Agent`)],specificResource:[P],service:[re(i)]}),l=c.traverseUnknown(r);return{entities:i,resource:l,mapping:a}}function L(e){let t={};for(let[n,r]of e){if(n===c&&r!==s)return r;r!==s&&r!=null&&(t[n]=r)}return t}function oe(e,t,n){if(!t.type||!t.id)throw Error(`Unknown entity`);if(!n[t.type])throw Error(`Serializer not found for ${t.type}`);function r(i,a,o=0){let c=n[i.type];if(!c)return s;if(o>20)throw Error(`Circular reference: `+i.id+` `+i.type);let[l,u]=f(e,i.type?i:i.id,a)||(i.id&&i.type?i:null);if(!l)return s;let d=c(l,e,{parent:a,isTopLevel:t.id===i.id,fullResource:u}),p=d.next();for(;!p.done;){let e=p.value,t=s;if(e)if(Array.isArray(e)){let n=[];for(let t of e)n.push(r(t,i,o+1));t=n}else t=r(e,i,o+1);p=d.next(t)}return p.value===s?s:L(p.value)}return r(t)}function R(e,{allowSourceString:t=!0,allowString:n=!1,allowedStringType:r}={}){let i=e=>{if(t&&e&&e.source&&typeof e.source!=`string`){let t=Object.keys(e.source);if(e.source.id&&e.source.type&&t.length===2)return{...e,source:e.source.id}}return e};if(e){if(e.source&&e.source.partOf)return i(e);let t=Object.keys(e);if(t.length===2&&e.type&&e.source||t.length===3&&e.type&&e.source&&t.indexOf(`selector`)!==-1&&!e.selector)return n&&(!r||r===e.source.type)?e.source.id:e.source.type===`ContentResource`?{type:`SpecificResource`,source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!=`string`&&e.selector.type===`FragmentSelector`){let t=`${e.source.id}#${e.selector.value}`;return n?t:{id:t,type:e.source.type}}}return i(e)}function z(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let n=t[0];if(!n)return``;let r=(e[n]||[]).join(``);return n===`@none`||n===`none`||n===`en`?r:{"@language":n,"@value":r}}return t.map(t=>({"@language":t,"@value":(e[t]||[]).join(``)}))}}function B(e){return Array.isArray(e)?e.map(e=>B(e)):typeof e==`string`?e:e.type&&e.type===`Canvas`?e.id:e}function V(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function H(e){if(e){if(typeof e==`string`)return{"@id":e};if(`@id`in e){let 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 U(e,t){return[[`@id`,e.id],[`@type`,t],[`format`,e.format],[`height`,e.height],[`width`,e.width],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`license`,e.license?e.license:void 0]]}function*W(e){let t=e.provider?yield e.provider[0]:void 0;return[[`label`,z(e.label)],[`metadata`,e.metadata&&e.metadata.length?e.metadata.map(e=>({label:z(e.label)||``,value:z(e.value)||``})):void 0],[`description`,z(e.summary)],[`thumbnail`,V(yield e.thumbnail)],[`navDate`,e.navDate],[`logo`,t?V(t.logo):void 0],[`homepage`,t?t.homepage:void 0],[`attribution`,e.requiredStatement?z(e.requiredStatement.value):void 0]]}function*G(e){let t=e.start&&e.start.type&&e.start.type===`SpecificResource`?R(e.start):e.start;return[[`seeAlso`,V(yield e.seeAlso)],[`service`,V((e.service||[]).map(H))],[`rendering`,V(yield e.rendering)],[`startCanvas`,t?t.id:void 0]]}function K(e){return e.type===`SpecificResource`}function se(e){return e&&e.type===`FragmentSelector`}function ce(e){if(e&&K(e)){let t=e.id,n=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return se(n)&&(t+=`#`+n.value),t}return e?.id}const le={Manifest:function*(e,t,{isTopLevel:n}){return[...n?[[`@context`,`http://iiif.io/api/presentation/2/context.json`]]:[],...U(e,`sc:Manifest`),...yield*W(e),...yield*G(e),[`sequences`,[{"@id":`${e.id}/sequence0`,"@type":`sc:Sequence`,canvases:yield e.items}]],[`structures`,yield e.structures]]},Canvas:function*(e){let t=yield e.items,n=t[0];return[...U(e,`sc:Canvas`),...yield*W(e),...yield*G(e),[`images`,n?[n.resources]:void 0],[`annotations`,e.annotations&&e.annotations.length?V(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...U(e,`sc:AnnotationList`),...yield*W(e),[`resources`,e.items&&e.items.length?V(yield e.items):void 0]]},Annotation:function*(e){return[[`@id`,e.id],[`@type`,`oa:Annotation`],[`motivation`,`sc:painting`],[`on`,B(e.target)],[`resource`,V(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case`Image`:return[...U(e,`dctypes:Image`),...yield*W(e),...yield*G(e)];case`Text`:case`Dataset`:default:return[...U(e,void 0),...yield*W(e)]}},AnnotationCollection:function*(e){return[[`@id`,e.id],[`@type`,`sc:Layer`],[`label`,z(e.label)]]},Collection:function*(e){return[...U(e,`sc:Collection`),...yield*W(e),...yield*G(e),[`members`,yield*e.items]]},Range:function*(e){let t=[],n=[];if(e.items)for(let r of e.items){let i=r.type===`SpecificResource`?r.source:r;if(i){let a=yield i;t.push({"@id":ce(r),"@type":i.type,label:a?a.label:void 0,within:e.id}),i.type===`Canvas`&&n.push(i.id)}}return[...U(e,`sc:Range`),...yield*W(e),...yield*G(e),[`canvases`,n.length===t.length?n:void 0],[`members`,n.length===t.length?void 0:t]]}};function q(e){return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],[`type`,e.type],[`format`,e.format],[`profile`,e.profile],[`height`,e.height||void 0],[`width`,e.width||void 0],[`duration`,e.duration||void 0],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`behavior`,e.behavior&&e.behavior.length?e.behavior:void 0],[`timeMode`,e.timeMode],[`motivation`,Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[i,s]]}function J(e){if(e===s||!e||e.length===0)return;let t=e.filter(e=>e!==s);if(t.length!==0)return t}function Y(e){if(e&&e.type&&e.type===`ImageService2`){let{id:t,type:n,profile:r,...i}=e,a=typeof r==`string`?r:Array.isArray(r)?r.find(e=>typeof e==`string`):``;return{"@id":t,"@type":n,profile:a?a.startsWith(`http`)?a:`http://iiif.io/api/image/2/${a}.json`:`http://iiif.io/api/image/2/level0.json`,...i}}return e}function X(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Y)}function*Z(e){return[[`label`,e.label],[`metadata`,J(e.metadata)],[`summary`,e.summary],[`requiredStatement`,e.requiredStatement],[`rights`,Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],[`navDate`,e.navDate],[`language`,e.language],[`thumbnail`,J(yield e.thumbnail)],[`placeholderCanvas`,yield e.placeholderCanvas],[`accompanyingCanvas`,yield e.accompanyingCanvas],[`provider`,J(yield e.provider)]]}function*Q(e,t){let n=[];for(let r of e.partOf||[]){if(r.type===`Manifest`&&t.type===`Manifest`)continue;n.push(yield r)}return[[`seeAlso`,J(yield e.seeAlso)],[`service`,J(X(e.service))],[`services`,J(X(e.services))],[`rendering`,J(yield e.rendering)],[`supplementary`,J(yield e.supplementary)],[`homepage`,J(yield e.homepage)],[`logo`,J(yield e.logo)],[`partOf`,J(n)],[`start`,e.start?R(e.start):e.start]]}const ue={Manifest:function*(e,t,{isTopLevel:n}){if(!n)return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]];let r=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(r=[`http://iiif.io/api/presentation/3/context.json`,`http://iiif.io/api/extension/navplace/context.json`]),[[`@context`,e[`@context`]?e[`@context`]:r],...q(e),...yield*Z(e),...yield*Q(e),[`items`,yield e.items],[`structures`,J(yield e.structures)],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Canvas:function*(e,t,{parent:n}){return n&&n.type!==`Manifest`&&n.type!==`Canvas`?[[`id`,e.id]]:[...q(e),...yield*Z(e),...yield*Q(e,n),[`items`,yield e.items],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Agent:function*(e){return[[`id`,e.id],[`type`,`Agent`],[`label`,e.label],...yield*Q(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?J(t):t]).filter(([e,t])=>e!==`items`&&e!==`id`&&e!==i&&e!==a&&e!==o),n=yield e.items;return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],...t,...yield*Q(e),[`items`,n.length||e[o]===!1?n:s]]},Service:function*(e){return[[c,Y(e)]]},Annotation:function*(t){let n=Object.entries(t).map(([e,t])=>e===`motivation`?[e,Array.isArray(t)?t[0]:t]:e===`target`?[e,R(t,{allowString:!0,allowSourceString:!0,allowedStringType:`Canvas`})]:[e,Array.isArray(t)?J(t):t]).filter(([e])=>e!==`body`&&e!==i&&e!==o),r;if(Array.isArray(t.body)){let n=[];for(let r of t.body)if(r&&e.isSpecificResource(r)){let e={...r};r.source.type===`Canvas`?e.source=r.source:e.source=yield r.source,n.push(R(e,{allowSourceString:!0}))}else n.push(yield r);r=n}else t.body&&e.isSpecificResource(t.body)?(r={...t.body},r.source=yield t.body.source):r=yield t.body;return[...n,...yield*Z(t),...yield*Q(t),[`body`,r.length===1?r[0]:r]]},ContentResource:function*(e){return de([...q(e),...yield*Z(e),...yield*Q(e),[`annotations`,J(yield e.annotations)],[`items`,J(yield e.items)]],e)},AnnotationCollection:function*(e){return[[`id`,e.id],[`type`,`AnnotationCollection`],[`label`,e.label]]},Collection:function*(e,t,{isTopLevel:n}){if(n){let t=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(t=[`http://iiif.io/api/extension/navplace/context.json`,`http://iiif.io/api/presentation/3/context.json`]),[[`@context`,t],...q(e),...yield*Z(e),...yield*Q(e),[`items`,J(yield e.items)],[`navPlace`,e.navPlace]]}return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]]},Range:function*(e){let t=[];for(let n of e.items)n.type===`Range`?t.push(yield n):n&&n.type===`SpecificResource`?t.push(R(n)):t.push(n);return[...q(e),...yield*Z(e),...yield*Q(e),[`items`,t],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]}};function de(e,t){let n=Object.keys(t),r=e.map(([e])=>e);for(let a of n){if(a===i||a===o)continue;r.indexOf(a)===-1&&t[a]!==void 0&&e.push([a,t[a]])}return e}function $(e){if(!e.items||!Array.isArray(e.items))return!1;for(let t of e.items)if(t.navPlace)return!0;return!1}Object.defineProperty(exports,`EMPTY`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`HAS_PART`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`IS_EXTERNAL`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`PART_OF`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`UNSET`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`UNWRAP`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`WILDCARD`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`addFlagForExternalResource`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`compressSpecificResource`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`defaultEntities`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`emptyAgent`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`emptyAnnotation`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`emptyAnnotationPage`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`emptyCanvas`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`emptyCollection`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`emptyManifest`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`emptyRange`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`emptyService`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`frameResource`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`getDefaultEntities`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`isWildcard`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`languageString2to3`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`merge`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`mergeEntities`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`normalize`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`resolveIfExists`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`serialize`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`serializeConfigPresentation2`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`serializeConfigPresentation3`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`serializedFieldsToObject`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`toRef`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`traverseSpecificResource`,{enumerable:!0,get:function(){return P}}); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| require(`./remove-undefined-properties-B6rYUrLL.cjs`);const e=require(`./traverse-CLpGzNvI.cjs`),t=require(`./presentation-3-BXox_bXV.cjs`);require(`./upgrader-FVo4y5jh.cjs`),require(`./profiles-iKAaapmR.cjs`),require(`./presentation-2-BUkBoZ0A.cjs`),exports.EMPTY=t.EMPTY,exports.HAS_PART=t.HAS_PART,exports.IS_EXTERNAL=t.IS_EXTERNAL,exports.PART_OF=t.PART_OF,exports.Traverse=e.Traverse,exports.UNSET=t.UNSET,exports.UNWRAP=t.UNWRAP,exports.WILDCARD=t.WILDCARD,exports.addFlagForExternalResource=t.addFlagForExternalResource,exports.compressSpecificResource=t.compressSpecificResource,exports.defaultEntities=t.defaultEntities,exports.emptyAgent=t.emptyAgent,exports.emptyAnnotation=t.emptyAnnotation,exports.emptyAnnotationPage=t.emptyAnnotationPage,exports.emptyCanvas=t.emptyCanvas,exports.emptyCollection=t.emptyCollection,exports.emptyManifest=t.emptyManifest,exports.emptyRange=t.emptyRange,exports.emptyService=t.emptyService,exports.frameResource=t.frameResource,exports.getDefaultEntities=t.getDefaultEntities,exports.identifyResource=e.identifyResource,exports.isSpecificResource=e.isSpecificResource,exports.isWildcard=t.isWildcard,exports.languageString2to3=t.languageString2to3,exports.merge=t.merge,exports.mergeEntities=t.mergeEntities,exports.normalize=t.normalize,exports.resolveIfExists=t.resolveIfExists,exports.serialize=t.serialize,exports.serializeConfigPresentation2=t.serializeConfigPresentation2,exports.serializeConfigPresentation3=t.serializeConfigPresentation3,exports.serializedFieldsToObject=t.serializedFieldsToObject,exports.toRef=t.toRef,exports.traverseSpecificResource=t.traverseSpecificResource,exports.types=e.types; | ||
| require(`./remove-undefined-properties-B6rYUrLL.cjs`);const e=require(`./traverse-CLpGzNvI.cjs`),t=require(`./presentation-3-VW8mCvZy.cjs`);require(`./upgrader-FVo4y5jh.cjs`),require(`./profiles-iKAaapmR.cjs`),require(`./presentation-2-BUkBoZ0A.cjs`),exports.EMPTY=t.EMPTY,exports.HAS_PART=t.HAS_PART,exports.IS_EXTERNAL=t.IS_EXTERNAL,exports.PART_OF=t.PART_OF,exports.Traverse=e.Traverse,exports.UNSET=t.UNSET,exports.UNWRAP=t.UNWRAP,exports.WILDCARD=t.WILDCARD,exports.addFlagForExternalResource=t.addFlagForExternalResource,exports.compressSpecificResource=t.compressSpecificResource,exports.defaultEntities=t.defaultEntities,exports.emptyAgent=t.emptyAgent,exports.emptyAnnotation=t.emptyAnnotation,exports.emptyAnnotationPage=t.emptyAnnotationPage,exports.emptyCanvas=t.emptyCanvas,exports.emptyCollection=t.emptyCollection,exports.emptyManifest=t.emptyManifest,exports.emptyRange=t.emptyRange,exports.emptyService=t.emptyService,exports.frameResource=t.frameResource,exports.getDefaultEntities=t.getDefaultEntities,exports.identifyResource=e.identifyResource,exports.isSpecificResource=e.isSpecificResource,exports.isWildcard=t.isWildcard,exports.languageString2to3=t.languageString2to3,exports.merge=t.merge,exports.mergeEntities=t.mergeEntities,exports.normalize=t.normalize,exports.resolveIfExists=t.resolveIfExists,exports.serialize=t.serialize,exports.serializeConfigPresentation2=t.serializeConfigPresentation2,exports.serializeConfigPresentation3=t.serializeConfigPresentation3,exports.serializedFieldsToObject=t.serializedFieldsToObject,exports.toRef=t.toRef,exports.traverseSpecificResource=t.traverseSpecificResource,exports.types=e.types; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| import{Traverse as e,identifyResource as t,isSpecificResource as n,types as r}from"./traverse-BDmGe7EO.js";import{EMPTY as i,HAS_PART as a,IS_EXTERNAL as o,PART_OF as s,UNSET as c,UNWRAP as l,WILDCARD as u,addFlagForExternalResource as d,compressSpecificResource as f,defaultEntities as p,emptyAgent as m,emptyAnnotation as h,emptyAnnotationPage as g,emptyCanvas as _,emptyCollection as v,emptyManifest as y,emptyRange as b,emptyService as x,frameResource as S,getDefaultEntities as C,isWildcard as w,languageString2to3 as T,merge as E,mergeEntities as D,normalize as O,resolveIfExists as k,serialize as A,serializeConfigPresentation2 as j,serializeConfigPresentation3 as M,serializedFieldsToObject as N,toRef as P,traverseSpecificResource as F}from"./presentation-3-ChKeBggX.js";import"./remove-undefined-properties-DKmVdOaS.js";import"./upgrader-DoVcNsFK.js";import"./profiles-DU_UcLCg.js";import"./presentation-2-Bxbvy8if.js";export{i as EMPTY,a as HAS_PART,o as IS_EXTERNAL,s as PART_OF,e as Traverse,c as UNSET,l as UNWRAP,u as WILDCARD,d as addFlagForExternalResource,f as compressSpecificResource,p as defaultEntities,m as emptyAgent,h as emptyAnnotation,g as emptyAnnotationPage,_ as emptyCanvas,v as emptyCollection,y as emptyManifest,b as emptyRange,x as emptyService,S as frameResource,C as getDefaultEntities,t as identifyResource,n as isSpecificResource,w as isWildcard,T as languageString2to3,E as merge,D as mergeEntities,O as normalize,k as resolveIfExists,A as serialize,j as serializeConfigPresentation2,M as serializeConfigPresentation3,N as serializedFieldsToObject,P as toRef,F as traverseSpecificResource,r as types}; | ||
| import{Traverse as e,identifyResource as t,isSpecificResource as n,types as r}from"./traverse-BDmGe7EO.js";import{EMPTY as i,HAS_PART as a,IS_EXTERNAL as o,PART_OF as s,UNSET as c,UNWRAP as l,WILDCARD as u,addFlagForExternalResource as d,compressSpecificResource as f,defaultEntities as p,emptyAgent as m,emptyAnnotation as h,emptyAnnotationPage as g,emptyCanvas as _,emptyCollection as v,emptyManifest as y,emptyRange as b,emptyService as x,frameResource as S,getDefaultEntities as C,isWildcard as w,languageString2to3 as T,merge as E,mergeEntities as D,normalize as O,resolveIfExists as k,serialize as A,serializeConfigPresentation2 as j,serializeConfigPresentation3 as M,serializedFieldsToObject as N,toRef as P,traverseSpecificResource as F}from"./presentation-3-sAnB7vhe.js";import"./remove-undefined-properties-DKmVdOaS.js";import"./upgrader-DoVcNsFK.js";import"./profiles-DU_UcLCg.js";import"./presentation-2-Bxbvy8if.js";export{i as EMPTY,a as HAS_PART,o as IS_EXTERNAL,s as PART_OF,e as Traverse,c as UNSET,l as UNWRAP,u as WILDCARD,d as addFlagForExternalResource,f as compressSpecificResource,p as defaultEntities,m as emptyAgent,h as emptyAnnotation,g as emptyAnnotationPage,_ as emptyCanvas,v as emptyCollection,y as emptyManifest,b as emptyRange,x as emptyService,S as frameResource,C as getDefaultEntities,t as identifyResource,n as isSpecificResource,w as isWildcard,T as languageString2to3,E as merge,D as mergeEntities,O as normalize,k as resolveIfExists,A as serialize,j as serializeConfigPresentation2,M as serializeConfigPresentation3,N as serializedFieldsToObject,P as toRef,F as traverseSpecificResource,r as types}; |
@@ -1,1 +0,1 @@ | ||
| (function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.IIIFParser=t())})(this,function(){var e=Object.defineProperty,t=(t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})};function n(e){"@babel/helpers - typeof";return n=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},n(e)}function r(e,t){if(n(e)!=`object`||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||`default`);if(n(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function i(e){var t=r(e,`string`);return n(t)==`symbol`?t:t+``}function a(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let o=[`sc:Collection`,`sc:Manifest`,`sc:Canvas`,`sc:AnnotationList`,`oa:Annotation`,`sc:Range`,`sc:Layer`,`sc:Sequence`,`oa:Choice`,`Service`,`ContentResource`];function s(e){if(e==null)throw Error(`Null or undefined is not a valid entity.`);if(Array.isArray(e))throw Error(`Array is not a valid entity`);if(typeof e!=`object`)throw Error(`${typeof e} is not a valid entity`);if(typeof e[`@type`]==`string`){let t=o.indexOf(e[`@type`]);if(t!==-1)return o[t]}if(e.profile)return`Service`;if(e.format||e[`@type`])return`ContentResource`;throw Error(`Resource type is not known`)}var c=class e{constructor(e,t={}){a(this,`traversals`,void 0),a(this,`options`,void 0),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(t){return new e({collection:[t],manifest:[t],canvas:[t],annotationList:[t],sequence:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],layer:[t]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){let t=[...(e.manifests||[]).map(e=>typeof e==`string`?{"@id":e,"@type":`sc:Manifest`}:e),...(e.collections||[]).map(e=>typeof e==`string`?{"@id":e,"@type":`sc:Collection`}:e),...e.members||[]],n=[],r=t.filter(e=>n.includes(e[`@id`])?!1:(n.push(e[`@id`]),!0));delete e.collections,delete e.manifests,e.members=r}return e.manifests&&=e.manifests.map(e=>this.traverseManifest(typeof e==`string`?{"@id":e,"@type":`sc:Manifest`}:e)),e.collections&&=e.collections.map(e=>this.traverseCollection(typeof e==`string`?{"@id":e,"@type":`sc:Collection`}:e)),e.members&&=e.members.map(e=>typeof e==`string`?e:e[`@type`]===`sc:Collection`?this.traverseCollection(e):e[`@type`]===`sc:Manifest`?this.traverseManifest(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.map(e=>this.traverseSequence(e)),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.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.map(e=>this.traverseAnnotation(e)),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){let t=[...(e.ranges||[]).map(e=>typeof e==`string`?{"@id":e,"@type":`sc:Range`}:e),...(e.canvases||[]).map(e=>typeof e==`string`?{"@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){let t=typeof e==`string`?{"@id":e,"@type":`sc:AnnotationList`}:e;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(t)),this.traversals.annotationList)}traverseAnnotationListItems(e){return 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.map(e=>this.traverseAnnotationList(e)),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!==`rdf:nil`&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!==`rdf:nil`&&(e.item=e.item.map(e=>this.traverseContentResource(e))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e[`@type`]===`oa:Choice`?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e[`@type`]||typeof e==`string`)return e;switch(s(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){let t=Array.isArray(e),n=Array.isArray(e)?e:[e],r=[];for(let e of n)typeof e==`string`?r.push(this.traverseContentResource({"@id":e,"@type":`dctypes:Image`})):r.push(this.traverseContentResource(e));return!t&&!this.options.convertPropsToArray?r[0]:r}traverseDescriptive(e){return e.thumbnail&&=this.traverseImageResource(e.thumbnail),e.logo&&=this.traverseImageResource(e.logo),e}traverseOneOrMoreServices(e){let t=Array.isArray(e),n=Array.isArray(e)?e:[e],r=[];for(let e of n)r.push(this.traverseService(e));return!t&&!this.options.convertPropsToArray?r[0]:r}traverseLinking(e){return e.related&&=this.traverseOneOrManyType(e.related,this.traversals.contentResource),e.rendering&&=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource),e.service&&=this.traverseOneOrMoreServices(e.service),e.seeAlso&&=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource),e.within&&(typeof e.within==`string`||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas==`string`?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":`sc:Canvas`},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer==`string`?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":`sc:Layer`}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,t){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,t);return e.map(e=>this.traverseType(e,t))}traverseType(e,t){return t.reduce((e,t)=>{let n=t(e);return n===void 0&&!this.options.allowUndefinedReturn?e:n},e)}};let l=[`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`];function u(e){return Array.isArray(e)?e:e?[e]:[]}function d(e){for(let t in e)(e[t]===void 0||e[t]===null)&&delete e[t];return e}let f=`http://library.stanford.edu/iiif/image-api/compliance.html#level0`,p=`http://library.stanford.edu/iiif/image-api/compliance.html#level1`,m=`http://library.stanford.edu/iiif/image-api/compliance.html#level2`,ee=`http://library.stanford.edu/iiif/image-api/conformance.html#level0`,h=`http://library.stanford.edu/iiif/image-api/conformance.html#level1`,g=`http://library.stanford.edu/iiif/image-api/conformance.html#level2`,_=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0`,te=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1`,ne=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2`,re=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0`,ie=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1`,ae=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2`,oe=`http://iiif.io/api/image/1/level0.json`,v=`http://iiif.io/api/image/1/profiles/level0.json`,se=`http://iiif.io/api/image/1/level1.json`,ce=`http://iiif.io/api/image/1/profiles/level1.json`,le=`http://iiif.io/api/image/1/level2.json`,ue=`http://iiif.io/api/image/1/profiles/level2.json`,de=`http://iiif.io/api/image/2/level0.json`,fe=`http://iiif.io/api/image/2/profiles/level0.json`,pe=`http://iiif.io/api/image/2/level1.json`,me=`http://iiif.io/api/image/2/profiles/level1.json`,he=`http://iiif.io/api/image/2/level2.json`,ge=`http://iiif.io/api/image/2/profiles/level2.json`,_e=`level0`,ve=`level1`,ye=`level2`,be=`http://iiif.io/api/image/2/level0`,xe=`http://iiif.io/api/image/2/level1`,Se=`http://iiif.io/api/image/2/level2`,y=[Se,m,g,ne,ae,le,ue,he,ge,ye],b=[...y,xe,p,h,te,ie,se,ce,pe,me,ve],Ce=[be,xe,Se,f,p,m,ee,h,g,_,te,ne,re,ie,ae,oe,v,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye],we=Ce,Te=[be,f,ee,_,re,oe,v,de,fe,_e],Ee={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`sizeByWhListed`]},De={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPx`,`regionSquare`,`sizeByWhListed`,`sizeByH`,`sizeByW`,`sizeByWh`]},Oe={extraFormats:[`jpg`,`png`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationBy90s`,`sizeByWhListed`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`]},ke=[`baseUriRedirect`,`canonicalLinkHeader`,`cors`,`jsonldMediaType`,`mirroring`,`profileLinkHeader`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationArbitrary`,`rotationBy90s`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`,`sizeUpscaling`,`sizeByWhListed`,`sizeByDistortedWh`,`sizeByForcedWh`],Ae={attributionLabel:`Attribution`,lang:`none`,providerId:`http://example.org/provider`,providerName:``};function je(e){if(typeof e==`string`)return[e];if(!e)return[];let t=Array.isArray(e)?e:[e],n=[];for(let e of t){if(typeof e==`string`){n.push(e);continue}n.push({"@language":e[`@language`]||e.language,"@value":e[`@value`]||e.value})}return n}function x(e,t=`none`){if(!e)return{none:[``]};let n=je(e),r={};for(let e of n){if(typeof e==`string`){r[t]=r[t]?r[t]:[],r[t].push(e||``);continue}if(!e[`@language`]){r[t]=r[t]?r[t]:[],r[t].push(e[`@value`]||``);continue}let n=e[`@language`];r[n]=r[n]?r[n]:[],r[n].push(e[`@value`]||``)}return Object.keys(r).length===0?{none:[``]}:r}function Me(e){if(Array.isArray(e))return Me(e.find(e=>typeof e==`string`));if(y.indexOf(e)!==-1)return`level2`;if(l.indexOf(e)!==-1)return`level1`;if(we.indexOf(e)!==-1)return`level0`;if(typeof e==`string`)return e}function Ne(e){let t=Array.isArray(e)?e:[e];for(let e of t)switch(e){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 Pe(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`}}function Fe(e){for(let t of[`sc`,`oa`,`dcterms`,`dctypes`,`iiif`])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}let Ie=[`Collection`,`Manifest`,`Annotation`,`AnnotationPage`,`Range`,`Service`];function S(e){let t=e[`@id`]||e.id,n=e[`@type`]||e.type,r=e.profile||void 0,i=e[`@context`]||void 0;if(r){let e=Pe(r);if(e)return e}if(i){let e=Ne(i);if(e)return e}if(n){if(Array.isArray(n)){if(n.indexOf(`oa:CssStylesheet`)!==-1)return`CssStylesheet`;if(n.indexOf(`cnt:ContentAsText`)!==-1)return`TextualBody`;n=n[0]}for(let e of[`sc`,`oa`,`dcterms`,`dctypes`,`iiif`])if(n.startsWith(`${e}:`)){n=n.slice(e.length+1);break}switch(n){case`Layer`:return`AnnotationCollection`;case`AnnotationList`:return`AnnotationPage`;case`cnt:ContentAsText`:return`TextualBody`}}if(n&&Ie.indexOf(n)!==-1)return n;if(e.format){if(e.format.startsWith(`image/`))return`Image`;if(e.format.startsWith(`text/`)||e.format===`application/pdf`)return`Text`;if(e.format.startsWith(`application/`))return`Dataset`}return t&&(t.endsWith(`.jpg`)||t.endsWith(`.png`)||t.endsWith(`.jpeg`))?`Image`:n||`unknown`}let Le=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function Re(e){let t=e.match(Le);return t?t[0]:e}function ze(e,t=`Rights/License`,n=`none`){let r=null,i=[],a=Array.isArray(e)?e:[e];for(let e of a){let a=e?Re(e):void 0;if(a&&(a.indexOf(`creativecommons.org`)!==-1||a.indexOf(`rightsstatements.org`)!==-1)){r=a.startsWith(`https://`)?`http://${a.slice(8)}`:a;continue}a&&i.push({label:{[n]:[t]},value:{[n]:[a]}})}return[r,i]}let Be=[`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 Ve(e){if(e){let t=Array.isArray(e)?e:[e],n=[];for(let e of t){if(e===`http://iiif.io/api/presentation/2/context.json`&&n.push(`http://iiif.io/api/presentation/3/context.json`),Be.indexOf(e)!==-1)continue;n.push(e)}if(t.length)return n.length===1?n[0]:n}}function He(e){return e?e.map(e=>({label:x(e.label),value:x(e.value)})):[]}let Ue=0;function We(e,t){let n=encodeURI(e.id||e[`@id`]||``).trim();return n&&t?`${n}/${t}`:n||(Ue++,`http://example.org/${e[`@type`]}${t?`/${t}`:``}/${Ue}`)}function C(e){let t=[...e.behavior||[]];e.viewingHint&&t.push(e.viewingHint);let n;return Array.isArray(e.motivation)?n=e.motivation.map(Fe):e.motivation&&(n=Fe(e.motivation)),{"@context":e[`@context`]?Ve(e[`@context`]):void 0,id:(e[`@id`]||We(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:n,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function w(e){let[t,n]=ze(e.license),r=[...e.metadata?He(e.metadata):[],...n];return{rights:t,metadata:r.length?r:void 0,label:e.label?x(e.label):void 0,requiredStatement:e.attribution?{label:x(Ae.attributionLabel),value:x(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?x(e.description):void 0,thumbnail:Ge(e.thumbnail)}}function Ge(e){if(e){let t=Array.isArray(e)?e:[e];return t.map(e=>typeof e==`string`?{id:e,type:`Image`}:(e.type===`unknown`&&(e.type=`Image`),e))}return e}function Ke(e){if(!e.within)return;let t=Array.isArray(e.within)?e.within:[e.within],n=[];for(let r of t)if(typeof r==`string`){if(r)switch(e[`@type`]){case`sc:Manifest`:n.push({id:r,type:`Collection`});break}}else r[`@id`]&&n.push({id:r[`@id`],type:S(r)});return n.length?n:void 0}function T(e){let t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],n=e.contentLayer;return{provider:e.logo||t.length?[{id:Ae.providerId,type:`Agent`,homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:x(Ae.providerName)}]:void 0,partOf:Ke(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?u(e.service):void 0,supplementary:n?[n]:void 0}}function qe(e){return{chars:e.chars,format:e.format?e.format:void 0,language:e.language}}function E(e,t){return e?typeof e==`string`?{id:e,type:t}:typeof e?.[`@id`]==`string`?{id:e[`@id`],type:t}:typeof e.id==`string`?{id:e.id,type:t}:null:null}function Je(e){let t={};if(e.first){let n=E(e.first,`Collection`);n&&(t.first=n)}if((e.total||e.total===0)&&(t.total=e.total),e.prev){let n=E(e.prev,`Collection`);n&&(t.prev=n)}if(e.next){let n=E(e.next,`Collection`);n&&(t.next=n)}return t}function Ye(e){let t=[];for(let n of e){let e={...n};e.items&&e.items.length===0&&delete e.items,t.push(e)}return t}function Xe(e){return d({...C(e),...w(e),...T(e),...Je(e),items:Ye(e.members)})}function Ze(e){let t=[],n=[],r,i;for(let a of e.sequences||[])a.canvases.length&&t.push(...a.canvases),a.behavior&&n.push(...a.behavior),a.viewingDirection&&(i=a.viewingDirection),a.startCanvas&&(r=a.startCanvas);let a=C(e);return n.length&&(a.behavior?a.behavior.push(...n):a.behavior=n),d({...a,...w(e),...T(e),viewingDirection:i,start:r,items:t,structures:Qe(e.structures)})}function Qe(e){if(!e)return e;let t=new Map;for(let n of e)t.set(n.id,n);let n=[];for(let r of e)if(r.items){let e=r.items.map(e=>typeof e==`string`?(n.push(e),t.get(e)||e):e&&e.id?(n.push(e.id),t.get(e.id)||e):e);r.items=e}return e.filter(e=>n.indexOf(e.id)===-1)}function $e(e){return d({...C(e),...w(e),...T(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:We(e,`annotation-page`),type:`AnnotationPage`,items:e.images}]:void 0})}function et(e){return d({...C(e),...w(e),...T(e),items:e.resources&&e.resources.length?e.resources:void 0})}function tt(e){return!e.canvases||e.canvases.length===0?{canvases:[],behavior:[]}:{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[],viewingDirection:e.viewingDirection,startCanvas:e.startCanvas}}function nt(e){function t(e){if(Array.isArray(e)){if(e.length>1)return{type:`List`,items:e.map(t)};e=e[0]}if(typeof e==`string`)return encodeURI(e).trim();if(`@type`in e){let t;if(typeof e.full==`string`)t=e.full;else if(e.full[`@type`]===`dctypes:Image`)t={id:e.full[`@id`],type:`Image`};else if(e.full[`@type`]===`sc:Canvas`)t={id:e.full[`@id`],type:`Canvas`};else throw Error(`Unsupported source type on annotation: ${e.full[`@type`]}`);return{type:`SpecificResource`,source:t,selector:D(e.selector)}}else return encodeURI(e[`@id`]).trim()}return d({...C(e),...w(e),...T(e),target:t(e.on),body:Array.isArray(e.resource)?e.resource.map(rt):rt(e.resource)})}function rt(e){return e.type===`Choice`?e:it(e)}function it(e){let t=e;return d({...C(t),...w(t),...T(t),...qe(t)})}function at(e){let t=[];return e.default&&e.default!==`rdf:nil`&&t.push(e.default),e.item&&e.item!==`rdf:nil`&&t.push(...e.item),d({...C(e),...w(e),items:t})}function ot(e){return d({...C(e),...w(e),...T(e),items:e.members})}function st(e){let{"@id":t,"@type":n,"@context":r,profile:i,...a}=e,o={};return t&&(o[`@id`]=t),o[`@type`]=S(e),o[`@type`]===`unknown`&&(r&&r.length&&(o[`@context`]=r),o[`@type`]=`Service`),i&&(o.profile=Me(i)),d({...o,...a})}function ct(e){return d({...C(e),...w(e),...T(e)})}let lt=new c({collection:[Xe],manifest:[Ze],canvas:[$e],annotationList:[et],sequence:[tt],annotation:[nt],contentResource:[it],choice:[at],range:[ot],service:[st],layer:[ct]});function ut(e){return e&&e[`@context`]&&(e[`@context`]===`http://iiif.io/api/presentation/2/context.json`||e[`@context`].indexOf(`http://iiif.io/api/presentation/2/context.json`)!==-1||e[`@context`]===`http://www.shared-canvas.org/ns/context.json`)||e[`@context`]===`http://iiif.io/api/image/2/context.json`||e[`@id`]&&e[`@type`]===`sc:Collection`||e[`@id`]&&e[`@type`]===`sc:Manifest`?(e[`@context`]||=`http://iiif.io/api/presentation/2/context.json`,lt.traverseUnknown(e)):e}function D(e){let t=(Array.isArray(e[`@type`])&&e[`@type`].includes(`oa:SvgSelector`)||e[`@type`]==`oa:SvgSelector`)&&(`chars`in e||`value`in e);if(t)return{type:`SvgSelector`,value:`chars`in e?e.chars:e.value};if(e[`@type`]===`oa:FragmentSelector`)return{type:`FragmentSelector`,value:e.value};if(e[`@type`]===`oa:Choice`)return[D(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(D)];if(e[`@type`]==`iiif:ImageApiSelector`)return{type:`ImageApiSelector`,region:`region`in e?e.region:void 0,rotation:`rotation`in e?e.rotation:void 0};throw Error(`Unsupported selector type: ${e[`@type`]}`)}var dt={};t(dt,{Traverse:()=>c,convertLanguageMapping:()=>x,convertPresentation2:()=>ut,getProfile:()=>Me,getTypeFromContext:()=>Ne,identifyResource:()=>s,presentation2to3:()=>lt,types:()=>o});function O(e){return typeof e==`string`?!1:e&&!e.type&&`source`in e?(e.type=`SpecificResource`,!0):!!e&&e.type===`SpecificResource`}function ft(e,t){let n=t||`unknown`;if(!e)return;if(typeof e==`string`)return{id:e,type:n};if(O(e))return ft(e.source,t);let r=n&&n!==`unknown`?n:e.type||e[`@type`],i=e.id||e[`@id`];if(r&&r.indexOf(`:`)!==-1&&(r=r.split(`:`).pop()),i&&r)return{id:i,type:r}}let k={},A=`iiif-parser:hasPart`,j=`iiif-parser:partOf`,M=`iiif-parser:isExternal`,N=`__$UNSET$__`,pt=`__$UNWRAP$__`,P=[];Object.freeze(P),Object.freeze(k);function mt(e){if(e===k||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function ht(e,t){if(t&&t[`@explicit`]){let n={},r=Object.keys(t);for(let i of r){if(i===j||i===`@explicit`)continue;mt(t[i])?n[i]=e[i]:n[i]=t[i]}return n}return e}function gt(e,t,n){let r=ft(t);if(!r)return[void 0,void 0];let i=e.requests[r.id],a=r.type||e.mapping[r.id];if(!a||i&&i.resourceUri&&(!e.entities[a]||!e.entities[a][i.resourceUri]))return[void 0,void 0];let o=e.entities[a][i?i.resourceUri:r.id];if(r.type&&!o)return gt(e,{id:r.id},n);if(o&&o[A]){let e=o[A].find(e=>n?e[j]===n.id:e[j]===o.id),t=ht(o,e);return[t,o]}return[o,o]}let _t={id:`https://iiif-parser/annotation`,type:`Annotation`,behavior:P,label:null,thumbnail:P,summary:null,requiredStatement:null,metadata:P,seeAlso:P,homepage:P,rendering:P,service:P,accessibility:P,audience:P,body:P,bodyValue:null,canonical:null,created:null,creator:P,generated:null,generator:P,modified:null,motivation:P,rights:null,stylesheet:null,target:P,timeMode:void 0,via:P,partOf:P},vt={id:`https://iiif-parser/annotation-page`,type:`AnnotationPage`,behavior:P,label:null,thumbnail:P,summary:null,requiredStatement:null,metadata:P,rights:null,provider:P,items:P,seeAlso:P,homepage:P,rendering:P,service:P},yt={id:`https://iiif-parser/empty-canvas`,type:`Canvas`,label:null,behavior:P,thumbnail:P,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:P,rights:null,navDate:null,provider:P,items:P,annotations:P,seeAlso:P,homepage:P,partOf:P,rendering:P,service:P,duration:0,height:0,width:0},bt={id:`https://iiif-parser/empty-collection`,type:`Collection`,label:null,viewingDirection:`left-to-right`,behavior:P,thumbnail:P,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:P,rights:null,navDate:null,provider:P,items:P,annotations:P,seeAlso:P,homepage:P,partOf:P,rendering:P,service:P,services:P},xt={id:`https://iiif-parser/empty-manifest`,type:`Manifest`,annotations:P,behavior:P,homepage:P,items:P,label:null,metadata:P,navDate:null,provider:P,partOf:P,accompanyingCanvas:null,placeholderCanvas:null,rendering:P,requiredStatement:null,rights:null,seeAlso:P,service:P,services:P,start:null,structures:P,summary:null,thumbnail:P,viewingDirection:`left-to-right`},St={id:`https://iiif-parser/empty-canvas`,type:`Range`,label:null,behavior:P,thumbnail:P,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:P,rights:null,navDate:null,provider:P,items:P,annotations:P,seeAlso:P,homepage:P,partOf:P,rendering:P,service:P,start:null,supplementary:null,viewingDirection:`left-to-right`},Ct={id:`https://iiif-parser/empty-agent`,type:`Agent`,label:{},logo:P,seeAlso:P,homepage:P},wt={id:`https://iiif-parser/empty-service`,type:`UnknownService`};function F(e,t={}){if(Array.isArray(e))return F(e[0]);if(typeof e==`string`){let[n,r]=e.split(`#`);return r?{type:`SpecificResource`,source:{id:n,type:t.typeHint||`Unknown`},selector:{type:`FragmentSelector`,value:r}}:{type:`SpecificResource`,source:{id:n,type:t.typeMap&&t.typeMap[n]||t.typeHint||`Unknown`}}}if(e.type===`Choice`||e.type===`List`||e.type===`Composite`||e.type===`Independents`)return F(e.items[0]);if(!e.type&&`source`in e&&(e.type=`SpecificResource`),e.type===`SpecificResource`){e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:`Manifest`}]);let n=typeof e.source==`string`?e.source:e.source.id;if(n?.includes(`#`)){let r=F(n,t);r&&(e.selector=r.selector,e.source=r.source)}return e.selector?{type:`SpecificResource`,source:e.source,selector:e.selector}:{type:`SpecificResource`,source:e.source}}if(e.id){e.type===`Canvas`&&e.partOf&&typeof e.partOf==`string`&&(e.partOf=[{id:e.partOf,type:`Manifest`}]);let[t,n]=e.id.split(`#`);return n?{type:`SpecificResource`,source:{...e,id:t},selector:{type:`FragmentSelector`,value:n}}:{type:`SpecificResource`,source:{...e,id:t}}}return{type:`SpecificResource`,source:e}}function I(...e){return t=>e.reduce((e,t)=>t(e),t)}let Tt=[`Collection`,`Manifest`,`Canvas`,`AnnotationPage`,`AnnotationCollection`,`Annotation`,`ContentResource`,`Range`,`Service`,`Selector`,`Agent`];function Et(e,t){if(e==null)throw Error(`Null or undefined is not a valid entity.`);if(Array.isArray(e))throw Error(`Array is not a valid entity`);if(typeof e!=`object`){if(t)return t;throw Error(`${typeof e} is not a valid entity`)}if(typeof e.type==`string`){let t=Tt.indexOf(e.type);if(t!==-1)return Tt[t]}if(e.profile)return`Service`;throw Error(`Resource type is not known`)}var Dt=class e{constructor(e,t={}){a(this,`traversals`,void 0),a(this,`options`,void 0),a(this,`_traverseManifest`,I(this.traverseManifestItems.bind(this),this.traverseNavPlace.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseManifestStructures.bind(this),this.traverseInlineAnnotationPages.bind(this))),a(this,`_traverseCanvas`,I(this.traverseCanvasItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseInlineAnnotationPages.bind(this))),a(this,`_traverseAnnotationPage`,I(this.traverseAnnotationPageItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this))),a(this,`_traverseRange`,I(this.traverseRangeRanges.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this))),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],specificResource:[],geoJson:[],...e},this.options={allowUndefinedReturn:!1,...t}}static all(t){return new e({collection:[t],manifest:[t],canvas:[t],annotationCollection:[t],annotationPage:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],geoJson:[t],specificResource:[t],agent:[t]})}traverseDescriptive(e){return e.thumbnail&&=u(e.thumbnail).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.provider&&=e.provider.map(t=>this.traverseAgent(t,e)),e}traverseLinking(e){return e.seeAlso&&=u(e.seeAlso).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.service&&=u(e.service).map(e=>this.traverseService(e)),e.services&&=u(e.services).map(t=>this.traverseService(t,e)),e.logo&&=u(e.logo).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.homepage&&=u(e.homepage).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.partOf&&=e.partOf.map(t=>typeof t==`string`||!t.type?this.traverseType(t,{parent:e},this.traversals.contentResource):t.type===`Canvas`?this.traverseType(t,{parent:e},this.traversals.canvas):t.type===`AnnotationCollection`?this.traverseType(t,{parent:e},this.traversals.annotationCollection):t.type===`Collection`?this.traverseType(t,{parent:e},this.traversals.collection):this.traverseType(t,{parent:e},this.traversals.contentResource)),e.start&&(O(e.start)?e.start=this.traverseSpecificResource(e.start,`Canvas`,e):e.start=this.traverseType(e.start,{parent:e},this.traversals.canvas)),e.rendering&&=e.rendering.map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.supplementary&&=e.supplementary.map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e}traverseCollectionItems(e){return e.items&&e.items.map(e=>e.type===`Collection`?this.traverseCollection(e):this.traverseManifest(e)),e}traverseCollection(e,t){return this.traverseType(this.traverseDescriptive(this.traverseNavPlace(this.traverseInlineAnnotationPages(this.traverseLinking(this.traverseLinkedCanvases(this.traverseCollectionItems(e)))))),{parent:t},this.traversals.collection)}traverseGeoJson(e,t){return this.traverseType(e,{parent:t},this.traversals.geoJson)}traverseNavPlace(e){return e.navPlace&&=this.traverseGeoJson(e.navPlace,e),e}traverseManifestItems(e){return e.items&&=e.items.map(e=>this.traverseCanvas(e)),e}traverseManifestStructures(e){return e.structures&&=e.structures.map(e=>this.traverseRange(e)),e}traverseManifest(e,t){return this.traverseType(this._traverseManifest(e),{parent:t},this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(t=>this.traverseAnnotationPage(t,e)),e}traverseInlineAnnotationPages(e){return typeof e==`string`||!e||(e.annotations&&=e.annotations.map(t=>this.traverseAnnotationPage(t,e))),e}traverseCanvas(e,t){return this.traverseType(this._traverseCanvas(e),{parent:t},this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&=e.items.map(t=>this.traverseAnnotation(t,e)),e}traverseAnnotationPage(e,t){return this.traverseType(this._traverseAnnotationPage(e),{parent:t},this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(t=>this.traverseContentResource(t,e)):e.body&&=this.traverseContentResource(e.body,e),e}traverseLinkedCanvases(e){return e.placeholderCanvas&&=this.traverseCanvas(e.placeholderCanvas),e.accompanyingCanvas&&=this.traverseCanvas(e.accompanyingCanvas),e}traverseAnnotation(e,t){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(this.traverseDescriptive(e))),{parent:t},this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e==`string`||!e||e&&e.service&&(e.service=u(e.service||[]).map(t=>this.traverseService(t,e))),e}traverseContentResource(e,t){return e.type===`Choice`&&(e.items=e.items.map(t=>this.traverseContentResource(t,e))),O(e)?this.traverseSpecificResource(e,`ContentResource`):this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),{parent:t},this.traversals.contentResource)}traverseSpecificResource(e,t,n){let r=e.source;return typeof e.source==`string`&&(r={id:e.source,type:t||`unknown`}),this.traverseType({...e,source:t===`Canvas`||r.type===`Canvas`?this.traverseType(r,{parent:n},this.traversals.canvas):t===`ContentResource`?this.traverseContentResource(r,{parent:n}):this.traverseUnknown(r,{parent:n,typeHint:t})},{parent:n},this.traversals.specificResource)}traverseRangeRanges(e){return e.items&&=e.items.map(t=>typeof t==`string`?this.traverseCanvas({id:t,type:`Canvas`},e):O(t)?this.traverseSpecificResource(t,`Canvas`,e):t.type===`Manifest`?this.traverseManifest(t,e):this.traverseRange(t,e)),e}traverseRange(e,t){return this.traverseType(this._traverseRange(e),{parent:t},this.traversals.range)}traverseAgent(e,t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),{parent:t},this.traversals.agent)}traverseType(e,t,n){return n.reduce((e,n)=>{let r=n(e,t);return r===void 0&&!this.options.allowUndefinedReturn?e:r},e)}traverseService(e,t){let n=Object.assign({},e);return n&&n.service&&(n.service=u(n.service).map(e=>this.traverseService(e))),this.traverseType(n,{parent:t},this.traversals.service)}traverseUnknown(e,{parent:t,typeHint:n}={}){let r=Et(e,n);switch(r){case`Collection`:return this.traverseCollection(e,t);case`Manifest`:return this.traverseManifest(e,t);case`Canvas`:return this.traverseCanvas(e,t);case`AnnotationPage`:return this.traverseAnnotationPage(e,t);case`Annotation`:return this.traverseAnnotation(e,t);case`ContentResource`:return this.traverseContentResource(e,t);case`Range`:return this.traverseRange(e,t);case`Service`:return this.traverseService(e,t);case`Agent`:return this.traverseAgent(e,t);default:throw Error(`Unknown or unsupported resource type of ${r}`)}}};let Ot={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function kt(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function At(e,t){if(typeof e==`string`)return{id:e,type:t};if(!e.id)throw Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function jt(e,t){return(n,r)=>{let i=e[n]?e[n]:{};return(e,a)=>{let o=At(e,r||n);return o&&o.id&&n?(i[o.id]=i[o.id]?R(i[o.id],o,{parent:a.parent,isTopLevel:t.id===o.id}):R({id:o.id,type:o.type},o,{parent:a.parent,isTopLevel:t.id===o.id}),{id:o.id,type:n===`ContentResource`?n:o.type}):o}}}function L(e,t,n){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw Error(`Cannot merge array with non-array`);let n=[...e];for(let r of t){if(r[`@id`]&&!r.id&&(r.id=r[`@id`]),r[`@type`]&&!r.type&&(r.type=r[`@type`]),r==null)continue;if(Array.isArray(r))n.push(r);else if(typeof r==`object`&&r.id&&r.type){let e=n.findIndex(e=>e.id===r.id&&e.type===r.type);e>=0&&(n[e]=L(n[e],r))}else e.indexOf(r)===-1&&n.push(r)}return n}else if(typeof e==`object`){if(Array.isArray(t)||typeof t!=`object`)throw Error(`Cannot merge object with non-object`);let r={...e},i=[],a=[],o=Object.keys(e).filter(e=>e!==A&&e!==`id`&&e!==`type`),s={},c={};for(let[e,n]of Object.entries(t)){if(e===A||e===`id`||e===`type`)continue;let t=r[e];t===n?a.push(e):t===P||!t?(i.push(e),r[e]=n):(t&&n&&(s[e]=t,c[e]=n),r[e]=L(t,n),r[e]===s[e]&&(a.push(e),delete s[e]))}if(n&&(n.parent&&n.parent.id||n.isTopLevel)){let t=[],l={};if(n.parent?l[j]=n.parent.id:n.isTopLevel&&(l[j]=e.id),r[A]&&r[A].length){let e=!(r[A]||[]).find(e=>e[`@explicit`]),n=i.length>0||a.length!==o.length;if(e&&n)for(let e of r[A]){let n={...e},r=Object.keys(s);if(n){n[`@explicit`]=!0;for(let e of o)e!==A&&(n[e]=k);for(let e of r)n[e]=s[e]}t.push(n)}else t.push(...r[A]);if(n){let e=Object.keys(c);l[`@explicit`]=!0;for(let e of i)l[e]=k;for(let e of a)l[e]=k;for(let t of e)l[t]=c[t]}}l.id=r.id,l.type=r.type,t.push(l),r[A]=t}return r}else if(e)return e;return t}function R(e,t,n){if(typeof e==`string`)return e;if(t.id!==e.id||t.type!==e.type){if(t.type===`ImageService3`)return t;if(e.type===`ImageService3`)return e;throw Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return L({...e},t,n)}function Mt(e){return(t,n)=>r=>{let{id:i,type:a}=At(r,n||t);if(i===void 0)throw Error(`Found invalid entity without an ID.`);return t===`ContentResource`||t===`Service`?e[i]=t:e[i]=a,r}}function Nt(e){let t=Object.assign({},e);if(t[`@id`]&&(t.id=t[`@id`]),t[`@type`]&&(t.type=t[`@type`]),t.service){let e=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)e.push({id:n[`@id`]||n.id,type:n[`@type`]||n.type});t.service=e}return Object.assign({},wt,t)}function Pt(e){return t=>{e.Service=e.Service?e.Service:{};let n=t.id||t[`@id`],r=Nt(t);return r&&r.id&&(e.Service[r.id]?e.Service[n]=R(e.Service[n],r):e.Service[n]=r),t}}function Ft(e){let t=JSON.stringify(e),n=5381,r=t.length;for(;r;)n=n*33^t.charCodeAt(--r);let i=n>>>0,a=i.toString(16);return a.length%2?`0`+a:a}function It(e){return t=>typeof t==`string`?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${Ft(t)}`,type:e,...t}}function z(e){return t=>({...e,...t})}function B(e){return Array.isArray(e)?e:[e]}function Lt(e){return e.body&&=B(e.body),e.seeAlso&&=B(e.seeAlso),e.audience&&=B(e.audience),e.accessibility&&=B(e.accessibility),e.motivation&&=B(e.motivation),e}function Rt(e,{typeHint:t,partOfTypeHint:n}={}){if(typeof e==`string`&&(e={id:e,type:t||`unknown`}),O(e))return typeof e.source==`string`&&(e.source={id:e.source,type:t||`unknown`}),e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:n||`Manifest`}]),e;let r;if((e.id||``).indexOf(`#`)!==-1){let[t,n]=(e.id||``).split(`#`);e.id=t,n&&(r={type:`FragmentSelector`,value:n})}return{type:`SpecificResource`,source:e,selector:r}}function zt(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(e=>typeof e==`string`||e.type===`Canvas`?Rt(e):e)),t}function Bt(e){let t=Object.assign({},e);return t.start?(t.start=Rt(t.start,{typeHint:`Canvas`}),t):e}function Vt(e){let t=Object.assign({},e);return t.target?(t.target=F(t.target,{typeHint:`Canvas`}),t):e}function Ht(e){return e}function V(e){return e.items===void 0&&(e[M]=!0),e}function Ut(e){let t=ut(e),n=kt(),r={},i=jt(n,t),a=Mt(r),o=new Dt({collection:[V,z(bt),a(`Collection`),i(`Collection`)],manifest:[V,z(xt),Bt,a(`Manifest`),i(`Manifest`)],canvas:[z(yt),a(`Canvas`),i(`Canvas`)],annotationPage:[V,It(`AnnotationPage`),z(vt),a(`AnnotationPage`),i(`AnnotationPage`)],annotation:[It(`Annotation`),Lt,Vt,a(`Annotation`),i(`Annotation`)],contentResource:[It(`ContentResource`),a(`ContentResource`),i(`ContentResource`)],range:[z(St),zt,a(`Range`,`Canvas`),i(`Range`,`Canvas`)],agent:[z(Ct),a(`Agent`),i(`Agent`)],specificResource:[Ht],service:[Pt(n)]}),s=o.traverseUnknown(t);return{entities:n,resource:s,mapping:r}}function Wt(e){let t={};for(let[n,r]of e){if(n===pt&&r!==N)return r;r!==N&&r!=null&&(t[n]=r)}return t}function Gt(e,t,n){if(!t.type||!t.id)throw Error(`Unknown entity`);if(!n[t.type])throw Error(`Serializer not found for ${t.type}`);function r(i,a,o=0){let s=n[i.type];if(!s)return N;if(o>20)throw Error(`Circular reference: `+i.id+` `+i.type);let[c,l]=gt(e,i.type?i:i.id,a)||(i.id&&i.type?i:null);if(!c)return N;let u=s(c,e,{parent:a,isTopLevel:t.id===i.id,fullResource:l}),d=u.next();for(;!d.done;){let e=d.value,t=N;if(e)if(Array.isArray(e)){let n=[];for(let t of e)n.push(r(t,i,o+1));t=n}else t=r(e,i,o+1);d=u.next(t)}return d.value===N?N:Wt(d.value)}return r(t)}function H(e,{allowSourceString:t=!0,allowString:n=!1,allowedStringType:r}={}){let i=e=>{if(t&&e&&e.source&&typeof e.source!=`string`){let t=Object.keys(e.source);if(e.source.id&&e.source.type&&t.length===2)return{...e,source:e.source.id}}return e};if(e){if(e.source&&e.source.partOf)return i(e);let t=Object.keys(e);if(t.length===2&&e.type&&e.source||t.length===3&&e.type&&e.source&&t.indexOf(`selector`)!==-1&&!e.selector)return n&&(!r||r===e.source.type)?e.source.id:e.source.type===`ContentResource`?{type:`SpecificResource`,source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!=`string`&&e.selector.type===`FragmentSelector`){let t=`${e.source.id}#${e.selector.value}`;return n?t:{id:t,type:e.source.type}}}return i(e)}function U(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let n=t[0];if(!n)return``;let r=(e[n]||[]).join(``);return n===`@none`||n===`none`||n===`en`?r:{"@language":n,"@value":r}}return t.map(t=>({"@language":t,"@value":(e[t]||[]).join(``)}))}}function Kt(e){return Array.isArray(e)?e.map(e=>Kt(e)):typeof e==`string`?e:e.type&&e.type===`Canvas`?e.id:e}function W(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function qt(e){if(e){if(typeof e==`string`)return{"@id":e};if(`@id`in e){let 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 G(e,t){return[[`@id`,e.id],[`@type`,t],[`format`,e.format],[`height`,e.height],[`width`,e.width],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`license`,e.license?e.license:void 0]]}function*K(e){let t=e.provider?yield e.provider[0]:void 0;return[[`label`,U(e.label)],[`metadata`,e.metadata&&e.metadata.length?e.metadata.map(e=>({label:U(e.label)||``,value:U(e.value)||``})):void 0],[`description`,U(e.summary)],[`thumbnail`,W(yield e.thumbnail)],[`navDate`,e.navDate],[`logo`,t?W(t.logo):void 0],[`homepage`,t?t.homepage:void 0],[`attribution`,e.requiredStatement?U(e.requiredStatement.value):void 0]]}function*q(e){let t=e.start&&e.start.type&&e.start.type===`SpecificResource`?H(e.start):e.start;return[[`seeAlso`,W(yield e.seeAlso)],[`service`,W((e.service||[]).map(qt))],[`rendering`,W(yield e.rendering)],[`startCanvas`,t?t.id:void 0]]}function Jt(e){return e.type===`SpecificResource`}function Yt(e){return e&&e.type===`FragmentSelector`}function Xt(e){if(e&&Jt(e)){let t=e.id,n=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return Yt(n)&&(t+=`#`+n.value),t}return e?.id}let Zt={Manifest:function*(e,t,{isTopLevel:n}){return[...n?[[`@context`,`http://iiif.io/api/presentation/2/context.json`]]:[],...G(e,`sc:Manifest`),...yield*K(e),...yield*q(e),[`sequences`,[{"@id":`${e.id}/sequence0`,"@type":`sc:Sequence`,canvases:yield e.items}]],[`structures`,yield e.structures]]},Canvas:function*(e){let t=yield e.items,n=t[0];return[...G(e,`sc:Canvas`),...yield*K(e),...yield*q(e),[`images`,n?[n.resources]:void 0],[`annotations`,e.annotations&&e.annotations.length?W(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...G(e,`sc:AnnotationList`),...yield*K(e),[`resources`,e.items&&e.items.length?W(yield e.items):void 0]]},Annotation:function*(e){return[[`@id`,e.id],[`@type`,`oa:Annotation`],[`motivation`,`sc:painting`],[`on`,Kt(e.target)],[`resource`,W(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case`Image`:return[...G(e,`dctypes:Image`),...yield*K(e),...yield*q(e)];case`Text`:case`Dataset`:default:return[...G(e,void 0),...yield*K(e)]}},AnnotationCollection:function*(e){return[[`@id`,e.id],[`@type`,`sc:Layer`],[`label`,U(e.label)]]},Collection:function*(e){return[...G(e,`sc:Collection`),...yield*K(e),...yield*q(e),[`members`,yield*e.items]]},Range:function*(e){let t=[],n=[];if(e.items)for(let r of e.items){let i=r.type===`SpecificResource`?r.source:r;if(i){let a=yield i;t.push({"@id":Xt(r),"@type":i.type,label:a?a.label:void 0,within:e.id}),i.type===`Canvas`&&n.push(i.id)}}return[...G(e,`sc:Range`),...yield*K(e),...yield*q(e),[`canvases`,n.length===t.length?n:void 0],[`members`,n.length===t.length?void 0:t]]}};function J(e){return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],[`type`,e.type],[`format`,e.format],[`profile`,e.profile],[`height`,e.height||void 0],[`width`,e.width||void 0],[`duration`,e.duration||void 0],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`behavior`,e.behavior&&e.behavior.length?e.behavior:void 0],[`timeMode`,e.timeMode],[`motivation`,Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[A,N]]}function Y(e){if(e===N||!e||e.length===0)return;let t=e.filter(e=>e!==N);if(t.length!==0)return t}function Qt(e){if(e&&e.type&&e.type===`ImageService2`){let{id:t,type:n,profile:r,...i}=e,a=typeof r==`string`?r:Array.isArray(r)?r.find(e=>typeof e==`string`):``;return{"@id":t,"@type":n,profile:a?a.startsWith(`http`)?a:`http://iiif.io/api/image/2/${a}.json`:`http://iiif.io/api/image/2/level0.json`,...i}}return e}function $t(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Qt)}function*X(e){return[[`label`,e.label],[`metadata`,Y(e.metadata)],[`summary`,e.summary],[`requiredStatement`,e.requiredStatement],[`rights`,Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],[`navDate`,e.navDate],[`language`,e.language],[`thumbnail`,Y(yield e.thumbnail)],[`placeholderCanvas`,yield e.placeholderCanvas],[`accompanyingCanvas`,yield e.accompanyingCanvas],[`provider`,Y(yield e.provider)]]}function*Z(e,t){let n=[];for(let r of e.partOf||[]){if(r.type===`Manifest`&&t.type===`Manifest`)continue;n.push(yield r)}return[[`seeAlso`,Y(yield e.seeAlso)],[`service`,Y($t(e.service))],[`services`,Y($t(e.services))],[`rendering`,Y(yield e.rendering)],[`supplementary`,Y(yield e.supplementary)],[`homepage`,Y(yield e.homepage)],[`logo`,Y(yield e.logo)],[`partOf`,Y(n)],[`start`,e.start?H(e.start):e.start]]}let en={Manifest:function*(e,t,{isTopLevel:n}){if(!n)return[...J(e),...yield*X(e),[`navPlace`,e.navPlace]];let r=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||nn(e))&&(r=[`http://iiif.io/api/presentation/3/context.json`,`http://iiif.io/api/extension/navplace/context.json`]),[[`@context`,e[`@context`]?e[`@context`]:r],...J(e),...yield*X(e),...yield*Z(e),[`items`,yield e.items],[`structures`,Y(yield e.structures)],[`annotations`,Y(yield e.annotations)],[`navPlace`,e.navPlace]]},Canvas:function*(e,t,{parent:n}){return n&&n.type!==`Manifest`&&n.type!==`Canvas`?[[`id`,e.id]]:[...J(e),...yield*X(e),...yield*Z(e,n),[`items`,yield e.items],[`annotations`,Y(yield e.annotations)],[`navPlace`,e.navPlace]]},Agent:function*(e){return[[`id`,e.id],[`type`,`Agent`],[`label`,e.label],...yield*Z(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?Y(t):t]).filter(([e,t])=>e!==`items`&&e!==`id`&&e!==A&&e!==j&&e!==M),n=yield e.items;return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],...t,...yield*Z(e),[`items`,n.length||e[M]===!1?n:N]]},Service:function*(e){return[[pt,Qt(e)]]},Annotation:function*(e){let t=Object.entries(e).map(([e,t])=>e===`motivation`?[e,Array.isArray(t)?t[0]:t]:e===`target`?[e,H(t,{allowString:!0,allowSourceString:!0,allowedStringType:`Canvas`})]:[e,Array.isArray(t)?Y(t):t]).filter(([e])=>e!==`body`&&e!==A&&e!==M),n;if(Array.isArray(e.body)){let t=[];for(let n of e.body)if(n&&O(n)){let e={...n};n.source.type===`Canvas`?e.source=n.source:e.source=yield n.source,t.push(H(e,{allowSourceString:!0}))}else t.push(yield n);n=t}else e.body&&O(e.body)?(n={...e.body},n.source=yield e.body.source):n=yield e.body;return[...t,...yield*X(e),...yield*Z(e),[`body`,n.length===1?n[0]:n]]},ContentResource:function*(e){return tn([...J(e),...yield*X(e),...yield*Z(e),[`annotations`,Y(yield e.annotations)],[`items`,Y(yield e.items)]],e)},AnnotationCollection:function*(e){return[[`id`,e.id],[`type`,`AnnotationCollection`],[`label`,e.label]]},Collection:function*(e,t,{isTopLevel:n}){if(n){let t=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||nn(e))&&(t=[`http://iiif.io/api/extension/navplace/context.json`,`http://iiif.io/api/presentation/3/context.json`]),[[`@context`,t],...J(e),...yield*X(e),...yield*Z(e),[`items`,Y(yield e.items)],[`navPlace`,e.navPlace]]}return[...J(e),...yield*X(e),[`navPlace`,e.navPlace]]},Range:function*(e){let t=[];for(let n of e.items)n.type===`Range`?t.push(yield n):n&&n.type===`SpecificResource`?t.push(H(n)):t.push(n);return[...J(e),...yield*X(e),...yield*Z(e),[`items`,t],[`annotations`,Y(yield e.annotations)],[`navPlace`,e.navPlace]]}};function tn(e,t){let n=Object.keys(t),r=e.map(([e])=>e);for(let i of n){if(i===A||i===M)continue;r.indexOf(i)===-1&&t[i]!==void 0&&e.push([i,t[i]])}return e}function nn(e){if(!e.items||!Array.isArray(e.items))return!1;for(let t of e.items)if(t.navPlace)return!0;return!1}var rn={};t(rn,{EMPTY:()=>P,HAS_PART:()=>A,IS_EXTERNAL:()=>M,PART_OF:()=>j,Traverse:()=>Dt,UNSET:()=>N,UNWRAP:()=>pt,WILDCARD:()=>k,addFlagForExternalResource:()=>V,compressSpecificResource:()=>H,defaultEntities:()=>Ot,emptyAgent:()=>Ct,emptyAnnotation:()=>_t,emptyAnnotationPage:()=>vt,emptyCanvas:()=>yt,emptyCollection:()=>bt,emptyManifest:()=>xt,emptyRange:()=>St,emptyService:()=>wt,frameResource:()=>ht,getDefaultEntities:()=>kt,identifyResource:()=>Et,isSpecificResource:()=>O,isWildcard:()=>mt,languageString2to3:()=>U,merge:()=>L,mergeEntities:()=>R,normalize:()=>Ut,resolveIfExists:()=>gt,serialize:()=>Gt,serializeConfigPresentation2:()=>Zt,serializeConfigPresentation3:()=>en,serializedFieldsToObject:()=>Wt,toRef:()=>ft,traverseSpecificResource:()=>Ht,types:()=>Tt});function an(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,``);return t.indexOf(`/`)===-1?t:t.split(`/`)[0]}function on(e){try{if(e===`full`)return{full:!0};if(e===`square`)return{square:!0};let t=e.startsWith(`pct:`),n=e.substr(t?4:0).split(`,`),r=n.map(e=>parseFloat(e));return{x:r[0],y:r[1],w:r[2],h:r[3],percent:t}}catch{throw Error(`Expected 'full', 'square' or 'x,y,w,h'. Found `+e)}}function sn(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]===`^`&&(t.upscaled=!0,e=e.slice(1)),e===`max`||e===`full`)return t.max=!0,t.serialiseAsFull=e===`full`,t;if(e[0]===`!`&&(t.confined=!0,e=e.slice(1)),e[0]===`p`)return t.percentScale=parseFloat(e.slice(4)),t;let n=e.split(`,`).map(e=>e.trim());return n.length&&(n[0]!==``&&(t.width=parseInt(n[0],10)),n[1]!==``&&(t.height=parseInt(n[1],10))),t}function cn(e){let t={angle:0};if(e[0]===`!`&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw Error(`Invalid rotation ${e}`);return t}function ln(e,t=``){let n=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!n)throw Error(`Invalid or unknown input ${e}`);let r=n[2],i=n[3],a=n[4];if(a[0]===`/`&&(a=a.substring(1)),t.length>0){if(t[0]===`/`&&(t=t.substring(1)),t!==a.substring(0,t.length))throw Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:r,server:i,path:a,prefix:t}}function un(e,t=``){let{path:n,scheme:r,server:i,prefix:a}=ln(e,t),o=n.split(`/`).reverse(),[s,c,l,u,...d]=o,f=d.reverse().filter(Boolean).join(`/`);if(o.length===1||s===``)return{type:`base`,scheme:r,server:i,prefix:a,identifier:f};if(s===`info.json`){let[,...e]=o;return{type:`info`,scheme:r,server:i,prefix:a,identifier:e.reverse().filter(Boolean).join(`/`)}}if(r===void 0||i===void 0||n===void 0||u===void 0||l===void 0||c===void 0||s===void 0)throw Error(`Invalid image service URL`);let[p=``,m=``]=s.split(`.`);return{type:`image`,scheme:r,server:i,prefix:a,identifier:f,originalPath:n,region:on(u),size:sn(l),rotation:cn(c),quality:p,format:m}}function dn(e){let t=y.indexOf(e)!==-1;if(t)return Oe;let n=b.indexOf(e)!==-1;return n?De:Ee}function fn(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],n={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let e of t){if(typeof e==`string`&&(e=dn(e)),!e)continue;if(e.formats)for(let t of e.formats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.qualities)for(let t of e.qualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.supports)for(let t of e.supports)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea),e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea)}if(e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);return n}function pn(e){let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`&&Te.indexOf(e)!==-1)return!0;return!1}function mn(e){if(e[`@id`])return e[`@id`];if(e.id)return e.id}function Q(e){if(!e||!e.profile||!mn(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`&&Ce.indexOf(e)!==-1)return!0;return!1}function hn(e,t){if(!Q(e))return[!1,`Not a valid image service`];t.extraFeatures=t.extraFeatures?t.extraFeatures:[];let n=fn(e);if(t.exactSize){let n=!1;if(e.sizes)for(let r of e.sizes)r.width&&r.width===t.exactSize.width&&(ke.indexOf(`sizeByW`)===-1?r.height&&r.height===t.exactSize.height&&(n=!0):n=!0),r.height&&r.height===t.exactSize.height&&(ke.indexOf(`sizeByH`)===-1?r.width&&r.width===t.exactSize.width&&(n=!0):n=!0);n||(t.maxWidth=Math.max(t.maxWidth||0,t.exactSize.width||0)||void 0,t.maxHeight=Math.max(t.maxHeight||0,t.exactSize.height||0)||void 0,t.maxArea=Math.max(t.maxArea||0,(t.exactSize.width&&t.exactSize.height?t.exactSize.width*t.exactSize.height:t.maxArea)||0)||void 0,!t.exactSize.height&&t.exactSize.width?t.extraFeatures.indexOf(`sizeByW`)===-1&&t.extraFeatures.push(`sizeByW`):!t.exactSize.width&&t.exactSize.height&&t.extraFeatures.indexOf(`sizeByH`)===-1&&t.extraFeatures.push(`sizeByH`))}if(t.maxArea&&n.maxArea&&t.maxArea>n.maxArea)return[!1,`Max area is ${n.maxArea}`];if(t.maxWidth&&n.maxWidth&&t.maxWidth>n.maxWidth)return[!1,`Max width is ${n.maxWidth}`];if(t.maxHeight&&n.maxHeight&&t.maxHeight>n.maxHeight)return[!1,`Max height is ${n.maxHeight}`];if(t.extraFeatures){let e=[];for(let r of t.extraFeatures)n.extraFeatures.indexOf(r)===-1&&e.push(r);if(e.length)return[!1,`Missing features: ${e.join(`, `)}`]}if(t.extraFormats){let e=[];for(let r of t.extraFormats)n.extraFormats.indexOf(r)===-1&&e.push(r);if(e.length)return[!1,`Missing formats: ${e.join(`, `)}`]}if(t.extraQualities){let e=[];for(let r of t.extraQualities)n.extraQualities.indexOf(r)===-1&&e.push(r);if(e.length)return[!1,`Missing qualities: ${e.join(`, `)}`]}return[!0]}function gn(e){if(!Q(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`){if(b.indexOf(e)!==-1)return!0}else{let t=[...e.supports||[],...e.extraFeatures||[]];if(t.indexOf(`regionByPx`)!==-1&&(t.indexOf(`sizeByW`)!==-1||t.indexOf(`sizeByWh`)!==-1))return!0}return!1}function _n(e,t){return hn(e,{extraFormats:[t]})}function vn(e,t){if(t.type!==`image`)return[!0];let n=[];if(t.rotation.mirror&&n.push(`mirroring`),t.region.percent&&n.push(`regionByPct`),t.region.square?n.push(`regionSquare`):t.region.full||n.push(`regionByPx`),t.rotation.angle){let e=t.rotation.angle%90;e?n.push(`rotationArbitrary`):n.push(`rotationBy90s`)}t.size.confined&&n.push(`sizeByConfinedWh`),!t.size.width&&t.size.height&&n.push(`sizeByH`),t.size.percentScale&&n.push(`sizeByPct`);let r=(e.sizes||[]).find(e=>e.width===t.size.width&&!t.size.height||e.height===t.size.height&&!t.size.width||e.height===t.size.height&&e.width===t.size.width);r?n.push(`sizeByWhListed`):(t.size.width&&!t.size.height&&n.push(`sizeByW`),t.size.width&&t.size.height&&n.push(`sizeByWh`)),t.size.upscaled&&n.push(`sizeUpscaling`);let[i,a]=hn(e,{extraFeatures:n,extraQualities:[t.quality],extraFormats:[t.format],exactSize:t.size});return i?[!0]:[!1,a]}function yn({x:e=0,y:t=0,w:n,h:r,full:i,square:a,percent:o}){if(i)return`full`;if(a)return`square`;if(n===void 0||r===void 0)throw Error(`RegionParameter: invalid region`);let s=`${e},${t},${n},${r}`;return o?`pct:${s}`:s}function bn({max:e,percentScale:t,upscaled:n,confined:r,width:i,height:a,serialiseAsFull:o,version:s}){let c=[];return n&&c.push(`^`),e?(c.push(o?`full`:`max`),c.join(``)):(r&&c.push(`!`),t&&c.push(`pct:${t}`),i&&c.push(`${i}`),c.push(`,`),a&&s===3&&c.push(`${a}`),c.join(``))}function xn(e){return`${e.mirror?`!`:``}${(e.angle||0)%360}`}function Sn(e,t){let n=e.prefix.startsWith(`/`)?e.prefix.substring(1):e.prefix,r=`${e.scheme}://${e.server}/${n?`${n}/`:``}${e.identifier}`;if(e.type===`base`)return r;if(e.type===`info`)return`${r}/info.json`;let{size:i}=e,{region:a,rotation:o,format:s,quality:c}=e;if(t){let e=t[`@context`]?Array.isArray(t[`@context`])?t[`@context`]:[t[`@context`]]:[],n=e.indexOf(`http://iiif.io/api/image/2/context.json`)!==-1,r=e.indexOf(`http://iiif.io/api/image/3/context.json`)!==-1;if((i.width===t.width&&!i.height||i.height===t.height&&!i.width||i.width===t.width&&i.height===t.height)&&(i={...i,max:!0}),n&&(i.max&&!i.serialiseAsFull&&(i={...i,serialiseAsFull:!0}),!i.max&&i.width&&i.height&&(i={...i,height:void 0}),i={...i,version:2}),r){if(i.max&&i.serialiseAsFull&&(i={...i,serialiseAsFull:!1}),i.width&&!i.height&&t.width&&t.height){let e=t.height/t.width;i={...i,height:Math.ceil(i.width*e)}}i={...i,version:3}}}return[r,yn(a),bn(i),xn(o),`${c}.${s}`].filter(Boolean).join(`/`)}function Cn(e,t){return Sn({...e,type:`info`},t)}function wn(e){return e.endsWith(`info.json`)?e:e.endsWith(`/`)?`${e}info.json`:`${e}/info.json`}function Tn(e){let t=un(wn(e.id));if(t.type!==`info`)throw Error(`Invalid service URL`);let n=fn(e);return{identifier:t.identifier,originalPath:``,server:t.server,prefix:t.prefix,scheme:t.scheme,type:`image`,quality:n.extraQualities.indexOf(`default`)===-1?n.extraQualities[0]:`default`,region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:`jpg`,rotation:{angle:0}}}function En(e,t,n){let r=n.length,i=[];for(let t=0;t<r;t++){let r=n[t];if(!r)continue;let a=r.width;i.push(e/a)}return i}function Dn(e,t,n){let r=n.length,i=[];for(let a=0;a<r;a++){let r=n[a];r&&i.push({width:Math.floor(e/r),height:Math.floor(t/r)})}return i}function $(e,t){if(t&&t.profile){let n=t.profile;if(n){let t=Array.isArray(n)?n:[n];if(t.includes(`level${e}`)||t.includes(`http://iiif.io/api/image/2/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`))return!0;if(e===2){for(let e of t)if(y.includes(e))return!0}if(e===1){for(let e of t)if(b.includes(e))return!0}if(e===0){for(let e of t)if(Te.includes(e))return!0}}}return!1}function On(e){return Q(e)?$(2,e)?2:$(1,e)?1:$(0,e)?0:null:null}function kn(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],n=t.length,r=[];for(let e=0;e<n;e++)Q(t[e])&&r.push(t[e]);return r}function An(e){if(e[`@type`])return e[`@type`];if(e.type)return e.type}function jn(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,``);return t.indexOf(`/`)===-1?t:t.split(`/`)[0]}var Mn={};t(Mn,{IIIF_1_IMAGE_LEVEL_0:()=>oe,IIIF_1_IMAGE_LEVEL_0_PROFILE:()=>v,IIIF_1_IMAGE_LEVEL_1:()=>se,IIIF_1_IMAGE_LEVEL_1_PROFILE:()=>ce,IIIF_1_IMAGE_LEVEL_2:()=>le,IIIF_1_IMAGE_LEVEL_2_PROFILE:()=>ue,IIIF_2_IMAGE_LEVEL_0:()=>de,IIIF_2_IMAGE_LEVEL_0_NO_JSON:()=>be,IIIF_2_IMAGE_LEVEL_0_PROFILE:()=>fe,IIIF_2_IMAGE_LEVEL_1:()=>pe,IIIF_2_IMAGE_LEVEL_1_NO_JSON:()=>xe,IIIF_2_IMAGE_LEVEL_1_PROFILE:()=>me,IIIF_2_IMAGE_LEVEL_2:()=>he,IIIF_2_IMAGE_LEVEL_2_NO_JSON:()=>Se,IIIF_2_IMAGE_LEVEL_2_PROFILE:()=>ge,IIIF_3_IMAGE_LEVEL_0:()=>_e,IIIF_3_IMAGE_LEVEL_1:()=>ve,IIIF_3_IMAGE_LEVEL_2:()=>ye,STANFORD_IIIF_1_IMAGE_COMPLIANCE_0:()=>_,STANFORD_IIIF_1_IMAGE_COMPLIANCE_1:()=>te,STANFORD_IIIF_1_IMAGE_COMPLIANCE_2:()=>ne,STANFORD_IIIF_1_IMAGE_CONFORMANCE_0:()=>re,STANFORD_IIIF_1_IMAGE_CONFORMANCE_1:()=>ie,STANFORD_IIIF_1_IMAGE_CONFORMANCE_2:()=>ae,STANFORD_IIIF_IMAGE_COMPLIANCE_0:()=>f,STANFORD_IIIF_IMAGE_COMPLIANCE_1:()=>p,STANFORD_IIIF_IMAGE_COMPLIANCE_2:()=>m,STANFORD_IIIF_IMAGE_CONFORMANCE_0:()=>ee,STANFORD_IIIF_IMAGE_CONFORMANCE_1:()=>h,STANFORD_IIIF_IMAGE_CONFORMANCE_2:()=>g,canonicalServiceUrl:()=>wn,combineProfiles:()=>fn,createImageServiceRequest:()=>Tn,extraFeatures:()=>ke,extractFixedSizeScales:()=>En,fixedSizesFromScales:()=>Dn,getId:()=>mn,getImageServiceLevel:()=>On,getImageServices:()=>kn,getType:()=>An,identifyImageServer:()=>jn,imageServiceProfiles:()=>Ce,imageServiceRequestInfo:()=>Cn,imageServiceRequestToString:()=>Sn,imageServiceSupportsFormat:()=>_n,imageServiceSupportsRequest:()=>vn,isImageService:()=>Q,isImageServiceLevel:()=>$,isLevel0:()=>pn,level0:()=>Ee,level0Support:()=>we,level1:()=>De,level1Support:()=>b,level2:()=>Oe,level2Support:()=>y,levelToProfile:()=>dn,onlyLevel0:()=>Te,parseImageServerFromId:()=>an,parseImageServiceRequest:()=>un,parseImageServiceUrl:()=>ln,parseRegionParameter:()=>on,parseRotationParameter:()=>cn,parseSizeParameter:()=>sn,regionParameterToString:()=>yn,rotationParameterToString:()=>xn,sizeParameterToString:()=>bn,supports:()=>hn,supportsCustomSizes:()=>gn});var Nn={Presentation2:dt,Presentation3:rn,Image3:Mn};return Nn}); | ||
| (function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.IIIFParser=t())})(this,function(){var e=Object.defineProperty,t=(t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})};function n(e){"@babel/helpers - typeof";return n=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},n(e)}function r(e,t){if(n(e)!=`object`||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||`default`);if(n(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function i(e){var t=r(e,`string`);return n(t)==`symbol`?t:t+``}function a(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let o=[`sc:Collection`,`sc:Manifest`,`sc:Canvas`,`sc:AnnotationList`,`oa:Annotation`,`sc:Range`,`sc:Layer`,`sc:Sequence`,`oa:Choice`,`Service`,`ContentResource`];function s(e){if(e==null)throw Error(`Null or undefined is not a valid entity.`);if(Array.isArray(e))throw Error(`Array is not a valid entity`);if(typeof e!=`object`)throw Error(`${typeof e} is not a valid entity`);if(typeof e[`@type`]==`string`){let t=o.indexOf(e[`@type`]);if(t!==-1)return o[t]}if(e.profile)return`Service`;if(e.format||e[`@type`])return`ContentResource`;throw Error(`Resource type is not known`)}var c=class e{constructor(e,t={}){a(this,`traversals`,void 0),a(this,`options`,void 0),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(t){return new e({collection:[t],manifest:[t],canvas:[t],annotationList:[t],sequence:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],layer:[t]})}traverseCollection(e){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(e))),this.traversals.collection)}traverseCollectionItems(e){if(this.options.mergeMemberProperties){let t=[...(e.manifests||[]).map(e=>typeof e==`string`?{"@id":e,"@type":`sc:Manifest`}:e),...(e.collections||[]).map(e=>typeof e==`string`?{"@id":e,"@type":`sc:Collection`}:e),...e.members||[]],n=[],r=t.filter(e=>n.includes(e[`@id`])?!1:(n.push(e[`@id`]),!0));delete e.collections,delete e.manifests,e.members=r}return e.manifests&&=e.manifests.map(e=>this.traverseManifest(typeof e==`string`?{"@id":e,"@type":`sc:Manifest`}:e)),e.collections&&=e.collections.map(e=>this.traverseCollection(typeof e==`string`?{"@id":e,"@type":`sc:Collection`}:e)),e.members&&=e.members.map(e=>typeof e==`string`?e:e[`@type`]===`sc:Collection`?this.traverseCollection(e):e[`@type`]===`sc:Manifest`?this.traverseManifest(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.map(e=>this.traverseSequence(e)),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.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.map(e=>this.traverseAnnotation(e)),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){let t=[...(e.ranges||[]).map(e=>typeof e==`string`?{"@id":e,"@type":`sc:Range`}:e),...(e.canvases||[]).map(e=>typeof e==`string`?{"@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){let t=typeof e==`string`?{"@id":e,"@type":`sc:AnnotationList`}:e;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(t)),this.traversals.annotationList)}traverseAnnotationListItems(e){return 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.map(e=>this.traverseAnnotationList(e)),e}traverseChoice(e){return this.traverseType(this.traverseChoiceItems(e),this.traversals.choice)}traverseChoiceItems(e){return e.default&&e.default!==`rdf:nil`&&(e.default=this.traverseContentResource(e.default)),e.item&&e.item!==`rdf:nil`&&(e.item=e.item.map(e=>this.traverseContentResource(e))),e}traverseService(e){return this.traverseType(this.traverseLinking(e),this.traversals.service)}traverseContentResource(e){return e[`@type`]===`oa:Choice`?this.traverseChoice(e):this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),this.traversals.contentResource)}traverseUnknown(e){if(!e[`@type`]||typeof e==`string`)return e;switch(s(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){let t=Array.isArray(e),n=Array.isArray(e)?e:[e],r=[];for(let e of n)typeof e==`string`?r.push(this.traverseContentResource({"@id":e,"@type":`dctypes:Image`})):r.push(this.traverseContentResource(e));return!t&&!this.options.convertPropsToArray?r[0]:r}traverseDescriptive(e){return e.thumbnail&&=this.traverseImageResource(e.thumbnail),e.logo&&=this.traverseImageResource(e.logo),e}traverseOneOrMoreServices(e){let t=Array.isArray(e),n=Array.isArray(e)?e:[e],r=[];for(let e of n)r.push(this.traverseService(e));return!t&&!this.options.convertPropsToArray?r[0]:r}traverseLinking(e){return e.related&&=this.traverseOneOrManyType(e.related,this.traversals.contentResource),e.rendering&&=this.traverseOneOrManyType(e.rendering,this.traversals.contentResource),e.service&&=this.traverseOneOrMoreServices(e.service),e.seeAlso&&=this.traverseOneOrManyType(e.seeAlso,this.traversals.contentResource),e.within&&(typeof e.within==`string`||(e.within=this.traverseOneOrManyType(e.within,this.traversals.contentResource))),e.startCanvas&&(typeof e.startCanvas==`string`?e.startCanvas=this.traverseType({"@id":e.startCanvas,"@type":`sc:Canvas`},this.traversals.canvas):e.startCanvas&&this.traverseType(e.startCanvas,this.traversals.canvas)),e.contentLayer&&(typeof e.contentLayer==`string`?e.contentLayer=this.traverseLayer({"@id":e.contentLayer,"@type":`sc:Layer`}):e.contentLayer=this.traverseLayer(e.contentLayer)),e}traverseOneOrManyType(e,t){if(!Array.isArray(e))if(this.options.convertPropsToArray)e=[e];else return this.traverseType(e,t);return e.map(e=>this.traverseType(e,t))}traverseType(e,t){return t.reduce((e,t)=>{let n=t(e);return n===void 0&&!this.options.allowUndefinedReturn?e:n},e)}};let l=[`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`];function u(e){return Array.isArray(e)?e:e?[e]:[]}function d(e){for(let t in e)(e[t]===void 0||e[t]===null)&&delete e[t];return e}let f=`http://library.stanford.edu/iiif/image-api/compliance.html#level0`,p=`http://library.stanford.edu/iiif/image-api/compliance.html#level1`,m=`http://library.stanford.edu/iiif/image-api/compliance.html#level2`,ee=`http://library.stanford.edu/iiif/image-api/conformance.html#level0`,h=`http://library.stanford.edu/iiif/image-api/conformance.html#level1`,g=`http://library.stanford.edu/iiif/image-api/conformance.html#level2`,_=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0`,te=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1`,ne=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2`,re=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0`,ie=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1`,ae=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2`,oe=`http://iiif.io/api/image/1/level0.json`,v=`http://iiif.io/api/image/1/profiles/level0.json`,se=`http://iiif.io/api/image/1/level1.json`,ce=`http://iiif.io/api/image/1/profiles/level1.json`,le=`http://iiif.io/api/image/1/level2.json`,ue=`http://iiif.io/api/image/1/profiles/level2.json`,de=`http://iiif.io/api/image/2/level0.json`,fe=`http://iiif.io/api/image/2/profiles/level0.json`,pe=`http://iiif.io/api/image/2/level1.json`,me=`http://iiif.io/api/image/2/profiles/level1.json`,he=`http://iiif.io/api/image/2/level2.json`,ge=`http://iiif.io/api/image/2/profiles/level2.json`,_e=`level0`,ve=`level1`,ye=`level2`,be=`http://iiif.io/api/image/2/level0`,xe=`http://iiif.io/api/image/2/level1`,Se=`http://iiif.io/api/image/2/level2`,y=[Se,m,g,ne,ae,le,ue,he,ge,ye],b=[...y,xe,p,h,te,ie,se,ce,pe,me,ve],Ce=[be,xe,Se,f,p,m,ee,h,g,_,te,ne,re,ie,ae,oe,v,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye],we=Ce,Te=[be,f,ee,_,re,oe,v,de,fe,_e],Ee={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`sizeByWhListed`]},De={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPx`,`regionSquare`,`sizeByWhListed`,`sizeByH`,`sizeByW`,`sizeByWh`]},Oe={extraFormats:[`jpg`,`png`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationBy90s`,`sizeByWhListed`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`]},ke=[`baseUriRedirect`,`canonicalLinkHeader`,`cors`,`jsonldMediaType`,`mirroring`,`profileLinkHeader`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationArbitrary`,`rotationBy90s`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`,`sizeUpscaling`,`sizeByWhListed`,`sizeByDistortedWh`,`sizeByForcedWh`],Ae={attributionLabel:`Attribution`,lang:`none`,providerId:`http://example.org/provider`,providerName:``};function je(e){if(typeof e==`string`)return[e];if(!e)return[];let t=Array.isArray(e)?e:[e],n=[];for(let e of t){if(typeof e==`string`){n.push(e);continue}n.push({"@language":e[`@language`]||e.language,"@value":e[`@value`]||e.value})}return n}function x(e,t=`none`){if(!e)return{none:[``]};let n=je(e),r={};for(let e of n){if(typeof e==`string`){r[t]=r[t]?r[t]:[],r[t].push(e||``);continue}if(!e[`@language`]){r[t]=r[t]?r[t]:[],r[t].push(e[`@value`]||``);continue}let n=e[`@language`];r[n]=r[n]?r[n]:[],r[n].push(e[`@value`]||``)}return Object.keys(r).length===0?{none:[``]}:r}function Me(e){if(Array.isArray(e))return Me(e.find(e=>typeof e==`string`));if(y.indexOf(e)!==-1)return`level2`;if(l.indexOf(e)!==-1)return`level1`;if(we.indexOf(e)!==-1)return`level0`;if(typeof e==`string`)return e}function Ne(e){let t=Array.isArray(e)?e:[e];for(let e of t)switch(e){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 Pe(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`}}function Fe(e){for(let t of[`sc`,`oa`,`dcterms`,`dctypes`,`iiif`])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}let Ie=[`Collection`,`Manifest`,`Annotation`,`AnnotationPage`,`Range`,`Service`];function S(e){let t=e[`@id`]||e.id,n=e[`@type`]||e.type,r=e.profile||void 0,i=e[`@context`]||void 0;if(r){let e=Pe(r);if(e)return e}if(i){let e=Ne(i);if(e)return e}if(n){if(Array.isArray(n)){if(n.indexOf(`oa:CssStylesheet`)!==-1)return`CssStylesheet`;if(n.indexOf(`cnt:ContentAsText`)!==-1)return`TextualBody`;n=n[0]}for(let e of[`sc`,`oa`,`dcterms`,`dctypes`,`iiif`])if(n.startsWith(`${e}:`)){n=n.slice(e.length+1);break}switch(n){case`Layer`:return`AnnotationCollection`;case`AnnotationList`:return`AnnotationPage`;case`cnt:ContentAsText`:return`TextualBody`}}if(n&&Ie.indexOf(n)!==-1)return n;if(e.format){if(e.format.startsWith(`image/`))return`Image`;if(e.format.startsWith(`text/`)||e.format===`application/pdf`)return`Text`;if(e.format.startsWith(`application/`))return`Dataset`}return t&&(t.endsWith(`.jpg`)||t.endsWith(`.png`)||t.endsWith(`.jpeg`))?`Image`:n||`unknown`}let Le=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function Re(e){let t=e.match(Le);return t?t[0]:e}function ze(e,t=`Rights/License`,n=`none`){let r=null,i=[],a=Array.isArray(e)?e:[e];for(let e of a){let a=e?Re(e):void 0;if(a&&(a.indexOf(`creativecommons.org`)!==-1||a.indexOf(`rightsstatements.org`)!==-1)){r=a.startsWith(`https://`)?`http://${a.slice(8)}`:a;continue}a&&i.push({label:{[n]:[t]},value:{[n]:[a]}})}return[r,i]}let Be=[`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 Ve(e){if(e){let t=Array.isArray(e)?e:[e],n=[];for(let e of t){if(e===`http://iiif.io/api/presentation/2/context.json`&&n.push(`http://iiif.io/api/presentation/3/context.json`),Be.indexOf(e)!==-1)continue;n.push(e)}if(t.length)return n.length===1?n[0]:n}}function He(e){return e?e.map(e=>({label:x(e.label),value:x(e.value)})):[]}let Ue=0;function We(e,t){let n=encodeURI(e.id||e[`@id`]||``).trim();return n&&t?`${n}/${t}`:n||(Ue++,`http://example.org/${e[`@type`]}${t?`/${t}`:``}/${Ue}`)}function C(e){let t=[...e.behavior||[]];e.viewingHint&&t.push(e.viewingHint);let n;return Array.isArray(e.motivation)?n=e.motivation.map(Fe):e.motivation&&(n=Fe(e.motivation)),{"@context":e[`@context`]?Ve(e[`@context`]):void 0,id:(e[`@id`]||We(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:n,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function w(e){let[t,n]=ze(e.license),r=[...e.metadata?He(e.metadata):[],...n];return{rights:t,metadata:r.length?r:void 0,label:e.label?x(e.label):void 0,requiredStatement:e.attribution?{label:x(Ae.attributionLabel),value:x(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?x(e.description):void 0,thumbnail:Ge(e.thumbnail)}}function Ge(e){if(e){let t=Array.isArray(e)?e:[e];return t.map(e=>typeof e==`string`?{id:e,type:`Image`}:(e.type===`unknown`&&(e.type=`Image`),e))}return e}function Ke(e){if(!e.within)return;let t=Array.isArray(e.within)?e.within:[e.within],n=[];for(let r of t)if(typeof r==`string`){if(r)switch(e[`@type`]){case`sc:Manifest`:n.push({id:r,type:`Collection`});break}}else r[`@id`]&&n.push({id:r[`@id`],type:S(r)});return n.length?n:void 0}function T(e){let t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],n=e.contentLayer;return{provider:e.logo||t.length?[{id:Ae.providerId,type:`Agent`,homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:x(Ae.providerName)}]:void 0,partOf:Ke(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?u(e.service):void 0,supplementary:n?[n]:void 0}}function qe(e){return{chars:e.chars,format:e.format?e.format:void 0,language:e.language}}function E(e,t){return e?typeof e==`string`?{id:e,type:t}:typeof e?.[`@id`]==`string`?{id:e[`@id`],type:t}:typeof e.id==`string`?{id:e.id,type:t}:null:null}function Je(e){let t={};if(e.first){let n=E(e.first,`Collection`);n&&(t.first=n)}if((e.total||e.total===0)&&(t.total=e.total),e.prev){let n=E(e.prev,`Collection`);n&&(t.prev=n)}if(e.next){let n=E(e.next,`Collection`);n&&(t.next=n)}return t}function Ye(e){let t=[];for(let n of e){let e={...n};e.items&&e.items.length===0&&delete e.items,t.push(e)}return t}function Xe(e){return d({...C(e),...w(e),...T(e),...Je(e),items:Ye(e.members)})}function Ze(e){let t=[],n=[],r,i;for(let a of e.sequences||[])a.canvases.length&&t.push(...a.canvases),a.behavior&&n.push(...a.behavior),a.viewingDirection&&(i=a.viewingDirection),a.startCanvas&&(r=a.startCanvas);let a=C(e);return n.length&&(a.behavior?a.behavior.push(...n):a.behavior=n),d({...a,...w(e),...T(e),viewingDirection:i,start:r,items:t,structures:Qe(e.structures)})}function Qe(e){if(!e)return e;let t=new Map;for(let n of e)t.set(n.id,n);let n=[];for(let r of e)if(r.items){let e=r.items.map(e=>typeof e==`string`?(n.push(e),t.get(e)||e):e&&e.id?(n.push(e.id),t.get(e.id)||e):e);r.items=e}return e.filter(e=>n.indexOf(e.id)===-1)}function $e(e){return d({...C(e),...w(e),...T(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:We(e,`annotation-page`),type:`AnnotationPage`,items:e.images}]:void 0})}function et(e){return d({...C(e),...w(e),...T(e),items:e.resources&&e.resources.length?e.resources:void 0})}function tt(e){return!e.canvases||e.canvases.length===0?{canvases:[],behavior:[]}:{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[],viewingDirection:e.viewingDirection,startCanvas:e.startCanvas}}function nt(e){function t(e){if(Array.isArray(e)){if(e.length>1)return{type:`List`,items:e.map(t)};e=e[0]}if(typeof e==`string`)return encodeURI(e).trim();if(`@type`in e){let t;if(typeof e.full==`string`)t=e.full;else if(e.full[`@type`]===`dctypes:Image`)t={id:e.full[`@id`],type:`Image`};else if(e.full[`@type`]===`sc:Canvas`)t={id:e.full[`@id`],type:`Canvas`};else throw Error(`Unsupported source type on annotation: ${e.full[`@type`]}`);return{type:`SpecificResource`,source:t,selector:D(e.selector)}}else return encodeURI(e[`@id`]).trim()}return d({...C(e),...w(e),...T(e),target:t(e.on),body:Array.isArray(e.resource)?e.resource.map(rt):rt(e.resource)})}function rt(e){return e.type===`Choice`?e:it(e)}function it(e){let t=e;return d({...C(t),...w(t),...T(t),...qe(t)})}function at(e){let t=[];return e.default&&e.default!==`rdf:nil`&&t.push(e.default),e.item&&e.item!==`rdf:nil`&&t.push(...e.item),d({...C(e),...w(e),items:t})}function ot(e){return d({...C(e),...w(e),...T(e),items:e.members})}function st(e){let{"@id":t,"@type":n,"@context":r,profile:i,...a}=e,o={};return t&&(o[`@id`]=t),o[`@type`]=S(e),o[`@type`]===`unknown`&&(r&&r.length&&(o[`@context`]=r),o[`@type`]=`Service`),i&&(o.profile=Me(i)),d({...o,...a})}function ct(e){return d({...C(e),...w(e),...T(e)})}let lt=new c({collection:[Xe],manifest:[Ze],canvas:[$e],annotationList:[et],sequence:[tt],annotation:[nt],contentResource:[it],choice:[at],range:[ot],service:[st],layer:[ct]});function ut(e){return e&&e[`@context`]&&(e[`@context`]===`http://iiif.io/api/presentation/2/context.json`||e[`@context`].indexOf(`http://iiif.io/api/presentation/2/context.json`)!==-1||e[`@context`]===`http://www.shared-canvas.org/ns/context.json`)||e[`@context`]===`http://iiif.io/api/image/2/context.json`||e[`@id`]&&e[`@type`]===`sc:Collection`||e[`@id`]&&e[`@type`]===`sc:Manifest`?(e[`@context`]||=`http://iiif.io/api/presentation/2/context.json`,lt.traverseUnknown(e)):e}function D(e){let t=(Array.isArray(e[`@type`])&&e[`@type`].includes(`oa:SvgSelector`)||e[`@type`]==`oa:SvgSelector`)&&(`chars`in e||`value`in e);if(t)return{type:`SvgSelector`,value:`chars`in e?e.chars:e.value};if(e[`@type`]===`oa:FragmentSelector`)return{type:`FragmentSelector`,value:e.value};if(e[`@type`]===`oa:Choice`)return[D(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(D)];if(e[`@type`]==`iiif:ImageApiSelector`)return{type:`ImageApiSelector`,region:`region`in e?e.region:void 0,rotation:`rotation`in e?e.rotation:void 0};throw Error(`Unsupported selector type: ${e[`@type`]}`)}var dt={};t(dt,{Traverse:()=>c,convertLanguageMapping:()=>x,convertPresentation2:()=>ut,getProfile:()=>Me,getTypeFromContext:()=>Ne,identifyResource:()=>s,presentation2to3:()=>lt,types:()=>o});function O(e){return typeof e==`string`?!1:e&&!e.type&&`source`in e?(e.type=`SpecificResource`,!0):!!e&&e.type===`SpecificResource`}function ft(e,t){let n=t||`unknown`;if(!e)return;if(typeof e==`string`)return{id:e,type:n};if(O(e))return ft(e.source,t);let r=n&&n!==`unknown`?n:e.type||e[`@type`],i=e.id||e[`@id`];if(r&&r.indexOf(`:`)!==-1&&(r=r.split(`:`).pop()),i&&r)return{id:i,type:r}}let k={},A=`iiif-parser:hasPart`,j=`iiif-parser:partOf`,M=`iiif-parser:isExternal`,N=`__$UNSET$__`,pt=`__$UNWRAP$__`,P=[];Object.freeze(P),Object.freeze(k);function mt(e){if(e===k||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function ht(e,t){if(t&&t[`@explicit`]){let n={},r=Object.keys(t);for(let i of r){if(i===j||i===`@explicit`)continue;mt(t[i])?n[i]=e[i]:n[i]=t[i]}return n}return e}function gt(e,t,n){let r=ft(t);if(!r)return[void 0,void 0];let i=e.requests[r.id],a=r.type||e.mapping[r.id];if(!a||i&&i.resourceUri&&(!e.entities[a]||!e.entities[a][i.resourceUri]))return[void 0,void 0];let o=e.entities[a][i?i.resourceUri:r.id];if(r.type&&!o)return gt(e,{id:r.id},n);if(o&&o[A]){let e=o[A].find(e=>n?e[j]===n.id:e[j]===o.id),t=ht(o,e);return[t,o]}return[o,o]}let _t={id:`https://iiif-parser/annotation`,type:`Annotation`,behavior:P,label:null,thumbnail:P,summary:null,requiredStatement:null,metadata:P,seeAlso:P,homepage:P,rendering:P,service:P,accessibility:P,audience:P,body:P,bodyValue:null,canonical:null,created:null,creator:P,generated:null,generator:P,modified:null,motivation:P,rights:null,stylesheet:null,target:P,timeMode:void 0,via:P,partOf:P},vt={id:`https://iiif-parser/annotation-page`,type:`AnnotationPage`,behavior:P,label:null,thumbnail:P,summary:null,requiredStatement:null,metadata:P,rights:null,provider:P,items:P,seeAlso:P,homepage:P,rendering:P,service:P},yt={id:`https://iiif-parser/empty-canvas`,type:`Canvas`,label:null,behavior:P,thumbnail:P,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:P,rights:null,navDate:null,provider:P,items:P,annotations:P,seeAlso:P,homepage:P,partOf:P,rendering:P,service:P,duration:0,height:0,width:0},bt={id:`https://iiif-parser/empty-collection`,type:`Collection`,label:null,viewingDirection:`left-to-right`,behavior:P,thumbnail:P,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:P,rights:null,navDate:null,provider:P,items:P,annotations:P,seeAlso:P,homepage:P,partOf:P,rendering:P,service:P,services:P},xt={id:`https://iiif-parser/empty-manifest`,type:`Manifest`,annotations:P,behavior:P,homepage:P,items:P,label:null,metadata:P,navDate:null,provider:P,partOf:P,accompanyingCanvas:null,placeholderCanvas:null,rendering:P,requiredStatement:null,rights:null,seeAlso:P,service:P,services:P,start:null,structures:P,summary:null,thumbnail:P,viewingDirection:`left-to-right`},St={id:`https://iiif-parser/empty-canvas`,type:`Range`,label:null,behavior:P,thumbnail:P,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:P,rights:null,navDate:null,provider:P,items:P,annotations:P,seeAlso:P,homepage:P,partOf:P,rendering:P,service:P,start:null,supplementary:null,viewingDirection:`left-to-right`},Ct={id:`https://iiif-parser/empty-agent`,type:`Agent`,label:{},logo:P,seeAlso:P,homepage:P},wt={id:`https://iiif-parser/empty-service`,type:`UnknownService`};function F(e,t={}){if(Array.isArray(e))return F(e[0]);if(typeof e==`string`){let[n,r]=e.split(`#`);return r?{type:`SpecificResource`,source:{id:n,type:t.typeHint||`Unknown`},selector:{type:`FragmentSelector`,value:r}}:{type:`SpecificResource`,source:{id:n,type:t.typeMap&&t.typeMap[n]||t.typeHint||`Unknown`}}}if(e.type===`Choice`||e.type===`List`||e.type===`Composite`||e.type===`Independents`)return F(e.items[0]);if(!e.type&&`source`in e&&(e.type=`SpecificResource`),e.type===`SpecificResource`){e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:`Manifest`}]);let n=typeof e.source==`string`?e.source:e.source.id;if(n?.includes(`#`)){let r=F(n,t);r&&(e.selector=r.selector,e.source=r.source)}return e.selector?{...e,type:`SpecificResource`,source:e.source,selector:e.selector}:{...e,type:`SpecificResource`,source:e.source}}if(e.id){e.type===`Canvas`&&e.partOf&&typeof e.partOf==`string`&&(e.partOf=[{id:e.partOf,type:`Manifest`}]);let[t,n]=e.id.split(`#`);return n?{type:`SpecificResource`,source:{...e,id:t},selector:{type:`FragmentSelector`,value:n}}:{type:`SpecificResource`,source:{...e,id:t}}}return{type:`SpecificResource`,source:e}}function I(...e){return t=>e.reduce((e,t)=>t(e),t)}let Tt=[`Collection`,`Manifest`,`Canvas`,`AnnotationPage`,`AnnotationCollection`,`Annotation`,`ContentResource`,`Range`,`Service`,`Selector`,`Agent`];function Et(e,t){if(e==null)throw Error(`Null or undefined is not a valid entity.`);if(Array.isArray(e))throw Error(`Array is not a valid entity`);if(typeof e!=`object`){if(t)return t;throw Error(`${typeof e} is not a valid entity`)}if(typeof e.type==`string`){let t=Tt.indexOf(e.type);if(t!==-1)return Tt[t]}if(e.profile)return`Service`;throw Error(`Resource type is not known`)}var Dt=class e{constructor(e,t={}){a(this,`traversals`,void 0),a(this,`options`,void 0),a(this,`_traverseManifest`,I(this.traverseManifestItems.bind(this),this.traverseNavPlace.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseManifestStructures.bind(this),this.traverseInlineAnnotationPages.bind(this))),a(this,`_traverseCanvas`,I(this.traverseCanvasItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseInlineAnnotationPages.bind(this))),a(this,`_traverseAnnotationPage`,I(this.traverseAnnotationPageItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this))),a(this,`_traverseRange`,I(this.traverseRangeRanges.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this))),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],specificResource:[],geoJson:[],...e},this.options={allowUndefinedReturn:!1,...t}}static all(t){return new e({collection:[t],manifest:[t],canvas:[t],annotationCollection:[t],annotationPage:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],geoJson:[t],specificResource:[t],agent:[t]})}traverseDescriptive(e){return e.thumbnail&&=u(e.thumbnail).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.provider&&=e.provider.map(t=>this.traverseAgent(t,e)),e}traverseLinking(e){return e.seeAlso&&=u(e.seeAlso).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.service&&=u(e.service).map(e=>this.traverseService(e)),e.services&&=u(e.services).map(t=>this.traverseService(t,e)),e.logo&&=u(e.logo).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.homepage&&=u(e.homepage).map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.partOf&&=e.partOf.map(t=>typeof t==`string`||!t.type?this.traverseType(t,{parent:e},this.traversals.contentResource):t.type===`Canvas`?this.traverseType(t,{parent:e},this.traversals.canvas):t.type===`AnnotationCollection`?this.traverseType(t,{parent:e},this.traversals.annotationCollection):t.type===`Collection`?this.traverseType(t,{parent:e},this.traversals.collection):this.traverseType(t,{parent:e},this.traversals.contentResource)),e.start&&(O(e.start)?e.start=this.traverseSpecificResource(e.start,`Canvas`,e):e.start=this.traverseType(e.start,{parent:e},this.traversals.canvas)),e.rendering&&=e.rendering.map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e.supplementary&&=e.supplementary.map(t=>this.traverseType(t,{parent:e},this.traversals.contentResource)),e}traverseCollectionItems(e){return e.items&&e.items.map(e=>e.type===`Collection`?this.traverseCollection(e):this.traverseManifest(e)),e}traverseCollection(e,t){return this.traverseType(this.traverseDescriptive(this.traverseNavPlace(this.traverseInlineAnnotationPages(this.traverseLinking(this.traverseLinkedCanvases(this.traverseCollectionItems(e)))))),{parent:t},this.traversals.collection)}traverseGeoJson(e,t){return this.traverseType(e,{parent:t},this.traversals.geoJson)}traverseNavPlace(e){return e.navPlace&&=this.traverseGeoJson(e.navPlace,e),e}traverseManifestItems(e){return e.items&&=e.items.map(e=>this.traverseCanvas(e)),e}traverseManifestStructures(e){return e.structures&&=e.structures.map(e=>this.traverseRange(e)),e}traverseManifest(e,t){return this.traverseType(this._traverseManifest(e),{parent:t},this.traversals.manifest)}traverseCanvasItems(e){return e.items=(e.items||[]).map(t=>this.traverseAnnotationPage(t,e)),e}traverseInlineAnnotationPages(e){return typeof e==`string`||!e||(e.annotations&&=e.annotations.map(t=>this.traverseAnnotationPage(t,e))),e}traverseCanvas(e,t){return this.traverseType(this._traverseCanvas(e),{parent:t},this.traversals.canvas)}traverseAnnotationPageItems(e){return e.items&&=e.items.map(t=>this.traverseAnnotation(t,e)),e}traverseAnnotationPage(e,t){return this.traverseType(this._traverseAnnotationPage(e),{parent:t},this.traversals.annotationPage)}traverseAnnotationBody(e){return Array.isArray(e.body)?e.body=e.body.map(t=>this.traverseContentResource(t,e)):e.body&&=this.traverseContentResource(e.body,e),e}traverseLinkedCanvases(e){return e.placeholderCanvas&&=this.traverseCanvas(e.placeholderCanvas),e.accompanyingCanvas&&=this.traverseCanvas(e.accompanyingCanvas),e}traverseAnnotation(e,t){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(this.traverseDescriptive(e))),{parent:t},this.traversals.annotation)}traverseContentResourceLinking(e){return typeof e==`string`||!e||e&&e.service&&(e.service=u(e.service||[]).map(t=>this.traverseService(t,e))),e}traverseContentResource(e,t){return e.type===`Choice`&&(e.items=e.items.map(t=>this.traverseContentResource(t,e))),O(e)?this.traverseSpecificResource(e,`ContentResource`):this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(e)),{parent:t},this.traversals.contentResource)}traverseSpecificResource(e,t,n){let r=e.source;return typeof e.source==`string`&&(r={id:e.source,type:t||`unknown`}),this.traverseType({...e,source:t===`Canvas`||r.type===`Canvas`?this.traverseType(r,{parent:n},this.traversals.canvas):t===`ContentResource`?this.traverseContentResource(r,{parent:n}):this.traverseUnknown(r,{parent:n,typeHint:t})},{parent:n},this.traversals.specificResource)}traverseRangeRanges(e){return e.items&&=e.items.map(t=>typeof t==`string`?this.traverseCanvas({id:t,type:`Canvas`},e):O(t)?this.traverseSpecificResource(t,`Canvas`,e):t.type===`Manifest`?this.traverseManifest(t,e):this.traverseRange(t,e)),e}traverseRange(e,t){return this.traverseType(this._traverseRange(e),{parent:t},this.traversals.range)}traverseAgent(e,t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(e)),{parent:t},this.traversals.agent)}traverseType(e,t,n){return n.reduce((e,n)=>{let r=n(e,t);return r===void 0&&!this.options.allowUndefinedReturn?e:r},e)}traverseService(e,t){let n=Object.assign({},e);return n&&n.service&&(n.service=u(n.service).map(e=>this.traverseService(e))),this.traverseType(n,{parent:t},this.traversals.service)}traverseUnknown(e,{parent:t,typeHint:n}={}){let r=Et(e,n);switch(r){case`Collection`:return this.traverseCollection(e,t);case`Manifest`:return this.traverseManifest(e,t);case`Canvas`:return this.traverseCanvas(e,t);case`AnnotationPage`:return this.traverseAnnotationPage(e,t);case`Annotation`:return this.traverseAnnotation(e,t);case`ContentResource`:return this.traverseContentResource(e,t);case`Range`:return this.traverseRange(e,t);case`Service`:return this.traverseService(e,t);case`Agent`:return this.traverseAgent(e,t);default:throw Error(`Unknown or unsupported resource type of ${r}`)}}};let Ot={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function kt(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function At(e,t){if(typeof e==`string`)return{id:e,type:t};if(!e.id)throw Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function jt(e,t){return(n,r)=>{let i=e[n]?e[n]:{};return(e,a)=>{let o=At(e,r||n);return o&&o.id&&n?(i[o.id]=i[o.id]?R(i[o.id],o,{parent:a.parent,isTopLevel:t.id===o.id}):R({id:o.id,type:o.type},o,{parent:a.parent,isTopLevel:t.id===o.id}),{id:o.id,type:n===`ContentResource`?n:o.type}):o}}}function L(e,t,n){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw Error(`Cannot merge array with non-array`);let n=[...e];for(let r of t){if(r[`@id`]&&!r.id&&(r.id=r[`@id`]),r[`@type`]&&!r.type&&(r.type=r[`@type`]),r==null)continue;if(Array.isArray(r))n.push(r);else if(typeof r==`object`&&r.id&&r.type){let e=n.findIndex(e=>e.id===r.id&&e.type===r.type);e>=0&&(n[e]=L(n[e],r))}else e.indexOf(r)===-1&&n.push(r)}return n}else if(typeof e==`object`){if(Array.isArray(t)||typeof t!=`object`)throw Error(`Cannot merge object with non-object`);let r={...e},i=[],a=[],o=Object.keys(e).filter(e=>e!==A&&e!==`id`&&e!==`type`),s={},c={};for(let[e,n]of Object.entries(t)){if(e===A||e===`id`||e===`type`)continue;let t=r[e];t===n?a.push(e):t===P||!t?(i.push(e),r[e]=n):(t&&n&&(s[e]=t,c[e]=n),r[e]=L(t,n),r[e]===s[e]&&(a.push(e),delete s[e]))}if(n&&(n.parent&&n.parent.id||n.isTopLevel)){let t=[],l={};if(n.parent?l[j]=n.parent.id:n.isTopLevel&&(l[j]=e.id),r[A]&&r[A].length){let e=!(r[A]||[]).find(e=>e[`@explicit`]),n=i.length>0||a.length!==o.length;if(e&&n)for(let e of r[A]){let n={...e},r=Object.keys(s);if(n){n[`@explicit`]=!0;for(let e of o)e!==A&&(n[e]=k);for(let e of r)n[e]=s[e]}t.push(n)}else t.push(...r[A]);if(n){let e=Object.keys(c);l[`@explicit`]=!0;for(let e of i)l[e]=k;for(let e of a)l[e]=k;for(let t of e)l[t]=c[t]}}l.id=r.id,l.type=r.type,t.push(l),r[A]=t}return r}else if(e)return e;return t}function R(e,t,n){if(typeof e==`string`)return e;if(t.id!==e.id||t.type!==e.type){if(t.type===`ImageService3`)return t;if(e.type===`ImageService3`)return e;throw Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return L({...e},t,n)}function Mt(e){return(t,n)=>r=>{let{id:i,type:a}=At(r,n||t);if(i===void 0)throw Error(`Found invalid entity without an ID.`);return t===`ContentResource`||t===`Service`?e[i]=t:e[i]=a,r}}function Nt(e){let t=Object.assign({},e);if(t[`@id`]&&(t.id=t[`@id`]),t[`@type`]&&(t.type=t[`@type`]),t.service){let e=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)e.push({id:n[`@id`]||n.id,type:n[`@type`]||n.type});t.service=e}return Object.assign({},wt,t)}function Pt(e){return t=>{e.Service=e.Service?e.Service:{};let n=t.id||t[`@id`],r=Nt(t);return r&&r.id&&(e.Service[r.id]?e.Service[n]=R(e.Service[n],r):e.Service[n]=r),t}}function Ft(e){let t=JSON.stringify(e),n=5381,r=t.length;for(;r;)n=n*33^t.charCodeAt(--r);let i=n>>>0,a=i.toString(16);return a.length%2?`0`+a:a}function It(e){return t=>typeof t==`string`?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${Ft(t)}`,type:e,...t}}function z(e){return t=>({...e,...t})}function B(e){return Array.isArray(e)?e:[e]}function Lt(e){return e.body&&=B(e.body),e.seeAlso&&=B(e.seeAlso),e.audience&&=B(e.audience),e.accessibility&&=B(e.accessibility),e.motivation&&=B(e.motivation),e}function Rt(e,{typeHint:t,partOfTypeHint:n}={}){if(typeof e==`string`&&(e={id:e,type:t||`unknown`}),O(e))return typeof e.source==`string`&&(e.source={id:e.source,type:t||`unknown`}),e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:n||`Manifest`}]),e;let r;if((e.id||``).indexOf(`#`)!==-1){let[t,n]=(e.id||``).split(`#`);e.id=t,n&&(r={type:`FragmentSelector`,value:n})}return{type:`SpecificResource`,source:e,selector:r}}function zt(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(e=>typeof e==`string`||e.type===`Canvas`?Rt(e):e)),t}function Bt(e){let t=Object.assign({},e);return t.start?(t.start=Rt(t.start,{typeHint:`Canvas`}),t):e}function Vt(e){let t=Object.assign({},e);return t.target?(t.target=F(t.target,{typeHint:`Canvas`}),t):e}function Ht(e){return e}function V(e){return e.items===void 0&&(e[M]=!0),e}function Ut(e){let t=ut(e),n=kt(),r={},i=jt(n,t),a=Mt(r),o=new Dt({collection:[V,z(bt),a(`Collection`),i(`Collection`)],manifest:[V,z(xt),Bt,a(`Manifest`),i(`Manifest`)],canvas:[z(yt),a(`Canvas`),i(`Canvas`)],annotationPage:[V,It(`AnnotationPage`),z(vt),a(`AnnotationPage`),i(`AnnotationPage`)],annotation:[It(`Annotation`),Lt,Vt,a(`Annotation`),i(`Annotation`)],contentResource:[It(`ContentResource`),a(`ContentResource`),i(`ContentResource`)],range:[z(St),zt,a(`Range`,`Canvas`),i(`Range`,`Canvas`)],agent:[z(Ct),a(`Agent`),i(`Agent`)],specificResource:[Ht],service:[Pt(n)]}),s=o.traverseUnknown(t);return{entities:n,resource:s,mapping:r}}function Wt(e){let t={};for(let[n,r]of e){if(n===pt&&r!==N)return r;r!==N&&r!=null&&(t[n]=r)}return t}function Gt(e,t,n){if(!t.type||!t.id)throw Error(`Unknown entity`);if(!n[t.type])throw Error(`Serializer not found for ${t.type}`);function r(i,a,o=0){let s=n[i.type];if(!s)return N;if(o>20)throw Error(`Circular reference: `+i.id+` `+i.type);let[c,l]=gt(e,i.type?i:i.id,a)||(i.id&&i.type?i:null);if(!c)return N;let u=s(c,e,{parent:a,isTopLevel:t.id===i.id,fullResource:l}),d=u.next();for(;!d.done;){let e=d.value,t=N;if(e)if(Array.isArray(e)){let n=[];for(let t of e)n.push(r(t,i,o+1));t=n}else t=r(e,i,o+1);d=u.next(t)}return d.value===N?N:Wt(d.value)}return r(t)}function H(e,{allowSourceString:t=!0,allowString:n=!1,allowedStringType:r}={}){let i=e=>{if(t&&e&&e.source&&typeof e.source!=`string`){let t=Object.keys(e.source);if(e.source.id&&e.source.type&&t.length===2)return{...e,source:e.source.id}}return e};if(e){if(e.source&&e.source.partOf)return i(e);let t=Object.keys(e);if(t.length===2&&e.type&&e.source||t.length===3&&e.type&&e.source&&t.indexOf(`selector`)!==-1&&!e.selector)return n&&(!r||r===e.source.type)?e.source.id:e.source.type===`ContentResource`?{type:`SpecificResource`,source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!=`string`&&e.selector.type===`FragmentSelector`){let t=`${e.source.id}#${e.selector.value}`;return n?t:{id:t,type:e.source.type}}}return i(e)}function U(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let n=t[0];if(!n)return``;let r=(e[n]||[]).join(``);return n===`@none`||n===`none`||n===`en`?r:{"@language":n,"@value":r}}return t.map(t=>({"@language":t,"@value":(e[t]||[]).join(``)}))}}function Kt(e){return Array.isArray(e)?e.map(e=>Kt(e)):typeof e==`string`?e:e.type&&e.type===`Canvas`?e.id:e}function W(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function qt(e){if(e){if(typeof e==`string`)return{"@id":e};if(`@id`in e){let 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 G(e,t){return[[`@id`,e.id],[`@type`,t],[`format`,e.format],[`height`,e.height],[`width`,e.width],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`license`,e.license?e.license:void 0]]}function*K(e){let t=e.provider?yield e.provider[0]:void 0;return[[`label`,U(e.label)],[`metadata`,e.metadata&&e.metadata.length?e.metadata.map(e=>({label:U(e.label)||``,value:U(e.value)||``})):void 0],[`description`,U(e.summary)],[`thumbnail`,W(yield e.thumbnail)],[`navDate`,e.navDate],[`logo`,t?W(t.logo):void 0],[`homepage`,t?t.homepage:void 0],[`attribution`,e.requiredStatement?U(e.requiredStatement.value):void 0]]}function*q(e){let t=e.start&&e.start.type&&e.start.type===`SpecificResource`?H(e.start):e.start;return[[`seeAlso`,W(yield e.seeAlso)],[`service`,W((e.service||[]).map(qt))],[`rendering`,W(yield e.rendering)],[`startCanvas`,t?t.id:void 0]]}function Jt(e){return e.type===`SpecificResource`}function Yt(e){return e&&e.type===`FragmentSelector`}function Xt(e){if(e&&Jt(e)){let t=e.id,n=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return Yt(n)&&(t+=`#`+n.value),t}return e?.id}let Zt={Manifest:function*(e,t,{isTopLevel:n}){return[...n?[[`@context`,`http://iiif.io/api/presentation/2/context.json`]]:[],...G(e,`sc:Manifest`),...yield*K(e),...yield*q(e),[`sequences`,[{"@id":`${e.id}/sequence0`,"@type":`sc:Sequence`,canvases:yield e.items}]],[`structures`,yield e.structures]]},Canvas:function*(e){let t=yield e.items,n=t[0];return[...G(e,`sc:Canvas`),...yield*K(e),...yield*q(e),[`images`,n?[n.resources]:void 0],[`annotations`,e.annotations&&e.annotations.length?W(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...G(e,`sc:AnnotationList`),...yield*K(e),[`resources`,e.items&&e.items.length?W(yield e.items):void 0]]},Annotation:function*(e){return[[`@id`,e.id],[`@type`,`oa:Annotation`],[`motivation`,`sc:painting`],[`on`,Kt(e.target)],[`resource`,W(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case`Image`:return[...G(e,`dctypes:Image`),...yield*K(e),...yield*q(e)];case`Text`:case`Dataset`:default:return[...G(e,void 0),...yield*K(e)]}},AnnotationCollection:function*(e){return[[`@id`,e.id],[`@type`,`sc:Layer`],[`label`,U(e.label)]]},Collection:function*(e){return[...G(e,`sc:Collection`),...yield*K(e),...yield*q(e),[`members`,yield*e.items]]},Range:function*(e){let t=[],n=[];if(e.items)for(let r of e.items){let i=r.type===`SpecificResource`?r.source:r;if(i){let a=yield i;t.push({"@id":Xt(r),"@type":i.type,label:a?a.label:void 0,within:e.id}),i.type===`Canvas`&&n.push(i.id)}}return[...G(e,`sc:Range`),...yield*K(e),...yield*q(e),[`canvases`,n.length===t.length?n:void 0],[`members`,n.length===t.length?void 0:t]]}};function J(e){return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],[`type`,e.type],[`format`,e.format],[`profile`,e.profile],[`height`,e.height||void 0],[`width`,e.width||void 0],[`duration`,e.duration||void 0],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`behavior`,e.behavior&&e.behavior.length?e.behavior:void 0],[`timeMode`,e.timeMode],[`motivation`,Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[A,N]]}function Y(e){if(e===N||!e||e.length===0)return;let t=e.filter(e=>e!==N);if(t.length!==0)return t}function Qt(e){if(e&&e.type&&e.type===`ImageService2`){let{id:t,type:n,profile:r,...i}=e,a=typeof r==`string`?r:Array.isArray(r)?r.find(e=>typeof e==`string`):``;return{"@id":t,"@type":n,profile:a?a.startsWith(`http`)?a:`http://iiif.io/api/image/2/${a}.json`:`http://iiif.io/api/image/2/level0.json`,...i}}return e}function $t(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Qt)}function*X(e){return[[`label`,e.label],[`metadata`,Y(e.metadata)],[`summary`,e.summary],[`requiredStatement`,e.requiredStatement],[`rights`,Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],[`navDate`,e.navDate],[`language`,e.language],[`thumbnail`,Y(yield e.thumbnail)],[`placeholderCanvas`,yield e.placeholderCanvas],[`accompanyingCanvas`,yield e.accompanyingCanvas],[`provider`,Y(yield e.provider)]]}function*Z(e,t){let n=[];for(let r of e.partOf||[]){if(r.type===`Manifest`&&t.type===`Manifest`)continue;n.push(yield r)}return[[`seeAlso`,Y(yield e.seeAlso)],[`service`,Y($t(e.service))],[`services`,Y($t(e.services))],[`rendering`,Y(yield e.rendering)],[`supplementary`,Y(yield e.supplementary)],[`homepage`,Y(yield e.homepage)],[`logo`,Y(yield e.logo)],[`partOf`,Y(n)],[`start`,e.start?H(e.start):e.start]]}let en={Manifest:function*(e,t,{isTopLevel:n}){if(!n)return[...J(e),...yield*X(e),[`navPlace`,e.navPlace]];let r=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||nn(e))&&(r=[`http://iiif.io/api/presentation/3/context.json`,`http://iiif.io/api/extension/navplace/context.json`]),[[`@context`,e[`@context`]?e[`@context`]:r],...J(e),...yield*X(e),...yield*Z(e),[`items`,yield e.items],[`structures`,Y(yield e.structures)],[`annotations`,Y(yield e.annotations)],[`navPlace`,e.navPlace]]},Canvas:function*(e,t,{parent:n}){return n&&n.type!==`Manifest`&&n.type!==`Canvas`?[[`id`,e.id]]:[...J(e),...yield*X(e),...yield*Z(e,n),[`items`,yield e.items],[`annotations`,Y(yield e.annotations)],[`navPlace`,e.navPlace]]},Agent:function*(e){return[[`id`,e.id],[`type`,`Agent`],[`label`,e.label],...yield*Z(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?Y(t):t]).filter(([e,t])=>e!==`items`&&e!==`id`&&e!==A&&e!==j&&e!==M),n=yield e.items;return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],...t,...yield*Z(e),[`items`,n.length||e[M]===!1?n:N]]},Service:function*(e){return[[pt,Qt(e)]]},Annotation:function*(e){let t=Object.entries(e).map(([e,t])=>e===`motivation`?[e,Array.isArray(t)?t[0]:t]:e===`target`?[e,H(t,{allowString:!0,allowSourceString:!0,allowedStringType:`Canvas`})]:[e,Array.isArray(t)?Y(t):t]).filter(([e])=>e!==`body`&&e!==A&&e!==M),n;if(Array.isArray(e.body)){let t=[];for(let n of e.body)if(n&&O(n)){let e={...n};n.source.type===`Canvas`?e.source=n.source:e.source=yield n.source,t.push(H(e,{allowSourceString:!0}))}else t.push(yield n);n=t}else e.body&&O(e.body)?(n={...e.body},n.source=yield e.body.source):n=yield e.body;return[...t,...yield*X(e),...yield*Z(e),[`body`,n.length===1?n[0]:n]]},ContentResource:function*(e){return tn([...J(e),...yield*X(e),...yield*Z(e),[`annotations`,Y(yield e.annotations)],[`items`,Y(yield e.items)]],e)},AnnotationCollection:function*(e){return[[`id`,e.id],[`type`,`AnnotationCollection`],[`label`,e.label]]},Collection:function*(e,t,{isTopLevel:n}){if(n){let t=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||nn(e))&&(t=[`http://iiif.io/api/extension/navplace/context.json`,`http://iiif.io/api/presentation/3/context.json`]),[[`@context`,t],...J(e),...yield*X(e),...yield*Z(e),[`items`,Y(yield e.items)],[`navPlace`,e.navPlace]]}return[...J(e),...yield*X(e),[`navPlace`,e.navPlace]]},Range:function*(e){let t=[];for(let n of e.items)n.type===`Range`?t.push(yield n):n&&n.type===`SpecificResource`?t.push(H(n)):t.push(n);return[...J(e),...yield*X(e),...yield*Z(e),[`items`,t],[`annotations`,Y(yield e.annotations)],[`navPlace`,e.navPlace]]}};function tn(e,t){let n=Object.keys(t),r=e.map(([e])=>e);for(let i of n){if(i===A||i===M)continue;r.indexOf(i)===-1&&t[i]!==void 0&&e.push([i,t[i]])}return e}function nn(e){if(!e.items||!Array.isArray(e.items))return!1;for(let t of e.items)if(t.navPlace)return!0;return!1}var rn={};t(rn,{EMPTY:()=>P,HAS_PART:()=>A,IS_EXTERNAL:()=>M,PART_OF:()=>j,Traverse:()=>Dt,UNSET:()=>N,UNWRAP:()=>pt,WILDCARD:()=>k,addFlagForExternalResource:()=>V,compressSpecificResource:()=>H,defaultEntities:()=>Ot,emptyAgent:()=>Ct,emptyAnnotation:()=>_t,emptyAnnotationPage:()=>vt,emptyCanvas:()=>yt,emptyCollection:()=>bt,emptyManifest:()=>xt,emptyRange:()=>St,emptyService:()=>wt,frameResource:()=>ht,getDefaultEntities:()=>kt,identifyResource:()=>Et,isSpecificResource:()=>O,isWildcard:()=>mt,languageString2to3:()=>U,merge:()=>L,mergeEntities:()=>R,normalize:()=>Ut,resolveIfExists:()=>gt,serialize:()=>Gt,serializeConfigPresentation2:()=>Zt,serializeConfigPresentation3:()=>en,serializedFieldsToObject:()=>Wt,toRef:()=>ft,traverseSpecificResource:()=>Ht,types:()=>Tt});function an(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,``);return t.indexOf(`/`)===-1?t:t.split(`/`)[0]}function on(e){try{if(e===`full`)return{full:!0};if(e===`square`)return{square:!0};let t=e.startsWith(`pct:`),n=e.substr(t?4:0).split(`,`),r=n.map(e=>parseFloat(e));return{x:r[0],y:r[1],w:r[2],h:r[3],percent:t}}catch{throw Error(`Expected 'full', 'square' or 'x,y,w,h'. Found `+e)}}function sn(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]===`^`&&(t.upscaled=!0,e=e.slice(1)),e===`max`||e===`full`)return t.max=!0,t.serialiseAsFull=e===`full`,t;if(e[0]===`!`&&(t.confined=!0,e=e.slice(1)),e[0]===`p`)return t.percentScale=parseFloat(e.slice(4)),t;let n=e.split(`,`).map(e=>e.trim());return n.length&&(n[0]!==``&&(t.width=parseInt(n[0],10)),n[1]!==``&&(t.height=parseInt(n[1],10))),t}function cn(e){let t={angle:0};if(e[0]===`!`&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw Error(`Invalid rotation ${e}`);return t}function ln(e,t=``){let n=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!n)throw Error(`Invalid or unknown input ${e}`);let r=n[2],i=n[3],a=n[4];if(a[0]===`/`&&(a=a.substring(1)),t.length>0){if(t[0]===`/`&&(t=t.substring(1)),t!==a.substring(0,t.length))throw Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:r,server:i,path:a,prefix:t}}function un(e,t=``){let{path:n,scheme:r,server:i,prefix:a}=ln(e,t),o=n.split(`/`).reverse(),[s,c,l,u,...d]=o,f=d.reverse().filter(Boolean).join(`/`);if(o.length===1||s===``)return{type:`base`,scheme:r,server:i,prefix:a,identifier:f};if(s===`info.json`){let[,...e]=o;return{type:`info`,scheme:r,server:i,prefix:a,identifier:e.reverse().filter(Boolean).join(`/`)}}if(r===void 0||i===void 0||n===void 0||u===void 0||l===void 0||c===void 0||s===void 0)throw Error(`Invalid image service URL`);let[p=``,m=``]=s.split(`.`);return{type:`image`,scheme:r,server:i,prefix:a,identifier:f,originalPath:n,region:on(u),size:sn(l),rotation:cn(c),quality:p,format:m}}function dn(e){let t=y.indexOf(e)!==-1;if(t)return Oe;let n=b.indexOf(e)!==-1;return n?De:Ee}function fn(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],n={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let e of t){if(typeof e==`string`&&(e=dn(e)),!e)continue;if(e.formats)for(let t of e.formats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.qualities)for(let t of e.qualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.supports)for(let t of e.supports)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea),e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea)}if(e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);return n}function pn(e){let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`&&Te.indexOf(e)!==-1)return!0;return!1}function mn(e){if(e[`@id`])return e[`@id`];if(e.id)return e.id}function Q(e){if(!e||!e.profile||!mn(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`&&Ce.indexOf(e)!==-1)return!0;return!1}function hn(e,t){if(!Q(e))return[!1,`Not a valid image service`];t.extraFeatures=t.extraFeatures?t.extraFeatures:[];let n=fn(e);if(t.exactSize){let n=!1;if(e.sizes)for(let r of e.sizes)r.width&&r.width===t.exactSize.width&&(ke.indexOf(`sizeByW`)===-1?r.height&&r.height===t.exactSize.height&&(n=!0):n=!0),r.height&&r.height===t.exactSize.height&&(ke.indexOf(`sizeByH`)===-1?r.width&&r.width===t.exactSize.width&&(n=!0):n=!0);n||(t.maxWidth=Math.max(t.maxWidth||0,t.exactSize.width||0)||void 0,t.maxHeight=Math.max(t.maxHeight||0,t.exactSize.height||0)||void 0,t.maxArea=Math.max(t.maxArea||0,(t.exactSize.width&&t.exactSize.height?t.exactSize.width*t.exactSize.height:t.maxArea)||0)||void 0,!t.exactSize.height&&t.exactSize.width?t.extraFeatures.indexOf(`sizeByW`)===-1&&t.extraFeatures.push(`sizeByW`):!t.exactSize.width&&t.exactSize.height&&t.extraFeatures.indexOf(`sizeByH`)===-1&&t.extraFeatures.push(`sizeByH`))}if(t.maxArea&&n.maxArea&&t.maxArea>n.maxArea)return[!1,`Max area is ${n.maxArea}`];if(t.maxWidth&&n.maxWidth&&t.maxWidth>n.maxWidth)return[!1,`Max width is ${n.maxWidth}`];if(t.maxHeight&&n.maxHeight&&t.maxHeight>n.maxHeight)return[!1,`Max height is ${n.maxHeight}`];if(t.extraFeatures){let e=[];for(let r of t.extraFeatures)n.extraFeatures.indexOf(r)===-1&&e.push(r);if(e.length)return[!1,`Missing features: ${e.join(`, `)}`]}if(t.extraFormats){let e=[];for(let r of t.extraFormats)n.extraFormats.indexOf(r)===-1&&e.push(r);if(e.length)return[!1,`Missing formats: ${e.join(`, `)}`]}if(t.extraQualities){let e=[];for(let r of t.extraQualities)n.extraQualities.indexOf(r)===-1&&e.push(r);if(e.length)return[!1,`Missing qualities: ${e.join(`, `)}`]}return[!0]}function gn(e){if(!Q(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`){if(b.indexOf(e)!==-1)return!0}else{let t=[...e.supports||[],...e.extraFeatures||[]];if(t.indexOf(`regionByPx`)!==-1&&(t.indexOf(`sizeByW`)!==-1||t.indexOf(`sizeByWh`)!==-1))return!0}return!1}function _n(e,t){return hn(e,{extraFormats:[t]})}function vn(e,t){if(t.type!==`image`)return[!0];let n=[];if(t.rotation.mirror&&n.push(`mirroring`),t.region.percent&&n.push(`regionByPct`),t.region.square?n.push(`regionSquare`):t.region.full||n.push(`regionByPx`),t.rotation.angle){let e=t.rotation.angle%90;e?n.push(`rotationArbitrary`):n.push(`rotationBy90s`)}t.size.confined&&n.push(`sizeByConfinedWh`),!t.size.width&&t.size.height&&n.push(`sizeByH`),t.size.percentScale&&n.push(`sizeByPct`);let r=(e.sizes||[]).find(e=>e.width===t.size.width&&!t.size.height||e.height===t.size.height&&!t.size.width||e.height===t.size.height&&e.width===t.size.width);r?n.push(`sizeByWhListed`):(t.size.width&&!t.size.height&&n.push(`sizeByW`),t.size.width&&t.size.height&&n.push(`sizeByWh`)),t.size.upscaled&&n.push(`sizeUpscaling`);let[i,a]=hn(e,{extraFeatures:n,extraQualities:[t.quality],extraFormats:[t.format],exactSize:t.size});return i?[!0]:[!1,a]}function yn({x:e=0,y:t=0,w:n,h:r,full:i,square:a,percent:o}){if(i)return`full`;if(a)return`square`;if(n===void 0||r===void 0)throw Error(`RegionParameter: invalid region`);let s=`${e},${t},${n},${r}`;return o?`pct:${s}`:s}function bn({max:e,percentScale:t,upscaled:n,confined:r,width:i,height:a,serialiseAsFull:o,version:s}){let c=[];return n&&c.push(`^`),e?(c.push(o?`full`:`max`),c.join(``)):(r&&c.push(`!`),t&&c.push(`pct:${t}`),i&&c.push(`${i}`),c.push(`,`),a&&s===3&&c.push(`${a}`),c.join(``))}function xn(e){return`${e.mirror?`!`:``}${(e.angle||0)%360}`}function Sn(e,t){let n=e.prefix.startsWith(`/`)?e.prefix.substring(1):e.prefix,r=`${e.scheme}://${e.server}/${n?`${n}/`:``}${e.identifier}`;if(e.type===`base`)return r;if(e.type===`info`)return`${r}/info.json`;let{size:i}=e,{region:a,rotation:o,format:s,quality:c}=e;if(t){let e=t[`@context`]?Array.isArray(t[`@context`])?t[`@context`]:[t[`@context`]]:[],n=e.indexOf(`http://iiif.io/api/image/2/context.json`)!==-1,r=e.indexOf(`http://iiif.io/api/image/3/context.json`)!==-1;if((i.width===t.width&&!i.height||i.height===t.height&&!i.width||i.width===t.width&&i.height===t.height)&&(i={...i,max:!0}),n&&(i.max&&!i.serialiseAsFull&&(i={...i,serialiseAsFull:!0}),!i.max&&i.width&&i.height&&(i={...i,height:void 0}),i={...i,version:2}),r){if(i.max&&i.serialiseAsFull&&(i={...i,serialiseAsFull:!1}),i.width&&!i.height&&t.width&&t.height){let e=t.height/t.width;i={...i,height:Math.ceil(i.width*e)}}i={...i,version:3}}}return[r,yn(a),bn(i),xn(o),`${c}.${s}`].filter(Boolean).join(`/`)}function Cn(e,t){return Sn({...e,type:`info`},t)}function wn(e){return e.endsWith(`info.json`)?e:e.endsWith(`/`)?`${e}info.json`:`${e}/info.json`}function Tn(e){let t=un(wn(e.id));if(t.type!==`info`)throw Error(`Invalid service URL`);let n=fn(e);return{identifier:t.identifier,originalPath:``,server:t.server,prefix:t.prefix,scheme:t.scheme,type:`image`,quality:n.extraQualities.indexOf(`default`)===-1?n.extraQualities[0]:`default`,region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:`jpg`,rotation:{angle:0}}}function En(e,t,n){let r=n.length,i=[];for(let t=0;t<r;t++){let r=n[t];if(!r)continue;let a=r.width;i.push(e/a)}return i}function Dn(e,t,n){let r=n.length,i=[];for(let a=0;a<r;a++){let r=n[a];r&&i.push({width:Math.floor(e/r),height:Math.floor(t/r)})}return i}function $(e,t){if(t&&t.profile){let n=t.profile;if(n){let t=Array.isArray(n)?n:[n];if(t.includes(`level${e}`)||t.includes(`http://iiif.io/api/image/2/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`))return!0;if(e===2){for(let e of t)if(y.includes(e))return!0}if(e===1){for(let e of t)if(b.includes(e))return!0}if(e===0){for(let e of t)if(Te.includes(e))return!0}}}return!1}function On(e){return Q(e)?$(2,e)?2:$(1,e)?1:$(0,e)?0:null:null}function kn(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],n=t.length,r=[];for(let e=0;e<n;e++)Q(t[e])&&r.push(t[e]);return r}function An(e){if(e[`@type`])return e[`@type`];if(e.type)return e.type}function jn(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,``);return t.indexOf(`/`)===-1?t:t.split(`/`)[0]}var Mn={};t(Mn,{IIIF_1_IMAGE_LEVEL_0:()=>oe,IIIF_1_IMAGE_LEVEL_0_PROFILE:()=>v,IIIF_1_IMAGE_LEVEL_1:()=>se,IIIF_1_IMAGE_LEVEL_1_PROFILE:()=>ce,IIIF_1_IMAGE_LEVEL_2:()=>le,IIIF_1_IMAGE_LEVEL_2_PROFILE:()=>ue,IIIF_2_IMAGE_LEVEL_0:()=>de,IIIF_2_IMAGE_LEVEL_0_NO_JSON:()=>be,IIIF_2_IMAGE_LEVEL_0_PROFILE:()=>fe,IIIF_2_IMAGE_LEVEL_1:()=>pe,IIIF_2_IMAGE_LEVEL_1_NO_JSON:()=>xe,IIIF_2_IMAGE_LEVEL_1_PROFILE:()=>me,IIIF_2_IMAGE_LEVEL_2:()=>he,IIIF_2_IMAGE_LEVEL_2_NO_JSON:()=>Se,IIIF_2_IMAGE_LEVEL_2_PROFILE:()=>ge,IIIF_3_IMAGE_LEVEL_0:()=>_e,IIIF_3_IMAGE_LEVEL_1:()=>ve,IIIF_3_IMAGE_LEVEL_2:()=>ye,STANFORD_IIIF_1_IMAGE_COMPLIANCE_0:()=>_,STANFORD_IIIF_1_IMAGE_COMPLIANCE_1:()=>te,STANFORD_IIIF_1_IMAGE_COMPLIANCE_2:()=>ne,STANFORD_IIIF_1_IMAGE_CONFORMANCE_0:()=>re,STANFORD_IIIF_1_IMAGE_CONFORMANCE_1:()=>ie,STANFORD_IIIF_1_IMAGE_CONFORMANCE_2:()=>ae,STANFORD_IIIF_IMAGE_COMPLIANCE_0:()=>f,STANFORD_IIIF_IMAGE_COMPLIANCE_1:()=>p,STANFORD_IIIF_IMAGE_COMPLIANCE_2:()=>m,STANFORD_IIIF_IMAGE_CONFORMANCE_0:()=>ee,STANFORD_IIIF_IMAGE_CONFORMANCE_1:()=>h,STANFORD_IIIF_IMAGE_CONFORMANCE_2:()=>g,canonicalServiceUrl:()=>wn,combineProfiles:()=>fn,createImageServiceRequest:()=>Tn,extraFeatures:()=>ke,extractFixedSizeScales:()=>En,fixedSizesFromScales:()=>Dn,getId:()=>mn,getImageServiceLevel:()=>On,getImageServices:()=>kn,getType:()=>An,identifyImageServer:()=>jn,imageServiceProfiles:()=>Ce,imageServiceRequestInfo:()=>Cn,imageServiceRequestToString:()=>Sn,imageServiceSupportsFormat:()=>_n,imageServiceSupportsRequest:()=>vn,isImageService:()=>Q,isImageServiceLevel:()=>$,isLevel0:()=>pn,level0:()=>Ee,level0Support:()=>we,level1:()=>De,level1Support:()=>b,level2:()=>Oe,level2Support:()=>y,levelToProfile:()=>dn,onlyLevel0:()=>Te,parseImageServerFromId:()=>an,parseImageServiceRequest:()=>un,parseImageServiceUrl:()=>ln,parseRegionParameter:()=>on,parseRotationParameter:()=>cn,parseSizeParameter:()=>sn,regionParameterToString:()=>yn,rotationParameterToString:()=>xn,sizeParameterToString:()=>bn,supports:()=>hn,supportsCustomSizes:()=>gn});var Nn={Presentation2:dt,Presentation3:rn,Image3:Mn};return Nn}); |
@@ -1,1 +0,1 @@ | ||
| require(`./remove-undefined-properties-B6rYUrLL.cjs`);const e=require(`./traverse-CLpGzNvI.cjs`),t=require(`./presentation-3-BXox_bXV.cjs`);require(`./upgrader-FVo4y5jh.cjs`),require(`./profiles-iKAaapmR.cjs`),require(`./presentation-2-BUkBoZ0A.cjs`),exports.EMPTY=t.EMPTY,exports.HAS_PART=t.HAS_PART,exports.IS_EXTERNAL=t.IS_EXTERNAL,exports.PART_OF=t.PART_OF,exports.Traverse=e.Traverse,exports.UNSET=t.UNSET,exports.UNWRAP=t.UNWRAP,exports.WILDCARD=t.WILDCARD,exports.addFlagForExternalResource=t.addFlagForExternalResource,exports.compressSpecificResource=t.compressSpecificResource,exports.defaultEntities=t.defaultEntities,exports.emptyAgent=t.emptyAgent,exports.emptyAnnotation=t.emptyAnnotation,exports.emptyAnnotationPage=t.emptyAnnotationPage,exports.emptyCanvas=t.emptyCanvas,exports.emptyCollection=t.emptyCollection,exports.emptyManifest=t.emptyManifest,exports.emptyRange=t.emptyRange,exports.emptyService=t.emptyService,exports.frameResource=t.frameResource,exports.getDefaultEntities=t.getDefaultEntities,exports.identifyResource=e.identifyResource,exports.isSpecificResource=e.isSpecificResource,exports.isWildcard=t.isWildcard,exports.languageString2to3=t.languageString2to3,exports.merge=t.merge,exports.mergeEntities=t.mergeEntities,exports.normalize=t.normalize,exports.resolveIfExists=t.resolveIfExists,exports.serialize=t.serialize,exports.serializeConfigPresentation2=t.serializeConfigPresentation2,exports.serializeConfigPresentation3=t.serializeConfigPresentation3,exports.serializedFieldsToObject=t.serializedFieldsToObject,exports.toRef=t.toRef,exports.traverseSpecificResource=t.traverseSpecificResource,exports.types=e.types; | ||
| require(`./remove-undefined-properties-B6rYUrLL.cjs`);const e=require(`./traverse-CLpGzNvI.cjs`),t=require(`./presentation-3-VW8mCvZy.cjs`);require(`./upgrader-FVo4y5jh.cjs`),require(`./profiles-iKAaapmR.cjs`),require(`./presentation-2-BUkBoZ0A.cjs`),exports.EMPTY=t.EMPTY,exports.HAS_PART=t.HAS_PART,exports.IS_EXTERNAL=t.IS_EXTERNAL,exports.PART_OF=t.PART_OF,exports.Traverse=e.Traverse,exports.UNSET=t.UNSET,exports.UNWRAP=t.UNWRAP,exports.WILDCARD=t.WILDCARD,exports.addFlagForExternalResource=t.addFlagForExternalResource,exports.compressSpecificResource=t.compressSpecificResource,exports.defaultEntities=t.defaultEntities,exports.emptyAgent=t.emptyAgent,exports.emptyAnnotation=t.emptyAnnotation,exports.emptyAnnotationPage=t.emptyAnnotationPage,exports.emptyCanvas=t.emptyCanvas,exports.emptyCollection=t.emptyCollection,exports.emptyManifest=t.emptyManifest,exports.emptyRange=t.emptyRange,exports.emptyService=t.emptyService,exports.frameResource=t.frameResource,exports.getDefaultEntities=t.getDefaultEntities,exports.identifyResource=e.identifyResource,exports.isSpecificResource=e.isSpecificResource,exports.isWildcard=t.isWildcard,exports.languageString2to3=t.languageString2to3,exports.merge=t.merge,exports.mergeEntities=t.mergeEntities,exports.normalize=t.normalize,exports.resolveIfExists=t.resolveIfExists,exports.serialize=t.serialize,exports.serializeConfigPresentation2=t.serializeConfigPresentation2,exports.serializeConfigPresentation3=t.serializeConfigPresentation3,exports.serializedFieldsToObject=t.serializedFieldsToObject,exports.toRef=t.toRef,exports.traverseSpecificResource=t.traverseSpecificResource,exports.types=e.types; |
@@ -1,1 +0,1 @@ | ||
| import{Traverse as e,identifyResource as t,isSpecificResource as n,types as r}from"./traverse-BDmGe7EO.js";import{EMPTY as i,HAS_PART as a,IS_EXTERNAL as o,PART_OF as s,UNSET as c,UNWRAP as l,WILDCARD as u,addFlagForExternalResource as d,compressSpecificResource as f,defaultEntities as p,emptyAgent as m,emptyAnnotation as h,emptyAnnotationPage as g,emptyCanvas as _,emptyCollection as v,emptyManifest as y,emptyRange as b,emptyService as x,frameResource as S,getDefaultEntities as C,isWildcard as w,languageString2to3 as T,merge as E,mergeEntities as D,normalize as O,resolveIfExists as k,serialize as A,serializeConfigPresentation2 as j,serializeConfigPresentation3 as M,serializedFieldsToObject as N,toRef as P,traverseSpecificResource as F}from"./presentation-3-ChKeBggX.js";import"./remove-undefined-properties-DKmVdOaS.js";import"./upgrader-DoVcNsFK.js";import"./profiles-DU_UcLCg.js";import"./presentation-2-Bxbvy8if.js";export{i as EMPTY,a as HAS_PART,o as IS_EXTERNAL,s as PART_OF,e as Traverse,c as UNSET,l as UNWRAP,u as WILDCARD,d as addFlagForExternalResource,f as compressSpecificResource,p as defaultEntities,m as emptyAgent,h as emptyAnnotation,g as emptyAnnotationPage,_ as emptyCanvas,v as emptyCollection,y as emptyManifest,b as emptyRange,x as emptyService,S as frameResource,C as getDefaultEntities,t as identifyResource,n as isSpecificResource,w as isWildcard,T as languageString2to3,E as merge,D as mergeEntities,O as normalize,k as resolveIfExists,A as serialize,j as serializeConfigPresentation2,M as serializeConfigPresentation3,N as serializedFieldsToObject,P as toRef,F as traverseSpecificResource,r as types}; | ||
| import{Traverse as e,identifyResource as t,isSpecificResource as n,types as r}from"./traverse-BDmGe7EO.js";import{EMPTY as i,HAS_PART as a,IS_EXTERNAL as o,PART_OF as s,UNSET as c,UNWRAP as l,WILDCARD as u,addFlagForExternalResource as d,compressSpecificResource as f,defaultEntities as p,emptyAgent as m,emptyAnnotation as h,emptyAnnotationPage as g,emptyCanvas as _,emptyCollection as v,emptyManifest as y,emptyRange as b,emptyService as x,frameResource as S,getDefaultEntities as C,isWildcard as w,languageString2to3 as T,merge as E,mergeEntities as D,normalize as O,resolveIfExists as k,serialize as A,serializeConfigPresentation2 as j,serializeConfigPresentation3 as M,serializedFieldsToObject as N,toRef as P,traverseSpecificResource as F}from"./presentation-3-sAnB7vhe.js";import"./remove-undefined-properties-DKmVdOaS.js";import"./upgrader-DoVcNsFK.js";import"./profiles-DU_UcLCg.js";import"./presentation-2-Bxbvy8if.js";export{i as EMPTY,a as HAS_PART,o as IS_EXTERNAL,s as PART_OF,e as Traverse,c as UNSET,l as UNWRAP,u as WILDCARD,d as addFlagForExternalResource,f as compressSpecificResource,p as defaultEntities,m as emptyAgent,h as emptyAnnotation,g as emptyAnnotationPage,_ as emptyCanvas,v as emptyCollection,y as emptyManifest,b as emptyRange,x as emptyService,S as frameResource,C as getDefaultEntities,t as identifyResource,n as isSpecificResource,w as isWildcard,T as languageString2to3,E as merge,D as mergeEntities,O as normalize,k as resolveIfExists,A as serialize,j as serializeConfigPresentation2,M as serializeConfigPresentation3,N as serializedFieldsToObject,P as toRef,F as traverseSpecificResource,r as types}; |
+1
-1
| { | ||
| "name": "@iiif/parser", | ||
| "version": "2.2.3", | ||
| "version": "2.2.4", | ||
| "license": "MIT", | ||
@@ -5,0 +5,0 @@ "type": "module", |
| const e=require(`./traverse-CLpGzNvI.cjs`),t=require(`./upgrader-FVo4y5jh.cjs`);function n(t,r){let i=r||`unknown`;if(!t)return;if(typeof t==`string`)return{id:t,type:i};if(e.isSpecificResource(t))return n(t.source,r);let a=i&&i!==`unknown`?i:t.type||t[`@type`],o=t.id||t[`@id`];if(a&&a.indexOf(`:`)!==-1&&(a=a.split(`:`).pop()),o&&a)return{id:o,type:a}}const r={},i=`iiif-parser:hasPart`,a=`iiif-parser:partOf`,o=`iiif-parser:isExternal`,s=`__$UNSET$__`,c=`__$UNWRAP$__`,l=[];Object.freeze(l),Object.freeze(r);function u(e){if(e===r||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function d(e,t){if(t&&t[`@explicit`]){let n={},r=Object.keys(t);for(let i of r){if(i===a||i===`@explicit`)continue;u(t[i])?n[i]=e[i]:n[i]=t[i]}return n}return e}function f(e,t,r){let o=n(t);if(!o)return[void 0,void 0];let s=e.requests[o.id],c=o.type||e.mapping[o.id];if(!c||s&&s.resourceUri&&(!e.entities[c]||!e.entities[c][s.resourceUri]))return[void 0,void 0];let l=e.entities[c][s?s.resourceUri:o.id];if(o.type&&!l)return f(e,{id:o.id},r);if(l&&l[i]){let e=l[i].find(e=>r?e[a]===r.id:e[a]===l.id),t=d(l,e);return[t,l]}return[l,l]}const p={id:`https://iiif-parser/annotation`,type:`Annotation`,behavior:l,label:null,thumbnail:l,summary:null,requiredStatement:null,metadata:l,seeAlso:l,homepage:l,rendering:l,service:l,accessibility:l,audience:l,body:l,bodyValue:null,canonical:null,created:null,creator:l,generated:null,generator:l,modified:null,motivation:l,rights:null,stylesheet:null,target:l,timeMode:void 0,via:l,partOf:l},m={id:`https://iiif-parser/annotation-page`,type:`AnnotationPage`,behavior:l,label:null,thumbnail:l,summary:null,requiredStatement:null,metadata:l,rights:null,provider:l,items:l,seeAlso:l,homepage:l,rendering:l,service:l},h={id:`https://iiif-parser/empty-canvas`,type:`Canvas`,label:null,behavior:l,thumbnail:l,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:l,rights:null,navDate:null,provider:l,items:l,annotations:l,seeAlso:l,homepage:l,partOf:l,rendering:l,service:l,duration:0,height:0,width:0},g={id:`https://iiif-parser/empty-collection`,type:`Collection`,label:null,viewingDirection:`left-to-right`,behavior:l,thumbnail:l,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:l,rights:null,navDate:null,provider:l,items:l,annotations:l,seeAlso:l,homepage:l,partOf:l,rendering:l,service:l,services:l},_={id:`https://iiif-parser/empty-manifest`,type:`Manifest`,annotations:l,behavior:l,homepage:l,items:l,label:null,metadata:l,navDate:null,provider:l,partOf:l,accompanyingCanvas:null,placeholderCanvas:null,rendering:l,requiredStatement:null,rights:null,seeAlso:l,service:l,services:l,start:null,structures:l,summary:null,thumbnail:l,viewingDirection:`left-to-right`},v={id:`https://iiif-parser/empty-canvas`,type:`Range`,label:null,behavior:l,thumbnail:l,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:l,rights:null,navDate:null,provider:l,items:l,annotations:l,seeAlso:l,homepage:l,partOf:l,rendering:l,service:l,start:null,supplementary:null,viewingDirection:`left-to-right`},y={id:`https://iiif-parser/empty-agent`,type:`Agent`,label:{},logo:l,seeAlso:l,homepage:l},b={id:`https://iiif-parser/empty-service`,type:`UnknownService`};function x(e,t={}){if(Array.isArray(e))return x(e[0]);if(typeof e==`string`){let[n,r]=e.split(`#`);return r?{type:`SpecificResource`,source:{id:n,type:t.typeHint||`Unknown`},selector:{type:`FragmentSelector`,value:r}}:{type:`SpecificResource`,source:{id:n,type:t.typeMap&&t.typeMap[n]||t.typeHint||`Unknown`}}}if(e.type===`Choice`||e.type===`List`||e.type===`Composite`||e.type===`Independents`)return x(e.items[0]);if(!e.type&&`source`in e&&(e.type=`SpecificResource`),e.type===`SpecificResource`){e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:`Manifest`}]);let n=typeof e.source==`string`?e.source:e.source.id;if(n?.includes(`#`)){let r=x(n,t);r&&(e.selector=r.selector,e.source=r.source)}return e.selector?{type:`SpecificResource`,source:e.source,selector:e.selector}:{type:`SpecificResource`,source:e.source}}if(e.id){e.type===`Canvas`&&e.partOf&&typeof e.partOf==`string`&&(e.partOf=[{id:e.partOf,type:`Manifest`}]);let[t,n]=e.id.split(`#`);return n?{type:`SpecificResource`,source:{...e,id:t},selector:{type:`FragmentSelector`,value:n}}:{type:`SpecificResource`,source:{...e,id:t}}}return{type:`SpecificResource`,source:e}}const ee={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function S(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function C(e,t){if(typeof e==`string`)return{id:e,type:t};if(!e.id)throw Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function w(e,t){return(n,r)=>{let i=e[n]?e[n]:{};return(e,a)=>{let o=C(e,r||n);return o&&o.id&&n?(i[o.id]=i[o.id]?E(i[o.id],o,{parent:a.parent,isTopLevel:t.id===o.id}):E({id:o.id,type:o.type},o,{parent:a.parent,isTopLevel:t.id===o.id}),{id:o.id,type:n===`ContentResource`?n:o.type}):o}}}function T(e,t,n){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw Error(`Cannot merge array with non-array`);let n=[...e];for(let r of t){if(r[`@id`]&&!r.id&&(r.id=r[`@id`]),r[`@type`]&&!r.type&&(r.type=r[`@type`]),r==null)continue;if(Array.isArray(r))n.push(r);else if(typeof r==`object`&&r.id&&r.type){let e=n.findIndex(e=>e.id===r.id&&e.type===r.type);e>=0&&(n[e]=T(n[e],r))}else e.indexOf(r)===-1&&n.push(r)}return n}else if(typeof e==`object`){if(Array.isArray(t)||typeof t!=`object`)throw Error(`Cannot merge object with non-object`);let o={...e},s=[],c=[],u=Object.keys(e).filter(e=>e!==i&&e!==`id`&&e!==`type`),d={},f={};for(let[e,n]of Object.entries(t)){if(e===i||e===`id`||e===`type`)continue;let t=o[e];t===n?c.push(e):t===l||!t?(s.push(e),o[e]=n):(t&&n&&(d[e]=t,f[e]=n),o[e]=T(t,n),o[e]===d[e]&&(c.push(e),delete d[e]))}if(n&&(n.parent&&n.parent.id||n.isTopLevel)){let t=[],l={};if(n.parent?l[a]=n.parent.id:n.isTopLevel&&(l[a]=e.id),o[i]&&o[i].length){let e=!(o[i]||[]).find(e=>e[`@explicit`]),n=s.length>0||c.length!==u.length;if(e&&n)for(let e of o[i]){let n={...e},a=Object.keys(d);if(n){n[`@explicit`]=!0;for(let e of u)e!==i&&(n[e]=r);for(let e of a)n[e]=d[e]}t.push(n)}else t.push(...o[i]);if(n){let e=Object.keys(f);l[`@explicit`]=!0;for(let e of s)l[e]=r;for(let e of c)l[e]=r;for(let t of e)l[t]=f[t]}}l.id=o.id,l.type=o.type,t.push(l),o[i]=t}return o}else if(e)return e;return t}function E(e,t,n){if(typeof e==`string`)return e;if(t.id!==e.id||t.type!==e.type){if(t.type===`ImageService3`)return t;if(e.type===`ImageService3`)return e;throw Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return T({...e},t,n)}function te(e){return(t,n)=>r=>{let{id:i,type:a}=C(r,n||t);if(i===void 0)throw Error(`Found invalid entity without an ID.`);return t===`ContentResource`||t===`Service`?e[i]=t:e[i]=a,r}}function ne(e){let t=Object.assign({},e);if(t[`@id`]&&(t.id=t[`@id`]),t[`@type`]&&(t.type=t[`@type`]),t.service){let e=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)e.push({id:n[`@id`]||n.id,type:n[`@type`]||n.type});t.service=e}return Object.assign({},b,t)}function re(e){return t=>{e.Service=e.Service?e.Service:{};let n=t.id||t[`@id`],r=ne(t);return r&&r.id&&(e.Service[r.id]?e.Service[n]=E(e.Service[n],r):e.Service[n]=r),t}}function ie(e){let t=JSON.stringify(e),n=5381,r=t.length;for(;r;)n=n*33^t.charCodeAt(--r);let i=n>>>0,a=i.toString(16);return a.length%2?`0`+a:a}function D(e){return t=>typeof t==`string`?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${ie(t)}`,type:e,...t}}function O(e){return t=>({...e,...t})}function k(e){return Array.isArray(e)?e:[e]}function A(e){return e.body&&=k(e.body),e.seeAlso&&=k(e.seeAlso),e.audience&&=k(e.audience),e.accessibility&&=k(e.accessibility),e.motivation&&=k(e.motivation),e}function j(t,{typeHint:n,partOfTypeHint:r}={}){if(typeof t==`string`&&(t={id:t,type:n||`unknown`}),e.isSpecificResource(t))return typeof t.source==`string`&&(t.source={id:t.source,type:n||`unknown`}),t.source.type===`Canvas`&&t.source.partOf&&typeof t.source.partOf==`string`&&(t.source.partOf=[{id:t.source.partOf,type:r||`Manifest`}]),t;let i;if((t.id||``).indexOf(`#`)!==-1){let[e,n]=(t.id||``).split(`#`);t.id=e,n&&(i={type:`FragmentSelector`,value:n})}return{type:`SpecificResource`,source:t,selector:i}}function M(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(e=>typeof e==`string`||e.type===`Canvas`?j(e):e)),t}function N(e){let t=Object.assign({},e);return t.start?(t.start=j(t.start,{typeHint:`Canvas`}),t):e}function ae(e){let t=Object.assign({},e);return t.target?(t.target=x(t.target,{typeHint:`Canvas`}),t):e}function P(e){return e}function F(e){return e.items===void 0&&(e[o]=!0),e}function I(n){let r=t.convertPresentation2(n),i=S(),a={},o=w(i,r),s=te(a),c=new e.Traverse({collection:[F,O(g),s(`Collection`),o(`Collection`)],manifest:[F,O(_),N,s(`Manifest`),o(`Manifest`)],canvas:[O(h),s(`Canvas`),o(`Canvas`)],annotationPage:[F,D(`AnnotationPage`),O(m),s(`AnnotationPage`),o(`AnnotationPage`)],annotation:[D(`Annotation`),A,ae,s(`Annotation`),o(`Annotation`)],contentResource:[D(`ContentResource`),s(`ContentResource`),o(`ContentResource`)],range:[O(v),M,s(`Range`,`Canvas`),o(`Range`,`Canvas`)],agent:[O(y),s(`Agent`),o(`Agent`)],specificResource:[P],service:[re(i)]}),l=c.traverseUnknown(r);return{entities:i,resource:l,mapping:a}}function L(e){let t={};for(let[n,r]of e){if(n===c&&r!==s)return r;r!==s&&r!=null&&(t[n]=r)}return t}function oe(e,t,n){if(!t.type||!t.id)throw Error(`Unknown entity`);if(!n[t.type])throw Error(`Serializer not found for ${t.type}`);function r(i,a,o=0){let c=n[i.type];if(!c)return s;if(o>20)throw Error(`Circular reference: `+i.id+` `+i.type);let[l,u]=f(e,i.type?i:i.id,a)||(i.id&&i.type?i:null);if(!l)return s;let d=c(l,e,{parent:a,isTopLevel:t.id===i.id,fullResource:u}),p=d.next();for(;!p.done;){let e=p.value,t=s;if(e)if(Array.isArray(e)){let n=[];for(let t of e)n.push(r(t,i,o+1));t=n}else t=r(e,i,o+1);p=d.next(t)}return p.value===s?s:L(p.value)}return r(t)}function R(e,{allowSourceString:t=!0,allowString:n=!1,allowedStringType:r}={}){let i=e=>{if(t&&e&&e.source&&typeof e.source!=`string`){let t=Object.keys(e.source);if(e.source.id&&e.source.type&&t.length===2)return{...e,source:e.source.id}}return e};if(e){if(e.source&&e.source.partOf)return i(e);let t=Object.keys(e);if(t.length===2&&e.type&&e.source||t.length===3&&e.type&&e.source&&t.indexOf(`selector`)!==-1&&!e.selector)return n&&(!r||r===e.source.type)?e.source.id:e.source.type===`ContentResource`?{type:`SpecificResource`,source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!=`string`&&e.selector.type===`FragmentSelector`){let t=`${e.source.id}#${e.selector.value}`;return n?t:{id:t,type:e.source.type}}}return i(e)}function z(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let n=t[0];if(!n)return``;let r=(e[n]||[]).join(``);return n===`@none`||n===`none`||n===`en`?r:{"@language":n,"@value":r}}return t.map(t=>({"@language":t,"@value":(e[t]||[]).join(``)}))}}function B(e){return Array.isArray(e)?e.map(e=>B(e)):typeof e==`string`?e:e.type&&e.type===`Canvas`?e.id:e}function V(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function H(e){if(e){if(typeof e==`string`)return{"@id":e};if(`@id`in e){let 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 U(e,t){return[[`@id`,e.id],[`@type`,t],[`format`,e.format],[`height`,e.height],[`width`,e.width],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`license`,e.license?e.license:void 0]]}function*W(e){let t=e.provider?yield e.provider[0]:void 0;return[[`label`,z(e.label)],[`metadata`,e.metadata&&e.metadata.length?e.metadata.map(e=>({label:z(e.label)||``,value:z(e.value)||``})):void 0],[`description`,z(e.summary)],[`thumbnail`,V(yield e.thumbnail)],[`navDate`,e.navDate],[`logo`,t?V(t.logo):void 0],[`homepage`,t?t.homepage:void 0],[`attribution`,e.requiredStatement?z(e.requiredStatement.value):void 0]]}function*G(e){let t=e.start&&e.start.type&&e.start.type===`SpecificResource`?R(e.start):e.start;return[[`seeAlso`,V(yield e.seeAlso)],[`service`,V((e.service||[]).map(H))],[`rendering`,V(yield e.rendering)],[`startCanvas`,t?t.id:void 0]]}function K(e){return e.type===`SpecificResource`}function se(e){return e&&e.type===`FragmentSelector`}function ce(e){if(e&&K(e)){let t=e.id,n=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return se(n)&&(t+=`#`+n.value),t}return e?.id}const le={Manifest:function*(e,t,{isTopLevel:n}){return[...n?[[`@context`,`http://iiif.io/api/presentation/2/context.json`]]:[],...U(e,`sc:Manifest`),...yield*W(e),...yield*G(e),[`sequences`,[{"@id":`${e.id}/sequence0`,"@type":`sc:Sequence`,canvases:yield e.items}]],[`structures`,yield e.structures]]},Canvas:function*(e){let t=yield e.items,n=t[0];return[...U(e,`sc:Canvas`),...yield*W(e),...yield*G(e),[`images`,n?[n.resources]:void 0],[`annotations`,e.annotations&&e.annotations.length?V(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...U(e,`sc:AnnotationList`),...yield*W(e),[`resources`,e.items&&e.items.length?V(yield e.items):void 0]]},Annotation:function*(e){return[[`@id`,e.id],[`@type`,`oa:Annotation`],[`motivation`,`sc:painting`],[`on`,B(e.target)],[`resource`,V(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case`Image`:return[...U(e,`dctypes:Image`),...yield*W(e),...yield*G(e)];case`Text`:case`Dataset`:default:return[...U(e,void 0),...yield*W(e)]}},AnnotationCollection:function*(e){return[[`@id`,e.id],[`@type`,`sc:Layer`],[`label`,z(e.label)]]},Collection:function*(e){return[...U(e,`sc:Collection`),...yield*W(e),...yield*G(e),[`members`,yield*e.items]]},Range:function*(e){let t=[],n=[];if(e.items)for(let r of e.items){let i=r.type===`SpecificResource`?r.source:r;if(i){let a=yield i;t.push({"@id":ce(r),"@type":i.type,label:a?a.label:void 0,within:e.id}),i.type===`Canvas`&&n.push(i.id)}}return[...U(e,`sc:Range`),...yield*W(e),...yield*G(e),[`canvases`,n.length===t.length?n:void 0],[`members`,n.length===t.length?void 0:t]]}};function q(e){return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],[`type`,e.type],[`format`,e.format],[`profile`,e.profile],[`height`,e.height||void 0],[`width`,e.width||void 0],[`duration`,e.duration||void 0],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`behavior`,e.behavior&&e.behavior.length?e.behavior:void 0],[`timeMode`,e.timeMode],[`motivation`,Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[i,s]]}function J(e){if(e===s||!e||e.length===0)return;let t=e.filter(e=>e!==s);if(t.length!==0)return t}function Y(e){if(e&&e.type&&e.type===`ImageService2`){let{id:t,type:n,profile:r,...i}=e,a=typeof r==`string`?r:Array.isArray(r)?r.find(e=>typeof e==`string`):``;return{"@id":t,"@type":n,profile:a?a.startsWith(`http`)?a:`http://iiif.io/api/image/2/${a}.json`:`http://iiif.io/api/image/2/level0.json`,...i}}return e}function X(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Y)}function*Z(e){return[[`label`,e.label],[`metadata`,J(e.metadata)],[`summary`,e.summary],[`requiredStatement`,e.requiredStatement],[`rights`,Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],[`navDate`,e.navDate],[`language`,e.language],[`thumbnail`,J(yield e.thumbnail)],[`placeholderCanvas`,yield e.placeholderCanvas],[`accompanyingCanvas`,yield e.accompanyingCanvas],[`provider`,J(yield e.provider)]]}function*Q(e,t){let n=[];for(let r of e.partOf||[]){if(r.type===`Manifest`&&t.type===`Manifest`)continue;n.push(yield r)}return[[`seeAlso`,J(yield e.seeAlso)],[`service`,J(X(e.service))],[`services`,J(X(e.services))],[`rendering`,J(yield e.rendering)],[`supplementary`,J(yield e.supplementary)],[`homepage`,J(yield e.homepage)],[`logo`,J(yield e.logo)],[`partOf`,J(n)],[`start`,e.start?R(e.start):e.start]]}const ue={Manifest:function*(e,t,{isTopLevel:n}){if(!n)return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]];let r=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(r=[`http://iiif.io/api/presentation/3/context.json`,`http://iiif.io/api/extension/navplace/context.json`]),[[`@context`,e[`@context`]?e[`@context`]:r],...q(e),...yield*Z(e),...yield*Q(e),[`items`,yield e.items],[`structures`,J(yield e.structures)],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Canvas:function*(e,t,{parent:n}){return n&&n.type!==`Manifest`&&n.type!==`Canvas`?[[`id`,e.id]]:[...q(e),...yield*Z(e),...yield*Q(e,n),[`items`,yield e.items],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Agent:function*(e){return[[`id`,e.id],[`type`,`Agent`],[`label`,e.label],...yield*Q(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?J(t):t]).filter(([e,t])=>e!==`items`&&e!==`id`&&e!==i&&e!==a&&e!==o),n=yield e.items;return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],...t,...yield*Q(e),[`items`,n.length||e[o]===!1?n:s]]},Service:function*(e){return[[c,Y(e)]]},Annotation:function*(t){let n=Object.entries(t).map(([e,t])=>e===`motivation`?[e,Array.isArray(t)?t[0]:t]:e===`target`?[e,R(t,{allowString:!0,allowSourceString:!0,allowedStringType:`Canvas`})]:[e,Array.isArray(t)?J(t):t]).filter(([e])=>e!==`body`&&e!==i&&e!==o),r;if(Array.isArray(t.body)){let n=[];for(let r of t.body)if(r&&e.isSpecificResource(r)){let e={...r};r.source.type===`Canvas`?e.source=r.source:e.source=yield r.source,n.push(R(e,{allowSourceString:!0}))}else n.push(yield r);r=n}else t.body&&e.isSpecificResource(t.body)?(r={...t.body},r.source=yield t.body.source):r=yield t.body;return[...n,...yield*Z(t),...yield*Q(t),[`body`,r.length===1?r[0]:r]]},ContentResource:function*(e){return de([...q(e),...yield*Z(e),...yield*Q(e),[`annotations`,J(yield e.annotations)],[`items`,J(yield e.items)]],e)},AnnotationCollection:function*(e){return[[`id`,e.id],[`type`,`AnnotationCollection`],[`label`,e.label]]},Collection:function*(e,t,{isTopLevel:n}){if(n){let t=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(t=[`http://iiif.io/api/extension/navplace/context.json`,`http://iiif.io/api/presentation/3/context.json`]),[[`@context`,t],...q(e),...yield*Z(e),...yield*Q(e),[`items`,J(yield e.items)],[`navPlace`,e.navPlace]]}return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]]},Range:function*(e){let t=[];for(let n of e.items)n.type===`Range`?t.push(yield n):n&&n.type===`SpecificResource`?t.push(R(n)):t.push(n);return[...q(e),...yield*Z(e),...yield*Q(e),[`items`,t],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]}};function de(e,t){let n=Object.keys(t),r=e.map(([e])=>e);for(let a of n){if(a===i||a===o)continue;r.indexOf(a)===-1&&t[a]!==void 0&&e.push([a,t[a]])}return e}function $(e){if(!e.items||!Array.isArray(e.items))return!1;for(let t of e.items)if(t.navPlace)return!0;return!1}Object.defineProperty(exports,`EMPTY`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`HAS_PART`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`IS_EXTERNAL`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`PART_OF`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`UNSET`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`UNWRAP`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`WILDCARD`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`addFlagForExternalResource`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`compressSpecificResource`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`defaultEntities`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`emptyAgent`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`emptyAnnotation`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`emptyAnnotationPage`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`emptyCanvas`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`emptyCollection`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`emptyManifest`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`emptyRange`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`emptyService`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`frameResource`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`getDefaultEntities`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`isWildcard`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`languageString2to3`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`merge`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`mergeEntities`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`normalize`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`resolveIfExists`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`serialize`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`serializeConfigPresentation2`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`serializeConfigPresentation3`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`serializedFieldsToObject`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`toRef`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`traverseSpecificResource`,{enumerable:!0,get:function(){return P}}); |
| import{Traverse as e,isSpecificResource as t}from"./traverse-BDmGe7EO.js";import{convertPresentation2 as n}from"./upgrader-DoVcNsFK.js";function r(e,n){let i=n||`unknown`;if(!e)return;if(typeof e==`string`)return{id:e,type:i};if(t(e))return r(e.source,n);let a=i&&i!==`unknown`?i:e.type||e[`@type`],o=e.id||e[`@id`];if(a&&a.indexOf(`:`)!==-1&&(a=a.split(`:`).pop()),o&&a)return{id:o,type:a}}const i={},a=`iiif-parser:hasPart`,o=`iiif-parser:partOf`,s=`iiif-parser:isExternal`,c=`__$UNSET$__`,l=`__$UNWRAP$__`,u=[];Object.freeze(u),Object.freeze(i);function d(e){if(e===i||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function f(e,t){if(t&&t[`@explicit`]){let n={},r=Object.keys(t);for(let i of r){if(i===o||i===`@explicit`)continue;d(t[i])?n[i]=e[i]:n[i]=t[i]}return n}return e}function p(e,t,n){let i=r(t);if(!i)return[void 0,void 0];let s=e.requests[i.id],c=i.type||e.mapping[i.id];if(!c||s&&s.resourceUri&&(!e.entities[c]||!e.entities[c][s.resourceUri]))return[void 0,void 0];let l=e.entities[c][s?s.resourceUri:i.id];if(i.type&&!l)return p(e,{id:i.id},n);if(l&&l[a]){let e=l[a].find(e=>n?e[o]===n.id:e[o]===l.id),t=f(l,e);return[t,l]}return[l,l]}const ee={id:`https://iiif-parser/annotation`,type:`Annotation`,behavior:u,label:null,thumbnail:u,summary:null,requiredStatement:null,metadata:u,seeAlso:u,homepage:u,rendering:u,service:u,accessibility:u,audience:u,body:u,bodyValue:null,canonical:null,created:null,creator:u,generated:null,generator:u,modified:null,motivation:u,rights:null,stylesheet:null,target:u,timeMode:void 0,via:u,partOf:u},m={id:`https://iiif-parser/annotation-page`,type:`AnnotationPage`,behavior:u,label:null,thumbnail:u,summary:null,requiredStatement:null,metadata:u,rights:null,provider:u,items:u,seeAlso:u,homepage:u,rendering:u,service:u},h={id:`https://iiif-parser/empty-canvas`,type:`Canvas`,label:null,behavior:u,thumbnail:u,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:u,rights:null,navDate:null,provider:u,items:u,annotations:u,seeAlso:u,homepage:u,partOf:u,rendering:u,service:u,duration:0,height:0,width:0},g={id:`https://iiif-parser/empty-collection`,type:`Collection`,label:null,viewingDirection:`left-to-right`,behavior:u,thumbnail:u,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:u,rights:null,navDate:null,provider:u,items:u,annotations:u,seeAlso:u,homepage:u,partOf:u,rendering:u,service:u,services:u},_={id:`https://iiif-parser/empty-manifest`,type:`Manifest`,annotations:u,behavior:u,homepage:u,items:u,label:null,metadata:u,navDate:null,provider:u,partOf:u,accompanyingCanvas:null,placeholderCanvas:null,rendering:u,requiredStatement:null,rights:null,seeAlso:u,service:u,services:u,start:null,structures:u,summary:null,thumbnail:u,viewingDirection:`left-to-right`},v={id:`https://iiif-parser/empty-canvas`,type:`Range`,label:null,behavior:u,thumbnail:u,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:u,rights:null,navDate:null,provider:u,items:u,annotations:u,seeAlso:u,homepage:u,partOf:u,rendering:u,service:u,start:null,supplementary:null,viewingDirection:`left-to-right`},y={id:`https://iiif-parser/empty-agent`,type:`Agent`,label:{},logo:u,seeAlso:u,homepage:u},b={id:`https://iiif-parser/empty-service`,type:`UnknownService`};function x(e,t={}){if(Array.isArray(e))return x(e[0]);if(typeof e==`string`){let[n,r]=e.split(`#`);return r?{type:`SpecificResource`,source:{id:n,type:t.typeHint||`Unknown`},selector:{type:`FragmentSelector`,value:r}}:{type:`SpecificResource`,source:{id:n,type:t.typeMap&&t.typeMap[n]||t.typeHint||`Unknown`}}}if(e.type===`Choice`||e.type===`List`||e.type===`Composite`||e.type===`Independents`)return x(e.items[0]);if(!e.type&&`source`in e&&(e.type=`SpecificResource`),e.type===`SpecificResource`){e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:`Manifest`}]);let n=typeof e.source==`string`?e.source:e.source.id;if(n?.includes(`#`)){let r=x(n,t);r&&(e.selector=r.selector,e.source=r.source)}return e.selector?{type:`SpecificResource`,source:e.source,selector:e.selector}:{type:`SpecificResource`,source:e.source}}if(e.id){e.type===`Canvas`&&e.partOf&&typeof e.partOf==`string`&&(e.partOf=[{id:e.partOf,type:`Manifest`}]);let[t,n]=e.id.split(`#`);return n?{type:`SpecificResource`,source:{...e,id:t},selector:{type:`FragmentSelector`,value:n}}:{type:`SpecificResource`,source:{...e,id:t}}}return{type:`SpecificResource`,source:e}}const S={Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}};function C(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function w(e,t){if(typeof e==`string`)return{id:e,type:t};if(!e.id)throw Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function T(e,t){return(n,r)=>{let i=e[n]?e[n]:{};return(e,a)=>{let o=w(e,r||n);return o&&o.id&&n?(i[o.id]=i[o.id]?D(i[o.id],o,{parent:a.parent,isTopLevel:t.id===o.id}):D({id:o.id,type:o.type},o,{parent:a.parent,isTopLevel:t.id===o.id}),{id:o.id,type:n===`ContentResource`?n:o.type}):o}}}function E(e,t,n){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw Error(`Cannot merge array with non-array`);let n=[...e];for(let r of t){if(r[`@id`]&&!r.id&&(r.id=r[`@id`]),r[`@type`]&&!r.type&&(r.type=r[`@type`]),r==null)continue;if(Array.isArray(r))n.push(r);else if(typeof r==`object`&&r.id&&r.type){let e=n.findIndex(e=>e.id===r.id&&e.type===r.type);e>=0&&(n[e]=E(n[e],r))}else e.indexOf(r)===-1&&n.push(r)}return n}else if(typeof e==`object`){if(Array.isArray(t)||typeof t!=`object`)throw Error(`Cannot merge object with non-object`);let r={...e},s=[],c=[],l=Object.keys(e).filter(e=>e!==a&&e!==`id`&&e!==`type`),d={},f={};for(let[e,n]of Object.entries(t)){if(e===a||e===`id`||e===`type`)continue;let t=r[e];t===n?c.push(e):t===u||!t?(s.push(e),r[e]=n):(t&&n&&(d[e]=t,f[e]=n),r[e]=E(t,n),r[e]===d[e]&&(c.push(e),delete d[e]))}if(n&&(n.parent&&n.parent.id||n.isTopLevel)){let t=[],u={};if(n.parent?u[o]=n.parent.id:n.isTopLevel&&(u[o]=e.id),r[a]&&r[a].length){let e=!(r[a]||[]).find(e=>e[`@explicit`]),n=s.length>0||c.length!==l.length;if(e&&n)for(let e of r[a]){let n={...e},r=Object.keys(d);if(n){n[`@explicit`]=!0;for(let e of l)e!==a&&(n[e]=i);for(let e of r)n[e]=d[e]}t.push(n)}else t.push(...r[a]);if(n){let e=Object.keys(f);u[`@explicit`]=!0;for(let e of s)u[e]=i;for(let e of c)u[e]=i;for(let t of e)u[t]=f[t]}}u.id=r.id,u.type=r.type,t.push(u),r[a]=t}return r}else if(e)return e;return t}function D(e,t,n){if(typeof e==`string`)return e;if(t.id!==e.id||t.type!==e.type){if(t.type===`ImageService3`)return t;if(e.type===`ImageService3`)return e;throw Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return E({...e},t,n)}function O(e){return(t,n)=>r=>{let{id:i,type:a}=w(r,n||t);if(i===void 0)throw Error(`Found invalid entity without an ID.`);return t===`ContentResource`||t===`Service`?e[i]=t:e[i]=a,r}}function te(e){let t=Object.assign({},e);if(t[`@id`]&&(t.id=t[`@id`]),t[`@type`]&&(t.type=t[`@type`]),t.service){let e=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)e.push({id:n[`@id`]||n.id,type:n[`@type`]||n.type});t.service=e}return Object.assign({},b,t)}function ne(e){return t=>{e.Service=e.Service?e.Service:{};let n=t.id||t[`@id`],r=te(t);return r&&r.id&&(e.Service[r.id]?e.Service[n]=D(e.Service[n],r):e.Service[n]=r),t}}function re(e){let t=JSON.stringify(e),n=5381,r=t.length;for(;r;)n=n*33^t.charCodeAt(--r);let i=n>>>0,a=i.toString(16);return a.length%2?`0`+a:a}function k(e){return t=>typeof t==`string`?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${re(t)}`,type:e,...t}}function A(e){return t=>({...e,...t})}function j(e){return Array.isArray(e)?e:[e]}function M(e){return e.body&&=j(e.body),e.seeAlso&&=j(e.seeAlso),e.audience&&=j(e.audience),e.accessibility&&=j(e.accessibility),e.motivation&&=j(e.motivation),e}function N(e,{typeHint:n,partOfTypeHint:r}={}){if(typeof e==`string`&&(e={id:e,type:n||`unknown`}),t(e))return typeof e.source==`string`&&(e.source={id:e.source,type:n||`unknown`}),e.source.type===`Canvas`&&e.source.partOf&&typeof e.source.partOf==`string`&&(e.source.partOf=[{id:e.source.partOf,type:r||`Manifest`}]),e;let i;if((e.id||``).indexOf(`#`)!==-1){let[t,n]=(e.id||``).split(`#`);e.id=t,n&&(i={type:`FragmentSelector`,value:n})}return{type:`SpecificResource`,source:e,selector:i}}function P(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(e=>typeof e==`string`||e.type===`Canvas`?N(e):e)),t}function ie(e){let t=Object.assign({},e);return t.start?(t.start=N(t.start,{typeHint:`Canvas`}),t):e}function ae(e){let t=Object.assign({},e);return t.target?(t.target=x(t.target,{typeHint:`Canvas`}),t):e}function F(e){return e}function I(e){return e.items===void 0&&(e[s]=!0),e}function L(t){let r=n(t),i=C(),a={},o=T(i,r),s=O(a),c=new e({collection:[I,A(g),s(`Collection`),o(`Collection`)],manifest:[I,A(_),ie,s(`Manifest`),o(`Manifest`)],canvas:[A(h),s(`Canvas`),o(`Canvas`)],annotationPage:[I,k(`AnnotationPage`),A(m),s(`AnnotationPage`),o(`AnnotationPage`)],annotation:[k(`Annotation`),M,ae,s(`Annotation`),o(`Annotation`)],contentResource:[k(`ContentResource`),s(`ContentResource`),o(`ContentResource`)],range:[A(v),P,s(`Range`,`Canvas`),o(`Range`,`Canvas`)],agent:[A(y),s(`Agent`),o(`Agent`)],specificResource:[F],service:[ne(i)]}),l=c.traverseUnknown(r);return{entities:i,resource:l,mapping:a}}function R(e){let t={};for(let[n,r]of e){if(n===l&&r!==c)return r;r!==c&&r!=null&&(t[n]=r)}return t}function oe(e,t,n){if(!t.type||!t.id)throw Error(`Unknown entity`);if(!n[t.type])throw Error(`Serializer not found for ${t.type}`);function r(i,a,o=0){let s=n[i.type];if(!s)return c;if(o>20)throw Error(`Circular reference: `+i.id+` `+i.type);let[l,u]=p(e,i.type?i:i.id,a)||(i.id&&i.type?i:null);if(!l)return c;let d=s(l,e,{parent:a,isTopLevel:t.id===i.id,fullResource:u}),f=d.next();for(;!f.done;){let e=f.value,t=c;if(e)if(Array.isArray(e)){let n=[];for(let t of e)n.push(r(t,i,o+1));t=n}else t=r(e,i,o+1);f=d.next(t)}return f.value===c?c:R(f.value)}return r(t)}function z(e,{allowSourceString:t=!0,allowString:n=!1,allowedStringType:r}={}){let i=e=>{if(t&&e&&e.source&&typeof e.source!=`string`){let t=Object.keys(e.source);if(e.source.id&&e.source.type&&t.length===2)return{...e,source:e.source.id}}return e};if(e){if(e.source&&e.source.partOf)return i(e);let t=Object.keys(e);if(t.length===2&&e.type&&e.source||t.length===3&&e.type&&e.source&&t.indexOf(`selector`)!==-1&&!e.selector)return n&&(!r||r===e.source.type)?e.source.id:e.source.type===`ContentResource`?{type:`SpecificResource`,source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!=`string`&&e.selector.type===`FragmentSelector`){let t=`${e.source.id}#${e.selector.value}`;return n?t:{id:t,type:e.source.type}}}return i(e)}function B(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let n=t[0];if(!n)return``;let r=(e[n]||[]).join(``);return n===`@none`||n===`none`||n===`en`?r:{"@language":n,"@value":r}}return t.map(t=>({"@language":t,"@value":(e[t]||[]).join(``)}))}}function V(e){return Array.isArray(e)?e.map(e=>V(e)):typeof e==`string`?e:e.type&&e.type===`Canvas`?e.id:e}function H(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function U(e){if(e){if(typeof e==`string`)return{"@id":e};if(`@id`in e){let 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 W(e,t){return[[`@id`,e.id],[`@type`,t],[`format`,e.format],[`height`,e.height],[`width`,e.width],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`license`,e.license?e.license:void 0]]}function*G(e){let t=e.provider?yield e.provider[0]:void 0;return[[`label`,B(e.label)],[`metadata`,e.metadata&&e.metadata.length?e.metadata.map(e=>({label:B(e.label)||``,value:B(e.value)||``})):void 0],[`description`,B(e.summary)],[`thumbnail`,H(yield e.thumbnail)],[`navDate`,e.navDate],[`logo`,t?H(t.logo):void 0],[`homepage`,t?t.homepage:void 0],[`attribution`,e.requiredStatement?B(e.requiredStatement.value):void 0]]}function*K(e){let t=e.start&&e.start.type&&e.start.type===`SpecificResource`?z(e.start):e.start;return[[`seeAlso`,H(yield e.seeAlso)],[`service`,H((e.service||[]).map(U))],[`rendering`,H(yield e.rendering)],[`startCanvas`,t?t.id:void 0]]}function se(e){return e.type===`SpecificResource`}function ce(e){return e&&e.type===`FragmentSelector`}function le(e){if(e&&se(e)){let t=e.id,n=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return ce(n)&&(t+=`#`+n.value),t}return e?.id}const ue={Manifest:function*(e,t,{isTopLevel:n}){return[...n?[[`@context`,`http://iiif.io/api/presentation/2/context.json`]]:[],...W(e,`sc:Manifest`),...yield*G(e),...yield*K(e),[`sequences`,[{"@id":`${e.id}/sequence0`,"@type":`sc:Sequence`,canvases:yield e.items}]],[`structures`,yield e.structures]]},Canvas:function*(e){let t=yield e.items,n=t[0];return[...W(e,`sc:Canvas`),...yield*G(e),...yield*K(e),[`images`,n?[n.resources]:void 0],[`annotations`,e.annotations&&e.annotations.length?H(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...W(e,`sc:AnnotationList`),...yield*G(e),[`resources`,e.items&&e.items.length?H(yield e.items):void 0]]},Annotation:function*(e){return[[`@id`,e.id],[`@type`,`oa:Annotation`],[`motivation`,`sc:painting`],[`on`,V(e.target)],[`resource`,H(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case`Image`:return[...W(e,`dctypes:Image`),...yield*G(e),...yield*K(e)];case`Text`:case`Dataset`:default:return[...W(e,void 0),...yield*G(e)]}},AnnotationCollection:function*(e){return[[`@id`,e.id],[`@type`,`sc:Layer`],[`label`,B(e.label)]]},Collection:function*(e){return[...W(e,`sc:Collection`),...yield*G(e),...yield*K(e),[`members`,yield*e.items]]},Range:function*(e){let t=[],n=[];if(e.items)for(let r of e.items){let i=r.type===`SpecificResource`?r.source:r;if(i){let a=yield i;t.push({"@id":le(r),"@type":i.type,label:a?a.label:void 0,within:e.id}),i.type===`Canvas`&&n.push(i.id)}}return[...W(e,`sc:Range`),...yield*G(e),...yield*K(e),[`canvases`,n.length===t.length?n:void 0],[`members`,n.length===t.length?void 0:t]]}};function q(e){return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],[`type`,e.type],[`format`,e.format],[`profile`,e.profile],[`height`,e.height||void 0],[`width`,e.width||void 0],[`duration`,e.duration||void 0],[`viewingDirection`,e.viewingDirection===`left-to-right`?void 0:e.viewingDirection],[`behavior`,e.behavior&&e.behavior.length?e.behavior:void 0],[`timeMode`,e.timeMode],[`motivation`,Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[a,c]]}function J(e){if(e===c||!e||e.length===0)return;let t=e.filter(e=>e!==c);if(t.length!==0)return t}function Y(e){if(e&&e.type&&e.type===`ImageService2`){let{id:t,type:n,profile:r,...i}=e,a=typeof r==`string`?r:Array.isArray(r)?r.find(e=>typeof e==`string`):``;return{"@id":t,"@type":n,profile:a?a.startsWith(`http`)?a:`http://iiif.io/api/image/2/${a}.json`:`http://iiif.io/api/image/2/level0.json`,...i}}return e}function X(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Y)}function*Z(e){return[[`label`,e.label],[`metadata`,J(e.metadata)],[`summary`,e.summary],[`requiredStatement`,e.requiredStatement],[`rights`,Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],[`navDate`,e.navDate],[`language`,e.language],[`thumbnail`,J(yield e.thumbnail)],[`placeholderCanvas`,yield e.placeholderCanvas],[`accompanyingCanvas`,yield e.accompanyingCanvas],[`provider`,J(yield e.provider)]]}function*Q(e,t){let n=[];for(let r of e.partOf||[]){if(r.type===`Manifest`&&t.type===`Manifest`)continue;n.push(yield r)}return[[`seeAlso`,J(yield e.seeAlso)],[`service`,J(X(e.service))],[`services`,J(X(e.services))],[`rendering`,J(yield e.rendering)],[`supplementary`,J(yield e.supplementary)],[`homepage`,J(yield e.homepage)],[`logo`,J(yield e.logo)],[`partOf`,J(n)],[`start`,e.start?z(e.start):e.start]]}const de={Manifest:function*(e,t,{isTopLevel:n}){if(!n)return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]];let r=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(r=[`http://iiif.io/api/presentation/3/context.json`,`http://iiif.io/api/extension/navplace/context.json`]),[[`@context`,e[`@context`]?e[`@context`]:r],...q(e),...yield*Z(e),...yield*Q(e),[`items`,yield e.items],[`structures`,J(yield e.structures)],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Canvas:function*(e,t,{parent:n}){return n&&n.type!==`Manifest`&&n.type!==`Canvas`?[[`id`,e.id]]:[...q(e),...yield*Z(e),...yield*Q(e,n),[`items`,yield e.items],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]},Agent:function*(e){return[[`id`,e.id],[`type`,`Agent`],[`label`,e.label],...yield*Q(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?J(t):t]).filter(([e,t])=>e!==`items`&&e!==`id`&&e!==a&&e!==o&&e!==s),n=yield e.items;return[[`id`,e.id?.startsWith(`vault://`)?void 0:e.id],...t,...yield*Q(e),[`items`,n.length||e[s]===!1?n:c]]},Service:function*(e){return[[l,Y(e)]]},Annotation:function*(e){let n=Object.entries(e).map(([e,t])=>e===`motivation`?[e,Array.isArray(t)?t[0]:t]:e===`target`?[e,z(t,{allowString:!0,allowSourceString:!0,allowedStringType:`Canvas`})]:[e,Array.isArray(t)?J(t):t]).filter(([e])=>e!==`body`&&e!==a&&e!==s),r;if(Array.isArray(e.body)){let n=[];for(let r of e.body)if(r&&t(r)){let e={...r};r.source.type===`Canvas`?e.source=r.source:e.source=yield r.source,n.push(z(e,{allowSourceString:!0}))}else n.push(yield r);r=n}else e.body&&t(e.body)?(r={...e.body},r.source=yield e.body.source):r=yield e.body;return[...n,...yield*Z(e),...yield*Q(e),[`body`,r.length===1?r[0]:r]]},ContentResource:function*(e){return fe([...q(e),...yield*Z(e),...yield*Q(e),[`annotations`,J(yield e.annotations)],[`items`,J(yield e.items)]],e)},AnnotationCollection:function*(e){return[[`id`,e.id],[`type`,`AnnotationCollection`],[`label`,e.label]]},Collection:function*(e,t,{isTopLevel:n}){if(n){let t=`http://iiif.io/api/presentation/3/context.json`;return(e.navPlace||$(e))&&(t=[`http://iiif.io/api/extension/navplace/context.json`,`http://iiif.io/api/presentation/3/context.json`]),[[`@context`,t],...q(e),...yield*Z(e),...yield*Q(e),[`items`,J(yield e.items)],[`navPlace`,e.navPlace]]}return[...q(e),...yield*Z(e),[`navPlace`,e.navPlace]]},Range:function*(e){let t=[];for(let n of e.items)n.type===`Range`?t.push(yield n):n&&n.type===`SpecificResource`?t.push(z(n)):t.push(n);return[...q(e),...yield*Z(e),...yield*Q(e),[`items`,t],[`annotations`,J(yield e.annotations)],[`navPlace`,e.navPlace]]}};function fe(e,t){let n=Object.keys(t),r=e.map(([e])=>e);for(let i of n){if(i===a||i===s)continue;r.indexOf(i)===-1&&t[i]!==void 0&&e.push([i,t[i]])}return e}function $(e){if(!e.items||!Array.isArray(e.items))return!1;for(let t of e.items)if(t.navPlace)return!0;return!1}export{u as EMPTY,a as HAS_PART,s as IS_EXTERNAL,o as PART_OF,c as UNSET,l as UNWRAP,i as WILDCARD,I as addFlagForExternalResource,z as compressSpecificResource,S as defaultEntities,y as emptyAgent,ee as emptyAnnotation,m as emptyAnnotationPage,h as emptyCanvas,g as emptyCollection,_ as emptyManifest,v as emptyRange,b as emptyService,f as frameResource,C as getDefaultEntities,d as isWildcard,B as languageString2to3,E as merge,D as mergeEntities,L as normalize,p as resolveIfExists,oe as serialize,ue as serializeConfigPresentation2,de as serializeConfigPresentation3,R as serializedFieldsToObject,r as toRef,F as traverseSpecificResource}; | ||
| //# sourceMappingURL=presentation-3-ChKeBggX.js.map |
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
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
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
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
663222
0.01%0
-100%