@zaadevofc/media-process 1.0.0 → 1.0.2

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 zaadevofc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- 'use strict';var S=require('fluent-ffmpeg'),F=require('fs/promises'),os=require('os'),C=require('path'),fileType=require('file-type'),M=require('sharp'),H=require('node-webpmux');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var S__default=/*#__PURE__*/_interopDefault(S);var F__default=/*#__PURE__*/_interopDefault(F);var C__default=/*#__PURE__*/_interopDefault(C);var M__default=/*#__PURE__*/_interopDefault(M);var H__default=/*#__PURE__*/_interopDefault(H);var o={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:6,FPS:10,DEFAULT_QUALITY:60,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},X=async(d=false)=>{if(!d)try{let t=(await import('@ffmpeg-installer/ffmpeg')).default,e=(await import('@ffprobe-installer/ffprobe')).default;S__default.default.setFfmpegPath(t.path),S__default.default.setFfprobePath(e.path);}catch{}},s=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(t,e){return C__default.default.join(os.tmpdir(),`${t}_${this.generateUniqueId()}.${e}`)}static async cleanup(t){await Promise.allSettled(t.map(e=>F__default.default.unlink(e)));}static async safeReadFile(t){try{return await F__default.default.readFile(t)}catch{throw new Error(`Failed to read file: ${t}`)}}static async safeWriteFile(t,e){try{await F__default.default.writeFile(t,e);}catch{throw new Error(`Failed to write file: ${t}`)}}},c=class{static async toBuffer(t){if(Buffer.isBuffer(t))return t;if(t instanceof ArrayBuffer)return Buffer.from(t);if(typeof t=="string")return this.fromString(t);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(t){if(t.startsWith("http://")||t.startsWith("https://"))return this.fromUrl(t);try{if(await F__default.default.stat(t).then(e=>e.isFile()).catch(()=>!1))return await F__default.default.readFile(t)}catch{}return Buffer.from(t,"base64")}static async fromUrl(t){try{let e=await fetch(t);if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);let a=await e.arrayBuffer();return Buffer.from(a)}catch(e){throw new Error(`Failed to fetch URL: ${e.message}`)}}static async getExtension(t){let{fileTypeFromBuffer:e}=await import('file-type'),a=await e(t);if(!a)return "tmp";let r=a.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(r)?r:"tmp"}},g=class{static validate(t,e){if(!t?.mime?.startsWith(e))throw new Error(`Invalid file type: expected ${e}*, got ${t?.mime||"unknown"}`)}static isMedia(t){return t.startsWith(o.MIME.IMAGE)||t.startsWith(o.MIME.VIDEO)}static isAnimated(t){return t===o.MIME.GIF||t.startsWith(o.MIME.VIDEO)}},I=class{static async process(t){return new Promise((e,a)=>{let r=S__default.default(t.input).output(t.output);for(let i=0;i<t.options.length;i++){let n=t.options[i];n.startsWith("-")&&i+1<t.options.length&&!t.options[i+1].startsWith("-")?(r.outputOptions(n,t.options[i+1]),i++):r.outputOptions(n);}r.on("end",async()=>{try{await t.onEnd(),e();}catch(i){a(i);}}).on("error",async i=>{try{await t.onError(i);}finally{a(i);}}).run();})}static async getDuration(t){return new Promise((e,a)=>{S__default.default.ffprobe(t,(r,i)=>{if(r)return a(r);e(i.format.duration||0);});})}};var B=class{static async toOpus(t){return this.convert(t,"opus")}static async toMp3(t){return this.convert(t,"mp3")}static async convert(t,e="opus"){let a=await c.toBuffer(t),r=await fileType.fileTypeFromBuffer(a);g.validate(r,o.MIME.AUDIO);let i=await c.getExtension(a),n=s.createTempPath("audio_in",i),l=e==="opus"?"ogg":"mp3",f=s.createTempPath("audio_out",l);await s.safeWriteFile(n,a);let u;try{let m=e==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","ogg"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await I.process({input:n,output:f,options:m,onEnd:async()=>{u=await s.safeReadFile(f);},onError:async()=>{await s.cleanup([n,f]);}}),await s.cleanup([n,f]),u}catch(m){throw await s.cleanup([n,f]),new Error(`${e.toUpperCase()} conversion failed: ${m.message}`)}}};var E=class{static async toMp4(t){let e=await c.toBuffer(t),a=await fileType.fileTypeFromBuffer(e);g.validate(a,o.MIME.VIDEO);let r=await c.getExtension(e),i=s.createTempPath("video_in",r),n=s.createTempPath("video_out","mp4");await s.safeWriteFile(i,e);let l;try{let f=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-vf","scale=trunc(iw/2)*2:trunc(ih/2)*2","-pix_fmt","yuv420p","-f","mp4"];return await I.process({input:i,output:n,options:f,onEnd:async()=>{l=await s.safeReadFile(n);},onError:async()=>{await s.cleanup([i,n]);}}),await s.cleanup([i,n]),l}catch(f){throw await s.cleanup([i,n]),new Error(`Video re-encoding failed: ${f.message}`)}}static async thumbnail(t){let e=await c.toBuffer(t),a=await fileType.fileTypeFromBuffer(e);g.validate(a,o.MIME.VIDEO);let r=await c.getExtension(e),i=s.createTempPath("video",r),n=s.createTempPath("thumb","jpg");await s.safeWriteFile(i,e);let l;try{return await new Promise((f,u)=>{S__default.default(i).screenshots({timestamps:[o.THUMBNAIL.TIMESTAMP],filename:C__default.default.basename(n),folder:C__default.default.dirname(n),size:`${o.THUMBNAIL.SIZE}x${o.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await s.safeReadFile(n)).toString("base64"),f();}catch(m){u(m);}}).on("error",u);}),await s.cleanup([i,n]),l}catch(f){throw await s.cleanup([i,n]),new Error(`Thumbnail generation failed: ${f.message}`)}}static async duration(t){return I.getDuration(t)}};var h=class{static async thumbnail(t){let e=M__default.default(t).resize(o.THUMBNAIL.SIZE,o.THUMBNAIL.SIZE,{fit:"cover"});return (await e.metadata()).format==="gif"&&(e=M__default.default(t,{pages:1}).resize(o.THUMBNAIL.SIZE,o.THUMBNAIL.SIZE)),(await e.jpeg({quality:o.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}static async resize(t,e,a){return M__default.default(t).resize(e,a,{fit:"cover"}).png().toBuffer()}static async toJpeg(t){let e=await c.toBuffer(t),a=await M__default.default(e).metadata();if(!a.format)throw new Error("Invalid image type: format could not be determined");return a.format==="webp"||a.format==="png"?M__default.default(e).jpeg().toBuffer():e}static async resizeForSticker(t,e,a="default"){let r=o.STICKER.SIZE,i=M__default.default(t).resize(r,r,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}});if(a!=="default"){let n=Buffer.alloc(r*r);for(let f=0;f<r;f++)for(let u=0;u<r;u++){let m=false,y=r/2,T=r/2;switch(a){case "circle":{let p=u-y,x=f-T;m=p*p+x*x<=y*y;break}case "rounded":{let p=r/10,x=u>=p&&u<r-p&&f>=0&&f<r,v=u>=0&&u<r&&f>=p&&f<r-p,b=false,L=[[p,p],[r-p,p],[p,r-p],[r-p,r-p]];for(let[R,D]of L){let N=u-R,O=f-D;if(N*N+O*O<=p*p){b=true;break}}m=x||v||b;break}case "oval":{let p=r/2,x=r/3,v=(u-y)/p,b=(f-T)/x;m=v*v+b*b<=1;break}}n[f*r+u]=m?255:0;}let l=M__default.default(n,{raw:{width:r,height:r,channels:1}});i=i.joinChannel(await l.toBuffer());}return i.webp({quality:e}).toBuffer()}};var P=()=>Date.now().toString(36)+Math.random().toString(36).slice(2,8),U=d=>d;var A=class{static async create(t,e){try{let a=await c.toBuffer(t),r=await fileType.fileTypeFromBuffer(a);if(!r)throw new Error("Unable to detect file type");let i=e?.quality||o.STICKER.DEFAULT_QUALITY,n=g.isAnimated(r.mime),l=e?.shape||"default",f=n?await this.processAnimated(a,r.mime,i):await h.resizeForSticker(a,i,l),u=this.createExifMetadata(e),m=new H__default.default.Image;await m.load(f),m.exif=u;let y=await m.save(null);return Buffer.isBuffer(y)?y:Buffer.from(y)}catch(a){throw new Error(`Sticker creation failed: ${a.message||a}`)}}static createExifMetadata(t){let e={"sticker-pack-id":P(),"sticker-pack-name":t?.packageName||"Zaileys Library","sticker-pack-publisher":t?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},a=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),r=Buffer.from(JSON.stringify(e),"utf8"),i=Buffer.concat([a,r]);return i.writeUIntLE(r.length,14,4),i}static async processAnimated(t,e,a){let r=this.getExtension(e),i=s.createTempPath("sticker_in",r),n=s.createTempPath("sticker_out","webp");await s.safeWriteFile(i,t);let l=o.STICKER.MAX_DURATION;try{let p=await E.duration(i);l=U(Math.min(p,o.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",o.STICKER.MAX_DURATION);}let f=o.STICKER.SIZE,u=o.STICKER.FPS,m=`scale=${f}:${f}:force_original_aspect_ratio=decrease,fps=${u},pad=${f}:${f}:(ow-iw)/2:(oh-ih)/2:color=0x00000000,format=rgba`,y=Math.max(1,Math.min(100,a)),T;try{return await I.process({input:i,output:n,options:["-vcodec libwebp",`-vf ${m}`,`-q:v ${y}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${o.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{T=await s.safeReadFile(n);},onError:async()=>{await s.cleanup([i,n]);}}),await s.cleanup([i,n]),T}catch(p){throw await s.cleanup([i,n]),new Error(`Animated sticker processing failed: ${p.message}`)}}static getExtension(t){return t===o.MIME.GIF?"gif":t.startsWith(o.MIME.VIDEO)?"mp4":"tmp"}};var k=class{static async create(t){try{let e=await c.toBuffer(t),a=await fileType.fileTypeFromBuffer(e);if(!a)throw new Error("Unable to detect file type");let r;return a.mime.startsWith(o.MIME.VIDEO)?r=await E.thumbnail(e):g.isMedia(a.mime)?r=await h.thumbnail(e):r="",{document:e,mimetype:a.mime,ext:a.ext,fileName:P(),jpegThumbnail:r}}catch(e){throw new Error(`Document creation failed: ${e.message||e}`)}}};var $=class{input;constructor(t){this.input=t;}get audio(){return {toOpus:()=>B.toOpus(this.input),toMp3:()=>B.toMp3(this.input),convert:(t="opus")=>B.convert(this.input,t)}}get video(){return {toMp4:()=>E.toMp4(this.input),thumbnail:()=>E.thumbnail(this.input)}}get image(){return {toJpeg:()=>h.toJpeg(this.input),thumbnail:async()=>{let t=await c.toBuffer(this.input);return h.thumbnail(t)},resize:async(t,e)=>{let a=await c.toBuffer(this.input);return h.resize(a,t,e)}}}get sticker(){return {create:t=>A.create(this.input,t)}}get document(){return {create:()=>k.create(this.input)}}get thumbnail(){return {get:async()=>{let t=await c.toBuffer(this.input),e=await fileType.fileTypeFromBuffer(t);if(!e||!g.isMedia(e.mime))throw new Error("Invalid media type: expected image or video");return e.mime.startsWith(o.MIME.VIDEO)?E.thumbnail(this.input):h.thumbnail(t)}}}async toBuffer(){return c.toBuffer(this.input)}};
2
- exports.AudioProcessor=B;exports.BufferConverter=c;exports.DocumentProcessor=k;exports.FFMPEG_CONSTANTS=o;exports.FFmpegProcessor=I;exports.FileManager=s;exports.ImageProcessor=h;exports.Media=$;exports.MimeValidator=g;exports.StickerProcessor=A;exports.VideoProcessor=E;exports.initializeFFmpeg=X;
1
+ 'use strict';var Ie=require('fluent-ffmpeg'),de=require('fs/promises'),os=require('os'),Ar=require('path'),fileType=require('file-type'),jimp=require('jimp'),no=require('node-webpmux');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ie__default=/*#__PURE__*/_interopDefault(Ie);var de__default=/*#__PURE__*/_interopDefault(de);var Ar__default=/*#__PURE__*/_interopDefault(Ar);var no__default=/*#__PURE__*/_interopDefault(no);var L=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Li=(e,r)=>()=>(e&&(r=e(e=0)),r);var x=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var u=Li(()=>{});var G=x((ko,Sr)=>{u();var kr=function(e){return typeof e<"u"&&e!==null},Ni=function(e){return typeof e=="object"},$i=function(e){return Object.prototype.toString.call(e)==="[object Object]"},Ci=function(e){return typeof e=="function"},Oi=function(e){return typeof e=="boolean"},_i=function(e){return e instanceof Buffer},qi=function(e){if(kr(e))switch(e.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return true}return false},Di=function(e){return e instanceof ArrayBuffer},zi=function(e){return typeof e=="string"&&e.length>0},Ui=function(e){return typeof e=="number"&&!Number.isNaN(e)},Gi=function(e){return Number.isInteger(e)},Wi=function(e,r,t){return e>=r&&e<=t},Hi=function(e,r){return r.includes(e)},Vi=function(e,r,t){return new Error(`Expected ${r} for ${e} but received ${t} of type ${typeof t}`)},Xi=function(e,r){return r.message=e.message,r};Sr.exports={defined:kr,object:Ni,plainObject:$i,fn:Ci,bool:Oi,buffer:_i,typedArray:qi,arrayBuffer:Di,string:zi,number:Ui,integer:Gi,inRange:Wi,inArray:Hi,invalidParameterError:Vi,nativeError:Xi};});var Br=x((Mo,Lr)=>{u();var Mr=()=>process.platform==="linux",Pe=null,Qi=()=>{if(!Pe)if(Mr()&&process.report){let e=process.report.excludeNetwork;process.report.excludeNetwork=true,Pe=process.report.getReport(),process.report.excludeNetwork=e;}else Pe={};return Pe};Lr.exports={isLinux:Mr,getReport:Qi};});var jr=x((Bo,Fr)=>{u();var oe=L("fs"),Ji="/usr/bin/ldd",Ki="/proc/self/exe",Re=2048,Yi=e=>{let r=oe.openSync(e,"r"),t=Buffer.alloc(Re),i=oe.readSync(r,t,0,Re,0);return oe.close(r,()=>{}),t.subarray(0,i)},Zi=e=>new Promise((r,t)=>{oe.open(e,"r",(i,n)=>{if(i)t(i);else {let s=Buffer.alloc(Re);oe.read(n,s,0,Re,0,(o,c)=>{r(s.subarray(0,c)),oe.close(n,()=>{});});}});});Fr.exports={LDD_PATH:Ji,SELF_PATH:Ki,readFileSync:Yi,readFile:Zi};});var Nr=x((jo,Tr)=>{u();var en=e=>{if(e.length<64||e.readUInt32BE(0)!==2135247942||e.readUInt8(4)!==2||e.readUInt8(5)!==1)return null;let r=e.readUInt32LE(32),t=e.readUInt16LE(54),i=e.readUInt16LE(56);for(let n=0;n<i;n++){let s=r+n*t;if(e.readUInt32LE(s)===3){let c=e.readUInt32LE(s+8),h=e.readUInt32LE(s+32);return e.subarray(c,c+h).toString().replace(/\0.*$/g,"")}}return null};Tr.exports={interpreterPath:en};});var ke=x((No,Zr)=>{u();var Cr=L("child_process"),{isLinux:le,getReport:Or}=Br(),{LDD_PATH:Ae,SELF_PATH:_r,readFile:Ye,readFileSync:Ze}=jr(),{interpreterPath:qr}=Nr(),W,H,V,Dr="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",Z="",zr=()=>Z||new Promise(e=>{Cr.exec(Dr,(r,t)=>{Z=r?" ":t,e(Z);});}),Ur=()=>{if(!Z)try{Z=Cr.execSync(Dr,{encoding:"utf8"});}catch{Z=" ";}return Z},J="glibc",Gr=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,ne="musl",rn=e=>e.includes("libc.musl-")||e.includes("ld-musl-"),Wr=()=>{let e=Or();return e.header&&e.header.glibcVersionRuntime?J:Array.isArray(e.sharedObjects)&&e.sharedObjects.some(rn)?ne:null},Hr=e=>{let[r,t]=e.split(/[\r\n]+/);return r&&r.includes(J)?J:t&&t.includes(ne)?ne:null},Vr=e=>{if(e){if(e.includes("/ld-musl-"))return ne;if(e.includes("/ld-linux-"))return J}return null},Xr=e=>(e=e.toString(),e.includes("musl")?ne:e.includes("GNU C Library")?J:null),tn=async()=>{if(H!==void 0)return H;H=null;try{let e=await Ye(Ae);H=Xr(e);}catch{}return H},nn=()=>{if(H!==void 0)return H;H=null;try{let e=Ze(Ae);H=Xr(e);}catch{}return H},an=async()=>{if(W!==void 0)return W;W=null;try{let e=await Ye(_r),r=qr(e);W=Vr(r);}catch{}return W},sn=()=>{if(W!==void 0)return W;W=null;try{let e=Ze(_r),r=qr(e);W=Vr(r);}catch{}return W},Qr=async()=>{let e=null;if(le()&&(e=await an(),!e&&(e=await tn(),e||(e=Wr()),!e))){let r=await zr();e=Hr(r);}return e},Jr=()=>{let e=null;if(le()&&(e=sn(),!e&&(e=nn(),e||(e=Wr()),!e))){let r=Ur();e=Hr(r);}return e},on=async()=>le()&&await Qr()!==J,ln=()=>le()&&Jr()!==J,cn=async()=>{if(V!==void 0)return V;V=null;try{let r=(await Ye(Ae)).match(Gr);r&&(V=r[1]);}catch{}return V},fn=()=>{if(V!==void 0)return V;V=null;try{let r=Ze(Ae).match(Gr);r&&(V=r[1]);}catch{}return V},Kr=()=>{let e=Or();return e.header&&e.header.glibcVersionRuntime?e.header.glibcVersionRuntime:null},$r=e=>e.trim().split(/\s+/)[1],Yr=e=>{let[r,t,i]=e.split(/[\r\n]+/);return r&&r.includes(J)?$r(r):t&&i&&t.includes(ne)?$r(i):null},hn=async()=>{let e=null;if(le()&&(e=await cn(),e||(e=Kr()),!e)){let r=await zr();e=Yr(r);}return e},un=()=>{let e=null;if(le()&&(e=fn(),e||(e=Kr()),!e)){let r=Ur();e=Yr(r);}return e};Zr.exports={GLIBC:J,MUSL:ne,family:Qr,familySync:Jr,isNonGlibcLinux:on,isNonGlibcLinuxSync:ln,version:hn,versionSync:un};});var er=x((Co,et)=>{u();var dn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};et.exports=dn;});var rr=x((_o,rt)=>{u();var mn="2.0.0",gn=Number.MAX_SAFE_INTEGER||9007199254740991,pn=16,bn=250,wn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];rt.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:pn,MAX_SAFE_BUILD_LENGTH:bn,MAX_SAFE_INTEGER:gn,RELEASE_TYPES:wn,SEMVER_SPEC_VERSION:mn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};});var nr=x((X,tt)=>{u();var{MAX_SAFE_COMPONENT_LENGTH:tr,MAX_SAFE_BUILD_LENGTH:yn,MAX_LENGTH:En}=rr(),vn=er();X=tt.exports={};var xn=X.re=[],In=X.safeRe=[],m=X.src=[],Pn=X.safeSrc=[],g=X.t={},Rn=0,ir="[a-zA-Z0-9-]",An=[["\\s",1],["\\d",En],[ir,yn]],kn=e=>{for(let[r,t]of An)e=e.split(`${r}*`).join(`${r}{0,${t}}`).split(`${r}+`).join(`${r}{1,${t}}`);return e},E=(e,r,t)=>{let i=kn(r),n=Rn++;vn(e,n,r),g[e]=n,m[n]=r,Pn[n]=i,xn[n]=new RegExp(r,t?"g":void 0),In[n]=new RegExp(i,t?"g":void 0);};E("NUMERICIDENTIFIER","0|[1-9]\\d*");E("NUMERICIDENTIFIERLOOSE","\\d+");E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${ir}*`);E("MAINVERSION",`(${m[g.NUMERICIDENTIFIER]})\\.(${m[g.NUMERICIDENTIFIER]})\\.(${m[g.NUMERICIDENTIFIER]})`);E("MAINVERSIONLOOSE",`(${m[g.NUMERICIDENTIFIERLOOSE]})\\.(${m[g.NUMERICIDENTIFIERLOOSE]})\\.(${m[g.NUMERICIDENTIFIERLOOSE]})`);E("PRERELEASEIDENTIFIER",`(?:${m[g.NONNUMERICIDENTIFIER]}|${m[g.NUMERICIDENTIFIER]})`);E("PRERELEASEIDENTIFIERLOOSE",`(?:${m[g.NONNUMERICIDENTIFIER]}|${m[g.NUMERICIDENTIFIERLOOSE]})`);E("PRERELEASE",`(?:-(${m[g.PRERELEASEIDENTIFIER]}(?:\\.${m[g.PRERELEASEIDENTIFIER]})*))`);E("PRERELEASELOOSE",`(?:-?(${m[g.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${m[g.PRERELEASEIDENTIFIERLOOSE]})*))`);E("BUILDIDENTIFIER",`${ir}+`);E("BUILD",`(?:\\+(${m[g.BUILDIDENTIFIER]}(?:\\.${m[g.BUILDIDENTIFIER]})*))`);E("FULLPLAIN",`v?${m[g.MAINVERSION]}${m[g.PRERELEASE]}?${m[g.BUILD]}?`);E("FULL",`^${m[g.FULLPLAIN]}$`);E("LOOSEPLAIN",`[v=\\s]*${m[g.MAINVERSIONLOOSE]}${m[g.PRERELEASELOOSE]}?${m[g.BUILD]}?`);E("LOOSE",`^${m[g.LOOSEPLAIN]}$`);E("GTLT","((?:<|>)?=?)");E("XRANGEIDENTIFIERLOOSE",`${m[g.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);E("XRANGEIDENTIFIER",`${m[g.NUMERICIDENTIFIER]}|x|X|\\*`);E("XRANGEPLAIN",`[v=\\s]*(${m[g.XRANGEIDENTIFIER]})(?:\\.(${m[g.XRANGEIDENTIFIER]})(?:\\.(${m[g.XRANGEIDENTIFIER]})(?:${m[g.PRERELEASE]})?${m[g.BUILD]}?)?)?`);E("XRANGEPLAINLOOSE",`[v=\\s]*(${m[g.XRANGEIDENTIFIERLOOSE]})(?:\\.(${m[g.XRANGEIDENTIFIERLOOSE]})(?:\\.(${m[g.XRANGEIDENTIFIERLOOSE]})(?:${m[g.PRERELEASELOOSE]})?${m[g.BUILD]}?)?)?`);E("XRANGE",`^${m[g.GTLT]}\\s*${m[g.XRANGEPLAIN]}$`);E("XRANGELOOSE",`^${m[g.GTLT]}\\s*${m[g.XRANGEPLAINLOOSE]}$`);E("COERCEPLAIN",`(^|[^\\d])(\\d{1,${tr}})(?:\\.(\\d{1,${tr}}))?(?:\\.(\\d{1,${tr}}))?`);E("COERCE",`${m[g.COERCEPLAIN]}(?:$|[^\\d])`);E("COERCEFULL",m[g.COERCEPLAIN]+`(?:${m[g.PRERELEASE]})?(?:${m[g.BUILD]})?(?:$|[^\\d])`);E("COERCERTL",m[g.COERCE],true);E("COERCERTLFULL",m[g.COERCEFULL],true);E("LONETILDE","(?:~>?)");E("TILDETRIM",`(\\s*)${m[g.LONETILDE]}\\s+`,true);X.tildeTrimReplace="$1~";E("TILDE",`^${m[g.LONETILDE]}${m[g.XRANGEPLAIN]}$`);E("TILDELOOSE",`^${m[g.LONETILDE]}${m[g.XRANGEPLAINLOOSE]}$`);E("LONECARET","(?:\\^)");E("CARETTRIM",`(\\s*)${m[g.LONECARET]}\\s+`,true);X.caretTrimReplace="$1^";E("CARET",`^${m[g.LONECARET]}${m[g.XRANGEPLAIN]}$`);E("CARETLOOSE",`^${m[g.LONECARET]}${m[g.XRANGEPLAINLOOSE]}$`);E("COMPARATORLOOSE",`^${m[g.GTLT]}\\s*(${m[g.LOOSEPLAIN]})$|^$`);E("COMPARATOR",`^${m[g.GTLT]}\\s*(${m[g.FULLPLAIN]})$|^$`);E("COMPARATORTRIM",`(\\s*)${m[g.GTLT]}\\s*(${m[g.LOOSEPLAIN]}|${m[g.XRANGEPLAIN]})`,true);X.comparatorTrimReplace="$1$2$3";E("HYPHENRANGE",`^\\s*(${m[g.XRANGEPLAIN]})\\s+-\\s+(${m[g.XRANGEPLAIN]})\\s*$`);E("HYPHENRANGELOOSE",`^\\s*(${m[g.XRANGEPLAINLOOSE]})\\s+-\\s+(${m[g.XRANGEPLAINLOOSE]})\\s*$`);E("STAR","(<|>)?=?\\s*\\*");E("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");E("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");});var nt=x((zo,it)=>{u();var Sn=Object.freeze({loose:true}),Mn=Object.freeze({}),Ln=e=>e?typeof e!="object"?Sn:e:Mn;it.exports=Ln;});var lt=x((Go,ot)=>{u();var at=/^[0-9]+$/,st=(e,r)=>{if(typeof e=="number"&&typeof r=="number")return e===r?0:e<r?-1:1;let t=at.test(e),i=at.test(r);return t&&i&&(e=+e,r=+r),e===r?0:t&&!i?-1:i&&!t?1:e<r?-1:1},Bn=(e,r)=>st(r,e);ot.exports={compareIdentifiers:st,rcompareIdentifiers:Bn};});var Fe=x((Ho,ft)=>{u();var Se=er(),{MAX_LENGTH:ct,MAX_SAFE_INTEGER:Me}=rr(),{safeRe:Le,t:Be}=nr(),Fn=nt(),{compareIdentifiers:ar}=lt(),sr=class e{constructor(r,t){if(t=Fn(t),r instanceof e){if(r.loose===!!t.loose&&r.includePrerelease===!!t.includePrerelease)return r;r=r.version;}else if(typeof r!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof r}".`);if(r.length>ct)throw new TypeError(`version is longer than ${ct} characters`);Se("SemVer",r,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=r.trim().match(t.loose?Le[Be.LOOSE]:Le[Be.FULL]);if(!i)throw new TypeError(`Invalid Version: ${r}`);if(this.raw=r,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>Me||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Me||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Me||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<Me)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format();}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(r){if(Se("SemVer.compare",this.version,this.options,r),!(r instanceof e)){if(typeof r=="string"&&r===this.version)return 0;r=new e(r,this.options);}return r.version===this.version?0:this.compareMain(r)||this.comparePre(r)}compareMain(r){return r instanceof e||(r=new e(r,this.options)),this.major<r.major?-1:this.major>r.major?1:this.minor<r.minor?-1:this.minor>r.minor?1:this.patch<r.patch?-1:this.patch>r.patch?1:0}comparePre(r){if(r instanceof e||(r=new e(r,this.options)),this.prerelease.length&&!r.prerelease.length)return -1;if(!this.prerelease.length&&r.prerelease.length)return 1;if(!this.prerelease.length&&!r.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=r.prerelease[t];if(Se("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return -1;if(i===n)continue;return ar(i,n)}while(++t)}compareBuild(r){r instanceof e||(r=new e(r,this.options));let t=0;do{let i=this.build[t],n=r.build[t];if(Se("build compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return -1;if(i===n)continue;return ar(i,n)}while(++t)}inc(r,t,i){if(r.startsWith("pre")){if(!t&&i===false)throw new Error("invalid increment argument: identifier is empty");if(t){let n=`-${t}`.match(this.options.loose?Le[Be.PRERELEASELOOSE]:Le[Be.PRERELEASE]);if(!n||n[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(r){case "premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,i);break;case "preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,i);break;case "prepatch":this.prerelease.length=0,this.inc("patch",t,i),this.inc("pre",t,i);break;case "prerelease":this.prerelease.length===0&&this.inc("patch",t,i),this.inc("pre",t,i);break;case "release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case "major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case "minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case "patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case "pre":{let n=Number(i)?1:0;if(this.prerelease.length===0)this.prerelease=[n];else {let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&i===false)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n);}}if(t){let s=[t,n];i===false&&(s=[t]),ar(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s;}break}default:throw new Error(`invalid increment argument: ${r}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ft.exports=sr;});var dt=x((Xo,ut)=>{u();var ht=Fe(),jn=(e,r,t=false)=>{if(e instanceof ht)return e;try{return new ht(e,r)}catch(i){if(!t)return null;throw i}};ut.exports=jn;});var gt=x((Jo,mt)=>{u();var Tn=Fe(),Nn=dt(),{safeRe:je,t:Te}=nr(),$n=(e,r)=>{if(e instanceof Tn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;r=r||{};let t=null;if(!r.rtl)t=e.match(r.includePrerelease?je[Te.COERCEFULL]:je[Te.COERCE]);else {let h=r.includePrerelease?je[Te.COERCERTLFULL]:je[Te.COERCERTL],d;for(;(d=h.exec(e))&&(!t||t.index+t[0].length!==e.length);)(!t||d.index+d[0].length!==t.index+t[0].length)&&(t=d),h.lastIndex=d.index+d[1].length+d[2].length;h.lastIndex=-1;}if(t===null)return null;let i=t[2],n=t[3]||"0",s=t[4]||"0",o=r.includePrerelease&&t[5]?`-${t[5]}`:"",c=r.includePrerelease&&t[6]?`+${t[6]}`:"";return Nn(`${i}.${n}.${s}${o}${c}`,r)};mt.exports=$n;});var wt=x((Yo,bt)=>{u();var pt=Fe(),Cn=(e,r,t)=>new pt(e,t).compare(new pt(r,t));bt.exports=Cn;});var Et=x((el,yt)=>{u();var On=wt(),_n=(e,r,t)=>On(e,r,t)>=0;yt.exports=_n;});var or=x((tl,qn)=>{qn.exports={name:"sharp",description:"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",version:"0.33.0",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://github.com/lovell/sharp",contributors:["Pierre Inglebert <pierre.inglebert@gmail.com>","Jonathan Ong <jonathanrichardong@gmail.com>","Chanon Sajjamanochai <chanon.s@gmail.com>","Juliano Julio <julianojulio@gmail.com>","Daniel Gasienica <daniel@gasienica.ch>","Julian Walker <julian@fiftythree.com>","Amit Pitaru <pitaru.amit@gmail.com>","Brandon Aaron <hello.brandon@aaron.sh>","Andreas Lind <andreas@one.com>","Maurus Cuelenaere <mcuelenaere@gmail.com>","Linus Unneb\xE4ck <linus@folkdatorn.se>","Victor Mateevitsi <mvictoras@gmail.com>","Alaric Holloway <alaric.holloway@gmail.com>","Bernhard K. Weisshuhn <bkw@codingforce.com>","Chris Riley <criley@primedia.com>","David Carley <dacarley@gmail.com>","John Tobin <john@limelightmobileinc.com>","Kenton Gray <kentongray@gmail.com>","Felix B\xFCnemann <Felix.Buenemann@gmail.com>","Samy Al Zahrani <samyalzahrany@gmail.com>","Chintan Thakkar <lemnisk8@gmail.com>","F. Orlando Galashan <frulo@gmx.de>","Kleis Auke Wolthuizen <info@kleisauke.nl>","Matt Hirsch <mhirsch@media.mit.edu>","Matthias Thoemmes <thoemmes@gmail.com>","Patrick Paskaris <patrick@paskaris.gr>","J\xE9r\xE9my Lal <kapouer@melix.org>","Rahul Nanwani <r.nanwani@gmail.com>","Alice Monday <alice0meta@gmail.com>","Kristo Jorgenson <kristo.jorgenson@gmail.com>","YvesBos <yves_bos@outlook.com>","Guy Maliar <guy@tailorbrands.com>","Nicolas Coden <nicolas@ncoden.fr>","Matt Parrish <matt.r.parrish@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Matthew McEachen <matthew+github@mceachen.org>","Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>","Kenric D'Souza <kenric.dsouza@gmail.com>","Oleh Aleinyk <oleg.aleynik@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Andrea Bianco <andrea.bianco@unibas.ch>","Rik Heywood <rik@rik.org>","Thomas Parisot <hi@oncletom.io>","Nathan Graves <nathanrgraves+github@gmail.com>","Tom Lokhorst <tom@lokhorst.eu>","Espen Hovlandsdal <espen@hovlandsdal.com>","Sylvain Dumont <sylvain.dumont35@gmail.com>","Alun Davies <alun.owain.davies@googlemail.com>","Aidan Hoolachan <ajhoolachan21@gmail.com>","Axel Eirola <axel.eirola@iki.fi>","Freezy <freezy@xbmc.org>","Daiz <taneli.vatanen@gmail.com>","Julian Aubourg <j@ubourg.net>","Keith Belovay <keith@picthrive.com>","Michael B. Klein <mbklein@gmail.com>","Jordan Prudhomme <jordan@raboland.fr>","Ilya Ovdin <iovdin@gmail.com>","Andargor <andargor@yahoo.com>","Paul Neave <paul.neave@gmail.com>","Brendan Kennedy <brenwken@gmail.com>","Brychan Bennett-Odlum <git@brychan.io>","Edward Silverton <e.silverton@gmail.com>","Roman Malieiev <aromaleev@gmail.com>","Tomas Szabo <tomas.szabo@deftomat.com>","Robert O'Rourke <robert@o-rourke.org>","Guillermo Alfonso Varela Chouci\xF1o <guillevch@gmail.com>","Christian Flintrup <chr@gigahost.dk>","Manan Jadhav <manan@motionden.com>","Leon Radley <leon@radley.se>","alza54 <alza54@thiocod.in>","Jacob Smith <jacob@frende.me>","Michael Nutt <michael@nutt.im>","Brad Parham <baparham@gmail.com>","Taneli Vatanen <taneli.vatanen@gmail.com>","Joris Dugu\xE9 <zaruike10@gmail.com>","Chris Banks <christopher.bradley.banks@gmail.com>","Ompal Singh <ompal.hitm09@gmail.com>","Brodan <christopher.hranj@gmail.com","Ankur Parihar <ankur.github@gmail.com>","Brahim Ait elhaj <brahima@gmail.com>","Mart Jansink <m.jansink@gmail.com>","Lachlan Newman <lachnewman007@gmail.com>","Dennis Beatty <dennis@dcbeatty.com>","Ingvar Stepanyan <me@rreverser.com>"],scripts:{install:"node install/check",clean:"rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",test:"npm run test-lint && npm run test-unit && npm run test-licensing && npm run test-types","test-lint":"semistandard && cpplint","test-unit":"nyc --reporter=lcov --reporter=text --check-coverage --branches=100 mocha","test-licensing":'license-checker --production --summary --onlyAllow="Apache-2.0;BSD;ISC;LGPL-3.0-or-later;MIT"',"test-leak":"./test/leak/leak.sh","test-types":"tsd","package-from-local-build":"node npm/from-local-build","package-from-github-release":"node npm/from-github-release","docs-build":"node docs/build && node docs/search-index/build","docs-serve":"cd docs && npx serve","docs-publish":"cd docs && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"},type:"commonjs",main:"lib/index.js",types:"lib/index.d.ts",files:["install","lib","src/*.{cc,h,gyp}"],repository:{type:"git",url:"git://github.com/lovell/sharp.git"},keywords:["jpeg","png","webp","avif","tiff","gif","svg","jp2","dzi","image","resize","thumbnail","crop","embed","libvips","vips"],dependencies:{color:"^4.2.3","detect-libc":"^2.0.2",semver:"^7.5.4"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.33.0","@img/sharp-darwin-x64":"0.33.0","@img/sharp-libvips-darwin-arm64":"1.0.0","@img/sharp-libvips-darwin-x64":"1.0.0","@img/sharp-libvips-linux-arm":"1.0.0","@img/sharp-libvips-linux-arm64":"1.0.0","@img/sharp-libvips-linux-s390x":"1.0.0","@img/sharp-libvips-linux-x64":"1.0.0","@img/sharp-libvips-linuxmusl-arm64":"1.0.0","@img/sharp-libvips-linuxmusl-x64":"1.0.0","@img/sharp-linux-arm":"0.33.0","@img/sharp-linux-arm64":"0.33.0","@img/sharp-linux-s390x":"0.33.0","@img/sharp-linux-x64":"0.33.0","@img/sharp-linuxmusl-arm64":"0.33.0","@img/sharp-linuxmusl-x64":"0.33.0","@img/sharp-wasm32":"0.33.0","@img/sharp-win32-ia32":"0.33.0","@img/sharp-win32-x64":"0.33.0"},devDependencies:{"@emnapi/runtime":"^0.44.0","@img/sharp-libvips-dev":"1.0.0","@img/sharp-libvips-dev-wasm32":"1.0.0","@img/sharp-libvips-win32-ia32":"1.0.0","@img/sharp-libvips-win32-x64":"1.0.0","@types/node":"*",async:"^3.2.5",cc:"^3.0.1",emnapi:"^0.44.0","exif-reader":"^2.0.0","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^8.0.0","license-checker":"^25.0.1",mocha:"^10.2.0","node-addon-api":"^7.0.0",nyc:"^15.1.0",prebuild:"^12.1.0",semistandard:"^17.0.0","tar-fs":"^3.0.4",tsd:"^0.29.0"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0",libvips:">=8.15.0"},funding:{url:"https://opencollective.com/libvips"},binary:{napi_versions:[9]},semistandard:{env:["mocha"]},cc:{linelength:"120",filter:["build/include"]},nyc:{include:["lib"]},tsd:{directory:"test/types/"}};});var cr=x((il,kt)=>{u();var{spawnSync:$e}=L("child_process"),Dn=gt(),zn=Et(),vt=ke(),{engines:Un}=or(),Gn=process.env.npm_package_config_libvips||Un.libvips,xt=Dn(Gn).version,Wn=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-ia32","win32-x64"],Ce={encoding:"utf8",shell:true},lr=e=>{e instanceof Error?console.error(`sharp: Installation error: ${e.message}`):console.log(`sharp: ${e}`);},It=()=>vt.isNonGlibcLinuxSync()?vt.familySync():"",Hn=()=>`${process.platform}${It()}-${process.arch}`,Ne=()=>{if(Pt())return "wasm32";let{npm_config_arch:e,npm_config_platform:r,npm_config_libc:t}=process.env,i=typeof t=="string"?t:It();return `${r||process.platform}${i}-${e||process.arch}`},Vn=()=>{try{return L(`@img/sharp-libvips-dev-${Ne()}/include`)}catch{try{return L("@img/sharp-libvips-dev/include")}catch{}}return ""},Xn=()=>{try{return L("@img/sharp-libvips-dev/cplusplus")}catch{}return ""},Qn=()=>{try{return L(`@img/sharp-libvips-dev-${Ne()}/lib`)}catch{try{return L(`@img/sharp-libvips-${Ne()}/lib`)}catch{}}return ""},Pt=()=>{let{CC:e}=process.env;return !!(e&&e.endsWith("/emcc"))},Jn=()=>process.platform==="darwin"&&process.arch==="x64"?($e("sysctl sysctl.proc_translated",Ce).stdout||"").trim()==="sysctl.proc_translated: 1":false,Kn=()=>$e(`node-gyp rebuild --directory=src ${Pt()?"--nodedir=emscripten":""}`,{...Ce,stdio:"inherit"}).status,Rt=()=>process.platform!=="win32"?($e("pkg-config --modversion vips-cpp",{...Ce,env:{...process.env,PKG_CONFIG_PATH:At()}}).stdout||"").trim():"",At=()=>process.platform!=="win32"?[($e('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',Ce).stdout||"").trim(),process.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":"):"",Yn=()=>{if(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)return lr("Detected SHARP_IGNORE_GLOBAL_LIBVIPS, skipping search for globally-installed libvips"),false;if(Jn())return lr("Detected Rosetta, skipping search for globally-installed libvips"),false;let e=Rt();return !!e&&zn(e,xt)};kt.exports={minimumLibvipsVersion:xt,prebuiltPlatforms:Wn,buildPlatformArch:Ne,buildSharpLibvipsIncludeDir:Vn,buildSharpLibvipsCPlusPlusDir:Xn,buildSharpLibvipsLibDir:Qn,runtimePlatformArch:Hn,log:lr,spawnRebuild:Kn,globalLibvipsVersion:Rt,pkgConfigPath:At,useGlobalLibvips:Yn};});var me=x((sl,St)=>{u();var{familySync:Zn,versionSync:ea}=ke(),{runtimePlatformArch:ra,prebuiltPlatforms:ta,minimumLibvipsVersion:ia}=cr(),ee=ra(),na=[`../src/build/Release/sharp-${ee}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${ee}/sharp.node`,"@img/sharp-wasm32/sharp.node"],fr,Oe=[];for(let e of na)try{fr=L(e);break}catch(r){Oe.push(r);}if(fr)St.exports=fr;else {let[e,r,t]=["linux","darwin","win32"].map(s=>ee.startsWith(s)),i=[`Could not load the "sharp" module using the ${ee} runtime`];Oe.forEach(s=>{s.code!=="MODULE_NOT_FOUND"&&i.push(`${s.code}: ${s.message}`);});let n=Oe.map(s=>s.message).join(" ");if(i.push("Possible solutions:"),ta.includes(ee)){let[s,o]=ee.split("-");i.push("- Add platform-specific dependencies:"),i.push(` npm install --os=${s} --cpu=${o} sharp`),i.push(" or"),i.push(` npm install --force @img/sharp-${ee}`);}else i.push(`- Manually install libvips >= ${ia}`),i.push("- Add experimental WebAssembly-based dependencies:"),i.push(" npm install --cpu=wasm32 sharp");if(e&&/symbol not found/i.test(n))try{let{engines:s}=L(`@img/sharp-libvips-${ee}/package`),o=`${Zn()} ${ea()}`,c=`${s.musl?"musl":"glibc"} ${s.musl||s.glibc}`;i.push("- Update your OS:"),i.push(` Found ${o}`),i.push(` Requires ${c}`);}catch{}throw r&&/Incompatible library version/.test(n)&&(i.push("- Update Homebrew:"),i.push(" brew update && brew upgrade vips")),Oe.some(s=>s.code==="ERR_DLOPEN_DISABLED")&&i.push("- Run Node.js without using the --no-addons flag"),process.versions.pnp&&(i.push("- Use a supported yarn linker, either pnpm or node-modules:"),i.push(" yarn config set nodeLinker node-modules")),t&&/The specified procedure could not be found/.test(n)?i.push("- Using the canvas package on Windows? See https://sharp.pixelplumbing.com/install#canvas-and-windows"):i.push("- Consult the installation documentation: https://sharp.pixelplumbing.com/install"),new Error(i.join(`
2
+ `))}});var Lt=x((cl,Mt)=>{u();var aa=L("util"),hr=L("stream"),sa=G();me();var oa=aa.debuglog("sharp"),ae=function(e,r){if(arguments.length===1&&!sa.defined(e))throw new Error("Invalid input");return this instanceof ae?(hr.Duplex.call(this),this.options={topOffsetPre:-1,leftOffsetPre:-1,widthPre:-1,heightPre:-1,topOffsetPost:-1,leftOffsetPost:-1,widthPost:-1,heightPost:-1,width:-1,height:-1,canvas:"crop",position:0,resizeBackground:[0,0,0,255],useExifOrientation:false,angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBeforePreExtract:false,flip:false,flop:false,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:false,withoutReduction:false,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:true,tint:[-1,0,0,0],flatten:false,flattenBackground:[0,0,0],unflatten:false,negate:false,negateAlpha:true,medianSize:0,blurSigma:0,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:true,trimBackground:[],trimThreshold:-1,trimLineArt:false,gamma:0,gammaOut:0,greyscale:false,normalise:false,normaliseLower:1,normaliseUpper:99,claheWidth:0,claheHeight:0,claheMaxSlope:3,brightness:1,saturation:1,hue:0,lightness:0,booleanBufferIn:null,booleanFileIn:"",joinChannelIn:[],extractChannel:-1,removeAlpha:false,ensureAlpha:-1,colourspace:"srgb",colourspaceInput:"last",composite:[],fileOut:"",formatOut:"input",streamOut:false,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:true,resolveWithObject:false,jpegQuality:80,jpegProgressive:false,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:false,jpegOvershootDeringing:false,jpegOptimiseScans:false,jpegOptimiseCoding:true,jpegQuantisationTable:0,pngProgressive:false,pngCompressionLevel:6,pngAdaptiveFiltering:false,pngPalette:false,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:false,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:false,webpNearLossless:false,webpSmartSubsample:false,webpPreset:"default",webpEffort:4,webpMinSize:false,webpMixed:false,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifReuse:true,gifProgressive:false,tiffQuality:80,tiffCompression:"jpeg",tiffPredictor:"horizontal",tiffPyramid:false,tiffMiniswhite:false,tiffBitdepth:8,tiffTile:false,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:false,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:false,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:false,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],debuglog:t=>{this.emit("warning",t),oa(t);},queueListener:function(t){ae.queue.emit("change",t);}},this.options.input=this._createInputDescriptor(e,r,{allowStream:true}),this):new ae(e,r)};Object.setPrototypeOf(ae.prototype,hr.Duplex.prototype);Object.setPrototypeOf(ae,hr.Duplex);function la(){let e=this.constructor.call();return e.options=Object.assign({},this.options),this._isStreamInput()&&this.on("finish",()=>{this._flattenBufferIn(),e.options.bufferIn=this.options.bufferIn,e.emit("finish");}),e}Object.assign(ae.prototype,{clone:la});Mt.exports=ae;});var ur=x((hl,Bt)=>{u();Bt.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};});var jt=x((dl,Ft)=>{u();Ft.exports=function(r){return !r||typeof r=="string"?false:r instanceof Array||Array.isArray(r)||r.length>=0&&(r.splice instanceof Function||Object.getOwnPropertyDescriptor(r,r.length-1)&&r.constructor.name!=="String")};});var $t=x((gl,Nt)=>{u();var ca=jt(),fa=Array.prototype.concat,ha=Array.prototype.slice,Tt=Nt.exports=function(r){for(var t=[],i=0,n=r.length;i<n;i++){var s=r[i];ca(s)?t=fa.call(t,ha.call(s)):t.push(s);}return t};Tt.wrap=function(e){return function(){return e(Tt(arguments))}};});var qt=x((bl,_t)=>{u();var ge=ur(),pe=$t(),Ct=Object.hasOwnProperty,Ot=Object.create(null);for(_e in ge)Ct.call(ge,_e)&&(Ot[ge[_e]]=_e);var _e,N=_t.exports={to:{},get:{}};N.get=function(e){var r=e.substring(0,3).toLowerCase(),t,i;switch(r){case "hsl":t=N.get.hsl(e),i="hsl";break;case "hwb":t=N.get.hwb(e),i="hwb";break;default:t=N.get.rgb(e),i="rgb";break}return t?{model:i,value:t}:null};N.get.rgb=function(e){if(!e)return null;var r=/^#([a-f0-9]{3,4})$/i,t=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,i=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,n=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,s=/^(\w+)$/,o=[0,0,0,1],c,h,d;if(c=e.match(t)){for(d=c[2],c=c[1],h=0;h<3;h++){var w=h*2;o[h]=parseInt(c.slice(w,w+2),16);}d&&(o[3]=parseInt(d,16)/255);}else if(c=e.match(r)){for(c=c[1],d=c[3],h=0;h<3;h++)o[h]=parseInt(c[h]+c[h],16);d&&(o[3]=parseInt(d+d,16)/255);}else if(c=e.match(i)){for(h=0;h<3;h++)o[h]=parseInt(c[h+1],0);c[4]&&(c[5]?o[3]=parseFloat(c[4])*.01:o[3]=parseFloat(c[4]));}else if(c=e.match(n)){for(h=0;h<3;h++)o[h]=Math.round(parseFloat(c[h+1])*2.55);c[4]&&(c[5]?o[3]=parseFloat(c[4])*.01:o[3]=parseFloat(c[4]));}else return (c=e.match(s))?c[1]==="transparent"?[0,0,0,0]:Ct.call(ge,c[1])?(o=ge[c[1]],o[3]=1,o):null:null;for(h=0;h<3;h++)o[h]=re(o[h],0,255);return o[3]=re(o[3],0,1),o};N.get.hsl=function(e){if(!e)return null;var r=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,t=e.match(r);if(t){var i=parseFloat(t[4]),n=(parseFloat(t[1])%360+360)%360,s=re(parseFloat(t[2]),0,100),o=re(parseFloat(t[3]),0,100),c=re(isNaN(i)?1:i,0,1);return [n,s,o,c]}return null};N.get.hwb=function(e){if(!e)return null;var r=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,t=e.match(r);if(t){var i=parseFloat(t[4]),n=(parseFloat(t[1])%360+360)%360,s=re(parseFloat(t[2]),0,100),o=re(parseFloat(t[3]),0,100),c=re(isNaN(i)?1:i,0,1);return [n,s,o,c]}return null};N.to.hex=function(){var e=pe(arguments);return "#"+qe(e[0])+qe(e[1])+qe(e[2])+(e[3]<1?qe(Math.round(e[3]*255)):"")};N.to.rgb=function(){var e=pe(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};N.to.rgb.percent=function(){var e=pe(arguments),r=Math.round(e[0]/255*100),t=Math.round(e[1]/255*100),i=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+r+"%, "+t+"%, "+i+"%)":"rgba("+r+"%, "+t+"%, "+i+"%, "+e[3]+")"};N.to.hsl=function(){var e=pe(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};N.to.hwb=function(){var e=pe(arguments),r="";return e.length>=4&&e[3]!==1&&(r=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+r+")"};N.to.keyword=function(e){return Ot[e.slice(0,3)]};function re(e,r,t){return Math.min(Math.max(r,e),t)}function qe(e){var r=Math.round(e).toString(16).toUpperCase();return r.length<2?"0"+r:r}});var dr=x((yl,zt)=>{u();var be=ur(),Dt={};for(let e of Object.keys(be))Dt[be[e]]=e;var p={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};zt.exports=p;for(let e of Object.keys(p)){if(!("channels"in p[e]))throw new Error("missing channels property: "+e);if(!("labels"in p[e]))throw new Error("missing channel labels property: "+e);if(p[e].labels.length!==p[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:r,labels:t}=p[e];delete p[e].channels,delete p[e].labels,Object.defineProperty(p[e],"channels",{value:r}),Object.defineProperty(p[e],"labels",{value:t});}p.rgb.hsl=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255,n=Math.min(r,t,i),s=Math.max(r,t,i),o=s-n,c,h;s===n?c=0:r===s?c=(t-i)/o:t===s?c=2+(i-r)/o:i===s&&(c=4+(r-t)/o),c=Math.min(c*60,360),c<0&&(c+=360);let d=(n+s)/2;return s===n?h=0:d<=.5?h=o/(s+n):h=o/(2-s-n),[c,h*100,d*100]};p.rgb.hsv=function(e){let r,t,i,n,s,o=e[0]/255,c=e[1]/255,h=e[2]/255,d=Math.max(o,c,h),w=d-Math.min(o,c,h),P=function(j){return (d-j)/6/w+1/2};return w===0?(n=0,s=0):(s=w/d,r=P(o),t=P(c),i=P(h),o===d?n=i-t:c===d?n=1/3+r-i:h===d&&(n=2/3+t-r),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,d*100]};p.rgb.hwb=function(e){let r=e[0],t=e[1],i=e[2],n=p.rgb.hsl(e)[0],s=1/255*Math.min(r,Math.min(t,i));return i=1-1/255*Math.max(r,Math.max(t,i)),[n,s*100,i*100]};p.rgb.cmyk=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255,n=Math.min(1-r,1-t,1-i),s=(1-r-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,c=(1-i-n)/(1-n)||0;return [s*100,o*100,c*100,n*100]};function ua(e,r){return (e[0]-r[0])**2+(e[1]-r[1])**2+(e[2]-r[2])**2}p.rgb.keyword=function(e){let r=Dt[e];if(r)return r;let t=1/0,i;for(let n of Object.keys(be)){let s=be[n],o=ua(e,s);o<t&&(t=o,i=n);}return i};p.keyword.rgb=function(e){return be[e]};p.rgb.xyz=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255;r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=r*.4124+t*.3576+i*.1805,s=r*.2126+t*.7152+i*.0722,o=r*.0193+t*.1192+i*.9505;return [n*100,s*100,o*100]};p.rgb.lab=function(e){let r=p.rgb.xyz(e),t=r[0],i=r[1],n=r[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),c=200*(i-n);return [s,o,c]};p.hsl.rgb=function(e){let r=e[0]/360,t=e[1]/100,i=e[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let c=2*i-n,h=[0,0,0];for(let d=0;d<3;d++)s=r+1/3*-(d-1),s<0&&s++,s>1&&s--,6*s<1?o=c+(n-c)*6*s:2*s<1?o=n:3*s<2?o=c+(n-c)*(2/3-s)*6:o=c,h[d]=o*255;return h};p.hsl.hsv=function(e){let r=e[0],t=e[1]/100,i=e[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,c=i===0?2*n/(s+n):2*t/(i+t);return [r,c*100,o*100]};p.hsv.rgb=function(e){let r=e[0]/60,t=e[1]/100,i=e[2]/100,n=Math.floor(r)%6,s=r-Math.floor(r),o=255*i*(1-t),c=255*i*(1-t*s),h=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return [i,h,o];case 1:return [c,i,o];case 2:return [o,i,h];case 3:return [o,c,i];case 4:return [h,o,i];case 5:return [i,o,c]}};p.hsv.hsl=function(e){let r=e[0],t=e[1]/100,i=e[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let c=(2-t)*n;return s=t*n,s/=c<=1?c:2-c,s=s||0,o/=2,[r,s*100,o*100]};p.hwb.rgb=function(e){let r=e[0]/360,t=e[1]/100,i=e[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*r),c=1-i;s=6*r-o,(o&1)!==0&&(s=1-s);let h=t+s*(c-t),d,w,P;switch(o){default:case 6:case 0:d=c,w=h,P=t;break;case 1:d=h,w=c,P=t;break;case 2:d=t,w=c,P=h;break;case 3:d=t,w=h,P=c;break;case 4:d=h,w=t,P=c;break;case 5:d=c,w=t,P=h;break}return [d*255,w*255,P*255]};p.cmyk.rgb=function(e){let r=e[0]/100,t=e[1]/100,i=e[2]/100,n=e[3]/100,s=1-Math.min(1,r*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),c=1-Math.min(1,i*(1-n)+n);return [s*255,o*255,c*255]};p.xyz.rgb=function(e){let r=e[0]/100,t=e[1]/100,i=e[2]/100,n,s,o;return n=r*3.2406+t*-1.5372+i*-0.4986,s=r*-0.9689+t*1.8758+i*.0415,o=r*.0557+t*-0.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};p.xyz.lab=function(e){let r=e[0],t=e[1],i=e[2];r/=95.047,t/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(r-t),o=200*(t-i);return [n,s,o]};p.lab.xyz=function(e){let r=e[0],t=e[1],i=e[2],n,s,o;s=(r+16)/116,n=t/500+s,o=s-i/200;let c=s**3,h=n**3,d=o**3;return s=c>.008856?c:(s-16/116)/7.787,n=h>.008856?h:(n-16/116)/7.787,o=d>.008856?d:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};p.lab.lch=function(e){let r=e[0],t=e[1],i=e[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return [r,o,n]};p.lch.lab=function(e){let r=e[0],t=e[1],n=e[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return [r,s,o]};p.rgb.ansi16=function(e,r=null){let[t,i,n]=e,s=r===null?p.rgb.hsv(e)[2]:r;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};p.hsv.ansi16=function(e){return p.rgb.ansi16(p.hsv.rgb(e),e[2])};p.rgb.ansi256=function(e){let r=e[0],t=e[1],i=e[2];return r===t&&t===i?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};p.ansi16.rgb=function(e){let r=e%10;if(r===0||r===7)return e>50&&(r+=3.5),r=r/10.5*255,[r,r,r];let t=(~~(e>50)+1)*.5,i=(r&1)*t*255,n=(r>>1&1)*t*255,s=(r>>2&1)*t*255;return [i,n,s]};p.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return [s,s,s]}e-=16;let r,t=Math.floor(e/36)/5*255,i=Math.floor((r=e%36)/6)/5*255,n=r%6/5*255;return [t,i,n]};p.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return "000000".substring(t.length)+t};p.hex.rgb=function(e){let r=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!r)return [0,0,0];let t=r[0];r[0].length===3&&(t=t.split("").map(c=>c+c).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return [n,s,o]};p.rgb.hcg=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255,n=Math.max(Math.max(r,t),i),s=Math.min(Math.min(r,t),i),o=n-s,c,h;return o<1?c=s/(1-o):c=0,o<=0?h=0:n===r?h=(t-i)/o%6:n===t?h=2+(i-r)/o:h=4+(r-t)/o,h/=6,h%=1,[h*360,o*100,c*100]};p.hsl.hcg=function(e){let r=e[1]/100,t=e[2]/100,i=t<.5?2*r*t:2*r*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[e[0],i*100,n*100]};p.hsv.hcg=function(e){let r=e[1]/100,t=e[2]/100,i=r*t,n=0;return i<1&&(n=(t-i)/(1-i)),[e[0],i*100,n*100]};p.hcg.rgb=function(e){let r=e[0]/360,t=e[1]/100,i=e[2]/100;if(t===0)return [i*255,i*255,i*255];let n=[0,0,0],s=r%1*6,o=s%1,c=1-o,h=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=c,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=c,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=c;}return h=(1-t)*i,[(t*n[0]+h)*255,(t*n[1]+h)*255,(t*n[2]+h)*255]};p.hcg.hsv=function(e){let r=e[1]/100,t=e[2]/100,i=r+t*(1-r),n=0;return i>0&&(n=r/i),[e[0],n*100,i*100]};p.hcg.hsl=function(e){let r=e[1]/100,i=e[2]/100*(1-r)+.5*r,n=0;return i>0&&i<.5?n=r/(2*i):i>=.5&&i<1&&(n=r/(2*(1-i))),[e[0],n*100,i*100]};p.hcg.hwb=function(e){let r=e[1]/100,t=e[2]/100,i=r+t*(1-r);return [e[0],(i-r)*100,(1-i)*100]};p.hwb.hcg=function(e){let r=e[1]/100,i=1-e[2]/100,n=i-r,s=0;return n<1&&(s=(i-n)/(1-n)),[e[0],n*100,s*100]};p.apple.rgb=function(e){return [e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};p.rgb.apple=function(e){return [e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};p.gray.rgb=function(e){return [e[0]/100*255,e[0]/100*255,e[0]/100*255]};p.gray.hsl=function(e){return [0,0,e[0]]};p.gray.hsv=p.gray.hsl;p.gray.hwb=function(e){return [0,100,e[0]]};p.gray.cmyk=function(e){return [0,0,0,e[0]]};p.gray.lab=function(e){return [e[0],0,0]};p.gray.hex=function(e){let r=Math.round(e[0]/100*255)&255,i=((r<<16)+(r<<8)+r).toString(16).toUpperCase();return "000000".substring(i.length)+i};p.rgb.gray=function(e){return [(e[0]+e[1]+e[2])/3/255*100]};});var Gt=x((vl,Ut)=>{u();var De=dr();function da(){let e={},r=Object.keys(De);for(let t=r.length,i=0;i<t;i++)e[r[i]]={distance:-1,parent:null};return e}function ma(e){let r=da(),t=[e];for(r[e].distance=0;t.length;){let i=t.pop(),n=Object.keys(De[i]);for(let s=n.length,o=0;o<s;o++){let c=n[o],h=r[c];h.distance===-1&&(h.distance=r[i].distance+1,h.parent=i,t.unshift(c));}}return r}function ga(e,r){return function(t){return r(e(t))}}function pa(e,r){let t=[r[e].parent,e],i=De[r[e].parent][e],n=r[e].parent;for(;r[n].parent;)t.unshift(r[n].parent),i=ga(De[r[n].parent][n],i),n=r[n].parent;return i.conversion=t,i}Ut.exports=function(e){let r=ma(e),t={},i=Object.keys(r);for(let n=i.length,s=0;s<n;s++){let o=i[s];r[o].parent!==null&&(t[o]=pa(o,r));}return t};});var Ht=x((Il,Wt)=>{u();var mr=dr(),ba=Gt(),ce={},wa=Object.keys(mr);function ya(e){let r=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),e(t))};return "conversion"in e&&(r.conversion=e.conversion),r}function Ea(e){let r=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=e(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return "conversion"in e&&(r.conversion=e.conversion),r}wa.forEach(e=>{ce[e]={},Object.defineProperty(ce[e],"channels",{value:mr[e].channels}),Object.defineProperty(ce[e],"labels",{value:mr[e].labels});let r=ba(e);Object.keys(r).forEach(i=>{let n=r[i];ce[e][i]=Ea(n),ce[e][i].raw=ya(n);});});Wt.exports=ce;});var Ue=x((Rl,Xt)=>{u();var fe=qt(),$=Ht(),Vt=["keyword","gray","hex"],gr={};for(let e of Object.keys($))gr[[...$[e].labels].sort().join("")]=e;var ze={};function F(e,r){if(!(this instanceof F))return new F(e,r);if(r&&r in Vt&&(r=null),r&&!(r in $))throw new Error("Unknown model: "+r);let t,i;if(e==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof F)this.model=e.model,this.color=[...e.color],this.valpha=e.valpha;else if(typeof e=="string"){let n=fe.get(e);if(n===null)throw new Error("Unable to parse color from string: "+e);this.model=n.model,i=$[this.model].channels,this.color=n.value.slice(0,i),this.valpha=typeof n.value[i]=="number"?n.value[i]:1;}else if(e.length>0){this.model=r||"rgb",i=$[this.model].channels;let n=Array.prototype.slice.call(e,0,i);this.color=pr(n,i),this.valpha=typeof e[i]=="number"?e[i]:1;}else if(typeof e=="number")this.model="rgb",this.color=[e>>16&255,e>>8&255,e&255],this.valpha=1;else {this.valpha=1;let n=Object.keys(e);"alpha"in e&&(n.splice(n.indexOf("alpha"),1),this.valpha=typeof e.alpha=="number"?e.alpha:0);let s=n.sort().join("");if(!(s in gr))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=gr[s];let{labels:o}=$[this.model],c=[];for(t=0;t<o.length;t++)c.push(e[o[t]]);this.color=pr(c);}if(ze[this.model])for(i=$[this.model].channels,t=0;t<i;t++){let n=ze[this.model][t];n&&(this.color[t]=n(this.color[t]));}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this);}F.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(e){let r=this.model in fe.to?this:this.rgb();r=r.round(typeof e=="number"?e:1);let t=r.valpha===1?r.color:[...r.color,this.valpha];return fe.to[r.model](t)},percentString(e){let r=this.rgb().round(typeof e=="number"?e:1),t=r.valpha===1?r.color:[...r.color,this.valpha];return fe.to.rgb.percent(t)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let e={},{channels:r}=$[this.model],{labels:t}=$[this.model];for(let i=0;i<r;i++)e[t[i]]=this.color[i];return this.valpha!==1&&(e.alpha=this.valpha),e},unitArray(){let e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,this.valpha!==1&&e.push(this.valpha),e},unitObject(){let e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,this.valpha!==1&&(e.alpha=this.valpha),e},round(e){return e=Math.max(e||0,0),new F([...this.color.map(xa(e)),this.valpha],this.model)},alpha(e){return e!==void 0?new F([...this.color,Math.max(0,Math.min(1,e))],this.model):this.valpha},red:M("rgb",0,B(255)),green:M("rgb",1,B(255)),blue:M("rgb",2,B(255)),hue:M(["hsl","hsv","hsl","hwb","hcg"],0,e=>(e%360+360)%360),saturationl:M("hsl",1,B(100)),lightness:M("hsl",2,B(100)),saturationv:M("hsv",1,B(100)),value:M("hsv",2,B(100)),chroma:M("hcg",1,B(100)),gray:M("hcg",2,B(100)),white:M("hwb",1,B(100)),wblack:M("hwb",2,B(100)),cyan:M("cmyk",0,B(100)),magenta:M("cmyk",1,B(100)),yellow:M("cmyk",2,B(100)),black:M("cmyk",3,B(100)),x:M("xyz",0,B(95.047)),y:M("xyz",1,B(100)),z:M("xyz",2,B(108.833)),l:M("lab",0,B(100)),a:M("lab",1),b:M("lab",2),keyword(e){return e!==void 0?new F(e):$[this.model].keyword(this.color)},hex(e){return e!==void 0?new F(e):fe.to.hex(this.rgb().round().color)},hexa(e){if(e!==void 0)return new F(e);let r=this.rgb().round().color,t=Math.round(this.valpha*255).toString(16).toUpperCase();return t.length===1&&(t="0"+t),fe.to.hex(r)+t},rgbNumber(){let e=this.rgb().color;return (e[0]&255)<<16|(e[1]&255)<<8|e[2]&255},luminosity(){let e=this.rgb().color,r=[];for(let[t,i]of e.entries()){let n=i/255;r[t]=n<=.04045?n/12.92:((n+.055)/1.055)**2.4;}return .2126*r[0]+.7152*r[1]+.0722*r[2]},contrast(e){let r=this.luminosity(),t=e.luminosity();return r>t?(r+.05)/(t+.05):(t+.05)/(r+.05)},level(e){let r=this.contrast(e);return r>=7?"AAA":r>=4.5?"AA":""},isDark(){let e=this.rgb().color;return (e[0]*2126+e[1]*7152+e[2]*722)/1e4<128},isLight(){return !this.isDark()},negate(){let e=this.rgb();for(let r=0;r<3;r++)e.color[r]=255-e.color[r];return e},lighten(e){let r=this.hsl();return r.color[2]+=r.color[2]*e,r},darken(e){let r=this.hsl();return r.color[2]-=r.color[2]*e,r},saturate(e){let r=this.hsl();return r.color[1]+=r.color[1]*e,r},desaturate(e){let r=this.hsl();return r.color[1]-=r.color[1]*e,r},whiten(e){let r=this.hwb();return r.color[1]+=r.color[1]*e,r},blacken(e){let r=this.hwb();return r.color[2]+=r.color[2]*e,r},grayscale(){let e=this.rgb().color,r=e[0]*.3+e[1]*.59+e[2]*.11;return F.rgb(r,r,r)},fade(e){return this.alpha(this.valpha-this.valpha*e)},opaquer(e){return this.alpha(this.valpha+this.valpha*e)},rotate(e){let r=this.hsl(),t=r.color[0];return t=(t+e)%360,t=t<0?360+t:t,r.color[0]=t,r},mix(e,r){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);let t=e.rgb(),i=this.rgb(),n=r===void 0?.5:r,s=2*n-1,o=t.alpha()-i.alpha(),c=((s*o===-1?s:(s+o)/(1+s*o))+1)/2,h=1-c;return F.rgb(c*t.red()+h*i.red(),c*t.green()+h*i.green(),c*t.blue()+h*i.blue(),t.alpha()*n+i.alpha()*(1-n))}};for(let e of Object.keys($)){if(Vt.includes(e))continue;let{channels:r}=$[e];F.prototype[e]=function(...t){return this.model===e?new F(this):t.length>0?new F(t,e):new F([...Ia($[this.model][e].raw(this.color)),this.valpha],e)},F[e]=function(...t){let i=t[0];return typeof i=="number"&&(i=pr(t,r)),new F(i,e)};}function va(e,r){return Number(e.toFixed(r))}function xa(e){return function(r){return va(r,e)}}function M(e,r,t){e=Array.isArray(e)?e:[e];for(let i of e)(ze[i]||(ze[i]=[]))[r]=t;return e=e[0],function(i){let n;return i!==void 0?(t&&(i=t(i)),n=this[e](),n.color[r]=i,n):(n=this[e]().color[r],t&&(n=t(n)),n)}}function B(e){return function(r){return Math.max(0,Math.min(e,r))}}function Ia(e){return Array.isArray(e)?e:[e]}function pr(e,r){for(let t=0;t<r;t++)typeof e[t]!="number"&&(e[t]=0);return e}Xt.exports=F;});var Kt=x((kl,Jt)=>{u();var Pa=Ue(),f=G(),te=me(),Ra={left:"low",center:"centre",centre:"centre",right:"high"};function Qt(e){let{raw:r,density:t,limitInputPixels:i,ignoreIcc:n,unlimited:s,sequentialRead:o,failOn:c,failOnError:h,animated:d,page:w,pages:P,subifd:j}=e;return [r,t,i,n,s,o,c,h,d,w,P,j].some(f.defined)?{raw:r,density:t,limitInputPixels:i,ignoreIcc:n,unlimited:s,sequentialRead:o,failOn:c,failOnError:h,animated:d,page:w,pages:P,subifd:j}:void 0}function Aa(e,r,t){let i={failOn:"warning",limitInputPixels:Math.pow(16383,2),ignoreIcc:false,unlimited:false,sequentialRead:true};if(f.string(e))i.file=e;else if(f.buffer(e)){if(e.length===0)throw Error("Input Buffer is empty");i.buffer=e;}else if(f.arrayBuffer(e)){if(e.byteLength===0)throw Error("Input bit Array is empty");i.buffer=Buffer.from(e,0,e.byteLength);}else if(f.typedArray(e)){if(e.length===0)throw Error("Input Bit Array is empty");i.buffer=Buffer.from(e.buffer,e.byteOffset,e.byteLength);}else if(f.plainObject(e)&&!f.defined(r))r=e,Qt(r)&&(i.buffer=[]);else if(!f.defined(e)&&!f.defined(r)&&f.object(t)&&t.allowStream)i.buffer=[];else throw new Error(`Unsupported input '${e}' of type ${typeof e}${f.defined(r)?` when also providing options of type ${typeof r}`:""}`);if(f.object(r)){if(f.defined(r.failOnError))if(f.bool(r.failOnError))i.failOn=r.failOnError?"warning":"none";else throw f.invalidParameterError("failOnError","boolean",r.failOnError);if(f.defined(r.failOn))if(f.string(r.failOn)&&f.inArray(r.failOn,["none","truncated","error","warning"]))i.failOn=r.failOn;else throw f.invalidParameterError("failOn","one of: none, truncated, error, warning",r.failOn);if(f.defined(r.density))if(f.inRange(r.density,1,1e5))i.density=r.density;else throw f.invalidParameterError("density","number between 1 and 100000",r.density);if(f.defined(r.ignoreIcc))if(f.bool(r.ignoreIcc))i.ignoreIcc=r.ignoreIcc;else throw f.invalidParameterError("ignoreIcc","boolean",r.ignoreIcc);if(f.defined(r.limitInputPixels))if(f.bool(r.limitInputPixels))i.limitInputPixels=r.limitInputPixels?Math.pow(16383,2):0;else if(f.integer(r.limitInputPixels)&&f.inRange(r.limitInputPixels,0,Number.MAX_SAFE_INTEGER))i.limitInputPixels=r.limitInputPixels;else throw f.invalidParameterError("limitInputPixels","positive integer",r.limitInputPixels);if(f.defined(r.unlimited))if(f.bool(r.unlimited))i.unlimited=r.unlimited;else throw f.invalidParameterError("unlimited","boolean",r.unlimited);if(f.defined(r.sequentialRead))if(f.bool(r.sequentialRead))i.sequentialRead=r.sequentialRead;else throw f.invalidParameterError("sequentialRead","boolean",r.sequentialRead);if(f.defined(r.raw))if(f.object(r.raw)&&f.integer(r.raw.width)&&r.raw.width>0&&f.integer(r.raw.height)&&r.raw.height>0&&f.integer(r.raw.channels)&&f.inRange(r.raw.channels,1,4))switch(i.rawWidth=r.raw.width,i.rawHeight=r.raw.height,i.rawChannels=r.raw.channels,i.rawPremultiplied=!!r.raw.premultiplied,e.constructor){case Uint8Array:case Uint8ClampedArray:i.rawDepth="uchar";break;case Int8Array:i.rawDepth="char";break;case Uint16Array:i.rawDepth="ushort";break;case Int16Array:i.rawDepth="short";break;case Uint32Array:i.rawDepth="uint";break;case Int32Array:i.rawDepth="int";break;case Float32Array:i.rawDepth="float";break;case Float64Array:i.rawDepth="double";break;default:i.rawDepth="uchar";break}else throw new Error("Expected width, height and channels for raw pixel input");if(f.defined(r.animated))if(f.bool(r.animated))i.pages=r.animated?-1:1;else throw f.invalidParameterError("animated","boolean",r.animated);if(f.defined(r.pages))if(f.integer(r.pages)&&f.inRange(r.pages,-1,1e5))i.pages=r.pages;else throw f.invalidParameterError("pages","integer between -1 and 100000",r.pages);if(f.defined(r.page))if(f.integer(r.page)&&f.inRange(r.page,0,1e5))i.page=r.page;else throw f.invalidParameterError("page","integer between 0 and 100000",r.page);if(f.defined(r.level))if(f.integer(r.level)&&f.inRange(r.level,0,256))i.level=r.level;else throw f.invalidParameterError("level","integer between 0 and 256",r.level);if(f.defined(r.subifd))if(f.integer(r.subifd)&&f.inRange(r.subifd,-1,1e5))i.subifd=r.subifd;else throw f.invalidParameterError("subifd","integer between -1 and 100000",r.subifd);if(f.defined(r.create))if(f.object(r.create)&&f.integer(r.create.width)&&r.create.width>0&&f.integer(r.create.height)&&r.create.height>0&&f.integer(r.create.channels)){if(i.createWidth=r.create.width,i.createHeight=r.create.height,i.createChannels=r.create.channels,f.defined(r.create.noise)){if(!f.object(r.create.noise))throw new Error("Expected noise to be an object");if(!f.inArray(r.create.noise.type,["gaussian"]))throw new Error("Only gaussian noise is supported at the moment");if(!f.inRange(r.create.channels,1,4))throw f.invalidParameterError("create.channels","number between 1 and 4",r.create.channels);if(i.createNoiseType=r.create.noise.type,f.number(r.create.noise.mean)&&f.inRange(r.create.noise.mean,0,1e4))i.createNoiseMean=r.create.noise.mean;else throw f.invalidParameterError("create.noise.mean","number between 0 and 10000",r.create.noise.mean);if(f.number(r.create.noise.sigma)&&f.inRange(r.create.noise.sigma,0,1e4))i.createNoiseSigma=r.create.noise.sigma;else throw f.invalidParameterError("create.noise.sigma","number between 0 and 10000",r.create.noise.sigma)}else if(f.defined(r.create.background)){if(!f.inRange(r.create.channels,3,4))throw f.invalidParameterError("create.channels","number between 3 and 4",r.create.channels);let n=Pa(r.create.background);i.createBackground=[n.red(),n.green(),n.blue(),Math.round(n.alpha()*255)];}else throw new Error("Expected valid noise or background to create a new input image");delete i.buffer;}else throw new Error("Expected valid width, height and channels to create a new input image");if(f.defined(r.text))if(f.object(r.text)&&f.string(r.text.text)){if(i.textValue=r.text.text,f.defined(r.text.height)&&f.defined(r.text.dpi))throw new Error("Expected only one of dpi or height");if(f.defined(r.text.font))if(f.string(r.text.font))i.textFont=r.text.font;else throw f.invalidParameterError("text.font","string",r.text.font);if(f.defined(r.text.fontfile))if(f.string(r.text.fontfile))i.textFontfile=r.text.fontfile;else throw f.invalidParameterError("text.fontfile","string",r.text.fontfile);if(f.defined(r.text.width))if(f.number(r.text.width))i.textWidth=r.text.width;else throw f.invalidParameterError("text.textWidth","number",r.text.width);if(f.defined(r.text.height))if(f.number(r.text.height))i.textHeight=r.text.height;else throw f.invalidParameterError("text.height","number",r.text.height);if(f.defined(r.text.align))if(f.string(r.text.align)&&f.string(this.constructor.align[r.text.align]))i.textAlign=this.constructor.align[r.text.align];else throw f.invalidParameterError("text.align","valid alignment",r.text.align);if(f.defined(r.text.justify))if(f.bool(r.text.justify))i.textJustify=r.text.justify;else throw f.invalidParameterError("text.justify","boolean",r.text.justify);if(f.defined(r.text.dpi))if(f.number(r.text.dpi)&&f.inRange(r.text.dpi,1,1e5))i.textDpi=r.text.dpi;else throw f.invalidParameterError("text.dpi","number between 1 and 100000",r.text.dpi);if(f.defined(r.text.rgba))if(f.bool(r.text.rgba))i.textRgba=r.text.rgba;else throw f.invalidParameterError("text.rgba","bool",r.text.rgba);if(f.defined(r.text.spacing))if(f.number(r.text.spacing))i.textSpacing=r.text.spacing;else throw f.invalidParameterError("text.spacing","number",r.text.spacing);if(f.defined(r.text.wrap))if(f.string(r.text.wrap)&&f.inArray(r.text.wrap,["word","char","wordChar","none"]))i.textWrap=r.text.wrap;else throw f.invalidParameterError("text.wrap","one of: word, char, wordChar, none",r.text.wrap);delete i.buffer;}else throw new Error("Expected a valid string to create an image with text.")}else if(f.defined(r))throw new Error("Invalid input options "+r);return i}function ka(e,r,t){Array.isArray(this.options.input.buffer)?f.buffer(e)?(this.options.input.buffer.length===0&&this.on("finish",()=>{this.streamInFinished=true;}),this.options.input.buffer.push(e),t()):t(new Error("Non-Buffer data on Writable Stream")):t(new Error("Unexpected data on Writable Stream"));}function Sa(){this._isStreamInput()&&(this.options.input.buffer=Buffer.concat(this.options.input.buffer));}function Ma(){return Array.isArray(this.options.input.buffer)}function La(e){let r=Error();return f.fn(e)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),te.metadata(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);});}):te.metadata(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);}),this):this._isStreamInput()?new Promise((t,i)=>{let n=()=>{this._flattenBufferIn(),te.metadata(this.options,(s,o)=>{s?i(f.nativeError(s,r)):t(o);});};this.writableFinished?n():this.once("finish",n);}):new Promise((t,i)=>{te.metadata(this.options,(n,s)=>{n?i(f.nativeError(n,r)):t(s);});})}function Ba(e){let r=Error();return f.fn(e)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),te.stats(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);});}):te.stats(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);}),this):this._isStreamInput()?new Promise((t,i)=>{this.on("finish",function(){this._flattenBufferIn(),te.stats(this.options,(n,s)=>{n?i(f.nativeError(n,r)):t(s);});});}):new Promise((t,i)=>{te.stats(this.options,(n,s)=>{n?i(f.nativeError(n,r)):t(s);});})}Jt.exports=function(e){Object.assign(e.prototype,{_inputOptionsFromObject:Qt,_createInputDescriptor:Aa,_write:ka,_flattenBufferIn:Sa,_isStreamInput:Ma,metadata:La,stats:Ba}),e.align=Ra;};});var ii=x((Ml,ti)=>{u();var b=G(),Zt={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},ei={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Yt={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},ri={entropy:16,attention:17},br={nearest:"nearest",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3"},Fa={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},ja={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function wr(e){return e.angle%360!==0||e.useExifOrientation===true||e.rotationAngle!==0}function Ge(e){return e.width!==-1||e.height!==-1}function Ta(e,r,t){if(Ge(this.options)&&this.options.debuglog("ignoring previous resize options"),this.options.widthPost!==-1&&this.options.debuglog("operation order will be: extract, resize, extract"),b.defined(e))if(b.object(e)&&!b.defined(t))t=e;else if(b.integer(e)&&e>0)this.options.width=e;else throw b.invalidParameterError("width","positive integer",e);else this.options.width=-1;if(b.defined(r))if(b.integer(r)&&r>0)this.options.height=r;else throw b.invalidParameterError("height","positive integer",r);else this.options.height=-1;if(b.object(t)){if(b.defined(t.width))if(b.integer(t.width)&&t.width>0)this.options.width=t.width;else throw b.invalidParameterError("width","positive integer",t.width);if(b.defined(t.height))if(b.integer(t.height)&&t.height>0)this.options.height=t.height;else throw b.invalidParameterError("height","positive integer",t.height);if(b.defined(t.fit)){let i=ja[t.fit];if(b.string(i))this.options.canvas=i;else throw b.invalidParameterError("fit","valid fit",t.fit)}if(b.defined(t.position)){let i=b.integer(t.position)?t.position:ri[t.position]||ei[t.position]||Zt[t.position];if(b.integer(i)&&(b.inRange(i,0,8)||b.inRange(i,16,17)))this.options.position=i;else throw b.invalidParameterError("position","valid position/gravity/strategy",t.position)}if(this._setBackgroundColourOption("resizeBackground",t.background),b.defined(t.kernel))if(b.string(br[t.kernel]))this.options.kernel=br[t.kernel];else throw b.invalidParameterError("kernel","valid kernel name",t.kernel);b.defined(t.withoutEnlargement)&&this._setBooleanOption("withoutEnlargement",t.withoutEnlargement),b.defined(t.withoutReduction)&&this._setBooleanOption("withoutReduction",t.withoutReduction),b.defined(t.fastShrinkOnLoad)&&this._setBooleanOption("fastShrinkOnLoad",t.fastShrinkOnLoad);}return wr(this.options)&&Ge(this.options)&&(this.options.rotateBeforePreExtract=true),this}function Na(e){if(b.integer(e)&&e>0)this.options.extendTop=e,this.options.extendBottom=e,this.options.extendLeft=e,this.options.extendRight=e;else if(b.object(e)){if(b.defined(e.top))if(b.integer(e.top)&&e.top>=0)this.options.extendTop=e.top;else throw b.invalidParameterError("top","positive integer",e.top);if(b.defined(e.bottom))if(b.integer(e.bottom)&&e.bottom>=0)this.options.extendBottom=e.bottom;else throw b.invalidParameterError("bottom","positive integer",e.bottom);if(b.defined(e.left))if(b.integer(e.left)&&e.left>=0)this.options.extendLeft=e.left;else throw b.invalidParameterError("left","positive integer",e.left);if(b.defined(e.right))if(b.integer(e.right)&&e.right>=0)this.options.extendRight=e.right;else throw b.invalidParameterError("right","positive integer",e.right);if(this._setBackgroundColourOption("extendBackground",e.background),b.defined(e.extendWith))if(b.string(Yt[e.extendWith]))this.options.extendWith=Yt[e.extendWith];else throw b.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",e.extendWith)}else throw b.invalidParameterError("extend","integer or object",e);return this}function $a(e){let r=Ge(this.options)||this.options.widthPre!==-1?"Post":"Pre";return this.options[`width${r}`]!==-1&&this.options.debuglog("ignoring previous extract options"),["left","top","width","height"].forEach(function(t){let i=e[t];if(b.integer(i)&&i>=0)this.options[t+(t==="left"||t==="top"?"Offset":"")+r]=i;else throw b.invalidParameterError(t,"integer",i)},this),wr(this.options)&&!Ge(this.options)&&(this.options.widthPre===-1||this.options.widthPost===-1)&&(this.options.rotateBeforePreExtract=true),this}function Ca(e){if(this.options.trimThreshold=10,b.defined(e))if(b.object(e)){if(b.defined(e.background)&&this._setBackgroundColourOption("trimBackground",e.background),b.defined(e.threshold))if(b.number(e.threshold)&&e.threshold>=0)this.options.trimThreshold=e.threshold;else throw b.invalidParameterError("threshold","positive number",e.threshold);b.defined(e.lineArt)&&this._setBooleanOption("trimLineArt",e.lineArt);}else throw b.invalidParameterError("trim","object",e);return wr(this.options)&&(this.options.rotateBeforePreExtract=true),this}ti.exports=function(e){Object.assign(e.prototype,{resize:Ta,extend:Na,extract:$a,trim:Ca}),e.gravity=Zt,e.strategy=ri,e.kernel=br,e.fit=Fa,e.position=ei;};});var ai=x((Bl,ni)=>{u();var R=G(),yr={clear:"clear",source:"source",over:"over",in:"in",out:"out",atop:"atop",dest:"dest","dest-over":"dest-over","dest-in":"dest-in","dest-out":"dest-out","dest-atop":"dest-atop",xor:"xor",add:"add",saturate:"saturate",multiply:"multiply",screen:"screen",overlay:"overlay",darken:"darken",lighten:"lighten","colour-dodge":"colour-dodge","color-dodge":"colour-dodge","colour-burn":"colour-burn","color-burn":"colour-burn","hard-light":"hard-light","soft-light":"soft-light",difference:"difference",exclusion:"exclusion"};function Oa(e){if(!Array.isArray(e))throw R.invalidParameterError("images to composite","array",e);return this.options.composite=e.map(r=>{if(!R.object(r))throw R.invalidParameterError("image to composite","object",r);let t=this._inputOptionsFromObject(r),i={input:this._createInputDescriptor(r.input,t,{allowStream:false}),blend:"over",tile:false,left:0,top:0,hasOffset:false,gravity:0,premultiplied:false};if(R.defined(r.blend))if(R.string(yr[r.blend]))i.blend=yr[r.blend];else throw R.invalidParameterError("blend","valid blend name",r.blend);if(R.defined(r.tile))if(R.bool(r.tile))i.tile=r.tile;else throw R.invalidParameterError("tile","boolean",r.tile);if(R.defined(r.left))if(R.integer(r.left))i.left=r.left;else throw R.invalidParameterError("left","integer",r.left);if(R.defined(r.top))if(R.integer(r.top))i.top=r.top;else throw R.invalidParameterError("top","integer",r.top);if(R.defined(r.top)!==R.defined(r.left))throw new Error("Expected both left and top to be set");if(i.hasOffset=R.integer(r.top)&&R.integer(r.left),R.defined(r.gravity))if(R.integer(r.gravity)&&R.inRange(r.gravity,0,8))i.gravity=r.gravity;else if(R.string(r.gravity)&&R.integer(this.constructor.gravity[r.gravity]))i.gravity=this.constructor.gravity[r.gravity];else throw R.invalidParameterError("gravity","valid gravity",r.gravity);if(R.defined(r.premultiplied))if(R.bool(r.premultiplied))i.premultiplied=r.premultiplied;else throw R.invalidParameterError("premultiplied","boolean",r.premultiplied);return i}),this}ni.exports=function(e){e.prototype.composite=Oa,e.blend=yr;};});var oi=x((jl,si)=>{u();var _a=Ue(),l=G();function qa(e,r){if((this.options.useExifOrientation||this.options.angle||this.options.rotationAngle)&&this.options.debuglog("ignoring previous rotate options"),!l.defined(e))this.options.useExifOrientation=true;else if(l.integer(e)&&!(e%90))this.options.angle=e;else if(l.number(e)){if(this.options.rotationAngle=e,l.object(r)&&r.background){let t=_a(r.background);this.options.rotationBackground=[t.red(),t.green(),t.blue(),Math.round(t.alpha()*255)];}}else throw l.invalidParameterError("angle","numeric",e);return this}function Da(e){return this.options.flip=l.bool(e)?e:true,this}function za(e){return this.options.flop=l.bool(e)?e:true,this}function Ua(e,r){let t=[].concat(...e);if(t.length===4&&t.every(l.number))this.options.affineMatrix=t;else throw l.invalidParameterError("matrix","1x4 or 2x2 array",e);if(l.defined(r))if(l.object(r)){if(this._setBackgroundColourOption("affineBackground",r.background),l.defined(r.idx))if(l.number(r.idx))this.options.affineIdx=r.idx;else throw l.invalidParameterError("options.idx","number",r.idx);if(l.defined(r.idy))if(l.number(r.idy))this.options.affineIdy=r.idy;else throw l.invalidParameterError("options.idy","number",r.idy);if(l.defined(r.odx))if(l.number(r.odx))this.options.affineOdx=r.odx;else throw l.invalidParameterError("options.odx","number",r.odx);if(l.defined(r.ody))if(l.number(r.ody))this.options.affineOdy=r.ody;else throw l.invalidParameterError("options.ody","number",r.ody);if(l.defined(r.interpolator))if(l.inArray(r.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=r.interpolator;else throw l.invalidParameterError("options.interpolator","valid interpolator name",r.interpolator)}else throw l.invalidParameterError("options","object",r);return this}function Ga(e,r,t){if(!l.defined(e))this.options.sharpenSigma=-1;else if(l.bool(e))this.options.sharpenSigma=e?-1:0;else if(l.number(e)&&l.inRange(e,.01,1e4)){if(this.options.sharpenSigma=e,l.defined(r))if(l.number(r)&&l.inRange(r,0,1e4))this.options.sharpenM1=r;else throw l.invalidParameterError("flat","number between 0 and 10000",r);if(l.defined(t))if(l.number(t)&&l.inRange(t,0,1e4))this.options.sharpenM2=t;else throw l.invalidParameterError("jagged","number between 0 and 10000",t)}else if(l.plainObject(e)){if(l.number(e.sigma)&&l.inRange(e.sigma,1e-6,10))this.options.sharpenSigma=e.sigma;else throw l.invalidParameterError("options.sigma","number between 0.000001 and 10",e.sigma);if(l.defined(e.m1))if(l.number(e.m1)&&l.inRange(e.m1,0,1e6))this.options.sharpenM1=e.m1;else throw l.invalidParameterError("options.m1","number between 0 and 1000000",e.m1);if(l.defined(e.m2))if(l.number(e.m2)&&l.inRange(e.m2,0,1e6))this.options.sharpenM2=e.m2;else throw l.invalidParameterError("options.m2","number between 0 and 1000000",e.m2);if(l.defined(e.x1))if(l.number(e.x1)&&l.inRange(e.x1,0,1e6))this.options.sharpenX1=e.x1;else throw l.invalidParameterError("options.x1","number between 0 and 1000000",e.x1);if(l.defined(e.y2))if(l.number(e.y2)&&l.inRange(e.y2,0,1e6))this.options.sharpenY2=e.y2;else throw l.invalidParameterError("options.y2","number between 0 and 1000000",e.y2);if(l.defined(e.y3))if(l.number(e.y3)&&l.inRange(e.y3,0,1e6))this.options.sharpenY3=e.y3;else throw l.invalidParameterError("options.y3","number between 0 and 1000000",e.y3)}else throw l.invalidParameterError("sigma","number between 0.01 and 10000",e);return this}function Wa(e){if(!l.defined(e))this.options.medianSize=3;else if(l.integer(e)&&l.inRange(e,1,1e3))this.options.medianSize=e;else throw l.invalidParameterError("size","integer between 1 and 1000",e);return this}function Ha(e){if(!l.defined(e))this.options.blurSigma=-1;else if(l.bool(e))this.options.blurSigma=e?-1:0;else if(l.number(e)&&l.inRange(e,.3,1e3))this.options.blurSigma=e;else throw l.invalidParameterError("sigma","number between 0.3 and 1000",e);return this}function Va(e){return this.options.flatten=l.bool(e)?e:true,l.object(e)&&this._setBackgroundColourOption("flattenBackground",e.background),this}function Xa(){return this.options.unflatten=true,this}function Qa(e,r){if(!l.defined(e))this.options.gamma=2.2;else if(l.number(e)&&l.inRange(e,1,3))this.options.gamma=e;else throw l.invalidParameterError("gamma","number between 1.0 and 3.0",e);if(!l.defined(r))this.options.gammaOut=this.options.gamma;else if(l.number(r)&&l.inRange(r,1,3))this.options.gammaOut=r;else throw l.invalidParameterError("gammaOut","number between 1.0 and 3.0",r);return this}function Ja(e){if(this.options.negate=l.bool(e)?e:true,l.plainObject(e)&&"alpha"in e)if(l.bool(e.alpha))this.options.negateAlpha=e.alpha;else throw l.invalidParameterError("alpha","should be boolean value",e.alpha);return this}function Ka(e){if(l.plainObject(e)){if(l.defined(e.lower))if(l.number(e.lower)&&l.inRange(e.lower,0,99))this.options.normaliseLower=e.lower;else throw l.invalidParameterError("lower","number between 0 and 99",e.lower);if(l.defined(e.upper))if(l.number(e.upper)&&l.inRange(e.upper,1,100))this.options.normaliseUpper=e.upper;else throw l.invalidParameterError("upper","number between 1 and 100",e.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw l.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=true,this}function Ya(e){return this.normalise(e)}function Za(e){if(l.plainObject(e)){if(l.integer(e.width)&&e.width>0)this.options.claheWidth=e.width;else throw l.invalidParameterError("width","integer greater than zero",e.width);if(l.integer(e.height)&&e.height>0)this.options.claheHeight=e.height;else throw l.invalidParameterError("height","integer greater than zero",e.height);if(l.defined(e.maxSlope))if(l.integer(e.maxSlope)&&l.inRange(e.maxSlope,0,100))this.options.claheMaxSlope=e.maxSlope;else throw l.invalidParameterError("maxSlope","integer between 0 and 100",e.maxSlope)}else throw l.invalidParameterError("options","plain object",e);return this}function es(e){if(!l.object(e)||!Array.isArray(e.kernel)||!l.integer(e.width)||!l.integer(e.height)||!l.inRange(e.width,3,1001)||!l.inRange(e.height,3,1001)||e.height*e.width!==e.kernel.length)throw new Error("Invalid convolution kernel");return l.integer(e.scale)||(e.scale=e.kernel.reduce(function(r,t){return r+t},0)),e.scale<1&&(e.scale=1),l.integer(e.offset)||(e.offset=0),this.options.convKernel=e,this}function rs(e,r){if(!l.defined(e))this.options.threshold=128;else if(l.bool(e))this.options.threshold=e?128:0;else if(l.integer(e)&&l.inRange(e,0,255))this.options.threshold=e;else throw l.invalidParameterError("threshold","integer between 0 and 255",e);return !l.object(r)||r.greyscale===true||r.grayscale===true?this.options.thresholdGrayscale=true:this.options.thresholdGrayscale=false,this}function ts(e,r,t){if(this.options.boolean=this._createInputDescriptor(e,t),l.string(r)&&l.inArray(r,["and","or","eor"]))this.options.booleanOp=r;else throw l.invalidParameterError("operator","one of: and, or, eor",r);return this}function is(e,r){if(!l.defined(e)&&l.number(r)?e=1:l.number(e)&&!l.defined(r)&&(r=0),!l.defined(e))this.options.linearA=[];else if(l.number(e))this.options.linearA=[e];else if(Array.isArray(e)&&e.length&&e.every(l.number))this.options.linearA=e;else throw l.invalidParameterError("a","number or array of numbers",e);if(!l.defined(r))this.options.linearB=[];else if(l.number(r))this.options.linearB=[r];else if(Array.isArray(r)&&r.length&&r.every(l.number))this.options.linearB=r;else throw l.invalidParameterError("b","number or array of numbers",r);if(this.options.linearA.length!==this.options.linearB.length)throw new Error("Expected a and b to be arrays of the same length");return this}function ns(e){if(!Array.isArray(e)||e.length!==3||e[0].length!==3||e[1].length!==3||e[2].length!==3)throw new Error("Invalid recombination matrix");return this.options.recombMatrix=[e[0][0],e[0][1],e[0][2],e[1][0],e[1][1],e[1][2],e[2][0],e[2][1],e[2][2]].map(Number),this}function as(e){if(!l.plainObject(e))throw l.invalidParameterError("options","plain object",e);if("brightness"in e)if(l.number(e.brightness)&&e.brightness>=0)this.options.brightness=e.brightness;else throw l.invalidParameterError("brightness","number above zero",e.brightness);if("saturation"in e)if(l.number(e.saturation)&&e.saturation>=0)this.options.saturation=e.saturation;else throw l.invalidParameterError("saturation","number above zero",e.saturation);if("hue"in e)if(l.integer(e.hue))this.options.hue=e.hue%360;else throw l.invalidParameterError("hue","number",e.hue);if("lightness"in e)if(l.number(e.lightness))this.options.lightness=e.lightness;else throw l.invalidParameterError("lightness","number",e.lightness);return this}si.exports=function(e){Object.assign(e.prototype,{rotate:qa,flip:Da,flop:za,affine:Ua,sharpen:Ga,median:Wa,blur:Ha,flatten:Va,unflatten:Xa,gamma:Qa,negate:Ja,normalise:Ka,normalize:Ya,clahe:Za,convolve:es,threshold:rs,boolean:ts,linear:is,recomb:ns,modulate:as});};});var fi=x((Nl,ci)=>{u();var ss=Ue(),K=G(),li={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function os(e){return this._setBackgroundColourOption("tint",e),this}function ls(e){return this.options.greyscale=K.bool(e)?e:true,this}function cs(e){return this.greyscale(e)}function fs(e){if(!K.string(e))throw K.invalidParameterError("colourspace","string",e);return this.options.colourspaceInput=e,this}function hs(e){return this.pipelineColourspace(e)}function us(e){if(!K.string(e))throw K.invalidParameterError("colourspace","string",e);return this.options.colourspace=e,this}function ds(e){return this.toColourspace(e)}function ms(e,r){if(K.defined(r))if(K.object(r)||K.string(r)){let t=ss(r);this.options[e]=[t.red(),t.green(),t.blue(),Math.round(t.alpha()*255)];}else throw K.invalidParameterError("background","object or string",r)}ci.exports=function(e){Object.assign(e.prototype,{tint:os,greyscale:ls,grayscale:cs,pipelineColourspace:fs,pipelineColorspace:hs,toColourspace:us,toColorspace:ds,_setBackgroundColourOption:ms}),e.colourspace=li,e.colorspace=li;};});var ui=x((Cl,hi)=>{u();var Q=G(),gs={and:"and",or:"or",eor:"eor"};function ps(){return this.options.removeAlpha=true,this}function bs(e){if(Q.defined(e))if(Q.number(e)&&Q.inRange(e,0,1))this.options.ensureAlpha=e;else throw Q.invalidParameterError("alpha","number between 0 and 1",e);else this.options.ensureAlpha=1;return this}function ws(e){let r={red:0,green:1,blue:2,alpha:3};if(Object.keys(r).includes(e)&&(e=r[e]),Q.integer(e)&&Q.inRange(e,0,4))this.options.extractChannel=e;else throw Q.invalidParameterError("channel","integer or one of: red, green, blue, alpha",e);return this}function ys(e,r){return Array.isArray(e)?e.forEach(function(t){this.options.joinChannelIn.push(this._createInputDescriptor(t,r));},this):this.options.joinChannelIn.push(this._createInputDescriptor(e,r)),this}function Es(e){if(Q.string(e)&&Q.inArray(e,["and","or","eor"]))this.options.bandBoolOp=e;else throw Q.invalidParameterError("boolOp","one of: and, or, eor",e);return this}hi.exports=function(e){Object.assign(e.prototype,{removeAlpha:ps,ensureAlpha:bs,extractChannel:ws,joinChannel:ys,bandbool:Es}),e.bool=gs;};});var wi=x((_l,bi)=>{u();var Er=L("path"),a=G(),he=me(),di=new Map([["heic","heif"],["heif","heif"],["avif","avif"],["jpeg","jpeg"],["jpg","jpeg"],["jpe","jpeg"],["tile","tile"],["dz","tile"],["png","png"],["raw","raw"],["tiff","tiff"],["tif","tiff"],["webp","webp"],["gif","gif"],["jp2","jp2"],["jpx","jp2"],["j2k","jp2"],["j2c","jp2"],["jxl","jxl"]]),vs=/\.(jp[2x]|j2[kc])$/i,mi=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),gi=e=>1<<31-Math.clz32(Math.ceil(Math.log2(e)));function xs(e,r){let t;if(a.string(e)?a.string(this.options.input.file)&&Er.resolve(this.options.input.file)===Er.resolve(e)?t=new Error("Cannot use same file for input and output"):vs.test(Er.extname(e))&&!this.constructor.format.jp2k.output.file&&(t=mi()):t=new Error("Missing output file path"),t)if(a.fn(r))r(t);else return Promise.reject(t);else {this.options.fileOut=e;let i=Error();return this._pipeline(r,i)}return this}function Is(e,r){a.object(e)?this._setBooleanOption("resolveWithObject",e.resolveWithObject):this.options.resolveWithObject&&(this.options.resolveWithObject=false),this.options.fileOut="";let t=Error();return this._pipeline(a.fn(e)?e:r,t)}function Ps(){return this.options.keepMetadata|=1,this}function Rs(e){if(a.object(e))for(let[r,t]of Object.entries(e))if(a.object(t))for(let[i,n]of Object.entries(t))if(a.string(n))this.options.withExif[`exif-${r.toLowerCase()}-${i}`]=n;else throw a.invalidParameterError(`${r}.${i}`,"string",n);else throw a.invalidParameterError(r,"object",t);else throw a.invalidParameterError("exif","object",e);return this.options.withExifMerge=false,this.keepExif()}function As(e){return this.withExif(e),this.options.withExifMerge=true,this}function ks(){return this.options.keepMetadata|=8,this}function Ss(e,r){if(a.string(e))this.options.withIccProfile=e;else throw a.invalidParameterError("icc","string",e);if(this.keepIccProfile(),a.object(r)&&a.defined(r.attach))if(a.bool(r.attach))r.attach||(this.options.keepMetadata&=-9);else throw a.invalidParameterError("attach","boolean",r.attach);return this}function Ms(){return this.options.keepMetadata=31,this}function Ls(e){if(this.keepMetadata(),this.withIccProfile("srgb"),a.object(e)){if(a.defined(e.orientation))if(a.integer(e.orientation)&&a.inRange(e.orientation,1,8))this.options.withMetadataOrientation=e.orientation;else throw a.invalidParameterError("orientation","integer between 1 and 8",e.orientation);if(a.defined(e.density))if(a.number(e.density)&&e.density>0)this.options.withMetadataDensity=e.density;else throw a.invalidParameterError("density","positive number",e.density);a.defined(e.icc)&&this.withIccProfile(e.icc),a.defined(e.exif)&&this.withExifMerge(e.exif);}return this}function Bs(e,r){let t=di.get((a.object(e)&&a.string(e.id)?e.id:e).toLowerCase());if(!t)throw a.invalidParameterError("format",`one of: ${[...di.keys()].join(", ")}`,e);return this[t](r)}function Fs(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.jpegQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.progressive)&&this._setBooleanOption("jpegProgressive",e.progressive),a.defined(e.chromaSubsampling))if(a.string(e.chromaSubsampling)&&a.inArray(e.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=e.chromaSubsampling;else throw a.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",e.chromaSubsampling);let r=a.bool(e.optimizeCoding)?e.optimizeCoding:e.optimiseCoding;if(a.defined(r)&&this._setBooleanOption("jpegOptimiseCoding",r),a.defined(e.mozjpeg))if(a.bool(e.mozjpeg))e.mozjpeg&&(this.options.jpegTrellisQuantisation=true,this.options.jpegOvershootDeringing=true,this.options.jpegOptimiseScans=true,this.options.jpegProgressive=true,this.options.jpegQuantisationTable=3);else throw a.invalidParameterError("mozjpeg","boolean",e.mozjpeg);let t=a.bool(e.trellisQuantization)?e.trellisQuantization:e.trellisQuantisation;a.defined(t)&&this._setBooleanOption("jpegTrellisQuantisation",t),a.defined(e.overshootDeringing)&&this._setBooleanOption("jpegOvershootDeringing",e.overshootDeringing);let i=a.bool(e.optimizeScans)?e.optimizeScans:e.optimiseScans;a.defined(i)&&(this._setBooleanOption("jpegOptimiseScans",i),i&&(this.options.jpegProgressive=true));let n=a.number(e.quantizationTable)?e.quantizationTable:e.quantisationTable;if(a.defined(n))if(a.integer(n)&&a.inRange(n,0,8))this.options.jpegQuantisationTable=n;else throw a.invalidParameterError("quantisationTable","integer between 0 and 8",n)}return this._updateFormatOut("jpeg",e)}function js(e){if(a.object(e)){if(a.defined(e.progressive)&&this._setBooleanOption("pngProgressive",e.progressive),a.defined(e.compressionLevel))if(a.integer(e.compressionLevel)&&a.inRange(e.compressionLevel,0,9))this.options.pngCompressionLevel=e.compressionLevel;else throw a.invalidParameterError("compressionLevel","integer between 0 and 9",e.compressionLevel);a.defined(e.adaptiveFiltering)&&this._setBooleanOption("pngAdaptiveFiltering",e.adaptiveFiltering);let r=e.colours||e.colors;if(a.defined(r))if(a.integer(r)&&a.inRange(r,2,256))this.options.pngBitdepth=gi(r);else throw a.invalidParameterError("colours","integer between 2 and 256",r);if(a.defined(e.palette)?this._setBooleanOption("pngPalette",e.palette):[e.quality,e.effort,e.colours,e.colors,e.dither].some(a.defined)&&this._setBooleanOption("pngPalette",true),this.options.pngPalette){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,0,100))this.options.pngQuality=e.quality;else throw a.invalidParameterError("quality","integer between 0 and 100",e.quality);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,1,10))this.options.pngEffort=e.effort;else throw a.invalidParameterError("effort","integer between 1 and 10",e.effort);if(a.defined(e.dither))if(a.number(e.dither)&&a.inRange(e.dither,0,1))this.options.pngDither=e.dither;else throw a.invalidParameterError("dither","number between 0.0 and 1.0",e.dither)}}return this._updateFormatOut("png",e)}function Ts(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.webpQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.alphaQuality))if(a.integer(e.alphaQuality)&&a.inRange(e.alphaQuality,0,100))this.options.webpAlphaQuality=e.alphaQuality;else throw a.invalidParameterError("alphaQuality","integer between 0 and 100",e.alphaQuality);if(a.defined(e.lossless)&&this._setBooleanOption("webpLossless",e.lossless),a.defined(e.nearLossless)&&this._setBooleanOption("webpNearLossless",e.nearLossless),a.defined(e.smartSubsample)&&this._setBooleanOption("webpSmartSubsample",e.smartSubsample),a.defined(e.preset))if(a.string(e.preset)&&a.inArray(e.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=e.preset;else throw a.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",e.preset);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,0,6))this.options.webpEffort=e.effort;else throw a.invalidParameterError("effort","integer between 0 and 6",e.effort);a.defined(e.minSize)&&this._setBooleanOption("webpMinSize",e.minSize),a.defined(e.mixed)&&this._setBooleanOption("webpMixed",e.mixed);}return pi(e,this.options),this._updateFormatOut("webp",e)}function Ns(e){if(a.object(e)){a.defined(e.reuse)&&this._setBooleanOption("gifReuse",e.reuse),a.defined(e.progressive)&&this._setBooleanOption("gifProgressive",e.progressive);let r=e.colours||e.colors;if(a.defined(r))if(a.integer(r)&&a.inRange(r,2,256))this.options.gifBitdepth=gi(r);else throw a.invalidParameterError("colours","integer between 2 and 256",r);if(a.defined(e.effort))if(a.number(e.effort)&&a.inRange(e.effort,1,10))this.options.gifEffort=e.effort;else throw a.invalidParameterError("effort","integer between 1 and 10",e.effort);if(a.defined(e.dither))if(a.number(e.dither)&&a.inRange(e.dither,0,1))this.options.gifDither=e.dither;else throw a.invalidParameterError("dither","number between 0.0 and 1.0",e.dither);if(a.defined(e.interFrameMaxError))if(a.number(e.interFrameMaxError)&&a.inRange(e.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=e.interFrameMaxError;else throw a.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",e.interFrameMaxError);if(a.defined(e.interPaletteMaxError))if(a.number(e.interPaletteMaxError)&&a.inRange(e.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=e.interPaletteMaxError;else throw a.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",e.interPaletteMaxError)}return pi(e,this.options),this._updateFormatOut("gif",e)}function $s(e){if(!this.constructor.format.jp2k.output.buffer)throw mi();if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.jp2Quality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.lossless))if(a.bool(e.lossless))this.options.jp2Lossless=e.lossless;else throw a.invalidParameterError("lossless","boolean",e.lossless);if(a.defined(e.tileWidth))if(a.integer(e.tileWidth)&&a.inRange(e.tileWidth,1,32768))this.options.jp2TileWidth=e.tileWidth;else throw a.invalidParameterError("tileWidth","integer between 1 and 32768",e.tileWidth);if(a.defined(e.tileHeight))if(a.integer(e.tileHeight)&&a.inRange(e.tileHeight,1,32768))this.options.jp2TileHeight=e.tileHeight;else throw a.invalidParameterError("tileHeight","integer between 1 and 32768",e.tileHeight);if(a.defined(e.chromaSubsampling))if(a.string(e.chromaSubsampling)&&a.inArray(e.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=e.chromaSubsampling;else throw a.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",e.chromaSubsampling)}return this._updateFormatOut("jp2",e)}function pi(e,r){if(a.object(e)&&a.defined(e.loop))if(a.integer(e.loop)&&a.inRange(e.loop,0,65535))r.loop=e.loop;else throw a.invalidParameterError("loop","integer between 0 and 65535",e.loop);if(a.object(e)&&a.defined(e.delay))if(a.integer(e.delay)&&a.inRange(e.delay,0,65535))r.delay=[e.delay];else if(Array.isArray(e.delay)&&e.delay.every(a.integer)&&e.delay.every(t=>a.inRange(t,0,65535)))r.delay=e.delay;else throw a.invalidParameterError("delay","integer or an array of integers between 0 and 65535",e.delay)}function Cs(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.tiffQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.bitdepth))if(a.integer(e.bitdepth)&&a.inArray(e.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=e.bitdepth;else throw a.invalidParameterError("bitdepth","1, 2, 4 or 8",e.bitdepth);if(a.defined(e.tile)&&this._setBooleanOption("tiffTile",e.tile),a.defined(e.tileWidth))if(a.integer(e.tileWidth)&&e.tileWidth>0)this.options.tiffTileWidth=e.tileWidth;else throw a.invalidParameterError("tileWidth","integer greater than zero",e.tileWidth);if(a.defined(e.tileHeight))if(a.integer(e.tileHeight)&&e.tileHeight>0)this.options.tiffTileHeight=e.tileHeight;else throw a.invalidParameterError("tileHeight","integer greater than zero",e.tileHeight);if(a.defined(e.miniswhite)&&this._setBooleanOption("tiffMiniswhite",e.miniswhite),a.defined(e.pyramid)&&this._setBooleanOption("tiffPyramid",e.pyramid),a.defined(e.xres))if(a.number(e.xres)&&e.xres>0)this.options.tiffXres=e.xres;else throw a.invalidParameterError("xres","number greater than zero",e.xres);if(a.defined(e.yres))if(a.number(e.yres)&&e.yres>0)this.options.tiffYres=e.yres;else throw a.invalidParameterError("yres","number greater than zero",e.yres);if(a.defined(e.compression))if(a.string(e.compression)&&a.inArray(e.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=e.compression;else throw a.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",e.compression);if(a.defined(e.predictor))if(a.string(e.predictor)&&a.inArray(e.predictor,["none","horizontal","float"]))this.options.tiffPredictor=e.predictor;else throw a.invalidParameterError("predictor","one of: none, horizontal, float",e.predictor);if(a.defined(e.resolutionUnit))if(a.string(e.resolutionUnit)&&a.inArray(e.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=e.resolutionUnit;else throw a.invalidParameterError("resolutionUnit","one of: inch, cm",e.resolutionUnit)}return this._updateFormatOut("tiff",e)}function Os(e){return this.heif({...e,compression:"av1"})}function _s(e){if(a.object(e)){if(a.string(e.compression)&&a.inArray(e.compression,["av1","hevc"]))this.options.heifCompression=e.compression;else throw a.invalidParameterError("compression","one of: av1, hevc",e.compression);if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.heifQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.lossless))if(a.bool(e.lossless))this.options.heifLossless=e.lossless;else throw a.invalidParameterError("lossless","boolean",e.lossless);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,0,9))this.options.heifEffort=e.effort;else throw a.invalidParameterError("effort","integer between 0 and 9",e.effort);if(a.defined(e.chromaSubsampling))if(a.string(e.chromaSubsampling)&&a.inArray(e.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=e.chromaSubsampling;else throw a.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",e.chromaSubsampling)}else throw a.invalidParameterError("options","Object",e);return this._updateFormatOut("heif",e)}function qs(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.jxlDistance=e.quality>=30?.1+(100-e.quality)*.09:53/3e3*e.quality*e.quality-23/20*e.quality+25;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);else if(a.defined(e.distance))if(a.number(e.distance)&&a.inRange(e.distance,0,15))this.options.jxlDistance=e.distance;else throw a.invalidParameterError("distance","number between 0.0 and 15.0",e.distance);if(a.defined(e.decodingTier))if(a.integer(e.decodingTier)&&a.inRange(e.decodingTier,0,4))this.options.jxlDecodingTier=e.decodingTier;else throw a.invalidParameterError("decodingTier","integer between 0 and 4",e.decodingTier);if(a.defined(e.lossless))if(a.bool(e.lossless))this.options.jxlLossless=e.lossless;else throw a.invalidParameterError("lossless","boolean",e.lossless);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,3,9))this.options.jxlEffort=e.effort;else throw a.invalidParameterError("effort","integer between 3 and 9",e.effort)}return this._updateFormatOut("jxl",e)}function Ds(e){if(a.object(e)&&a.defined(e.depth))if(a.string(e.depth)&&a.inArray(e.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=e.depth;else throw a.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",e.depth);return this._updateFormatOut("raw")}function zs(e){if(a.object(e)){if(a.defined(e.size))if(a.integer(e.size)&&a.inRange(e.size,1,8192))this.options.tileSize=e.size;else throw a.invalidParameterError("size","integer between 1 and 8192",e.size);if(a.defined(e.overlap))if(a.integer(e.overlap)&&a.inRange(e.overlap,0,8192)){if(e.overlap>this.options.tileSize)throw a.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,e.overlap);this.options.tileOverlap=e.overlap;}else throw a.invalidParameterError("overlap","integer between 0 and 8192",e.overlap);if(a.defined(e.container))if(a.string(e.container)&&a.inArray(e.container,["fs","zip"]))this.options.tileContainer=e.container;else throw a.invalidParameterError("container","one of: fs, zip",e.container);if(a.defined(e.layout))if(a.string(e.layout)&&a.inArray(e.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=e.layout;else throw a.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",e.layout);if(a.defined(e.angle))if(a.integer(e.angle)&&!(e.angle%90))this.options.tileAngle=e.angle;else throw a.invalidParameterError("angle","positive/negative multiple of 90",e.angle);if(this._setBackgroundColourOption("tileBackground",e.background),a.defined(e.depth))if(a.string(e.depth)&&a.inArray(e.depth,["onepixel","onetile","one"]))this.options.tileDepth=e.depth;else throw a.invalidParameterError("depth","one of: onepixel, onetile, one",e.depth);if(a.defined(e.skipBlanks))if(a.integer(e.skipBlanks)&&a.inRange(e.skipBlanks,-1,65535))this.options.tileSkipBlanks=e.skipBlanks;else throw a.invalidParameterError("skipBlanks","integer between -1 and 255/65535",e.skipBlanks);else a.defined(e.layout)&&e.layout==="google"&&(this.options.tileSkipBlanks=5);let r=a.bool(e.center)?e.center:e.centre;if(a.defined(r)&&this._setBooleanOption("tileCentre",r),a.defined(e.id))if(a.string(e.id))this.options.tileId=e.id;else throw a.invalidParameterError("id","string",e.id);if(a.defined(e.basename))if(a.string(e.basename))this.options.tileBasename=e.basename;else throw a.invalidParameterError("basename","string",e.basename)}if(a.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw a.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function Us(e){if(!a.plainObject(e))throw a.invalidParameterError("options","object",e);if(a.integer(e.seconds)&&a.inRange(e.seconds,0,3600))this.options.timeoutSeconds=e.seconds;else throw a.invalidParameterError("seconds","integer between 0 and 3600",e.seconds);return this}function Gs(e,r){return a.object(r)&&r.force===false||(this.options.formatOut=e),this}function Ws(e,r){if(a.bool(r))this.options[e]=r;else throw a.invalidParameterError(e,"boolean",r)}function Hs(){if(!this.options.streamOut){this.options.streamOut=true;let e=Error();this._pipeline(void 0,e);}}function Vs(e,r){return typeof e=="function"?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),he.pipeline(this.options,(t,i,n)=>{t?e(a.nativeError(t,r)):e(null,i,n);});}):he.pipeline(this.options,(t,i,n)=>{t?e(a.nativeError(t,r)):e(null,i,n);}),this):this.options.streamOut?(this._isStreamInput()?(this.once("finish",()=>{this._flattenBufferIn(),he.pipeline(this.options,(t,i,n)=>{t?this.emit("error",a.nativeError(t,r)):(this.emit("info",n),this.push(i)),this.push(null),this.on("end",()=>this.emit("close"));});}),this.streamInFinished&&this.emit("finish")):he.pipeline(this.options,(t,i,n)=>{t?this.emit("error",a.nativeError(t,r)):(this.emit("info",n),this.push(i)),this.push(null),this.on("end",()=>this.emit("close"));}),this):this._isStreamInput()?new Promise((t,i)=>{this.once("finish",()=>{this._flattenBufferIn(),he.pipeline(this.options,(n,s,o)=>{n?i(a.nativeError(n,r)):this.options.resolveWithObject?t({data:s,info:o}):t(s);});});}):new Promise((t,i)=>{he.pipeline(this.options,(n,s,o)=>{n?i(a.nativeError(n,r)):this.options.resolveWithObject?t({data:s,info:o}):t(s);});})}bi.exports=function(e){Object.assign(e.prototype,{toFile:xs,toBuffer:Is,keepExif:Ps,withExif:Rs,withExifMerge:As,keepIccProfile:ks,withIccProfile:Ss,keepMetadata:Ms,withMetadata:Ls,toFormat:Bs,jpeg:Fs,jp2:$s,png:js,webp:Ts,tiff:Cs,avif:Os,heif:_s,jxl:qs,gif:Ns,raw:Ds,tile:zs,timeout:Us,_updateFormatOut:Gs,_setBooleanOption:Ws,_read:Hs,_pipeline:Vs});};});var Pi=x((Dl,Ii)=>{u();var Xs=L("events"),yi=ke(),O=G(),{runtimePlatformArch:Qs}=cr(),C=me(),Ei=Qs(),vr=C.libvipsVersion(),ye=C.format();ye.heif.output.alias=["avif","heic"];ye.jpeg.output.alias=["jpe","jpg"];ye.tiff.output.alias=["tif"];ye.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Js={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},we={vips:vr.semver};if(!vr.isGlobal)if(vr.isWasm)try{we=L("@img/sharp-wasm32/versions");}catch{}else try{we=L(`@img/sharp-${Ei}/versions`);}catch{try{we=L(`@img/sharp-libvips-${Ei}/versions`);}catch{}}we.sharp=or().version;function vi(e){return O.bool(e)?e?C.cache(50,20,100):C.cache(0,0,0):O.object(e)?C.cache(e.memory,e.files,e.items):C.cache()}vi(true);function Ks(e){return C.concurrency(O.integer(e)?e:null)}yi.familySync()===yi.GLIBC&&!C._isUsingJemalloc()&&C.concurrency(1);var Ys=new Xs.EventEmitter;function Zs(){return C.counters()}function xi(e){return C.simd(O.bool(e)?e:null)}xi(true);function eo(e){if(O.object(e))if(Array.isArray(e.operation)&&e.operation.every(O.string))C.block(e.operation,true);else throw O.invalidParameterError("operation","Array<string>",e.operation);else throw O.invalidParameterError("options","object",e)}function ro(e){if(O.object(e))if(Array.isArray(e.operation)&&e.operation.every(O.string))C.block(e.operation,false);else throw O.invalidParameterError("operation","Array<string>",e.operation);else throw O.invalidParameterError("options","object",e)}Ii.exports=function(e){e.cache=vi,e.concurrency=Ks,e.counters=Zs,e.simd=xi,e.format=ye,e.interpolators=Js,e.versions=we,e.queue=Ys,e.block=eo,e.unblock=ro;};});var Ai=x((Gl,Ri)=>{u();var Y=Lt();Kt()(Y);ii()(Y);ai()(Y);oi()(Y);fi()(Y);ui()(Y);wi()(Y);Pi()(Y);Ri.exports=Y;});u();u();u();u();var I={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:6,FPS:10,DEFAULT_QUALITY:60,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},mo=async(e=false)=>{if(!e)try{let r=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;Ie__default.default.setFfmpegPath(r.path),Ie__default.default.setFfprobePath(t.path);}catch{}},v=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(r,t){return Ar__default.default.join(os.tmpdir(),`${r}_${this.generateUniqueId()}.${t}`)}static async cleanup(r){await Promise.allSettled(r.map(t=>de__default.default.unlink(t)));}static async safeReadFile(r){try{return await de__default.default.readFile(r)}catch{throw new Error(`Failed to read file: ${r}`)}}static async safeWriteFile(r,t){try{await de__default.default.writeFile(r,t);}catch{throw new Error(`Failed to write file: ${r}`)}}},S=class{static async toBuffer(r){if(Buffer.isBuffer(r))return r;if(r instanceof ArrayBuffer)return Buffer.from(r);if(typeof r=="string")return this.fromString(r);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(r){if(r.startsWith("http://")||r.startsWith("https://"))return this.fromUrl(r);try{if(await de__default.default.stat(r).then(t=>t.isFile()).catch(()=>!1))return await de__default.default.readFile(r)}catch{}return Buffer.from(r,"base64")}static async fromUrl(r){try{let t=await fetch(r);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let i=await t.arrayBuffer();return Buffer.from(i)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}static async getExtension(r){let{fileTypeFromBuffer:t}=await import('file-type'),i=await t(r);if(!i)return "tmp";let n=i.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(n)?n:"tmp"}},T=class{static validate(r,t){if(!r?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${r?.mime||"unknown"}`)}static isMedia(r){return r.startsWith(I.MIME.IMAGE)||r.startsWith(I.MIME.VIDEO)}static isAnimated(r){return r===I.MIME.GIF||r.startsWith(I.MIME.VIDEO)}},q=class{static async process(r){return new Promise((t,i)=>{let n=Ie__default.default(r.input).output(r.output);for(let s=0;s<r.options.length;s++){let o=r.options[s];o.startsWith("-")&&s+1<r.options.length&&!r.options[s+1].startsWith("-")?(n.outputOptions(o,r.options[s+1]),s++):n.outputOptions(o);}n.on("end",async()=>{try{await r.onEnd(),t();}catch(s){i(s);}}).on("error",async s=>{try{await r.onError(s);}finally{i(s);}}).run();})}static async getDuration(r){return new Promise((t,i)=>{Ie__default.default.ffprobe(r,(n,s)=>{if(n)return i(n);t(s.format.duration||0);});})}};u();var se=class{static async toOpus(r){return this.convert(r,"opus")}static async toMp3(r){return this.convert(r,"mp3")}static async convert(r,t="opus"){let i=await S.toBuffer(r),n=await fileType.fileTypeFromBuffer(i);T.validate(n,I.MIME.AUDIO);let s=await S.getExtension(i),o=v.createTempPath("audio_in",s),c=t==="opus"?"ogg":"mp3",h=v.createTempPath("audio_out",c);await v.safeWriteFile(o,i);let d;try{let w=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","ogg"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await q.process({input:o,output:h,options:w,onEnd:async()=>{d=await v.safeReadFile(h);},onError:async()=>{await v.cleanup([o,h]);}}),await v.cleanup([o,h]),d}catch(w){throw await v.cleanup([o,h]),new Error(`${t.toUpperCase()} conversion failed: ${w.message}`)}}};u();var U=class{static async toMp4(r){let t=await S.toBuffer(r),i=await fileType.fileTypeFromBuffer(t);T.validate(i,I.MIME.VIDEO);let n=await S.getExtension(t),s=v.createTempPath("video_in",n),o=v.createTempPath("video_out","mp4");await v.safeWriteFile(s,t);let c;try{let h=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-vf","scale=trunc(iw/2)*2:trunc(ih/2)*2","-pix_fmt","yuv420p","-f","mp4"];return await q.process({input:s,output:o,options:h,onEnd:async()=>{c=await v.safeReadFile(o);},onError:async()=>{await v.cleanup([s,o]);}}),await v.cleanup([s,o]),c}catch(h){throw await v.cleanup([s,o]),new Error(`Video re-encoding failed: ${h.message}`)}}static async thumbnail(r){let t=await S.toBuffer(r),i=await fileType.fileTypeFromBuffer(t);T.validate(i,I.MIME.VIDEO);let n=await S.getExtension(t),s=v.createTempPath("video",n),o=v.createTempPath("thumb","jpg");await v.safeWriteFile(s,t);let c;try{return await new Promise((h,d)=>{Ie__default.default(s).screenshots({timestamps:[I.THUMBNAIL.TIMESTAMP],filename:Ar__default.default.basename(o),folder:Ar__default.default.dirname(o),size:`${I.THUMBNAIL.SIZE}x${I.THUMBNAIL.SIZE}`}).on("end",async()=>{try{c=(await v.safeReadFile(o)).toString("base64"),h();}catch(w){d(w);}}).on("error",d);}),await v.cleanup([s,o]),c}catch(h){throw await v.cleanup([s,o]),new Error(`Thumbnail generation failed: ${h.message}`)}}static async duration(r){return q.getDuration(r)}};u();var We=null,ki=false;function to(){if(ki)return We;ki=true;try{We=Ai();}catch{We=null;}return We}var xr=class{sharp;constructor(r){this.sharp=r;}async thumbnail(r){let t=this.sharp,i=t(r).resize(I.THUMBNAIL.SIZE,I.THUMBNAIL.SIZE,{fit:"cover"});return (await i.metadata()).format==="gif"&&(i=t(r,{pages:1}).resize(I.THUMBNAIL.SIZE,I.THUMBNAIL.SIZE)),(await i.jpeg({quality:I.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}async resize(r,t,i){return this.sharp(r).resize(t,i,{fit:"cover"}).png().toBuffer()}async toJpeg(r){let t=this.sharp,i=await S.toBuffer(r),n=await t(i).metadata();if(!n.format)throw new Error("Invalid image type: format could not be determined");return n.format==="webp"||n.format==="png"?t(i).jpeg().toBuffer():i}async resizeForSticker(r,t,i="default"){let n=this.sharp,s=I.STICKER.SIZE,o=n(r).resize(s,s,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}});if(i!=="default"){let c=Buffer.alloc(s*s);for(let d=0;d<s;d++)for(let w=0;w<s;w++){let P=false,j=s/2,A=s/2;switch(i){case "circle":{let k=w-j,_=d-A;P=k*k+_*_<=j*j;break}case "rounded":{let k=s/10,_=w>=k&&w<s-k&&d>=0&&d<s,z=w>=0&&w<s&&d>=k&&d<s-k,ie=false,Je=[[k,k],[s-k,k],[k,s-k],[s-k,s-k]];for(let[Ke,xe]of Je){let ue=w-Ke,Pr=d-xe;if(ue*ue+Pr*Pr<=k*k){ie=true;break}}P=_||z||ie;break}case "oval":{let k=s/2,_=s/3,z=(w-j)/k,ie=(d-A)/_;P=z*z+ie*ie<=1;break}}c[d*s+w]=P?255:0;}let h=n(c,{raw:{width:s,height:s,channels:1}});o=o.joinChannel(await h.toBuffer());}return o.webp({quality:t}).toBuffer()}},Ir=class{async thumbnail(r){let t=I.THUMBNAIL.SIZE,i=await jimp.Jimp.fromBuffer(r);i.cover({w:t,h:t});let n=await i.getBuffer("image/jpeg",{quality:I.THUMBNAIL.QUALITY});return Buffer.from(n).toString("base64")}async resize(r,t,i){let n=await jimp.Jimp.fromBuffer(r);n.cover({w:t,h:i});let s=await n.getBuffer("image/png");return Buffer.from(s)}async toJpeg(r){let t=await S.toBuffer(r);try{let n=await(await jimp.Jimp.fromBuffer(t)).getBuffer("image/jpeg");return Buffer.from(n)}catch{return t}}async resizeForSticker(r,t,i="default"){let n=I.STICKER.SIZE,s=await jimp.Jimp.fromBuffer(r);if(s.contain({w:n,h:n}),i!=="default"){let c=new jimp.Jimp({width:n,height:n,color:255});for(let h=0;h<n;h++)for(let d=0;d<n;d++){let w=false,P=n/2,j=n/2;switch(i){case "circle":{let A=d-P,k=h-j;w=A*A+k*k<=P*P;break}case "rounded":{let A=n/10,k=d>=A&&d<n-A&&h>=0&&h<n,_=d>=0&&d<n&&h>=A&&h<n-A,z=false,ie=[[A,A],[n-A,A],[A,n-A],[n-A,n-A]];for(let[Je,Ke]of ie){let xe=d-Je,ue=h-Ke;if(xe*xe+ue*ue<=A*A){z=true;break}}w=k||_||z;break}case "oval":{let A=n/2,k=n/3,_=(d-P)/A,z=(h-j)/k;w=_*_+z*z<=1;break}}w&&c.setPixelColor(4294967295,d,h);}s.mask(c);}let o=Buffer.from(await s.getBuffer("image/png"));return this.convertToWebp(o,t)}async convertToWebp(r,t){let i=v.createTempPath("sticker_jimp_in","png"),n=v.createTempPath("sticker_jimp_out","webp");await v.safeWriteFile(i,r);let s=Math.max(1,Math.min(100,t));try{await q.process({input:i,output:n,options:["-vcodec","libwebp","-q:v",`${s}`,"-preset","default"],onEnd:async()=>{},onError:async()=>{await v.cleanup([i,n]);}});let o=await v.safeReadFile(n);return await v.cleanup([i,n]),o}catch(o){throw await v.cleanup([i,n]),new Error(`Jimp WebP conversion failed: ${o.message}`)}}},ve=null;function He(){if(ve)return ve;let e=to();return e?ve=new xr(e):(console.warn("[media-process] sharp not available, using jimp as fallback (slower but compatible)"),ve=new Ir),ve}var D=class{static async thumbnail(r){return He().thumbnail(r)}static async resize(r,t,i){return He().resize(r,t,i)}static async toJpeg(r){return He().toJpeg(r)}static async resizeForSticker(r,t,i="default"){return He().resizeForSticker(r,t,i)}};u();u();var Ve=()=>Date.now().toString(36)+Math.random().toString(36).slice(2,8),Si=e=>e;var Xe=class{static async create(r,t){try{let i=await S.toBuffer(r),n=await fileType.fileTypeFromBuffer(i);if(!n)throw new Error("Unable to detect file type");let s=t?.quality||I.STICKER.DEFAULT_QUALITY,o=T.isAnimated(n.mime),c=t?.shape||"default",h=o?await this.processAnimated(i,n.mime,s):await D.resizeForSticker(i,s,c),d=this.createExifMetadata(t),w=new no__default.default.Image;await w.load(h),w.exif=d;let P=await w.save(null);return Buffer.isBuffer(P)?P:Buffer.from(P)}catch(i){throw new Error(`Sticker creation failed: ${i.message||i}`)}}static createExifMetadata(r){let t={"sticker-pack-id":Ve(),"sticker-pack-name":r?.packageName||"Zaileys Library","sticker-pack-publisher":r?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},i=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),n=Buffer.from(JSON.stringify(t),"utf8"),s=Buffer.concat([i,n]);return s.writeUIntLE(n.length,14,4),s}static async processAnimated(r,t,i){let n=this.getExtension(t),s=v.createTempPath("sticker_in",n),o=v.createTempPath("sticker_out","webp");await v.safeWriteFile(s,r);let c=I.STICKER.MAX_DURATION;try{let A=await U.duration(s);c=Si(Math.min(A,I.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",I.STICKER.MAX_DURATION);}let h=I.STICKER.SIZE,d=I.STICKER.FPS,w=`scale=${h}:${h}:force_original_aspect_ratio=decrease,fps=${d},pad=${h}:${h}:(ow-iw)/2:(oh-ih)/2:color=0x00000000,format=rgba`,P=Math.max(1,Math.min(100,i)),j;try{return await q.process({input:s,output:o,options:["-vcodec libwebp",`-vf ${w}`,`-q:v ${P}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${c}`,`-compression_level ${I.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{j=await v.safeReadFile(o);},onError:async()=>{await v.cleanup([s,o]);}}),await v.cleanup([s,o]),j}catch(A){throw await v.cleanup([s,o]),new Error(`Animated sticker processing failed: ${A.message}`)}}static getExtension(r){return r===I.MIME.GIF?"gif":r.startsWith(I.MIME.VIDEO)?"mp4":"tmp"}};u();var Qe=class{static async create(r){try{let t=await S.toBuffer(r),i=await fileType.fileTypeFromBuffer(t);if(!i)throw new Error("Unable to detect file type");let n;return i.mime.startsWith(I.MIME.VIDEO)?n=await U.thumbnail(t):T.isMedia(i.mime)?n=await D.thumbnail(t):n="",{document:t,mimetype:i.mime,ext:i.ext,fileName:Ve(),jpegThumbnail:n}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};var Mi=class{input;constructor(r){this.input=r;}get audio(){return {toOpus:()=>se.toOpus(this.input),toMp3:()=>se.toMp3(this.input),convert:(r="opus")=>se.convert(this.input,r)}}get video(){return {toMp4:()=>U.toMp4(this.input),thumbnail:()=>U.thumbnail(this.input)}}get image(){return {toJpeg:()=>D.toJpeg(this.input),thumbnail:async()=>{let r=await S.toBuffer(this.input);return D.thumbnail(r)},resize:async(r,t)=>{let i=await S.toBuffer(this.input);return D.resize(i,r,t)}}}get sticker(){return {create:r=>Xe.create(this.input,r)}}get document(){return {create:()=>Qe.create(this.input)}}get thumbnail(){return {get:async()=>{let r=await S.toBuffer(this.input),t=await fileType.fileTypeFromBuffer(r);if(!t||!T.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(I.MIME.VIDEO)?U.thumbnail(this.input):D.thumbnail(r)}}}async toBuffer(){return S.toBuffer(this.input)}};u();
3
+ exports.AudioProcessor=se;exports.BufferConverter=S;exports.DocumentProcessor=Qe;exports.FFMPEG_CONSTANTS=I;exports.FFmpegProcessor=q;exports.FileManager=v;exports.ImageProcessor=D;exports.Media=Mi;exports.MimeValidator=T;exports.StickerProcessor=Xe;exports.VideoProcessor=U;exports.initializeFFmpeg=mo;
package/dist/index.mjs CHANGED
@@ -1,2 +1,3 @@
1
- import P from'fluent-ffmpeg';import v from'fs/promises';import {tmpdir}from'os';import U from'path';import {fileTypeFromBuffer}from'file-type';import x from'sharp';import Z from'node-webpmux';var o={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:6,FPS:10,DEFAULT_QUALITY:60,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},tt=async(d=false)=>{if(!d)try{let t=(await import('@ffmpeg-installer/ffmpeg')).default,e=(await import('@ffprobe-installer/ffprobe')).default;P.setFfmpegPath(t.path),P.setFfprobePath(e.path);}catch{}},s=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(t,e){return U.join(tmpdir(),`${t}_${this.generateUniqueId()}.${e}`)}static async cleanup(t){await Promise.allSettled(t.map(e=>v.unlink(e)));}static async safeReadFile(t){try{return await v.readFile(t)}catch{throw new Error(`Failed to read file: ${t}`)}}static async safeWriteFile(t,e){try{await v.writeFile(t,e);}catch{throw new Error(`Failed to write file: ${t}`)}}},c=class{static async toBuffer(t){if(Buffer.isBuffer(t))return t;if(t instanceof ArrayBuffer)return Buffer.from(t);if(typeof t=="string")return this.fromString(t);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(t){if(t.startsWith("http://")||t.startsWith("https://"))return this.fromUrl(t);try{if(await v.stat(t).then(e=>e.isFile()).catch(()=>!1))return await v.readFile(t)}catch{}return Buffer.from(t,"base64")}static async fromUrl(t){try{let e=await fetch(t);if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);let a=await e.arrayBuffer();return Buffer.from(a)}catch(e){throw new Error(`Failed to fetch URL: ${e.message}`)}}static async getExtension(t){let{fileTypeFromBuffer:e}=await import('file-type'),a=await e(t);if(!a)return "tmp";let r=a.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(r)?r:"tmp"}},g=class{static validate(t,e){if(!t?.mime?.startsWith(e))throw new Error(`Invalid file type: expected ${e}*, got ${t?.mime||"unknown"}`)}static isMedia(t){return t.startsWith(o.MIME.IMAGE)||t.startsWith(o.MIME.VIDEO)}static isAnimated(t){return t===o.MIME.GIF||t.startsWith(o.MIME.VIDEO)}},M=class{static async process(t){return new Promise((e,a)=>{let r=P(t.input).output(t.output);for(let i=0;i<t.options.length;i++){let n=t.options[i];n.startsWith("-")&&i+1<t.options.length&&!t.options[i+1].startsWith("-")?(r.outputOptions(n,t.options[i+1]),i++):r.outputOptions(n);}r.on("end",async()=>{try{await t.onEnd(),e();}catch(i){a(i);}}).on("error",async i=>{try{await t.onError(i);}finally{a(i);}}).run();})}static async getDuration(t){return new Promise((e,a)=>{P.ffprobe(t,(r,i)=>{if(r)return a(r);e(i.format.duration||0);});})}};var T=class{static async toOpus(t){return this.convert(t,"opus")}static async toMp3(t){return this.convert(t,"mp3")}static async convert(t,e="opus"){let a=await c.toBuffer(t),r=await fileTypeFromBuffer(a);g.validate(r,o.MIME.AUDIO);let i=await c.getExtension(a),n=s.createTempPath("audio_in",i),l=e==="opus"?"ogg":"mp3",f=s.createTempPath("audio_out",l);await s.safeWriteFile(n,a);let u;try{let m=e==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","ogg"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await M.process({input:n,output:f,options:m,onEnd:async()=>{u=await s.safeReadFile(f);},onError:async()=>{await s.cleanup([n,f]);}}),await s.cleanup([n,f]),u}catch(m){throw await s.cleanup([n,f]),new Error(`${e.toUpperCase()} conversion failed: ${m.message}`)}}};var I=class{static async toMp4(t){let e=await c.toBuffer(t),a=await fileTypeFromBuffer(e);g.validate(a,o.MIME.VIDEO);let r=await c.getExtension(e),i=s.createTempPath("video_in",r),n=s.createTempPath("video_out","mp4");await s.safeWriteFile(i,e);let l;try{let f=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-vf","scale=trunc(iw/2)*2:trunc(ih/2)*2","-pix_fmt","yuv420p","-f","mp4"];return await M.process({input:i,output:n,options:f,onEnd:async()=>{l=await s.safeReadFile(n);},onError:async()=>{await s.cleanup([i,n]);}}),await s.cleanup([i,n]),l}catch(f){throw await s.cleanup([i,n]),new Error(`Video re-encoding failed: ${f.message}`)}}static async thumbnail(t){let e=await c.toBuffer(t),a=await fileTypeFromBuffer(e);g.validate(a,o.MIME.VIDEO);let r=await c.getExtension(e),i=s.createTempPath("video",r),n=s.createTempPath("thumb","jpg");await s.safeWriteFile(i,e);let l;try{return await new Promise((f,u)=>{P(i).screenshots({timestamps:[o.THUMBNAIL.TIMESTAMP],filename:U.basename(n),folder:U.dirname(n),size:`${o.THUMBNAIL.SIZE}x${o.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await s.safeReadFile(n)).toString("base64"),f();}catch(m){u(m);}}).on("error",u);}),await s.cleanup([i,n]),l}catch(f){throw await s.cleanup([i,n]),new Error(`Thumbnail generation failed: ${f.message}`)}}static async duration(t){return M.getDuration(t)}};var h=class{static async thumbnail(t){let e=x(t).resize(o.THUMBNAIL.SIZE,o.THUMBNAIL.SIZE,{fit:"cover"});return (await e.metadata()).format==="gif"&&(e=x(t,{pages:1}).resize(o.THUMBNAIL.SIZE,o.THUMBNAIL.SIZE)),(await e.jpeg({quality:o.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}static async resize(t,e,a){return x(t).resize(e,a,{fit:"cover"}).png().toBuffer()}static async toJpeg(t){let e=await c.toBuffer(t),a=await x(e).metadata();if(!a.format)throw new Error("Invalid image type: format could not be determined");return a.format==="webp"||a.format==="png"?x(e).jpeg().toBuffer():e}static async resizeForSticker(t,e,a="default"){let r=o.STICKER.SIZE,i=x(t).resize(r,r,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}});if(a!=="default"){let n=Buffer.alloc(r*r);for(let f=0;f<r;f++)for(let u=0;u<r;u++){let m=false,y=r/2,b=r/2;switch(a){case "circle":{let p=u-y,B=f-b;m=p*p+B*B<=y*y;break}case "rounded":{let p=r/10,B=u>=p&&u<r-p&&f>=0&&f<r,S=u>=0&&u<r&&f>=p&&f<r-p,F=false,R=[[p,p],[r-p,p],[p,r-p],[r-p,r-p]];for(let[D,V]of R){let O=u-D,_=f-V;if(O*O+_*_<=p*p){F=true;break}}m=B||S||F;break}case "oval":{let p=r/2,B=r/3,S=(u-y)/p,F=(f-b)/B;m=S*S+F*F<=1;break}}n[f*r+u]=m?255:0;}let l=x(n,{raw:{width:r,height:r,channels:1}});i=i.joinChannel(await l.toBuffer());}return i.webp({quality:e}).toBuffer()}};var A=()=>Date.now().toString(36)+Math.random().toString(36).slice(2,8),$=d=>d;var k=class{static async create(t,e){try{let a=await c.toBuffer(t),r=await fileTypeFromBuffer(a);if(!r)throw new Error("Unable to detect file type");let i=e?.quality||o.STICKER.DEFAULT_QUALITY,n=g.isAnimated(r.mime),l=e?.shape||"default",f=n?await this.processAnimated(a,r.mime,i):await h.resizeForSticker(a,i,l),u=this.createExifMetadata(e),m=new Z.Image;await m.load(f),m.exif=u;let y=await m.save(null);return Buffer.isBuffer(y)?y:Buffer.from(y)}catch(a){throw new Error(`Sticker creation failed: ${a.message||a}`)}}static createExifMetadata(t){let e={"sticker-pack-id":A(),"sticker-pack-name":t?.packageName||"Zaileys Library","sticker-pack-publisher":t?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},a=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),r=Buffer.from(JSON.stringify(e),"utf8"),i=Buffer.concat([a,r]);return i.writeUIntLE(r.length,14,4),i}static async processAnimated(t,e,a){let r=this.getExtension(e),i=s.createTempPath("sticker_in",r),n=s.createTempPath("sticker_out","webp");await s.safeWriteFile(i,t);let l=o.STICKER.MAX_DURATION;try{let p=await I.duration(i);l=$(Math.min(p,o.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",o.STICKER.MAX_DURATION);}let f=o.STICKER.SIZE,u=o.STICKER.FPS,m=`scale=${f}:${f}:force_original_aspect_ratio=decrease,fps=${u},pad=${f}:${f}:(ow-iw)/2:(oh-ih)/2:color=0x00000000,format=rgba`,y=Math.max(1,Math.min(100,a)),b;try{return await M.process({input:i,output:n,options:["-vcodec libwebp",`-vf ${m}`,`-q:v ${y}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${o.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{b=await s.safeReadFile(n);},onError:async()=>{await s.cleanup([i,n]);}}),await s.cleanup([i,n]),b}catch(p){throw await s.cleanup([i,n]),new Error(`Animated sticker processing failed: ${p.message}`)}}static getExtension(t){return t===o.MIME.GIF?"gif":t.startsWith(o.MIME.VIDEO)?"mp4":"tmp"}};var N=class{static async create(t){try{let e=await c.toBuffer(t),a=await fileTypeFromBuffer(e);if(!a)throw new Error("Unable to detect file type");let r;return a.mime.startsWith(o.MIME.VIDEO)?r=await I.thumbnail(e):g.isMedia(a.mime)?r=await h.thumbnail(e):r="",{document:e,mimetype:a.mime,ext:a.ext,fileName:A(),jpegThumbnail:r}}catch(e){throw new Error(`Document creation failed: ${e.message||e}`)}}};var L=class{input;constructor(t){this.input=t;}get audio(){return {toOpus:()=>T.toOpus(this.input),toMp3:()=>T.toMp3(this.input),convert:(t="opus")=>T.convert(this.input,t)}}get video(){return {toMp4:()=>I.toMp4(this.input),thumbnail:()=>I.thumbnail(this.input)}}get image(){return {toJpeg:()=>h.toJpeg(this.input),thumbnail:async()=>{let t=await c.toBuffer(this.input);return h.thumbnail(t)},resize:async(t,e)=>{let a=await c.toBuffer(this.input);return h.resize(a,t,e)}}}get sticker(){return {create:t=>k.create(this.input,t)}}get document(){return {create:()=>N.create(this.input)}}get thumbnail(){return {get:async()=>{let t=await c.toBuffer(this.input),e=await fileTypeFromBuffer(t);if(!e||!g.isMedia(e.mime))throw new Error("Invalid media type: expected image or video");return e.mime.startsWith(o.MIME.VIDEO)?I.thumbnail(this.input):h.thumbnail(t)}}}async toBuffer(){return c.toBuffer(this.input)}};
2
- export{T as AudioProcessor,c as BufferConverter,N as DocumentProcessor,o as FFMPEG_CONSTANTS,M as FFmpegProcessor,s as FileManager,h as ImageProcessor,L as Media,g as MimeValidator,k as StickerProcessor,I as VideoProcessor,tt as initializeFFmpeg};
1
+ import kr from'path';import'url';import Pe from'fluent-ffmpeg';import me from'fs/promises';import {tmpdir}from'os';import {fileTypeFromBuffer}from'file-type';import {Jimp}from'jimp';import ao from'node-webpmux';var B=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Bi=(e,r)=>()=>(e&&(r=e(e=0)),r);var I=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var u=Bi(()=>{});var W=I((Fo,Mr)=>{u();var Sr=function(e){return typeof e<"u"&&e!==null},$i=function(e){return typeof e=="object"},Ci=function(e){return Object.prototype.toString.call(e)==="[object Object]"},_i=function(e){return typeof e=="function"},Oi=function(e){return typeof e=="boolean"},qi=function(e){return e instanceof Buffer},Di=function(e){if(Sr(e))switch(e.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return true}return false},zi=function(e){return e instanceof ArrayBuffer},Ui=function(e){return typeof e=="string"&&e.length>0},Gi=function(e){return typeof e=="number"&&!Number.isNaN(e)},Wi=function(e){return Number.isInteger(e)},Hi=function(e,r,t){return e>=r&&e<=t},Vi=function(e,r){return r.includes(e)},Xi=function(e,r,t){return new Error(`Expected ${r} for ${e} but received ${t} of type ${typeof t}`)},Qi=function(e,r){return r.message=e.message,r};Mr.exports={defined:Sr,object:$i,plainObject:Ci,fn:_i,bool:Oi,buffer:qi,typedArray:Di,arrayBuffer:zi,string:Ui,number:Gi,integer:Wi,inRange:Hi,inArray:Vi,invalidParameterError:Xi,nativeError:Qi};});var Fr=I((To,Br)=>{u();var Lr=()=>process.platform==="linux",Ae=null,Ji=()=>{if(!Ae)if(Lr()&&process.report){let e=process.report.excludeNetwork;process.report.excludeNetwork=true,Ae=process.report.getReport(),process.report.excludeNetwork=e;}else Ae={};return Ae};Br.exports={isLinux:Lr,getReport:Ji};});var Tr=I(($o,jr)=>{u();var le=B("fs"),Ki="/usr/bin/ldd",Yi="/proc/self/exe",Re=2048,Zi=e=>{let r=le.openSync(e,"r"),t=Buffer.alloc(Re),i=le.readSync(r,t,0,Re,0);return le.close(r,()=>{}),t.subarray(0,i)},en=e=>new Promise((r,t)=>{le.open(e,"r",(i,n)=>{if(i)t(i);else {let s=Buffer.alloc(Re);le.read(n,s,0,Re,0,(o,c)=>{r(s.subarray(0,c)),le.close(n,()=>{});});}});});jr.exports={LDD_PATH:Ki,SELF_PATH:Yi,readFileSync:Zi,readFile:en};});var $r=I((_o,Nr)=>{u();var rn=e=>{if(e.length<64||e.readUInt32BE(0)!==2135247942||e.readUInt8(4)!==2||e.readUInt8(5)!==1)return null;let r=e.readUInt32LE(32),t=e.readUInt16LE(54),i=e.readUInt16LE(56);for(let n=0;n<i;n++){let s=r+n*t;if(e.readUInt32LE(s)===3){let c=e.readUInt32LE(s+8),h=e.readUInt32LE(s+32);return e.subarray(c,c+h).toString().replace(/\0.*$/g,"")}}return null};Nr.exports={interpreterPath:rn};});var Se=I((qo,et)=>{u();var _r=B("child_process"),{isLinux:ce,getReport:Or}=Fr(),{LDD_PATH:ke,SELF_PATH:qr,readFile:Ze,readFileSync:er}=Tr(),{interpreterPath:Dr}=$r(),H,V,X,zr="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",ee="",Ur=()=>ee||new Promise(e=>{_r.exec(zr,(r,t)=>{ee=r?" ":t,e(ee);});}),Gr=()=>{if(!ee)try{ee=_r.execSync(zr,{encoding:"utf8"});}catch{ee=" ";}return ee},K="glibc",Wr=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,ae="musl",tn=e=>e.includes("libc.musl-")||e.includes("ld-musl-"),Hr=()=>{let e=Or();return e.header&&e.header.glibcVersionRuntime?K:Array.isArray(e.sharedObjects)&&e.sharedObjects.some(tn)?ae:null},Vr=e=>{let[r,t]=e.split(/[\r\n]+/);return r&&r.includes(K)?K:t&&t.includes(ae)?ae:null},Xr=e=>{if(e){if(e.includes("/ld-musl-"))return ae;if(e.includes("/ld-linux-"))return K}return null},Qr=e=>(e=e.toString(),e.includes("musl")?ae:e.includes("GNU C Library")?K:null),nn=async()=>{if(V!==void 0)return V;V=null;try{let e=await Ze(ke);V=Qr(e);}catch{}return V},an=()=>{if(V!==void 0)return V;V=null;try{let e=er(ke);V=Qr(e);}catch{}return V},sn=async()=>{if(H!==void 0)return H;H=null;try{let e=await Ze(qr),r=Dr(e);H=Xr(r);}catch{}return H},on=()=>{if(H!==void 0)return H;H=null;try{let e=er(qr),r=Dr(e);H=Xr(r);}catch{}return H},Jr=async()=>{let e=null;if(ce()&&(e=await sn(),!e&&(e=await nn(),e||(e=Hr()),!e))){let r=await Ur();e=Vr(r);}return e},Kr=()=>{let e=null;if(ce()&&(e=on(),!e&&(e=an(),e||(e=Hr()),!e))){let r=Gr();e=Vr(r);}return e},ln=async()=>ce()&&await Jr()!==K,cn=()=>ce()&&Kr()!==K,fn=async()=>{if(X!==void 0)return X;X=null;try{let r=(await Ze(ke)).match(Wr);r&&(X=r[1]);}catch{}return X},hn=()=>{if(X!==void 0)return X;X=null;try{let r=er(ke).match(Wr);r&&(X=r[1]);}catch{}return X},Yr=()=>{let e=Or();return e.header&&e.header.glibcVersionRuntime?e.header.glibcVersionRuntime:null},Cr=e=>e.trim().split(/\s+/)[1],Zr=e=>{let[r,t,i]=e.split(/[\r\n]+/);return r&&r.includes(K)?Cr(r):t&&i&&t.includes(ae)?Cr(i):null},un=async()=>{let e=null;if(ce()&&(e=await fn(),e||(e=Yr()),!e)){let r=await Ur();e=Zr(r);}return e},dn=()=>{let e=null;if(ce()&&(e=hn(),e||(e=Yr()),!e)){let r=Gr();e=Zr(r);}return e};et.exports={GLIBC:K,MUSL:ae,family:Jr,familySync:Kr,isNonGlibcLinux:ln,isNonGlibcLinuxSync:cn,version:un,versionSync:dn};});var rr=I((zo,rt)=>{u();var mn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};rt.exports=mn;});var tr=I((Go,tt)=>{u();var gn="2.0.0",pn=Number.MAX_SAFE_INTEGER||9007199254740991,bn=16,wn=250,yn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];tt.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:bn,MAX_SAFE_BUILD_LENGTH:wn,MAX_SAFE_INTEGER:pn,RELEASE_TYPES:yn,SEMVER_SPEC_VERSION:gn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};});var ar=I((Q,it)=>{u();var{MAX_SAFE_COMPONENT_LENGTH:ir,MAX_SAFE_BUILD_LENGTH:En,MAX_LENGTH:vn}=tr(),xn=rr();Q=it.exports={};var In=Q.re=[],Pn=Q.safeRe=[],m=Q.src=[],An=Q.safeSrc=[],g=Q.t={},Rn=0,nr="[a-zA-Z0-9-]",kn=[["\\s",1],["\\d",vn],[nr,En]],Sn=e=>{for(let[r,t]of kn)e=e.split(`${r}*`).join(`${r}{0,${t}}`).split(`${r}+`).join(`${r}{1,${t}}`);return e},v=(e,r,t)=>{let i=Sn(r),n=Rn++;xn(e,n,r),g[e]=n,m[n]=r,An[n]=i,In[n]=new RegExp(r,t?"g":void 0),Pn[n]=new RegExp(i,t?"g":void 0);};v("NUMERICIDENTIFIER","0|[1-9]\\d*");v("NUMERICIDENTIFIERLOOSE","\\d+");v("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${nr}*`);v("MAINVERSION",`(${m[g.NUMERICIDENTIFIER]})\\.(${m[g.NUMERICIDENTIFIER]})\\.(${m[g.NUMERICIDENTIFIER]})`);v("MAINVERSIONLOOSE",`(${m[g.NUMERICIDENTIFIERLOOSE]})\\.(${m[g.NUMERICIDENTIFIERLOOSE]})\\.(${m[g.NUMERICIDENTIFIERLOOSE]})`);v("PRERELEASEIDENTIFIER",`(?:${m[g.NONNUMERICIDENTIFIER]}|${m[g.NUMERICIDENTIFIER]})`);v("PRERELEASEIDENTIFIERLOOSE",`(?:${m[g.NONNUMERICIDENTIFIER]}|${m[g.NUMERICIDENTIFIERLOOSE]})`);v("PRERELEASE",`(?:-(${m[g.PRERELEASEIDENTIFIER]}(?:\\.${m[g.PRERELEASEIDENTIFIER]})*))`);v("PRERELEASELOOSE",`(?:-?(${m[g.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${m[g.PRERELEASEIDENTIFIERLOOSE]})*))`);v("BUILDIDENTIFIER",`${nr}+`);v("BUILD",`(?:\\+(${m[g.BUILDIDENTIFIER]}(?:\\.${m[g.BUILDIDENTIFIER]})*))`);v("FULLPLAIN",`v?${m[g.MAINVERSION]}${m[g.PRERELEASE]}?${m[g.BUILD]}?`);v("FULL",`^${m[g.FULLPLAIN]}$`);v("LOOSEPLAIN",`[v=\\s]*${m[g.MAINVERSIONLOOSE]}${m[g.PRERELEASELOOSE]}?${m[g.BUILD]}?`);v("LOOSE",`^${m[g.LOOSEPLAIN]}$`);v("GTLT","((?:<|>)?=?)");v("XRANGEIDENTIFIERLOOSE",`${m[g.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);v("XRANGEIDENTIFIER",`${m[g.NUMERICIDENTIFIER]}|x|X|\\*`);v("XRANGEPLAIN",`[v=\\s]*(${m[g.XRANGEIDENTIFIER]})(?:\\.(${m[g.XRANGEIDENTIFIER]})(?:\\.(${m[g.XRANGEIDENTIFIER]})(?:${m[g.PRERELEASE]})?${m[g.BUILD]}?)?)?`);v("XRANGEPLAINLOOSE",`[v=\\s]*(${m[g.XRANGEIDENTIFIERLOOSE]})(?:\\.(${m[g.XRANGEIDENTIFIERLOOSE]})(?:\\.(${m[g.XRANGEIDENTIFIERLOOSE]})(?:${m[g.PRERELEASELOOSE]})?${m[g.BUILD]}?)?)?`);v("XRANGE",`^${m[g.GTLT]}\\s*${m[g.XRANGEPLAIN]}$`);v("XRANGELOOSE",`^${m[g.GTLT]}\\s*${m[g.XRANGEPLAINLOOSE]}$`);v("COERCEPLAIN",`(^|[^\\d])(\\d{1,${ir}})(?:\\.(\\d{1,${ir}}))?(?:\\.(\\d{1,${ir}}))?`);v("COERCE",`${m[g.COERCEPLAIN]}(?:$|[^\\d])`);v("COERCEFULL",m[g.COERCEPLAIN]+`(?:${m[g.PRERELEASE]})?(?:${m[g.BUILD]})?(?:$|[^\\d])`);v("COERCERTL",m[g.COERCE],true);v("COERCERTLFULL",m[g.COERCEFULL],true);v("LONETILDE","(?:~>?)");v("TILDETRIM",`(\\s*)${m[g.LONETILDE]}\\s+`,true);Q.tildeTrimReplace="$1~";v("TILDE",`^${m[g.LONETILDE]}${m[g.XRANGEPLAIN]}$`);v("TILDELOOSE",`^${m[g.LONETILDE]}${m[g.XRANGEPLAINLOOSE]}$`);v("LONECARET","(?:\\^)");v("CARETTRIM",`(\\s*)${m[g.LONECARET]}\\s+`,true);Q.caretTrimReplace="$1^";v("CARET",`^${m[g.LONECARET]}${m[g.XRANGEPLAIN]}$`);v("CARETLOOSE",`^${m[g.LONECARET]}${m[g.XRANGEPLAINLOOSE]}$`);v("COMPARATORLOOSE",`^${m[g.GTLT]}\\s*(${m[g.LOOSEPLAIN]})$|^$`);v("COMPARATOR",`^${m[g.GTLT]}\\s*(${m[g.FULLPLAIN]})$|^$`);v("COMPARATORTRIM",`(\\s*)${m[g.GTLT]}\\s*(${m[g.LOOSEPLAIN]}|${m[g.XRANGEPLAIN]})`,true);Q.comparatorTrimReplace="$1$2$3";v("HYPHENRANGE",`^\\s*(${m[g.XRANGEPLAIN]})\\s+-\\s+(${m[g.XRANGEPLAIN]})\\s*$`);v("HYPHENRANGELOOSE",`^\\s*(${m[g.XRANGEPLAINLOOSE]})\\s+-\\s+(${m[g.XRANGEPLAINLOOSE]})\\s*$`);v("STAR","(<|>)?=?\\s*\\*");v("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");v("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");});var at=I((Vo,nt)=>{u();var Mn=Object.freeze({loose:true}),Ln=Object.freeze({}),Bn=e=>e?typeof e!="object"?Mn:e:Ln;nt.exports=Bn;});var ct=I((Qo,lt)=>{u();var st=/^[0-9]+$/,ot=(e,r)=>{if(typeof e=="number"&&typeof r=="number")return e===r?0:e<r?-1:1;let t=st.test(e),i=st.test(r);return t&&i&&(e=+e,r=+r),e===r?0:t&&!i?-1:i&&!t?1:e<r?-1:1},Fn=(e,r)=>ot(r,e);lt.exports={compareIdentifiers:ot,rcompareIdentifiers:Fn};});var je=I((Ko,ht)=>{u();var Me=rr(),{MAX_LENGTH:ft,MAX_SAFE_INTEGER:Le}=tr(),{safeRe:Be,t:Fe}=ar(),jn=at(),{compareIdentifiers:sr}=ct(),or=class e{constructor(r,t){if(t=jn(t),r instanceof e){if(r.loose===!!t.loose&&r.includePrerelease===!!t.includePrerelease)return r;r=r.version;}else if(typeof r!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof r}".`);if(r.length>ft)throw new TypeError(`version is longer than ${ft} characters`);Me("SemVer",r,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=r.trim().match(t.loose?Be[Fe.LOOSE]:Be[Fe.FULL]);if(!i)throw new TypeError(`Invalid Version: ${r}`);if(this.raw=r,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>Le||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Le||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Le||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<Le)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format();}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(r){if(Me("SemVer.compare",this.version,this.options,r),!(r instanceof e)){if(typeof r=="string"&&r===this.version)return 0;r=new e(r,this.options);}return r.version===this.version?0:this.compareMain(r)||this.comparePre(r)}compareMain(r){return r instanceof e||(r=new e(r,this.options)),this.major<r.major?-1:this.major>r.major?1:this.minor<r.minor?-1:this.minor>r.minor?1:this.patch<r.patch?-1:this.patch>r.patch?1:0}comparePre(r){if(r instanceof e||(r=new e(r,this.options)),this.prerelease.length&&!r.prerelease.length)return -1;if(!this.prerelease.length&&r.prerelease.length)return 1;if(!this.prerelease.length&&!r.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=r.prerelease[t];if(Me("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return -1;if(i===n)continue;return sr(i,n)}while(++t)}compareBuild(r){r instanceof e||(r=new e(r,this.options));let t=0;do{let i=this.build[t],n=r.build[t];if(Me("build compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return -1;if(i===n)continue;return sr(i,n)}while(++t)}inc(r,t,i){if(r.startsWith("pre")){if(!t&&i===false)throw new Error("invalid increment argument: identifier is empty");if(t){let n=`-${t}`.match(this.options.loose?Be[Fe.PRERELEASELOOSE]:Be[Fe.PRERELEASE]);if(!n||n[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(r){case "premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,i);break;case "preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,i);break;case "prepatch":this.prerelease.length=0,this.inc("patch",t,i),this.inc("pre",t,i);break;case "prerelease":this.prerelease.length===0&&this.inc("patch",t,i),this.inc("pre",t,i);break;case "release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case "major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case "minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case "patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case "pre":{let n=Number(i)?1:0;if(this.prerelease.length===0)this.prerelease=[n];else {let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&i===false)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n);}}if(t){let s=[t,n];i===false&&(s=[t]),sr(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s;}break}default:throw new Error(`invalid increment argument: ${r}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ht.exports=or;});var mt=I((Zo,dt)=>{u();var ut=je(),Tn=(e,r,t=false)=>{if(e instanceof ut)return e;try{return new ut(e,r)}catch(i){if(!t)return null;throw i}};dt.exports=Tn;});var pt=I((rl,gt)=>{u();var Nn=je(),$n=mt(),{safeRe:Te,t:Ne}=ar(),Cn=(e,r)=>{if(e instanceof Nn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;r=r||{};let t=null;if(!r.rtl)t=e.match(r.includePrerelease?Te[Ne.COERCEFULL]:Te[Ne.COERCE]);else {let h=r.includePrerelease?Te[Ne.COERCERTLFULL]:Te[Ne.COERCERTL],d;for(;(d=h.exec(e))&&(!t||t.index+t[0].length!==e.length);)(!t||d.index+d[0].length!==t.index+t[0].length)&&(t=d),h.lastIndex=d.index+d[1].length+d[2].length;h.lastIndex=-1;}if(t===null)return null;let i=t[2],n=t[3]||"0",s=t[4]||"0",o=r.includePrerelease&&t[5]?`-${t[5]}`:"",c=r.includePrerelease&&t[6]?`+${t[6]}`:"";return $n(`${i}.${n}.${s}${o}${c}`,r)};gt.exports=Cn;});var yt=I((il,wt)=>{u();var bt=je(),_n=(e,r,t)=>new bt(e,t).compare(new bt(r,t));wt.exports=_n;});var vt=I((al,Et)=>{u();var On=yt(),qn=(e,r,t)=>On(e,r,t)>=0;Et.exports=qn;});var lr=I((ol,Dn)=>{Dn.exports={name:"sharp",description:"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",version:"0.33.0",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://github.com/lovell/sharp",contributors:["Pierre Inglebert <pierre.inglebert@gmail.com>","Jonathan Ong <jonathanrichardong@gmail.com>","Chanon Sajjamanochai <chanon.s@gmail.com>","Juliano Julio <julianojulio@gmail.com>","Daniel Gasienica <daniel@gasienica.ch>","Julian Walker <julian@fiftythree.com>","Amit Pitaru <pitaru.amit@gmail.com>","Brandon Aaron <hello.brandon@aaron.sh>","Andreas Lind <andreas@one.com>","Maurus Cuelenaere <mcuelenaere@gmail.com>","Linus Unneb\xE4ck <linus@folkdatorn.se>","Victor Mateevitsi <mvictoras@gmail.com>","Alaric Holloway <alaric.holloway@gmail.com>","Bernhard K. Weisshuhn <bkw@codingforce.com>","Chris Riley <criley@primedia.com>","David Carley <dacarley@gmail.com>","John Tobin <john@limelightmobileinc.com>","Kenton Gray <kentongray@gmail.com>","Felix B\xFCnemann <Felix.Buenemann@gmail.com>","Samy Al Zahrani <samyalzahrany@gmail.com>","Chintan Thakkar <lemnisk8@gmail.com>","F. Orlando Galashan <frulo@gmx.de>","Kleis Auke Wolthuizen <info@kleisauke.nl>","Matt Hirsch <mhirsch@media.mit.edu>","Matthias Thoemmes <thoemmes@gmail.com>","Patrick Paskaris <patrick@paskaris.gr>","J\xE9r\xE9my Lal <kapouer@melix.org>","Rahul Nanwani <r.nanwani@gmail.com>","Alice Monday <alice0meta@gmail.com>","Kristo Jorgenson <kristo.jorgenson@gmail.com>","YvesBos <yves_bos@outlook.com>","Guy Maliar <guy@tailorbrands.com>","Nicolas Coden <nicolas@ncoden.fr>","Matt Parrish <matt.r.parrish@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Matthew McEachen <matthew+github@mceachen.org>","Jarda Kot\u011B\u0161ovec <jarda.kotesovec@gmail.com>","Kenric D'Souza <kenric.dsouza@gmail.com>","Oleh Aleinyk <oleg.aleynik@gmail.com>","Marcel Bretschneider <marcel.bretschneider@gmail.com>","Andrea Bianco <andrea.bianco@unibas.ch>","Rik Heywood <rik@rik.org>","Thomas Parisot <hi@oncletom.io>","Nathan Graves <nathanrgraves+github@gmail.com>","Tom Lokhorst <tom@lokhorst.eu>","Espen Hovlandsdal <espen@hovlandsdal.com>","Sylvain Dumont <sylvain.dumont35@gmail.com>","Alun Davies <alun.owain.davies@googlemail.com>","Aidan Hoolachan <ajhoolachan21@gmail.com>","Axel Eirola <axel.eirola@iki.fi>","Freezy <freezy@xbmc.org>","Daiz <taneli.vatanen@gmail.com>","Julian Aubourg <j@ubourg.net>","Keith Belovay <keith@picthrive.com>","Michael B. Klein <mbklein@gmail.com>","Jordan Prudhomme <jordan@raboland.fr>","Ilya Ovdin <iovdin@gmail.com>","Andargor <andargor@yahoo.com>","Paul Neave <paul.neave@gmail.com>","Brendan Kennedy <brenwken@gmail.com>","Brychan Bennett-Odlum <git@brychan.io>","Edward Silverton <e.silverton@gmail.com>","Roman Malieiev <aromaleev@gmail.com>","Tomas Szabo <tomas.szabo@deftomat.com>","Robert O'Rourke <robert@o-rourke.org>","Guillermo Alfonso Varela Chouci\xF1o <guillevch@gmail.com>","Christian Flintrup <chr@gigahost.dk>","Manan Jadhav <manan@motionden.com>","Leon Radley <leon@radley.se>","alza54 <alza54@thiocod.in>","Jacob Smith <jacob@frende.me>","Michael Nutt <michael@nutt.im>","Brad Parham <baparham@gmail.com>","Taneli Vatanen <taneli.vatanen@gmail.com>","Joris Dugu\xE9 <zaruike10@gmail.com>","Chris Banks <christopher.bradley.banks@gmail.com>","Ompal Singh <ompal.hitm09@gmail.com>","Brodan <christopher.hranj@gmail.com","Ankur Parihar <ankur.github@gmail.com>","Brahim Ait elhaj <brahima@gmail.com>","Mart Jansink <m.jansink@gmail.com>","Lachlan Newman <lachnewman007@gmail.com>","Dennis Beatty <dennis@dcbeatty.com>","Ingvar Stepanyan <me@rreverser.com>"],scripts:{install:"node install/check",clean:"rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",test:"npm run test-lint && npm run test-unit && npm run test-licensing && npm run test-types","test-lint":"semistandard && cpplint","test-unit":"nyc --reporter=lcov --reporter=text --check-coverage --branches=100 mocha","test-licensing":'license-checker --production --summary --onlyAllow="Apache-2.0;BSD;ISC;LGPL-3.0-or-later;MIT"',"test-leak":"./test/leak/leak.sh","test-types":"tsd","package-from-local-build":"node npm/from-local-build","package-from-github-release":"node npm/from-github-release","docs-build":"node docs/build && node docs/search-index/build","docs-serve":"cd docs && npx serve","docs-publish":"cd docs && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"},type:"commonjs",main:"lib/index.js",types:"lib/index.d.ts",files:["install","lib","src/*.{cc,h,gyp}"],repository:{type:"git",url:"git://github.com/lovell/sharp.git"},keywords:["jpeg","png","webp","avif","tiff","gif","svg","jp2","dzi","image","resize","thumbnail","crop","embed","libvips","vips"],dependencies:{color:"^4.2.3","detect-libc":"^2.0.2",semver:"^7.5.4"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.33.0","@img/sharp-darwin-x64":"0.33.0","@img/sharp-libvips-darwin-arm64":"1.0.0","@img/sharp-libvips-darwin-x64":"1.0.0","@img/sharp-libvips-linux-arm":"1.0.0","@img/sharp-libvips-linux-arm64":"1.0.0","@img/sharp-libvips-linux-s390x":"1.0.0","@img/sharp-libvips-linux-x64":"1.0.0","@img/sharp-libvips-linuxmusl-arm64":"1.0.0","@img/sharp-libvips-linuxmusl-x64":"1.0.0","@img/sharp-linux-arm":"0.33.0","@img/sharp-linux-arm64":"0.33.0","@img/sharp-linux-s390x":"0.33.0","@img/sharp-linux-x64":"0.33.0","@img/sharp-linuxmusl-arm64":"0.33.0","@img/sharp-linuxmusl-x64":"0.33.0","@img/sharp-wasm32":"0.33.0","@img/sharp-win32-ia32":"0.33.0","@img/sharp-win32-x64":"0.33.0"},devDependencies:{"@emnapi/runtime":"^0.44.0","@img/sharp-libvips-dev":"1.0.0","@img/sharp-libvips-dev-wasm32":"1.0.0","@img/sharp-libvips-win32-ia32":"1.0.0","@img/sharp-libvips-win32-x64":"1.0.0","@types/node":"*",async:"^3.2.5",cc:"^3.0.1",emnapi:"^0.44.0","exif-reader":"^2.0.0","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^8.0.0","license-checker":"^25.0.1",mocha:"^10.2.0","node-addon-api":"^7.0.0",nyc:"^15.1.0",prebuild:"^12.1.0",semistandard:"^17.0.0","tar-fs":"^3.0.4",tsd:"^0.29.0"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0",libvips:">=8.15.0"},funding:{url:"https://opencollective.com/libvips"},binary:{napi_versions:[9]},semistandard:{env:["mocha"]},cc:{linelength:"120",filter:["build/include"]},nyc:{include:["lib"]},tsd:{directory:"test/types/"}};});var fr=I((ll,St)=>{u();var{spawnSync:Ce}=B("child_process"),zn=pt(),Un=vt(),xt=Se(),{engines:Gn}=lr(),Wn=process.env.npm_package_config_libvips||Gn.libvips,It=zn(Wn).version,Hn=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-ia32","win32-x64"],_e={encoding:"utf8",shell:true},cr=e=>{e instanceof Error?console.error(`sharp: Installation error: ${e.message}`):console.log(`sharp: ${e}`);},Pt=()=>xt.isNonGlibcLinuxSync()?xt.familySync():"",Vn=()=>`${process.platform}${Pt()}-${process.arch}`,$e=()=>{if(At())return "wasm32";let{npm_config_arch:e,npm_config_platform:r,npm_config_libc:t}=process.env,i=typeof t=="string"?t:Pt();return `${r||process.platform}${i}-${e||process.arch}`},Xn=()=>{try{return B(`@img/sharp-libvips-dev-${$e()}/include`)}catch{try{return B("@img/sharp-libvips-dev/include")}catch{}}return ""},Qn=()=>{try{return B("@img/sharp-libvips-dev/cplusplus")}catch{}return ""},Jn=()=>{try{return B(`@img/sharp-libvips-dev-${$e()}/lib`)}catch{try{return B(`@img/sharp-libvips-${$e()}/lib`)}catch{}}return ""},At=()=>{let{CC:e}=process.env;return !!(e&&e.endsWith("/emcc"))},Kn=()=>process.platform==="darwin"&&process.arch==="x64"?(Ce("sysctl sysctl.proc_translated",_e).stdout||"").trim()==="sysctl.proc_translated: 1":false,Yn=()=>Ce(`node-gyp rebuild --directory=src ${At()?"--nodedir=emscripten":""}`,{..._e,stdio:"inherit"}).status,Rt=()=>process.platform!=="win32"?(Ce("pkg-config --modversion vips-cpp",{..._e,env:{...process.env,PKG_CONFIG_PATH:kt()}}).stdout||"").trim():"",kt=()=>process.platform!=="win32"?[(Ce('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',_e).stdout||"").trim(),process.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":"):"",Zn=()=>{if(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)return cr("Detected SHARP_IGNORE_GLOBAL_LIBVIPS, skipping search for globally-installed libvips"),false;if(Kn())return cr("Detected Rosetta, skipping search for globally-installed libvips"),false;let e=Rt();return !!e&&Un(e,It)};St.exports={minimumLibvipsVersion:It,prebuiltPlatforms:Hn,buildPlatformArch:$e,buildSharpLibvipsIncludeDir:Xn,buildSharpLibvipsCPlusPlusDir:Qn,buildSharpLibvipsLibDir:Jn,runtimePlatformArch:Vn,log:cr,spawnRebuild:Yn,globalLibvipsVersion:Rt,pkgConfigPath:kt,useGlobalLibvips:Zn};});var ge=I((hl,Mt)=>{u();var{familySync:ea,versionSync:ra}=Se(),{runtimePlatformArch:ta,prebuiltPlatforms:ia,minimumLibvipsVersion:na}=fr(),re=ta(),aa=[`../src/build/Release/sharp-${re}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${re}/sharp.node`,"@img/sharp-wasm32/sharp.node"],hr,Oe=[];for(let e of aa)try{hr=B(e);break}catch(r){Oe.push(r);}if(hr)Mt.exports=hr;else {let[e,r,t]=["linux","darwin","win32"].map(s=>re.startsWith(s)),i=[`Could not load the "sharp" module using the ${re} runtime`];Oe.forEach(s=>{s.code!=="MODULE_NOT_FOUND"&&i.push(`${s.code}: ${s.message}`);});let n=Oe.map(s=>s.message).join(" ");if(i.push("Possible solutions:"),ia.includes(re)){let[s,o]=re.split("-");i.push("- Add platform-specific dependencies:"),i.push(` npm install --os=${s} --cpu=${o} sharp`),i.push(" or"),i.push(` npm install --force @img/sharp-${re}`);}else i.push(`- Manually install libvips >= ${na}`),i.push("- Add experimental WebAssembly-based dependencies:"),i.push(" npm install --cpu=wasm32 sharp");if(e&&/symbol not found/i.test(n))try{let{engines:s}=B(`@img/sharp-libvips-${re}/package`),o=`${ea()} ${ra()}`,c=`${s.musl?"musl":"glibc"} ${s.musl||s.glibc}`;i.push("- Update your OS:"),i.push(` Found ${o}`),i.push(` Requires ${c}`);}catch{}throw r&&/Incompatible library version/.test(n)&&(i.push("- Update Homebrew:"),i.push(" brew update && brew upgrade vips")),Oe.some(s=>s.code==="ERR_DLOPEN_DISABLED")&&i.push("- Run Node.js without using the --no-addons flag"),process.versions.pnp&&(i.push("- Use a supported yarn linker, either pnpm or node-modules:"),i.push(" yarn config set nodeLinker node-modules")),t&&/The specified procedure could not be found/.test(n)?i.push("- Using the canvas package on Windows? See https://sharp.pixelplumbing.com/install#canvas-and-windows"):i.push("- Consult the installation documentation: https://sharp.pixelplumbing.com/install"),new Error(i.join(`
2
+ `))}});var Bt=I((ml,Lt)=>{u();var sa=B("util"),ur=B("stream"),oa=W();ge();var la=sa.debuglog("sharp"),se=function(e,r){if(arguments.length===1&&!oa.defined(e))throw new Error("Invalid input");return this instanceof se?(ur.Duplex.call(this),this.options={topOffsetPre:-1,leftOffsetPre:-1,widthPre:-1,heightPre:-1,topOffsetPost:-1,leftOffsetPost:-1,widthPost:-1,heightPost:-1,width:-1,height:-1,canvas:"crop",position:0,resizeBackground:[0,0,0,255],useExifOrientation:false,angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBeforePreExtract:false,flip:false,flop:false,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:false,withoutReduction:false,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:true,tint:[-1,0,0,0],flatten:false,flattenBackground:[0,0,0],unflatten:false,negate:false,negateAlpha:true,medianSize:0,blurSigma:0,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:true,trimBackground:[],trimThreshold:-1,trimLineArt:false,gamma:0,gammaOut:0,greyscale:false,normalise:false,normaliseLower:1,normaliseUpper:99,claheWidth:0,claheHeight:0,claheMaxSlope:3,brightness:1,saturation:1,hue:0,lightness:0,booleanBufferIn:null,booleanFileIn:"",joinChannelIn:[],extractChannel:-1,removeAlpha:false,ensureAlpha:-1,colourspace:"srgb",colourspaceInput:"last",composite:[],fileOut:"",formatOut:"input",streamOut:false,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:true,resolveWithObject:false,jpegQuality:80,jpegProgressive:false,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:false,jpegOvershootDeringing:false,jpegOptimiseScans:false,jpegOptimiseCoding:true,jpegQuantisationTable:0,pngProgressive:false,pngCompressionLevel:6,pngAdaptiveFiltering:false,pngPalette:false,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:false,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:false,webpNearLossless:false,webpSmartSubsample:false,webpPreset:"default",webpEffort:4,webpMinSize:false,webpMixed:false,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifReuse:true,gifProgressive:false,tiffQuality:80,tiffCompression:"jpeg",tiffPredictor:"horizontal",tiffPyramid:false,tiffMiniswhite:false,tiffBitdepth:8,tiffTile:false,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:false,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:false,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:false,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],debuglog:t=>{this.emit("warning",t),la(t);},queueListener:function(t){se.queue.emit("change",t);}},this.options.input=this._createInputDescriptor(e,r,{allowStream:true}),this):new se(e,r)};Object.setPrototypeOf(se.prototype,ur.Duplex.prototype);Object.setPrototypeOf(se,ur.Duplex);function ca(){let e=this.constructor.call();return e.options=Object.assign({},this.options),this._isStreamInput()&&this.on("finish",()=>{this._flattenBufferIn(),e.options.bufferIn=this.options.bufferIn,e.emit("finish");}),e}Object.assign(se.prototype,{clone:ca});Lt.exports=se;});var dr=I((pl,Ft)=>{u();Ft.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};});var Tt=I((wl,jt)=>{u();jt.exports=function(r){return !r||typeof r=="string"?false:r instanceof Array||Array.isArray(r)||r.length>=0&&(r.splice instanceof Function||Object.getOwnPropertyDescriptor(r,r.length-1)&&r.constructor.name!=="String")};});var Ct=I((El,$t)=>{u();var fa=Tt(),ha=Array.prototype.concat,ua=Array.prototype.slice,Nt=$t.exports=function(r){for(var t=[],i=0,n=r.length;i<n;i++){var s=r[i];fa(s)?t=ha.call(t,ua.call(s)):t.push(s);}return t};Nt.wrap=function(e){return function(){return e(Nt(arguments))}};});var Dt=I((xl,qt)=>{u();var pe=dr(),be=Ct(),_t=Object.hasOwnProperty,Ot=Object.create(null);for(qe in pe)_t.call(pe,qe)&&(Ot[pe[qe]]=qe);var qe,$=qt.exports={to:{},get:{}};$.get=function(e){var r=e.substring(0,3).toLowerCase(),t,i;switch(r){case "hsl":t=$.get.hsl(e),i="hsl";break;case "hwb":t=$.get.hwb(e),i="hwb";break;default:t=$.get.rgb(e),i="rgb";break}return t?{model:i,value:t}:null};$.get.rgb=function(e){if(!e)return null;var r=/^#([a-f0-9]{3,4})$/i,t=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,i=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,n=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,s=/^(\w+)$/,o=[0,0,0,1],c,h,d;if(c=e.match(t)){for(d=c[2],c=c[1],h=0;h<3;h++){var w=h*2;o[h]=parseInt(c.slice(w,w+2),16);}d&&(o[3]=parseInt(d,16)/255);}else if(c=e.match(r)){for(c=c[1],d=c[3],h=0;h<3;h++)o[h]=parseInt(c[h]+c[h],16);d&&(o[3]=parseInt(d+d,16)/255);}else if(c=e.match(i)){for(h=0;h<3;h++)o[h]=parseInt(c[h+1],0);c[4]&&(c[5]?o[3]=parseFloat(c[4])*.01:o[3]=parseFloat(c[4]));}else if(c=e.match(n)){for(h=0;h<3;h++)o[h]=Math.round(parseFloat(c[h+1])*2.55);c[4]&&(c[5]?o[3]=parseFloat(c[4])*.01:o[3]=parseFloat(c[4]));}else return (c=e.match(s))?c[1]==="transparent"?[0,0,0,0]:_t.call(pe,c[1])?(o=pe[c[1]],o[3]=1,o):null:null;for(h=0;h<3;h++)o[h]=te(o[h],0,255);return o[3]=te(o[3],0,1),o};$.get.hsl=function(e){if(!e)return null;var r=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,t=e.match(r);if(t){var i=parseFloat(t[4]),n=(parseFloat(t[1])%360+360)%360,s=te(parseFloat(t[2]),0,100),o=te(parseFloat(t[3]),0,100),c=te(isNaN(i)?1:i,0,1);return [n,s,o,c]}return null};$.get.hwb=function(e){if(!e)return null;var r=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,t=e.match(r);if(t){var i=parseFloat(t[4]),n=(parseFloat(t[1])%360+360)%360,s=te(parseFloat(t[2]),0,100),o=te(parseFloat(t[3]),0,100),c=te(isNaN(i)?1:i,0,1);return [n,s,o,c]}return null};$.to.hex=function(){var e=be(arguments);return "#"+De(e[0])+De(e[1])+De(e[2])+(e[3]<1?De(Math.round(e[3]*255)):"")};$.to.rgb=function(){var e=be(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};$.to.rgb.percent=function(){var e=be(arguments),r=Math.round(e[0]/255*100),t=Math.round(e[1]/255*100),i=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+r+"%, "+t+"%, "+i+"%)":"rgba("+r+"%, "+t+"%, "+i+"%, "+e[3]+")"};$.to.hsl=function(){var e=be(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};$.to.hwb=function(){var e=be(arguments),r="";return e.length>=4&&e[3]!==1&&(r=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+r+")"};$.to.keyword=function(e){return Ot[e.slice(0,3)]};function te(e,r,t){return Math.min(Math.max(r,e),t)}function De(e){var r=Math.round(e).toString(16).toUpperCase();return r.length<2?"0"+r:r}});var mr=I((Pl,Ut)=>{u();var we=dr(),zt={};for(let e of Object.keys(we))zt[we[e]]=e;var p={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Ut.exports=p;for(let e of Object.keys(p)){if(!("channels"in p[e]))throw new Error("missing channels property: "+e);if(!("labels"in p[e]))throw new Error("missing channel labels property: "+e);if(p[e].labels.length!==p[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:r,labels:t}=p[e];delete p[e].channels,delete p[e].labels,Object.defineProperty(p[e],"channels",{value:r}),Object.defineProperty(p[e],"labels",{value:t});}p.rgb.hsl=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255,n=Math.min(r,t,i),s=Math.max(r,t,i),o=s-n,c,h;s===n?c=0:r===s?c=(t-i)/o:t===s?c=2+(i-r)/o:i===s&&(c=4+(r-t)/o),c=Math.min(c*60,360),c<0&&(c+=360);let d=(n+s)/2;return s===n?h=0:d<=.5?h=o/(s+n):h=o/(2-s-n),[c,h*100,d*100]};p.rgb.hsv=function(e){let r,t,i,n,s,o=e[0]/255,c=e[1]/255,h=e[2]/255,d=Math.max(o,c,h),w=d-Math.min(o,c,h),A=function(T){return (d-T)/6/w+1/2};return w===0?(n=0,s=0):(s=w/d,r=A(o),t=A(c),i=A(h),o===d?n=i-t:c===d?n=1/3+r-i:h===d&&(n=2/3+t-r),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,d*100]};p.rgb.hwb=function(e){let r=e[0],t=e[1],i=e[2],n=p.rgb.hsl(e)[0],s=1/255*Math.min(r,Math.min(t,i));return i=1-1/255*Math.max(r,Math.max(t,i)),[n,s*100,i*100]};p.rgb.cmyk=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255,n=Math.min(1-r,1-t,1-i),s=(1-r-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,c=(1-i-n)/(1-n)||0;return [s*100,o*100,c*100,n*100]};function da(e,r){return (e[0]-r[0])**2+(e[1]-r[1])**2+(e[2]-r[2])**2}p.rgb.keyword=function(e){let r=zt[e];if(r)return r;let t=1/0,i;for(let n of Object.keys(we)){let s=we[n],o=da(e,s);o<t&&(t=o,i=n);}return i};p.keyword.rgb=function(e){return we[e]};p.rgb.xyz=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255;r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=r*.4124+t*.3576+i*.1805,s=r*.2126+t*.7152+i*.0722,o=r*.0193+t*.1192+i*.9505;return [n*100,s*100,o*100]};p.rgb.lab=function(e){let r=p.rgb.xyz(e),t=r[0],i=r[1],n=r[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),c=200*(i-n);return [s,o,c]};p.hsl.rgb=function(e){let r=e[0]/360,t=e[1]/100,i=e[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let c=2*i-n,h=[0,0,0];for(let d=0;d<3;d++)s=r+1/3*-(d-1),s<0&&s++,s>1&&s--,6*s<1?o=c+(n-c)*6*s:2*s<1?o=n:3*s<2?o=c+(n-c)*(2/3-s)*6:o=c,h[d]=o*255;return h};p.hsl.hsv=function(e){let r=e[0],t=e[1]/100,i=e[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,c=i===0?2*n/(s+n):2*t/(i+t);return [r,c*100,o*100]};p.hsv.rgb=function(e){let r=e[0]/60,t=e[1]/100,i=e[2]/100,n=Math.floor(r)%6,s=r-Math.floor(r),o=255*i*(1-t),c=255*i*(1-t*s),h=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return [i,h,o];case 1:return [c,i,o];case 2:return [o,i,h];case 3:return [o,c,i];case 4:return [h,o,i];case 5:return [i,o,c]}};p.hsv.hsl=function(e){let r=e[0],t=e[1]/100,i=e[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let c=(2-t)*n;return s=t*n,s/=c<=1?c:2-c,s=s||0,o/=2,[r,s*100,o*100]};p.hwb.rgb=function(e){let r=e[0]/360,t=e[1]/100,i=e[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*r),c=1-i;s=6*r-o,(o&1)!==0&&(s=1-s);let h=t+s*(c-t),d,w,A;switch(o){default:case 6:case 0:d=c,w=h,A=t;break;case 1:d=h,w=c,A=t;break;case 2:d=t,w=c,A=h;break;case 3:d=t,w=h,A=c;break;case 4:d=h,w=t,A=c;break;case 5:d=c,w=t,A=h;break}return [d*255,w*255,A*255]};p.cmyk.rgb=function(e){let r=e[0]/100,t=e[1]/100,i=e[2]/100,n=e[3]/100,s=1-Math.min(1,r*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),c=1-Math.min(1,i*(1-n)+n);return [s*255,o*255,c*255]};p.xyz.rgb=function(e){let r=e[0]/100,t=e[1]/100,i=e[2]/100,n,s,o;return n=r*3.2406+t*-1.5372+i*-0.4986,s=r*-0.9689+t*1.8758+i*.0415,o=r*.0557+t*-0.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};p.xyz.lab=function(e){let r=e[0],t=e[1],i=e[2];r/=95.047,t/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(r-t),o=200*(t-i);return [n,s,o]};p.lab.xyz=function(e){let r=e[0],t=e[1],i=e[2],n,s,o;s=(r+16)/116,n=t/500+s,o=s-i/200;let c=s**3,h=n**3,d=o**3;return s=c>.008856?c:(s-16/116)/7.787,n=h>.008856?h:(n-16/116)/7.787,o=d>.008856?d:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};p.lab.lch=function(e){let r=e[0],t=e[1],i=e[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return [r,o,n]};p.lch.lab=function(e){let r=e[0],t=e[1],n=e[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return [r,s,o]};p.rgb.ansi16=function(e,r=null){let[t,i,n]=e,s=r===null?p.rgb.hsv(e)[2]:r;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};p.hsv.ansi16=function(e){return p.rgb.ansi16(p.hsv.rgb(e),e[2])};p.rgb.ansi256=function(e){let r=e[0],t=e[1],i=e[2];return r===t&&t===i?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};p.ansi16.rgb=function(e){let r=e%10;if(r===0||r===7)return e>50&&(r+=3.5),r=r/10.5*255,[r,r,r];let t=(~~(e>50)+1)*.5,i=(r&1)*t*255,n=(r>>1&1)*t*255,s=(r>>2&1)*t*255;return [i,n,s]};p.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return [s,s,s]}e-=16;let r,t=Math.floor(e/36)/5*255,i=Math.floor((r=e%36)/6)/5*255,n=r%6/5*255;return [t,i,n]};p.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return "000000".substring(t.length)+t};p.hex.rgb=function(e){let r=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!r)return [0,0,0];let t=r[0];r[0].length===3&&(t=t.split("").map(c=>c+c).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return [n,s,o]};p.rgb.hcg=function(e){let r=e[0]/255,t=e[1]/255,i=e[2]/255,n=Math.max(Math.max(r,t),i),s=Math.min(Math.min(r,t),i),o=n-s,c,h;return o<1?c=s/(1-o):c=0,o<=0?h=0:n===r?h=(t-i)/o%6:n===t?h=2+(i-r)/o:h=4+(r-t)/o,h/=6,h%=1,[h*360,o*100,c*100]};p.hsl.hcg=function(e){let r=e[1]/100,t=e[2]/100,i=t<.5?2*r*t:2*r*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[e[0],i*100,n*100]};p.hsv.hcg=function(e){let r=e[1]/100,t=e[2]/100,i=r*t,n=0;return i<1&&(n=(t-i)/(1-i)),[e[0],i*100,n*100]};p.hcg.rgb=function(e){let r=e[0]/360,t=e[1]/100,i=e[2]/100;if(t===0)return [i*255,i*255,i*255];let n=[0,0,0],s=r%1*6,o=s%1,c=1-o,h=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=c,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=c,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=c;}return h=(1-t)*i,[(t*n[0]+h)*255,(t*n[1]+h)*255,(t*n[2]+h)*255]};p.hcg.hsv=function(e){let r=e[1]/100,t=e[2]/100,i=r+t*(1-r),n=0;return i>0&&(n=r/i),[e[0],n*100,i*100]};p.hcg.hsl=function(e){let r=e[1]/100,i=e[2]/100*(1-r)+.5*r,n=0;return i>0&&i<.5?n=r/(2*i):i>=.5&&i<1&&(n=r/(2*(1-i))),[e[0],n*100,i*100]};p.hcg.hwb=function(e){let r=e[1]/100,t=e[2]/100,i=r+t*(1-r);return [e[0],(i-r)*100,(1-i)*100]};p.hwb.hcg=function(e){let r=e[1]/100,i=1-e[2]/100,n=i-r,s=0;return n<1&&(s=(i-n)/(1-n)),[e[0],n*100,s*100]};p.apple.rgb=function(e){return [e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};p.rgb.apple=function(e){return [e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};p.gray.rgb=function(e){return [e[0]/100*255,e[0]/100*255,e[0]/100*255]};p.gray.hsl=function(e){return [0,0,e[0]]};p.gray.hsv=p.gray.hsl;p.gray.hwb=function(e){return [0,100,e[0]]};p.gray.cmyk=function(e){return [0,0,0,e[0]]};p.gray.lab=function(e){return [e[0],0,0]};p.gray.hex=function(e){let r=Math.round(e[0]/100*255)&255,i=((r<<16)+(r<<8)+r).toString(16).toUpperCase();return "000000".substring(i.length)+i};p.rgb.gray=function(e){return [(e[0]+e[1]+e[2])/3/255*100]};});var Wt=I((Rl,Gt)=>{u();var ze=mr();function ma(){let e={},r=Object.keys(ze);for(let t=r.length,i=0;i<t;i++)e[r[i]]={distance:-1,parent:null};return e}function ga(e){let r=ma(),t=[e];for(r[e].distance=0;t.length;){let i=t.pop(),n=Object.keys(ze[i]);for(let s=n.length,o=0;o<s;o++){let c=n[o],h=r[c];h.distance===-1&&(h.distance=r[i].distance+1,h.parent=i,t.unshift(c));}}return r}function pa(e,r){return function(t){return r(e(t))}}function ba(e,r){let t=[r[e].parent,e],i=ze[r[e].parent][e],n=r[e].parent;for(;r[n].parent;)t.unshift(r[n].parent),i=pa(ze[r[n].parent][n],i),n=r[n].parent;return i.conversion=t,i}Gt.exports=function(e){let r=ga(e),t={},i=Object.keys(r);for(let n=i.length,s=0;s<n;s++){let o=i[s];r[o].parent!==null&&(t[o]=ba(o,r));}return t};});var Vt=I((Sl,Ht)=>{u();var gr=mr(),wa=Wt(),fe={},ya=Object.keys(gr);function Ea(e){let r=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),e(t))};return "conversion"in e&&(r.conversion=e.conversion),r}function va(e){let r=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=e(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return "conversion"in e&&(r.conversion=e.conversion),r}ya.forEach(e=>{fe[e]={},Object.defineProperty(fe[e],"channels",{value:gr[e].channels}),Object.defineProperty(fe[e],"labels",{value:gr[e].labels});let r=wa(e);Object.keys(r).forEach(i=>{let n=r[i];fe[e][i]=va(n),fe[e][i].raw=Ea(n);});});Ht.exports=fe;});var Ge=I((Ll,Qt)=>{u();var he=Dt(),C=Vt(),Xt=["keyword","gray","hex"],pr={};for(let e of Object.keys(C))pr[[...C[e].labels].sort().join("")]=e;var Ue={};function j(e,r){if(!(this instanceof j))return new j(e,r);if(r&&r in Xt&&(r=null),r&&!(r in C))throw new Error("Unknown model: "+r);let t,i;if(e==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof j)this.model=e.model,this.color=[...e.color],this.valpha=e.valpha;else if(typeof e=="string"){let n=he.get(e);if(n===null)throw new Error("Unable to parse color from string: "+e);this.model=n.model,i=C[this.model].channels,this.color=n.value.slice(0,i),this.valpha=typeof n.value[i]=="number"?n.value[i]:1;}else if(e.length>0){this.model=r||"rgb",i=C[this.model].channels;let n=Array.prototype.slice.call(e,0,i);this.color=br(n,i),this.valpha=typeof e[i]=="number"?e[i]:1;}else if(typeof e=="number")this.model="rgb",this.color=[e>>16&255,e>>8&255,e&255],this.valpha=1;else {this.valpha=1;let n=Object.keys(e);"alpha"in e&&(n.splice(n.indexOf("alpha"),1),this.valpha=typeof e.alpha=="number"?e.alpha:0);let s=n.sort().join("");if(!(s in pr))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=pr[s];let{labels:o}=C[this.model],c=[];for(t=0;t<o.length;t++)c.push(e[o[t]]);this.color=br(c);}if(Ue[this.model])for(i=C[this.model].channels,t=0;t<i;t++){let n=Ue[this.model][t];n&&(this.color[t]=n(this.color[t]));}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this);}j.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(e){let r=this.model in he.to?this:this.rgb();r=r.round(typeof e=="number"?e:1);let t=r.valpha===1?r.color:[...r.color,this.valpha];return he.to[r.model](t)},percentString(e){let r=this.rgb().round(typeof e=="number"?e:1),t=r.valpha===1?r.color:[...r.color,this.valpha];return he.to.rgb.percent(t)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let e={},{channels:r}=C[this.model],{labels:t}=C[this.model];for(let i=0;i<r;i++)e[t[i]]=this.color[i];return this.valpha!==1&&(e.alpha=this.valpha),e},unitArray(){let e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,this.valpha!==1&&e.push(this.valpha),e},unitObject(){let e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,this.valpha!==1&&(e.alpha=this.valpha),e},round(e){return e=Math.max(e||0,0),new j([...this.color.map(Ia(e)),this.valpha],this.model)},alpha(e){return e!==void 0?new j([...this.color,Math.max(0,Math.min(1,e))],this.model):this.valpha},red:L("rgb",0,F(255)),green:L("rgb",1,F(255)),blue:L("rgb",2,F(255)),hue:L(["hsl","hsv","hsl","hwb","hcg"],0,e=>(e%360+360)%360),saturationl:L("hsl",1,F(100)),lightness:L("hsl",2,F(100)),saturationv:L("hsv",1,F(100)),value:L("hsv",2,F(100)),chroma:L("hcg",1,F(100)),gray:L("hcg",2,F(100)),white:L("hwb",1,F(100)),wblack:L("hwb",2,F(100)),cyan:L("cmyk",0,F(100)),magenta:L("cmyk",1,F(100)),yellow:L("cmyk",2,F(100)),black:L("cmyk",3,F(100)),x:L("xyz",0,F(95.047)),y:L("xyz",1,F(100)),z:L("xyz",2,F(108.833)),l:L("lab",0,F(100)),a:L("lab",1),b:L("lab",2),keyword(e){return e!==void 0?new j(e):C[this.model].keyword(this.color)},hex(e){return e!==void 0?new j(e):he.to.hex(this.rgb().round().color)},hexa(e){if(e!==void 0)return new j(e);let r=this.rgb().round().color,t=Math.round(this.valpha*255).toString(16).toUpperCase();return t.length===1&&(t="0"+t),he.to.hex(r)+t},rgbNumber(){let e=this.rgb().color;return (e[0]&255)<<16|(e[1]&255)<<8|e[2]&255},luminosity(){let e=this.rgb().color,r=[];for(let[t,i]of e.entries()){let n=i/255;r[t]=n<=.04045?n/12.92:((n+.055)/1.055)**2.4;}return .2126*r[0]+.7152*r[1]+.0722*r[2]},contrast(e){let r=this.luminosity(),t=e.luminosity();return r>t?(r+.05)/(t+.05):(t+.05)/(r+.05)},level(e){let r=this.contrast(e);return r>=7?"AAA":r>=4.5?"AA":""},isDark(){let e=this.rgb().color;return (e[0]*2126+e[1]*7152+e[2]*722)/1e4<128},isLight(){return !this.isDark()},negate(){let e=this.rgb();for(let r=0;r<3;r++)e.color[r]=255-e.color[r];return e},lighten(e){let r=this.hsl();return r.color[2]+=r.color[2]*e,r},darken(e){let r=this.hsl();return r.color[2]-=r.color[2]*e,r},saturate(e){let r=this.hsl();return r.color[1]+=r.color[1]*e,r},desaturate(e){let r=this.hsl();return r.color[1]-=r.color[1]*e,r},whiten(e){let r=this.hwb();return r.color[1]+=r.color[1]*e,r},blacken(e){let r=this.hwb();return r.color[2]+=r.color[2]*e,r},grayscale(){let e=this.rgb().color,r=e[0]*.3+e[1]*.59+e[2]*.11;return j.rgb(r,r,r)},fade(e){return this.alpha(this.valpha-this.valpha*e)},opaquer(e){return this.alpha(this.valpha+this.valpha*e)},rotate(e){let r=this.hsl(),t=r.color[0];return t=(t+e)%360,t=t<0?360+t:t,r.color[0]=t,r},mix(e,r){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);let t=e.rgb(),i=this.rgb(),n=r===void 0?.5:r,s=2*n-1,o=t.alpha()-i.alpha(),c=((s*o===-1?s:(s+o)/(1+s*o))+1)/2,h=1-c;return j.rgb(c*t.red()+h*i.red(),c*t.green()+h*i.green(),c*t.blue()+h*i.blue(),t.alpha()*n+i.alpha()*(1-n))}};for(let e of Object.keys(C)){if(Xt.includes(e))continue;let{channels:r}=C[e];j.prototype[e]=function(...t){return this.model===e?new j(this):t.length>0?new j(t,e):new j([...Pa(C[this.model][e].raw(this.color)),this.valpha],e)},j[e]=function(...t){let i=t[0];return typeof i=="number"&&(i=br(t,r)),new j(i,e)};}function xa(e,r){return Number(e.toFixed(r))}function Ia(e){return function(r){return xa(r,e)}}function L(e,r,t){e=Array.isArray(e)?e:[e];for(let i of e)(Ue[i]||(Ue[i]=[]))[r]=t;return e=e[0],function(i){let n;return i!==void 0?(t&&(i=t(i)),n=this[e](),n.color[r]=i,n):(n=this[e]().color[r],t&&(n=t(n)),n)}}function F(e){return function(r){return Math.max(0,Math.min(e,r))}}function Pa(e){return Array.isArray(e)?e:[e]}function br(e,r){for(let t=0;t<r;t++)typeof e[t]!="number"&&(e[t]=0);return e}Qt.exports=j;});var Yt=I((Fl,Kt)=>{u();var Aa=Ge(),f=W(),ie=ge(),Ra={left:"low",center:"centre",centre:"centre",right:"high"};function Jt(e){let{raw:r,density:t,limitInputPixels:i,ignoreIcc:n,unlimited:s,sequentialRead:o,failOn:c,failOnError:h,animated:d,page:w,pages:A,subifd:T}=e;return [r,t,i,n,s,o,c,h,d,w,A,T].some(f.defined)?{raw:r,density:t,limitInputPixels:i,ignoreIcc:n,unlimited:s,sequentialRead:o,failOn:c,failOnError:h,animated:d,page:w,pages:A,subifd:T}:void 0}function ka(e,r,t){let i={failOn:"warning",limitInputPixels:Math.pow(16383,2),ignoreIcc:false,unlimited:false,sequentialRead:true};if(f.string(e))i.file=e;else if(f.buffer(e)){if(e.length===0)throw Error("Input Buffer is empty");i.buffer=e;}else if(f.arrayBuffer(e)){if(e.byteLength===0)throw Error("Input bit Array is empty");i.buffer=Buffer.from(e,0,e.byteLength);}else if(f.typedArray(e)){if(e.length===0)throw Error("Input Bit Array is empty");i.buffer=Buffer.from(e.buffer,e.byteOffset,e.byteLength);}else if(f.plainObject(e)&&!f.defined(r))r=e,Jt(r)&&(i.buffer=[]);else if(!f.defined(e)&&!f.defined(r)&&f.object(t)&&t.allowStream)i.buffer=[];else throw new Error(`Unsupported input '${e}' of type ${typeof e}${f.defined(r)?` when also providing options of type ${typeof r}`:""}`);if(f.object(r)){if(f.defined(r.failOnError))if(f.bool(r.failOnError))i.failOn=r.failOnError?"warning":"none";else throw f.invalidParameterError("failOnError","boolean",r.failOnError);if(f.defined(r.failOn))if(f.string(r.failOn)&&f.inArray(r.failOn,["none","truncated","error","warning"]))i.failOn=r.failOn;else throw f.invalidParameterError("failOn","one of: none, truncated, error, warning",r.failOn);if(f.defined(r.density))if(f.inRange(r.density,1,1e5))i.density=r.density;else throw f.invalidParameterError("density","number between 1 and 100000",r.density);if(f.defined(r.ignoreIcc))if(f.bool(r.ignoreIcc))i.ignoreIcc=r.ignoreIcc;else throw f.invalidParameterError("ignoreIcc","boolean",r.ignoreIcc);if(f.defined(r.limitInputPixels))if(f.bool(r.limitInputPixels))i.limitInputPixels=r.limitInputPixels?Math.pow(16383,2):0;else if(f.integer(r.limitInputPixels)&&f.inRange(r.limitInputPixels,0,Number.MAX_SAFE_INTEGER))i.limitInputPixels=r.limitInputPixels;else throw f.invalidParameterError("limitInputPixels","positive integer",r.limitInputPixels);if(f.defined(r.unlimited))if(f.bool(r.unlimited))i.unlimited=r.unlimited;else throw f.invalidParameterError("unlimited","boolean",r.unlimited);if(f.defined(r.sequentialRead))if(f.bool(r.sequentialRead))i.sequentialRead=r.sequentialRead;else throw f.invalidParameterError("sequentialRead","boolean",r.sequentialRead);if(f.defined(r.raw))if(f.object(r.raw)&&f.integer(r.raw.width)&&r.raw.width>0&&f.integer(r.raw.height)&&r.raw.height>0&&f.integer(r.raw.channels)&&f.inRange(r.raw.channels,1,4))switch(i.rawWidth=r.raw.width,i.rawHeight=r.raw.height,i.rawChannels=r.raw.channels,i.rawPremultiplied=!!r.raw.premultiplied,e.constructor){case Uint8Array:case Uint8ClampedArray:i.rawDepth="uchar";break;case Int8Array:i.rawDepth="char";break;case Uint16Array:i.rawDepth="ushort";break;case Int16Array:i.rawDepth="short";break;case Uint32Array:i.rawDepth="uint";break;case Int32Array:i.rawDepth="int";break;case Float32Array:i.rawDepth="float";break;case Float64Array:i.rawDepth="double";break;default:i.rawDepth="uchar";break}else throw new Error("Expected width, height and channels for raw pixel input");if(f.defined(r.animated))if(f.bool(r.animated))i.pages=r.animated?-1:1;else throw f.invalidParameterError("animated","boolean",r.animated);if(f.defined(r.pages))if(f.integer(r.pages)&&f.inRange(r.pages,-1,1e5))i.pages=r.pages;else throw f.invalidParameterError("pages","integer between -1 and 100000",r.pages);if(f.defined(r.page))if(f.integer(r.page)&&f.inRange(r.page,0,1e5))i.page=r.page;else throw f.invalidParameterError("page","integer between 0 and 100000",r.page);if(f.defined(r.level))if(f.integer(r.level)&&f.inRange(r.level,0,256))i.level=r.level;else throw f.invalidParameterError("level","integer between 0 and 256",r.level);if(f.defined(r.subifd))if(f.integer(r.subifd)&&f.inRange(r.subifd,-1,1e5))i.subifd=r.subifd;else throw f.invalidParameterError("subifd","integer between -1 and 100000",r.subifd);if(f.defined(r.create))if(f.object(r.create)&&f.integer(r.create.width)&&r.create.width>0&&f.integer(r.create.height)&&r.create.height>0&&f.integer(r.create.channels)){if(i.createWidth=r.create.width,i.createHeight=r.create.height,i.createChannels=r.create.channels,f.defined(r.create.noise)){if(!f.object(r.create.noise))throw new Error("Expected noise to be an object");if(!f.inArray(r.create.noise.type,["gaussian"]))throw new Error("Only gaussian noise is supported at the moment");if(!f.inRange(r.create.channels,1,4))throw f.invalidParameterError("create.channels","number between 1 and 4",r.create.channels);if(i.createNoiseType=r.create.noise.type,f.number(r.create.noise.mean)&&f.inRange(r.create.noise.mean,0,1e4))i.createNoiseMean=r.create.noise.mean;else throw f.invalidParameterError("create.noise.mean","number between 0 and 10000",r.create.noise.mean);if(f.number(r.create.noise.sigma)&&f.inRange(r.create.noise.sigma,0,1e4))i.createNoiseSigma=r.create.noise.sigma;else throw f.invalidParameterError("create.noise.sigma","number between 0 and 10000",r.create.noise.sigma)}else if(f.defined(r.create.background)){if(!f.inRange(r.create.channels,3,4))throw f.invalidParameterError("create.channels","number between 3 and 4",r.create.channels);let n=Aa(r.create.background);i.createBackground=[n.red(),n.green(),n.blue(),Math.round(n.alpha()*255)];}else throw new Error("Expected valid noise or background to create a new input image");delete i.buffer;}else throw new Error("Expected valid width, height and channels to create a new input image");if(f.defined(r.text))if(f.object(r.text)&&f.string(r.text.text)){if(i.textValue=r.text.text,f.defined(r.text.height)&&f.defined(r.text.dpi))throw new Error("Expected only one of dpi or height");if(f.defined(r.text.font))if(f.string(r.text.font))i.textFont=r.text.font;else throw f.invalidParameterError("text.font","string",r.text.font);if(f.defined(r.text.fontfile))if(f.string(r.text.fontfile))i.textFontfile=r.text.fontfile;else throw f.invalidParameterError("text.fontfile","string",r.text.fontfile);if(f.defined(r.text.width))if(f.number(r.text.width))i.textWidth=r.text.width;else throw f.invalidParameterError("text.textWidth","number",r.text.width);if(f.defined(r.text.height))if(f.number(r.text.height))i.textHeight=r.text.height;else throw f.invalidParameterError("text.height","number",r.text.height);if(f.defined(r.text.align))if(f.string(r.text.align)&&f.string(this.constructor.align[r.text.align]))i.textAlign=this.constructor.align[r.text.align];else throw f.invalidParameterError("text.align","valid alignment",r.text.align);if(f.defined(r.text.justify))if(f.bool(r.text.justify))i.textJustify=r.text.justify;else throw f.invalidParameterError("text.justify","boolean",r.text.justify);if(f.defined(r.text.dpi))if(f.number(r.text.dpi)&&f.inRange(r.text.dpi,1,1e5))i.textDpi=r.text.dpi;else throw f.invalidParameterError("text.dpi","number between 1 and 100000",r.text.dpi);if(f.defined(r.text.rgba))if(f.bool(r.text.rgba))i.textRgba=r.text.rgba;else throw f.invalidParameterError("text.rgba","bool",r.text.rgba);if(f.defined(r.text.spacing))if(f.number(r.text.spacing))i.textSpacing=r.text.spacing;else throw f.invalidParameterError("text.spacing","number",r.text.spacing);if(f.defined(r.text.wrap))if(f.string(r.text.wrap)&&f.inArray(r.text.wrap,["word","char","wordChar","none"]))i.textWrap=r.text.wrap;else throw f.invalidParameterError("text.wrap","one of: word, char, wordChar, none",r.text.wrap);delete i.buffer;}else throw new Error("Expected a valid string to create an image with text.")}else if(f.defined(r))throw new Error("Invalid input options "+r);return i}function Sa(e,r,t){Array.isArray(this.options.input.buffer)?f.buffer(e)?(this.options.input.buffer.length===0&&this.on("finish",()=>{this.streamInFinished=true;}),this.options.input.buffer.push(e),t()):t(new Error("Non-Buffer data on Writable Stream")):t(new Error("Unexpected data on Writable Stream"));}function Ma(){this._isStreamInput()&&(this.options.input.buffer=Buffer.concat(this.options.input.buffer));}function La(){return Array.isArray(this.options.input.buffer)}function Ba(e){let r=Error();return f.fn(e)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),ie.metadata(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);});}):ie.metadata(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);}),this):this._isStreamInput()?new Promise((t,i)=>{let n=()=>{this._flattenBufferIn(),ie.metadata(this.options,(s,o)=>{s?i(f.nativeError(s,r)):t(o);});};this.writableFinished?n():this.once("finish",n);}):new Promise((t,i)=>{ie.metadata(this.options,(n,s)=>{n?i(f.nativeError(n,r)):t(s);});})}function Fa(e){let r=Error();return f.fn(e)?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),ie.stats(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);});}):ie.stats(this.options,(t,i)=>{t?e(f.nativeError(t,r)):e(null,i);}),this):this._isStreamInput()?new Promise((t,i)=>{this.on("finish",function(){this._flattenBufferIn(),ie.stats(this.options,(n,s)=>{n?i(f.nativeError(n,r)):t(s);});});}):new Promise((t,i)=>{ie.stats(this.options,(n,s)=>{n?i(f.nativeError(n,r)):t(s);});})}Kt.exports=function(e){Object.assign(e.prototype,{_inputOptionsFromObject:Jt,_createInputDescriptor:ka,_write:Sa,_flattenBufferIn:Ma,_isStreamInput:La,metadata:Ba,stats:Fa}),e.align=Ra;};});var ni=I((Tl,ii)=>{u();var b=W(),ei={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},ri={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Zt={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},ti={entropy:16,attention:17},wr={nearest:"nearest",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3"},ja={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},Ta={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function yr(e){return e.angle%360!==0||e.useExifOrientation===true||e.rotationAngle!==0}function We(e){return e.width!==-1||e.height!==-1}function Na(e,r,t){if(We(this.options)&&this.options.debuglog("ignoring previous resize options"),this.options.widthPost!==-1&&this.options.debuglog("operation order will be: extract, resize, extract"),b.defined(e))if(b.object(e)&&!b.defined(t))t=e;else if(b.integer(e)&&e>0)this.options.width=e;else throw b.invalidParameterError("width","positive integer",e);else this.options.width=-1;if(b.defined(r))if(b.integer(r)&&r>0)this.options.height=r;else throw b.invalidParameterError("height","positive integer",r);else this.options.height=-1;if(b.object(t)){if(b.defined(t.width))if(b.integer(t.width)&&t.width>0)this.options.width=t.width;else throw b.invalidParameterError("width","positive integer",t.width);if(b.defined(t.height))if(b.integer(t.height)&&t.height>0)this.options.height=t.height;else throw b.invalidParameterError("height","positive integer",t.height);if(b.defined(t.fit)){let i=Ta[t.fit];if(b.string(i))this.options.canvas=i;else throw b.invalidParameterError("fit","valid fit",t.fit)}if(b.defined(t.position)){let i=b.integer(t.position)?t.position:ti[t.position]||ri[t.position]||ei[t.position];if(b.integer(i)&&(b.inRange(i,0,8)||b.inRange(i,16,17)))this.options.position=i;else throw b.invalidParameterError("position","valid position/gravity/strategy",t.position)}if(this._setBackgroundColourOption("resizeBackground",t.background),b.defined(t.kernel))if(b.string(wr[t.kernel]))this.options.kernel=wr[t.kernel];else throw b.invalidParameterError("kernel","valid kernel name",t.kernel);b.defined(t.withoutEnlargement)&&this._setBooleanOption("withoutEnlargement",t.withoutEnlargement),b.defined(t.withoutReduction)&&this._setBooleanOption("withoutReduction",t.withoutReduction),b.defined(t.fastShrinkOnLoad)&&this._setBooleanOption("fastShrinkOnLoad",t.fastShrinkOnLoad);}return yr(this.options)&&We(this.options)&&(this.options.rotateBeforePreExtract=true),this}function $a(e){if(b.integer(e)&&e>0)this.options.extendTop=e,this.options.extendBottom=e,this.options.extendLeft=e,this.options.extendRight=e;else if(b.object(e)){if(b.defined(e.top))if(b.integer(e.top)&&e.top>=0)this.options.extendTop=e.top;else throw b.invalidParameterError("top","positive integer",e.top);if(b.defined(e.bottom))if(b.integer(e.bottom)&&e.bottom>=0)this.options.extendBottom=e.bottom;else throw b.invalidParameterError("bottom","positive integer",e.bottom);if(b.defined(e.left))if(b.integer(e.left)&&e.left>=0)this.options.extendLeft=e.left;else throw b.invalidParameterError("left","positive integer",e.left);if(b.defined(e.right))if(b.integer(e.right)&&e.right>=0)this.options.extendRight=e.right;else throw b.invalidParameterError("right","positive integer",e.right);if(this._setBackgroundColourOption("extendBackground",e.background),b.defined(e.extendWith))if(b.string(Zt[e.extendWith]))this.options.extendWith=Zt[e.extendWith];else throw b.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",e.extendWith)}else throw b.invalidParameterError("extend","integer or object",e);return this}function Ca(e){let r=We(this.options)||this.options.widthPre!==-1?"Post":"Pre";return this.options[`width${r}`]!==-1&&this.options.debuglog("ignoring previous extract options"),["left","top","width","height"].forEach(function(t){let i=e[t];if(b.integer(i)&&i>=0)this.options[t+(t==="left"||t==="top"?"Offset":"")+r]=i;else throw b.invalidParameterError(t,"integer",i)},this),yr(this.options)&&!We(this.options)&&(this.options.widthPre===-1||this.options.widthPost===-1)&&(this.options.rotateBeforePreExtract=true),this}function _a(e){if(this.options.trimThreshold=10,b.defined(e))if(b.object(e)){if(b.defined(e.background)&&this._setBackgroundColourOption("trimBackground",e.background),b.defined(e.threshold))if(b.number(e.threshold)&&e.threshold>=0)this.options.trimThreshold=e.threshold;else throw b.invalidParameterError("threshold","positive number",e.threshold);b.defined(e.lineArt)&&this._setBooleanOption("trimLineArt",e.lineArt);}else throw b.invalidParameterError("trim","object",e);return yr(this.options)&&(this.options.rotateBeforePreExtract=true),this}ii.exports=function(e){Object.assign(e.prototype,{resize:Na,extend:$a,extract:Ca,trim:_a}),e.gravity=ei,e.strategy=ti,e.kernel=wr,e.fit=ja,e.position=ri;};});var si=I(($l,ai)=>{u();var R=W(),Er={clear:"clear",source:"source",over:"over",in:"in",out:"out",atop:"atop",dest:"dest","dest-over":"dest-over","dest-in":"dest-in","dest-out":"dest-out","dest-atop":"dest-atop",xor:"xor",add:"add",saturate:"saturate",multiply:"multiply",screen:"screen",overlay:"overlay",darken:"darken",lighten:"lighten","colour-dodge":"colour-dodge","color-dodge":"colour-dodge","colour-burn":"colour-burn","color-burn":"colour-burn","hard-light":"hard-light","soft-light":"soft-light",difference:"difference",exclusion:"exclusion"};function Oa(e){if(!Array.isArray(e))throw R.invalidParameterError("images to composite","array",e);return this.options.composite=e.map(r=>{if(!R.object(r))throw R.invalidParameterError("image to composite","object",r);let t=this._inputOptionsFromObject(r),i={input:this._createInputDescriptor(r.input,t,{allowStream:false}),blend:"over",tile:false,left:0,top:0,hasOffset:false,gravity:0,premultiplied:false};if(R.defined(r.blend))if(R.string(Er[r.blend]))i.blend=Er[r.blend];else throw R.invalidParameterError("blend","valid blend name",r.blend);if(R.defined(r.tile))if(R.bool(r.tile))i.tile=r.tile;else throw R.invalidParameterError("tile","boolean",r.tile);if(R.defined(r.left))if(R.integer(r.left))i.left=r.left;else throw R.invalidParameterError("left","integer",r.left);if(R.defined(r.top))if(R.integer(r.top))i.top=r.top;else throw R.invalidParameterError("top","integer",r.top);if(R.defined(r.top)!==R.defined(r.left))throw new Error("Expected both left and top to be set");if(i.hasOffset=R.integer(r.top)&&R.integer(r.left),R.defined(r.gravity))if(R.integer(r.gravity)&&R.inRange(r.gravity,0,8))i.gravity=r.gravity;else if(R.string(r.gravity)&&R.integer(this.constructor.gravity[r.gravity]))i.gravity=this.constructor.gravity[r.gravity];else throw R.invalidParameterError("gravity","valid gravity",r.gravity);if(R.defined(r.premultiplied))if(R.bool(r.premultiplied))i.premultiplied=r.premultiplied;else throw R.invalidParameterError("premultiplied","boolean",r.premultiplied);return i}),this}ai.exports=function(e){e.prototype.composite=Oa,e.blend=Er;};});var li=I((_l,oi)=>{u();var qa=Ge(),l=W();function Da(e,r){if((this.options.useExifOrientation||this.options.angle||this.options.rotationAngle)&&this.options.debuglog("ignoring previous rotate options"),!l.defined(e))this.options.useExifOrientation=true;else if(l.integer(e)&&!(e%90))this.options.angle=e;else if(l.number(e)){if(this.options.rotationAngle=e,l.object(r)&&r.background){let t=qa(r.background);this.options.rotationBackground=[t.red(),t.green(),t.blue(),Math.round(t.alpha()*255)];}}else throw l.invalidParameterError("angle","numeric",e);return this}function za(e){return this.options.flip=l.bool(e)?e:true,this}function Ua(e){return this.options.flop=l.bool(e)?e:true,this}function Ga(e,r){let t=[].concat(...e);if(t.length===4&&t.every(l.number))this.options.affineMatrix=t;else throw l.invalidParameterError("matrix","1x4 or 2x2 array",e);if(l.defined(r))if(l.object(r)){if(this._setBackgroundColourOption("affineBackground",r.background),l.defined(r.idx))if(l.number(r.idx))this.options.affineIdx=r.idx;else throw l.invalidParameterError("options.idx","number",r.idx);if(l.defined(r.idy))if(l.number(r.idy))this.options.affineIdy=r.idy;else throw l.invalidParameterError("options.idy","number",r.idy);if(l.defined(r.odx))if(l.number(r.odx))this.options.affineOdx=r.odx;else throw l.invalidParameterError("options.odx","number",r.odx);if(l.defined(r.ody))if(l.number(r.ody))this.options.affineOdy=r.ody;else throw l.invalidParameterError("options.ody","number",r.ody);if(l.defined(r.interpolator))if(l.inArray(r.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=r.interpolator;else throw l.invalidParameterError("options.interpolator","valid interpolator name",r.interpolator)}else throw l.invalidParameterError("options","object",r);return this}function Wa(e,r,t){if(!l.defined(e))this.options.sharpenSigma=-1;else if(l.bool(e))this.options.sharpenSigma=e?-1:0;else if(l.number(e)&&l.inRange(e,.01,1e4)){if(this.options.sharpenSigma=e,l.defined(r))if(l.number(r)&&l.inRange(r,0,1e4))this.options.sharpenM1=r;else throw l.invalidParameterError("flat","number between 0 and 10000",r);if(l.defined(t))if(l.number(t)&&l.inRange(t,0,1e4))this.options.sharpenM2=t;else throw l.invalidParameterError("jagged","number between 0 and 10000",t)}else if(l.plainObject(e)){if(l.number(e.sigma)&&l.inRange(e.sigma,1e-6,10))this.options.sharpenSigma=e.sigma;else throw l.invalidParameterError("options.sigma","number between 0.000001 and 10",e.sigma);if(l.defined(e.m1))if(l.number(e.m1)&&l.inRange(e.m1,0,1e6))this.options.sharpenM1=e.m1;else throw l.invalidParameterError("options.m1","number between 0 and 1000000",e.m1);if(l.defined(e.m2))if(l.number(e.m2)&&l.inRange(e.m2,0,1e6))this.options.sharpenM2=e.m2;else throw l.invalidParameterError("options.m2","number between 0 and 1000000",e.m2);if(l.defined(e.x1))if(l.number(e.x1)&&l.inRange(e.x1,0,1e6))this.options.sharpenX1=e.x1;else throw l.invalidParameterError("options.x1","number between 0 and 1000000",e.x1);if(l.defined(e.y2))if(l.number(e.y2)&&l.inRange(e.y2,0,1e6))this.options.sharpenY2=e.y2;else throw l.invalidParameterError("options.y2","number between 0 and 1000000",e.y2);if(l.defined(e.y3))if(l.number(e.y3)&&l.inRange(e.y3,0,1e6))this.options.sharpenY3=e.y3;else throw l.invalidParameterError("options.y3","number between 0 and 1000000",e.y3)}else throw l.invalidParameterError("sigma","number between 0.01 and 10000",e);return this}function Ha(e){if(!l.defined(e))this.options.medianSize=3;else if(l.integer(e)&&l.inRange(e,1,1e3))this.options.medianSize=e;else throw l.invalidParameterError("size","integer between 1 and 1000",e);return this}function Va(e){if(!l.defined(e))this.options.blurSigma=-1;else if(l.bool(e))this.options.blurSigma=e?-1:0;else if(l.number(e)&&l.inRange(e,.3,1e3))this.options.blurSigma=e;else throw l.invalidParameterError("sigma","number between 0.3 and 1000",e);return this}function Xa(e){return this.options.flatten=l.bool(e)?e:true,l.object(e)&&this._setBackgroundColourOption("flattenBackground",e.background),this}function Qa(){return this.options.unflatten=true,this}function Ja(e,r){if(!l.defined(e))this.options.gamma=2.2;else if(l.number(e)&&l.inRange(e,1,3))this.options.gamma=e;else throw l.invalidParameterError("gamma","number between 1.0 and 3.0",e);if(!l.defined(r))this.options.gammaOut=this.options.gamma;else if(l.number(r)&&l.inRange(r,1,3))this.options.gammaOut=r;else throw l.invalidParameterError("gammaOut","number between 1.0 and 3.0",r);return this}function Ka(e){if(this.options.negate=l.bool(e)?e:true,l.plainObject(e)&&"alpha"in e)if(l.bool(e.alpha))this.options.negateAlpha=e.alpha;else throw l.invalidParameterError("alpha","should be boolean value",e.alpha);return this}function Ya(e){if(l.plainObject(e)){if(l.defined(e.lower))if(l.number(e.lower)&&l.inRange(e.lower,0,99))this.options.normaliseLower=e.lower;else throw l.invalidParameterError("lower","number between 0 and 99",e.lower);if(l.defined(e.upper))if(l.number(e.upper)&&l.inRange(e.upper,1,100))this.options.normaliseUpper=e.upper;else throw l.invalidParameterError("upper","number between 1 and 100",e.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw l.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=true,this}function Za(e){return this.normalise(e)}function es(e){if(l.plainObject(e)){if(l.integer(e.width)&&e.width>0)this.options.claheWidth=e.width;else throw l.invalidParameterError("width","integer greater than zero",e.width);if(l.integer(e.height)&&e.height>0)this.options.claheHeight=e.height;else throw l.invalidParameterError("height","integer greater than zero",e.height);if(l.defined(e.maxSlope))if(l.integer(e.maxSlope)&&l.inRange(e.maxSlope,0,100))this.options.claheMaxSlope=e.maxSlope;else throw l.invalidParameterError("maxSlope","integer between 0 and 100",e.maxSlope)}else throw l.invalidParameterError("options","plain object",e);return this}function rs(e){if(!l.object(e)||!Array.isArray(e.kernel)||!l.integer(e.width)||!l.integer(e.height)||!l.inRange(e.width,3,1001)||!l.inRange(e.height,3,1001)||e.height*e.width!==e.kernel.length)throw new Error("Invalid convolution kernel");return l.integer(e.scale)||(e.scale=e.kernel.reduce(function(r,t){return r+t},0)),e.scale<1&&(e.scale=1),l.integer(e.offset)||(e.offset=0),this.options.convKernel=e,this}function ts(e,r){if(!l.defined(e))this.options.threshold=128;else if(l.bool(e))this.options.threshold=e?128:0;else if(l.integer(e)&&l.inRange(e,0,255))this.options.threshold=e;else throw l.invalidParameterError("threshold","integer between 0 and 255",e);return !l.object(r)||r.greyscale===true||r.grayscale===true?this.options.thresholdGrayscale=true:this.options.thresholdGrayscale=false,this}function is(e,r,t){if(this.options.boolean=this._createInputDescriptor(e,t),l.string(r)&&l.inArray(r,["and","or","eor"]))this.options.booleanOp=r;else throw l.invalidParameterError("operator","one of: and, or, eor",r);return this}function ns(e,r){if(!l.defined(e)&&l.number(r)?e=1:l.number(e)&&!l.defined(r)&&(r=0),!l.defined(e))this.options.linearA=[];else if(l.number(e))this.options.linearA=[e];else if(Array.isArray(e)&&e.length&&e.every(l.number))this.options.linearA=e;else throw l.invalidParameterError("a","number or array of numbers",e);if(!l.defined(r))this.options.linearB=[];else if(l.number(r))this.options.linearB=[r];else if(Array.isArray(r)&&r.length&&r.every(l.number))this.options.linearB=r;else throw l.invalidParameterError("b","number or array of numbers",r);if(this.options.linearA.length!==this.options.linearB.length)throw new Error("Expected a and b to be arrays of the same length");return this}function as(e){if(!Array.isArray(e)||e.length!==3||e[0].length!==3||e[1].length!==3||e[2].length!==3)throw new Error("Invalid recombination matrix");return this.options.recombMatrix=[e[0][0],e[0][1],e[0][2],e[1][0],e[1][1],e[1][2],e[2][0],e[2][1],e[2][2]].map(Number),this}function ss(e){if(!l.plainObject(e))throw l.invalidParameterError("options","plain object",e);if("brightness"in e)if(l.number(e.brightness)&&e.brightness>=0)this.options.brightness=e.brightness;else throw l.invalidParameterError("brightness","number above zero",e.brightness);if("saturation"in e)if(l.number(e.saturation)&&e.saturation>=0)this.options.saturation=e.saturation;else throw l.invalidParameterError("saturation","number above zero",e.saturation);if("hue"in e)if(l.integer(e.hue))this.options.hue=e.hue%360;else throw l.invalidParameterError("hue","number",e.hue);if("lightness"in e)if(l.number(e.lightness))this.options.lightness=e.lightness;else throw l.invalidParameterError("lightness","number",e.lightness);return this}oi.exports=function(e){Object.assign(e.prototype,{rotate:Da,flip:za,flop:Ua,affine:Ga,sharpen:Wa,median:Ha,blur:Va,flatten:Xa,unflatten:Qa,gamma:Ja,negate:Ka,normalise:Ya,normalize:Za,clahe:es,convolve:rs,threshold:ts,boolean:is,linear:ns,recomb:as,modulate:ss});};});var hi=I((ql,fi)=>{u();var os=Ge(),Y=W(),ci={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function ls(e){return this._setBackgroundColourOption("tint",e),this}function cs(e){return this.options.greyscale=Y.bool(e)?e:true,this}function fs(e){return this.greyscale(e)}function hs(e){if(!Y.string(e))throw Y.invalidParameterError("colourspace","string",e);return this.options.colourspaceInput=e,this}function us(e){return this.pipelineColourspace(e)}function ds(e){if(!Y.string(e))throw Y.invalidParameterError("colourspace","string",e);return this.options.colourspace=e,this}function ms(e){return this.toColourspace(e)}function gs(e,r){if(Y.defined(r))if(Y.object(r)||Y.string(r)){let t=os(r);this.options[e]=[t.red(),t.green(),t.blue(),Math.round(t.alpha()*255)];}else throw Y.invalidParameterError("background","object or string",r)}fi.exports=function(e){Object.assign(e.prototype,{tint:ls,greyscale:cs,grayscale:fs,pipelineColourspace:hs,pipelineColorspace:us,toColourspace:ds,toColorspace:ms,_setBackgroundColourOption:gs}),e.colourspace=ci,e.colorspace=ci;};});var di=I((zl,ui)=>{u();var J=W(),ps={and:"and",or:"or",eor:"eor"};function bs(){return this.options.removeAlpha=true,this}function ws(e){if(J.defined(e))if(J.number(e)&&J.inRange(e,0,1))this.options.ensureAlpha=e;else throw J.invalidParameterError("alpha","number between 0 and 1",e);else this.options.ensureAlpha=1;return this}function ys(e){let r={red:0,green:1,blue:2,alpha:3};if(Object.keys(r).includes(e)&&(e=r[e]),J.integer(e)&&J.inRange(e,0,4))this.options.extractChannel=e;else throw J.invalidParameterError("channel","integer or one of: red, green, blue, alpha",e);return this}function Es(e,r){return Array.isArray(e)?e.forEach(function(t){this.options.joinChannelIn.push(this._createInputDescriptor(t,r));},this):this.options.joinChannelIn.push(this._createInputDescriptor(e,r)),this}function vs(e){if(J.string(e)&&J.inArray(e,["and","or","eor"]))this.options.bandBoolOp=e;else throw J.invalidParameterError("boolOp","one of: and, or, eor",e);return this}ui.exports=function(e){Object.assign(e.prototype,{removeAlpha:bs,ensureAlpha:ws,extractChannel:ys,joinChannel:Es,bandbool:vs}),e.bool=ps;};});var yi=I((Gl,wi)=>{u();var vr=B("path"),a=W(),ue=ge(),mi=new Map([["heic","heif"],["heif","heif"],["avif","avif"],["jpeg","jpeg"],["jpg","jpeg"],["jpe","jpeg"],["tile","tile"],["dz","tile"],["png","png"],["raw","raw"],["tiff","tiff"],["tif","tiff"],["webp","webp"],["gif","gif"],["jp2","jp2"],["jpx","jp2"],["j2k","jp2"],["j2c","jp2"],["jxl","jxl"]]),xs=/\.(jp[2x]|j2[kc])$/i,gi=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),pi=e=>1<<31-Math.clz32(Math.ceil(Math.log2(e)));function Is(e,r){let t;if(a.string(e)?a.string(this.options.input.file)&&vr.resolve(this.options.input.file)===vr.resolve(e)?t=new Error("Cannot use same file for input and output"):xs.test(vr.extname(e))&&!this.constructor.format.jp2k.output.file&&(t=gi()):t=new Error("Missing output file path"),t)if(a.fn(r))r(t);else return Promise.reject(t);else {this.options.fileOut=e;let i=Error();return this._pipeline(r,i)}return this}function Ps(e,r){a.object(e)?this._setBooleanOption("resolveWithObject",e.resolveWithObject):this.options.resolveWithObject&&(this.options.resolveWithObject=false),this.options.fileOut="";let t=Error();return this._pipeline(a.fn(e)?e:r,t)}function As(){return this.options.keepMetadata|=1,this}function Rs(e){if(a.object(e))for(let[r,t]of Object.entries(e))if(a.object(t))for(let[i,n]of Object.entries(t))if(a.string(n))this.options.withExif[`exif-${r.toLowerCase()}-${i}`]=n;else throw a.invalidParameterError(`${r}.${i}`,"string",n);else throw a.invalidParameterError(r,"object",t);else throw a.invalidParameterError("exif","object",e);return this.options.withExifMerge=false,this.keepExif()}function ks(e){return this.withExif(e),this.options.withExifMerge=true,this}function Ss(){return this.options.keepMetadata|=8,this}function Ms(e,r){if(a.string(e))this.options.withIccProfile=e;else throw a.invalidParameterError("icc","string",e);if(this.keepIccProfile(),a.object(r)&&a.defined(r.attach))if(a.bool(r.attach))r.attach||(this.options.keepMetadata&=-9);else throw a.invalidParameterError("attach","boolean",r.attach);return this}function Ls(){return this.options.keepMetadata=31,this}function Bs(e){if(this.keepMetadata(),this.withIccProfile("srgb"),a.object(e)){if(a.defined(e.orientation))if(a.integer(e.orientation)&&a.inRange(e.orientation,1,8))this.options.withMetadataOrientation=e.orientation;else throw a.invalidParameterError("orientation","integer between 1 and 8",e.orientation);if(a.defined(e.density))if(a.number(e.density)&&e.density>0)this.options.withMetadataDensity=e.density;else throw a.invalidParameterError("density","positive number",e.density);a.defined(e.icc)&&this.withIccProfile(e.icc),a.defined(e.exif)&&this.withExifMerge(e.exif);}return this}function Fs(e,r){let t=mi.get((a.object(e)&&a.string(e.id)?e.id:e).toLowerCase());if(!t)throw a.invalidParameterError("format",`one of: ${[...mi.keys()].join(", ")}`,e);return this[t](r)}function js(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.jpegQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.progressive)&&this._setBooleanOption("jpegProgressive",e.progressive),a.defined(e.chromaSubsampling))if(a.string(e.chromaSubsampling)&&a.inArray(e.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=e.chromaSubsampling;else throw a.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",e.chromaSubsampling);let r=a.bool(e.optimizeCoding)?e.optimizeCoding:e.optimiseCoding;if(a.defined(r)&&this._setBooleanOption("jpegOptimiseCoding",r),a.defined(e.mozjpeg))if(a.bool(e.mozjpeg))e.mozjpeg&&(this.options.jpegTrellisQuantisation=true,this.options.jpegOvershootDeringing=true,this.options.jpegOptimiseScans=true,this.options.jpegProgressive=true,this.options.jpegQuantisationTable=3);else throw a.invalidParameterError("mozjpeg","boolean",e.mozjpeg);let t=a.bool(e.trellisQuantization)?e.trellisQuantization:e.trellisQuantisation;a.defined(t)&&this._setBooleanOption("jpegTrellisQuantisation",t),a.defined(e.overshootDeringing)&&this._setBooleanOption("jpegOvershootDeringing",e.overshootDeringing);let i=a.bool(e.optimizeScans)?e.optimizeScans:e.optimiseScans;a.defined(i)&&(this._setBooleanOption("jpegOptimiseScans",i),i&&(this.options.jpegProgressive=true));let n=a.number(e.quantizationTable)?e.quantizationTable:e.quantisationTable;if(a.defined(n))if(a.integer(n)&&a.inRange(n,0,8))this.options.jpegQuantisationTable=n;else throw a.invalidParameterError("quantisationTable","integer between 0 and 8",n)}return this._updateFormatOut("jpeg",e)}function Ts(e){if(a.object(e)){if(a.defined(e.progressive)&&this._setBooleanOption("pngProgressive",e.progressive),a.defined(e.compressionLevel))if(a.integer(e.compressionLevel)&&a.inRange(e.compressionLevel,0,9))this.options.pngCompressionLevel=e.compressionLevel;else throw a.invalidParameterError("compressionLevel","integer between 0 and 9",e.compressionLevel);a.defined(e.adaptiveFiltering)&&this._setBooleanOption("pngAdaptiveFiltering",e.adaptiveFiltering);let r=e.colours||e.colors;if(a.defined(r))if(a.integer(r)&&a.inRange(r,2,256))this.options.pngBitdepth=pi(r);else throw a.invalidParameterError("colours","integer between 2 and 256",r);if(a.defined(e.palette)?this._setBooleanOption("pngPalette",e.palette):[e.quality,e.effort,e.colours,e.colors,e.dither].some(a.defined)&&this._setBooleanOption("pngPalette",true),this.options.pngPalette){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,0,100))this.options.pngQuality=e.quality;else throw a.invalidParameterError("quality","integer between 0 and 100",e.quality);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,1,10))this.options.pngEffort=e.effort;else throw a.invalidParameterError("effort","integer between 1 and 10",e.effort);if(a.defined(e.dither))if(a.number(e.dither)&&a.inRange(e.dither,0,1))this.options.pngDither=e.dither;else throw a.invalidParameterError("dither","number between 0.0 and 1.0",e.dither)}}return this._updateFormatOut("png",e)}function Ns(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.webpQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.alphaQuality))if(a.integer(e.alphaQuality)&&a.inRange(e.alphaQuality,0,100))this.options.webpAlphaQuality=e.alphaQuality;else throw a.invalidParameterError("alphaQuality","integer between 0 and 100",e.alphaQuality);if(a.defined(e.lossless)&&this._setBooleanOption("webpLossless",e.lossless),a.defined(e.nearLossless)&&this._setBooleanOption("webpNearLossless",e.nearLossless),a.defined(e.smartSubsample)&&this._setBooleanOption("webpSmartSubsample",e.smartSubsample),a.defined(e.preset))if(a.string(e.preset)&&a.inArray(e.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=e.preset;else throw a.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",e.preset);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,0,6))this.options.webpEffort=e.effort;else throw a.invalidParameterError("effort","integer between 0 and 6",e.effort);a.defined(e.minSize)&&this._setBooleanOption("webpMinSize",e.minSize),a.defined(e.mixed)&&this._setBooleanOption("webpMixed",e.mixed);}return bi(e,this.options),this._updateFormatOut("webp",e)}function $s(e){if(a.object(e)){a.defined(e.reuse)&&this._setBooleanOption("gifReuse",e.reuse),a.defined(e.progressive)&&this._setBooleanOption("gifProgressive",e.progressive);let r=e.colours||e.colors;if(a.defined(r))if(a.integer(r)&&a.inRange(r,2,256))this.options.gifBitdepth=pi(r);else throw a.invalidParameterError("colours","integer between 2 and 256",r);if(a.defined(e.effort))if(a.number(e.effort)&&a.inRange(e.effort,1,10))this.options.gifEffort=e.effort;else throw a.invalidParameterError("effort","integer between 1 and 10",e.effort);if(a.defined(e.dither))if(a.number(e.dither)&&a.inRange(e.dither,0,1))this.options.gifDither=e.dither;else throw a.invalidParameterError("dither","number between 0.0 and 1.0",e.dither);if(a.defined(e.interFrameMaxError))if(a.number(e.interFrameMaxError)&&a.inRange(e.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=e.interFrameMaxError;else throw a.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",e.interFrameMaxError);if(a.defined(e.interPaletteMaxError))if(a.number(e.interPaletteMaxError)&&a.inRange(e.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=e.interPaletteMaxError;else throw a.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",e.interPaletteMaxError)}return bi(e,this.options),this._updateFormatOut("gif",e)}function Cs(e){if(!this.constructor.format.jp2k.output.buffer)throw gi();if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.jp2Quality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.lossless))if(a.bool(e.lossless))this.options.jp2Lossless=e.lossless;else throw a.invalidParameterError("lossless","boolean",e.lossless);if(a.defined(e.tileWidth))if(a.integer(e.tileWidth)&&a.inRange(e.tileWidth,1,32768))this.options.jp2TileWidth=e.tileWidth;else throw a.invalidParameterError("tileWidth","integer between 1 and 32768",e.tileWidth);if(a.defined(e.tileHeight))if(a.integer(e.tileHeight)&&a.inRange(e.tileHeight,1,32768))this.options.jp2TileHeight=e.tileHeight;else throw a.invalidParameterError("tileHeight","integer between 1 and 32768",e.tileHeight);if(a.defined(e.chromaSubsampling))if(a.string(e.chromaSubsampling)&&a.inArray(e.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=e.chromaSubsampling;else throw a.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",e.chromaSubsampling)}return this._updateFormatOut("jp2",e)}function bi(e,r){if(a.object(e)&&a.defined(e.loop))if(a.integer(e.loop)&&a.inRange(e.loop,0,65535))r.loop=e.loop;else throw a.invalidParameterError("loop","integer between 0 and 65535",e.loop);if(a.object(e)&&a.defined(e.delay))if(a.integer(e.delay)&&a.inRange(e.delay,0,65535))r.delay=[e.delay];else if(Array.isArray(e.delay)&&e.delay.every(a.integer)&&e.delay.every(t=>a.inRange(t,0,65535)))r.delay=e.delay;else throw a.invalidParameterError("delay","integer or an array of integers between 0 and 65535",e.delay)}function _s(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.tiffQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.bitdepth))if(a.integer(e.bitdepth)&&a.inArray(e.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=e.bitdepth;else throw a.invalidParameterError("bitdepth","1, 2, 4 or 8",e.bitdepth);if(a.defined(e.tile)&&this._setBooleanOption("tiffTile",e.tile),a.defined(e.tileWidth))if(a.integer(e.tileWidth)&&e.tileWidth>0)this.options.tiffTileWidth=e.tileWidth;else throw a.invalidParameterError("tileWidth","integer greater than zero",e.tileWidth);if(a.defined(e.tileHeight))if(a.integer(e.tileHeight)&&e.tileHeight>0)this.options.tiffTileHeight=e.tileHeight;else throw a.invalidParameterError("tileHeight","integer greater than zero",e.tileHeight);if(a.defined(e.miniswhite)&&this._setBooleanOption("tiffMiniswhite",e.miniswhite),a.defined(e.pyramid)&&this._setBooleanOption("tiffPyramid",e.pyramid),a.defined(e.xres))if(a.number(e.xres)&&e.xres>0)this.options.tiffXres=e.xres;else throw a.invalidParameterError("xres","number greater than zero",e.xres);if(a.defined(e.yres))if(a.number(e.yres)&&e.yres>0)this.options.tiffYres=e.yres;else throw a.invalidParameterError("yres","number greater than zero",e.yres);if(a.defined(e.compression))if(a.string(e.compression)&&a.inArray(e.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=e.compression;else throw a.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",e.compression);if(a.defined(e.predictor))if(a.string(e.predictor)&&a.inArray(e.predictor,["none","horizontal","float"]))this.options.tiffPredictor=e.predictor;else throw a.invalidParameterError("predictor","one of: none, horizontal, float",e.predictor);if(a.defined(e.resolutionUnit))if(a.string(e.resolutionUnit)&&a.inArray(e.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=e.resolutionUnit;else throw a.invalidParameterError("resolutionUnit","one of: inch, cm",e.resolutionUnit)}return this._updateFormatOut("tiff",e)}function Os(e){return this.heif({...e,compression:"av1"})}function qs(e){if(a.object(e)){if(a.string(e.compression)&&a.inArray(e.compression,["av1","hevc"]))this.options.heifCompression=e.compression;else throw a.invalidParameterError("compression","one of: av1, hevc",e.compression);if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.heifQuality=e.quality;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);if(a.defined(e.lossless))if(a.bool(e.lossless))this.options.heifLossless=e.lossless;else throw a.invalidParameterError("lossless","boolean",e.lossless);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,0,9))this.options.heifEffort=e.effort;else throw a.invalidParameterError("effort","integer between 0 and 9",e.effort);if(a.defined(e.chromaSubsampling))if(a.string(e.chromaSubsampling)&&a.inArray(e.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=e.chromaSubsampling;else throw a.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",e.chromaSubsampling)}else throw a.invalidParameterError("options","Object",e);return this._updateFormatOut("heif",e)}function Ds(e){if(a.object(e)){if(a.defined(e.quality))if(a.integer(e.quality)&&a.inRange(e.quality,1,100))this.options.jxlDistance=e.quality>=30?.1+(100-e.quality)*.09:53/3e3*e.quality*e.quality-23/20*e.quality+25;else throw a.invalidParameterError("quality","integer between 1 and 100",e.quality);else if(a.defined(e.distance))if(a.number(e.distance)&&a.inRange(e.distance,0,15))this.options.jxlDistance=e.distance;else throw a.invalidParameterError("distance","number between 0.0 and 15.0",e.distance);if(a.defined(e.decodingTier))if(a.integer(e.decodingTier)&&a.inRange(e.decodingTier,0,4))this.options.jxlDecodingTier=e.decodingTier;else throw a.invalidParameterError("decodingTier","integer between 0 and 4",e.decodingTier);if(a.defined(e.lossless))if(a.bool(e.lossless))this.options.jxlLossless=e.lossless;else throw a.invalidParameterError("lossless","boolean",e.lossless);if(a.defined(e.effort))if(a.integer(e.effort)&&a.inRange(e.effort,3,9))this.options.jxlEffort=e.effort;else throw a.invalidParameterError("effort","integer between 3 and 9",e.effort)}return this._updateFormatOut("jxl",e)}function zs(e){if(a.object(e)&&a.defined(e.depth))if(a.string(e.depth)&&a.inArray(e.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=e.depth;else throw a.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",e.depth);return this._updateFormatOut("raw")}function Us(e){if(a.object(e)){if(a.defined(e.size))if(a.integer(e.size)&&a.inRange(e.size,1,8192))this.options.tileSize=e.size;else throw a.invalidParameterError("size","integer between 1 and 8192",e.size);if(a.defined(e.overlap))if(a.integer(e.overlap)&&a.inRange(e.overlap,0,8192)){if(e.overlap>this.options.tileSize)throw a.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,e.overlap);this.options.tileOverlap=e.overlap;}else throw a.invalidParameterError("overlap","integer between 0 and 8192",e.overlap);if(a.defined(e.container))if(a.string(e.container)&&a.inArray(e.container,["fs","zip"]))this.options.tileContainer=e.container;else throw a.invalidParameterError("container","one of: fs, zip",e.container);if(a.defined(e.layout))if(a.string(e.layout)&&a.inArray(e.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=e.layout;else throw a.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",e.layout);if(a.defined(e.angle))if(a.integer(e.angle)&&!(e.angle%90))this.options.tileAngle=e.angle;else throw a.invalidParameterError("angle","positive/negative multiple of 90",e.angle);if(this._setBackgroundColourOption("tileBackground",e.background),a.defined(e.depth))if(a.string(e.depth)&&a.inArray(e.depth,["onepixel","onetile","one"]))this.options.tileDepth=e.depth;else throw a.invalidParameterError("depth","one of: onepixel, onetile, one",e.depth);if(a.defined(e.skipBlanks))if(a.integer(e.skipBlanks)&&a.inRange(e.skipBlanks,-1,65535))this.options.tileSkipBlanks=e.skipBlanks;else throw a.invalidParameterError("skipBlanks","integer between -1 and 255/65535",e.skipBlanks);else a.defined(e.layout)&&e.layout==="google"&&(this.options.tileSkipBlanks=5);let r=a.bool(e.center)?e.center:e.centre;if(a.defined(r)&&this._setBooleanOption("tileCentre",r),a.defined(e.id))if(a.string(e.id))this.options.tileId=e.id;else throw a.invalidParameterError("id","string",e.id);if(a.defined(e.basename))if(a.string(e.basename))this.options.tileBasename=e.basename;else throw a.invalidParameterError("basename","string",e.basename)}if(a.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw a.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function Gs(e){if(!a.plainObject(e))throw a.invalidParameterError("options","object",e);if(a.integer(e.seconds)&&a.inRange(e.seconds,0,3600))this.options.timeoutSeconds=e.seconds;else throw a.invalidParameterError("seconds","integer between 0 and 3600",e.seconds);return this}function Ws(e,r){return a.object(r)&&r.force===false||(this.options.formatOut=e),this}function Hs(e,r){if(a.bool(r))this.options[e]=r;else throw a.invalidParameterError(e,"boolean",r)}function Vs(){if(!this.options.streamOut){this.options.streamOut=true;let e=Error();this._pipeline(void 0,e);}}function Xs(e,r){return typeof e=="function"?(this._isStreamInput()?this.on("finish",()=>{this._flattenBufferIn(),ue.pipeline(this.options,(t,i,n)=>{t?e(a.nativeError(t,r)):e(null,i,n);});}):ue.pipeline(this.options,(t,i,n)=>{t?e(a.nativeError(t,r)):e(null,i,n);}),this):this.options.streamOut?(this._isStreamInput()?(this.once("finish",()=>{this._flattenBufferIn(),ue.pipeline(this.options,(t,i,n)=>{t?this.emit("error",a.nativeError(t,r)):(this.emit("info",n),this.push(i)),this.push(null),this.on("end",()=>this.emit("close"));});}),this.streamInFinished&&this.emit("finish")):ue.pipeline(this.options,(t,i,n)=>{t?this.emit("error",a.nativeError(t,r)):(this.emit("info",n),this.push(i)),this.push(null),this.on("end",()=>this.emit("close"));}),this):this._isStreamInput()?new Promise((t,i)=>{this.once("finish",()=>{this._flattenBufferIn(),ue.pipeline(this.options,(n,s,o)=>{n?i(a.nativeError(n,r)):this.options.resolveWithObject?t({data:s,info:o}):t(s);});});}):new Promise((t,i)=>{ue.pipeline(this.options,(n,s,o)=>{n?i(a.nativeError(n,r)):this.options.resolveWithObject?t({data:s,info:o}):t(s);});})}wi.exports=function(e){Object.assign(e.prototype,{toFile:Is,toBuffer:Ps,keepExif:As,withExif:Rs,withExifMerge:ks,keepIccProfile:Ss,withIccProfile:Ms,keepMetadata:Ls,withMetadata:Bs,toFormat:Fs,jpeg:js,jp2:Cs,png:Ts,webp:Ns,tiff:_s,avif:Os,heif:qs,jxl:Ds,gif:$s,raw:zs,tile:Us,timeout:Gs,_updateFormatOut:Ws,_setBooleanOption:Hs,_read:Vs,_pipeline:Xs});};});var Ai=I((Hl,Pi)=>{u();var Qs=B("events"),Ei=Se(),O=W(),{runtimePlatformArch:Js}=fr(),_=ge(),vi=Js(),xr=_.libvipsVersion(),Ee=_.format();Ee.heif.output.alias=["avif","heic"];Ee.jpeg.output.alias=["jpe","jpg"];Ee.tiff.output.alias=["tif"];Ee.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Ks={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},ye={vips:xr.semver};if(!xr.isGlobal)if(xr.isWasm)try{ye=B("@img/sharp-wasm32/versions");}catch{}else try{ye=B(`@img/sharp-${vi}/versions`);}catch{try{ye=B(`@img/sharp-libvips-${vi}/versions`);}catch{}}ye.sharp=lr().version;function xi(e){return O.bool(e)?e?_.cache(50,20,100):_.cache(0,0,0):O.object(e)?_.cache(e.memory,e.files,e.items):_.cache()}xi(true);function Ys(e){return _.concurrency(O.integer(e)?e:null)}Ei.familySync()===Ei.GLIBC&&!_._isUsingJemalloc()&&_.concurrency(1);var Zs=new Qs.EventEmitter;function eo(){return _.counters()}function Ii(e){return _.simd(O.bool(e)?e:null)}Ii(true);function ro(e){if(O.object(e))if(Array.isArray(e.operation)&&e.operation.every(O.string))_.block(e.operation,true);else throw O.invalidParameterError("operation","Array<string>",e.operation);else throw O.invalidParameterError("options","object",e)}function to(e){if(O.object(e))if(Array.isArray(e.operation)&&e.operation.every(O.string))_.block(e.operation,false);else throw O.invalidParameterError("operation","Array<string>",e.operation);else throw O.invalidParameterError("options","object",e)}Pi.exports=function(e){e.cache=xi,e.concurrency=Ys,e.counters=eo,e.simd=Ii,e.format=Ee,e.interpolators=Ks,e.versions=ye,e.queue=Zs,e.block=ro,e.unblock=to;};});var ki=I((Ql,Ri)=>{u();var Z=Bt();Yt()(Z);ni()(Z);si()(Z);li()(Z);hi()(Z);di()(Z);yi()(Z);Ai()(Z);Ri.exports=Z;});u();u();u();u();var P={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:6,FPS:10,DEFAULT_QUALITY:60,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},yo=async(e=false)=>{if(!e)try{let r=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;Pe.setFfmpegPath(r.path),Pe.setFfprobePath(t.path);}catch{}},x=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(r,t){return kr.join(tmpdir(),`${r}_${this.generateUniqueId()}.${t}`)}static async cleanup(r){await Promise.allSettled(r.map(t=>me.unlink(t)));}static async safeReadFile(r){try{return await me.readFile(r)}catch{throw new Error(`Failed to read file: ${r}`)}}static async safeWriteFile(r,t){try{await me.writeFile(r,t);}catch{throw new Error(`Failed to write file: ${r}`)}}},M=class{static async toBuffer(r){if(Buffer.isBuffer(r))return r;if(r instanceof ArrayBuffer)return Buffer.from(r);if(typeof r=="string")return this.fromString(r);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(r){if(r.startsWith("http://")||r.startsWith("https://"))return this.fromUrl(r);try{if(await me.stat(r).then(t=>t.isFile()).catch(()=>!1))return await me.readFile(r)}catch{}return Buffer.from(r,"base64")}static async fromUrl(r){try{let t=await fetch(r);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let i=await t.arrayBuffer();return Buffer.from(i)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}static async getExtension(r){let{fileTypeFromBuffer:t}=await import('file-type'),i=await t(r);if(!i)return "tmp";let n=i.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(n)?n:"tmp"}},N=class{static validate(r,t){if(!r?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${r?.mime||"unknown"}`)}static isMedia(r){return r.startsWith(P.MIME.IMAGE)||r.startsWith(P.MIME.VIDEO)}static isAnimated(r){return r===P.MIME.GIF||r.startsWith(P.MIME.VIDEO)}},D=class{static async process(r){return new Promise((t,i)=>{let n=Pe(r.input).output(r.output);for(let s=0;s<r.options.length;s++){let o=r.options[s];o.startsWith("-")&&s+1<r.options.length&&!r.options[s+1].startsWith("-")?(n.outputOptions(o,r.options[s+1]),s++):n.outputOptions(o);}n.on("end",async()=>{try{await r.onEnd(),t();}catch(s){i(s);}}).on("error",async s=>{try{await r.onError(s);}finally{i(s);}}).run();})}static async getDuration(r){return new Promise((t,i)=>{Pe.ffprobe(r,(n,s)=>{if(n)return i(n);t(s.format.duration||0);});})}};u();var oe=class{static async toOpus(r){return this.convert(r,"opus")}static async toMp3(r){return this.convert(r,"mp3")}static async convert(r,t="opus"){let i=await M.toBuffer(r),n=await fileTypeFromBuffer(i);N.validate(n,P.MIME.AUDIO);let s=await M.getExtension(i),o=x.createTempPath("audio_in",s),c=t==="opus"?"ogg":"mp3",h=x.createTempPath("audio_out",c);await x.safeWriteFile(o,i);let d;try{let w=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","ogg"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await D.process({input:o,output:h,options:w,onEnd:async()=>{d=await x.safeReadFile(h);},onError:async()=>{await x.cleanup([o,h]);}}),await x.cleanup([o,h]),d}catch(w){throw await x.cleanup([o,h]),new Error(`${t.toUpperCase()} conversion failed: ${w.message}`)}}};u();var G=class{static async toMp4(r){let t=await M.toBuffer(r),i=await fileTypeFromBuffer(t);N.validate(i,P.MIME.VIDEO);let n=await M.getExtension(t),s=x.createTempPath("video_in",n),o=x.createTempPath("video_out","mp4");await x.safeWriteFile(s,t);let c;try{let h=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-vf","scale=trunc(iw/2)*2:trunc(ih/2)*2","-pix_fmt","yuv420p","-f","mp4"];return await D.process({input:s,output:o,options:h,onEnd:async()=>{c=await x.safeReadFile(o);},onError:async()=>{await x.cleanup([s,o]);}}),await x.cleanup([s,o]),c}catch(h){throw await x.cleanup([s,o]),new Error(`Video re-encoding failed: ${h.message}`)}}static async thumbnail(r){let t=await M.toBuffer(r),i=await fileTypeFromBuffer(t);N.validate(i,P.MIME.VIDEO);let n=await M.getExtension(t),s=x.createTempPath("video",n),o=x.createTempPath("thumb","jpg");await x.safeWriteFile(s,t);let c;try{return await new Promise((h,d)=>{Pe(s).screenshots({timestamps:[P.THUMBNAIL.TIMESTAMP],filename:kr.basename(o),folder:kr.dirname(o),size:`${P.THUMBNAIL.SIZE}x${P.THUMBNAIL.SIZE}`}).on("end",async()=>{try{c=(await x.safeReadFile(o)).toString("base64"),h();}catch(w){d(w);}}).on("error",d);}),await x.cleanup([s,o]),c}catch(h){throw await x.cleanup([s,o]),new Error(`Thumbnail generation failed: ${h.message}`)}}static async duration(r){return D.getDuration(r)}};u();var He=null,Si=false;function io(){if(Si)return He;Si=true;try{He=ki();}catch{He=null;}return He}var Ir=class{sharp;constructor(r){this.sharp=r;}async thumbnail(r){let t=this.sharp,i=t(r).resize(P.THUMBNAIL.SIZE,P.THUMBNAIL.SIZE,{fit:"cover"});return (await i.metadata()).format==="gif"&&(i=t(r,{pages:1}).resize(P.THUMBNAIL.SIZE,P.THUMBNAIL.SIZE)),(await i.jpeg({quality:P.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}async resize(r,t,i){return this.sharp(r).resize(t,i,{fit:"cover"}).png().toBuffer()}async toJpeg(r){let t=this.sharp,i=await M.toBuffer(r),n=await t(i).metadata();if(!n.format)throw new Error("Invalid image type: format could not be determined");return n.format==="webp"||n.format==="png"?t(i).jpeg().toBuffer():i}async resizeForSticker(r,t,i="default"){let n=this.sharp,s=P.STICKER.SIZE,o=n(r).resize(s,s,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}});if(i!=="default"){let c=Buffer.alloc(s*s);for(let d=0;d<s;d++)for(let w=0;w<s;w++){let A=false,T=s/2,k=s/2;switch(i){case "circle":{let S=w-T,q=d-k;A=S*S+q*q<=T*T;break}case "rounded":{let S=s/10,q=w>=S&&w<s-S&&d>=0&&d<s,U=w>=0&&w<s&&d>=S&&d<s-S,ne=false,Ke=[[S,S],[s-S,S],[S,s-S],[s-S,s-S]];for(let[Ye,Ie]of Ke){let de=w-Ye,Ar=d-Ie;if(de*de+Ar*Ar<=S*S){ne=true;break}}A=q||U||ne;break}case "oval":{let S=s/2,q=s/3,U=(w-T)/S,ne=(d-k)/q;A=U*U+ne*ne<=1;break}}c[d*s+w]=A?255:0;}let h=n(c,{raw:{width:s,height:s,channels:1}});o=o.joinChannel(await h.toBuffer());}return o.webp({quality:t}).toBuffer()}},Pr=class{async thumbnail(r){let t=P.THUMBNAIL.SIZE,i=await Jimp.fromBuffer(r);i.cover({w:t,h:t});let n=await i.getBuffer("image/jpeg",{quality:P.THUMBNAIL.QUALITY});return Buffer.from(n).toString("base64")}async resize(r,t,i){let n=await Jimp.fromBuffer(r);n.cover({w:t,h:i});let s=await n.getBuffer("image/png");return Buffer.from(s)}async toJpeg(r){let t=await M.toBuffer(r);try{let n=await(await Jimp.fromBuffer(t)).getBuffer("image/jpeg");return Buffer.from(n)}catch{return t}}async resizeForSticker(r,t,i="default"){let n=P.STICKER.SIZE,s=await Jimp.fromBuffer(r);if(s.contain({w:n,h:n}),i!=="default"){let c=new Jimp({width:n,height:n,color:255});for(let h=0;h<n;h++)for(let d=0;d<n;d++){let w=false,A=n/2,T=n/2;switch(i){case "circle":{let k=d-A,S=h-T;w=k*k+S*S<=A*A;break}case "rounded":{let k=n/10,S=d>=k&&d<n-k&&h>=0&&h<n,q=d>=0&&d<n&&h>=k&&h<n-k,U=false,ne=[[k,k],[n-k,k],[k,n-k],[n-k,n-k]];for(let[Ke,Ye]of ne){let Ie=d-Ke,de=h-Ye;if(Ie*Ie+de*de<=k*k){U=true;break}}w=S||q||U;break}case "oval":{let k=n/2,S=n/3,q=(d-A)/k,U=(h-T)/S;w=q*q+U*U<=1;break}}w&&c.setPixelColor(4294967295,d,h);}s.mask(c);}let o=Buffer.from(await s.getBuffer("image/png"));return this.convertToWebp(o,t)}async convertToWebp(r,t){let i=x.createTempPath("sticker_jimp_in","png"),n=x.createTempPath("sticker_jimp_out","webp");await x.safeWriteFile(i,r);let s=Math.max(1,Math.min(100,t));try{await D.process({input:i,output:n,options:["-vcodec","libwebp","-q:v",`${s}`,"-preset","default"],onEnd:async()=>{},onError:async()=>{await x.cleanup([i,n]);}});let o=await x.safeReadFile(n);return await x.cleanup([i,n]),o}catch(o){throw await x.cleanup([i,n]),new Error(`Jimp WebP conversion failed: ${o.message}`)}}},xe=null;function Ve(){if(xe)return xe;let e=io();return e?xe=new Ir(e):(console.warn("[media-process] sharp not available, using jimp as fallback (slower but compatible)"),xe=new Pr),xe}var z=class{static async thumbnail(r){return Ve().thumbnail(r)}static async resize(r,t,i){return Ve().resize(r,t,i)}static async toJpeg(r){return Ve().toJpeg(r)}static async resizeForSticker(r,t,i="default"){return Ve().resizeForSticker(r,t,i)}};u();u();var Xe=()=>Date.now().toString(36)+Math.random().toString(36).slice(2,8),Mi=e=>e;var Qe=class{static async create(r,t){try{let i=await M.toBuffer(r),n=await fileTypeFromBuffer(i);if(!n)throw new Error("Unable to detect file type");let s=t?.quality||P.STICKER.DEFAULT_QUALITY,o=N.isAnimated(n.mime),c=t?.shape||"default",h=o?await this.processAnimated(i,n.mime,s):await z.resizeForSticker(i,s,c),d=this.createExifMetadata(t),w=new ao.Image;await w.load(h),w.exif=d;let A=await w.save(null);return Buffer.isBuffer(A)?A:Buffer.from(A)}catch(i){throw new Error(`Sticker creation failed: ${i.message||i}`)}}static createExifMetadata(r){let t={"sticker-pack-id":Xe(),"sticker-pack-name":r?.packageName||"Zaileys Library","sticker-pack-publisher":r?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},i=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),n=Buffer.from(JSON.stringify(t),"utf8"),s=Buffer.concat([i,n]);return s.writeUIntLE(n.length,14,4),s}static async processAnimated(r,t,i){let n=this.getExtension(t),s=x.createTempPath("sticker_in",n),o=x.createTempPath("sticker_out","webp");await x.safeWriteFile(s,r);let c=P.STICKER.MAX_DURATION;try{let k=await G.duration(s);c=Mi(Math.min(k,P.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",P.STICKER.MAX_DURATION);}let h=P.STICKER.SIZE,d=P.STICKER.FPS,w=`scale=${h}:${h}:force_original_aspect_ratio=decrease,fps=${d},pad=${h}:${h}:(ow-iw)/2:(oh-ih)/2:color=0x00000000,format=rgba`,A=Math.max(1,Math.min(100,i)),T;try{return await D.process({input:s,output:o,options:["-vcodec libwebp",`-vf ${w}`,`-q:v ${A}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${c}`,`-compression_level ${P.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{T=await x.safeReadFile(o);},onError:async()=>{await x.cleanup([s,o]);}}),await x.cleanup([s,o]),T}catch(k){throw await x.cleanup([s,o]),new Error(`Animated sticker processing failed: ${k.message}`)}}static getExtension(r){return r===P.MIME.GIF?"gif":r.startsWith(P.MIME.VIDEO)?"mp4":"tmp"}};u();var Je=class{static async create(r){try{let t=await M.toBuffer(r),i=await fileTypeFromBuffer(t);if(!i)throw new Error("Unable to detect file type");let n;return i.mime.startsWith(P.MIME.VIDEO)?n=await G.thumbnail(t):N.isMedia(i.mime)?n=await z.thumbnail(t):n="",{document:t,mimetype:i.mime,ext:i.ext,fileName:Xe(),jpegThumbnail:n}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};var Li=class{input;constructor(r){this.input=r;}get audio(){return {toOpus:()=>oe.toOpus(this.input),toMp3:()=>oe.toMp3(this.input),convert:(r="opus")=>oe.convert(this.input,r)}}get video(){return {toMp4:()=>G.toMp4(this.input),thumbnail:()=>G.thumbnail(this.input)}}get image(){return {toJpeg:()=>z.toJpeg(this.input),thumbnail:async()=>{let r=await M.toBuffer(this.input);return z.thumbnail(r)},resize:async(r,t)=>{let i=await M.toBuffer(this.input);return z.resize(i,r,t)}}}get sticker(){return {create:r=>Qe.create(this.input,r)}}get document(){return {create:()=>Je.create(this.input)}}get thumbnail(){return {get:async()=>{let r=await M.toBuffer(this.input),t=await fileTypeFromBuffer(r);if(!t||!N.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(P.MIME.VIDEO)?G.thumbnail(this.input):z.thumbnail(r)}}}async toBuffer(){return M.toBuffer(this.input)}};u();
3
+ export{oe as AudioProcessor,M as BufferConverter,Je as DocumentProcessor,P as FFMPEG_CONSTANTS,D as FFmpegProcessor,x as FileManager,z as ImageProcessor,Li as Media,N as MimeValidator,Qe as StickerProcessor,G as VideoProcessor,yo as initializeFFmpeg};
package/package.json CHANGED
@@ -1,18 +1,22 @@
1
1
  {
2
2
  "name": "@zaadevofc/media-process",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "WhatsApp Media Processing library for Zaileys",
5
- "type": "module",
5
+ "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.mjs",
8
8
  "types": "dist/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
- "import": "./dist/index.mjs",
13
- "require": "./dist/index.js"
12
+ "require": "./dist/index.js",
13
+ "import": "./dist/index.mjs"
14
14
  }
15
15
  },
16
+ "author": "zaadevofc",
17
+ "repository": {
18
+ "url": "git+https://github.com/zeative/media-process.git"
19
+ },
16
20
  "scripts": {
17
21
  "build": "tsup"
18
22
  },
@@ -21,7 +25,10 @@
21
25
  "@ffprobe-installer/ffprobe": "^2.1.2",
22
26
  "file-type": "^21.1.1",
23
27
  "fluent-ffmpeg": "^2.1.3",
24
- "node-webpmux": "^3.2.1",
28
+ "jimp": "^1.6.0",
29
+ "node-webpmux": "^3.2.1"
30
+ },
31
+ "optionalDependencies": {
25
32
  "sharp": "0.33.0"
26
33
  },
27
34
  "devDependencies": {
File without changes