@etu-wiki/sharp-iiif-shims 0.0.78 → 0.0.79

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var lt=Object.create;var I=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var ct=Object.getOwnPropertyNames;var pt=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ut=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports),dt=(e,i)=>{for(var r in i)I(e,r,{get:i[r],enumerable:!0})},J=(e,i,r,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of ct(i))!mt.call(e,s)&&s!==r&&I(e,s,{get:()=>i[s],enumerable:!(t=gt(i,s))||t.enumerable});return e};var Q=(e,i,r)=>(r=e!=null?lt(pt(e)):{},J(i||!e||!e.__esModule?I(r,"default",{value:e,enumerable:!0}):r,e)),ft=e=>J(I({},"__esModule",{value:!0}),e);var tt=ut((_t,D)=>{"use strict";var O=Object.defineProperty,yt=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyNames,zt=Object.prototype.hasOwnProperty,vt=(e,i)=>{for(var r in i)O(e,r,{get:i[r],enumerable:!0})},$t=(e,i,r,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of wt(i))!zt.call(e,s)&&s!==r&&O(e,s,{get:()=>i[s],enumerable:!(t=yt(i,s))||t.enumerable});return e},bt=e=>$t(O({},"__esModule",{value:!0}),e),V={};vt(V,{default:()=>Z});D.exports=bt(V);var n="[1-9][0-9]*",K="[0-9]*",f="(?=.*[1-9])\\d+(\\.\\d+)?",N="\\d+(\\.\\d+)?",M=(e=>(e.jpg="image/jpeg",e.jpeg="image/jpeg",e.png="image/png",e.webp="image/webp",e.tif="image/tiff",e.tiff="image/tiff",e.gif="image/gif",e.jp2="image/jp2",e.pdf="application/pdf",e))(M||{}),v={version:["1.0","1.1","2.0","2.1","3.0"],level:["0","1","2"],region:["full","square",`${K},${K},${n},${n}`,`pct:${N},${N},${f},${f}`],rotation:`!?${N}`,quality:["color","gray","bitonal","default","native","grey"],format:["jpg","png","webp","tif","gif","jp2","pdf"],size:[""]},xt={1:["full",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],1.1:["full",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],2:["full",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],2.1:["full","max",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],3:["max",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`,"\\^max",`\\^${n},`,`\\^,${n}`,`\\^pct:${f}`,`\\^${n},${n}`,`\\^!${n},${n}`]},W=/^pct:([\d,]+)/,Z=class{constructor(e,i,r,t,s,o,a){this.version=e,this.level=i,this.maxArea=r,this.maxWidth=t,this.maxHeight=s,this.tileWidth=o,this.tileHeight=a,this.validate("version",e),this.validate("level",i),v.size=xt[Number(e)]}validator(e){var i=v[e];return i instanceof Array&&(i=i.join("|")),new RegExp("^("+i+")$")}validate(e,i){if(!this.validator(e).test(i))throw Error(`invalid IIIF url ${e}: ${i}`);return!0}normalizeRegionParams(e,i){if(this.validate("region",e),e==="full")return null;if(e==="square")return this._regionSquare(i);if(W.test(e))return this._regionPct(e.match(W)[1],i);{let r=e.split(",").map(t=>Number(t));return this._regionXYWH(r,i)}}_regionSquare(e){let i,r,t=e.width,s=e.height;if(t!==s){let o=Math.min(t,s),a=Math.abs(Math.floor((t-s)/2));return t>s?(i=a,r=0):(i=0,r=a),this._regionXYWH([i,r,o,o],e)}return null}_regionPct(e,i){let r=e.split(",").map((t,s)=>{let o=Number(t)/100;return s===0||s===2?Math.round(i.width*o):s===1||s===3?Math.round(i.height*o):null});return this._regionXYWH(r,i)}_regionXYWH(e,i){let r=i.width,t=i.height,[s,o,a,h]=e;return s+a>r&&(a=r-s),o+h>t&&(h=t-o),{x:s,y:o,w:a,h}}normalizeSizeParams(e,i){let r=e,t=i.width,s=i.height;this.validate("size",r);let o=!1;r.charAt(0)==="^"&&(o=!0,r=r.substring(1));let a=null;if(r==="full"||(r==="max"?a=this._sizeMaxScale(i):W.test(r)?a=this._sizePctScale(r.match(W)[1]):r.charAt(0)==="!"&&(r=r.substring(1),a=this._sizeBangScale(r,o,i)),a===1))return null;if(a){let h=Math.round(t*a),l=Math.round(s*a);return this._sizeWH(`${h},${l}`,o,i)}else return this._sizeWH(r,o,i)}_sizeBangScale(e,i,r){let t=r.width,s=r.height,[o,a]=e.split(",").map(l=>l===""?null:Number(l)),h=Math.min(o/t,a/s);if(o>t&&a>s&&!i)throw Error("should not upscale without ^");return h}_sizeMaxScale(e){let i=e.width,r=e.height,t=1;return this.maxArea&&this.maxArea<i*r&&(t=Math.sqrt(this.maxArea/(i*r))),this.maxWidth&&this.maxWidth<i&&(t=Math.min(t,this.maxWidth/i)),this.maxHeight&&this.maxHeight<r&&(t=Math.min(t,this.maxHeight/r)),t}_sizePctScale(e){return Number(e)/100}_sizeWH(e,i,r){let t=r.width,s=r.height,[o,a]=e.split(",").map(h=>h===""?null:Number(h));if(o?a||(a=Math.round(s*o/t),a=a===0?1:a):(o=Math.round(t*a/s),o=o===0?1:o),(o>t||a>s)&&!i)throw Error("should not upscale without ^");return{width:o,height:a}}normalizeRotationParams(e){this.validate("rotation",e);let i=!1;if(e==="0")return null;e[0]==="!"&&(i=!0);let r=Number(e.replace(/^!/,""));return{isMirror:i,degree:r}}normalizeQualityParams(e){return this.validate("quality",e),e==="native"||e==="default"?null:e}normalizeFormatParams(e,i){if((this.version==="1.0"||this.version==="1.1"||this.version==="2.0"||this.version==="2.1")&&!e)return"png";this.validate("format",e);let r=M[e],t=M[i];return r===t?null:e}getContentType(e){return M[e]}generateImageInfoTemp(e,i){let r={},t={};r.info=t;let s=this.version;return s==="1.0"?(t.identifier=e,t.width=i.width,t.height=i.height,t.scale_factors=this.factors(i),t.tile_width=this.tileWidth,t.tile_height=this.tileHeight,t.formats=v.format,t.qualities=v.quality,t.profile=this.uriPattern("compliance"),r.contentType="application/json",r.body=JSON.stringify(t)):(s==="1.1"?(t["@context"]=this.uriPattern("context"),t["@id"]=e,t.width=i.width,t.height=i.height,t.scale_factors=this.factors(i),t.tile_width=this.tileWidth,t.tile_height=this.tileHeight,t.formats=v.format,t.qualities=v.quality,t.profile=this.uriPattern("compliance")):s==="2.0"||s==="2.1"?(t["@context"]=this.uriPattern("context"),t["@id"]=e,t.protocol="http://iiif.io/api/image",t.width=i.width,t.height=i.height,this.level==="0"?t.sizes=this.sizes(i):t.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],t.profile=[this.uriPattern("compliance")]):s==="3.0"&&(t["@context"]=[this.uriPattern("context")],t.id=e,t.type="ImageService3",t.protocol="http://iiif.io/api/image",t.width=i.width,t.height=i.height,this.level==="0"?t.sizes=this.sizes(i):t.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],t.profile=this.uriPattern("compliance")),r.contentType="application/ld+json"),r}factors(e){let i=1,r=[];for(;this.tileWidth*i<=e.width&&this.tileHeight*i<=e.height;)r.push(i),i*=2;return r}uriPattern(e){let i="",r="";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}`,r="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`,r="http://iiif.io/api/image/2/context.json"):this.version==="3.0"&&(i=`level${this.level}`,r="http://iiif.io/api/image/3/context.json"),e==="compliance"?i:e==="context"?r:""}sizes(e){return[{width:e.width,height:e.height}]}};D.exports=Z});var Mt={};dt(Mt,{default:()=>b});module.exports=ft(Mt);var $=Q(require("sharp")),rt=Q(tt()),Pt=1e8,et=1e4,it=1e4,Ht=512,It=512,Wt={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 rt.default{constructor(r,t,s=Pt,o=et,a=it,h=Ht,l=It){super(r,t,s,o,a,h,l)}regionImpl(r,t){r&&(t=t.extract({left:r.x,top:r.y,width:r.w,height:r.h}))}sizeImpl(r,t){r&&(t=t.resize({...r,fit:"fill"}))}rotationImpl(r,t){r&&(r.isMirror&&(t=t.flop()),t=t.rotate(r.degree))}qualityFormatImpl(r,t,s,o,a){r&&(r==="color"?s=s.toColorspace("srgb"):r==="gray"||r==="grey"?s=s.grayscale():r==="bitonal"&&(s=s.threshold())),t&&(s=s.toFormat(t)),o==="png"&&(a.paletteBitDepth===1||a.space==="b-w")&&(s=s.toColorspace("b-w").png({colors:2}))}iiifTransform(r,t){let s={width:t.width,height:t.height},o=(0,$.default)(),a=r.split("/"),h=a.pop(),l=h.split(".")[0],m=h.split(".")[1],B=a.pop(),_=a.pop(),j=a.pop(),c=o,g=super.normalizeRegionParams(j,s);this.regionImpl(g,c);let y=super.normalizeSizeParams(_,{width:g?g.w:s.width,height:g?g.h:s.height});this.sizeImpl(y,c);let p=super.normalizeRotationParams(B);this.rotationImpl(p,c);let u=super.normalizeQualityParams(l),d=super.normalizeFormatParams(m,t.format);return this.qualityFormatImpl(u,d,c,m,t),g||y||p||u||d?c:(console.log("skip iiif transform"),null)}async generateIiifImage(r,t,s=256){let o=(0,$.default)(t,{limitInputPixels:!1,sequentialRead:!0}),a=r.split("/"),h=a.pop(),l=h.split(".")[0],m=h.split(".")[1],B=a.pop(),_=a.pop(),j=a.pop(),c=await o.metadata(),g={width:c.width,height:c.height},y={},p=o,u=super.normalizeRegionParams(j,g);this.regionImpl(u,p);let d=super.normalizeSizeParams(_,{width:u?u.w:g.width,height:u?u.h:g.height});this.sizeImpl(d,p);let{x:st,y:at,w:S,h:q}=u||{x:0,y:0,w:g.width,h:g.height},{width:R,height:T}=d||{width:g.width,height:g.height};if(S*q>R*T*s&&R<et&&T<it&&c.pages&&c.pages>1){console.log("thumbnail");let w=Math.max(R/S,T/q),[A,F,x,P]=[Math.round(st*w),Math.round(at*w),Math.round(S*w),Math.round(q*w)],[k,X]=[Math.round(g.width*w),Math.round(g.height*w)],H=c.pages-1,C=await(0,$.default)(t,{limitInputPixels:!1,page:H,sequentialRead:!0}).metadata(),U=C.width,Y=C.height;for(;Y<X||U<k;)Y*=2,U*=2,H--;console.log("selectedPage: "+H);let L={width:k,height:X,fastShrinkOnLoad:!1},ht=await(0,$.default)(t,{limitInputPixels:!1,page:H,sequentialRead:!0}).resize(L).toBuffer();p=(0,$.default)(ht);let z=await p.metadata();F+P>z.height&&(P=z.height-F,console.log("adjested sh: "+P)),A+x>z.width&&(x=z.width-A,console.log("adjusted sw: "+x));let G={x:A,y:F,w:x,h:P};this.regionImpl(G,p),this.sizeImpl(d,p),console.log(z.width,z.height,L.width,L.height,G,d)}let ot=super.normalizeRotationParams(B);this.rotationImpl(ot,p);let nt=super.normalizeQualityParams(l);console.log(m,c.format);let E=super.normalizeFormatParams(m,c.format);return this.qualityFormatImpl(nt,E,p,m,c),y.body=p,y.contentType=super.getContentType(E),y}generateImageInfo(r,t,s=""){let o=this.version,a=this.level,h=super.generateImageInfoTemp(r,t),l=h.info;if((o==="2.0"||o==="2.1")&&(l.profile=[super.uriPattern("compliance")],a==="2")){let m={};m.formats=["jpg","png","webp","jp2","pdf","tif"],m.qualities=["color","gray","bitonal","default","native","grey"],m.supports=Wt[Number(o)],l.profile.push(m)}return o==="3.0"&&s&&(l.extraFormats=[s],l.preferredFormats=[s]),s&&(l.formats=[s]),h}};module.exports=b;
1
+ "use strict";var lt=Object.create;var I=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var ct=Object.getOwnPropertyNames;var pt=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ut=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports),dt=(e,i)=>{for(var r in i)I(e,r,{get:i[r],enumerable:!0})},J=(e,i,r,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of ct(i))!mt.call(e,s)&&s!==r&&I(e,s,{get:()=>i[s],enumerable:!(t=gt(i,s))||t.enumerable});return e};var Q=(e,i,r)=>(r=e!=null?lt(pt(e)):{},J(i||!e||!e.__esModule?I(r,"default",{value:e,enumerable:!0}):r,e)),ft=e=>J(I({},"__esModule",{value:!0}),e);var tt=ut((_t,D)=>{"use strict";var O=Object.defineProperty,yt=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyNames,zt=Object.prototype.hasOwnProperty,vt=(e,i)=>{for(var r in i)O(e,r,{get:i[r],enumerable:!0})},$t=(e,i,r,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of wt(i))!zt.call(e,s)&&s!==r&&O(e,s,{get:()=>i[s],enumerable:!(t=yt(i,s))||t.enumerable});return e},bt=e=>$t(O({},"__esModule",{value:!0}),e),V={};vt(V,{default:()=>Z});D.exports=bt(V);var n="[1-9][0-9]*",K="[0-9]*",f="(?=.*[1-9])\\d+(\\.\\d+)?",N="\\d+(\\.\\d+)?",M=(e=>(e.jpg="image/jpeg",e.jpeg="image/jpeg",e.png="image/png",e.webp="image/webp",e.tif="image/tiff",e.tiff="image/tiff",e.gif="image/gif",e.jp2="image/jp2",e.pdf="application/pdf",e))(M||{}),v={version:["1.0","1.1","2.0","2.1","3.0"],level:["0","1","2"],region:["full","square",`${K},${K},${n},${n}`,`pct:${N},${N},${f},${f}`],rotation:`!?${N}`,quality:["color","gray","bitonal","default","native","grey"],format:["jpg","png","webp","tif","gif","jp2","pdf"],size:[""]},xt={1:["full",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],1.1:["full",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],2:["full",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],2.1:["full","max",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`],3:["max",`${n},`,`,${n}`,`pct:${f}`,`${n},${n}`,`!${n},${n}`,"\\^max",`\\^${n},`,`\\^,${n}`,`\\^pct:${f}`,`\\^${n},${n}`,`\\^!${n},${n}`]},W=/^pct:([\d,]+)/,Z=class{constructor(e,i,r,t,s,o,a){this.version=e,this.level=i,this.maxArea=r,this.maxWidth=t,this.maxHeight=s,this.tileWidth=o,this.tileHeight=a,this.validate("version",e),this.validate("level",i),v.size=xt[Number(e)]}validator(e){var i=v[e];return i instanceof Array&&(i=i.join("|")),new RegExp("^("+i+")$")}validate(e,i){if(!this.validator(e).test(i))throw Error(`invalid IIIF url ${e}: ${i}`);return!0}normalizeRegionParams(e,i){if(this.validate("region",e),e==="full")return null;if(e==="square")return this._regionSquare(i);if(W.test(e))return this._regionPct(e.match(W)[1],i);{let r=e.split(",").map(t=>Number(t));return this._regionXYWH(r,i)}}_regionSquare(e){let i,r,t=e.width,s=e.height;if(t!==s){let o=Math.min(t,s),a=Math.abs(Math.floor((t-s)/2));return t>s?(i=a,r=0):(i=0,r=a),this._regionXYWH([i,r,o,o],e)}return null}_regionPct(e,i){let r=e.split(",").map((t,s)=>{let o=Number(t)/100;return s===0||s===2?Math.ceil(i.width*o):s===1||s===3?Math.ceil(i.height*o):null});return this._regionXYWH(r,i)}_regionXYWH(e,i){let r=i.width,t=i.height,[s,o,a,h]=e;return s+a>r&&(a=r-s),o+h>t&&(h=t-o),{x:s,y:o,w:a,h}}normalizeSizeParams(e,i){let r=e,t=i.width,s=i.height;this.validate("size",r);let o=!1;r.charAt(0)==="^"&&(o=!0,r=r.substring(1));let a=null;if(r==="full"||(r==="max"?a=this._sizeMaxScale(i):W.test(r)?a=this._sizePctScale(r.match(W)[1]):r.charAt(0)==="!"&&(r=r.substring(1),a=this._sizeBangScale(r,o,i)),a===1))return null;if(a){let h=Math.ceil(t*a),l=Math.ceil(s*a);return this._sizeWH(`${h},${l}`,o,i)}else return this._sizeWH(r,o,i)}_sizeBangScale(e,i,r){let t=r.width,s=r.height,[o,a]=e.split(",").map(l=>l===""?null:Number(l)),h=Math.min(o/t,a/s);if(o>t&&a>s&&!i)throw Error("should not upscale without ^");return h}_sizeMaxScale(e){let i=e.width,r=e.height,t=1;return this.maxArea&&this.maxArea<i*r&&(t=Math.sqrt(this.maxArea/(i*r))),this.maxWidth&&this.maxWidth<i&&(t=Math.min(t,this.maxWidth/i)),this.maxHeight&&this.maxHeight<r&&(t=Math.min(t,this.maxHeight/r)),t}_sizePctScale(e){return Number(e)/100}_sizeWH(e,i,r){let t=r.width,s=r.height,[o,a]=e.split(",").map(h=>h===""?null:Number(h));if(o?a||(a=Math.ceil(s*o/t),a=a===0?1:a):(o=Math.ceil(t*a/s),o=o===0?1:o),(o>t||a>s)&&!i)throw Error("should not upscale without ^");return{width:o,height:a}}normalizeRotationParams(e){this.validate("rotation",e);let i=!1;if(e==="0")return null;e[0]==="!"&&(i=!0);let r=Number(e.replace(/^!/,""));return{isMirror:i,degree:r}}normalizeQualityParams(e){return this.validate("quality",e),e==="native"||e==="default"?null:e}normalizeFormatParams(e,i){if((this.version==="1.0"||this.version==="1.1"||this.version==="2.0"||this.version==="2.1")&&!e)return"png";this.validate("format",e);let r=M[e],t=M[i];return r===t?null:e}getContentType(e){return M[e]}generateImageInfoTemp(e,i){let r={},t={};r.info=t;let s=this.version;return s==="1.0"?(t.identifier=e,t.width=i.width,t.height=i.height,t.scale_factors=this.factors(i),t.tile_width=this.tileWidth,t.tile_height=this.tileHeight,t.formats=v.format,t.qualities=v.quality,t.profile=this.uriPattern("compliance"),r.contentType="application/json",r.body=JSON.stringify(t)):(s==="1.1"?(t["@context"]=this.uriPattern("context"),t["@id"]=e,t.width=i.width,t.height=i.height,t.scale_factors=this.factors(i),t.tile_width=this.tileWidth,t.tile_height=this.tileHeight,t.formats=v.format,t.qualities=v.quality,t.profile=this.uriPattern("compliance")):s==="2.0"||s==="2.1"?(t["@context"]=this.uriPattern("context"),t["@id"]=e,t.protocol="http://iiif.io/api/image",t.width=i.width,t.height=i.height,this.level==="0"?t.sizes=this.sizes(i):t.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],t.profile=[this.uriPattern("compliance")]):s==="3.0"&&(t["@context"]=[this.uriPattern("context")],t.id=e,t.type="ImageService3",t.protocol="http://iiif.io/api/image",t.width=i.width,t.height=i.height,this.level==="0"?t.sizes=this.sizes(i):t.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],t.profile=this.uriPattern("compliance")),r.contentType="application/ld+json"),r}factors(e){let i=1,r=[];for(;this.tileWidth*i<=e.width&&this.tileHeight*i<=e.height;)r.push(i),i*=2;return r}uriPattern(e){let i="",r="";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}`,r="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`,r="http://iiif.io/api/image/2/context.json"):this.version==="3.0"&&(i=`level${this.level}`,r="http://iiif.io/api/image/3/context.json"),e==="compliance"?i:e==="context"?r:""}sizes(e){return[{width:e.width,height:e.height}]}};D.exports=Z});var Mt={};dt(Mt,{default:()=>b});module.exports=ft(Mt);var $=Q(require("sharp")),rt=Q(tt()),Pt=1e8,et=1e4,it=1e4,Ht=512,It=512,Wt={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 rt.default{constructor(r,t,s=Pt,o=et,a=it,h=Ht,l=It){super(r,t,s,o,a,h,l)}regionImpl(r,t){r&&(t=t.extract({left:r.x,top:r.y,width:r.w,height:r.h}))}sizeImpl(r,t){r&&(t=t.resize({...r,fit:"fill"}))}rotationImpl(r,t){r&&(r.isMirror&&(t=t.flop()),t=t.rotate(r.degree))}qualityFormatImpl(r,t,s,o,a){r&&(r==="color"?s=s.toColorspace("srgb"):r==="gray"||r==="grey"?s=s.grayscale():r==="bitonal"&&(s=s.threshold())),t&&(s=s.toFormat(t)),o==="png"&&(a.paletteBitDepth===1||a.space==="b-w")&&(s=s.toColorspace("b-w").png({colors:2}))}iiifTransform(r,t){let s={width:t.width,height:t.height},o=(0,$.default)(),a=r.split("/"),h=a.pop(),l=h.split(".")[0],m=h.split(".")[1],B=a.pop(),_=a.pop(),j=a.pop(),c=o,g=super.normalizeRegionParams(j,s);this.regionImpl(g,c);let y=super.normalizeSizeParams(_,{width:g?g.w:s.width,height:g?g.h:s.height});this.sizeImpl(y,c);let p=super.normalizeRotationParams(B);this.rotationImpl(p,c);let u=super.normalizeQualityParams(l),d=super.normalizeFormatParams(m,t.format);return this.qualityFormatImpl(u,d,c,m,t),g||y||p||u||d?c:(console.log("skip iiif transform"),null)}async generateIiifImage(r,t,s=256){let o=(0,$.default)(t,{limitInputPixels:!1,sequentialRead:!0}),a=r.split("/"),h=a.pop(),l=h.split(".")[0],m=h.split(".")[1],B=a.pop(),_=a.pop(),j=a.pop(),c=await o.metadata(),g={width:c.width,height:c.height},y={},p=o,u=super.normalizeRegionParams(j,g);this.regionImpl(u,p);let d=super.normalizeSizeParams(_,{width:u?u.w:g.width,height:u?u.h:g.height});this.sizeImpl(d,p);let{x:st,y:at,w:S,h:q}=u||{x:0,y:0,w:g.width,h:g.height},{width:R,height:T}=d||{width:g.width,height:g.height};if(S*q>R*T*s&&R<et&&T<it&&c.pages&&c.pages>1){console.log("thumbnail");let w=Math.max(R/S,T/q),[A,F,x,P]=[Math.round(st*w),Math.round(at*w),Math.round(S*w),Math.round(q*w)],[k,X]=[Math.round(g.width*w),Math.round(g.height*w)],H=c.pages-1,C=await(0,$.default)(t,{limitInputPixels:!1,page:H,sequentialRead:!0}).metadata(),U=C.width,Y=C.height;for(;Y<X||U<k;)Y*=2,U*=2,H--;console.log("selectedPage: "+H);let L={width:k,height:X,fastShrinkOnLoad:!1},ht=await(0,$.default)(t,{limitInputPixels:!1,page:H,sequentialRead:!0}).resize(L).toBuffer();p=(0,$.default)(ht);let z=await p.metadata();F+P>z.height&&(P=z.height-F,console.log("adjested sh: "+P)),A+x>z.width&&(x=z.width-A,console.log("adjusted sw: "+x));let G={x:A,y:F,w:x,h:P};this.regionImpl(G,p),this.sizeImpl(d,p),console.log(z.width,z.height,L.width,L.height,G,d)}let ot=super.normalizeRotationParams(B);this.rotationImpl(ot,p);let nt=super.normalizeQualityParams(l);console.log(m,c.format);let E=super.normalizeFormatParams(m,c.format);return this.qualityFormatImpl(nt,E,p,m,c),y.body=p,y.contentType=super.getContentType(E),y}generateImageInfo(r,t,s=""){let o=this.version,a=this.level,h=super.generateImageInfoTemp(r,t),l=h.info;if((o==="2.0"||o==="2.1")&&(l.profile=[super.uriPattern("compliance")],a==="2")){let m={};m.formats=["jpg","png","webp","jp2","pdf","tif"],m.qualities=["color","gray","bitonal","default","native","grey"],m.supports=Wt[Number(o)],l.profile.push(m)}return o==="3.0"&&s&&(l.extraFormats=[s],l.preferredFormats=[s]),s&&(l.formats=[s]),h}};module.exports=b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etu-wiki/sharp-iiif-shims",
3
- "version": "0.0.78",
3
+ "version": "0.0.79",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -34,6 +34,6 @@
34
34
  "dist"
35
35
  ],
36
36
  "dependencies": {
37
- "@etu-wiki/iiif-image-shims": "^0.0.19"
37
+ "@etu-wiki/iiif-image-shims": "^0.0.20"
38
38
  }
39
39
  }