@etu-wiki/sharp-iiif-shims 0.0.48 → 0.0.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var ht=Object.create;var $=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var gt=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ct=(t,i)=>()=>(i||t((i={exports:{}}).exports,i),i.exports),ut=(t,i)=>{for(var e in i)$(t,e,{get:i[e],enumerable:!0})},Q=(t,i,e,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of pt(i))!mt.call(t,s)&&s!==e&&$(t,s,{get:()=>i[s],enumerable:!(r=lt(i,s))||r.enumerable});return t};var U=(t,i,e)=>(e=t!=null?ht(gt(t)):{},Q(i||!t||!t.__esModule?$(e,"default",{value:t,enumerable:!0}):e,t)),dt=t=>Q($({},"__esModule",{value:!0}),t);var K=ct((Bt,N)=>{"use strict";var L=Object.defineProperty,ft=Object.getOwnPropertyDescriptor,yt=Object.getOwnPropertyNames,zt=Object.prototype.hasOwnProperty,wt=(t,i)=>{for(var e in i)L(t,e,{get:i[e],enumerable:!0})},vt=(t,i,e,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of yt(i))!zt.call(t,s)&&s!==e&&L(t,s,{get:()=>i[s],enumerable:!(r=ft(i,s))||r.enumerable});return t},$t=t=>vt(L({},"__esModule",{value:!0}),t),G={};wt(G,{default:()=>J});N.exports=$t(G);var a="[1-9][0-9]*",Y="[0-9]*",c="(?=.*[1-9])\\d+(\\.\\d+)?",F="\\d+(\\.\\d+)?",x=(t=>(t.jpg="image/jpeg",t.jpeg="image/jpeg",t.png="image/png",t.webp="image/webp",t.tif="image/tiff",t.tiff="image/tiff",t.gif="image/gif",t.jp2="image/jp2",t.pdf="application/pdf",t))(x||{}),y={version:["1.0","1.1","2.0","2.1","3.0"],level:["0","1","2"],region:["full","square",`${Y},${Y},${a},${a}`,`pct:${F},${F},${c},${c}`],rotation:`!?${F}`,quality:["color","gray","bitonal","default","native","grey"],format:["jpg","png","webp","tif","gif","jp2","pdf"],size:[""]},bt={1:["full",`${a},`,`,${a}`,`pct:${c}`,`${a},${a}`,`!${a},${a}`],1.1:["full",`${a},`,`,${a}`,`pct:${c}`,`${a},${a}`,`!${a},${a}`],2:["full",`${a},`,`,${a}`,`pct:${c}`,`${a},${a}`,`!${a},${a}`],2.1:["full","max",`${a},`,`,${a}`,`pct:${c}`,`${a},${a}`,`!${a},${a}`],3:["max",`${a},`,`,${a}`,`pct:${c}`,`${a},${a}`,`!${a},${a}`,"\\^max",`\\^${a},`,`\\^,${a}`,`\\^pct:${c}`,`\\^${a},${a}`,`\\^!${a},${a}`]},b=/^pct:([\d,]+)/,J=class{constructor(t,i,e,r,s,o,n){this.version=t,this.level=i,this.maxArea=e,this.maxWidth=r,this.maxHeight=s,this.tileWidth=o,this.tileHeight=n,this.validate("version",t),this.validate("level",i),y.size=bt[Number(t)]}validator(t){var i=y[t];return i instanceof Array&&(i=i.join("|")),new RegExp("^("+i+")$")}validate(t,i){if(!this.validator(t).test(i))throw Error(`invalid IIIF url ${t}: ${i}`);return!0}normalizeRegionParams(t,i){if(this.validate("region",t),t==="full")return null;if(t==="square")return this._regionSquare(i);if(b.test(t))return this._regionPct(t.match(b)[1],i);{let e=t.split(",").map(r=>Number(r));return this._regionXYWH(e,i)}}_regionSquare(t){let i,e,r=t.width,s=t.height;if(r!==s){let o=Math.min(r,s),n=Math.abs(Math.floor((r-s)/2));return r>s?(i=n,e=0):(i=0,e=n),this._regionXYWH([i,e,o,o],t)}return null}_regionPct(t,i){let e=t.split(",").map((r,s)=>{let o=Number(r)/100;return s===0||s===2?Math.round(i.width*o):s===1||s===3?Math.round(i.height*o):null});return this._regionXYWH(e,i)}_regionXYWH(t,i){let e=i.width,r=i.height,[s,o,n,h]=t;return s+n>e&&(n=e-s),o+h>r&&(h=r-o),{x:s,y:o,w:n,h}}normalizeSizeParams(t,i){let e=t,r=i.width,s=i.height;this.validate("size",e);let o=!1;e.charAt(0)==="^"&&(o=!0,e=e.substring(1));let n=null;if(e==="full"||(e==="max"?n=this._sizeMaxScale(i):b.test(e)?n=this._sizePctScale(e.match(b)[1]):e.charAt(0)==="!"&&(e=e.substring(1),n=this._sizeBangScale(e,o,i)),n===1))return null;if(n){let h=Math.round(r*n),l=Math.round(s*n);return this._sizeWH(`${h},${l}`,o,i)}else return this._sizeWH(e,o,i)}_sizeBangScale(t,i,e){let r=e.width,s=e.height,[o,n]=t.split(",").map(l=>l===""?null:Number(l)),h=Math.min(o/r,n/s);if(o>r&&n>s&&!i)throw Error("should not upscale without ^");return h}_sizeMaxScale(t){let i=t.width,e=t.height,r=1;return this.maxArea&&this.maxArea<i*e&&(r=Math.sqrt(this.maxArea/(i*e))),this.maxWidth&&this.maxWidth<i&&(r=Math.min(r,this.maxWidth/i)),this.maxHeight&&this.maxHeight<e&&(r=Math.min(r,this.maxHeight/e)),r}_sizePctScale(t){return Number(t)/100}_sizeWH(t,i,e){let r=e.width,s=e.height,[o,n]=t.split(",").map(h=>h===""?null:Number(h));if(o?n||(n=Math.round(s*o/r)):o=Math.round(r*n/s),(o>r||n>s)&&!i)throw Error("should not upscale without ^");return{width:o,height:n}}normalizeRotationParams(t){this.validate("rotation",t);let i=!1;if(t==="0")return null;t[0]==="!"&&(i=!0);let e=Number(t.replace(/^!/,""));return{isMirror:i,degree:e}}normalizeQualityParams(t){return this.validate("quality",t),t==="native"||t==="default"?null:t}normalizeFormatParams(t,i){if((this.version==="1.0"||this.version==="1.1"||this.version==="2.0"||this.version==="2.1")&&!t)return"png";this.validate("format",t);let e=x[t],r=x[i];return e===r?null:t}getContentType(t){return x[t]}generateImageInfoTemp(t,i){let e={},r={};e.info=r;let s=this.version;return s==="1.0"?(r.identifier=t,r.width=i.width,r.height=i.height,r.scale_factors=this.factors(i),r.tile_width=this.tileWidth,r.tile_height=this.tileHeight,r.formats=y.format,r.qualities=y.quality,r.profile=this.uriPattern("compliance"),e.contentType="application/json",e.body=JSON.stringify(r)):(s==="1.1"?(r["@context"]=this.uriPattern("context"),r["@id"]=t,r.width=i.width,r.height=i.height,r.scale_factors=this.factors(i),r.tile_width=this.tileWidth,r.tile_height=this.tileHeight,r.formats=y.format,r.qualities=y.quality,r.profile=this.uriPattern("compliance")):s==="2.0"||s==="2.1"?(r["@context"]=this.uriPattern("context"),r["@id"]=t,r.protocol="http://iiif.io/api/image",r.width=i.width,r.height=i.height,this.level==="0"?r.sizes=this.sizes(i):r.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],r.profile=[this.uriPattern("compliance")]):s==="3.0"&&(r["@context"]=[this.uriPattern("context")],r.id=t,r.type="ImageService3",r.protocol="http://iiif.io/api/image",r.width=i.width,r.height=i.height,this.level==="0"?r.sizes=this.sizes(i):r.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],r.profile=this.uriPattern("compliance")),e.contentType="application/ld+json"),e}factors(t){let i=1,e=[1],r=t.width,s=t.height;for(;!(this.tileWidth*i>r&&this.tileHeight*i>s);)i*=2,e.push(i);return e}uriPattern(t){let i="",e="";return this.version==="1.0"?i=`http://library.stanford.edu/iiif/image-api/compliance.html#level${this.level}`:this.version==="1.1"?(i=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level${this.level}`,e="http://library.stanford.edu/iiif/image-api/1.1/context.json"):this.version==="2.0"||this.version==="2.1"?(i=`http://iiif.io/api/image/2/level${this.level}.json`,e="http://iiif.io/api/image/2/context.json"):this.version==="3.0"&&(i=`level${this.level}`,e="http://iiif.io/api/image/3/context.json"),t==="compliance"?i:t==="context"?e:""}sizes(t){return[{width:t.width,height:t.height}]}};N.exports=J});var Wt={};ut(Wt,{default:()=>w});module.exports=dt(Wt);var z=U(require("sharp")),tt=U(K()),xt=1e8,V=1e4,Z=1e4,Pt=512,It=512,Ht={2:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByWhListed","sizeByForcedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"],2.1:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByConfinedWh","sizeByDistortedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeByWhListed","sizeByForcedWh"],3:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeUpscaling"]},w=class extends tt.default{constructor(e,r,s=xt,o=V,n=Z,h=Pt,l=It){super(e,r,s,o,n,h,l)}regionImpl(e){e&&(this.pipeline=this.pipeline.extract({left:e.x,top:e.y,width:e.w,height:e.h}))}sizeImpl(e){e&&(this.pipeline=this.pipeline.resize({...e,fit:"fill"}))}rotationImpl(e){e&&(e.isMirror&&(this.pipeline=this.pipeline.flop()),this.pipeline=this.pipeline.rotate(e.degree))}qualityImpl(e){e&&(e==="color"?this.pipeline=this.pipeline.toColorspace("srgb"):e==="gray"||e==="grey"?this.pipeline=this.pipeline.grayscale():e==="bitonal"&&(this.pipeline=this.pipeline.threshold()))}formatImpl(e){e&&(this.pipeline=this.pipeline.toFormat(e))}iiifTransform(e,r){let s={width:r.width,height:r.height},o=(0,z.default)(),n=e.split("/"),h=n.pop(),l=h.split(".")[0],P=h.split(".")[1],I=n.pop(),H=n.pop(),W=n.pop();this.pipeline=o;let p=super.normalizeRegionParams(W,s);this.regionImpl(p);let g=super.normalizeSizeParams(H,{width:p?p.w:s.width,height:p?p.h:s.height});this.sizeImpl(g);let d=super.normalizeRotationParams(I);this.rotationImpl(d);let m=super.normalizeQualityParams(l);this.qualityImpl(m);let u=super.normalizeFormatParams(P,r.format);return this.formatImpl(u),p||g||d||m||u?this.pipeline:null}async generateIiifImage(e,r,s=256){let o=(0,z.default)(r,{limitInputPixels:!1,sequentialRead:!0}),n=e.split("/"),h=n.pop(),l=h.split(".")[0],P=h.split(".")[1],I=n.pop(),H=n.pop(),W=n.pop(),p=await o.metadata(),g={width:p.width,height:p.height},d={};this.pipeline=o;let m=super.normalizeRegionParams(W,g);this.regionImpl(m);let u=super.normalizeSizeParams(H,{width:m?m.w:g.width,height:m?m.h:g.height});this.sizeImpl(u);let{x:it,y:et,w:M,h:B}=m||{x:0,y:0,w:g.width,h:g.height},{width:_,height:j}=u||{width:g.width,height:g.height};if(M*B>_*j*s&&_<V&&j<Z&&p.pages&&p.pages>1){let f=Math.max(_/M,j/B),[q,R,S,T]=[Math.round(it*f),Math.round(et*f),Math.round(M*f),Math.round(B*f)],[E,D]=[Math.round(g.width*f),Math.round(g.height*f)],A=p.pages-1,k=await(0,z.default)(r,{limitInputPixels:!1,page:A,sequentialRead:!0}).metadata(),X=k.width,C=k.height;for(;C<D||X<E;)C*=2,X*=2,A--;let nt={width:E,height:D,fastShrinkOnLoad:!1},at=await(0,z.default)(r,{limitInputPixels:!1,page:A,sequentialRead:!0}).resize(nt).toBuffer();this.pipeline=(0,z.default)(at);let v=await this.pipeline.metadata();R+T>v.height&&(T=v.height-R),q+S>v.width&&(S=v.width-q);let ot={x:q,y:R,w:S,h:T};this.regionImpl(ot),this.sizeImpl(u)}let rt=super.normalizeRotationParams(I);this.rotationImpl(rt);let st=super.normalizeQualityParams(l);this.qualityImpl(st);let O=super.normalizeFormatParams(P,p.format);return this.formatImpl(O),d.body=this.pipeline,d.contentType=super.getContentType(O),d}generateImageInfo(e,r){let s=this.version,o=this.level,n=super.generateImageInfoTemp(e,r),h=n.info;if((s==="2.0"||s==="2.1")&&(h.profile=[super.uriPattern("compliance")],o==="2")){let l={};l.formats=["jpg","png","webp","tif","jp2","pdf"],l.qualities=["color","gray","bitonal","default","native","grey"],l.supports=Ht[Number(s)],h.profile.push(l)}return s==="3.0"&&(h.extraFormats=["webp"],h.preferredFormats=["webp"]),n}};module.exports=w;
|
|
1
|
+
"use strict";var ht=Object.create;var M=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var gt=Object.getPrototypeOf,ct=Object.prototype.hasOwnProperty;var mt=(t,i)=>()=>(i||t((i={exports:{}}).exports,i),i.exports),ut=(t,i)=>{for(var e in i)M(t,e,{get:i[e],enumerable:!0})},J=(t,i,e,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of pt(i))!ct.call(t,s)&&s!==e&&M(t,s,{get:()=>i[s],enumerable:!(r=lt(i,s))||r.enumerable});return t};var K=(t,i,e)=>(e=t!=null?ht(gt(t)):{},J(i||!t||!t.__esModule?M(e,"default",{value:t,enumerable:!0}):e,t)),dt=t=>J(M({},"__esModule",{value:!0}),t);var it=mt((Bt,E)=>{"use strict";var O=Object.defineProperty,ft=Object.getOwnPropertyDescriptor,yt=Object.getOwnPropertyNames,zt=Object.prototype.hasOwnProperty,wt=(t,i)=>{for(var e in i)O(t,e,{get:i[e],enumerable:!0})},vt=(t,i,e,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of yt(i))!zt.call(t,s)&&s!==e&&O(t,s,{get:()=>i[s],enumerable:!(r=ft(i,s))||r.enumerable});return t},$t=t=>vt(O({},"__esModule",{value:!0}),t),Z={};wt(Z,{default:()=>tt});E.exports=$t(Z);var a="[1-9][0-9]*",V="[0-9]*",u="(?=.*[1-9])\\d+(\\.\\d+)?",N="\\d+(\\.\\d+)?",_=(t=>(t.jpg="image/jpeg",t.jpeg="image/jpeg",t.png="image/png",t.webp="image/webp",t.tif="image/tiff",t.tiff="image/tiff",t.gif="image/gif",t.jp2="image/jp2",t.pdf="application/pdf",t))(_||{}),z={version:["1.0","1.1","2.0","2.1","3.0"],level:["0","1","2"],region:["full","square",`${V},${V},${a},${a}`,`pct:${N},${N},${u},${u}`],rotation:`!?${N}`,quality:["color","gray","bitonal","default","native","grey"],format:["jpg","png","webp","tif","gif","jp2","pdf"],size:[""]},bt={1:["full",`${a},`,`,${a}`,`pct:${u}`,`${a},${a}`,`!${a},${a}`],1.1:["full",`${a},`,`,${a}`,`pct:${u}`,`${a},${a}`,`!${a},${a}`],2:["full",`${a},`,`,${a}`,`pct:${u}`,`${a},${a}`,`!${a},${a}`],2.1:["full","max",`${a},`,`,${a}`,`pct:${u}`,`${a},${a}`,`!${a},${a}`],3:["max",`${a},`,`,${a}`,`pct:${u}`,`${a},${a}`,`!${a},${a}`,"\\^max",`\\^${a},`,`\\^,${a}`,`\\^pct:${u}`,`\\^${a},${a}`,`\\^!${a},${a}`]},B=/^pct:([\d,]+)/,tt=class{constructor(t,i,e,r,s,o,n){this.version=t,this.level=i,this.maxArea=e,this.maxWidth=r,this.maxHeight=s,this.tileWidth=o,this.tileHeight=n,this.validate("version",t),this.validate("level",i),z.size=bt[Number(t)]}validator(t){var i=z[t];return i instanceof Array&&(i=i.join("|")),new RegExp("^("+i+")$")}validate(t,i){if(!this.validator(t).test(i))throw Error(`invalid IIIF url ${t}: ${i}`);return!0}normalizeRegionParams(t,i){if(this.validate("region",t),t==="full")return null;if(t==="square")return this._regionSquare(i);if(B.test(t))return this._regionPct(t.match(B)[1],i);{let e=t.split(",").map(r=>Number(r));return this._regionXYWH(e,i)}}_regionSquare(t){let i,e,r=t.width,s=t.height;if(r!==s){let o=Math.min(r,s),n=Math.abs(Math.floor((r-s)/2));return r>s?(i=n,e=0):(i=0,e=n),this._regionXYWH([i,e,o,o],t)}return null}_regionPct(t,i){let e=t.split(",").map((r,s)=>{let o=Number(r)/100;return s===0||s===2?Math.round(i.width*o):s===1||s===3?Math.round(i.height*o):null});return this._regionXYWH(e,i)}_regionXYWH(t,i){let e=i.width,r=i.height,[s,o,n,h]=t;return s+n>e&&(n=e-s),o+h>r&&(h=r-o),{x:s,y:o,w:n,h}}normalizeSizeParams(t,i){let e=t,r=i.width,s=i.height;this.validate("size",e);let o=!1;e.charAt(0)==="^"&&(o=!0,e=e.substring(1));let n=null;if(e==="full"||(e==="max"?n=this._sizeMaxScale(i):B.test(e)?n=this._sizePctScale(e.match(B)[1]):e.charAt(0)==="!"&&(e=e.substring(1),n=this._sizeBangScale(e,o,i)),n===1))return null;if(n){let h=Math.round(r*n),l=Math.round(s*n);return this._sizeWH(`${h},${l}`,o,i)}else return this._sizeWH(e,o,i)}_sizeBangScale(t,i,e){let r=e.width,s=e.height,[o,n]=t.split(",").map(l=>l===""?null:Number(l)),h=Math.min(o/r,n/s);if(o>r&&n>s&&!i)throw Error("should not upscale without ^");return h}_sizeMaxScale(t){let i=t.width,e=t.height,r=1;return this.maxArea&&this.maxArea<i*e&&(r=Math.sqrt(this.maxArea/(i*e))),this.maxWidth&&this.maxWidth<i&&(r=Math.min(r,this.maxWidth/i)),this.maxHeight&&this.maxHeight<e&&(r=Math.min(r,this.maxHeight/e)),r}_sizePctScale(t){return Number(t)/100}_sizeWH(t,i,e){let r=e.width,s=e.height,[o,n]=t.split(",").map(h=>h===""?null:Number(h));if(o?n||(n=Math.round(s*o/r)):o=Math.round(r*n/s),(o>r||n>s)&&!i)throw Error("should not upscale without ^");return{width:o,height:n}}normalizeRotationParams(t){this.validate("rotation",t);let i=!1;if(t==="0")return null;t[0]==="!"&&(i=!0);let e=Number(t.replace(/^!/,""));return{isMirror:i,degree:e}}normalizeQualityParams(t){return this.validate("quality",t),t==="native"||t==="default"?null:t}normalizeFormatParams(t,i){if((this.version==="1.0"||this.version==="1.1"||this.version==="2.0"||this.version==="2.1")&&!t)return"png";this.validate("format",t);let e=_[t],r=_[i];return e===r?null:t}getContentType(t){return _[t]}generateImageInfoTemp(t,i){let e={},r={};e.info=r;let s=this.version;return s==="1.0"?(r.identifier=t,r.width=i.width,r.height=i.height,r.scale_factors=this.factors(i),r.tile_width=this.tileWidth,r.tile_height=this.tileHeight,r.formats=z.format,r.qualities=z.quality,r.profile=this.uriPattern("compliance"),e.contentType="application/json",e.body=JSON.stringify(r)):(s==="1.1"?(r["@context"]=this.uriPattern("context"),r["@id"]=t,r.width=i.width,r.height=i.height,r.scale_factors=this.factors(i),r.tile_width=this.tileWidth,r.tile_height=this.tileHeight,r.formats=z.format,r.qualities=z.quality,r.profile=this.uriPattern("compliance")):s==="2.0"||s==="2.1"?(r["@context"]=this.uriPattern("context"),r["@id"]=t,r.protocol="http://iiif.io/api/image",r.width=i.width,r.height=i.height,this.level==="0"?r.sizes=this.sizes(i):r.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],r.profile=[this.uriPattern("compliance")]):s==="3.0"&&(r["@context"]=[this.uriPattern("context")],r.id=t,r.type="ImageService3",r.protocol="http://iiif.io/api/image",r.width=i.width,r.height=i.height,this.level==="0"?r.sizes=this.sizes(i):r.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],r.profile=this.uriPattern("compliance")),e.contentType="application/ld+json"),e}factors(t){let i=1,e=[1],r=t.width,s=t.height;for(;!(this.tileWidth*i>r&&this.tileHeight*i>s);)i*=2,e.push(i);return e}uriPattern(t){let i="",e="";return this.version==="1.0"?i=`http://library.stanford.edu/iiif/image-api/compliance.html#level${this.level}`:this.version==="1.1"?(i=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level${this.level}`,e="http://library.stanford.edu/iiif/image-api/1.1/context.json"):this.version==="2.0"||this.version==="2.1"?(i=`http://iiif.io/api/image/2/level${this.level}.json`,e="http://iiif.io/api/image/2/context.json"):this.version==="3.0"&&(i=`level${this.level}`,e="http://iiif.io/api/image/3/context.json"),t==="compliance"?i:t==="context"?e:""}sizes(t){return[{width:t.width,height:t.height}]}};E.exports=tt});var Wt={};ut(Wt,{default:()=>b});module.exports=dt(Wt);var w=K(require("sharp")),st=K(it()),xt=1e8,et=1e4,rt=1e4,Pt=512,It=512,Ht={2:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByWhListed","sizeByForcedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"],2.1:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByConfinedWh","sizeByDistortedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeByWhListed","sizeByForcedWh"],3:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeUpscaling"]},b=class extends st.default{constructor(e,r,s=xt,o=et,n=rt,h=Pt,l=It){super(e,r,s,o,n,h,l)}regionImpl(e){e&&(this.pipeline=this.pipeline.extract({left:e.x,top:e.y,width:e.w,height:e.h}))}sizeImpl(e){e&&(this.pipeline=this.pipeline.resize({...e,fit:"fill"}))}rotationImpl(e){e&&(e.isMirror&&(this.pipeline=this.pipeline.flop()),this.pipeline=this.pipeline.rotate(e.degree))}qualityImpl(e){e&&(e==="color"?this.pipeline=this.pipeline.toColorspace("srgb"):e==="gray"||e==="grey"?this.pipeline=this.pipeline.grayscale():e==="bitonal"&&(this.pipeline=this.pipeline.threshold()))}formatImpl(e){e&&(this.pipeline=this.pipeline.toFormat(e))}iiifTransform(e,r){let s={width:r.width,height:r.height},o=(0,w.default)(),n=e.split("/"),h=n.pop(),l=h.split(".")[0],j=h.split(".")[1],q=n.pop(),R=n.pop(),S=n.pop();this.pipeline=o;let p=super.normalizeRegionParams(S,s);this.regionImpl(p);let g=super.normalizeSizeParams(R,{width:p?p.w:s.width,height:p?p.h:s.height});this.sizeImpl(g);let f=super.normalizeRotationParams(q);this.rotationImpl(f);let c=super.normalizeQualityParams(l);this.qualityImpl(c);let m=super.normalizeFormatParams(j,r.format);return this.formatImpl(m),p||g||f||c||m?this.pipeline:null}async generateIiifImage(e,r,s=256){let o=(0,w.default)(r,{limitInputPixels:!1,sequentialRead:!0}),n=e.split("/"),h=n.pop(),l=h.split(".")[0],j=h.split(".")[1],q=n.pop(),R=n.pop(),S=n.pop(),p=await o.metadata(),g={width:p.width,height:p.height},f={};this.pipeline=o;let c=super.normalizeRegionParams(S,g);this.regionImpl(c);let m=super.normalizeSizeParams(R,{width:c?c.w:g.width,height:c?c.h:g.height});this.sizeImpl(m);let{x:D,y:k,w:x,h:P}=c||{x:0,y:0,w:g.width,h:g.height},{width:T,height:A}=m||{width:g.width,height:g.height};if(x*P>T*A*s&&T<et&&A<rt&&p.pages&&p.pages>1){console.log("thumbnail"),console.log(D,k,x,P);let y=Math.max(T/x,A/P),[I,H,v,$]=[Math.round(D*y),Math.round(k*y),Math.round(x*y),Math.round(P*y)],[C,Q]=[Math.round(g.width*y),Math.round(g.height*y)];console.log(I,H,v,$),console.log(p.pages);let W=p.pages-1,F=await(0,w.default)(r,{limitInputPixels:!1,page:W,sequentialRead:!0}).metadata();console.log(F);let U=F.width,Y=F.height;for(;Y<Q||U<C;)Y*=2,U*=2,W--;console.log("selectedPage: "+W);let L={width:C,height:Q,fastShrinkOnLoad:!1},ot=await(0,w.default)(r,{limitInputPixels:!1,page:W+1,sequentialRead:!0}).resize(L).toBuffer();this.pipeline=(0,w.default)(ot);let d=await this.pipeline.metadata();console.log(d),H+$>d.height&&($=d.height-H,console.log("adjested sh: "+$)),I+v>d.width&&(v=d.width-I,console.log("adjusted sw: "+v));let G={x:I,y:H,w:v,h:$};this.regionImpl(G),this.sizeImpl(m),console.log(d.width,d.height,L.width,L.height,G,m)}let nt=super.normalizeRotationParams(q);this.rotationImpl(nt);let at=super.normalizeQualityParams(l);this.qualityImpl(at);let X=super.normalizeFormatParams(j,p.format);return this.formatImpl(X),f.body=this.pipeline,f.contentType=super.getContentType(X),f}generateImageInfo(e,r){let s=this.version,o=this.level,n=super.generateImageInfoTemp(e,r),h=n.info;if((s==="2.0"||s==="2.1")&&(h.profile=[super.uriPattern("compliance")],o==="2")){let l={};l.formats=["jpg","png","webp","tif","jp2","pdf"],l.qualities=["color","gray","bitonal","default","native","grey"],l.supports=Ht[Number(s)],h.profile.push(l)}return s==="3.0"&&(h.extraFormats=["webp"],h.preferredFormats=["webp"]),n}};module.exports=b;
|