gemi 0.9.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/index.js +2 -2
- package/dist/app/index.js.map +1 -1
- package/dist/bin/gemi.js +35394 -0
- package/dist/bin/gemi.js.map +94 -0
- package/dist/broadcasting/index.js +1 -1
- package/dist/chunk-0gr0rj7r.js +4 -0
- package/dist/{chunk-b8d5htph.js.map → chunk-0gr0rj7r.js.map} +2 -2
- package/dist/chunk-18anmejw.js +13 -0
- package/dist/{chunk-t6h32cqw.js.map → chunk-18anmejw.js.map} +4 -4
- package/dist/chunk-35zcs0pk.js +4 -0
- package/dist/{chunk-d1jvc299.js.map → chunk-35zcs0pk.js.map} +5 -5
- package/dist/chunk-3hb4j4tb.js +11 -0
- package/dist/{chunk-t0br3jky.js.map → chunk-3hb4j4tb.js.map} +2 -2
- package/dist/chunk-3vm1nb1w.js +11 -0
- package/dist/{chunk-avqfpn5v.js.map → chunk-3vm1nb1w.js.map} +5 -5
- package/dist/{chunk-vvdgy5ba.js → chunk-5f0rzak7.js} +3 -3
- package/dist/{chunk-vvdgy5ba.js.map → chunk-5f0rzak7.js.map} +1 -1
- package/dist/{chunk-wrtx683g.js → chunk-63hxfm31.js} +3 -3
- package/dist/{chunk-wrtx683g.js.map → chunk-63hxfm31.js.map} +1 -1
- package/dist/chunk-767yrc2c.js +4 -0
- package/dist/{chunk-vqpqea57.js.map → chunk-767yrc2c.js.map} +2 -2
- package/dist/chunk-as0ze3hk.js +5 -0
- package/dist/{chunk-6g1mntab.js.map → chunk-as0ze3hk.js.map} +6 -6
- package/dist/chunk-cn143fca.js +6 -0
- package/dist/{chunk-x46drz7r.js.map → chunk-cn143fca.js.map} +2 -2
- package/dist/chunk-e077ya3j.js +22 -0
- package/dist/{chunk-vress81a.js.map → chunk-e077ya3j.js.map} +2 -2
- package/dist/chunk-e21gmk4a.js +4 -0
- package/dist/{chunk-5yex263y.js.map → chunk-e21gmk4a.js.map} +2 -2
- package/dist/{chunk-2myc2s6w.js → chunk-gkzrn1xy.js} +3 -3
- package/dist/{chunk-2myc2s6w.js.map → chunk-gkzrn1xy.js.map} +1 -1
- package/dist/chunk-gzc58n6z.js +4 -0
- package/dist/{chunk-hwaaf04e.js.map → chunk-gzc58n6z.js.map} +2 -2
- package/dist/chunk-hcxp20gw.js +4 -0
- package/dist/{chunk-641dtrzq.js.map → chunk-hcxp20gw.js.map} +2 -2
- package/dist/{chunk-k9katf2f.js → chunk-j61ayndh.js} +2 -2
- package/dist/{chunk-k9katf2f.js.map → chunk-j61ayndh.js.map} +1 -1
- package/dist/chunk-jbnkc3n4.js +4 -0
- package/dist/{chunk-qbvhdtxt.js.map → chunk-jbnkc3n4.js.map} +2 -2
- package/dist/chunk-myntqyk8.js +4 -0
- package/dist/chunk-myntqyk8.js.map +14 -0
- package/dist/chunk-ng7ryvkk.js +4 -0
- package/dist/{chunk-w8eezrzs.js.map → chunk-ng7ryvkk.js.map} +2 -2
- package/dist/chunk-njsvs0gx.js +41 -0
- package/dist/{chunk-8arqqbhx.js.map → chunk-njsvs0gx.js.map} +13 -11
- package/dist/chunk-nshcr6nw.js +4 -0
- package/dist/{chunk-wv5423nm.js.map → chunk-nshcr6nw.js.map} +2 -2
- package/dist/chunk-nyn5gztt.js +4 -0
- package/dist/{chunk-ameyxxdy.js.map → chunk-nyn5gztt.js.map} +5 -5
- package/dist/chunk-rsj6ke1v.js +8 -0
- package/dist/{chunk-36mj8mav.js.map → chunk-rsj6ke1v.js.map} +2 -2
- package/dist/chunk-v0mpng4p.js +4 -0
- package/dist/{chunk-0wqf4729.js.map → chunk-v0mpng4p.js.map} +2 -2
- package/dist/chunk-x02snmef.js +3 -0
- package/dist/chunk-x02snmef.js.map +15 -0
- package/dist/chunk-xd3556sw.js +4 -0
- package/dist/{chunk-9qk0pjxc.js.map → chunk-xd3556sw.js.map} +2 -2
- package/dist/chunk-y2fy75zm.js +4 -0
- package/dist/{chunk-crahc1t6.js.map → chunk-y2fy75zm.js.map} +2 -2
- package/dist/chunk-zjy4ngej.js +5 -0
- package/dist/{chunk-zp1h0k9v.js.map → chunk-zjy4ngej.js.map} +5 -5
- package/dist/client/ClientRouter.d.ts.map +1 -1
- package/dist/client/ClientRouterContext.d.ts +4 -1
- package/dist/client/ClientRouterContext.d.ts.map +1 -1
- package/dist/client/ServerDataProvider.d.ts +4 -0
- package/dist/client/ServerDataProvider.d.ts.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +35 -5
- package/dist/client/index.js.map +1 -1
- package/dist/client/useBreadcrumbs.d.ts +6 -0
- package/dist/client/useBreadcrumbs.d.ts.map +1 -0
- package/dist/client/useNavigate.d.ts.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/index.js +5 -2
- package/dist/facades/index.js.map +2 -2
- package/dist/http/ViewRouter.d.ts +14 -4
- package/dist/http/ViewRouter.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +3 -3
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +2 -2
- package/dist/server/index.js +6 -6
- package/dist/server/index.js.map +2 -2
- package/dist/services/index.js +63 -3
- package/dist/services/index.js.map +2 -2
- package/dist/services/router/ViewRouterServiceContainer.d.ts +1 -0
- package/dist/services/router/ViewRouterServiceContainer.d.ts.map +1 -1
- package/dist/services/router/createFlatViewRoutes.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/bin/index.js +0 -35238
- package/dist/chunk-0wqf4729.js +0 -4
- package/dist/chunk-36mj8mav.js +0 -8
- package/dist/chunk-5yex263y.js +0 -4
- package/dist/chunk-641dtrzq.js +0 -4
- package/dist/chunk-6g1mntab.js +0 -4
- package/dist/chunk-8arqqbhx.js +0 -20
- package/dist/chunk-9qk0pjxc.js +0 -4
- package/dist/chunk-ameyxxdy.js +0 -4
- package/dist/chunk-avqfpn5v.js +0 -11
- package/dist/chunk-b8d5htph.js +0 -4
- package/dist/chunk-crahc1t6.js +0 -4
- package/dist/chunk-d1jvc299.js +0 -4
- package/dist/chunk-ek6n8gyv.js +0 -4
- package/dist/chunk-ek6n8gyv.js.map +0 -10
- package/dist/chunk-hwaaf04e.js +0 -4
- package/dist/chunk-hzfj9k0z.js +0 -4
- package/dist/chunk-hzfj9k0z.js.map +0 -14
- package/dist/chunk-qbvhdtxt.js +0 -4
- package/dist/chunk-t0br3jky.js +0 -4
- package/dist/chunk-t6h32cqw.js +0 -5
- package/dist/chunk-vqpqea57.js +0 -4
- package/dist/chunk-vress81a.js +0 -22
- package/dist/chunk-w8eezrzs.js +0 -4
- package/dist/chunk-wv5423nm.js +0 -4
- package/dist/chunk-x46drz7r.js +0 -4
- package/dist/chunk-zp1h0k9v.js +0 -4
package/dist/facades/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Bb as b5,Cb as P1,Db as v5,Fb as h5,Gb as j2,Hb as z2,Ib as k}from"../http/index.js";import{Lb as p5,Mb as H2}from"../chunk-w8eezrzs.js";import{Nb as r5,Ob as I2,Pb as T1,Qb as j1,Rb as e,Sb as x,Tb as z,Vb as b}from"../chunk-qbvhdtxt.js";import{Xb as u6,Yb as V}from"../chunk-vvdgy5ba.js";var l=V((y9,C1)=>{var S1=function($){return typeof $!=="undefined"&&$!==null},i5=function($){return typeof $==="object"},o5=function($){return Object.prototype.toString.call($)==="[object Object]"},$4=function($){return typeof $==="function"},J4=function($){return typeof $==="boolean"},F4=function($){return $ instanceof Buffer},w4=function($){if(S1($))switch($.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},W4=function($){return $ instanceof ArrayBuffer},U4=function($){return typeof $==="string"&&$.length>0},Z4=function($){return typeof $==="number"&&!Number.isNaN($)},B4=function($){return Number.isInteger($)},Y4=function($,J,F){return $>=J&&$<=F},Q4=function($,J){return J.includes($)},K4=function($,J,F){return new Error(`Expected ${J} for ${$} but received ${F} of type ${typeof F}`)},I4=function($,J){return J.message=$.message,J};C1.exports={defined:S1,object:i5,plainObject:o5,fn:$4,bool:J4,buffer:F4,typedArray:w4,arrayBuffer:W4,string:U4,number:Z4,integer:B4,inRange:Y4,inArray:Q4,invalidParameterError:K4,nativeError:I4}});var P2=V((L9,M1)=>{var G4=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};M1.exports=G4});var q2=V((N9,f1)=>{var H4=Number.MAX_SAFE_INTEGER||9007199254740991,P4=["major","premajor","minor","preminor","patch","prepatch","prerelease"];f1.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:H4,RELEASE_TYPES:P4,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var y2=V((c,k1)=>{var{MAX_SAFE_COMPONENT_LENGTH:a2,MAX_SAFE_BUILD_LENGTH:y4,MAX_LENGTH:L4}=q2(),N4=P2();c=k1.exports={};var X4=c.re=[],V4=c.safeRe=[],H=c.src=[],P=c.t={},D4=0,r2="[a-zA-Z0-9-]",T4=[["\\s",1],["\\d",L4],[r2,y4]],_4=($)=>{for(let[J,F]of T4)$=$.split(`${J}*`).join(`${J}{0,${F}}`).split(`${J}+`).join(`${J}{1,${F}}`);return $},X=($,J,F)=>{let w=_4(J),W=D4++;N4($,W,J),P[$]=W,H[W]=J,X4[W]=new RegExp(J,F?"g":void 0),V4[W]=new RegExp(w,F?"g":void 0)};X("NUMERICIDENTIFIER","0|[1-9]\\d*");X("NUMERICIDENTIFIERLOOSE","\\d+");X("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${r2}*`);X("MAINVERSION",`(${H[P.NUMERICIDENTIFIER]})\\.(${H[P.NUMERICIDENTIFIER]})\\.(${H[P.NUMERICIDENTIFIER]})`);X("MAINVERSIONLOOSE",`(${H[P.NUMERICIDENTIFIERLOOSE]})\\.(${H[P.NUMERICIDENTIFIERLOOSE]})\\.(${H[P.NUMERICIDENTIFIERLOOSE]})`);X("PRERELEASEIDENTIFIER",`(?:${H[P.NUMERICIDENTIFIER]}|${H[P.NONNUMERICIDENTIFIER]})`);X("PRERELEASEIDENTIFIERLOOSE",`(?:${H[P.NUMERICIDENTIFIERLOOSE]}|${H[P.NONNUMERICIDENTIFIER]})`);X("PRERELEASE",`(?:-(${H[P.PRERELEASEIDENTIFIER]}(?:\\.${H[P.PRERELEASEIDENTIFIER]})*))`);X("PRERELEASELOOSE",`(?:-?(${H[P.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${H[P.PRERELEASEIDENTIFIERLOOSE]})*))`);X("BUILDIDENTIFIER",`${r2}+`);X("BUILD",`(?:\\+(${H[P.BUILDIDENTIFIER]}(?:\\.${H[P.BUILDIDENTIFIER]})*))`);X("FULLPLAIN",`v?${H[P.MAINVERSION]}${H[P.PRERELEASE]}?${H[P.BUILD]}?`);X("FULL",`^${H[P.FULLPLAIN]}\$`);X("LOOSEPLAIN",`[v=\\s]*${H[P.MAINVERSIONLOOSE]}${H[P.PRERELEASELOOSE]}?${H[P.BUILD]}?`);X("LOOSE",`^${H[P.LOOSEPLAIN]}\$`);X("GTLT","((?:<|>)?=?)");X("XRANGEIDENTIFIERLOOSE",`${H[P.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);X("XRANGEIDENTIFIER",`${H[P.NUMERICIDENTIFIER]}|x|X|\\*`);X("XRANGEPLAIN",`[v=\\s]*(${H[P.XRANGEIDENTIFIER]})(?:\\.(${H[P.XRANGEIDENTIFIER]})(?:\\.(${H[P.XRANGEIDENTIFIER]})(?:${H[P.PRERELEASE]})?${H[P.BUILD]}?)?)?`);X("XRANGEPLAINLOOSE",`[v=\\s]*(${H[P.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[P.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[P.XRANGEIDENTIFIERLOOSE]})(?:${H[P.PRERELEASELOOSE]})?${H[P.BUILD]}?)?)?`);X("XRANGE",`^${H[P.GTLT]}\\s*${H[P.XRANGEPLAIN]}\$`);X("XRANGELOOSE",`^${H[P.GTLT]}\\s*${H[P.XRANGEPLAINLOOSE]}\$`);X("COERCEPLAIN",`(^|[^\\d])(\\d{1,${a2}})(?:\\.(\\d{1,${a2}}))?(?:\\.(\\d{1,${a2}}))?`);X("COERCE",`${H[P.COERCEPLAIN]}(?:\$|[^\\d])`);X("COERCEFULL",H[P.COERCEPLAIN]+`(?:${H[P.PRERELEASE]})?(?:${H[P.BUILD]})?(?:\$|[^\\d])`);X("COERCERTL",H[P.COERCE],!0);X("COERCERTLFULL",H[P.COERCEFULL],!0);X("LONETILDE","(?:~>?)");X("TILDETRIM",`(\\s*)${H[P.LONETILDE]}\\s+`,!0);c.tildeTrimReplace="$1~";X("TILDE",`^${H[P.LONETILDE]}${H[P.XRANGEPLAIN]}\$`);X("TILDELOOSE",`^${H[P.LONETILDE]}${H[P.XRANGEPLAINLOOSE]}\$`);X("LONECARET","(?:\\^)");X("CARETTRIM",`(\\s*)${H[P.LONECARET]}\\s+`,!0);c.caretTrimReplace="$1^";X("CARET",`^${H[P.LONECARET]}${H[P.XRANGEPLAIN]}\$`);X("CARETLOOSE",`^${H[P.LONECARET]}${H[P.XRANGEPLAINLOOSE]}\$`);X("COMPARATORLOOSE",`^${H[P.GTLT]}\\s*(${H[P.LOOSEPLAIN]})\$|^\$`);X("COMPARATOR",`^${H[P.GTLT]}\\s*(${H[P.FULLPLAIN]})\$|^\$`);X("COMPARATORTRIM",`(\\s*)${H[P.GTLT]}\\s*(${H[P.LOOSEPLAIN]}|${H[P.XRANGEPLAIN]})`,!0);c.comparatorTrimReplace="$1$2$3";X("HYPHENRANGE",`^\\s*(${H[P.XRANGEPLAIN]})\\s+-\\s+(${H[P.XRANGEPLAIN]})\\s*\$`);X("HYPHENRANGELOOSE",`^\\s*(${H[P.XRANGEPLAINLOOSE]})\\s+-\\s+(${H[P.XRANGEPLAINLOOSE]})\\s*\$`);X("STAR","(<|>)?=?\\s*\\*");X("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");X("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var R2=V((X9,x1)=>{var z4=Object.freeze({loose:!0}),j4=Object.freeze({}),q4=($)=>{if(!$)return j4;if(typeof $!=="object")return z4;return $};x1.exports=q4});var v1=V((V9,b1)=>{var d1=/^[0-9]+$/,O1=($,J)=>{let F=d1.test($),w=d1.test(J);if(F&&w)$=+$,J=+J;return $===J?0:F&&!w?-1:w&&!F?1:$<J?-1:1},R4=($,J)=>O1(J,$);b1.exports={compareIdentifiers:O1,rcompareIdentifiers:R4}});var U2=V((D9,l1)=>{var E2=P2(),{MAX_LENGTH:h1,MAX_SAFE_INTEGER:A2}=q2(),{safeRe:g1,t:m1}=y2(),E4=R2(),{compareIdentifiers:W2}=v1();class g{constructor($,J){if(J=E4(J),$ instanceof g)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>h1)throw new TypeError(`version is longer than ${h1} characters`);E2("SemVer",$,J),this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease;let F=$.trim().match(J.loose?g1[m1.LOOSE]:g1[m1.FULL]);if(!F)throw new TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+F[1],this.minor=+F[2],this.patch=+F[3],this.major>A2||this.major<0)throw new TypeError("Invalid major version");if(this.minor>A2||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>A2||this.patch<0)throw new TypeError("Invalid patch version");if(!F[4])this.prerelease=[];else this.prerelease=F[4].split(".").map((w)=>{if(/^[0-9]+$/.test(w)){let W=+w;if(W>=0&&W<A2)return W}return w});this.build=F[5]?F[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(E2("SemVer.compare",this.version,this.options,$),!($ instanceof g)){if(typeof $==="string"&&$===this.version)return 0;$=new g($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof g))$=new g($,this.options);return W2(this.major,$.major)||W2(this.minor,$.minor)||W2(this.patch,$.patch)}comparePre($){if(!($ instanceof g))$=new g($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let J=0;do{let F=this.prerelease[J],w=$.prerelease[J];if(E2("prerelease compare",J,F,w),F===void 0&&w===void 0)return 0;else if(w===void 0)return 1;else if(F===void 0)return-1;else if(F===w)continue;else return W2(F,w)}while(++J)}compareBuild($){if(!($ instanceof g))$=new g($,this.options);let J=0;do{let F=this.build[J],w=$.build[J];if(E2("build compare",J,F,w),F===void 0&&w===void 0)return 0;else if(w===void 0)return 1;else if(F===void 0)return-1;else if(F===w)continue;else return W2(F,w)}while(++J)}inc($,J,F){switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",J,F);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",J,F);break;case"prepatch":this.prerelease.length=0,this.inc("patch",J,F),this.inc("pre",J,F);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",J,F);this.inc("pre",J,F);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let w=Number(F)?1:0;if(!J&&F===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[w];else{let W=this.prerelease.length;while(--W>=0)if(typeof this.prerelease[W]==="number")this.prerelease[W]++,W=-2;if(W===-1){if(J===this.prerelease.join(".")&&F===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(w)}}if(J){let W=[J,w];if(F===!1)W=[J];if(W2(this.prerelease[0],J)===0){if(isNaN(this.prerelease[1]))this.prerelease=W}else this.prerelease=W}break}default:throw new Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}l1.exports=g});var a1=V((T9,c1)=>{var u1=U2(),A4=($,J,F=!1)=>{if($ instanceof u1)return $;try{return new u1($,J)}catch(w){if(!F)return null;throw w}};c1.exports=A4});var e1=V((_9,r1)=>{var S4=U2(),C4=a1(),{safeRe:S2,t:C2}=y2(),M4=($,J)=>{if($ instanceof S4)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;J=J||{};let F=null;if(!J.rtl)F=$.match(J.includePrerelease?S2[C2.COERCEFULL]:S2[C2.COERCE]);else{let K=J.includePrerelease?S2[C2.COERCERTLFULL]:S2[C2.COERCERTL],G;while((G=K.exec($))&&(!F||F.index+F[0].length!==$.length)){if(!F||G.index+G[0].length!==F.index+F[0].length)F=G;K.lastIndex=G.index+G[1].length+G[2].length}K.lastIndex=-1}if(F===null)return null;let w=F[2],W=F[3]||"0",Z=F[4]||"0",B=J.includePrerelease&&F[5]?`-${F[5]}`:"",Y=J.includePrerelease&&F[6]?`+${F[6]}`:"";return C4(`${w}.${W}.${Z}${B}${Y}`,J)};r1.exports=M4});var i=V((z9,n1)=>{var p1=U2(),f4=($,J,F)=>new p1($,F).compare(new p1(J,F));n1.exports=f4});var e2=V((j9,s1)=>{var k4=i(),x4=($,J,F)=>k4($,J,F)>=0;s1.exports=x4});var o1=V((q9,i1)=>{class t1{constructor(){this.max=1000,this.map=new Map}get($){let J=this.map.get($);if(J===void 0)return;else return this.map.delete($),this.map.set($,J),J}delete($){return this.map.delete($)}set($,J){if(!this.delete($)&&J!==void 0){if(this.map.size>=this.max){let w=this.map.keys().next().value;this.delete(w)}this.map.set($,J)}return this}}i1.exports=t1});var J0=V((R9,$0)=>{var d4=i(),O4=($,J,F)=>d4($,J,F)===0;$0.exports=O4});var w0=V((E9,F0)=>{var b4=i(),v4=($,J,F)=>b4($,J,F)!==0;F0.exports=v4});var U0=V((A9,W0)=>{var h4=i(),g4=($,J,F)=>h4($,J,F)>0;W0.exports=g4});var B0=V((S9,Z0)=>{var m4=i(),l4=($,J,F)=>m4($,J,F)<0;Z0.exports=l4});var Q0=V((C9,Y0)=>{var u4=i(),c4=($,J,F)=>u4($,J,F)<=0;Y0.exports=c4});var I0=V((M9,K0)=>{var a4=J0(),r4=w0(),e4=U0(),p4=e2(),n4=B0(),s4=Q0(),t4=($,J,F,w)=>{switch(J){case"===":if(typeof $==="object")$=$.version;if(typeof F==="object")F=F.version;return $===F;case"!==":if(typeof $==="object")$=$.version;if(typeof F==="object")F=F.version;return $!==F;case"":case"=":case"==":return a4($,F,w);case"!=":return r4($,F,w);case">":return e4($,F,w);case">=":return p4($,F,w);case"<":return n4($,F,w);case"<=":return s4($,F,w);default:throw new TypeError(`Invalid operator: ${J}`)}};K0.exports=t4});var X0=V((f9,N0)=>{var L2=Symbol("SemVer ANY");class M2{static get ANY(){return L2}constructor($,J){if(J=G0(J),$ instanceof M2)if($.loose===!!J.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),n2("comparator",$,J),this.options=J,this.loose=!!J.loose,this.parse($),this.semver===L2)this.value="";else this.value=this.operator+this.semver.version;n2("comp",this)}parse($){let J=this.options.loose?H0[P0.COMPARATORLOOSE]:H0[P0.COMPARATOR],F=$.match(J);if(!F)throw new TypeError(`Invalid comparator: ${$}`);if(this.operator=F[1]!==void 0?F[1]:"",this.operator==="=")this.operator="";if(!F[2])this.semver=L2;else this.semver=new y0(F[2],this.options.loose)}toString(){return this.value}test($){if(n2("Comparator.test",$,this.options.loose),this.semver===L2||$===L2)return!0;if(typeof $==="string")try{$=new y0($,this.options)}catch(J){return!1}return p2($,this.operator,this.semver,this.options)}intersects($,J){if(!($ instanceof M2))throw new TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new L0($.value,J).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new L0(this.value,J).test($.semver)}if(J=G0(J),J.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!J.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(p2(this.semver,"<",$.semver,J)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(p2(this.semver,">",$.semver,J)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}N0.exports=M2;var G0=R2(),{safeRe:H0,t:P0}=y2(),p2=I0(),n2=P2(),y0=U2(),L0=s2()});var s2=V((k9,_0)=>{var i4=/\s+/g;class N2{constructor($,J){if(J=$3(J),$ instanceof N2)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else return new N2($.raw,J);if($ instanceof t2)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease,this.raw=$.trim().replace(i4," "),this.set=this.raw.split("||").map((F)=>this.parseRange(F.trim())).filter((F)=>F.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let F=this.set[0];if(this.set=this.set.filter((w)=>!D0(w[0])),this.set.length===0)this.set=[F];else if(this.set.length>1){for(let w of this.set)if(w.length===1&&B3(w[0])){this.set=[w];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let J=this.set[$];for(let F=0;F<J.length;F++){if(F>0)this.formatted+=" ";this.formatted+=J[F].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let F=((this.options.includePrerelease&&U3)|(this.options.loose&&Z3))+":"+$,w=V0.get(F);if(w)return w;let W=this.options.loose,Z=W?M[A.HYPHENRANGELOOSE]:M[A.HYPHENRANGE];$=$.replace(Z,N3(this.options.includePrerelease)),_("hyphen replace",$),$=$.replace(M[A.COMPARATORTRIM],F3),_("comparator trim",$),$=$.replace(M[A.TILDETRIM],w3),_("tilde trim",$),$=$.replace(M[A.CARETTRIM],W3),_("caret trim",$);let B=$.split(" ").map((N)=>Y3(N,this.options)).join(" ").split(/\s+/).map((N)=>L3(N,this.options));if(W)B=B.filter((N)=>{return _("loose invalid filter",N,this.options),!!N.match(M[A.COMPARATORLOOSE])});_("range list",B);let Y=new Map,K=B.map((N)=>new t2(N,this.options));for(let N of K){if(D0(N))return[N];Y.set(N.value,N)}if(Y.size>1&&Y.has(""))Y.delete("");let G=[...Y.values()];return V0.set(F,G),G}intersects($,J){if(!($ instanceof N2))throw new TypeError("a Range is required");return this.set.some((F)=>{return T0(F,J)&&$.set.some((w)=>{return T0(w,J)&&F.every((W)=>{return w.every((Z)=>{return W.intersects(Z,J)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new J3($,this.options)}catch(J){return!1}for(let J=0;J<this.set.length;J++)if(X3(this.set[J],$,this.options))return!0;return!1}}_0.exports=N2;var o4=o1(),V0=new o4,$3=R2(),t2=X0(),_=P2(),J3=U2(),{safeRe:M,t:A,comparatorTrimReplace:F3,tildeTrimReplace:w3,caretTrimReplace:W3}=y2(),{FLAG_INCLUDE_PRERELEASE:U3,FLAG_LOOSE:Z3}=q2(),D0=($)=>$.value==="<0.0.0-0",B3=($)=>$.value==="",T0=($,J)=>{let F=!0,w=$.slice(),W=w.pop();while(F&&w.length)F=w.every((Z)=>{return W.intersects(Z,J)}),W=w.pop();return F},Y3=($,J)=>{return _("comp",$,J),$=I3($,J),_("caret",$),$=Q3($,J),_("tildes",$),$=H3($,J),_("xrange",$),$=y3($,J),_("stars",$),$},S=($)=>!$||$.toLowerCase()==="x"||$==="*",Q3=($,J)=>{return $.trim().split(/\s+/).map((F)=>K3(F,J)).join(" ")},K3=($,J)=>{let F=J.loose?M[A.TILDELOOSE]:M[A.TILDE];return $.replace(F,(w,W,Z,B,Y)=>{_("tilde",$,w,W,Z,B,Y);let K;if(S(W))K="";else if(S(Z))K=`>=${W}.0.0 <${+W+1}.0.0-0`;else if(S(B))K=`>=${W}.${Z}.0 <${W}.${+Z+1}.0-0`;else if(Y)_("replaceTilde pr",Y),K=`>=${W}.${Z}.${B}-${Y} <${W}.${+Z+1}.0-0`;else K=`>=${W}.${Z}.${B} <${W}.${+Z+1}.0-0`;return _("tilde return",K),K})},I3=($,J)=>{return $.trim().split(/\s+/).map((F)=>G3(F,J)).join(" ")},G3=($,J)=>{_("caret",$,J);let F=J.loose?M[A.CARETLOOSE]:M[A.CARET],w=J.includePrerelease?"-0":"";return $.replace(F,(W,Z,B,Y,K)=>{_("caret",$,W,Z,B,Y,K);let G;if(S(Z))G="";else if(S(B))G=`>=${Z}.0.0${w} <${+Z+1}.0.0-0`;else if(S(Y))if(Z==="0")G=`>=${Z}.${B}.0${w} <${Z}.${+B+1}.0-0`;else G=`>=${Z}.${B}.0${w} <${+Z+1}.0.0-0`;else if(K)if(_("replaceCaret pr",K),Z==="0")if(B==="0")G=`>=${Z}.${B}.${Y}-${K} <${Z}.${B}.${+Y+1}-0`;else G=`>=${Z}.${B}.${Y}-${K} <${Z}.${+B+1}.0-0`;else G=`>=${Z}.${B}.${Y}-${K} <${+Z+1}.0.0-0`;else if(_("no pr"),Z==="0")if(B==="0")G=`>=${Z}.${B}.${Y}${w} <${Z}.${B}.${+Y+1}-0`;else G=`>=${Z}.${B}.${Y}${w} <${Z}.${+B+1}.0-0`;else G=`>=${Z}.${B}.${Y} <${+Z+1}.0.0-0`;return _("caret return",G),G})},H3=($,J)=>{return _("replaceXRanges",$,J),$.split(/\s+/).map((F)=>P3(F,J)).join(" ")},P3=($,J)=>{$=$.trim();let F=J.loose?M[A.XRANGELOOSE]:M[A.XRANGE];return $.replace(F,(w,W,Z,B,Y,K)=>{_("xRange",$,w,W,Z,B,Y,K);let G=S(Z),N=G||S(B),D=N||S(Y),E=D;if(W==="="&&E)W="";if(K=J.includePrerelease?"-0":"",G)if(W===">"||W==="<")w="<0.0.0-0";else w="*";else if(W&&E){if(N)B=0;if(Y=0,W===">")if(W=">=",N)Z=+Z+1,B=0,Y=0;else B=+B+1,Y=0;else if(W==="<=")if(W="<",N)Z=+Z+1;else B=+B+1;if(W==="<")K="-0";w=`${W+Z}.${B}.${Y}${K}`}else if(N)w=`>=${Z}.0.0${K} <${+Z+1}.0.0-0`;else if(D)w=`>=${Z}.${B}.0${K} <${Z}.${+B+1}.0-0`;return _("xRange return",w),w})},y3=($,J)=>{return _("replaceStars",$,J),$.trim().replace(M[A.STAR],"")},L3=($,J)=>{return _("replaceGTE0",$,J),$.trim().replace(M[J.includePrerelease?A.GTE0PRE:A.GTE0],"")},N3=($)=>(J,F,w,W,Z,B,Y,K,G,N,D,E)=>{if(S(w))F="";else if(S(W))F=`>=${w}.0.0${$?"-0":""}`;else if(S(Z))F=`>=${w}.${W}.0${$?"-0":""}`;else if(B)F=`>=${F}`;else F=`>=${F}${$?"-0":""}`;if(S(G))K="";else if(S(N))K=`<${+G+1}.0.0-0`;else if(S(D))K=`<${G}.${+N+1}.0-0`;else if(E)K=`<=${G}.${N}.${D}-${E}`;else if($)K=`<${G}.${N}.${+D+1}-0`;else K=`<=${K}`;return`${F} ${K}`.trim()},X3=($,J,F)=>{for(let w=0;w<$.length;w++)if(!$[w].test(J))return!1;if(J.prerelease.length&&!F.includePrerelease){for(let w=0;w<$.length;w++){if(_($[w].semver),$[w].semver===t2.ANY)continue;if($[w].semver.prerelease.length>0){let W=$[w].semver;if(W.major===J.major&&W.minor===J.minor&&W.patch===J.patch)return!0}}return!1}return!0}});var j0=V((x9,z0)=>{var V3=s2(),D3=($,J,F)=>{try{J=new V3(J,F)}catch(w){return!1}return J.test($)};z0.exports=D3});var i2=V((d9,T3)=>{T3.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.5",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://sharp.pixelplumbing.com",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>","Don Denton <don@happycollision.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.3",semver:"^7.6.3"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.33.5","@img/sharp-darwin-x64":"0.33.5","@img/sharp-libvips-darwin-arm64":"1.0.4","@img/sharp-libvips-darwin-x64":"1.0.4","@img/sharp-libvips-linux-arm":"1.0.5","@img/sharp-libvips-linux-arm64":"1.0.4","@img/sharp-libvips-linux-s390x":"1.0.4","@img/sharp-libvips-linux-x64":"1.0.4","@img/sharp-libvips-linuxmusl-arm64":"1.0.4","@img/sharp-libvips-linuxmusl-x64":"1.0.4","@img/sharp-linux-arm":"0.33.5","@img/sharp-linux-arm64":"0.33.5","@img/sharp-linux-s390x":"0.33.5","@img/sharp-linux-x64":"0.33.5","@img/sharp-linuxmusl-arm64":"0.33.5","@img/sharp-linuxmusl-x64":"0.33.5","@img/sharp-wasm32":"0.33.5","@img/sharp-win32-ia32":"0.33.5","@img/sharp-win32-x64":"0.33.5"},devDependencies:{"@emnapi/runtime":"^1.2.0","@img/sharp-libvips-dev":"1.0.4","@img/sharp-libvips-dev-wasm32":"1.0.5","@img/sharp-libvips-win32-ia32":"1.0.4","@img/sharp-libvips-win32-x64":"1.0.4","@types/node":"*",async:"^3.2.5",cc:"^3.0.1",emnapi:"^1.2.0","exif-reader":"^2.0.1","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^8.0.3","license-checker":"^25.0.1",mocha:"^10.7.3","node-addon-api":"^8.1.0",nyc:"^17.0.0",prebuild:"^13.0.1",semistandard:"^17.0.0","tar-fs":"^3.0.6",tsd:"^0.31.1"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0"},config:{libvips:">=8.15.3"},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 $1=V((O9,x0)=>{var{spawnSync:f2}=import.meta.require("child_process"),{createHash:_3}=import.meta.require("crypto"),A0=e1(),z3=e2(),j3=j0(),q0=import.meta.require("detect-libc"),{config:q3,engines:R0,optionalDependencies:R3}=i2(),E3=process.env.npm_package_config_libvips||q3.libvips,S0=A0(E3).version,A3=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-ia32","win32-x64"],k2={encoding:"utf8",shell:!0},S3=($)=>{if($ instanceof Error)console.error(`sharp: Installation error: ${$.message}`);else console.log(`sharp: ${$}`)},C0=()=>q0.isNonGlibcLinuxSync()?q0.familySync():"",C3=()=>`${process.platform}${C0()}-${process.arch}`,Z2=()=>{if(M0())return"wasm32";let{npm_config_arch:$,npm_config_platform:J,npm_config_libc:F}=process.env,w=typeof F==="string"?F:C0();return`${J||process.platform}${w}-${$||process.arch}`},M3=()=>{try{return import.meta.require(`@img/sharp-libvips-dev-${Z2()}/include`)}catch{try{return (()=>{throw new Error(`Cannot require module "@img/sharp-libvips-dev/include"`);})()}catch{}}return""},f3=()=>{try{return (()=>{throw new Error(`Cannot require module "@img/sharp-libvips-dev/cplusplus"`);})()}catch{}return""},k3=()=>{try{return import.meta.require(`@img/sharp-libvips-dev-${Z2()}/lib`)}catch{try{return import.meta.require(`@img/sharp-libvips-${Z2()}/lib`)}catch{}}return""},x3=()=>{if(process.release?.name==="node"&&process.versions){if(!j3(process.versions.node,R0.node))return{found:process.versions.node,expected:R0.node}}},M0=()=>{let{CC:$}=process.env;return Boolean($&&$.endsWith("/emcc"))},d3=()=>{if(process.platform==="darwin"&&process.arch==="x64")return(f2("sysctl sysctl.proc_translated",k2).stdout||"").trim()==="sysctl.proc_translated: 1";return!1},E0=($)=>_3("sha512").update($).digest("hex"),O3=()=>{try{let $=E0(`imgsharp-libvips-${Z2()}`),J=A0(R3[`@img/sharp-libvips-${Z2()}`]).version;return E0(`${$}npm:${J}`).slice(0,10)}catch{}return""},b3=()=>f2(`node-gyp rebuild --directory=src ${M0()?"--nodedir=emscripten":""}`,{...k2,stdio:"inherit"}).status,f0=()=>{if(process.platform!=="win32")return(f2("pkg-config --modversion vips-cpp",{...k2,env:{...process.env,PKG_CONFIG_PATH:k0()}}).stdout||"").trim();else return""},k0=()=>{if(process.platform!=="win32")return[(f2('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',k2).stdout||"").trim(),process.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":");else return""},o2=($,J,F)=>{if(F)F(`Detected ${J}, skipping search for globally-installed libvips`);return $},v3=($)=>{if(Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)===!0)return o2(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",$);if(Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS)===!0)return o2(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",$);if(d3())return o2(!1,"Rosetta",$);let J=f0();return!!J&&z3(J,S0)};x0.exports={minimumLibvipsVersion:S0,prebuiltPlatforms:A3,buildPlatformArch:Z2,buildSharpLibvipsIncludeDir:M3,buildSharpLibvipsCPlusPlusDir:f3,buildSharpLibvipsLibDir:k3,isUnsupportedNodeRuntime:x3,runtimePlatformArch:C3,log:S3,yarnLocator:O3,spawnRebuild:b3,globalLibvipsVersion:f0,pkgConfigPath:k0,useGlobalLibvips:v3}});var X2=V((b9,O0)=>{var{familySync:h3,versionSync:g3}=import.meta.require("detect-libc"),{runtimePlatformArch:m3,isUnsupportedNodeRuntime:d0,prebuiltPlatforms:l3,minimumLibvipsVersion:u3}=$1(),o=m3(),c3=[`../src/build/Release/sharp-${o}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${o}/sharp.node`,"@img/sharp-wasm32/sharp.node"],J1,x2=[];for(let $ of c3)try{J1=import.meta.require($);break}catch(J){x2.push(J)}if(J1)O0.exports=J1;else{let[$,J,F]=["linux","darwin","win32"].map((Z)=>o.startsWith(Z)),w=[`Could not load the "sharp" module using the ${o} runtime`];x2.forEach((Z)=>{if(Z.code!=="MODULE_NOT_FOUND")w.push(`${Z.code}: ${Z.message}`)});let W=x2.map((Z)=>Z.message).join(" ");if(w.push("Possible solutions:"),d0()){let{found:Z,expected:B}=d0();w.push("- Please upgrade Node.js:",` Found ${Z}`,` Requires ${B}`)}else if(l3.includes(o)){let[Z,B]=o.split("-"),Y=Z.endsWith("musl")?" --libc=musl":"";w.push("- Ensure optional dependencies can be installed:"," npm install --include=optional sharp","- Ensure your package manager supports multi-platform installation:"," See https://sharp.pixelplumbing.com/install#cross-platform","- Add platform-specific dependencies:",` npm install --os=${Z.replace("musl","")}${Y} --cpu=${B} sharp`)}else w.push(`- Manually install libvips >= ${u3}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if($&&/(symbol not found|CXXABI_)/i.test(W))try{let{config:Z}=import.meta.require(`@img/sharp-libvips-${o}/package`),B=`${h3()} ${g3()}`,Y=`${Z.musl?"musl":"glibc"} ${Z.musl||Z.glibc}`;w.push("- Update your OS:",` Found ${B}`,` Requires ${Y}`)}catch(Z){}if($&&/\/snap\/core[0-9]{2}/.test(W))w.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node");if(J&&/Incompatible library version/.test(W))w.push("- Update Homebrew:"," brew update && brew upgrade vips");if(x2.some((Z)=>Z.code==="ERR_DLOPEN_DISABLED"))w.push("- Run Node.js without using the --no-addons flag");if(F&&/The specified procedure could not be found/.test(W))w.push("- Using the canvas package on Windows?"," See https://sharp.pixelplumbing.com/install#canvas-and-windows","- Check for outdated versions of sharp in the dependency tree:"," npm ls sharp");throw w.push("- Consult the installation documentation:"," See https://sharp.pixelplumbing.com/install"),new Error(w.join("\n"))}});var v0=V((v9,b0)=>{var a3=import.meta.require("util"),F1=import.meta.require("stream"),r3=l();X2();var e3=a3.debuglog("sharp"),$2=function($,J){if(arguments.length===1&&!r3.defined($))throw new Error("Invalid input");if(!(this instanceof $2))return new $2($,J);return F1.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:!1,angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBeforePreExtract:!1,flip:!1,flop:!1,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:!1,withoutReduction:!1,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:!0,tint:[-1,0,0,0],flatten:!1,flattenBackground:[0,0,0],unflatten:!1,negate:!1,negateAlpha:!0,medianSize:0,blurSigma:0,precision:"integer",minAmpl:0.2,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:!0,trimBackground:[],trimThreshold:-1,trimLineArt:!1,gamma:0,gammaOut:0,greyscale:!1,normalise:!1,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:!1,ensureAlpha:-1,colourspace:"srgb",colourspacePipeline:"last",composite:[],fileOut:"",formatOut:"input",streamOut:!1,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:!0,resolveWithObject:!1,jpegQuality:80,jpegProgressive:!1,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:!1,jpegOvershootDeringing:!1,jpegOptimiseScans:!1,jpegOptimiseCoding:!0,jpegQuantisationTable:0,pngProgressive:!1,pngCompressionLevel:6,pngAdaptiveFiltering:!1,pngPalette:!1,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:!1,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:!1,webpNearLossless:!1,webpSmartSubsample:!1,webpPreset:"default",webpEffort:4,webpMinSize:!1,webpMixed:!1,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifReuse:!0,gifProgressive:!1,tiffQuality:80,tiffCompression:"jpeg",tiffPredictor:"horizontal",tiffPyramid:!1,tiffMiniswhite:!1,tiffBitdepth:8,tiffTile:!1,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:!1,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",heifBitdepth:8,jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:!1,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:!1,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],debuglog:(F)=>{this.emit("warning",F),e3(F)},queueListener:function(F){$2.queue.emit("change",F)}},this.options.input=this._createInputDescriptor($,J,{allowStream:!0}),this};Object.setPrototypeOf($2.prototype,F1.Duplex.prototype);Object.setPrototypeOf($2,F1.Duplex);function p3(){let $=this.constructor.call(),{debuglog:J,queueListener:F,...w}=this.options;if($.options=structuredClone(w),$.options.debuglog=J,$.options.queueListener=F,this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),$.options.input.buffer=this.options.input.buffer,$.emit("finish")});return $}Object.assign($2.prototype,{clone:p3});b0.exports=$2});var w1=V((h9,h0)=>{h0.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 m0=V((g9,g0)=>{g0.exports=function $(J){if(!J||typeof J==="string")return!1;return J instanceof Array||Array.isArray(J)||J.length>=0&&(J.splice instanceof Function||Object.getOwnPropertyDescriptor(J,J.length-1)&&J.constructor.name!=="String")}});var c0=V((m9,u0)=>{var n3=m0(),s3=Array.prototype.concat,t3=Array.prototype.slice,l0=u0.exports=function $(J){var F=[];for(var w=0,W=J.length;w<W;w++){var Z=J[w];if(n3(Z))F=s3.call(F,t3.call(Z));else F.push(Z)}return F};l0.wrap=function($){return function(){return $(l0(arguments))}}});var p0=V((l9,e0)=>{var V2=w1(),D2=c0(),a0=Object.hasOwnProperty,r0=Object.create(null);for(d2 in V2)if(a0.call(V2,d2))r0[V2[d2]]=d2;var d2,d=e0.exports={to:{},get:{}};d.get=function($){var J=$.substring(0,3).toLowerCase(),F,w;switch(J){case"hsl":F=d.get.hsl($),w="hsl";break;case"hwb":F=d.get.hwb($),w="hwb";break;default:F=d.get.rgb($),w="rgb";break}if(!F)return null;return{model:w,value:F}};d.get.rgb=function($){if(!$)return null;var J=/^#([a-f0-9]{3,4})$/i,F=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,w=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,W=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,Z=/^(\w+)$/,B=[0,0,0,1],Y,K,G;if(Y=$.match(F)){G=Y[2],Y=Y[1];for(K=0;K<3;K++){var N=K*2;B[K]=parseInt(Y.slice(N,N+2),16)}if(G)B[3]=parseInt(G,16)/255}else if(Y=$.match(J)){Y=Y[1],G=Y[3];for(K=0;K<3;K++)B[K]=parseInt(Y[K]+Y[K],16);if(G)B[3]=parseInt(G+G,16)/255}else if(Y=$.match(w)){for(K=0;K<3;K++)B[K]=parseInt(Y[K+1],0);if(Y[4])if(Y[5])B[3]=parseFloat(Y[4])*0.01;else B[3]=parseFloat(Y[4])}else if(Y=$.match(W)){for(K=0;K<3;K++)B[K]=Math.round(parseFloat(Y[K+1])*2.55);if(Y[4])if(Y[5])B[3]=parseFloat(Y[4])*0.01;else B[3]=parseFloat(Y[4])}else if(Y=$.match(Z)){if(Y[1]==="transparent")return[0,0,0,0];if(!a0.call(V2,Y[1]))return null;return B=V2[Y[1]],B[3]=1,B}else return null;for(K=0;K<3;K++)B[K]=n(B[K],0,255);return B[3]=n(B[3],0,1),B};d.get.hsl=function($){if(!$)return null;var J=/^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*)?\)$/,F=$.match(J);if(F){var w=parseFloat(F[4]),W=(parseFloat(F[1])%360+360)%360,Z=n(parseFloat(F[2]),0,100),B=n(parseFloat(F[3]),0,100),Y=n(isNaN(w)?1:w,0,1);return[W,Z,B,Y]}return null};d.get.hwb=function($){if(!$)return null;var J=/^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*)?\)$/,F=$.match(J);if(F){var w=parseFloat(F[4]),W=(parseFloat(F[1])%360+360)%360,Z=n(parseFloat(F[2]),0,100),B=n(parseFloat(F[3]),0,100),Y=n(isNaN(w)?1:w,0,1);return[W,Z,B,Y]}return null};d.to.hex=function(){var $=D2(arguments);return"#"+O2($[0])+O2($[1])+O2($[2])+($[3]<1?O2(Math.round($[3]*255)):"")};d.to.rgb=function(){var $=D2(arguments);return $.length<4||$[3]===1?"rgb("+Math.round($[0])+", "+Math.round($[1])+", "+Math.round($[2])+")":"rgba("+Math.round($[0])+", "+Math.round($[1])+", "+Math.round($[2])+", "+$[3]+")"};d.to.rgb.percent=function(){var $=D2(arguments),J=Math.round($[0]/255*100),F=Math.round($[1]/255*100),w=Math.round($[2]/255*100);return $.length<4||$[3]===1?"rgb("+J+"%, "+F+"%, "+w+"%)":"rgba("+J+"%, "+F+"%, "+w+"%, "+$[3]+")"};d.to.hsl=function(){var $=D2(arguments);return $.length<4||$[3]===1?"hsl("+$[0]+", "+$[1]+"%, "+$[2]+"%)":"hsla("+$[0]+", "+$[1]+"%, "+$[2]+"%, "+$[3]+")"};d.to.hwb=function(){var $=D2(arguments),J="";if($.length>=4&&$[3]!==1)J=", "+$[3];return"hwb("+$[0]+", "+$[1]+"%, "+$[2]+"%"+J+")"};d.to.keyword=function($){return r0[$.slice(0,3)]};function n($,J,F){return Math.min(Math.max(J,$),F)}function O2($){var J=Math.round($).toString(16).toUpperCase();return J.length<2?"0"+J:J}});var W1=V((u9,s0)=>{var T2=w1(),n0={};for(let $ of Object.keys(T2))n0[T2[$]]=$;var y={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"]}};s0.exports=y;for(let $ of Object.keys(y)){if(!("channels"in y[$]))throw new Error("missing channels property: "+$);if(!("labels"in y[$]))throw new Error("missing channel labels property: "+$);if(y[$].labels.length!==y[$].channels)throw new Error("channel and label counts mismatch: "+$);let{channels:J,labels:F}=y[$];delete y[$].channels,delete y[$].labels,Object.defineProperty(y[$],"channels",{value:J}),Object.defineProperty(y[$],"labels",{value:F})}y.rgb.hsl=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255,W=Math.min(J,F,w),Z=Math.max(J,F,w),B=Z-W,Y,K;if(Z===W)Y=0;else if(J===Z)Y=(F-w)/B;else if(F===Z)Y=2+(w-J)/B;else if(w===Z)Y=4+(J-F)/B;if(Y=Math.min(Y*60,360),Y<0)Y+=360;let G=(W+Z)/2;if(Z===W)K=0;else if(G<=0.5)K=B/(Z+W);else K=B/(2-Z-W);return[Y,K*100,G*100]};y.rgb.hsv=function($){let J,F,w,W,Z,B=$[0]/255,Y=$[1]/255,K=$[2]/255,G=Math.max(B,Y,K),N=G-Math.min(B,Y,K),D=function(E){return(G-E)/6/N+0.5};if(N===0)W=0,Z=0;else{if(Z=N/G,J=D(B),F=D(Y),w=D(K),B===G)W=w-F;else if(Y===G)W=0.3333333333333333+J-w;else if(K===G)W=0.6666666666666666+F-J;if(W<0)W+=1;else if(W>1)W-=1}return[W*360,Z*100,G*100]};y.rgb.hwb=function($){let J=$[0],F=$[1],w=$[2],W=y.rgb.hsl($)[0],Z=0.00392156862745098*Math.min(J,Math.min(F,w));return w=1-0.00392156862745098*Math.max(J,Math.max(F,w)),[W,Z*100,w*100]};y.rgb.cmyk=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255,W=Math.min(1-J,1-F,1-w),Z=(1-J-W)/(1-W)||0,B=(1-F-W)/(1-W)||0,Y=(1-w-W)/(1-W)||0;return[Z*100,B*100,Y*100,W*100]};function i3($,J){return($[0]-J[0])**2+($[1]-J[1])**2+($[2]-J[2])**2}y.rgb.keyword=function($){let J=n0[$];if(J)return J;let F=1/0,w;for(let W of Object.keys(T2)){let Z=T2[W],B=i3($,Z);if(B<F)F=B,w=W}return w};y.keyword.rgb=function($){return T2[$]};y.rgb.xyz=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255;J=J>0.04045?((J+0.055)/1.055)**2.4:J/12.92,F=F>0.04045?((F+0.055)/1.055)**2.4:F/12.92,w=w>0.04045?((w+0.055)/1.055)**2.4:w/12.92;let W=J*0.4124+F*0.3576+w*0.1805,Z=J*0.2126+F*0.7152+w*0.0722,B=J*0.0193+F*0.1192+w*0.9505;return[W*100,Z*100,B*100]};y.rgb.lab=function($){let J=y.rgb.xyz($),F=J[0],w=J[1],W=J[2];F/=95.047,w/=100,W/=108.883,F=F>0.008856?F**0.3333333333333333:7.787*F+0.13793103448275862,w=w>0.008856?w**0.3333333333333333:7.787*w+0.13793103448275862,W=W>0.008856?W**0.3333333333333333:7.787*W+0.13793103448275862;let Z=116*w-16,B=500*(F-w),Y=200*(w-W);return[Z,B,Y]};y.hsl.rgb=function($){let J=$[0]/360,F=$[1]/100,w=$[2]/100,W,Z,B;if(F===0)return B=w*255,[B,B,B];if(w<0.5)W=w*(1+F);else W=w+F-w*F;let Y=2*w-W,K=[0,0,0];for(let G=0;G<3;G++){if(Z=J+0.3333333333333333*-(G-1),Z<0)Z++;if(Z>1)Z--;if(6*Z<1)B=Y+(W-Y)*6*Z;else if(2*Z<1)B=W;else if(3*Z<2)B=Y+(W-Y)*(0.6666666666666666-Z)*6;else B=Y;K[G]=B*255}return K};y.hsl.hsv=function($){let J=$[0],F=$[1]/100,w=$[2]/100,W=F,Z=Math.max(w,0.01);w*=2,F*=w<=1?w:2-w,W*=Z<=1?Z:2-Z;let B=(w+F)/2,Y=w===0?2*W/(Z+W):2*F/(w+F);return[J,Y*100,B*100]};y.hsv.rgb=function($){let J=$[0]/60,F=$[1]/100,w=$[2]/100,W=Math.floor(J)%6,Z=J-Math.floor(J),B=255*w*(1-F),Y=255*w*(1-F*Z),K=255*w*(1-F*(1-Z));switch(w*=255,W){case 0:return[w,K,B];case 1:return[Y,w,B];case 2:return[B,w,K];case 3:return[B,Y,w];case 4:return[K,B,w];case 5:return[w,B,Y]}};y.hsv.hsl=function($){let J=$[0],F=$[1]/100,w=$[2]/100,W=Math.max(w,0.01),Z,B;B=(2-F)*w;let Y=(2-F)*W;return Z=F*W,Z/=Y<=1?Y:2-Y,Z=Z||0,B/=2,[J,Z*100,B*100]};y.hwb.rgb=function($){let J=$[0]/360,F=$[1]/100,w=$[2]/100,W=F+w,Z;if(W>1)F/=W,w/=W;let B=Math.floor(6*J),Y=1-w;if(Z=6*J-B,(B&1)!==0)Z=1-Z;let K=F+Z*(Y-F),G,N,D;switch(B){default:case 6:case 0:G=Y,N=K,D=F;break;case 1:G=K,N=Y,D=F;break;case 2:G=F,N=Y,D=K;break;case 3:G=F,N=K,D=Y;break;case 4:G=K,N=F,D=Y;break;case 5:G=Y,N=F,D=K;break}return[G*255,N*255,D*255]};y.cmyk.rgb=function($){let J=$[0]/100,F=$[1]/100,w=$[2]/100,W=$[3]/100,Z=1-Math.min(1,J*(1-W)+W),B=1-Math.min(1,F*(1-W)+W),Y=1-Math.min(1,w*(1-W)+W);return[Z*255,B*255,Y*255]};y.xyz.rgb=function($){let J=$[0]/100,F=$[1]/100,w=$[2]/100,W,Z,B;return W=J*3.2406+F*-1.5372+w*-0.4986,Z=J*-0.9689+F*1.8758+w*0.0415,B=J*0.0557+F*-0.204+w*1.057,W=W>0.0031308?1.055*W**0.4166666666666667-0.055:W*12.92,Z=Z>0.0031308?1.055*Z**0.4166666666666667-0.055:Z*12.92,B=B>0.0031308?1.055*B**0.4166666666666667-0.055:B*12.92,W=Math.min(Math.max(0,W),1),Z=Math.min(Math.max(0,Z),1),B=Math.min(Math.max(0,B),1),[W*255,Z*255,B*255]};y.xyz.lab=function($){let J=$[0],F=$[1],w=$[2];J/=95.047,F/=100,w/=108.883,J=J>0.008856?J**0.3333333333333333:7.787*J+0.13793103448275862,F=F>0.008856?F**0.3333333333333333:7.787*F+0.13793103448275862,w=w>0.008856?w**0.3333333333333333:7.787*w+0.13793103448275862;let W=116*F-16,Z=500*(J-F),B=200*(F-w);return[W,Z,B]};y.lab.xyz=function($){let J=$[0],F=$[1],w=$[2],W,Z,B;Z=(J+16)/116,W=F/500+Z,B=Z-w/200;let Y=Z**3,K=W**3,G=B**3;return Z=Y>0.008856?Y:(Z-0.13793103448275862)/7.787,W=K>0.008856?K:(W-0.13793103448275862)/7.787,B=G>0.008856?G:(B-0.13793103448275862)/7.787,W*=95.047,Z*=100,B*=108.883,[W,Z,B]};y.lab.lch=function($){let J=$[0],F=$[1],w=$[2],W;if(W=Math.atan2(w,F)*360/2/Math.PI,W<0)W+=360;let B=Math.sqrt(F*F+w*w);return[J,B,W]};y.lch.lab=function($){let J=$[0],F=$[1],W=$[2]/360*2*Math.PI,Z=F*Math.cos(W),B=F*Math.sin(W);return[J,Z,B]};y.rgb.ansi16=function($,J=null){let[F,w,W]=$,Z=J===null?y.rgb.hsv($)[2]:J;if(Z=Math.round(Z/50),Z===0)return 30;let B=30+(Math.round(W/255)<<2|Math.round(w/255)<<1|Math.round(F/255));if(Z===2)B+=60;return B};y.hsv.ansi16=function($){return y.rgb.ansi16(y.hsv.rgb($),$[2])};y.rgb.ansi256=function($){let J=$[0],F=$[1],w=$[2];if(J===F&&F===w){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(F/255*5)+Math.round(w/255*5)};y.ansi16.rgb=function($){let J=$%10;if(J===0||J===7){if($>50)J+=3.5;return J=J/10.5*255,[J,J,J]}let F=(~~($>50)+1)*0.5,w=(J&1)*F*255,W=(J>>1&1)*F*255,Z=(J>>2&1)*F*255;return[w,W,Z]};y.ansi256.rgb=function($){if($>=232){let Z=($-232)*10+8;return[Z,Z,Z]}$-=16;let J,F=Math.floor($/36)/5*255,w=Math.floor((J=$%36)/6)/5*255,W=J%6/5*255;return[F,w,W]};y.rgb.hex=function($){let F=(((Math.round($[0])&255)<<16)+((Math.round($[1])&255)<<8)+(Math.round($[2])&255)).toString(16).toUpperCase();return"000000".substring(F.length)+F};y.hex.rgb=function($){let J=$.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!J)return[0,0,0];let F=J[0];if(J[0].length===3)F=F.split("").map((Y)=>{return Y+Y}).join("");let w=parseInt(F,16),W=w>>16&255,Z=w>>8&255,B=w&255;return[W,Z,B]};y.rgb.hcg=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255,W=Math.max(Math.max(J,F),w),Z=Math.min(Math.min(J,F),w),B=W-Z,Y,K;if(B<1)Y=Z/(1-B);else Y=0;if(B<=0)K=0;else if(W===J)K=(F-w)/B%6;else if(W===F)K=2+(w-J)/B;else K=4+(J-F)/B;return K/=6,K%=1,[K*360,B*100,Y*100]};y.hsl.hcg=function($){let J=$[1]/100,F=$[2]/100,w=F<0.5?2*J*F:2*J*(1-F),W=0;if(w<1)W=(F-0.5*w)/(1-w);return[$[0],w*100,W*100]};y.hsv.hcg=function($){let J=$[1]/100,F=$[2]/100,w=J*F,W=0;if(w<1)W=(F-w)/(1-w);return[$[0],w*100,W*100]};y.hcg.rgb=function($){let J=$[0]/360,F=$[1]/100,w=$[2]/100;if(F===0)return[w*255,w*255,w*255];let W=[0,0,0],Z=J%1*6,B=Z%1,Y=1-B,K=0;switch(Math.floor(Z)){case 0:W[0]=1,W[1]=B,W[2]=0;break;case 1:W[0]=Y,W[1]=1,W[2]=0;break;case 2:W[0]=0,W[1]=1,W[2]=B;break;case 3:W[0]=0,W[1]=Y,W[2]=1;break;case 4:W[0]=B,W[1]=0,W[2]=1;break;default:W[0]=1,W[1]=0,W[2]=Y}return K=(1-F)*w,[(F*W[0]+K)*255,(F*W[1]+K)*255,(F*W[2]+K)*255]};y.hcg.hsv=function($){let J=$[1]/100,F=$[2]/100,w=J+F*(1-J),W=0;if(w>0)W=J/w;return[$[0],W*100,w*100]};y.hcg.hsl=function($){let J=$[1]/100,w=$[2]/100*(1-J)+0.5*J,W=0;if(w>0&&w<0.5)W=J/(2*w);else if(w>=0.5&&w<1)W=J/(2*(1-w));return[$[0],W*100,w*100]};y.hcg.hwb=function($){let J=$[1]/100,F=$[2]/100,w=J+F*(1-J);return[$[0],(w-J)*100,(1-w)*100]};y.hwb.hcg=function($){let J=$[1]/100,w=1-$[2]/100,W=w-J,Z=0;if(W<1)Z=(w-W)/(1-W);return[$[0],W*100,Z*100]};y.apple.rgb=function($){return[$[0]/65535*255,$[1]/65535*255,$[2]/65535*255]};y.rgb.apple=function($){return[$[0]/255*65535,$[1]/255*65535,$[2]/255*65535]};y.gray.rgb=function($){return[$[0]/100*255,$[0]/100*255,$[0]/100*255]};y.gray.hsl=function($){return[0,0,$[0]]};y.gray.hsv=y.gray.hsl;y.gray.hwb=function($){return[0,100,$[0]]};y.gray.cmyk=function($){return[0,0,0,$[0]]};y.gray.lab=function($){return[$[0],0,0]};y.gray.hex=function($){let J=Math.round($[0]/100*255)&255,w=((J<<16)+(J<<8)+J).toString(16).toUpperCase();return"000000".substring(w.length)+w};y.rgb.gray=function($){return[($[0]+$[1]+$[2])/3/255*100]}});var i0=V((c9,t0)=>{var b2=W1();function o3(){let $={},J=Object.keys(b2);for(let F=J.length,w=0;w<F;w++)$[J[w]]={distance:-1,parent:null};return $}function $8($){let J=o3(),F=[$];J[$].distance=0;while(F.length){let w=F.pop(),W=Object.keys(b2[w]);for(let Z=W.length,B=0;B<Z;B++){let Y=W[B],K=J[Y];if(K.distance===-1)K.distance=J[w].distance+1,K.parent=w,F.unshift(Y)}}return J}function J8($,J){return function(F){return J($(F))}}function F8($,J){let F=[J[$].parent,$],w=b2[J[$].parent][$],W=J[$].parent;while(J[W].parent)F.unshift(J[W].parent),w=J8(b2[J[W].parent][W],w),W=J[W].parent;return w.conversion=F,w}t0.exports=function($){let J=$8($),F={},w=Object.keys(J);for(let W=w.length,Z=0;Z<W;Z++){let B=w[Z];if(J[B].parent===null)continue;F[B]=F8(B,J)}return F}});var $5=V((a9,o0)=>{var U1=W1(),w8=i0(),B2={},W8=Object.keys(U1);function U8($){let J=function(...F){let w=F[0];if(w===void 0||w===null)return w;if(w.length>1)F=w;return $(F)};if("conversion"in $)J.conversion=$.conversion;return J}function Z8($){let J=function(...F){let w=F[0];if(w===void 0||w===null)return w;if(w.length>1)F=w;let W=$(F);if(typeof W==="object")for(let Z=W.length,B=0;B<Z;B++)W[B]=Math.round(W[B]);return W};if("conversion"in $)J.conversion=$.conversion;return J}W8.forEach(($)=>{B2[$]={},Object.defineProperty(B2[$],"channels",{value:U1[$].channels}),Object.defineProperty(B2[$],"labels",{value:U1[$].labels});let J=w8($);Object.keys(J).forEach((w)=>{let W=J[w];B2[$][w]=Z8(W),B2[$][w].raw=U8(W)})});o0.exports=B2});var h2=V((r9,F5)=>{var Y2=p0(),O=$5(),J5=["keyword","gray","hex"],Z1={};for(let $ of Object.keys(O))Z1[[...O[$].labels].sort().join("")]=$;var v2={};function R($,J){if(!(this instanceof R))return new R($,J);if(J&&J in J5)J=null;if(J&&!(J in O))throw new Error("Unknown model: "+J);let F,w;if($==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if($ instanceof R)this.model=$.model,this.color=[...$.color],this.valpha=$.valpha;else if(typeof $==="string"){let W=Y2.get($);if(W===null)throw new Error("Unable to parse color from string: "+$);this.model=W.model,w=O[this.model].channels,this.color=W.value.slice(0,w),this.valpha=typeof W.value[w]==="number"?W.value[w]:1}else if($.length>0){this.model=J||"rgb",w=O[this.model].channels;let W=Array.prototype.slice.call($,0,w);this.color=B1(W,w),this.valpha=typeof $[w]==="number"?$[w]:1}else if(typeof $==="number")this.model="rgb",this.color=[$>>16&255,$>>8&255,$&255],this.valpha=1;else{this.valpha=1;let W=Object.keys($);if("alpha"in $)W.splice(W.indexOf("alpha"),1),this.valpha=typeof $.alpha==="number"?$.alpha:0;let Z=W.sort().join("");if(!(Z in Z1))throw new Error("Unable to parse color from object: "+JSON.stringify($));this.model=Z1[Z];let{labels:B}=O[this.model],Y=[];for(F=0;F<B.length;F++)Y.push($[B[F]]);this.color=B1(Y)}if(v2[this.model]){w=O[this.model].channels;for(F=0;F<w;F++){let W=v2[this.model][F];if(W)this.color[F]=W(this.color[F])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}R.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string($){let J=this.model in Y2.to?this:this.rgb();J=J.round(typeof $==="number"?$:1);let F=J.valpha===1?J.color:[...J.color,this.valpha];return Y2.to[J.model](F)},percentString($){let J=this.rgb().round(typeof $==="number"?$:1),F=J.valpha===1?J.color:[...J.color,this.valpha];return Y2.to.rgb.percent(F)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let $={},{channels:J}=O[this.model],{labels:F}=O[this.model];for(let w=0;w<J;w++)$[F[w]]=this.color[w];if(this.valpha!==1)$.alpha=this.valpha;return $},unitArray(){let $=this.rgb().color;if($[0]/=255,$[1]/=255,$[2]/=255,this.valpha!==1)$.push(this.valpha);return $},unitObject(){let $=this.rgb().object();if($.r/=255,$.g/=255,$.b/=255,this.valpha!==1)$.alpha=this.valpha;return $},round($){return $=Math.max($||0,0),new R([...this.color.map(Y8($)),this.valpha],this.model)},alpha($){if($!==void 0)return new R([...this.color,Math.max(0,Math.min(1,$))],this.model);return this.valpha},red:j("rgb",0,q(255)),green:j("rgb",1,q(255)),blue:j("rgb",2,q(255)),hue:j(["hsl","hsv","hsl","hwb","hcg"],0,($)=>($%360+360)%360),saturationl:j("hsl",1,q(100)),lightness:j("hsl",2,q(100)),saturationv:j("hsv",1,q(100)),value:j("hsv",2,q(100)),chroma:j("hcg",1,q(100)),gray:j("hcg",2,q(100)),white:j("hwb",1,q(100)),wblack:j("hwb",2,q(100)),cyan:j("cmyk",0,q(100)),magenta:j("cmyk",1,q(100)),yellow:j("cmyk",2,q(100)),black:j("cmyk",3,q(100)),x:j("xyz",0,q(95.047)),y:j("xyz",1,q(100)),z:j("xyz",2,q(108.833)),l:j("lab",0,q(100)),a:j("lab",1),b:j("lab",2),keyword($){if($!==void 0)return new R($);return O[this.model].keyword(this.color)},hex($){if($!==void 0)return new R($);return Y2.to.hex(this.rgb().round().color)},hexa($){if($!==void 0)return new R($);let J=this.rgb().round().color,F=Math.round(this.valpha*255).toString(16).toUpperCase();if(F.length===1)F="0"+F;return Y2.to.hex(J)+F},rgbNumber(){let $=this.rgb().color;return($[0]&255)<<16|($[1]&255)<<8|$[2]&255},luminosity(){let $=this.rgb().color,J=[];for(let[F,w]of $.entries()){let W=w/255;J[F]=W<=0.04045?W/12.92:((W+0.055)/1.055)**2.4}return 0.2126*J[0]+0.7152*J[1]+0.0722*J[2]},contrast($){let J=this.luminosity(),F=$.luminosity();if(J>F)return(J+0.05)/(F+0.05);return(F+0.05)/(J+0.05)},level($){let J=this.contrast($);if(J>=7)return"AAA";return J>=4.5?"AA":""},isDark(){let $=this.rgb().color;return($[0]*2126+$[1]*7152+$[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let $=this.rgb();for(let J=0;J<3;J++)$.color[J]=255-$.color[J];return $},lighten($){let J=this.hsl();return J.color[2]+=J.color[2]*$,J},darken($){let J=this.hsl();return J.color[2]-=J.color[2]*$,J},saturate($){let J=this.hsl();return J.color[1]+=J.color[1]*$,J},desaturate($){let J=this.hsl();return J.color[1]-=J.color[1]*$,J},whiten($){let J=this.hwb();return J.color[1]+=J.color[1]*$,J},blacken($){let J=this.hwb();return J.color[2]+=J.color[2]*$,J},grayscale(){let $=this.rgb().color,J=$[0]*0.3+$[1]*0.59+$[2]*0.11;return R.rgb(J,J,J)},fade($){return this.alpha(this.valpha-this.valpha*$)},opaquer($){return this.alpha(this.valpha+this.valpha*$)},rotate($){let J=this.hsl(),F=J.color[0];return F=(F+$)%360,F=F<0?360+F:F,J.color[0]=F,J},mix($,J){if(!$||!$.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof $);let F=$.rgb(),w=this.rgb(),W=J===void 0?0.5:J,Z=2*W-1,B=F.alpha()-w.alpha(),Y=((Z*B===-1?Z:(Z+B)/(1+Z*B))+1)/2,K=1-Y;return R.rgb(Y*F.red()+K*w.red(),Y*F.green()+K*w.green(),Y*F.blue()+K*w.blue(),F.alpha()*W+w.alpha()*(1-W))}};for(let $ of Object.keys(O)){if(J5.includes($))continue;let{channels:J}=O[$];R.prototype[$]=function(...F){if(this.model===$)return new R(this);if(F.length>0)return new R(F,$);return new R([...Q8(O[this.model][$].raw(this.color)),this.valpha],$)},R[$]=function(...F){let w=F[0];if(typeof w==="number")w=B1(F,J);return new R(w,$)}}function B8($,J){return Number($.toFixed(J))}function Y8($){return function(J){return B8(J,$)}}function j($,J,F){$=Array.isArray($)?$:[$];for(let w of $)(v2[w]||(v2[w]=[]))[J]=F;return $=$[0],function(w){let W;if(w!==void 0){if(F)w=F(w);return W=this[$](),W.color[J]=w,W}if(W=this[$]().color[J],F)W=F(W);return W}}function q($){return function(J){return Math.max(0,Math.min($,J))}}function Q8($){return Array.isArray($)?$:[$]}function B1($,J){for(let F=0;F<J;F++)if(typeof $[F]!=="number")$[F]=0;return $}F5.exports=R});var U5=V((e9,W5)=>{var K8=h2(),I=l(),s=X2(),I8={left:"low",center:"centre",centre:"centre",right:"high"};function w5($){let{raw:J,density:F,limitInputPixels:w,ignoreIcc:W,unlimited:Z,sequentialRead:B,failOn:Y,failOnError:K,animated:G,page:N,pages:D,subifd:E}=$;return[J,F,w,W,Z,B,Y,K,G,N,D,E].some(I.defined)?{raw:J,density:F,limitInputPixels:w,ignoreIcc:W,unlimited:Z,sequentialRead:B,failOn:Y,failOnError:K,animated:G,page:N,pages:D,subifd:E}:void 0}function G8($,J,F){let w={failOn:"warning",limitInputPixels:Math.pow(16383,2),ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(I.string($))w.file=$;else if(I.buffer($)){if($.length===0)throw Error("Input Buffer is empty");w.buffer=$}else if(I.arrayBuffer($)){if($.byteLength===0)throw Error("Input bit Array is empty");w.buffer=Buffer.from($,0,$.byteLength)}else if(I.typedArray($)){if($.length===0)throw Error("Input Bit Array is empty");w.buffer=Buffer.from($.buffer,$.byteOffset,$.byteLength)}else if(I.plainObject($)&&!I.defined(J)){if(J=$,w5(J))w.buffer=[]}else if(!I.defined($)&&!I.defined(J)&&I.object(F)&&F.allowStream)w.buffer=[];else throw new Error(`Unsupported input '${$}' of type ${typeof $}${I.defined(J)?` when also providing options of type ${typeof J}`:""}`);if(I.object(J)){if(I.defined(J.failOnError))if(I.bool(J.failOnError))w.failOn=J.failOnError?"warning":"none";else throw I.invalidParameterError("failOnError","boolean",J.failOnError);if(I.defined(J.failOn))if(I.string(J.failOn)&&I.inArray(J.failOn,["none","truncated","error","warning"]))w.failOn=J.failOn;else throw I.invalidParameterError("failOn","one of: none, truncated, error, warning",J.failOn);if(I.defined(J.density))if(I.inRange(J.density,1,1e5))w.density=J.density;else throw I.invalidParameterError("density","number between 1 and 100000",J.density);if(I.defined(J.ignoreIcc))if(I.bool(J.ignoreIcc))w.ignoreIcc=J.ignoreIcc;else throw I.invalidParameterError("ignoreIcc","boolean",J.ignoreIcc);if(I.defined(J.limitInputPixels))if(I.bool(J.limitInputPixels))w.limitInputPixels=J.limitInputPixels?Math.pow(16383,2):0;else if(I.integer(J.limitInputPixels)&&I.inRange(J.limitInputPixels,0,Number.MAX_SAFE_INTEGER))w.limitInputPixels=J.limitInputPixels;else throw I.invalidParameterError("limitInputPixels","positive integer",J.limitInputPixels);if(I.defined(J.unlimited))if(I.bool(J.unlimited))w.unlimited=J.unlimited;else throw I.invalidParameterError("unlimited","boolean",J.unlimited);if(I.defined(J.sequentialRead))if(I.bool(J.sequentialRead))w.sequentialRead=J.sequentialRead;else throw I.invalidParameterError("sequentialRead","boolean",J.sequentialRead);if(I.defined(J.raw))if(I.object(J.raw)&&I.integer(J.raw.width)&&J.raw.width>0&&I.integer(J.raw.height)&&J.raw.height>0&&I.integer(J.raw.channels)&&I.inRange(J.raw.channels,1,4))switch(w.rawWidth=J.raw.width,w.rawHeight=J.raw.height,w.rawChannels=J.raw.channels,w.rawPremultiplied=!!J.raw.premultiplied,$.constructor){case Uint8Array:case Uint8ClampedArray:w.rawDepth="uchar";break;case Int8Array:w.rawDepth="char";break;case Uint16Array:w.rawDepth="ushort";break;case Int16Array:w.rawDepth="short";break;case Uint32Array:w.rawDepth="uint";break;case Int32Array:w.rawDepth="int";break;case Float32Array:w.rawDepth="float";break;case Float64Array:w.rawDepth="double";break;default:w.rawDepth="uchar";break}else throw new Error("Expected width, height and channels for raw pixel input");if(I.defined(J.animated))if(I.bool(J.animated))w.pages=J.animated?-1:1;else throw I.invalidParameterError("animated","boolean",J.animated);if(I.defined(J.pages))if(I.integer(J.pages)&&I.inRange(J.pages,-1,1e5))w.pages=J.pages;else throw I.invalidParameterError("pages","integer between -1 and 100000",J.pages);if(I.defined(J.page))if(I.integer(J.page)&&I.inRange(J.page,0,1e5))w.page=J.page;else throw I.invalidParameterError("page","integer between 0 and 100000",J.page);if(I.defined(J.level))if(I.integer(J.level)&&I.inRange(J.level,0,256))w.level=J.level;else throw I.invalidParameterError("level","integer between 0 and 256",J.level);if(I.defined(J.subifd))if(I.integer(J.subifd)&&I.inRange(J.subifd,-1,1e5))w.subifd=J.subifd;else throw I.invalidParameterError("subifd","integer between -1 and 100000",J.subifd);if(I.defined(J.create))if(I.object(J.create)&&I.integer(J.create.width)&&J.create.width>0&&I.integer(J.create.height)&&J.create.height>0&&I.integer(J.create.channels)){if(w.createWidth=J.create.width,w.createHeight=J.create.height,w.createChannels=J.create.channels,I.defined(J.create.noise)){if(!I.object(J.create.noise))throw new Error("Expected noise to be an object");if(!I.inArray(J.create.noise.type,["gaussian"]))throw new Error("Only gaussian noise is supported at the moment");if(!I.inRange(J.create.channels,1,4))throw I.invalidParameterError("create.channels","number between 1 and 4",J.create.channels);if(w.createNoiseType=J.create.noise.type,I.number(J.create.noise.mean)&&I.inRange(J.create.noise.mean,0,1e4))w.createNoiseMean=J.create.noise.mean;else throw I.invalidParameterError("create.noise.mean","number between 0 and 10000",J.create.noise.mean);if(I.number(J.create.noise.sigma)&&I.inRange(J.create.noise.sigma,0,1e4))w.createNoiseSigma=J.create.noise.sigma;else throw I.invalidParameterError("create.noise.sigma","number between 0 and 10000",J.create.noise.sigma)}else if(I.defined(J.create.background)){if(!I.inRange(J.create.channels,3,4))throw I.invalidParameterError("create.channels","number between 3 and 4",J.create.channels);let W=K8(J.create.background);w.createBackground=[W.red(),W.green(),W.blue(),Math.round(W.alpha()*255)]}else throw new Error("Expected valid noise or background to create a new input image");delete w.buffer}else throw new Error("Expected valid width, height and channels to create a new input image");if(I.defined(J.text))if(I.object(J.text)&&I.string(J.text.text)){if(w.textValue=J.text.text,I.defined(J.text.height)&&I.defined(J.text.dpi))throw new Error("Expected only one of dpi or height");if(I.defined(J.text.font))if(I.string(J.text.font))w.textFont=J.text.font;else throw I.invalidParameterError("text.font","string",J.text.font);if(I.defined(J.text.fontfile))if(I.string(J.text.fontfile))w.textFontfile=J.text.fontfile;else throw I.invalidParameterError("text.fontfile","string",J.text.fontfile);if(I.defined(J.text.width))if(I.integer(J.text.width)&&J.text.width>0)w.textWidth=J.text.width;else throw I.invalidParameterError("text.width","positive integer",J.text.width);if(I.defined(J.text.height))if(I.integer(J.text.height)&&J.text.height>0)w.textHeight=J.text.height;else throw I.invalidParameterError("text.height","positive integer",J.text.height);if(I.defined(J.text.align))if(I.string(J.text.align)&&I.string(this.constructor.align[J.text.align]))w.textAlign=this.constructor.align[J.text.align];else throw I.invalidParameterError("text.align","valid alignment",J.text.align);if(I.defined(J.text.justify))if(I.bool(J.text.justify))w.textJustify=J.text.justify;else throw I.invalidParameterError("text.justify","boolean",J.text.justify);if(I.defined(J.text.dpi))if(I.integer(J.text.dpi)&&I.inRange(J.text.dpi,1,1e6))w.textDpi=J.text.dpi;else throw I.invalidParameterError("text.dpi","integer between 1 and 1000000",J.text.dpi);if(I.defined(J.text.rgba))if(I.bool(J.text.rgba))w.textRgba=J.text.rgba;else throw I.invalidParameterError("text.rgba","bool",J.text.rgba);if(I.defined(J.text.spacing))if(I.integer(J.text.spacing)&&I.inRange(J.text.spacing,-1e6,1e6))w.textSpacing=J.text.spacing;else throw I.invalidParameterError("text.spacing","integer between -1000000 and 1000000",J.text.spacing);if(I.defined(J.text.wrap))if(I.string(J.text.wrap)&&I.inArray(J.text.wrap,["word","char","word-char","none"]))w.textWrap=J.text.wrap;else throw I.invalidParameterError("text.wrap","one of: word, char, word-char, none",J.text.wrap);delete w.buffer}else throw new Error("Expected a valid string to create an image with text.")}else if(I.defined(J))throw new Error("Invalid input options "+J);return w}function H8($,J,F){if(Array.isArray(this.options.input.buffer))if(I.buffer($)){if(this.options.input.buffer.length===0)this.on("finish",()=>{this.streamInFinished=!0});this.options.input.buffer.push($),F()}else F(new Error("Non-Buffer data on Writable Stream"));else F(new Error("Unexpected data on Writable Stream"))}function P8(){if(this._isStreamInput())this.options.input.buffer=Buffer.concat(this.options.input.buffer)}function y8(){return Array.isArray(this.options.input.buffer)}function L8($){let J=Error();if(I.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),s.metadata(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)})});else s.metadata(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)});return this}else if(this._isStreamInput())return new Promise((F,w)=>{let W=()=>{this._flattenBufferIn(),s.metadata(this.options,(Z,B)=>{if(Z)w(I.nativeError(Z,J));else F(B)})};if(this.writableFinished)W();else this.once("finish",W)});else return new Promise((F,w)=>{s.metadata(this.options,(W,Z)=>{if(W)w(I.nativeError(W,J));else F(Z)})})}function N8($){let J=Error();if(I.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),s.stats(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)})});else s.stats(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)});return this}else if(this._isStreamInput())return new Promise((F,w)=>{this.on("finish",function(){this._flattenBufferIn(),s.stats(this.options,(W,Z)=>{if(W)w(I.nativeError(W,J));else F(Z)})})});else return new Promise((F,w)=>{s.stats(this.options,(W,Z)=>{if(W)w(I.nativeError(W,J));else F(Z)})})}W5.exports=function($){Object.assign($.prototype,{_inputOptionsFromObject:w5,_createInputDescriptor:G8,_write:H8,_flattenBufferIn:P8,_isStreamInput:y8,metadata:L8,stats:N8}),$.align=I8}});var I5=V((p9,K5)=>{var L=l(),B5={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},Y5={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},Z5={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},Q5={entropy:16,attention:17},Y1={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3"},X8={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},V8={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function Q1($){return $.angle%360!==0||$.useExifOrientation===!0||$.rotationAngle!==0}function g2($){return $.width!==-1||$.height!==-1}function D8($,J,F){if(g2(this.options))this.options.debuglog("ignoring previous resize options");if(this.options.widthPost!==-1)this.options.debuglog("operation order will be: extract, resize, extract");if(L.defined($))if(L.object($)&&!L.defined(F))F=$;else if(L.integer($)&&$>0)this.options.width=$;else throw L.invalidParameterError("width","positive integer",$);else this.options.width=-1;if(L.defined(J))if(L.integer(J)&&J>0)this.options.height=J;else throw L.invalidParameterError("height","positive integer",J);else this.options.height=-1;if(L.object(F)){if(L.defined(F.width))if(L.integer(F.width)&&F.width>0)this.options.width=F.width;else throw L.invalidParameterError("width","positive integer",F.width);if(L.defined(F.height))if(L.integer(F.height)&&F.height>0)this.options.height=F.height;else throw L.invalidParameterError("height","positive integer",F.height);if(L.defined(F.fit)){let w=V8[F.fit];if(L.string(w))this.options.canvas=w;else throw L.invalidParameterError("fit","valid fit",F.fit)}if(L.defined(F.position)){let w=L.integer(F.position)?F.position:Q5[F.position]||Y5[F.position]||B5[F.position];if(L.integer(w)&&(L.inRange(w,0,8)||L.inRange(w,16,17)))this.options.position=w;else throw L.invalidParameterError("position","valid position/gravity/strategy",F.position)}if(this._setBackgroundColourOption("resizeBackground",F.background),L.defined(F.kernel))if(L.string(Y1[F.kernel]))this.options.kernel=Y1[F.kernel];else throw L.invalidParameterError("kernel","valid kernel name",F.kernel);if(L.defined(F.withoutEnlargement))this._setBooleanOption("withoutEnlargement",F.withoutEnlargement);if(L.defined(F.withoutReduction))this._setBooleanOption("withoutReduction",F.withoutReduction);if(L.defined(F.fastShrinkOnLoad))this._setBooleanOption("fastShrinkOnLoad",F.fastShrinkOnLoad)}if(Q1(this.options)&&g2(this.options))this.options.rotateBeforePreExtract=!0;return this}function T8($){if(L.integer($)&&$>0)this.options.extendTop=$,this.options.extendBottom=$,this.options.extendLeft=$,this.options.extendRight=$;else if(L.object($)){if(L.defined($.top))if(L.integer($.top)&&$.top>=0)this.options.extendTop=$.top;else throw L.invalidParameterError("top","positive integer",$.top);if(L.defined($.bottom))if(L.integer($.bottom)&&$.bottom>=0)this.options.extendBottom=$.bottom;else throw L.invalidParameterError("bottom","positive integer",$.bottom);if(L.defined($.left))if(L.integer($.left)&&$.left>=0)this.options.extendLeft=$.left;else throw L.invalidParameterError("left","positive integer",$.left);if(L.defined($.right))if(L.integer($.right)&&$.right>=0)this.options.extendRight=$.right;else throw L.invalidParameterError("right","positive integer",$.right);if(this._setBackgroundColourOption("extendBackground",$.background),L.defined($.extendWith))if(L.string(Z5[$.extendWith]))this.options.extendWith=Z5[$.extendWith];else throw L.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",$.extendWith)}else throw L.invalidParameterError("extend","integer or object",$);return this}function _8($){let J=g2(this.options)||this.options.widthPre!==-1?"Post":"Pre";if(this.options[`width${J}`]!==-1)this.options.debuglog("ignoring previous extract options");if(["left","top","width","height"].forEach(function(F){let w=$[F];if(L.integer(w)&&w>=0)this.options[F+(F==="left"||F==="top"?"Offset":"")+J]=w;else throw L.invalidParameterError(F,"integer",w)},this),Q1(this.options)&&!g2(this.options)){if(this.options.widthPre===-1||this.options.widthPost===-1)this.options.rotateBeforePreExtract=!0}return this}function z8($){if(this.options.trimThreshold=10,L.defined($))if(L.object($)){if(L.defined($.background))this._setBackgroundColourOption("trimBackground",$.background);if(L.defined($.threshold))if(L.number($.threshold)&&$.threshold>=0)this.options.trimThreshold=$.threshold;else throw L.invalidParameterError("threshold","positive number",$.threshold);if(L.defined($.lineArt))this._setBooleanOption("trimLineArt",$.lineArt)}else throw L.invalidParameterError("trim","object",$);if(Q1(this.options))this.options.rotateBeforePreExtract=!0;return this}K5.exports=function($){Object.assign($.prototype,{resize:D8,extend:T8,extract:_8,trim:z8}),$.gravity=B5,$.strategy=Q5,$.kernel=Y1,$.fit=X8,$.position=Y5}});var H5=V((n9,G5)=>{var T=l(),K1={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 j8($){if(!Array.isArray($))throw T.invalidParameterError("images to composite","array",$);return this.options.composite=$.map((J)=>{if(!T.object(J))throw T.invalidParameterError("image to composite","object",J);let F=this._inputOptionsFromObject(J),w={input:this._createInputDescriptor(J.input,F,{allowStream:!1}),blend:"over",tile:!1,left:0,top:0,hasOffset:!1,gravity:0,premultiplied:!1};if(T.defined(J.blend))if(T.string(K1[J.blend]))w.blend=K1[J.blend];else throw T.invalidParameterError("blend","valid blend name",J.blend);if(T.defined(J.tile))if(T.bool(J.tile))w.tile=J.tile;else throw T.invalidParameterError("tile","boolean",J.tile);if(T.defined(J.left))if(T.integer(J.left))w.left=J.left;else throw T.invalidParameterError("left","integer",J.left);if(T.defined(J.top))if(T.integer(J.top))w.top=J.top;else throw T.invalidParameterError("top","integer",J.top);if(T.defined(J.top)!==T.defined(J.left))throw new Error("Expected both left and top to be set");else w.hasOffset=T.integer(J.top)&&T.integer(J.left);if(T.defined(J.gravity))if(T.integer(J.gravity)&&T.inRange(J.gravity,0,8))w.gravity=J.gravity;else if(T.string(J.gravity)&&T.integer(this.constructor.gravity[J.gravity]))w.gravity=this.constructor.gravity[J.gravity];else throw T.invalidParameterError("gravity","valid gravity",J.gravity);if(T.defined(J.premultiplied))if(T.bool(J.premultiplied))w.premultiplied=J.premultiplied;else throw T.invalidParameterError("premultiplied","boolean",J.premultiplied);return w}),this}G5.exports=function($){$.prototype.composite=j8,$.blend=K1}});var L5=V((s9,y5)=>{var q8=h2(),Q=l(),P5={integer:"integer",float:"float",approximate:"approximate"};function R8($,J){if(this.options.useExifOrientation||this.options.angle||this.options.rotationAngle)this.options.debuglog("ignoring previous rotate options");if(!Q.defined($))this.options.useExifOrientation=!0;else if(Q.integer($)&&!($%90))this.options.angle=$;else if(Q.number($)){if(this.options.rotationAngle=$,Q.object(J)&&J.background){let F=q8(J.background);this.options.rotationBackground=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}}else throw Q.invalidParameterError("angle","numeric",$);return this}function E8($){return this.options.flip=Q.bool($)?$:!0,this}function A8($){return this.options.flop=Q.bool($)?$:!0,this}function S8($,J){let F=[].concat(...$);if(F.length===4&&F.every(Q.number))this.options.affineMatrix=F;else throw Q.invalidParameterError("matrix","1x4 or 2x2 array",$);if(Q.defined(J))if(Q.object(J)){if(this._setBackgroundColourOption("affineBackground",J.background),Q.defined(J.idx))if(Q.number(J.idx))this.options.affineIdx=J.idx;else throw Q.invalidParameterError("options.idx","number",J.idx);if(Q.defined(J.idy))if(Q.number(J.idy))this.options.affineIdy=J.idy;else throw Q.invalidParameterError("options.idy","number",J.idy);if(Q.defined(J.odx))if(Q.number(J.odx))this.options.affineOdx=J.odx;else throw Q.invalidParameterError("options.odx","number",J.odx);if(Q.defined(J.ody))if(Q.number(J.ody))this.options.affineOdy=J.ody;else throw Q.invalidParameterError("options.ody","number",J.ody);if(Q.defined(J.interpolator))if(Q.inArray(J.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=J.interpolator;else throw Q.invalidParameterError("options.interpolator","valid interpolator name",J.interpolator)}else throw Q.invalidParameterError("options","object",J);return this}function C8($,J,F){if(!Q.defined($))this.options.sharpenSigma=-1;else if(Q.bool($))this.options.sharpenSigma=$?-1:0;else if(Q.number($)&&Q.inRange($,0.01,1e4)){if(this.options.sharpenSigma=$,Q.defined(J))if(Q.number(J)&&Q.inRange(J,0,1e4))this.options.sharpenM1=J;else throw Q.invalidParameterError("flat","number between 0 and 10000",J);if(Q.defined(F))if(Q.number(F)&&Q.inRange(F,0,1e4))this.options.sharpenM2=F;else throw Q.invalidParameterError("jagged","number between 0 and 10000",F)}else if(Q.plainObject($)){if(Q.number($.sigma)&&Q.inRange($.sigma,0.000001,10))this.options.sharpenSigma=$.sigma;else throw Q.invalidParameterError("options.sigma","number between 0.000001 and 10",$.sigma);if(Q.defined($.m1))if(Q.number($.m1)&&Q.inRange($.m1,0,1e6))this.options.sharpenM1=$.m1;else throw Q.invalidParameterError("options.m1","number between 0 and 1000000",$.m1);if(Q.defined($.m2))if(Q.number($.m2)&&Q.inRange($.m2,0,1e6))this.options.sharpenM2=$.m2;else throw Q.invalidParameterError("options.m2","number between 0 and 1000000",$.m2);if(Q.defined($.x1))if(Q.number($.x1)&&Q.inRange($.x1,0,1e6))this.options.sharpenX1=$.x1;else throw Q.invalidParameterError("options.x1","number between 0 and 1000000",$.x1);if(Q.defined($.y2))if(Q.number($.y2)&&Q.inRange($.y2,0,1e6))this.options.sharpenY2=$.y2;else throw Q.invalidParameterError("options.y2","number between 0 and 1000000",$.y2);if(Q.defined($.y3))if(Q.number($.y3)&&Q.inRange($.y3,0,1e6))this.options.sharpenY3=$.y3;else throw Q.invalidParameterError("options.y3","number between 0 and 1000000",$.y3)}else throw Q.invalidParameterError("sigma","number between 0.01 and 10000",$);return this}function M8($){if(!Q.defined($))this.options.medianSize=3;else if(Q.integer($)&&Q.inRange($,1,1000))this.options.medianSize=$;else throw Q.invalidParameterError("size","integer between 1 and 1000",$);return this}function f8($){let J;if(Q.number($))J=$;else if(Q.plainObject($)){if(!Q.number($.sigma))throw Q.invalidParameterError("options.sigma","number between 0.3 and 1000",J);if(J=$.sigma,"precision"in $)if(Q.string(P5[$.precision]))this.options.precision=P5[$.precision];else throw Q.invalidParameterError("precision","one of: integer, float, approximate",$.precision);if("minAmplitude"in $)if(Q.number($.minAmplitude)&&Q.inRange($.minAmplitude,0.001,1))this.options.minAmpl=$.minAmplitude;else throw Q.invalidParameterError("minAmplitude","number between 0.001 and 1",$.minAmplitude)}if(!Q.defined($))this.options.blurSigma=-1;else if(Q.bool($))this.options.blurSigma=$?-1:0;else if(Q.number(J)&&Q.inRange(J,0.3,1000))this.options.blurSigma=J;else throw Q.invalidParameterError("sigma","number between 0.3 and 1000",J);return this}function k8($){if(this.options.flatten=Q.bool($)?$:!0,Q.object($))this._setBackgroundColourOption("flattenBackground",$.background);return this}function x8(){return this.options.unflatten=!0,this}function d8($,J){if(!Q.defined($))this.options.gamma=2.2;else if(Q.number($)&&Q.inRange($,1,3))this.options.gamma=$;else throw Q.invalidParameterError("gamma","number between 1.0 and 3.0",$);if(!Q.defined(J))this.options.gammaOut=this.options.gamma;else if(Q.number(J)&&Q.inRange(J,1,3))this.options.gammaOut=J;else throw Q.invalidParameterError("gammaOut","number between 1.0 and 3.0",J);return this}function O8($){if(this.options.negate=Q.bool($)?$:!0,Q.plainObject($)&&"alpha"in $)if(!Q.bool($.alpha))throw Q.invalidParameterError("alpha","should be boolean value",$.alpha);else this.options.negateAlpha=$.alpha;return this}function b8($){if(Q.plainObject($)){if(Q.defined($.lower))if(Q.number($.lower)&&Q.inRange($.lower,0,99))this.options.normaliseLower=$.lower;else throw Q.invalidParameterError("lower","number between 0 and 99",$.lower);if(Q.defined($.upper))if(Q.number($.upper)&&Q.inRange($.upper,1,100))this.options.normaliseUpper=$.upper;else throw Q.invalidParameterError("upper","number between 1 and 100",$.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw Q.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function v8($){return this.normalise($)}function h8($){if(Q.plainObject($)){if(Q.integer($.width)&&$.width>0)this.options.claheWidth=$.width;else throw Q.invalidParameterError("width","integer greater than zero",$.width);if(Q.integer($.height)&&$.height>0)this.options.claheHeight=$.height;else throw Q.invalidParameterError("height","integer greater than zero",$.height);if(Q.defined($.maxSlope))if(Q.integer($.maxSlope)&&Q.inRange($.maxSlope,0,100))this.options.claheMaxSlope=$.maxSlope;else throw Q.invalidParameterError("maxSlope","integer between 0 and 100",$.maxSlope)}else throw Q.invalidParameterError("options","plain object",$);return this}function g8($){if(!Q.object($)||!Array.isArray($.kernel)||!Q.integer($.width)||!Q.integer($.height)||!Q.inRange($.width,3,1001)||!Q.inRange($.height,3,1001)||$.height*$.width!==$.kernel.length)throw new Error("Invalid convolution kernel");if(!Q.integer($.scale))$.scale=$.kernel.reduce(function(J,F){return J+F},0);if($.scale<1)$.scale=1;if(!Q.integer($.offset))$.offset=0;return this.options.convKernel=$,this}function m8($,J){if(!Q.defined($))this.options.threshold=128;else if(Q.bool($))this.options.threshold=$?128:0;else if(Q.integer($)&&Q.inRange($,0,255))this.options.threshold=$;else throw Q.invalidParameterError("threshold","integer between 0 and 255",$);if(!Q.object(J)||J.greyscale===!0||J.grayscale===!0)this.options.thresholdGrayscale=!0;else this.options.thresholdGrayscale=!1;return this}function l8($,J,F){if(this.options.boolean=this._createInputDescriptor($,F),Q.string(J)&&Q.inArray(J,["and","or","eor"]))this.options.booleanOp=J;else throw Q.invalidParameterError("operator","one of: and, or, eor",J);return this}function u8($,J){if(!Q.defined($)&&Q.number(J))$=1;else if(Q.number($)&&!Q.defined(J))J=0;if(!Q.defined($))this.options.linearA=[];else if(Q.number($))this.options.linearA=[$];else if(Array.isArray($)&&$.length&&$.every(Q.number))this.options.linearA=$;else throw Q.invalidParameterError("a","number or array of numbers",$);if(!Q.defined(J))this.options.linearB=[];else if(Q.number(J))this.options.linearB=[J];else if(Array.isArray(J)&&J.length&&J.every(Q.number))this.options.linearB=J;else throw Q.invalidParameterError("b","number or array of numbers",J);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 c8($){if(!Array.isArray($))throw Q.invalidParameterError("inputMatrix","array",$);if($.length!==3&&$.length!==4)throw Q.invalidParameterError("inputMatrix","3x3 or 4x4 array",$.length);let J=$.flat().map(Number);if(J.length!==9&&J.length!==16)throw Q.invalidParameterError("inputMatrix","cardinality of 9 or 16",J.length);return this.options.recombMatrix=J,this}function a8($){if(!Q.plainObject($))throw Q.invalidParameterError("options","plain object",$);if("brightness"in $)if(Q.number($.brightness)&&$.brightness>=0)this.options.brightness=$.brightness;else throw Q.invalidParameterError("brightness","number above zero",$.brightness);if("saturation"in $)if(Q.number($.saturation)&&$.saturation>=0)this.options.saturation=$.saturation;else throw Q.invalidParameterError("saturation","number above zero",$.saturation);if("hue"in $)if(Q.integer($.hue))this.options.hue=$.hue%360;else throw Q.invalidParameterError("hue","number",$.hue);if("lightness"in $)if(Q.number($.lightness))this.options.lightness=$.lightness;else throw Q.invalidParameterError("lightness","number",$.lightness);return this}y5.exports=function($){Object.assign($.prototype,{rotate:R8,flip:E8,flop:A8,affine:S8,sharpen:C8,median:M8,blur:f8,flatten:k8,unflatten:x8,gamma:d8,negate:O8,normalise:b8,normalize:v8,clahe:h8,convolve:g8,threshold:m8,boolean:l8,linear:u8,recomb:c8,modulate:a8})}});var V5=V((t9,X5)=>{var r8=h2(),a=l(),N5={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function e8($){return this._setBackgroundColourOption("tint",$),this}function p8($){return this.options.greyscale=a.bool($)?$:!0,this}function n8($){return this.greyscale($)}function s8($){if(!a.string($))throw a.invalidParameterError("colourspace","string",$);return this.options.colourspacePipeline=$,this}function t8($){return this.pipelineColourspace($)}function i8($){if(!a.string($))throw a.invalidParameterError("colourspace","string",$);return this.options.colourspace=$,this}function o8($){return this.toColourspace($)}function $6($,J){if(a.defined(J))if(a.object(J)||a.string(J)){let F=r8(J);this.options[$]=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}else throw a.invalidParameterError("background","object or string",J)}X5.exports=function($){Object.assign($.prototype,{tint:e8,greyscale:p8,grayscale:n8,pipelineColourspace:s8,pipelineColorspace:t8,toColourspace:i8,toColorspace:o8,_setBackgroundColourOption:$6}),$.colourspace=N5,$.colorspace=N5}});var T5=V((i9,D5)=>{var u=l(),J6={and:"and",or:"or",eor:"eor"};function F6(){return this.options.removeAlpha=!0,this}function w6($){if(u.defined($))if(u.number($)&&u.inRange($,0,1))this.options.ensureAlpha=$;else throw u.invalidParameterError("alpha","number between 0 and 1",$);else this.options.ensureAlpha=1;return this}function W6($){let J={red:0,green:1,blue:2,alpha:3};if(Object.keys(J).includes($))$=J[$];if(u.integer($)&&u.inRange($,0,4))this.options.extractChannel=$;else throw u.invalidParameterError("channel","integer or one of: red, green, blue, alpha",$);return this}function U6($,J){if(Array.isArray($))$.forEach(function(F){this.options.joinChannelIn.push(this._createInputDescriptor(F,J))},this);else this.options.joinChannelIn.push(this._createInputDescriptor($,J));return this}function Z6($){if(u.string($)&&u.inArray($,["and","or","eor"]))this.options.bandBoolOp=$;else throw u.invalidParameterError("boolOp","one of: and, or, eor",$);return this}D5.exports=function($){Object.assign($.prototype,{removeAlpha:F6,ensureAlpha:w6,extractChannel:W6,joinChannel:U6,bandbool:Z6}),$.bool=J6}});var E5=V((o9,R5)=>{var I1=import.meta.require("path"),U=l(),Q2=X2(),_5=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"]]),B6=/\.(jp[2x]|j2[kc])$/i,z5=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),j5=($)=>1<<31-Math.clz32(Math.ceil(Math.log2($)));function Y6($,J){let F;if(!U.string($))F=new Error("Missing output file path");else if(U.string(this.options.input.file)&&I1.resolve(this.options.input.file)===I1.resolve($))F=new Error("Cannot use same file for input and output");else if(B6.test(I1.extname($))&&!this.constructor.format.jp2k.output.file)F=z5();if(F)if(U.fn(J))J(F);else return Promise.reject(F);else{this.options.fileOut=$;let w=Error();return this._pipeline(J,w)}return this}function Q6($,J){if(U.object($))this._setBooleanOption("resolveWithObject",$.resolveWithObject);else if(this.options.resolveWithObject)this.options.resolveWithObject=!1;this.options.fileOut="";let F=Error();return this._pipeline(U.fn($)?$:J,F)}function K6(){return this.options.keepMetadata|=1,this}function I6($){if(U.object($))for(let[J,F]of Object.entries($))if(U.object(F))for(let[w,W]of Object.entries(F))if(U.string(W))this.options.withExif[`exif-${J.toLowerCase()}-${w}`]=W;else throw U.invalidParameterError(`${J}.${w}`,"string",W);else throw U.invalidParameterError(J,"object",F);else throw U.invalidParameterError("exif","object",$);return this.options.withExifMerge=!1,this.keepExif()}function G6($){return this.withExif($),this.options.withExifMerge=!0,this}function H6(){return this.options.keepMetadata|=8,this}function P6($,J){if(U.string($))this.options.withIccProfile=$;else throw U.invalidParameterError("icc","string",$);if(this.keepIccProfile(),U.object(J)){if(U.defined(J.attach))if(U.bool(J.attach)){if(!J.attach)this.options.keepMetadata&=-9}else throw U.invalidParameterError("attach","boolean",J.attach)}return this}function y6(){return this.options.keepMetadata=31,this}function L6($){if(this.keepMetadata(),this.withIccProfile("srgb"),U.object($)){if(U.defined($.orientation))if(U.integer($.orientation)&&U.inRange($.orientation,1,8))this.options.withMetadataOrientation=$.orientation;else throw U.invalidParameterError("orientation","integer between 1 and 8",$.orientation);if(U.defined($.density))if(U.number($.density)&&$.density>0)this.options.withMetadataDensity=$.density;else throw U.invalidParameterError("density","positive number",$.density);if(U.defined($.icc))this.withIccProfile($.icc);if(U.defined($.exif))this.withExifMerge($.exif)}return this}function N6($,J){let F=_5.get((U.object($)&&U.string($.id)?$.id:$).toLowerCase());if(!F)throw U.invalidParameterError("format",`one of: ${[..._5.keys()].join(", ")}`,$);return this[F](J)}function X6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.jpegQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.progressive))this._setBooleanOption("jpegProgressive",$.progressive);if(U.defined($.chromaSubsampling))if(U.string($.chromaSubsampling)&&U.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=$.chromaSubsampling;else throw U.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);let J=U.bool($.optimizeCoding)?$.optimizeCoding:$.optimiseCoding;if(U.defined(J))this._setBooleanOption("jpegOptimiseCoding",J);if(U.defined($.mozjpeg))if(U.bool($.mozjpeg)){if($.mozjpeg)this.options.jpegTrellisQuantisation=!0,this.options.jpegOvershootDeringing=!0,this.options.jpegOptimiseScans=!0,this.options.jpegProgressive=!0,this.options.jpegQuantisationTable=3}else throw U.invalidParameterError("mozjpeg","boolean",$.mozjpeg);let F=U.bool($.trellisQuantization)?$.trellisQuantization:$.trellisQuantisation;if(U.defined(F))this._setBooleanOption("jpegTrellisQuantisation",F);if(U.defined($.overshootDeringing))this._setBooleanOption("jpegOvershootDeringing",$.overshootDeringing);let w=U.bool($.optimizeScans)?$.optimizeScans:$.optimiseScans;if(U.defined(w)){if(this._setBooleanOption("jpegOptimiseScans",w),w)this.options.jpegProgressive=!0}let W=U.number($.quantizationTable)?$.quantizationTable:$.quantisationTable;if(U.defined(W))if(U.integer(W)&&U.inRange(W,0,8))this.options.jpegQuantisationTable=W;else throw U.invalidParameterError("quantisationTable","integer between 0 and 8",W)}return this._updateFormatOut("jpeg",$)}function V6($){if(U.object($)){if(U.defined($.progressive))this._setBooleanOption("pngProgressive",$.progressive);if(U.defined($.compressionLevel))if(U.integer($.compressionLevel)&&U.inRange($.compressionLevel,0,9))this.options.pngCompressionLevel=$.compressionLevel;else throw U.invalidParameterError("compressionLevel","integer between 0 and 9",$.compressionLevel);if(U.defined($.adaptiveFiltering))this._setBooleanOption("pngAdaptiveFiltering",$.adaptiveFiltering);let J=$.colours||$.colors;if(U.defined(J))if(U.integer(J)&&U.inRange(J,2,256))this.options.pngBitdepth=j5(J);else throw U.invalidParameterError("colours","integer between 2 and 256",J);if(U.defined($.palette))this._setBooleanOption("pngPalette",$.palette);else if([$.quality,$.effort,$.colours,$.colors,$.dither].some(U.defined))this._setBooleanOption("pngPalette",!0);if(this.options.pngPalette){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,0,100))this.options.pngQuality=$.quality;else throw U.invalidParameterError("quality","integer between 0 and 100",$.quality);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,1,10))this.options.pngEffort=$.effort;else throw U.invalidParameterError("effort","integer between 1 and 10",$.effort);if(U.defined($.dither))if(U.number($.dither)&&U.inRange($.dither,0,1))this.options.pngDither=$.dither;else throw U.invalidParameterError("dither","number between 0.0 and 1.0",$.dither)}}return this._updateFormatOut("png",$)}function D6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.webpQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.alphaQuality))if(U.integer($.alphaQuality)&&U.inRange($.alphaQuality,0,100))this.options.webpAlphaQuality=$.alphaQuality;else throw U.invalidParameterError("alphaQuality","integer between 0 and 100",$.alphaQuality);if(U.defined($.lossless))this._setBooleanOption("webpLossless",$.lossless);if(U.defined($.nearLossless))this._setBooleanOption("webpNearLossless",$.nearLossless);if(U.defined($.smartSubsample))this._setBooleanOption("webpSmartSubsample",$.smartSubsample);if(U.defined($.preset))if(U.string($.preset)&&U.inArray($.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=$.preset;else throw U.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",$.preset);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,0,6))this.options.webpEffort=$.effort;else throw U.invalidParameterError("effort","integer between 0 and 6",$.effort);if(U.defined($.minSize))this._setBooleanOption("webpMinSize",$.minSize);if(U.defined($.mixed))this._setBooleanOption("webpMixed",$.mixed)}return q5($,this.options),this._updateFormatOut("webp",$)}function T6($){if(U.object($)){if(U.defined($.reuse))this._setBooleanOption("gifReuse",$.reuse);if(U.defined($.progressive))this._setBooleanOption("gifProgressive",$.progressive);let J=$.colours||$.colors;if(U.defined(J))if(U.integer(J)&&U.inRange(J,2,256))this.options.gifBitdepth=j5(J);else throw U.invalidParameterError("colours","integer between 2 and 256",J);if(U.defined($.effort))if(U.number($.effort)&&U.inRange($.effort,1,10))this.options.gifEffort=$.effort;else throw U.invalidParameterError("effort","integer between 1 and 10",$.effort);if(U.defined($.dither))if(U.number($.dither)&&U.inRange($.dither,0,1))this.options.gifDither=$.dither;else throw U.invalidParameterError("dither","number between 0.0 and 1.0",$.dither);if(U.defined($.interFrameMaxError))if(U.number($.interFrameMaxError)&&U.inRange($.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=$.interFrameMaxError;else throw U.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",$.interFrameMaxError);if(U.defined($.interPaletteMaxError))if(U.number($.interPaletteMaxError)&&U.inRange($.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=$.interPaletteMaxError;else throw U.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",$.interPaletteMaxError)}return q5($,this.options),this._updateFormatOut("gif",$)}function _6($){if(!this.constructor.format.jp2k.output.buffer)throw z5();if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.jp2Quality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.lossless))if(U.bool($.lossless))this.options.jp2Lossless=$.lossless;else throw U.invalidParameterError("lossless","boolean",$.lossless);if(U.defined($.tileWidth))if(U.integer($.tileWidth)&&U.inRange($.tileWidth,1,32768))this.options.jp2TileWidth=$.tileWidth;else throw U.invalidParameterError("tileWidth","integer between 1 and 32768",$.tileWidth);if(U.defined($.tileHeight))if(U.integer($.tileHeight)&&U.inRange($.tileHeight,1,32768))this.options.jp2TileHeight=$.tileHeight;else throw U.invalidParameterError("tileHeight","integer between 1 and 32768",$.tileHeight);if(U.defined($.chromaSubsampling))if(U.string($.chromaSubsampling)&&U.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=$.chromaSubsampling;else throw U.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling)}return this._updateFormatOut("jp2",$)}function q5($,J){if(U.object($)&&U.defined($.loop))if(U.integer($.loop)&&U.inRange($.loop,0,65535))J.loop=$.loop;else throw U.invalidParameterError("loop","integer between 0 and 65535",$.loop);if(U.object($)&&U.defined($.delay))if(U.integer($.delay)&&U.inRange($.delay,0,65535))J.delay=[$.delay];else if(Array.isArray($.delay)&&$.delay.every(U.integer)&&$.delay.every((F)=>U.inRange(F,0,65535)))J.delay=$.delay;else throw U.invalidParameterError("delay","integer or an array of integers between 0 and 65535",$.delay)}function z6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.tiffQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.bitdepth))if(U.integer($.bitdepth)&&U.inArray($.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=$.bitdepth;else throw U.invalidParameterError("bitdepth","1, 2, 4 or 8",$.bitdepth);if(U.defined($.tile))this._setBooleanOption("tiffTile",$.tile);if(U.defined($.tileWidth))if(U.integer($.tileWidth)&&$.tileWidth>0)this.options.tiffTileWidth=$.tileWidth;else throw U.invalidParameterError("tileWidth","integer greater than zero",$.tileWidth);if(U.defined($.tileHeight))if(U.integer($.tileHeight)&&$.tileHeight>0)this.options.tiffTileHeight=$.tileHeight;else throw U.invalidParameterError("tileHeight","integer greater than zero",$.tileHeight);if(U.defined($.miniswhite))this._setBooleanOption("tiffMiniswhite",$.miniswhite);if(U.defined($.pyramid))this._setBooleanOption("tiffPyramid",$.pyramid);if(U.defined($.xres))if(U.number($.xres)&&$.xres>0)this.options.tiffXres=$.xres;else throw U.invalidParameterError("xres","number greater than zero",$.xres);if(U.defined($.yres))if(U.number($.yres)&&$.yres>0)this.options.tiffYres=$.yres;else throw U.invalidParameterError("yres","number greater than zero",$.yres);if(U.defined($.compression))if(U.string($.compression)&&U.inArray($.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=$.compression;else throw U.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",$.compression);if(U.defined($.predictor))if(U.string($.predictor)&&U.inArray($.predictor,["none","horizontal","float"]))this.options.tiffPredictor=$.predictor;else throw U.invalidParameterError("predictor","one of: none, horizontal, float",$.predictor);if(U.defined($.resolutionUnit))if(U.string($.resolutionUnit)&&U.inArray($.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=$.resolutionUnit;else throw U.invalidParameterError("resolutionUnit","one of: inch, cm",$.resolutionUnit)}return this._updateFormatOut("tiff",$)}function j6($){return this.heif({...$,compression:"av1"})}function q6($){if(U.object($)){if(U.string($.compression)&&U.inArray($.compression,["av1","hevc"]))this.options.heifCompression=$.compression;else throw U.invalidParameterError("compression","one of: av1, hevc",$.compression);if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.heifQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.lossless))if(U.bool($.lossless))this.options.heifLossless=$.lossless;else throw U.invalidParameterError("lossless","boolean",$.lossless);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,0,9))this.options.heifEffort=$.effort;else throw U.invalidParameterError("effort","integer between 0 and 9",$.effort);if(U.defined($.chromaSubsampling))if(U.string($.chromaSubsampling)&&U.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=$.chromaSubsampling;else throw U.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);if(U.defined($.bitdepth))if(U.integer($.bitdepth)&&U.inArray($.bitdepth,[8,10,12])){if($.bitdepth!==8&&this.constructor.versions.heif)throw U.invalidParameterError("bitdepth when using prebuilt binaries",8,$.bitdepth);this.options.heifBitdepth=$.bitdepth}else throw U.invalidParameterError("bitdepth","8, 10 or 12",$.bitdepth)}else throw U.invalidParameterError("options","Object",$);return this._updateFormatOut("heif",$)}function R6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.jxlDistance=$.quality>=30?0.1+(100-$.quality)*0.09:0.017666666666666667*$.quality*$.quality-1.15*$.quality+25;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);else if(U.defined($.distance))if(U.number($.distance)&&U.inRange($.distance,0,15))this.options.jxlDistance=$.distance;else throw U.invalidParameterError("distance","number between 0.0 and 15.0",$.distance);if(U.defined($.decodingTier))if(U.integer($.decodingTier)&&U.inRange($.decodingTier,0,4))this.options.jxlDecodingTier=$.decodingTier;else throw U.invalidParameterError("decodingTier","integer between 0 and 4",$.decodingTier);if(U.defined($.lossless))if(U.bool($.lossless))this.options.jxlLossless=$.lossless;else throw U.invalidParameterError("lossless","boolean",$.lossless);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,3,9))this.options.jxlEffort=$.effort;else throw U.invalidParameterError("effort","integer between 3 and 9",$.effort)}return this._updateFormatOut("jxl",$)}function E6($){if(U.object($)){if(U.defined($.depth))if(U.string($.depth)&&U.inArray($.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=$.depth;else throw U.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",$.depth)}return this._updateFormatOut("raw")}function A6($){if(U.object($)){if(U.defined($.size))if(U.integer($.size)&&U.inRange($.size,1,8192))this.options.tileSize=$.size;else throw U.invalidParameterError("size","integer between 1 and 8192",$.size);if(U.defined($.overlap))if(U.integer($.overlap)&&U.inRange($.overlap,0,8192)){if($.overlap>this.options.tileSize)throw U.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,$.overlap);this.options.tileOverlap=$.overlap}else throw U.invalidParameterError("overlap","integer between 0 and 8192",$.overlap);if(U.defined($.container))if(U.string($.container)&&U.inArray($.container,["fs","zip"]))this.options.tileContainer=$.container;else throw U.invalidParameterError("container","one of: fs, zip",$.container);if(U.defined($.layout))if(U.string($.layout)&&U.inArray($.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=$.layout;else throw U.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",$.layout);if(U.defined($.angle))if(U.integer($.angle)&&!($.angle%90))this.options.tileAngle=$.angle;else throw U.invalidParameterError("angle","positive/negative multiple of 90",$.angle);if(this._setBackgroundColourOption("tileBackground",$.background),U.defined($.depth))if(U.string($.depth)&&U.inArray($.depth,["onepixel","onetile","one"]))this.options.tileDepth=$.depth;else throw U.invalidParameterError("depth","one of: onepixel, onetile, one",$.depth);if(U.defined($.skipBlanks))if(U.integer($.skipBlanks)&&U.inRange($.skipBlanks,-1,65535))this.options.tileSkipBlanks=$.skipBlanks;else throw U.invalidParameterError("skipBlanks","integer between -1 and 255/65535",$.skipBlanks);else if(U.defined($.layout)&&$.layout==="google")this.options.tileSkipBlanks=5;let J=U.bool($.center)?$.center:$.centre;if(U.defined(J))this._setBooleanOption("tileCentre",J);if(U.defined($.id))if(U.string($.id))this.options.tileId=$.id;else throw U.invalidParameterError("id","string",$.id);if(U.defined($.basename))if(U.string($.basename))this.options.tileBasename=$.basename;else throw U.invalidParameterError("basename","string",$.basename)}if(U.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw U.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function S6($){if(!U.plainObject($))throw U.invalidParameterError("options","object",$);if(U.integer($.seconds)&&U.inRange($.seconds,0,3600))this.options.timeoutSeconds=$.seconds;else throw U.invalidParameterError("seconds","integer between 0 and 3600",$.seconds);return this}function C6($,J){if(!(U.object(J)&&J.force===!1))this.options.formatOut=$;return this}function M6($,J){if(U.bool(J))this.options[$]=J;else throw U.invalidParameterError($,"boolean",J)}function f6(){if(!this.options.streamOut){this.options.streamOut=!0;let $=Error();this._pipeline(void 0,$)}}function k6($,J){if(typeof $==="function"){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),Q2.pipeline(this.options,(F,w,W)=>{if(F)$(U.nativeError(F,J));else $(null,w,W)})});else Q2.pipeline(this.options,(F,w,W)=>{if(F)$(U.nativeError(F,J));else $(null,w,W)});return this}else if(this.options.streamOut){if(this._isStreamInput()){if(this.once("finish",()=>{this._flattenBufferIn(),Q2.pipeline(this.options,(F,w,W)=>{if(F)this.emit("error",U.nativeError(F,J));else this.emit("info",W),this.push(w);this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished)this.emit("finish")}else Q2.pipeline(this.options,(F,w,W)=>{if(F)this.emit("error",U.nativeError(F,J));else this.emit("info",W),this.push(w);this.push(null),this.on("end",()=>this.emit("close"))});return this}else if(this._isStreamInput())return new Promise((F,w)=>{this.once("finish",()=>{this._flattenBufferIn(),Q2.pipeline(this.options,(W,Z,B)=>{if(W)w(U.nativeError(W,J));else if(this.options.resolveWithObject)F({data:Z,info:B});else F(Z)})})});else return new Promise((F,w)=>{Q2.pipeline(this.options,(W,Z,B)=>{if(W)w(U.nativeError(W,J));else if(this.options.resolveWithObject)F({data:Z,info:B});else F(Z)})})}R5.exports=function($){Object.assign($.prototype,{toFile:Y6,toBuffer:Q6,keepExif:K6,withExif:I6,withExifMerge:G6,keepIccProfile:H6,withIccProfile:P6,keepMetadata:y6,withMetadata:L6,toFormat:N6,jpeg:X6,jp2:_6,png:V6,webp:D6,tiff:z6,avif:j6,heif:q6,jxl:R6,gif:T6,raw:E6,tile:A6,timeout:S6,_updateFormatOut:C6,_setBooleanOption:M6,_read:f6,_pipeline:k6})}});var M5=V(($7,C5)=>{var x6=import.meta.require("events"),m2=import.meta.require("detect-libc"),v=l(),{runtimePlatformArch:d6}=$1(),C=X2(),A5=d6(),G1=C.libvipsVersion(),t=C.format();t.heif.output.alias=["avif","heic"];t.jpeg.output.alias=["jpe","jpg"];t.tiff.output.alias=["tif"];t.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var O6={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},K2={vips:G1.semver};if(!G1.isGlobal)if(!G1.isWasm)try{K2=import.meta.require(`@img/sharp-${A5}/versions`)}catch($){try{K2=import.meta.require(`@img/sharp-libvips-${A5}/versions`)}catch(J){}}else try{K2=(()=>{throw new Error(`Cannot require module "@img/sharp-wasm32/versions"`);})()}catch($){}K2.sharp=i2().version;if(K2.heif&&t.heif)t.heif.input.fileSuffix=[".avif"],t.heif.output.alias=["avif"];function S5($){if(v.bool($))if($)return C.cache(50,20,100);else return C.cache(0,0,0);else if(v.object($))return C.cache($.memory,$.files,$.items);else return C.cache()}S5(!0);function b6($){return C.concurrency(v.integer($)?$:null)}if(m2.familySync()===m2.GLIBC&&!C._isUsingJemalloc())C.concurrency(1);else if(m2.familySync()===m2.MUSL&&C.concurrency()===1024)C.concurrency(import.meta.require("os").availableParallelism());var v6=new x6.EventEmitter;function h6(){return C.counters()}function g6($){return C.simd(v.bool($)?$:null)}function m6($){if(v.object($))if(Array.isArray($.operation)&&$.operation.every(v.string))C.block($.operation,!0);else throw v.invalidParameterError("operation","Array<string>",$.operation);else throw v.invalidParameterError("options","object",$)}function l6($){if(v.object($))if(Array.isArray($.operation)&&$.operation.every(v.string))C.block($.operation,!1);else throw v.invalidParameterError("operation","Array<string>",$.operation);else throw v.invalidParameterError("options","object",$)}C5.exports=function($){$.cache=S5,$.concurrency=b6,$.counters=h6,$.simd=g6,$.format=t,$.interpolators=O6,$.versions=K2,$.queue=v6,$.block=m6,$.unblock=l6}});var k5=V((J7,f5)=>{var r=v0();U5()(r);I5()(r);H5()(r);L5()(r);V5()(r);T5()(r);E5()(r);M5()(r);f5.exports=r});import{AsyncLocalStorage as t5}from"async_hooks";class w2 extends b{$;static _name="BroadcastingServiceContainer";publishCb;context=new t5;constructor($){super();this.service=$}onPublish($){this.publishCb=$}publish(...$){let[J,F,w]=$;this.publishCb(J,F,w)}async handleMessage($,J){let F=JSON.parse(J);if(F.type==="subscribe"){let w=Object.entries(this.service.channels).sort(([W],[Z])=>W.length-Z.length);for(let[W,Z]of w){let B=new URLPattern({pathname:W});if(B.test({pathname:F.topic})){let Y=B.exec({pathname:F.topic})?.pathname.groups,K=new Z;if(await K.subscribe.call(K,Y))$.subscribe(F.topic);break}}}if(F.type==="broadcast")$.publish(F.topic,JSON.stringify({topic:F.topic,data:F.payload}));if(F.type==="unsubscribe")$.unsubscribe(F.topic)}run($,J){let F=$.get("Cookie"),w=new Map;if(F){let W=F.split(";");for(let Z of W){let[B,Y]=Z.split("=");w.set(B.trim(),Y.trim())}}this.context.run({headers:$,cookies:w},J)}}class p{static async user(){let $=x.getStore(),J=w2.use().context.getStore(),F="",w="";if($?.req)F=$.req.cookies.get("access_token"),w=$.req.headers.get("User-Agent");if(J?.cookies)w=J.headers.get("User-Agent"),F=J.cookies.get("access_token");let W=$?.user;if(!W)W=(await k.use().getSession(F,w))?.user,$?.setUser(W);if(W)return W;return null}static async guard($){let J=await p.user();if(!J)throw new j2;try{if(!await $(J))throw new j2}catch(F){throw new j2}}static async guardSafe($){let J=await p.user();if(!J)return!1;try{return await $(J)}catch(F){return!1}}static async authenticate($){await k.use().authenticate($)}static async createMagicLink($){return await k.use().createMagicLinkToken($)}}function m($,J){return $.replace(/:([^/]+)/g,(F,w)=>{let W=w.endsWith("?"),Z=W?w.slice(0,-1):w,B=J[Z];if(B===void 0){if(W)return"";throw new Error(`Missing parameter: ${Z}`)}return String(B)}).replace(/\/\//g,"/")}class q1 extends j1{constructor($){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:$}},view:{status:307,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:$}}}}}class R1{static to($,...J){let[F={}]=J,{search:w={},params:W={}}={params:{},...F},Z=new URLSearchParams(w).toString();throw new q1([m($,W),Z.toString()].filter(Boolean).join("?"))}}function E1($,J){return $.replace(/{{([^}]+)}}/g,(F,w)=>{let W=J[w];if(W===void 0)throw new Error(`Missing parameter: ${w}`);return W})}class A1{static scope($){return $}static translate($,...J){let F=H2.use(),w=F.detectLocale(x.getStore().req),W=F.translations.get(`${w}.server`)?.[$];if(!W)return $;return E1(W,J[0])}}var x5=u6(k5(),1);import{Buffer as c6}from"buffer";class _2 extends b{$;static _name="FileStorageServiceContainer";constructor($){super();this.service=$}}class d5{static async put($){return _2.use().service.driver.put($)}static async metadata($){let J=c6.from(await $.arrayBuffer());try{return await x5.default(J).metadata()}catch{return{}}}static async fetch($){return _2.use().service.driver.fetch($)}static list($){return _2.use().service.driver.list($)}static delete(){}}function O5($){return Object.fromEntries(Object.entries($).filter(([,J])=>{return J!==null&&J!==void 0}))}class J2 extends Error{constructor(){super("Adapter not found");this.name="AdapterNotFound"}}class H1{createSession(){throw new J2}deleteSession(){throw new J2}findSession(){throw new J2}findUserByEmailAddress(){throw new J2}updateSession(){throw new J2}createUser(){throw new J2}}class g5 extends z{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class m5 extends z{schema={name:{string:"Invalid name",required:"Name is required","min:2":"Name must be at least 3 characters"},email:{string:"Invalid email",required:"Email is required",email:"Invalid email"},password:{required:"Password is required","min:8":"Password must be at least 8 characters"}}}class l5 extends z{schema={email:{required:"Email is required",email:"Invalid email"}}}class u5 extends z{schema={password:{required:"Password is required",password:"Invalid password"}}}class f extends b5{provider=k.use()?.provider;async me(){let $=await p.user();if(!$)throw new h5;return $}async verifyEmail($=new z){let J=await $.input(),F=await this.provider.adapter.findUserByVerificationToken(J.get("token"));if(!F)return{email:null};if(await this.provider.adapter.verifyUser(F.email),F)return{email:F.email};return{email:null}}async signInWithMagicLink($=new z){let J=k.use(),F=J.provider,w=$.search.get("token"),W=decodeURIComponent($.search.get("email")),Z=null;try{Z=await F.adapter.findUserMagicLinkToken({email:W,token:w})}catch(Y){return console.log(Y),{error:JSON.stringify(Y)}}if(!Z)return{error:"Invalid token"};await F.adapter.verifyUser(W),await F.adapter.deleteMagicLinkToken(W);let B=await J.createOrUpdateSession({email:W});return $.ctx().setCookie("access_token",B.token,{expires:B.expiresAt}),await F.onSignIn(B),{session:B}}async signInWithPin($=new z){let J=k.use(),F=J.provider,w=await $.input(),{email:W,pin:Z}=w.toJSON();if(!await F.adapter.findUserMagicLinkToken({email:W,pin:Z}))throw new e({pin:["Invalid pin"]});await F.adapter.deleteMagicLinkToken(W),await F.adapter.verifyUser(W);let Y=await J.createOrUpdateSession({email:W});return $.ctx().setCookie("access_token",Y.token,{expires:Y.expiresAt}),await F.onSignIn(Y),{session:Y}}async signIn($=new g5){let J=await $.input.call($),{email:F,password:w}=J.toJSON(),W=await this.provider.adapter.findUserByEmailAddress(F,this.provider.verifyEmail);if(!W)throw new e({invalid_credentials:["Invalid credentials"]});if(!await this.provider.verifyPassword(w,W.password))throw new e({invalid_credentials:["Invalid credentials"]});let B=await k.use().createOrUpdateSession({email:W.email,id:W.id});$.ctx().setCookie("access_token",B.token,{expires:B.expiresAt}),await this.provider.onSignIn(W);let{password:Y,...K}=W;return K}async signUp($=new m5){let J=await $.input(),{email:F,password:w,name:W,invitationId:Z}=J.toJSON();if(await this.provider.adapter.findUserByEmailAddress(F,!1))throw new e({email:["Email address already exists"]});let Y=await this.provider.hashPassword(w),K=H2.use().detectLocale($),G;if(Z){if(G=await this.provider.adapter.findInvitation(Z,F),G)await this.provider.adapter.deleteInvitationById(Z)}let N,D;if(G)N=await this.provider.adapter.createUser({email:F,name:W,password:Y,emailVerifiedAt:new Date,locale:K}),await this.provider.adapter.createAccount({organizationId:G.organizationId,userId:N.id,organizationRole:G.role});else D=await this.provider.generateEmailVerificationToken(F),N=await this.provider.adapter.createUser({email:F,name:W,password:Y,verificationToken:D,locale:K});return await this.provider.onSignUp(N,D),N}async signOut($=new z){let J=$.cookies.get("access_token"),F=await p.user();return await this.provider.adapter.deleteSession({token:J}),$.ctx().setCookie("access_token","",{expires:new Date(0)}),await this.provider.onSignOut(F),{}}async forgotPassword($=new l5){let J=await $.input(),{email:F}=J.toJSON(),w=await this.provider.adapter.findUserByEmailAddress(F,this.provider.verifyEmail);if(!w)return{};let W=await this.provider.generateForgotPasswordToken(w);return await this.provider.adapter.createPasswordResetToken({user:w,token:W}),await this.provider.onForgotPassword(w,W),{}}async resetPassword($=new u5){let J=await $.input(),{password:F,token:w}=J.toJSON(),W=await this.provider.adapter.findPasswordResetToken({token:w});if(!W)throw new e({token:["Invalid token"]});if(z2.Instant.from(W.createdAt.toISOString()).add({hours:24}).until(z2.Now.instant()).sign>=0)throw new e({token:["Token expired"]});await this.provider.adapter.deletePasswordResetToken({token:w});let B=await this.provider.adapter.findUserByEmailAddress(W.user.email,this.provider.verifyEmail);if(!B)throw new e({email:["User not found"]});let Y=await this.provider.hashPassword(F);return await this.provider.adapter.updateUserPassword({id:B.id,password:Y}),await this.provider.adapter.deleteAllUserSessions(B.id),await this.provider.onResetPassword(B),{}}async changePassword($=new z){let J=await p.user(),F=await $.input(),{oldPassword:w,newPassword:W}=F.toJSON(),{password:Z}=await this.provider.adapter.findUserByEmailAddress(J.email,this.provider.verifyEmail);if(!await this.provider.verifyPassword(w,Z))throw new e({oldPassword:["Incorrect password"]});let Y=await this.provider.hashPassword(W);return await this.provider.adapter.updateUserPassword({id:J.id,password:Y}),await this.provider.adapter.deleteAllUserSessions(J.id),{}}async oauthRedirect($=new z){let{provider:J}=$.params,F=k.use().provider.oauthProviders[J];if(!F)throw new Error(`Invalid provider: ${J}`);return{url:await F.getRedirectUrl($)}}async oauthCallback($=new z){let{provider:J}=$.params,F=k.use(),w=F.provider,W=w.oauthProviders[J],{email:Z,name:B}=await W.onCallback($),Y=await w.adapter.findUserByEmailAddress(Z,!1),K=H2.use().detectLocale($);if(!Y)Y=await this.provider.adapter.createUser({email:Z,name:B,locale:K});let G=await F.createOrUpdateSession({email:Y.email,id:Y.id});return $.ctx().setCookie("access_token",G.token,{expires:G.expiresAt}),await w.onSignIn(Y),{session:G}}async createMagicLinkToken($=new z){let J=await $.input(),{email:F}=J.toJSON(),w=k.use(),W=w.provider,{user:Z,pin:B,token:Y}=await w.createMagicLinkToken(F);return await W.onMagicLinkCreated(Z,{email:F,pin:B,token:Y}),{email:F}}}class c5 extends P1{routes={"/:provider":this.view("__",[f,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[f,"oauthCallback"])}}class a6 extends P1{routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[f,"signInWithMagicLink"]),"/oauth":c5}}class y1 extends I2{middlewares=["cache:private"];routes={"/sign-in":this.post(f,"signIn"),"/sign-up":this.post(f,"signUp"),"/sign-out":this.post(f,"signOut"),"/forgot-password":this.post(f,"forgotPassword"),"/reset-password":this.post(f,"resetPassword"),"/change-password":this.post(f,"changePassword"),"/verify-email":this.post(f,"verifyEmail"),"/me":this.get(f,"me").middleware(["auth"]),"/magic-link":this.post(f,"createMagicLinkToken"),"/sign-in-with-pin":this.post(f,"signInWithPin")}}class r6 extends v5{basePath="/auth";verifyEmail=!0;sessionExpiresInHours=24;sessionAbsoluteExpiresInHours=672;adapter=new H1;oauthProviders={};boot(){}async verifyPassword($,J){return await Bun.password.verify($,J)}async hashPassword($){return await Bun.password.hash($)}async generateForgotPasswordToken($){let J=new Bun.CryptoHasher("sha256");return J.update(`${$.email}${Date.now()}`),J.digest("hex")}generateEmailVerificationToken($){if(!this.verifyEmail)return"";let J=new Bun.CryptoHasher("sha256");return J.update(`${$}${Date.now()}`),J.digest("hex")}generateMagicLinkToken($){let J=new Bun.CryptoHasher("sha256");return J.update(`${$}${Date.now()}`),J.digest("hex")}extendSession($){return{}}onSignUp($,J){}onSignIn($){}onSignOut($){}onForgotPassword($,J){}onResetPassword($){}onMagicLinkCreated($,J){return}}class L1 extends I2{routes={"/resize":this.file(async()=>{let $=new z,J=new URL($.rawRequest.url),F=J.searchParams.get("url"),w=Number(J.searchParams.get("w")),W=Number(J.searchParams.get("h")),Z=J.searchParams.get("fit")??"cover",B=Number(J.searchParams.get("q"));if(!F)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let K=`${F.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${F}`,G=await fetch(K);if(!G.ok)return new Response(JSON.stringify({error:"Image not found",info:K}),{headers:{"Content-Type":"application/json"},status:404});let N=Buffer.from(await G.arrayBuffer()),D=await a5.use().service.driver.resize(N,{height:W,width:w,fit:Z,quality:B});return G.headers.delete("Content-Type"),G.headers.delete("Content-Length"),new Response(D,{headers:{"Content-Type":"image/webp","Content-Length":`${D.byteLength}`,...G.headers.toJSON()}})})}}class a5 extends b{$;static _name="ImageOptimizationServiceContainer";constructor($){super();this.service=$}}import{mkdir as e6,exists as p6,readdir as n6}from"fs/promises";class h extends b{$;static _name="LoggingServiceContainer";writer;isReady=!1;logsDirPath=`${process.env.ROOT_DIR}/storage/logs`;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;currentLogFilePath;constructor($){super();this.service=$;this.boot().then(()=>{this.isReady=!0})}async boot(){if(!process.env.ROOT_DIR)return;if(!await p6(this.logsDirPath))await e6(this.logsDirPath);this.newLogFile()}async newLogFile(){if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let F=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.service.onLogFileClosed(F),this.fileSize=0,this.writerSize=0}let J=(await n6(this.logsDirPath)).sort().reverse()[0];if(J){let F=Bun.file(`${this.logsDirPath}/${J}`);if(F.size<this.service.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${J}`,this.writer=F.writer(),this.writer.write(await F.text()),this.writer.write("\n"),this.writer.flush(),this.fileSize=F.size}if(!this.writer){let F=`${new Date(Date.now()).toISOString()}.log`.replaceAll(":","-");this.currentLogFilePath=`${this.logsDirPath}/${F}`;let w=Bun.file(`${this.logsDirPath}/${F}`);this.writer=w.writer(),this.fileSize=0,this.writerSize=0}this.isCreatingFile=!1}async log($,J,F={}){if(!this.isReady)await new Promise((Y)=>{let K=setInterval(()=>{if(this.isReady)Y({}),clearInterval(K)},100)});let w=x.getStore(),W={};if(w)W={url:w.req.rawRequest.url,method:w.req.rawRequest.method,headers:w.req.rawRequest.headers,body:w.req.rawRequest.body};let Z={timestamp:new Date(Date.now()).toISOString(),env:"production",level:$,message:J,metadata:{...W,...F}},B="";try{B=JSON.stringify(Z)}catch(Y){throw new Error("Metadata must be a valid JSON object")}this.writerSize+=B.length,this.fileSize+=B.length,this.writer.write(B),this.writer.write("\n"),l2.channel("/logs/live",{}).publish(JSON.stringify(Z)),this.service.onLogCreated(Z),this.tryFlush()}async tryFlush(){if(this.fileSize>this.service.maxFileSize){if(!this.isCreatingFile)await this.newLogFile()}if(this.writerSize>this.service.maxFileSize/2)await this.writer.flush(),this.writerSize=0,await this.newLogFile();else clearTimeout(this.flushTimeout),this.flushTimeout=setTimeout(async()=>{await this.writer.flush(),this.writerSize=0},100)}}class N1 extends I2{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let $=Bun.file(h.use().currentLogFilePath);return new Response(await $.text(),{headers:{"Content-Type":"text/plain"}})})}}function s6($){let J=new Map;for(let F of $)if(typeof F==="string"){let[w,W=""]=F.split(":");if(w.startsWith("-")){if(J.has(w.replace("-","")))J.delete(w.replace("-",""))}else J.set(w,W.split(",").filter(Boolean))}else J.set(F,[]);return J}class X1 extends b{$;static _name="MiddlewareServiceContainer";constructor($){super();this.service=$}runMiddleware($){let J=new z;return Array.from(s6($).entries()).map(([F,w])=>{if(typeof F==="string"){let W=this.service.aliases[F];if(W){let Z=new W(J);return()=>Z.run.call(Z,...w)}}else{if(r5(F)){let W=new F(J);return W.run.bind(W)}return F}}).filter(Boolean).reduce((F,w)=>{return async()=>{return{...await F(),...await w()}}},()=>Promise.resolve({}))()}}function e5($){return $.replace(/-([a-z])/g,(J)=>J[1].toUpperCase())}function V1(){let J=new z().ctx().headers;return console.log(J),new Response(null,{headers:J,status:204})}function t6($){if("__brand"in $)return $.__brand==="ApiRouter";return!1}function D1($,J=""){let F={};for(let[w,W]of Object.entries($))if("run"in W){let Z=W;if(!F[w])F[w]={};let{method:B,middlewares:Y}=Z,K=Z.run.bind(Z);F[w][B]={exec:K,middleware:Y},F[w].OPTIONS={exec:()=>V1(),middleware:Y}}else if(typeof W==="function"){let Z={},B=[];if(t6(W)){let K=new W;Z=K.routes,B=[K.middleware,...K.middlewares]}else{let[K]=(w==="/"?J:w).split("/").reverse();if(K==="")throw new Error(`"${w}" is not valid for a resource route`);if(K.includes(":"))throw new Error(`Last segment of a resource route has to be static. See "${w}"`);Z=W(`${e5(K)}Id`)}let Y=D1(Z,w);for(let[K,G]of Object.entries(Y)){let N=K==="/"?"":K,D=w==="/"?"":w,E=`${D}${N}`===""?"/":`${D}${N}`;if(!F[E])F[E]={};for(let[c2,G2]of Object.entries(G))F[E][c2]={exec:G2.exec,middleware:[...B,...G2.middleware]},F[E].OPTIONS={exec:()=>V1(),middleware:[...B,...G2.middleware]}}}else for(let Z of Object.values(W)){if(!F[w])F[w]={};let{method:B,middlewares:Y}=Z,K=Z.run.bind(Z);F[w][B]={exec:K,middleware:Y},F[w].OPTIONS={exec:()=>V1(),middleware:Y}}return Object.fromEntries(Object.entries(F).sort(([w],[W])=>{let Z=w.split("/").length+w.split(":").length,B=W.split("/").length+W.split(":").length;return Z-B}))}class _1 extends b{$;static _name="ApiRouterServiceContainer";flatRoutes={};constructor($){super();this.service=$;this.flatRoutes=D1({"/":this.service.rootRouter.bind(this.service),"/auth":y1,"/__gemi__/services/i18n":p5,"/__gemi__/services/logs":N1,"/__gemi__/services/image":L1})}getRouteHandlerAndParams($){let F=new URL($.url).pathname.replace("/api",""),w={},W;for(let[Z]of Object.entries(this.flatRoutes))try{let B=new URLPattern({pathname:Z});if(B.test({pathname:F})){W=Z,w=B.exec({pathname:F})?.pathname.groups;break}}catch(B){console.error(B)}return{params:w,path:W}}async runRouteMiddleware($,J){let w=this.flatRoutes[$][J.rawRequest.method].middleware;try{await X1.use().runMiddleware(w)}catch(W){if(W.kind===T1){if(J.rawRequest.url.includes("/api")){let{status:Z=400,data:B,headers:Y}=W.payload.api;return new Response(JSON.stringify(B),{status:Z,headers:{"Content-Type":"application/json",...Y}})}}else throw this.service.onRequestFail(J,W),console.error(W),W}}async getRouteData($){let J=this.flatRoutes[$],F=x.getStore(),w=J[F.req.rawRequest.method].exec??(()=>Promise.resolve({})),W={};try{W=await w()}catch(Z){if(Z.kind===T1){let{status:B=400,data:Y,headers:K}=Z.payload.api;return new Response(JSON.stringify(Y),{status:B,headers:{"Content-Type":"application/json",...K}})}else throw this.service.onRequestFail(F.req,Z),console.error(Z),Z}return W}async handleApiRequest($){let{params:J,path:F}=this.getRouteHandlerAndParams($),w=this.flatRoutes[F];if(!w||!w[$.method])return new Response(JSON.stringify({error:{message:"Not found"}}),{status:404});let W=new z($,J,"api",F);if(!$.url.includes("/__gemi__"))this.service.onRequestStart(W);return await x.run(W,async()=>{let Z=x.getStore();Z.setRequest(W);let B=await this.runRouteMiddleware(F,W);if(B instanceof Response)return B;let Y=await this.getRouteData(F);if(Y instanceof Response)return Y;let K=Z.headers;if(K.append("Content-Type","application/json"),Z.cookies.forEach((G)=>K.append("Set-Cookie",G.toString())),Z.destroy(),!$.url.includes("/__gemi__"))this.service.onRequestEnd(W);return new Response(JSON.stringify(Y),{headers:K})})}}class u2{static prepare($,...J){let F={params:{},search:{}},[w={}]=J,{search:W,params:Z}={...F,...w},B=x.getStore();if(B.req.kind==="api")throw new Error("Query.prefetch() cannot be called from an API request");let Y=B.req.rawRequest,K=new URL(Y.url),G=new URLSearchParams(O5(W));G.delete("json"),G.sort();let N=[`${m($,Z)}`,G.toString()].filter((F2)=>F2.length>0).join("?"),D=`${K.origin}/${N}`,E=new Request(D,{headers:Y.headers}),c2=new z(E,Z),G2=(F2)=>{B.prefetchedResources.set(m($,Z),{[G.toString()]:F2})},z1=()=>{return x.run(c2,async()=>{let F2=await _1.use().getRouteData($);return G2(F2),F2})};return{instant:z1,prefetch:()=>{B.prefetchPromiseQueue.add(z1)}}}static instant($,...J){return u2.prepare($,...J).instant()}static prefetch($,...J){return u2.prepare($,...J).prefetch()}}class l2{static channel($,J){let F=w2.use().service.channels[$];if(!F)return console.error(`Channel ${$} not found`),{publish:()=>{}};let w=new F;return{publish:(W,Z=!1)=>{let B=m($,J);w2.use().publish(B,JSON.stringify({topic:B,data:w.publish(W)}),Z)}}}}class n5{static absolute($,...J){return`${process.env.HOST_NAME}${m(String($),J[0]??{})}`}static relative($,...J){return m(String($),J[0]??{})}}class s5{static debug($,J){h.use().log("debug",$,J)}static info($,J){h.use().log("info",$,J)}static notice($,J){h.use().log("notice",$,J)}static warning($,J){h.use().log("warning",$,J)}static error($,J){h.use().log("error",$,J)}static critical($,J){h.use().log("critical",$,J)}static alert($,J){h.use().log("alert",$,J)}static emergency($,J){h.use().log("emergency",$,J)}}export{n5 as Url,R1 as Redirect,u2 as Query,s5 as Log,A1 as I18n,d5 as FileStorage,l2 as Broadcast,p as Auth};export{w2 as qb,R1 as rb,k5 as sb,_2 as tb,h as ub,s5 as vb,a6 as wb,r6 as xb,a5 as yb,X1 as zb,_1 as Ab};
|
|
2
|
+
import{Eb as v5,Fb as y1,Gb as h5,Ib as g5,Jb as _2,Kb as R2,Lb as f}from"../http/index.js";import{Ob as n5,Pb as P2}from"../chunk-ng7ryvkk.js";import{Qb as e5,Rb as G2,Sb as z1,Tb as _1,Ub as p,Vb as d,Wb as R,Yb as v}from"../chunk-jbnkc3n4.js";import{$b as V,_b as c6,ac as j}from"../chunk-5f0rzak7.js";var u=V((L9,M1)=>{var C1=function($){return typeof $!=="undefined"&&$!==null},o5=function($){return typeof $==="object"},$4=function($){return Object.prototype.toString.call($)==="[object Object]"},J4=function($){return typeof $==="function"},F4=function($){return typeof $==="boolean"},w4=function($){return $ instanceof Buffer},W4=function($){if(C1($))switch($.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},U4=function($){return $ instanceof ArrayBuffer},Z4=function($){return typeof $==="string"&&$.length>0},B4=function($){return typeof $==="number"&&!Number.isNaN($)},Y4=function($){return Number.isInteger($)},Q4=function($,J,F){return $>=J&&$<=F},K4=function($,J){return J.includes($)},I4=function($,J,F){return new Error(`Expected ${J} for ${$} but received ${F} of type ${typeof F}`)},G4=function($,J){return J.message=$.message,J};M1.exports={defined:C1,object:o5,plainObject:$4,fn:J4,bool:F4,buffer:w4,typedArray:W4,arrayBuffer:U4,string:Z4,number:B4,integer:Y4,inRange:Q4,inArray:K4,invalidParameterError:I4,nativeError:G4}});var y2=V((N9,k1)=>{var H4=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};k1.exports=H4});var E2=V((X9,x1)=>{var P4=Number.MAX_SAFE_INTEGER||9007199254740991,y4=["major","premajor","minor","preminor","patch","prepatch","prerelease"];x1.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:P4,RELEASE_TYPES:y4,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var L2=V((a,f1)=>{var{MAX_SAFE_COMPONENT_LENGTH:r2,MAX_SAFE_BUILD_LENGTH:L4,MAX_LENGTH:N4}=E2(),X4=y2();a=f1.exports={};var V4=a.re=[],D4=a.safeRe=[],H=a.src=[],P=a.t={},T4=0,e2="[a-zA-Z0-9-]",z4=[["\\s",1],["\\d",N4],[e2,L4]],j4=($)=>{for(let[J,F]of z4)$=$.split(`${J}*`).join(`${J}{0,${F}}`).split(`${J}+`).join(`${J}{1,${F}}`);return $},X=($,J,F)=>{let w=j4(J),W=T4++;X4($,W,J),P[$]=W,H[W]=J,V4[W]=new RegExp(J,F?"g":void 0),D4[W]=new RegExp(w,F?"g":void 0)};X("NUMERICIDENTIFIER","0|[1-9]\\d*");X("NUMERICIDENTIFIERLOOSE","\\d+");X("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${e2}*`);X("MAINVERSION",`(${H[P.NUMERICIDENTIFIER]})\\.(${H[P.NUMERICIDENTIFIER]})\\.(${H[P.NUMERICIDENTIFIER]})`);X("MAINVERSIONLOOSE",`(${H[P.NUMERICIDENTIFIERLOOSE]})\\.(${H[P.NUMERICIDENTIFIERLOOSE]})\\.(${H[P.NUMERICIDENTIFIERLOOSE]})`);X("PRERELEASEIDENTIFIER",`(?:${H[P.NUMERICIDENTIFIER]}|${H[P.NONNUMERICIDENTIFIER]})`);X("PRERELEASEIDENTIFIERLOOSE",`(?:${H[P.NUMERICIDENTIFIERLOOSE]}|${H[P.NONNUMERICIDENTIFIER]})`);X("PRERELEASE",`(?:-(${H[P.PRERELEASEIDENTIFIER]}(?:\\.${H[P.PRERELEASEIDENTIFIER]})*))`);X("PRERELEASELOOSE",`(?:-?(${H[P.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${H[P.PRERELEASEIDENTIFIERLOOSE]})*))`);X("BUILDIDENTIFIER",`${e2}+`);X("BUILD",`(?:\\+(${H[P.BUILDIDENTIFIER]}(?:\\.${H[P.BUILDIDENTIFIER]})*))`);X("FULLPLAIN",`v?${H[P.MAINVERSION]}${H[P.PRERELEASE]}?${H[P.BUILD]}?`);X("FULL",`^${H[P.FULLPLAIN]}$`);X("LOOSEPLAIN",`[v=\\s]*${H[P.MAINVERSIONLOOSE]}${H[P.PRERELEASELOOSE]}?${H[P.BUILD]}?`);X("LOOSE",`^${H[P.LOOSEPLAIN]}$`);X("GTLT","((?:<|>)?=?)");X("XRANGEIDENTIFIERLOOSE",`${H[P.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);X("XRANGEIDENTIFIER",`${H[P.NUMERICIDENTIFIER]}|x|X|\\*`);X("XRANGEPLAIN",`[v=\\s]*(${H[P.XRANGEIDENTIFIER]})(?:\\.(${H[P.XRANGEIDENTIFIER]})(?:\\.(${H[P.XRANGEIDENTIFIER]})(?:${H[P.PRERELEASE]})?${H[P.BUILD]}?)?)?`);X("XRANGEPLAINLOOSE",`[v=\\s]*(${H[P.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[P.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[P.XRANGEIDENTIFIERLOOSE]})(?:${H[P.PRERELEASELOOSE]})?${H[P.BUILD]}?)?)?`);X("XRANGE",`^${H[P.GTLT]}\\s*${H[P.XRANGEPLAIN]}$`);X("XRANGELOOSE",`^${H[P.GTLT]}\\s*${H[P.XRANGEPLAINLOOSE]}$`);X("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r2}})(?:\\.(\\d{1,${r2}}))?(?:\\.(\\d{1,${r2}}))?`);X("COERCE",`${H[P.COERCEPLAIN]}(?:$|[^\\d])`);X("COERCEFULL",H[P.COERCEPLAIN]+`(?:${H[P.PRERELEASE]})?(?:${H[P.BUILD]})?(?:$|[^\\d])`);X("COERCERTL",H[P.COERCE],!0);X("COERCERTLFULL",H[P.COERCEFULL],!0);X("LONETILDE","(?:~>?)");X("TILDETRIM",`(\\s*)${H[P.LONETILDE]}\\s+`,!0);a.tildeTrimReplace="$1~";X("TILDE",`^${H[P.LONETILDE]}${H[P.XRANGEPLAIN]}$`);X("TILDELOOSE",`^${H[P.LONETILDE]}${H[P.XRANGEPLAINLOOSE]}$`);X("LONECARET","(?:\\^)");X("CARETTRIM",`(\\s*)${H[P.LONECARET]}\\s+`,!0);a.caretTrimReplace="$1^";X("CARET",`^${H[P.LONECARET]}${H[P.XRANGEPLAIN]}$`);X("CARETLOOSE",`^${H[P.LONECARET]}${H[P.XRANGEPLAINLOOSE]}$`);X("COMPARATORLOOSE",`^${H[P.GTLT]}\\s*(${H[P.LOOSEPLAIN]})$|^$`);X("COMPARATOR",`^${H[P.GTLT]}\\s*(${H[P.FULLPLAIN]})$|^$`);X("COMPARATORTRIM",`(\\s*)${H[P.GTLT]}\\s*(${H[P.LOOSEPLAIN]}|${H[P.XRANGEPLAIN]})`,!0);a.comparatorTrimReplace="$1$2$3";X("HYPHENRANGE",`^\\s*(${H[P.XRANGEPLAIN]})\\s+-\\s+(${H[P.XRANGEPLAIN]})\\s*$`);X("HYPHENRANGELOOSE",`^\\s*(${H[P.XRANGEPLAINLOOSE]})\\s+-\\s+(${H[P.XRANGEPLAINLOOSE]})\\s*$`);X("STAR","(<|>)?=?\\s*\\*");X("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");X("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var q2=V((V9,d1)=>{var R4=Object.freeze({loose:!0}),_4=Object.freeze({}),E4=($)=>{if(!$)return _4;if(typeof $!=="object")return R4;return $};d1.exports=E4});var h1=V((D9,v1)=>{var O1=/^[0-9]+$/,b1=($,J)=>{let F=O1.test($),w=O1.test(J);if(F&&w)$=+$,J=+J;return $===J?0:F&&!w?-1:w&&!F?1:$<J?-1:1},q4=($,J)=>b1(J,$);v1.exports={compareIdentifiers:b1,rcompareIdentifiers:q4}});var Z2=V((T9,u1)=>{var A2=y2(),{MAX_LENGTH:g1,MAX_SAFE_INTEGER:S2}=E2(),{safeRe:m1,t:l1}=L2(),A4=q2(),{compareIdentifiers:U2}=h1();class m{constructor($,J){if(J=A4(J),$ instanceof m)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>g1)throw new TypeError(`version is longer than ${g1} characters`);A2("SemVer",$,J),this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease;let F=$.trim().match(J.loose?m1[l1.LOOSE]:m1[l1.FULL]);if(!F)throw new TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+F[1],this.minor=+F[2],this.patch=+F[3],this.major>S2||this.major<0)throw new TypeError("Invalid major version");if(this.minor>S2||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>S2||this.patch<0)throw new TypeError("Invalid patch version");if(!F[4])this.prerelease=[];else this.prerelease=F[4].split(".").map((w)=>{if(/^[0-9]+$/.test(w)){let W=+w;if(W>=0&&W<S2)return W}return w});this.build=F[5]?F[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(A2("SemVer.compare",this.version,this.options,$),!($ instanceof m)){if(typeof $==="string"&&$===this.version)return 0;$=new m($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof m))$=new m($,this.options);return U2(this.major,$.major)||U2(this.minor,$.minor)||U2(this.patch,$.patch)}comparePre($){if(!($ instanceof m))$=new m($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let J=0;do{let F=this.prerelease[J],w=$.prerelease[J];if(A2("prerelease compare",J,F,w),F===void 0&&w===void 0)return 0;else if(w===void 0)return 1;else if(F===void 0)return-1;else if(F===w)continue;else return U2(F,w)}while(++J)}compareBuild($){if(!($ instanceof m))$=new m($,this.options);let J=0;do{let F=this.build[J],w=$.build[J];if(A2("build compare",J,F,w),F===void 0&&w===void 0)return 0;else if(w===void 0)return 1;else if(F===void 0)return-1;else if(F===w)continue;else return U2(F,w)}while(++J)}inc($,J,F){switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",J,F);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",J,F);break;case"prepatch":this.prerelease.length=0,this.inc("patch",J,F),this.inc("pre",J,F);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",J,F);this.inc("pre",J,F);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let w=Number(F)?1:0;if(!J&&F===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[w];else{let W=this.prerelease.length;while(--W>=0)if(typeof this.prerelease[W]==="number")this.prerelease[W]++,W=-2;if(W===-1){if(J===this.prerelease.join(".")&&F===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(w)}}if(J){let W=[J,w];if(F===!1)W=[J];if(U2(this.prerelease[0],J)===0){if(isNaN(this.prerelease[1]))this.prerelease=W}else this.prerelease=W}break}default:throw new Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}u1.exports=m});var r1=V((z9,a1)=>{var c1=Z2(),S4=($,J,F=!1)=>{if($ instanceof c1)return $;try{return new c1($,J)}catch(w){if(!F)return null;throw w}};a1.exports=S4});var p1=V((j9,e1)=>{var C4=Z2(),M4=r1(),{safeRe:C2,t:M2}=L2(),k4=($,J)=>{if($ instanceof C4)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;J=J||{};let F=null;if(!J.rtl)F=$.match(J.includePrerelease?C2[M2.COERCEFULL]:C2[M2.COERCE]);else{let K=J.includePrerelease?C2[M2.COERCERTLFULL]:C2[M2.COERCERTL],G;while((G=K.exec($))&&(!F||F.index+F[0].length!==$.length)){if(!F||G.index+G[0].length!==F.index+F[0].length)F=G;K.lastIndex=G.index+G[1].length+G[2].length}K.lastIndex=-1}if(F===null)return null;let w=F[2],W=F[3]||"0",Z=F[4]||"0",B=J.includePrerelease&&F[5]?`-${F[5]}`:"",Y=J.includePrerelease&&F[6]?`+${F[6]}`:"";return M4(`${w}.${W}.${Z}${B}${Y}`,J)};e1.exports=k4});var o=V((R9,s1)=>{var n1=Z2(),x4=($,J,F)=>new n1($,F).compare(new n1(J,F));s1.exports=x4});var p2=V((_9,t1)=>{var f4=o(),d4=($,J,F)=>f4($,J,F)>=0;t1.exports=d4});var $0=V((E9,o1)=>{class i1{constructor(){this.max=1000,this.map=new Map}get($){let J=this.map.get($);if(J===void 0)return;else return this.map.delete($),this.map.set($,J),J}delete($){return this.map.delete($)}set($,J){if(!this.delete($)&&J!==void 0){if(this.map.size>=this.max){let w=this.map.keys().next().value;this.delete(w)}this.map.set($,J)}return this}}o1.exports=i1});var F0=V((q9,J0)=>{var O4=o(),b4=($,J,F)=>O4($,J,F)===0;J0.exports=b4});var W0=V((A9,w0)=>{var v4=o(),h4=($,J,F)=>v4($,J,F)!==0;w0.exports=h4});var Z0=V((S9,U0)=>{var g4=o(),m4=($,J,F)=>g4($,J,F)>0;U0.exports=m4});var Y0=V((C9,B0)=>{var l4=o(),u4=($,J,F)=>l4($,J,F)<0;B0.exports=u4});var K0=V((M9,Q0)=>{var c4=o(),a4=($,J,F)=>c4($,J,F)<=0;Q0.exports=a4});var G0=V((k9,I0)=>{var r4=F0(),e4=W0(),p4=Z0(),n4=p2(),s4=Y0(),t4=K0(),i4=($,J,F,w)=>{switch(J){case"===":if(typeof $==="object")$=$.version;if(typeof F==="object")F=F.version;return $===F;case"!==":if(typeof $==="object")$=$.version;if(typeof F==="object")F=F.version;return $!==F;case"":case"=":case"==":return r4($,F,w);case"!=":return e4($,F,w);case">":return p4($,F,w);case">=":return n4($,F,w);case"<":return s4($,F,w);case"<=":return t4($,F,w);default:throw new TypeError(`Invalid operator: ${J}`)}};I0.exports=i4});var V0=V((x9,X0)=>{var N2=Symbol("SemVer ANY");class k2{static get ANY(){return N2}constructor($,J){if(J=H0(J),$ instanceof k2)if($.loose===!!J.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),s2("comparator",$,J),this.options=J,this.loose=!!J.loose,this.parse($),this.semver===N2)this.value="";else this.value=this.operator+this.semver.version;s2("comp",this)}parse($){let J=this.options.loose?P0[y0.COMPARATORLOOSE]:P0[y0.COMPARATOR],F=$.match(J);if(!F)throw new TypeError(`Invalid comparator: ${$}`);if(this.operator=F[1]!==void 0?F[1]:"",this.operator==="=")this.operator="";if(!F[2])this.semver=N2;else this.semver=new L0(F[2],this.options.loose)}toString(){return this.value}test($){if(s2("Comparator.test",$,this.options.loose),this.semver===N2||$===N2)return!0;if(typeof $==="string")try{$=new L0($,this.options)}catch(J){return!1}return n2($,this.operator,this.semver,this.options)}intersects($,J){if(!($ instanceof k2))throw new TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new N0($.value,J).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new N0(this.value,J).test($.semver)}if(J=H0(J),J.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!J.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(n2(this.semver,"<",$.semver,J)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(n2(this.semver,">",$.semver,J)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}X0.exports=k2;var H0=q2(),{safeRe:P0,t:y0}=L2(),n2=G0(),s2=y2(),L0=Z2(),N0=t2()});var t2=V((f9,j0)=>{var o4=/\s+/g;class X2{constructor($,J){if(J=J3(J),$ instanceof X2)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else return new X2($.raw,J);if($ instanceof i2)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease,this.raw=$.trim().replace(o4," "),this.set=this.raw.split("||").map((F)=>this.parseRange(F.trim())).filter((F)=>F.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let F=this.set[0];if(this.set=this.set.filter((w)=>!T0(w[0])),this.set.length===0)this.set=[F];else if(this.set.length>1){for(let w of this.set)if(w.length===1&&Y3(w[0])){this.set=[w];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let J=this.set[$];for(let F=0;F<J.length;F++){if(F>0)this.formatted+=" ";this.formatted+=J[F].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let F=((this.options.includePrerelease&&Z3)|(this.options.loose&&B3))+":"+$,w=D0.get(F);if(w)return w;let W=this.options.loose,Z=W?k[S.HYPHENRANGELOOSE]:k[S.HYPHENRANGE];$=$.replace(Z,X3(this.options.includePrerelease)),z("hyphen replace",$),$=$.replace(k[S.COMPARATORTRIM],w3),z("comparator trim",$),$=$.replace(k[S.TILDETRIM],W3),z("tilde trim",$),$=$.replace(k[S.CARETTRIM],U3),z("caret trim",$);let B=$.split(" ").map((N)=>Q3(N,this.options)).join(" ").split(/\s+/).map((N)=>N3(N,this.options));if(W)B=B.filter((N)=>{return z("loose invalid filter",N,this.options),!!N.match(k[S.COMPARATORLOOSE])});z("range list",B);let Y=new Map,K=B.map((N)=>new i2(N,this.options));for(let N of K){if(T0(N))return[N];Y.set(N.value,N)}if(Y.size>1&&Y.has(""))Y.delete("");let G=[...Y.values()];return D0.set(F,G),G}intersects($,J){if(!($ instanceof X2))throw new TypeError("a Range is required");return this.set.some((F)=>{return z0(F,J)&&$.set.some((w)=>{return z0(w,J)&&F.every((W)=>{return w.every((Z)=>{return W.intersects(Z,J)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new F3($,this.options)}catch(J){return!1}for(let J=0;J<this.set.length;J++)if(V3(this.set[J],$,this.options))return!0;return!1}}j0.exports=X2;var $3=$0(),D0=new $3,J3=q2(),i2=V0(),z=y2(),F3=Z2(),{safeRe:k,t:S,comparatorTrimReplace:w3,tildeTrimReplace:W3,caretTrimReplace:U3}=L2(),{FLAG_INCLUDE_PRERELEASE:Z3,FLAG_LOOSE:B3}=E2(),T0=($)=>$.value==="<0.0.0-0",Y3=($)=>$.value==="",z0=($,J)=>{let F=!0,w=$.slice(),W=w.pop();while(F&&w.length)F=w.every((Z)=>{return W.intersects(Z,J)}),W=w.pop();return F},Q3=($,J)=>{return z("comp",$,J),$=G3($,J),z("caret",$),$=K3($,J),z("tildes",$),$=P3($,J),z("xrange",$),$=L3($,J),z("stars",$),$},C=($)=>!$||$.toLowerCase()==="x"||$==="*",K3=($,J)=>{return $.trim().split(/\s+/).map((F)=>I3(F,J)).join(" ")},I3=($,J)=>{let F=J.loose?k[S.TILDELOOSE]:k[S.TILDE];return $.replace(F,(w,W,Z,B,Y)=>{z("tilde",$,w,W,Z,B,Y);let K;if(C(W))K="";else if(C(Z))K=`>=${W}.0.0 <${+W+1}.0.0-0`;else if(C(B))K=`>=${W}.${Z}.0 <${W}.${+Z+1}.0-0`;else if(Y)z("replaceTilde pr",Y),K=`>=${W}.${Z}.${B}-${Y} <${W}.${+Z+1}.0-0`;else K=`>=${W}.${Z}.${B} <${W}.${+Z+1}.0-0`;return z("tilde return",K),K})},G3=($,J)=>{return $.trim().split(/\s+/).map((F)=>H3(F,J)).join(" ")},H3=($,J)=>{z("caret",$,J);let F=J.loose?k[S.CARETLOOSE]:k[S.CARET],w=J.includePrerelease?"-0":"";return $.replace(F,(W,Z,B,Y,K)=>{z("caret",$,W,Z,B,Y,K);let G;if(C(Z))G="";else if(C(B))G=`>=${Z}.0.0${w} <${+Z+1}.0.0-0`;else if(C(Y))if(Z==="0")G=`>=${Z}.${B}.0${w} <${Z}.${+B+1}.0-0`;else G=`>=${Z}.${B}.0${w} <${+Z+1}.0.0-0`;else if(K)if(z("replaceCaret pr",K),Z==="0")if(B==="0")G=`>=${Z}.${B}.${Y}-${K} <${Z}.${B}.${+Y+1}-0`;else G=`>=${Z}.${B}.${Y}-${K} <${Z}.${+B+1}.0-0`;else G=`>=${Z}.${B}.${Y}-${K} <${+Z+1}.0.0-0`;else if(z("no pr"),Z==="0")if(B==="0")G=`>=${Z}.${B}.${Y}${w} <${Z}.${B}.${+Y+1}-0`;else G=`>=${Z}.${B}.${Y}${w} <${Z}.${+B+1}.0-0`;else G=`>=${Z}.${B}.${Y} <${+Z+1}.0.0-0`;return z("caret return",G),G})},P3=($,J)=>{return z("replaceXRanges",$,J),$.split(/\s+/).map((F)=>y3(F,J)).join(" ")},y3=($,J)=>{$=$.trim();let F=J.loose?k[S.XRANGELOOSE]:k[S.XRANGE];return $.replace(F,(w,W,Z,B,Y,K)=>{z("xRange",$,w,W,Z,B,Y,K);let G=C(Z),N=G||C(B),D=N||C(Y),A=D;if(W==="="&&A)W="";if(K=J.includePrerelease?"-0":"",G)if(W===">"||W==="<")w="<0.0.0-0";else w="*";else if(W&&A){if(N)B=0;if(Y=0,W===">")if(W=">=",N)Z=+Z+1,B=0,Y=0;else B=+B+1,Y=0;else if(W==="<=")if(W="<",N)Z=+Z+1;else B=+B+1;if(W==="<")K="-0";w=`${W+Z}.${B}.${Y}${K}`}else if(N)w=`>=${Z}.0.0${K} <${+Z+1}.0.0-0`;else if(D)w=`>=${Z}.${B}.0${K} <${Z}.${+B+1}.0-0`;return z("xRange return",w),w})},L3=($,J)=>{return z("replaceStars",$,J),$.trim().replace(k[S.STAR],"")},N3=($,J)=>{return z("replaceGTE0",$,J),$.trim().replace(k[J.includePrerelease?S.GTE0PRE:S.GTE0],"")},X3=($)=>(J,F,w,W,Z,B,Y,K,G,N,D,A)=>{if(C(w))F="";else if(C(W))F=`>=${w}.0.0${$?"-0":""}`;else if(C(Z))F=`>=${w}.${W}.0${$?"-0":""}`;else if(B)F=`>=${F}`;else F=`>=${F}${$?"-0":""}`;if(C(G))K="";else if(C(N))K=`<${+G+1}.0.0-0`;else if(C(D))K=`<${G}.${+N+1}.0-0`;else if(A)K=`<=${G}.${N}.${D}-${A}`;else if($)K=`<${G}.${N}.${+D+1}-0`;else K=`<=${K}`;return`${F} ${K}`.trim()},V3=($,J,F)=>{for(let w=0;w<$.length;w++)if(!$[w].test(J))return!1;if(J.prerelease.length&&!F.includePrerelease){for(let w=0;w<$.length;w++){if(z($[w].semver),$[w].semver===i2.ANY)continue;if($[w].semver.prerelease.length>0){let W=$[w].semver;if(W.major===J.major&&W.minor===J.minor&&W.patch===J.patch)return!0}}return!1}return!0}});var _0=V((d9,R0)=>{var D3=t2(),T3=($,J,F)=>{try{J=new D3(J,F)}catch(w){return!1}return J.test($)};R0.exports=T3});var o2=V((O9,z3)=>{z3.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.5",author:"Lovell Fuller <npm@lovell.info>",homepage:"https://sharp.pixelplumbing.com",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>","Don Denton <don@happycollision.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.3",semver:"^7.6.3"},optionalDependencies:{"@img/sharp-darwin-arm64":"0.33.5","@img/sharp-darwin-x64":"0.33.5","@img/sharp-libvips-darwin-arm64":"1.0.4","@img/sharp-libvips-darwin-x64":"1.0.4","@img/sharp-libvips-linux-arm":"1.0.5","@img/sharp-libvips-linux-arm64":"1.0.4","@img/sharp-libvips-linux-s390x":"1.0.4","@img/sharp-libvips-linux-x64":"1.0.4","@img/sharp-libvips-linuxmusl-arm64":"1.0.4","@img/sharp-libvips-linuxmusl-x64":"1.0.4","@img/sharp-linux-arm":"0.33.5","@img/sharp-linux-arm64":"0.33.5","@img/sharp-linux-s390x":"0.33.5","@img/sharp-linux-x64":"0.33.5","@img/sharp-linuxmusl-arm64":"0.33.5","@img/sharp-linuxmusl-x64":"0.33.5","@img/sharp-wasm32":"0.33.5","@img/sharp-win32-ia32":"0.33.5","@img/sharp-win32-x64":"0.33.5"},devDependencies:{"@emnapi/runtime":"^1.2.0","@img/sharp-libvips-dev":"1.0.4","@img/sharp-libvips-dev-wasm32":"1.0.5","@img/sharp-libvips-win32-ia32":"1.0.4","@img/sharp-libvips-win32-x64":"1.0.4","@types/node":"*",async:"^3.2.5",cc:"^3.0.1",emnapi:"^1.2.0","exif-reader":"^2.0.1","extract-zip":"^2.0.1",icc:"^3.0.0","jsdoc-to-markdown":"^8.0.3","license-checker":"^25.0.1",mocha:"^10.7.3","node-addon-api":"^8.1.0",nyc:"^17.0.0",prebuild:"^13.0.1",semistandard:"^17.0.0","tar-fs":"^3.0.6",tsd:"^0.31.1"},license:"Apache-2.0",engines:{node:"^18.17.0 || ^20.3.0 || >=21.0.0"},config:{libvips:">=8.15.3"},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 J1=V((b9,d0)=>{var{spawnSync:x2}=j("child_process"),{createHash:j3}=j("crypto"),S0=p1(),R3=p2(),_3=_0(),E0=j("detect-libc"),{config:E3,engines:q0,optionalDependencies:q3}=o2(),A3=process.env.npm_package_config_libvips||E3.libvips,C0=S0(A3).version,S3=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-ia32","win32-x64"],f2={encoding:"utf8",shell:!0},C3=($)=>{if($ instanceof Error)console.error(`sharp: Installation error: ${$.message}`);else console.log(`sharp: ${$}`)},M0=()=>E0.isNonGlibcLinuxSync()?E0.familySync():"",M3=()=>`${process.platform}${M0()}-${process.arch}`,B2=()=>{if(k0())return"wasm32";let{npm_config_arch:$,npm_config_platform:J,npm_config_libc:F}=process.env,w=typeof F==="string"?F:M0();return`${J||process.platform}${w}-${$||process.arch}`},k3=()=>{try{return j(`@img/sharp-libvips-dev-${B2()}/include`)}catch{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/include");})()}catch{}}return""},x3=()=>{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/cplusplus");})()}catch{}return""},f3=()=>{try{return j(`@img/sharp-libvips-dev-${B2()}/lib`)}catch{try{return j(`@img/sharp-libvips-${B2()}/lib`)}catch{}}return""},d3=()=>{if(process.release?.name==="node"&&process.versions){if(!_3(process.versions.node,q0.node))return{found:process.versions.node,expected:q0.node}}},k0=()=>{let{CC:$}=process.env;return Boolean($&&$.endsWith("/emcc"))},O3=()=>{if(process.platform==="darwin"&&process.arch==="x64")return(x2("sysctl sysctl.proc_translated",f2).stdout||"").trim()==="sysctl.proc_translated: 1";return!1},A0=($)=>j3("sha512").update($).digest("hex"),b3=()=>{try{let $=A0(`imgsharp-libvips-${B2()}`),J=S0(q3[`@img/sharp-libvips-${B2()}`]).version;return A0(`${$}npm:${J}`).slice(0,10)}catch{}return""},v3=()=>x2(`node-gyp rebuild --directory=src ${k0()?"--nodedir=emscripten":""}`,{...f2,stdio:"inherit"}).status,x0=()=>{if(process.platform!=="win32")return(x2("pkg-config --modversion vips-cpp",{...f2,env:{...process.env,PKG_CONFIG_PATH:f0()}}).stdout||"").trim();else return""},f0=()=>{if(process.platform!=="win32")return[(x2('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',f2).stdout||"").trim(),process.env.PKG_CONFIG_PATH,"/usr/local/lib/pkgconfig","/usr/lib/pkgconfig","/usr/local/libdata/pkgconfig","/usr/libdata/pkgconfig"].filter(Boolean).join(":");else return""},$1=($,J,F)=>{if(F)F(`Detected ${J}, skipping search for globally-installed libvips`);return $},h3=($)=>{if(Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)===!0)return $1(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",$);if(Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS)===!0)return $1(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",$);if(O3())return $1(!1,"Rosetta",$);let J=x0();return!!J&&R3(J,C0)};d0.exports={minimumLibvipsVersion:C0,prebuiltPlatforms:S3,buildPlatformArch:B2,buildSharpLibvipsIncludeDir:k3,buildSharpLibvipsCPlusPlusDir:x3,buildSharpLibvipsLibDir:f3,isUnsupportedNodeRuntime:d3,runtimePlatformArch:M3,log:C3,yarnLocator:b3,spawnRebuild:v3,globalLibvipsVersion:x0,pkgConfigPath:f0,useGlobalLibvips:h3}});var V2=V((h9,b0)=>{var{familySync:g3,versionSync:m3}=j("detect-libc"),{runtimePlatformArch:l3,isUnsupportedNodeRuntime:O0,prebuiltPlatforms:u3,minimumLibvipsVersion:c3}=J1(),$2=l3(),a3=[`../src/build/Release/sharp-${$2}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${$2}/sharp.node`,"@img/sharp-wasm32/sharp.node"],F1,d2=[];for(let $ of a3)try{F1=j($);break}catch(J){d2.push(J)}if(F1)b0.exports=F1;else{let[$,J,F]=["linux","darwin","win32"].map((Z)=>$2.startsWith(Z)),w=[`Could not load the "sharp" module using the ${$2} runtime`];d2.forEach((Z)=>{if(Z.code!=="MODULE_NOT_FOUND")w.push(`${Z.code}: ${Z.message}`)});let W=d2.map((Z)=>Z.message).join(" ");if(w.push("Possible solutions:"),O0()){let{found:Z,expected:B}=O0();w.push("- Please upgrade Node.js:",` Found ${Z}`,` Requires ${B}`)}else if(u3.includes($2)){let[Z,B]=$2.split("-"),Y=Z.endsWith("musl")?" --libc=musl":"";w.push("- Ensure optional dependencies can be installed:"," npm install --include=optional sharp","- Ensure your package manager supports multi-platform installation:"," See https://sharp.pixelplumbing.com/install#cross-platform","- Add platform-specific dependencies:",` npm install --os=${Z.replace("musl","")}${Y} --cpu=${B} sharp`)}else w.push(`- Manually install libvips >= ${c3}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if($&&/(symbol not found|CXXABI_)/i.test(W))try{let{config:Z}=j(`@img/sharp-libvips-${$2}/package`),B=`${g3()} ${m3()}`,Y=`${Z.musl?"musl":"glibc"} ${Z.musl||Z.glibc}`;w.push("- Update your OS:",` Found ${B}`,` Requires ${Y}`)}catch(Z){}if($&&/\/snap\/core[0-9]{2}/.test(W))w.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node");if(J&&/Incompatible library version/.test(W))w.push("- Update Homebrew:"," brew update && brew upgrade vips");if(d2.some((Z)=>Z.code==="ERR_DLOPEN_DISABLED"))w.push("- Run Node.js without using the --no-addons flag");if(F&&/The specified procedure could not be found/.test(W))w.push("- Using the canvas package on Windows?"," See https://sharp.pixelplumbing.com/install#canvas-and-windows","- Check for outdated versions of sharp in the dependency tree:"," npm ls sharp");throw w.push("- Consult the installation documentation:"," See https://sharp.pixelplumbing.com/install"),new Error(w.join(`
|
|
3
|
+
`))}});var h0=V((m9,v0)=>{var r3=j("util"),w1=j("stream"),e3=u();V2();var p3=r3.debuglog("sharp"),J2=function($,J){if(arguments.length===1&&!e3.defined($))throw new Error("Invalid input");if(!(this instanceof J2))return new J2($,J);return w1.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:!1,angle:0,rotationAngle:0,rotationBackground:[0,0,0,255],rotateBeforePreExtract:!1,flip:!1,flop:!1,extendTop:0,extendBottom:0,extendLeft:0,extendRight:0,extendBackground:[0,0,0,255],extendWith:"background",withoutEnlargement:!1,withoutReduction:!1,affineMatrix:[],affineBackground:[0,0,0,255],affineIdx:0,affineIdy:0,affineOdx:0,affineOdy:0,affineInterpolator:this.constructor.interpolators.bilinear,kernel:"lanczos3",fastShrinkOnLoad:!0,tint:[-1,0,0,0],flatten:!1,flattenBackground:[0,0,0],unflatten:!1,negate:!1,negateAlpha:!0,medianSize:0,blurSigma:0,precision:"integer",minAmpl:0.2,sharpenSigma:0,sharpenM1:1,sharpenM2:2,sharpenX1:2,sharpenY2:10,sharpenY3:20,threshold:0,thresholdGrayscale:!0,trimBackground:[],trimThreshold:-1,trimLineArt:!1,gamma:0,gammaOut:0,greyscale:!1,normalise:!1,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:!1,ensureAlpha:-1,colourspace:"srgb",colourspacePipeline:"last",composite:[],fileOut:"",formatOut:"input",streamOut:!1,keepMetadata:0,withMetadataOrientation:-1,withMetadataDensity:0,withIccProfile:"",withExif:{},withExifMerge:!0,resolveWithObject:!1,jpegQuality:80,jpegProgressive:!1,jpegChromaSubsampling:"4:2:0",jpegTrellisQuantisation:!1,jpegOvershootDeringing:!1,jpegOptimiseScans:!1,jpegOptimiseCoding:!0,jpegQuantisationTable:0,pngProgressive:!1,pngCompressionLevel:6,pngAdaptiveFiltering:!1,pngPalette:!1,pngQuality:100,pngEffort:7,pngBitdepth:8,pngDither:1,jp2Quality:80,jp2TileHeight:512,jp2TileWidth:512,jp2Lossless:!1,jp2ChromaSubsampling:"4:4:4",webpQuality:80,webpAlphaQuality:100,webpLossless:!1,webpNearLossless:!1,webpSmartSubsample:!1,webpPreset:"default",webpEffort:4,webpMinSize:!1,webpMixed:!1,gifBitdepth:8,gifEffort:7,gifDither:1,gifInterFrameMaxError:0,gifInterPaletteMaxError:3,gifReuse:!0,gifProgressive:!1,tiffQuality:80,tiffCompression:"jpeg",tiffPredictor:"horizontal",tiffPyramid:!1,tiffMiniswhite:!1,tiffBitdepth:8,tiffTile:!1,tiffTileHeight:256,tiffTileWidth:256,tiffXres:1,tiffYres:1,tiffResolutionUnit:"inch",heifQuality:50,heifLossless:!1,heifCompression:"av1",heifEffort:4,heifChromaSubsampling:"4:4:4",heifBitdepth:8,jxlDistance:1,jxlDecodingTier:0,jxlEffort:7,jxlLossless:!1,rawDepth:"uchar",tileSize:256,tileOverlap:0,tileContainer:"fs",tileLayout:"dz",tileFormat:"last",tileDepth:"last",tileAngle:0,tileSkipBlanks:-1,tileBackground:[255,255,255,255],tileCentre:!1,tileId:"https://example.com/iiif",tileBasename:"",timeoutSeconds:0,linearA:[],linearB:[],debuglog:(F)=>{this.emit("warning",F),p3(F)},queueListener:function(F){J2.queue.emit("change",F)}},this.options.input=this._createInputDescriptor($,J,{allowStream:!0}),this};Object.setPrototypeOf(J2.prototype,w1.Duplex.prototype);Object.setPrototypeOf(J2,w1.Duplex);function n3(){let $=this.constructor.call(),{debuglog:J,queueListener:F,...w}=this.options;if($.options=structuredClone(w),$.options.debuglog=J,$.options.queueListener=F,this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),$.options.input.buffer=this.options.input.buffer,$.emit("finish")});return $}Object.assign(J2.prototype,{clone:n3});v0.exports=J2});var W1=V((l9,g0)=>{g0.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 l0=V((u9,m0)=>{m0.exports=function $(J){if(!J||typeof J==="string")return!1;return J instanceof Array||Array.isArray(J)||J.length>=0&&(J.splice instanceof Function||Object.getOwnPropertyDescriptor(J,J.length-1)&&J.constructor.name!=="String")}});var a0=V((c9,c0)=>{var s3=l0(),t3=Array.prototype.concat,i3=Array.prototype.slice,u0=c0.exports=function $(J){var F=[];for(var w=0,W=J.length;w<W;w++){var Z=J[w];if(s3(Z))F=t3.call(F,i3.call(Z));else F.push(Z)}return F};u0.wrap=function($){return function(){return $(u0(arguments))}}});var n0=V((a9,p0)=>{var D2=W1(),T2=a0(),r0=Object.hasOwnProperty,e0=Object.create(null);for(O2 in D2)if(r0.call(D2,O2))e0[D2[O2]]=O2;var O2,O=p0.exports={to:{},get:{}};O.get=function($){var J=$.substring(0,3).toLowerCase(),F,w;switch(J){case"hsl":F=O.get.hsl($),w="hsl";break;case"hwb":F=O.get.hwb($),w="hwb";break;default:F=O.get.rgb($),w="rgb";break}if(!F)return null;return{model:w,value:F}};O.get.rgb=function($){if(!$)return null;var J=/^#([a-f0-9]{3,4})$/i,F=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,w=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,W=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,Z=/^(\w+)$/,B=[0,0,0,1],Y,K,G;if(Y=$.match(F)){G=Y[2],Y=Y[1];for(K=0;K<3;K++){var N=K*2;B[K]=parseInt(Y.slice(N,N+2),16)}if(G)B[3]=parseInt(G,16)/255}else if(Y=$.match(J)){Y=Y[1],G=Y[3];for(K=0;K<3;K++)B[K]=parseInt(Y[K]+Y[K],16);if(G)B[3]=parseInt(G+G,16)/255}else if(Y=$.match(w)){for(K=0;K<3;K++)B[K]=parseInt(Y[K+1],0);if(Y[4])if(Y[5])B[3]=parseFloat(Y[4])*0.01;else B[3]=parseFloat(Y[4])}else if(Y=$.match(W)){for(K=0;K<3;K++)B[K]=Math.round(parseFloat(Y[K+1])*2.55);if(Y[4])if(Y[5])B[3]=parseFloat(Y[4])*0.01;else B[3]=parseFloat(Y[4])}else if(Y=$.match(Z)){if(Y[1]==="transparent")return[0,0,0,0];if(!r0.call(D2,Y[1]))return null;return B=D2[Y[1]],B[3]=1,B}else return null;for(K=0;K<3;K++)B[K]=s(B[K],0,255);return B[3]=s(B[3],0,1),B};O.get.hsl=function($){if(!$)return null;var J=/^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*)?\)$/,F=$.match(J);if(F){var w=parseFloat(F[4]),W=(parseFloat(F[1])%360+360)%360,Z=s(parseFloat(F[2]),0,100),B=s(parseFloat(F[3]),0,100),Y=s(isNaN(w)?1:w,0,1);return[W,Z,B,Y]}return null};O.get.hwb=function($){if(!$)return null;var J=/^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*)?\)$/,F=$.match(J);if(F){var w=parseFloat(F[4]),W=(parseFloat(F[1])%360+360)%360,Z=s(parseFloat(F[2]),0,100),B=s(parseFloat(F[3]),0,100),Y=s(isNaN(w)?1:w,0,1);return[W,Z,B,Y]}return null};O.to.hex=function(){var $=T2(arguments);return"#"+b2($[0])+b2($[1])+b2($[2])+($[3]<1?b2(Math.round($[3]*255)):"")};O.to.rgb=function(){var $=T2(arguments);return $.length<4||$[3]===1?"rgb("+Math.round($[0])+", "+Math.round($[1])+", "+Math.round($[2])+")":"rgba("+Math.round($[0])+", "+Math.round($[1])+", "+Math.round($[2])+", "+$[3]+")"};O.to.rgb.percent=function(){var $=T2(arguments),J=Math.round($[0]/255*100),F=Math.round($[1]/255*100),w=Math.round($[2]/255*100);return $.length<4||$[3]===1?"rgb("+J+"%, "+F+"%, "+w+"%)":"rgba("+J+"%, "+F+"%, "+w+"%, "+$[3]+")"};O.to.hsl=function(){var $=T2(arguments);return $.length<4||$[3]===1?"hsl("+$[0]+", "+$[1]+"%, "+$[2]+"%)":"hsla("+$[0]+", "+$[1]+"%, "+$[2]+"%, "+$[3]+")"};O.to.hwb=function(){var $=T2(arguments),J="";if($.length>=4&&$[3]!==1)J=", "+$[3];return"hwb("+$[0]+", "+$[1]+"%, "+$[2]+"%"+J+")"};O.to.keyword=function($){return e0[$.slice(0,3)]};function s($,J,F){return Math.min(Math.max(J,$),F)}function b2($){var J=Math.round($).toString(16).toUpperCase();return J.length<2?"0"+J:J}});var U1=V((r9,t0)=>{var z2=W1(),s0={};for(let $ of Object.keys(z2))s0[z2[$]]=$;var y={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"]}};t0.exports=y;for(let $ of Object.keys(y)){if(!("channels"in y[$]))throw new Error("missing channels property: "+$);if(!("labels"in y[$]))throw new Error("missing channel labels property: "+$);if(y[$].labels.length!==y[$].channels)throw new Error("channel and label counts mismatch: "+$);let{channels:J,labels:F}=y[$];delete y[$].channels,delete y[$].labels,Object.defineProperty(y[$],"channels",{value:J}),Object.defineProperty(y[$],"labels",{value:F})}y.rgb.hsl=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255,W=Math.min(J,F,w),Z=Math.max(J,F,w),B=Z-W,Y,K;if(Z===W)Y=0;else if(J===Z)Y=(F-w)/B;else if(F===Z)Y=2+(w-J)/B;else if(w===Z)Y=4+(J-F)/B;if(Y=Math.min(Y*60,360),Y<0)Y+=360;let G=(W+Z)/2;if(Z===W)K=0;else if(G<=0.5)K=B/(Z+W);else K=B/(2-Z-W);return[Y,K*100,G*100]};y.rgb.hsv=function($){let J,F,w,W,Z,B=$[0]/255,Y=$[1]/255,K=$[2]/255,G=Math.max(B,Y,K),N=G-Math.min(B,Y,K),D=function(A){return(G-A)/6/N+0.5};if(N===0)W=0,Z=0;else{if(Z=N/G,J=D(B),F=D(Y),w=D(K),B===G)W=w-F;else if(Y===G)W=0.3333333333333333+J-w;else if(K===G)W=0.6666666666666666+F-J;if(W<0)W+=1;else if(W>1)W-=1}return[W*360,Z*100,G*100]};y.rgb.hwb=function($){let J=$[0],F=$[1],w=$[2],W=y.rgb.hsl($)[0],Z=0.00392156862745098*Math.min(J,Math.min(F,w));return w=1-0.00392156862745098*Math.max(J,Math.max(F,w)),[W,Z*100,w*100]};y.rgb.cmyk=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255,W=Math.min(1-J,1-F,1-w),Z=(1-J-W)/(1-W)||0,B=(1-F-W)/(1-W)||0,Y=(1-w-W)/(1-W)||0;return[Z*100,B*100,Y*100,W*100]};function o3($,J){return($[0]-J[0])**2+($[1]-J[1])**2+($[2]-J[2])**2}y.rgb.keyword=function($){let J=s0[$];if(J)return J;let F=1/0,w;for(let W of Object.keys(z2)){let Z=z2[W],B=o3($,Z);if(B<F)F=B,w=W}return w};y.keyword.rgb=function($){return z2[$]};y.rgb.xyz=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255;J=J>0.04045?((J+0.055)/1.055)**2.4:J/12.92,F=F>0.04045?((F+0.055)/1.055)**2.4:F/12.92,w=w>0.04045?((w+0.055)/1.055)**2.4:w/12.92;let W=J*0.4124+F*0.3576+w*0.1805,Z=J*0.2126+F*0.7152+w*0.0722,B=J*0.0193+F*0.1192+w*0.9505;return[W*100,Z*100,B*100]};y.rgb.lab=function($){let J=y.rgb.xyz($),F=J[0],w=J[1],W=J[2];F/=95.047,w/=100,W/=108.883,F=F>0.008856?F**0.3333333333333333:7.787*F+0.13793103448275862,w=w>0.008856?w**0.3333333333333333:7.787*w+0.13793103448275862,W=W>0.008856?W**0.3333333333333333:7.787*W+0.13793103448275862;let Z=116*w-16,B=500*(F-w),Y=200*(w-W);return[Z,B,Y]};y.hsl.rgb=function($){let J=$[0]/360,F=$[1]/100,w=$[2]/100,W,Z,B;if(F===0)return B=w*255,[B,B,B];if(w<0.5)W=w*(1+F);else W=w+F-w*F;let Y=2*w-W,K=[0,0,0];for(let G=0;G<3;G++){if(Z=J+0.3333333333333333*-(G-1),Z<0)Z++;if(Z>1)Z--;if(6*Z<1)B=Y+(W-Y)*6*Z;else if(2*Z<1)B=W;else if(3*Z<2)B=Y+(W-Y)*(0.6666666666666666-Z)*6;else B=Y;K[G]=B*255}return K};y.hsl.hsv=function($){let J=$[0],F=$[1]/100,w=$[2]/100,W=F,Z=Math.max(w,0.01);w*=2,F*=w<=1?w:2-w,W*=Z<=1?Z:2-Z;let B=(w+F)/2,Y=w===0?2*W/(Z+W):2*F/(w+F);return[J,Y*100,B*100]};y.hsv.rgb=function($){let J=$[0]/60,F=$[1]/100,w=$[2]/100,W=Math.floor(J)%6,Z=J-Math.floor(J),B=255*w*(1-F),Y=255*w*(1-F*Z),K=255*w*(1-F*(1-Z));switch(w*=255,W){case 0:return[w,K,B];case 1:return[Y,w,B];case 2:return[B,w,K];case 3:return[B,Y,w];case 4:return[K,B,w];case 5:return[w,B,Y]}};y.hsv.hsl=function($){let J=$[0],F=$[1]/100,w=$[2]/100,W=Math.max(w,0.01),Z,B;B=(2-F)*w;let Y=(2-F)*W;return Z=F*W,Z/=Y<=1?Y:2-Y,Z=Z||0,B/=2,[J,Z*100,B*100]};y.hwb.rgb=function($){let J=$[0]/360,F=$[1]/100,w=$[2]/100,W=F+w,Z;if(W>1)F/=W,w/=W;let B=Math.floor(6*J),Y=1-w;if(Z=6*J-B,(B&1)!==0)Z=1-Z;let K=F+Z*(Y-F),G,N,D;switch(B){default:case 6:case 0:G=Y,N=K,D=F;break;case 1:G=K,N=Y,D=F;break;case 2:G=F,N=Y,D=K;break;case 3:G=F,N=K,D=Y;break;case 4:G=K,N=F,D=Y;break;case 5:G=Y,N=F,D=K;break}return[G*255,N*255,D*255]};y.cmyk.rgb=function($){let J=$[0]/100,F=$[1]/100,w=$[2]/100,W=$[3]/100,Z=1-Math.min(1,J*(1-W)+W),B=1-Math.min(1,F*(1-W)+W),Y=1-Math.min(1,w*(1-W)+W);return[Z*255,B*255,Y*255]};y.xyz.rgb=function($){let J=$[0]/100,F=$[1]/100,w=$[2]/100,W,Z,B;return W=J*3.2406+F*-1.5372+w*-0.4986,Z=J*-0.9689+F*1.8758+w*0.0415,B=J*0.0557+F*-0.204+w*1.057,W=W>0.0031308?1.055*W**0.4166666666666667-0.055:W*12.92,Z=Z>0.0031308?1.055*Z**0.4166666666666667-0.055:Z*12.92,B=B>0.0031308?1.055*B**0.4166666666666667-0.055:B*12.92,W=Math.min(Math.max(0,W),1),Z=Math.min(Math.max(0,Z),1),B=Math.min(Math.max(0,B),1),[W*255,Z*255,B*255]};y.xyz.lab=function($){let J=$[0],F=$[1],w=$[2];J/=95.047,F/=100,w/=108.883,J=J>0.008856?J**0.3333333333333333:7.787*J+0.13793103448275862,F=F>0.008856?F**0.3333333333333333:7.787*F+0.13793103448275862,w=w>0.008856?w**0.3333333333333333:7.787*w+0.13793103448275862;let W=116*F-16,Z=500*(J-F),B=200*(F-w);return[W,Z,B]};y.lab.xyz=function($){let J=$[0],F=$[1],w=$[2],W,Z,B;Z=(J+16)/116,W=F/500+Z,B=Z-w/200;let Y=Z**3,K=W**3,G=B**3;return Z=Y>0.008856?Y:(Z-0.13793103448275862)/7.787,W=K>0.008856?K:(W-0.13793103448275862)/7.787,B=G>0.008856?G:(B-0.13793103448275862)/7.787,W*=95.047,Z*=100,B*=108.883,[W,Z,B]};y.lab.lch=function($){let J=$[0],F=$[1],w=$[2],W;if(W=Math.atan2(w,F)*360/2/Math.PI,W<0)W+=360;let B=Math.sqrt(F*F+w*w);return[J,B,W]};y.lch.lab=function($){let J=$[0],F=$[1],W=$[2]/360*2*Math.PI,Z=F*Math.cos(W),B=F*Math.sin(W);return[J,Z,B]};y.rgb.ansi16=function($,J=null){let[F,w,W]=$,Z=J===null?y.rgb.hsv($)[2]:J;if(Z=Math.round(Z/50),Z===0)return 30;let B=30+(Math.round(W/255)<<2|Math.round(w/255)<<1|Math.round(F/255));if(Z===2)B+=60;return B};y.hsv.ansi16=function($){return y.rgb.ansi16(y.hsv.rgb($),$[2])};y.rgb.ansi256=function($){let J=$[0],F=$[1],w=$[2];if(J===F&&F===w){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(F/255*5)+Math.round(w/255*5)};y.ansi16.rgb=function($){let J=$%10;if(J===0||J===7){if($>50)J+=3.5;return J=J/10.5*255,[J,J,J]}let F=(~~($>50)+1)*0.5,w=(J&1)*F*255,W=(J>>1&1)*F*255,Z=(J>>2&1)*F*255;return[w,W,Z]};y.ansi256.rgb=function($){if($>=232){let Z=($-232)*10+8;return[Z,Z,Z]}$-=16;let J,F=Math.floor($/36)/5*255,w=Math.floor((J=$%36)/6)/5*255,W=J%6/5*255;return[F,w,W]};y.rgb.hex=function($){let F=(((Math.round($[0])&255)<<16)+((Math.round($[1])&255)<<8)+(Math.round($[2])&255)).toString(16).toUpperCase();return"000000".substring(F.length)+F};y.hex.rgb=function($){let J=$.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!J)return[0,0,0];let F=J[0];if(J[0].length===3)F=F.split("").map((Y)=>{return Y+Y}).join("");let w=parseInt(F,16),W=w>>16&255,Z=w>>8&255,B=w&255;return[W,Z,B]};y.rgb.hcg=function($){let J=$[0]/255,F=$[1]/255,w=$[2]/255,W=Math.max(Math.max(J,F),w),Z=Math.min(Math.min(J,F),w),B=W-Z,Y,K;if(B<1)Y=Z/(1-B);else Y=0;if(B<=0)K=0;else if(W===J)K=(F-w)/B%6;else if(W===F)K=2+(w-J)/B;else K=4+(J-F)/B;return K/=6,K%=1,[K*360,B*100,Y*100]};y.hsl.hcg=function($){let J=$[1]/100,F=$[2]/100,w=F<0.5?2*J*F:2*J*(1-F),W=0;if(w<1)W=(F-0.5*w)/(1-w);return[$[0],w*100,W*100]};y.hsv.hcg=function($){let J=$[1]/100,F=$[2]/100,w=J*F,W=0;if(w<1)W=(F-w)/(1-w);return[$[0],w*100,W*100]};y.hcg.rgb=function($){let J=$[0]/360,F=$[1]/100,w=$[2]/100;if(F===0)return[w*255,w*255,w*255];let W=[0,0,0],Z=J%1*6,B=Z%1,Y=1-B,K=0;switch(Math.floor(Z)){case 0:W[0]=1,W[1]=B,W[2]=0;break;case 1:W[0]=Y,W[1]=1,W[2]=0;break;case 2:W[0]=0,W[1]=1,W[2]=B;break;case 3:W[0]=0,W[1]=Y,W[2]=1;break;case 4:W[0]=B,W[1]=0,W[2]=1;break;default:W[0]=1,W[1]=0,W[2]=Y}return K=(1-F)*w,[(F*W[0]+K)*255,(F*W[1]+K)*255,(F*W[2]+K)*255]};y.hcg.hsv=function($){let J=$[1]/100,F=$[2]/100,w=J+F*(1-J),W=0;if(w>0)W=J/w;return[$[0],W*100,w*100]};y.hcg.hsl=function($){let J=$[1]/100,w=$[2]/100*(1-J)+0.5*J,W=0;if(w>0&&w<0.5)W=J/(2*w);else if(w>=0.5&&w<1)W=J/(2*(1-w));return[$[0],W*100,w*100]};y.hcg.hwb=function($){let J=$[1]/100,F=$[2]/100,w=J+F*(1-J);return[$[0],(w-J)*100,(1-w)*100]};y.hwb.hcg=function($){let J=$[1]/100,w=1-$[2]/100,W=w-J,Z=0;if(W<1)Z=(w-W)/(1-W);return[$[0],W*100,Z*100]};y.apple.rgb=function($){return[$[0]/65535*255,$[1]/65535*255,$[2]/65535*255]};y.rgb.apple=function($){return[$[0]/255*65535,$[1]/255*65535,$[2]/255*65535]};y.gray.rgb=function($){return[$[0]/100*255,$[0]/100*255,$[0]/100*255]};y.gray.hsl=function($){return[0,0,$[0]]};y.gray.hsv=y.gray.hsl;y.gray.hwb=function($){return[0,100,$[0]]};y.gray.cmyk=function($){return[0,0,0,$[0]]};y.gray.lab=function($){return[$[0],0,0]};y.gray.hex=function($){let J=Math.round($[0]/100*255)&255,w=((J<<16)+(J<<8)+J).toString(16).toUpperCase();return"000000".substring(w.length)+w};y.rgb.gray=function($){return[($[0]+$[1]+$[2])/3/255*100]}});var o0=V((e9,i0)=>{var v2=U1();function $8(){let $={},J=Object.keys(v2);for(let F=J.length,w=0;w<F;w++)$[J[w]]={distance:-1,parent:null};return $}function J8($){let J=$8(),F=[$];J[$].distance=0;while(F.length){let w=F.pop(),W=Object.keys(v2[w]);for(let Z=W.length,B=0;B<Z;B++){let Y=W[B],K=J[Y];if(K.distance===-1)K.distance=J[w].distance+1,K.parent=w,F.unshift(Y)}}return J}function F8($,J){return function(F){return J($(F))}}function w8($,J){let F=[J[$].parent,$],w=v2[J[$].parent][$],W=J[$].parent;while(J[W].parent)F.unshift(J[W].parent),w=F8(v2[J[W].parent][W],w),W=J[W].parent;return w.conversion=F,w}i0.exports=function($){let J=J8($),F={},w=Object.keys(J);for(let W=w.length,Z=0;Z<W;Z++){let B=w[Z];if(J[B].parent===null)continue;F[B]=w8(B,J)}return F}});var J5=V((p9,$5)=>{var Z1=U1(),W8=o0(),Y2={},U8=Object.keys(Z1);function Z8($){let J=function(...F){let w=F[0];if(w===void 0||w===null)return w;if(w.length>1)F=w;return $(F)};if("conversion"in $)J.conversion=$.conversion;return J}function B8($){let J=function(...F){let w=F[0];if(w===void 0||w===null)return w;if(w.length>1)F=w;let W=$(F);if(typeof W==="object")for(let Z=W.length,B=0;B<Z;B++)W[B]=Math.round(W[B]);return W};if("conversion"in $)J.conversion=$.conversion;return J}U8.forEach(($)=>{Y2[$]={},Object.defineProperty(Y2[$],"channels",{value:Z1[$].channels}),Object.defineProperty(Y2[$],"labels",{value:Z1[$].labels});let J=W8($);Object.keys(J).forEach((w)=>{let W=J[w];Y2[$][w]=B8(W),Y2[$][w].raw=Z8(W)})});$5.exports=Y2});var g2=V((n9,w5)=>{var Q2=n0(),b=J5(),F5=["keyword","gray","hex"],B1={};for(let $ of Object.keys(b))B1[[...b[$].labels].sort().join("")]=$;var h2={};function q($,J){if(!(this instanceof q))return new q($,J);if(J&&J in F5)J=null;if(J&&!(J in b))throw new Error("Unknown model: "+J);let F,w;if($==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if($ instanceof q)this.model=$.model,this.color=[...$.color],this.valpha=$.valpha;else if(typeof $==="string"){let W=Q2.get($);if(W===null)throw new Error("Unable to parse color from string: "+$);this.model=W.model,w=b[this.model].channels,this.color=W.value.slice(0,w),this.valpha=typeof W.value[w]==="number"?W.value[w]:1}else if($.length>0){this.model=J||"rgb",w=b[this.model].channels;let W=Array.prototype.slice.call($,0,w);this.color=Y1(W,w),this.valpha=typeof $[w]==="number"?$[w]:1}else if(typeof $==="number")this.model="rgb",this.color=[$>>16&255,$>>8&255,$&255],this.valpha=1;else{this.valpha=1;let W=Object.keys($);if("alpha"in $)W.splice(W.indexOf("alpha"),1),this.valpha=typeof $.alpha==="number"?$.alpha:0;let Z=W.sort().join("");if(!(Z in B1))throw new Error("Unable to parse color from object: "+JSON.stringify($));this.model=B1[Z];let{labels:B}=b[this.model],Y=[];for(F=0;F<B.length;F++)Y.push($[B[F]]);this.color=Y1(Y)}if(h2[this.model]){w=b[this.model].channels;for(F=0;F<w;F++){let W=h2[this.model][F];if(W)this.color[F]=W(this.color[F])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}q.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string($){let J=this.model in Q2.to?this:this.rgb();J=J.round(typeof $==="number"?$:1);let F=J.valpha===1?J.color:[...J.color,this.valpha];return Q2.to[J.model](F)},percentString($){let J=this.rgb().round(typeof $==="number"?$:1),F=J.valpha===1?J.color:[...J.color,this.valpha];return Q2.to.rgb.percent(F)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let $={},{channels:J}=b[this.model],{labels:F}=b[this.model];for(let w=0;w<J;w++)$[F[w]]=this.color[w];if(this.valpha!==1)$.alpha=this.valpha;return $},unitArray(){let $=this.rgb().color;if($[0]/=255,$[1]/=255,$[2]/=255,this.valpha!==1)$.push(this.valpha);return $},unitObject(){let $=this.rgb().object();if($.r/=255,$.g/=255,$.b/=255,this.valpha!==1)$.alpha=this.valpha;return $},round($){return $=Math.max($||0,0),new q([...this.color.map(Q8($)),this.valpha],this.model)},alpha($){if($!==void 0)return new q([...this.color,Math.max(0,Math.min(1,$))],this.model);return this.valpha},red:_("rgb",0,E(255)),green:_("rgb",1,E(255)),blue:_("rgb",2,E(255)),hue:_(["hsl","hsv","hsl","hwb","hcg"],0,($)=>($%360+360)%360),saturationl:_("hsl",1,E(100)),lightness:_("hsl",2,E(100)),saturationv:_("hsv",1,E(100)),value:_("hsv",2,E(100)),chroma:_("hcg",1,E(100)),gray:_("hcg",2,E(100)),white:_("hwb",1,E(100)),wblack:_("hwb",2,E(100)),cyan:_("cmyk",0,E(100)),magenta:_("cmyk",1,E(100)),yellow:_("cmyk",2,E(100)),black:_("cmyk",3,E(100)),x:_("xyz",0,E(95.047)),y:_("xyz",1,E(100)),z:_("xyz",2,E(108.833)),l:_("lab",0,E(100)),a:_("lab",1),b:_("lab",2),keyword($){if($!==void 0)return new q($);return b[this.model].keyword(this.color)},hex($){if($!==void 0)return new q($);return Q2.to.hex(this.rgb().round().color)},hexa($){if($!==void 0)return new q($);let J=this.rgb().round().color,F=Math.round(this.valpha*255).toString(16).toUpperCase();if(F.length===1)F="0"+F;return Q2.to.hex(J)+F},rgbNumber(){let $=this.rgb().color;return($[0]&255)<<16|($[1]&255)<<8|$[2]&255},luminosity(){let $=this.rgb().color,J=[];for(let[F,w]of $.entries()){let W=w/255;J[F]=W<=0.04045?W/12.92:((W+0.055)/1.055)**2.4}return 0.2126*J[0]+0.7152*J[1]+0.0722*J[2]},contrast($){let J=this.luminosity(),F=$.luminosity();if(J>F)return(J+0.05)/(F+0.05);return(F+0.05)/(J+0.05)},level($){let J=this.contrast($);if(J>=7)return"AAA";return J>=4.5?"AA":""},isDark(){let $=this.rgb().color;return($[0]*2126+$[1]*7152+$[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let $=this.rgb();for(let J=0;J<3;J++)$.color[J]=255-$.color[J];return $},lighten($){let J=this.hsl();return J.color[2]+=J.color[2]*$,J},darken($){let J=this.hsl();return J.color[2]-=J.color[2]*$,J},saturate($){let J=this.hsl();return J.color[1]+=J.color[1]*$,J},desaturate($){let J=this.hsl();return J.color[1]-=J.color[1]*$,J},whiten($){let J=this.hwb();return J.color[1]+=J.color[1]*$,J},blacken($){let J=this.hwb();return J.color[2]+=J.color[2]*$,J},grayscale(){let $=this.rgb().color,J=$[0]*0.3+$[1]*0.59+$[2]*0.11;return q.rgb(J,J,J)},fade($){return this.alpha(this.valpha-this.valpha*$)},opaquer($){return this.alpha(this.valpha+this.valpha*$)},rotate($){let J=this.hsl(),F=J.color[0];return F=(F+$)%360,F=F<0?360+F:F,J.color[0]=F,J},mix($,J){if(!$||!$.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof $);let F=$.rgb(),w=this.rgb(),W=J===void 0?0.5:J,Z=2*W-1,B=F.alpha()-w.alpha(),Y=((Z*B===-1?Z:(Z+B)/(1+Z*B))+1)/2,K=1-Y;return q.rgb(Y*F.red()+K*w.red(),Y*F.green()+K*w.green(),Y*F.blue()+K*w.blue(),F.alpha()*W+w.alpha()*(1-W))}};for(let $ of Object.keys(b)){if(F5.includes($))continue;let{channels:J}=b[$];q.prototype[$]=function(...F){if(this.model===$)return new q(this);if(F.length>0)return new q(F,$);return new q([...K8(b[this.model][$].raw(this.color)),this.valpha],$)},q[$]=function(...F){let w=F[0];if(typeof w==="number")w=Y1(F,J);return new q(w,$)}}function Y8($,J){return Number($.toFixed(J))}function Q8($){return function(J){return Y8(J,$)}}function _($,J,F){$=Array.isArray($)?$:[$];for(let w of $)(h2[w]||(h2[w]=[]))[J]=F;return $=$[0],function(w){let W;if(w!==void 0){if(F)w=F(w);return W=this[$](),W.color[J]=w,W}if(W=this[$]().color[J],F)W=F(W);return W}}function E($){return function(J){return Math.max(0,Math.min($,J))}}function K8($){return Array.isArray($)?$:[$]}function Y1($,J){for(let F=0;F<J;F++)if(typeof $[F]!=="number")$[F]=0;return $}w5.exports=q});var Z5=V((s9,U5)=>{var I8=g2(),I=u(),t=V2(),G8={left:"low",center:"centre",centre:"centre",right:"high"};function W5($){let{raw:J,density:F,limitInputPixels:w,ignoreIcc:W,unlimited:Z,sequentialRead:B,failOn:Y,failOnError:K,animated:G,page:N,pages:D,subifd:A}=$;return[J,F,w,W,Z,B,Y,K,G,N,D,A].some(I.defined)?{raw:J,density:F,limitInputPixels:w,ignoreIcc:W,unlimited:Z,sequentialRead:B,failOn:Y,failOnError:K,animated:G,page:N,pages:D,subifd:A}:void 0}function H8($,J,F){let w={failOn:"warning",limitInputPixels:Math.pow(16383,2),ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(I.string($))w.file=$;else if(I.buffer($)){if($.length===0)throw Error("Input Buffer is empty");w.buffer=$}else if(I.arrayBuffer($)){if($.byteLength===0)throw Error("Input bit Array is empty");w.buffer=Buffer.from($,0,$.byteLength)}else if(I.typedArray($)){if($.length===0)throw Error("Input Bit Array is empty");w.buffer=Buffer.from($.buffer,$.byteOffset,$.byteLength)}else if(I.plainObject($)&&!I.defined(J)){if(J=$,W5(J))w.buffer=[]}else if(!I.defined($)&&!I.defined(J)&&I.object(F)&&F.allowStream)w.buffer=[];else throw new Error(`Unsupported input '${$}' of type ${typeof $}${I.defined(J)?` when also providing options of type ${typeof J}`:""}`);if(I.object(J)){if(I.defined(J.failOnError))if(I.bool(J.failOnError))w.failOn=J.failOnError?"warning":"none";else throw I.invalidParameterError("failOnError","boolean",J.failOnError);if(I.defined(J.failOn))if(I.string(J.failOn)&&I.inArray(J.failOn,["none","truncated","error","warning"]))w.failOn=J.failOn;else throw I.invalidParameterError("failOn","one of: none, truncated, error, warning",J.failOn);if(I.defined(J.density))if(I.inRange(J.density,1,1e5))w.density=J.density;else throw I.invalidParameterError("density","number between 1 and 100000",J.density);if(I.defined(J.ignoreIcc))if(I.bool(J.ignoreIcc))w.ignoreIcc=J.ignoreIcc;else throw I.invalidParameterError("ignoreIcc","boolean",J.ignoreIcc);if(I.defined(J.limitInputPixels))if(I.bool(J.limitInputPixels))w.limitInputPixels=J.limitInputPixels?Math.pow(16383,2):0;else if(I.integer(J.limitInputPixels)&&I.inRange(J.limitInputPixels,0,Number.MAX_SAFE_INTEGER))w.limitInputPixels=J.limitInputPixels;else throw I.invalidParameterError("limitInputPixels","positive integer",J.limitInputPixels);if(I.defined(J.unlimited))if(I.bool(J.unlimited))w.unlimited=J.unlimited;else throw I.invalidParameterError("unlimited","boolean",J.unlimited);if(I.defined(J.sequentialRead))if(I.bool(J.sequentialRead))w.sequentialRead=J.sequentialRead;else throw I.invalidParameterError("sequentialRead","boolean",J.sequentialRead);if(I.defined(J.raw))if(I.object(J.raw)&&I.integer(J.raw.width)&&J.raw.width>0&&I.integer(J.raw.height)&&J.raw.height>0&&I.integer(J.raw.channels)&&I.inRange(J.raw.channels,1,4))switch(w.rawWidth=J.raw.width,w.rawHeight=J.raw.height,w.rawChannels=J.raw.channels,w.rawPremultiplied=!!J.raw.premultiplied,$.constructor){case Uint8Array:case Uint8ClampedArray:w.rawDepth="uchar";break;case Int8Array:w.rawDepth="char";break;case Uint16Array:w.rawDepth="ushort";break;case Int16Array:w.rawDepth="short";break;case Uint32Array:w.rawDepth="uint";break;case Int32Array:w.rawDepth="int";break;case Float32Array:w.rawDepth="float";break;case Float64Array:w.rawDepth="double";break;default:w.rawDepth="uchar";break}else throw new Error("Expected width, height and channels for raw pixel input");if(I.defined(J.animated))if(I.bool(J.animated))w.pages=J.animated?-1:1;else throw I.invalidParameterError("animated","boolean",J.animated);if(I.defined(J.pages))if(I.integer(J.pages)&&I.inRange(J.pages,-1,1e5))w.pages=J.pages;else throw I.invalidParameterError("pages","integer between -1 and 100000",J.pages);if(I.defined(J.page))if(I.integer(J.page)&&I.inRange(J.page,0,1e5))w.page=J.page;else throw I.invalidParameterError("page","integer between 0 and 100000",J.page);if(I.defined(J.level))if(I.integer(J.level)&&I.inRange(J.level,0,256))w.level=J.level;else throw I.invalidParameterError("level","integer between 0 and 256",J.level);if(I.defined(J.subifd))if(I.integer(J.subifd)&&I.inRange(J.subifd,-1,1e5))w.subifd=J.subifd;else throw I.invalidParameterError("subifd","integer between -1 and 100000",J.subifd);if(I.defined(J.create))if(I.object(J.create)&&I.integer(J.create.width)&&J.create.width>0&&I.integer(J.create.height)&&J.create.height>0&&I.integer(J.create.channels)){if(w.createWidth=J.create.width,w.createHeight=J.create.height,w.createChannels=J.create.channels,I.defined(J.create.noise)){if(!I.object(J.create.noise))throw new Error("Expected noise to be an object");if(!I.inArray(J.create.noise.type,["gaussian"]))throw new Error("Only gaussian noise is supported at the moment");if(!I.inRange(J.create.channels,1,4))throw I.invalidParameterError("create.channels","number between 1 and 4",J.create.channels);if(w.createNoiseType=J.create.noise.type,I.number(J.create.noise.mean)&&I.inRange(J.create.noise.mean,0,1e4))w.createNoiseMean=J.create.noise.mean;else throw I.invalidParameterError("create.noise.mean","number between 0 and 10000",J.create.noise.mean);if(I.number(J.create.noise.sigma)&&I.inRange(J.create.noise.sigma,0,1e4))w.createNoiseSigma=J.create.noise.sigma;else throw I.invalidParameterError("create.noise.sigma","number between 0 and 10000",J.create.noise.sigma)}else if(I.defined(J.create.background)){if(!I.inRange(J.create.channels,3,4))throw I.invalidParameterError("create.channels","number between 3 and 4",J.create.channels);let W=I8(J.create.background);w.createBackground=[W.red(),W.green(),W.blue(),Math.round(W.alpha()*255)]}else throw new Error("Expected valid noise or background to create a new input image");delete w.buffer}else throw new Error("Expected valid width, height and channels to create a new input image");if(I.defined(J.text))if(I.object(J.text)&&I.string(J.text.text)){if(w.textValue=J.text.text,I.defined(J.text.height)&&I.defined(J.text.dpi))throw new Error("Expected only one of dpi or height");if(I.defined(J.text.font))if(I.string(J.text.font))w.textFont=J.text.font;else throw I.invalidParameterError("text.font","string",J.text.font);if(I.defined(J.text.fontfile))if(I.string(J.text.fontfile))w.textFontfile=J.text.fontfile;else throw I.invalidParameterError("text.fontfile","string",J.text.fontfile);if(I.defined(J.text.width))if(I.integer(J.text.width)&&J.text.width>0)w.textWidth=J.text.width;else throw I.invalidParameterError("text.width","positive integer",J.text.width);if(I.defined(J.text.height))if(I.integer(J.text.height)&&J.text.height>0)w.textHeight=J.text.height;else throw I.invalidParameterError("text.height","positive integer",J.text.height);if(I.defined(J.text.align))if(I.string(J.text.align)&&I.string(this.constructor.align[J.text.align]))w.textAlign=this.constructor.align[J.text.align];else throw I.invalidParameterError("text.align","valid alignment",J.text.align);if(I.defined(J.text.justify))if(I.bool(J.text.justify))w.textJustify=J.text.justify;else throw I.invalidParameterError("text.justify","boolean",J.text.justify);if(I.defined(J.text.dpi))if(I.integer(J.text.dpi)&&I.inRange(J.text.dpi,1,1e6))w.textDpi=J.text.dpi;else throw I.invalidParameterError("text.dpi","integer between 1 and 1000000",J.text.dpi);if(I.defined(J.text.rgba))if(I.bool(J.text.rgba))w.textRgba=J.text.rgba;else throw I.invalidParameterError("text.rgba","bool",J.text.rgba);if(I.defined(J.text.spacing))if(I.integer(J.text.spacing)&&I.inRange(J.text.spacing,-1e6,1e6))w.textSpacing=J.text.spacing;else throw I.invalidParameterError("text.spacing","integer between -1000000 and 1000000",J.text.spacing);if(I.defined(J.text.wrap))if(I.string(J.text.wrap)&&I.inArray(J.text.wrap,["word","char","word-char","none"]))w.textWrap=J.text.wrap;else throw I.invalidParameterError("text.wrap","one of: word, char, word-char, none",J.text.wrap);delete w.buffer}else throw new Error("Expected a valid string to create an image with text.")}else if(I.defined(J))throw new Error("Invalid input options "+J);return w}function P8($,J,F){if(Array.isArray(this.options.input.buffer))if(I.buffer($)){if(this.options.input.buffer.length===0)this.on("finish",()=>{this.streamInFinished=!0});this.options.input.buffer.push($),F()}else F(new Error("Non-Buffer data on Writable Stream"));else F(new Error("Unexpected data on Writable Stream"))}function y8(){if(this._isStreamInput())this.options.input.buffer=Buffer.concat(this.options.input.buffer)}function L8(){return Array.isArray(this.options.input.buffer)}function N8($){let J=Error();if(I.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),t.metadata(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)})});else t.metadata(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)});return this}else if(this._isStreamInput())return new Promise((F,w)=>{let W=()=>{this._flattenBufferIn(),t.metadata(this.options,(Z,B)=>{if(Z)w(I.nativeError(Z,J));else F(B)})};if(this.writableFinished)W();else this.once("finish",W)});else return new Promise((F,w)=>{t.metadata(this.options,(W,Z)=>{if(W)w(I.nativeError(W,J));else F(Z)})})}function X8($){let J=Error();if(I.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),t.stats(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)})});else t.stats(this.options,(F,w)=>{if(F)$(I.nativeError(F,J));else $(null,w)});return this}else if(this._isStreamInput())return new Promise((F,w)=>{this.on("finish",function(){this._flattenBufferIn(),t.stats(this.options,(W,Z)=>{if(W)w(I.nativeError(W,J));else F(Z)})})});else return new Promise((F,w)=>{t.stats(this.options,(W,Z)=>{if(W)w(I.nativeError(W,J));else F(Z)})})}U5.exports=function($){Object.assign($.prototype,{_inputOptionsFromObject:W5,_createInputDescriptor:H8,_write:P8,_flattenBufferIn:y8,_isStreamInput:L8,metadata:N8,stats:X8}),$.align=G8}});var G5=V((t9,I5)=>{var L=u(),Y5={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},Q5={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},B5={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},K5={entropy:16,attention:17},Q1={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3"},V8={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},D8={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function K1($){return $.angle%360!==0||$.useExifOrientation===!0||$.rotationAngle!==0}function m2($){return $.width!==-1||$.height!==-1}function T8($,J,F){if(m2(this.options))this.options.debuglog("ignoring previous resize options");if(this.options.widthPost!==-1)this.options.debuglog("operation order will be: extract, resize, extract");if(L.defined($))if(L.object($)&&!L.defined(F))F=$;else if(L.integer($)&&$>0)this.options.width=$;else throw L.invalidParameterError("width","positive integer",$);else this.options.width=-1;if(L.defined(J))if(L.integer(J)&&J>0)this.options.height=J;else throw L.invalidParameterError("height","positive integer",J);else this.options.height=-1;if(L.object(F)){if(L.defined(F.width))if(L.integer(F.width)&&F.width>0)this.options.width=F.width;else throw L.invalidParameterError("width","positive integer",F.width);if(L.defined(F.height))if(L.integer(F.height)&&F.height>0)this.options.height=F.height;else throw L.invalidParameterError("height","positive integer",F.height);if(L.defined(F.fit)){let w=D8[F.fit];if(L.string(w))this.options.canvas=w;else throw L.invalidParameterError("fit","valid fit",F.fit)}if(L.defined(F.position)){let w=L.integer(F.position)?F.position:K5[F.position]||Q5[F.position]||Y5[F.position];if(L.integer(w)&&(L.inRange(w,0,8)||L.inRange(w,16,17)))this.options.position=w;else throw L.invalidParameterError("position","valid position/gravity/strategy",F.position)}if(this._setBackgroundColourOption("resizeBackground",F.background),L.defined(F.kernel))if(L.string(Q1[F.kernel]))this.options.kernel=Q1[F.kernel];else throw L.invalidParameterError("kernel","valid kernel name",F.kernel);if(L.defined(F.withoutEnlargement))this._setBooleanOption("withoutEnlargement",F.withoutEnlargement);if(L.defined(F.withoutReduction))this._setBooleanOption("withoutReduction",F.withoutReduction);if(L.defined(F.fastShrinkOnLoad))this._setBooleanOption("fastShrinkOnLoad",F.fastShrinkOnLoad)}if(K1(this.options)&&m2(this.options))this.options.rotateBeforePreExtract=!0;return this}function z8($){if(L.integer($)&&$>0)this.options.extendTop=$,this.options.extendBottom=$,this.options.extendLeft=$,this.options.extendRight=$;else if(L.object($)){if(L.defined($.top))if(L.integer($.top)&&$.top>=0)this.options.extendTop=$.top;else throw L.invalidParameterError("top","positive integer",$.top);if(L.defined($.bottom))if(L.integer($.bottom)&&$.bottom>=0)this.options.extendBottom=$.bottom;else throw L.invalidParameterError("bottom","positive integer",$.bottom);if(L.defined($.left))if(L.integer($.left)&&$.left>=0)this.options.extendLeft=$.left;else throw L.invalidParameterError("left","positive integer",$.left);if(L.defined($.right))if(L.integer($.right)&&$.right>=0)this.options.extendRight=$.right;else throw L.invalidParameterError("right","positive integer",$.right);if(this._setBackgroundColourOption("extendBackground",$.background),L.defined($.extendWith))if(L.string(B5[$.extendWith]))this.options.extendWith=B5[$.extendWith];else throw L.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",$.extendWith)}else throw L.invalidParameterError("extend","integer or object",$);return this}function j8($){let J=m2(this.options)||this.options.widthPre!==-1?"Post":"Pre";if(this.options[`width${J}`]!==-1)this.options.debuglog("ignoring previous extract options");if(["left","top","width","height"].forEach(function(F){let w=$[F];if(L.integer(w)&&w>=0)this.options[F+(F==="left"||F==="top"?"Offset":"")+J]=w;else throw L.invalidParameterError(F,"integer",w)},this),K1(this.options)&&!m2(this.options)){if(this.options.widthPre===-1||this.options.widthPost===-1)this.options.rotateBeforePreExtract=!0}return this}function R8($){if(this.options.trimThreshold=10,L.defined($))if(L.object($)){if(L.defined($.background))this._setBackgroundColourOption("trimBackground",$.background);if(L.defined($.threshold))if(L.number($.threshold)&&$.threshold>=0)this.options.trimThreshold=$.threshold;else throw L.invalidParameterError("threshold","positive number",$.threshold);if(L.defined($.lineArt))this._setBooleanOption("trimLineArt",$.lineArt)}else throw L.invalidParameterError("trim","object",$);if(K1(this.options))this.options.rotateBeforePreExtract=!0;return this}I5.exports=function($){Object.assign($.prototype,{resize:T8,extend:z8,extract:j8,trim:R8}),$.gravity=Y5,$.strategy=K5,$.kernel=Q1,$.fit=V8,$.position=Q5}});var P5=V((i9,H5)=>{var T=u(),I1={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 _8($){if(!Array.isArray($))throw T.invalidParameterError("images to composite","array",$);return this.options.composite=$.map((J)=>{if(!T.object(J))throw T.invalidParameterError("image to composite","object",J);let F=this._inputOptionsFromObject(J),w={input:this._createInputDescriptor(J.input,F,{allowStream:!1}),blend:"over",tile:!1,left:0,top:0,hasOffset:!1,gravity:0,premultiplied:!1};if(T.defined(J.blend))if(T.string(I1[J.blend]))w.blend=I1[J.blend];else throw T.invalidParameterError("blend","valid blend name",J.blend);if(T.defined(J.tile))if(T.bool(J.tile))w.tile=J.tile;else throw T.invalidParameterError("tile","boolean",J.tile);if(T.defined(J.left))if(T.integer(J.left))w.left=J.left;else throw T.invalidParameterError("left","integer",J.left);if(T.defined(J.top))if(T.integer(J.top))w.top=J.top;else throw T.invalidParameterError("top","integer",J.top);if(T.defined(J.top)!==T.defined(J.left))throw new Error("Expected both left and top to be set");else w.hasOffset=T.integer(J.top)&&T.integer(J.left);if(T.defined(J.gravity))if(T.integer(J.gravity)&&T.inRange(J.gravity,0,8))w.gravity=J.gravity;else if(T.string(J.gravity)&&T.integer(this.constructor.gravity[J.gravity]))w.gravity=this.constructor.gravity[J.gravity];else throw T.invalidParameterError("gravity","valid gravity",J.gravity);if(T.defined(J.premultiplied))if(T.bool(J.premultiplied))w.premultiplied=J.premultiplied;else throw T.invalidParameterError("premultiplied","boolean",J.premultiplied);return w}),this}H5.exports=function($){$.prototype.composite=_8,$.blend=I1}});var N5=V((o9,L5)=>{var E8=g2(),Q=u(),y5={integer:"integer",float:"float",approximate:"approximate"};function q8($,J){if(this.options.useExifOrientation||this.options.angle||this.options.rotationAngle)this.options.debuglog("ignoring previous rotate options");if(!Q.defined($))this.options.useExifOrientation=!0;else if(Q.integer($)&&!($%90))this.options.angle=$;else if(Q.number($)){if(this.options.rotationAngle=$,Q.object(J)&&J.background){let F=E8(J.background);this.options.rotationBackground=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}}else throw Q.invalidParameterError("angle","numeric",$);return this}function A8($){return this.options.flip=Q.bool($)?$:!0,this}function S8($){return this.options.flop=Q.bool($)?$:!0,this}function C8($,J){let F=[].concat(...$);if(F.length===4&&F.every(Q.number))this.options.affineMatrix=F;else throw Q.invalidParameterError("matrix","1x4 or 2x2 array",$);if(Q.defined(J))if(Q.object(J)){if(this._setBackgroundColourOption("affineBackground",J.background),Q.defined(J.idx))if(Q.number(J.idx))this.options.affineIdx=J.idx;else throw Q.invalidParameterError("options.idx","number",J.idx);if(Q.defined(J.idy))if(Q.number(J.idy))this.options.affineIdy=J.idy;else throw Q.invalidParameterError("options.idy","number",J.idy);if(Q.defined(J.odx))if(Q.number(J.odx))this.options.affineOdx=J.odx;else throw Q.invalidParameterError("options.odx","number",J.odx);if(Q.defined(J.ody))if(Q.number(J.ody))this.options.affineOdy=J.ody;else throw Q.invalidParameterError("options.ody","number",J.ody);if(Q.defined(J.interpolator))if(Q.inArray(J.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=J.interpolator;else throw Q.invalidParameterError("options.interpolator","valid interpolator name",J.interpolator)}else throw Q.invalidParameterError("options","object",J);return this}function M8($,J,F){if(!Q.defined($))this.options.sharpenSigma=-1;else if(Q.bool($))this.options.sharpenSigma=$?-1:0;else if(Q.number($)&&Q.inRange($,0.01,1e4)){if(this.options.sharpenSigma=$,Q.defined(J))if(Q.number(J)&&Q.inRange(J,0,1e4))this.options.sharpenM1=J;else throw Q.invalidParameterError("flat","number between 0 and 10000",J);if(Q.defined(F))if(Q.number(F)&&Q.inRange(F,0,1e4))this.options.sharpenM2=F;else throw Q.invalidParameterError("jagged","number between 0 and 10000",F)}else if(Q.plainObject($)){if(Q.number($.sigma)&&Q.inRange($.sigma,0.000001,10))this.options.sharpenSigma=$.sigma;else throw Q.invalidParameterError("options.sigma","number between 0.000001 and 10",$.sigma);if(Q.defined($.m1))if(Q.number($.m1)&&Q.inRange($.m1,0,1e6))this.options.sharpenM1=$.m1;else throw Q.invalidParameterError("options.m1","number between 0 and 1000000",$.m1);if(Q.defined($.m2))if(Q.number($.m2)&&Q.inRange($.m2,0,1e6))this.options.sharpenM2=$.m2;else throw Q.invalidParameterError("options.m2","number between 0 and 1000000",$.m2);if(Q.defined($.x1))if(Q.number($.x1)&&Q.inRange($.x1,0,1e6))this.options.sharpenX1=$.x1;else throw Q.invalidParameterError("options.x1","number between 0 and 1000000",$.x1);if(Q.defined($.y2))if(Q.number($.y2)&&Q.inRange($.y2,0,1e6))this.options.sharpenY2=$.y2;else throw Q.invalidParameterError("options.y2","number between 0 and 1000000",$.y2);if(Q.defined($.y3))if(Q.number($.y3)&&Q.inRange($.y3,0,1e6))this.options.sharpenY3=$.y3;else throw Q.invalidParameterError("options.y3","number between 0 and 1000000",$.y3)}else throw Q.invalidParameterError("sigma","number between 0.01 and 10000",$);return this}function k8($){if(!Q.defined($))this.options.medianSize=3;else if(Q.integer($)&&Q.inRange($,1,1000))this.options.medianSize=$;else throw Q.invalidParameterError("size","integer between 1 and 1000",$);return this}function x8($){let J;if(Q.number($))J=$;else if(Q.plainObject($)){if(!Q.number($.sigma))throw Q.invalidParameterError("options.sigma","number between 0.3 and 1000",J);if(J=$.sigma,"precision"in $)if(Q.string(y5[$.precision]))this.options.precision=y5[$.precision];else throw Q.invalidParameterError("precision","one of: integer, float, approximate",$.precision);if("minAmplitude"in $)if(Q.number($.minAmplitude)&&Q.inRange($.minAmplitude,0.001,1))this.options.minAmpl=$.minAmplitude;else throw Q.invalidParameterError("minAmplitude","number between 0.001 and 1",$.minAmplitude)}if(!Q.defined($))this.options.blurSigma=-1;else if(Q.bool($))this.options.blurSigma=$?-1:0;else if(Q.number(J)&&Q.inRange(J,0.3,1000))this.options.blurSigma=J;else throw Q.invalidParameterError("sigma","number between 0.3 and 1000",J);return this}function f8($){if(this.options.flatten=Q.bool($)?$:!0,Q.object($))this._setBackgroundColourOption("flattenBackground",$.background);return this}function d8(){return this.options.unflatten=!0,this}function O8($,J){if(!Q.defined($))this.options.gamma=2.2;else if(Q.number($)&&Q.inRange($,1,3))this.options.gamma=$;else throw Q.invalidParameterError("gamma","number between 1.0 and 3.0",$);if(!Q.defined(J))this.options.gammaOut=this.options.gamma;else if(Q.number(J)&&Q.inRange(J,1,3))this.options.gammaOut=J;else throw Q.invalidParameterError("gammaOut","number between 1.0 and 3.0",J);return this}function b8($){if(this.options.negate=Q.bool($)?$:!0,Q.plainObject($)&&"alpha"in $)if(!Q.bool($.alpha))throw Q.invalidParameterError("alpha","should be boolean value",$.alpha);else this.options.negateAlpha=$.alpha;return this}function v8($){if(Q.plainObject($)){if(Q.defined($.lower))if(Q.number($.lower)&&Q.inRange($.lower,0,99))this.options.normaliseLower=$.lower;else throw Q.invalidParameterError("lower","number between 0 and 99",$.lower);if(Q.defined($.upper))if(Q.number($.upper)&&Q.inRange($.upper,1,100))this.options.normaliseUpper=$.upper;else throw Q.invalidParameterError("upper","number between 1 and 100",$.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw Q.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function h8($){return this.normalise($)}function g8($){if(Q.plainObject($)){if(Q.integer($.width)&&$.width>0)this.options.claheWidth=$.width;else throw Q.invalidParameterError("width","integer greater than zero",$.width);if(Q.integer($.height)&&$.height>0)this.options.claheHeight=$.height;else throw Q.invalidParameterError("height","integer greater than zero",$.height);if(Q.defined($.maxSlope))if(Q.integer($.maxSlope)&&Q.inRange($.maxSlope,0,100))this.options.claheMaxSlope=$.maxSlope;else throw Q.invalidParameterError("maxSlope","integer between 0 and 100",$.maxSlope)}else throw Q.invalidParameterError("options","plain object",$);return this}function m8($){if(!Q.object($)||!Array.isArray($.kernel)||!Q.integer($.width)||!Q.integer($.height)||!Q.inRange($.width,3,1001)||!Q.inRange($.height,3,1001)||$.height*$.width!==$.kernel.length)throw new Error("Invalid convolution kernel");if(!Q.integer($.scale))$.scale=$.kernel.reduce(function(J,F){return J+F},0);if($.scale<1)$.scale=1;if(!Q.integer($.offset))$.offset=0;return this.options.convKernel=$,this}function l8($,J){if(!Q.defined($))this.options.threshold=128;else if(Q.bool($))this.options.threshold=$?128:0;else if(Q.integer($)&&Q.inRange($,0,255))this.options.threshold=$;else throw Q.invalidParameterError("threshold","integer between 0 and 255",$);if(!Q.object(J)||J.greyscale===!0||J.grayscale===!0)this.options.thresholdGrayscale=!0;else this.options.thresholdGrayscale=!1;return this}function u8($,J,F){if(this.options.boolean=this._createInputDescriptor($,F),Q.string(J)&&Q.inArray(J,["and","or","eor"]))this.options.booleanOp=J;else throw Q.invalidParameterError("operator","one of: and, or, eor",J);return this}function c8($,J){if(!Q.defined($)&&Q.number(J))$=1;else if(Q.number($)&&!Q.defined(J))J=0;if(!Q.defined($))this.options.linearA=[];else if(Q.number($))this.options.linearA=[$];else if(Array.isArray($)&&$.length&&$.every(Q.number))this.options.linearA=$;else throw Q.invalidParameterError("a","number or array of numbers",$);if(!Q.defined(J))this.options.linearB=[];else if(Q.number(J))this.options.linearB=[J];else if(Array.isArray(J)&&J.length&&J.every(Q.number))this.options.linearB=J;else throw Q.invalidParameterError("b","number or array of numbers",J);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 a8($){if(!Array.isArray($))throw Q.invalidParameterError("inputMatrix","array",$);if($.length!==3&&$.length!==4)throw Q.invalidParameterError("inputMatrix","3x3 or 4x4 array",$.length);let J=$.flat().map(Number);if(J.length!==9&&J.length!==16)throw Q.invalidParameterError("inputMatrix","cardinality of 9 or 16",J.length);return this.options.recombMatrix=J,this}function r8($){if(!Q.plainObject($))throw Q.invalidParameterError("options","plain object",$);if("brightness"in $)if(Q.number($.brightness)&&$.brightness>=0)this.options.brightness=$.brightness;else throw Q.invalidParameterError("brightness","number above zero",$.brightness);if("saturation"in $)if(Q.number($.saturation)&&$.saturation>=0)this.options.saturation=$.saturation;else throw Q.invalidParameterError("saturation","number above zero",$.saturation);if("hue"in $)if(Q.integer($.hue))this.options.hue=$.hue%360;else throw Q.invalidParameterError("hue","number",$.hue);if("lightness"in $)if(Q.number($.lightness))this.options.lightness=$.lightness;else throw Q.invalidParameterError("lightness","number",$.lightness);return this}L5.exports=function($){Object.assign($.prototype,{rotate:q8,flip:A8,flop:S8,affine:C8,sharpen:M8,median:k8,blur:x8,flatten:f8,unflatten:d8,gamma:O8,negate:b8,normalise:v8,normalize:h8,clahe:g8,convolve:m8,threshold:l8,boolean:u8,linear:c8,recomb:a8,modulate:r8})}});var D5=V(($7,V5)=>{var e8=g2(),r=u(),X5={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function p8($){return this._setBackgroundColourOption("tint",$),this}function n8($){return this.options.greyscale=r.bool($)?$:!0,this}function s8($){return this.greyscale($)}function t8($){if(!r.string($))throw r.invalidParameterError("colourspace","string",$);return this.options.colourspacePipeline=$,this}function i8($){return this.pipelineColourspace($)}function o8($){if(!r.string($))throw r.invalidParameterError("colourspace","string",$);return this.options.colourspace=$,this}function $6($){return this.toColourspace($)}function J6($,J){if(r.defined(J))if(r.object(J)||r.string(J)){let F=e8(J);this.options[$]=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}else throw r.invalidParameterError("background","object or string",J)}V5.exports=function($){Object.assign($.prototype,{tint:p8,greyscale:n8,grayscale:s8,pipelineColourspace:t8,pipelineColorspace:i8,toColourspace:o8,toColorspace:$6,_setBackgroundColourOption:J6}),$.colourspace=X5,$.colorspace=X5}});var z5=V((J7,T5)=>{var c=u(),F6={and:"and",or:"or",eor:"eor"};function w6(){return this.options.removeAlpha=!0,this}function W6($){if(c.defined($))if(c.number($)&&c.inRange($,0,1))this.options.ensureAlpha=$;else throw c.invalidParameterError("alpha","number between 0 and 1",$);else this.options.ensureAlpha=1;return this}function U6($){let J={red:0,green:1,blue:2,alpha:3};if(Object.keys(J).includes($))$=J[$];if(c.integer($)&&c.inRange($,0,4))this.options.extractChannel=$;else throw c.invalidParameterError("channel","integer or one of: red, green, blue, alpha",$);return this}function Z6($,J){if(Array.isArray($))$.forEach(function(F){this.options.joinChannelIn.push(this._createInputDescriptor(F,J))},this);else this.options.joinChannelIn.push(this._createInputDescriptor($,J));return this}function B6($){if(c.string($)&&c.inArray($,["and","or","eor"]))this.options.bandBoolOp=$;else throw c.invalidParameterError("boolOp","one of: and, or, eor",$);return this}T5.exports=function($){Object.assign($.prototype,{removeAlpha:w6,ensureAlpha:W6,extractChannel:U6,joinChannel:Z6,bandbool:B6}),$.bool=F6}});var A5=V((F7,q5)=>{var G1=j("path"),U=u(),K2=V2(),j5=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"]]),Y6=/\.(jp[2x]|j2[kc])$/i,R5=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),_5=($)=>1<<31-Math.clz32(Math.ceil(Math.log2($)));function Q6($,J){let F;if(!U.string($))F=new Error("Missing output file path");else if(U.string(this.options.input.file)&&G1.resolve(this.options.input.file)===G1.resolve($))F=new Error("Cannot use same file for input and output");else if(Y6.test(G1.extname($))&&!this.constructor.format.jp2k.output.file)F=R5();if(F)if(U.fn(J))J(F);else return Promise.reject(F);else{this.options.fileOut=$;let w=Error();return this._pipeline(J,w)}return this}function K6($,J){if(U.object($))this._setBooleanOption("resolveWithObject",$.resolveWithObject);else if(this.options.resolveWithObject)this.options.resolveWithObject=!1;this.options.fileOut="";let F=Error();return this._pipeline(U.fn($)?$:J,F)}function I6(){return this.options.keepMetadata|=1,this}function G6($){if(U.object($))for(let[J,F]of Object.entries($))if(U.object(F))for(let[w,W]of Object.entries(F))if(U.string(W))this.options.withExif[`exif-${J.toLowerCase()}-${w}`]=W;else throw U.invalidParameterError(`${J}.${w}`,"string",W);else throw U.invalidParameterError(J,"object",F);else throw U.invalidParameterError("exif","object",$);return this.options.withExifMerge=!1,this.keepExif()}function H6($){return this.withExif($),this.options.withExifMerge=!0,this}function P6(){return this.options.keepMetadata|=8,this}function y6($,J){if(U.string($))this.options.withIccProfile=$;else throw U.invalidParameterError("icc","string",$);if(this.keepIccProfile(),U.object(J)){if(U.defined(J.attach))if(U.bool(J.attach)){if(!J.attach)this.options.keepMetadata&=-9}else throw U.invalidParameterError("attach","boolean",J.attach)}return this}function L6(){return this.options.keepMetadata=31,this}function N6($){if(this.keepMetadata(),this.withIccProfile("srgb"),U.object($)){if(U.defined($.orientation))if(U.integer($.orientation)&&U.inRange($.orientation,1,8))this.options.withMetadataOrientation=$.orientation;else throw U.invalidParameterError("orientation","integer between 1 and 8",$.orientation);if(U.defined($.density))if(U.number($.density)&&$.density>0)this.options.withMetadataDensity=$.density;else throw U.invalidParameterError("density","positive number",$.density);if(U.defined($.icc))this.withIccProfile($.icc);if(U.defined($.exif))this.withExifMerge($.exif)}return this}function X6($,J){let F=j5.get((U.object($)&&U.string($.id)?$.id:$).toLowerCase());if(!F)throw U.invalidParameterError("format",`one of: ${[...j5.keys()].join(", ")}`,$);return this[F](J)}function V6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.jpegQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.progressive))this._setBooleanOption("jpegProgressive",$.progressive);if(U.defined($.chromaSubsampling))if(U.string($.chromaSubsampling)&&U.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=$.chromaSubsampling;else throw U.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);let J=U.bool($.optimizeCoding)?$.optimizeCoding:$.optimiseCoding;if(U.defined(J))this._setBooleanOption("jpegOptimiseCoding",J);if(U.defined($.mozjpeg))if(U.bool($.mozjpeg)){if($.mozjpeg)this.options.jpegTrellisQuantisation=!0,this.options.jpegOvershootDeringing=!0,this.options.jpegOptimiseScans=!0,this.options.jpegProgressive=!0,this.options.jpegQuantisationTable=3}else throw U.invalidParameterError("mozjpeg","boolean",$.mozjpeg);let F=U.bool($.trellisQuantization)?$.trellisQuantization:$.trellisQuantisation;if(U.defined(F))this._setBooleanOption("jpegTrellisQuantisation",F);if(U.defined($.overshootDeringing))this._setBooleanOption("jpegOvershootDeringing",$.overshootDeringing);let w=U.bool($.optimizeScans)?$.optimizeScans:$.optimiseScans;if(U.defined(w)){if(this._setBooleanOption("jpegOptimiseScans",w),w)this.options.jpegProgressive=!0}let W=U.number($.quantizationTable)?$.quantizationTable:$.quantisationTable;if(U.defined(W))if(U.integer(W)&&U.inRange(W,0,8))this.options.jpegQuantisationTable=W;else throw U.invalidParameterError("quantisationTable","integer between 0 and 8",W)}return this._updateFormatOut("jpeg",$)}function D6($){if(U.object($)){if(U.defined($.progressive))this._setBooleanOption("pngProgressive",$.progressive);if(U.defined($.compressionLevel))if(U.integer($.compressionLevel)&&U.inRange($.compressionLevel,0,9))this.options.pngCompressionLevel=$.compressionLevel;else throw U.invalidParameterError("compressionLevel","integer between 0 and 9",$.compressionLevel);if(U.defined($.adaptiveFiltering))this._setBooleanOption("pngAdaptiveFiltering",$.adaptiveFiltering);let J=$.colours||$.colors;if(U.defined(J))if(U.integer(J)&&U.inRange(J,2,256))this.options.pngBitdepth=_5(J);else throw U.invalidParameterError("colours","integer between 2 and 256",J);if(U.defined($.palette))this._setBooleanOption("pngPalette",$.palette);else if([$.quality,$.effort,$.colours,$.colors,$.dither].some(U.defined))this._setBooleanOption("pngPalette",!0);if(this.options.pngPalette){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,0,100))this.options.pngQuality=$.quality;else throw U.invalidParameterError("quality","integer between 0 and 100",$.quality);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,1,10))this.options.pngEffort=$.effort;else throw U.invalidParameterError("effort","integer between 1 and 10",$.effort);if(U.defined($.dither))if(U.number($.dither)&&U.inRange($.dither,0,1))this.options.pngDither=$.dither;else throw U.invalidParameterError("dither","number between 0.0 and 1.0",$.dither)}}return this._updateFormatOut("png",$)}function T6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.webpQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.alphaQuality))if(U.integer($.alphaQuality)&&U.inRange($.alphaQuality,0,100))this.options.webpAlphaQuality=$.alphaQuality;else throw U.invalidParameterError("alphaQuality","integer between 0 and 100",$.alphaQuality);if(U.defined($.lossless))this._setBooleanOption("webpLossless",$.lossless);if(U.defined($.nearLossless))this._setBooleanOption("webpNearLossless",$.nearLossless);if(U.defined($.smartSubsample))this._setBooleanOption("webpSmartSubsample",$.smartSubsample);if(U.defined($.preset))if(U.string($.preset)&&U.inArray($.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=$.preset;else throw U.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",$.preset);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,0,6))this.options.webpEffort=$.effort;else throw U.invalidParameterError("effort","integer between 0 and 6",$.effort);if(U.defined($.minSize))this._setBooleanOption("webpMinSize",$.minSize);if(U.defined($.mixed))this._setBooleanOption("webpMixed",$.mixed)}return E5($,this.options),this._updateFormatOut("webp",$)}function z6($){if(U.object($)){if(U.defined($.reuse))this._setBooleanOption("gifReuse",$.reuse);if(U.defined($.progressive))this._setBooleanOption("gifProgressive",$.progressive);let J=$.colours||$.colors;if(U.defined(J))if(U.integer(J)&&U.inRange(J,2,256))this.options.gifBitdepth=_5(J);else throw U.invalidParameterError("colours","integer between 2 and 256",J);if(U.defined($.effort))if(U.number($.effort)&&U.inRange($.effort,1,10))this.options.gifEffort=$.effort;else throw U.invalidParameterError("effort","integer between 1 and 10",$.effort);if(U.defined($.dither))if(U.number($.dither)&&U.inRange($.dither,0,1))this.options.gifDither=$.dither;else throw U.invalidParameterError("dither","number between 0.0 and 1.0",$.dither);if(U.defined($.interFrameMaxError))if(U.number($.interFrameMaxError)&&U.inRange($.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=$.interFrameMaxError;else throw U.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",$.interFrameMaxError);if(U.defined($.interPaletteMaxError))if(U.number($.interPaletteMaxError)&&U.inRange($.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=$.interPaletteMaxError;else throw U.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",$.interPaletteMaxError)}return E5($,this.options),this._updateFormatOut("gif",$)}function j6($){if(!this.constructor.format.jp2k.output.buffer)throw R5();if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.jp2Quality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.lossless))if(U.bool($.lossless))this.options.jp2Lossless=$.lossless;else throw U.invalidParameterError("lossless","boolean",$.lossless);if(U.defined($.tileWidth))if(U.integer($.tileWidth)&&U.inRange($.tileWidth,1,32768))this.options.jp2TileWidth=$.tileWidth;else throw U.invalidParameterError("tileWidth","integer between 1 and 32768",$.tileWidth);if(U.defined($.tileHeight))if(U.integer($.tileHeight)&&U.inRange($.tileHeight,1,32768))this.options.jp2TileHeight=$.tileHeight;else throw U.invalidParameterError("tileHeight","integer between 1 and 32768",$.tileHeight);if(U.defined($.chromaSubsampling))if(U.string($.chromaSubsampling)&&U.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=$.chromaSubsampling;else throw U.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling)}return this._updateFormatOut("jp2",$)}function E5($,J){if(U.object($)&&U.defined($.loop))if(U.integer($.loop)&&U.inRange($.loop,0,65535))J.loop=$.loop;else throw U.invalidParameterError("loop","integer between 0 and 65535",$.loop);if(U.object($)&&U.defined($.delay))if(U.integer($.delay)&&U.inRange($.delay,0,65535))J.delay=[$.delay];else if(Array.isArray($.delay)&&$.delay.every(U.integer)&&$.delay.every((F)=>U.inRange(F,0,65535)))J.delay=$.delay;else throw U.invalidParameterError("delay","integer or an array of integers between 0 and 65535",$.delay)}function R6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.tiffQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.bitdepth))if(U.integer($.bitdepth)&&U.inArray($.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=$.bitdepth;else throw U.invalidParameterError("bitdepth","1, 2, 4 or 8",$.bitdepth);if(U.defined($.tile))this._setBooleanOption("tiffTile",$.tile);if(U.defined($.tileWidth))if(U.integer($.tileWidth)&&$.tileWidth>0)this.options.tiffTileWidth=$.tileWidth;else throw U.invalidParameterError("tileWidth","integer greater than zero",$.tileWidth);if(U.defined($.tileHeight))if(U.integer($.tileHeight)&&$.tileHeight>0)this.options.tiffTileHeight=$.tileHeight;else throw U.invalidParameterError("tileHeight","integer greater than zero",$.tileHeight);if(U.defined($.miniswhite))this._setBooleanOption("tiffMiniswhite",$.miniswhite);if(U.defined($.pyramid))this._setBooleanOption("tiffPyramid",$.pyramid);if(U.defined($.xres))if(U.number($.xres)&&$.xres>0)this.options.tiffXres=$.xres;else throw U.invalidParameterError("xres","number greater than zero",$.xres);if(U.defined($.yres))if(U.number($.yres)&&$.yres>0)this.options.tiffYres=$.yres;else throw U.invalidParameterError("yres","number greater than zero",$.yres);if(U.defined($.compression))if(U.string($.compression)&&U.inArray($.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=$.compression;else throw U.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",$.compression);if(U.defined($.predictor))if(U.string($.predictor)&&U.inArray($.predictor,["none","horizontal","float"]))this.options.tiffPredictor=$.predictor;else throw U.invalidParameterError("predictor","one of: none, horizontal, float",$.predictor);if(U.defined($.resolutionUnit))if(U.string($.resolutionUnit)&&U.inArray($.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=$.resolutionUnit;else throw U.invalidParameterError("resolutionUnit","one of: inch, cm",$.resolutionUnit)}return this._updateFormatOut("tiff",$)}function _6($){return this.heif({...$,compression:"av1"})}function E6($){if(U.object($)){if(U.string($.compression)&&U.inArray($.compression,["av1","hevc"]))this.options.heifCompression=$.compression;else throw U.invalidParameterError("compression","one of: av1, hevc",$.compression);if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.heifQuality=$.quality;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);if(U.defined($.lossless))if(U.bool($.lossless))this.options.heifLossless=$.lossless;else throw U.invalidParameterError("lossless","boolean",$.lossless);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,0,9))this.options.heifEffort=$.effort;else throw U.invalidParameterError("effort","integer between 0 and 9",$.effort);if(U.defined($.chromaSubsampling))if(U.string($.chromaSubsampling)&&U.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=$.chromaSubsampling;else throw U.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);if(U.defined($.bitdepth))if(U.integer($.bitdepth)&&U.inArray($.bitdepth,[8,10,12])){if($.bitdepth!==8&&this.constructor.versions.heif)throw U.invalidParameterError("bitdepth when using prebuilt binaries",8,$.bitdepth);this.options.heifBitdepth=$.bitdepth}else throw U.invalidParameterError("bitdepth","8, 10 or 12",$.bitdepth)}else throw U.invalidParameterError("options","Object",$);return this._updateFormatOut("heif",$)}function q6($){if(U.object($)){if(U.defined($.quality))if(U.integer($.quality)&&U.inRange($.quality,1,100))this.options.jxlDistance=$.quality>=30?0.1+(100-$.quality)*0.09:0.017666666666666667*$.quality*$.quality-1.15*$.quality+25;else throw U.invalidParameterError("quality","integer between 1 and 100",$.quality);else if(U.defined($.distance))if(U.number($.distance)&&U.inRange($.distance,0,15))this.options.jxlDistance=$.distance;else throw U.invalidParameterError("distance","number between 0.0 and 15.0",$.distance);if(U.defined($.decodingTier))if(U.integer($.decodingTier)&&U.inRange($.decodingTier,0,4))this.options.jxlDecodingTier=$.decodingTier;else throw U.invalidParameterError("decodingTier","integer between 0 and 4",$.decodingTier);if(U.defined($.lossless))if(U.bool($.lossless))this.options.jxlLossless=$.lossless;else throw U.invalidParameterError("lossless","boolean",$.lossless);if(U.defined($.effort))if(U.integer($.effort)&&U.inRange($.effort,3,9))this.options.jxlEffort=$.effort;else throw U.invalidParameterError("effort","integer between 3 and 9",$.effort)}return this._updateFormatOut("jxl",$)}function A6($){if(U.object($)){if(U.defined($.depth))if(U.string($.depth)&&U.inArray($.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=$.depth;else throw U.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",$.depth)}return this._updateFormatOut("raw")}function S6($){if(U.object($)){if(U.defined($.size))if(U.integer($.size)&&U.inRange($.size,1,8192))this.options.tileSize=$.size;else throw U.invalidParameterError("size","integer between 1 and 8192",$.size);if(U.defined($.overlap))if(U.integer($.overlap)&&U.inRange($.overlap,0,8192)){if($.overlap>this.options.tileSize)throw U.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,$.overlap);this.options.tileOverlap=$.overlap}else throw U.invalidParameterError("overlap","integer between 0 and 8192",$.overlap);if(U.defined($.container))if(U.string($.container)&&U.inArray($.container,["fs","zip"]))this.options.tileContainer=$.container;else throw U.invalidParameterError("container","one of: fs, zip",$.container);if(U.defined($.layout))if(U.string($.layout)&&U.inArray($.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=$.layout;else throw U.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",$.layout);if(U.defined($.angle))if(U.integer($.angle)&&!($.angle%90))this.options.tileAngle=$.angle;else throw U.invalidParameterError("angle","positive/negative multiple of 90",$.angle);if(this._setBackgroundColourOption("tileBackground",$.background),U.defined($.depth))if(U.string($.depth)&&U.inArray($.depth,["onepixel","onetile","one"]))this.options.tileDepth=$.depth;else throw U.invalidParameterError("depth","one of: onepixel, onetile, one",$.depth);if(U.defined($.skipBlanks))if(U.integer($.skipBlanks)&&U.inRange($.skipBlanks,-1,65535))this.options.tileSkipBlanks=$.skipBlanks;else throw U.invalidParameterError("skipBlanks","integer between -1 and 255/65535",$.skipBlanks);else if(U.defined($.layout)&&$.layout==="google")this.options.tileSkipBlanks=5;let J=U.bool($.center)?$.center:$.centre;if(U.defined(J))this._setBooleanOption("tileCentre",J);if(U.defined($.id))if(U.string($.id))this.options.tileId=$.id;else throw U.invalidParameterError("id","string",$.id);if(U.defined($.basename))if(U.string($.basename))this.options.tileBasename=$.basename;else throw U.invalidParameterError("basename","string",$.basename)}if(U.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw U.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function C6($){if(!U.plainObject($))throw U.invalidParameterError("options","object",$);if(U.integer($.seconds)&&U.inRange($.seconds,0,3600))this.options.timeoutSeconds=$.seconds;else throw U.invalidParameterError("seconds","integer between 0 and 3600",$.seconds);return this}function M6($,J){if(!(U.object(J)&&J.force===!1))this.options.formatOut=$;return this}function k6($,J){if(U.bool(J))this.options[$]=J;else throw U.invalidParameterError($,"boolean",J)}function x6(){if(!this.options.streamOut){this.options.streamOut=!0;let $=Error();this._pipeline(void 0,$)}}function f6($,J){if(typeof $==="function"){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),K2.pipeline(this.options,(F,w,W)=>{if(F)$(U.nativeError(F,J));else $(null,w,W)})});else K2.pipeline(this.options,(F,w,W)=>{if(F)$(U.nativeError(F,J));else $(null,w,W)});return this}else if(this.options.streamOut){if(this._isStreamInput()){if(this.once("finish",()=>{this._flattenBufferIn(),K2.pipeline(this.options,(F,w,W)=>{if(F)this.emit("error",U.nativeError(F,J));else this.emit("info",W),this.push(w);this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished)this.emit("finish")}else K2.pipeline(this.options,(F,w,W)=>{if(F)this.emit("error",U.nativeError(F,J));else this.emit("info",W),this.push(w);this.push(null),this.on("end",()=>this.emit("close"))});return this}else if(this._isStreamInput())return new Promise((F,w)=>{this.once("finish",()=>{this._flattenBufferIn(),K2.pipeline(this.options,(W,Z,B)=>{if(W)w(U.nativeError(W,J));else if(this.options.resolveWithObject)F({data:Z,info:B});else F(Z)})})});else return new Promise((F,w)=>{K2.pipeline(this.options,(W,Z,B)=>{if(W)w(U.nativeError(W,J));else if(this.options.resolveWithObject)F({data:Z,info:B});else F(Z)})})}q5.exports=function($){Object.assign($.prototype,{toFile:Q6,toBuffer:K6,keepExif:I6,withExif:G6,withExifMerge:H6,keepIccProfile:P6,withIccProfile:y6,keepMetadata:L6,withMetadata:N6,toFormat:X6,jpeg:V6,jp2:j6,png:D6,webp:T6,tiff:R6,avif:_6,heif:E6,jxl:q6,gif:z6,raw:A6,tile:S6,timeout:C6,_updateFormatOut:M6,_setBooleanOption:k6,_read:x6,_pipeline:f6})}});var k5=V((w7,M5)=>{var d6=j("events"),l2=j("detect-libc"),h=u(),{runtimePlatformArch:O6}=J1(),M=V2(),S5=O6(),H1=M.libvipsVersion(),i=M.format();i.heif.output.alias=["avif","heic"];i.jpeg.output.alias=["jpe","jpg"];i.tiff.output.alias=["tif"];i.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var b6={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},I2={vips:H1.semver};if(!H1.isGlobal)if(!H1.isWasm)try{I2=j(`@img/sharp-${S5}/versions`)}catch($){try{I2=j(`@img/sharp-libvips-${S5}/versions`)}catch(J){}}else try{I2=(()=>{throw new Error("Cannot require module "+"@img/sharp-wasm32/versions");})()}catch($){}I2.sharp=o2().version;if(I2.heif&&i.heif)i.heif.input.fileSuffix=[".avif"],i.heif.output.alias=["avif"];function C5($){if(h.bool($))if($)return M.cache(50,20,100);else return M.cache(0,0,0);else if(h.object($))return M.cache($.memory,$.files,$.items);else return M.cache()}C5(!0);function v6($){return M.concurrency(h.integer($)?$:null)}if(l2.familySync()===l2.GLIBC&&!M._isUsingJemalloc())M.concurrency(1);else if(l2.familySync()===l2.MUSL&&M.concurrency()===1024)M.concurrency(j("os").availableParallelism());var h6=new d6.EventEmitter;function g6(){return M.counters()}function m6($){return M.simd(h.bool($)?$:null)}function l6($){if(h.object($))if(Array.isArray($.operation)&&$.operation.every(h.string))M.block($.operation,!0);else throw h.invalidParameterError("operation","Array<string>",$.operation);else throw h.invalidParameterError("options","object",$)}function u6($){if(h.object($))if(Array.isArray($.operation)&&$.operation.every(h.string))M.block($.operation,!1);else throw h.invalidParameterError("operation","Array<string>",$.operation);else throw h.invalidParameterError("options","object",$)}M5.exports=function($){$.cache=C5,$.concurrency=v6,$.counters=g6,$.simd=m6,$.format=i,$.interpolators=b6,$.versions=I2,$.queue=h6,$.block=l6,$.unblock=u6}});var f5=V((U7,x5)=>{var e=h0();Z5()(e);G5()(e);P5()(e);N5()(e);D5()(e);z5()(e);A5()(e);k5()(e);x5.exports=e});import{AsyncLocalStorage as i5}from"async_hooks";class W2 extends v{service;static _name="BroadcastingServiceContainer";publishCb;context=new i5;constructor($){super();this.service=$}onPublish($){this.publishCb=$}publish(...$){let[J,F,w]=$;this.publishCb(J,F,w)}async handleMessage($,J){let F=JSON.parse(J);if(F.type==="subscribe"){let w=Object.entries(this.service.channels).sort(([W],[Z])=>W.length-Z.length);for(let[W,Z]of w){let B=new URLPattern({pathname:W});if(B.test({pathname:F.topic})){let Y=B.exec({pathname:F.topic})?.pathname.groups,K=new Z;if(await K.subscribe.call(K,Y))$.subscribe(F.topic);break}}}if(F.type==="broadcast")$.publish(F.topic,JSON.stringify({topic:F.topic,data:F.payload}));if(F.type==="unsubscribe")$.unsubscribe(F.topic)}run($,J){let F=$.get("Cookie"),w=new Map;if(F){let W=F.split(";");for(let Z of W){let[B,Y]=Z.split("=");w.set(B.trim(),Y.trim())}}this.context.run({headers:$,cookies:w},J)}}class n{static async user(){let $=d.getStore(),J=W2.use().context.getStore(),F="",w="";if($?.req)F=$.req.cookies.get("access_token"),w=$.req.headers.get("User-Agent");if(J?.cookies)w=J.headers.get("User-Agent"),F=J.cookies.get("access_token");let W=$?.user;if(!W)W=(await f.use().getSession(F,w))?.user,$?.setUser(W);if(W)return W;return null}static async guard($){let J=await n.user();if(!J)throw new _2;try{if(!await $(J))throw new _2}catch(F){throw new _2}}static async guardSafe($){let J=await n.user();if(!J)return!1;try{return await $(J)}catch(F){return!1}}static async authenticate($){await f.use().authenticate($)}static async createMagicLink($){return await f.use().createMagicLinkToken($)}}function l($,J){return $.replace(/:([^/]+)/g,(F,w)=>{let W=w.endsWith("?"),Z=W?w.slice(0,-1):w,B=J[Z];if(B===void 0){if(W)return"";throw new Error(`Missing parameter: ${Z}`)}return String(B)}).replace(/\/\//g,"/")}class E1 extends _1{constructor($){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:$}},view:{status:307,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:$}}}}}class q1{static to($,...J){let[F={}]=J,{search:w={},params:W={}}={params:{},...F},Z=new URLSearchParams(w).toString();throw new E1([l($,W),Z.toString()].filter(Boolean).join("?"))}}function A1($,J){return $.replace(/{{([^}]+)}}/g,(F,w)=>{let W=J[w];if(W===void 0)throw new Error(`Missing parameter: ${w}`);return W})}class S1{static scope($){return $}static translate($,...J){let F=P2.use(),w=F.detectLocale(d.getStore().req),W=F.translations.get(`${w}.server`)?.[$];if(!W)return $;return A1(W,J[0])}}var d5=c6(f5(),1);import{Buffer as a6}from"buffer";class j2 extends v{service;static _name="FileStorageServiceContainer";constructor($){super();this.service=$}}class O5{static async put($){return j2.use().service.driver.put($)}static async metadata($){let J=a6.from(await $.arrayBuffer());try{return await d5.default(J).metadata()}catch{return{}}}static async fetch($){return j2.use().service.driver.fetch($)}static list($){return j2.use().service.driver.list($)}static delete(){}}function b5($){return Object.fromEntries(Object.entries($).filter(([,J])=>{return J!==null&&J!==void 0}))}class F2 extends Error{constructor(){super("Adapter not found");this.name="AdapterNotFound"}}class P1{createSession(){throw new F2}deleteSession(){throw new F2}findSession(){throw new F2}findUserByEmailAddress(){throw new F2}updateSession(){throw new F2}createUser(){throw new F2}}class m5 extends R{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class l5 extends R{schema={name:{string:"Invalid name",required:"Name is required","min:2":"Name must be at least 3 characters"},email:{string:"Invalid email",required:"Email is required",email:"Invalid email"},password:{required:"Password is required","min:8":"Password must be at least 8 characters"}}}class u5 extends R{schema={email:{required:"Email is required",email:"Invalid email"}}}class c5 extends R{schema={password:{required:"Password is required",password:"Invalid password"}}}class x extends v5{provider=f.use()?.provider;async me(){let $=await n.user();if(!$)throw new g5;return $}async verifyEmail($=new R){let J=await $.input(),F=await this.provider.adapter.findUserByVerificationToken(J.get("token"));if(!F)return{email:null};if(await this.provider.adapter.verifyUser(F.email),F)return{email:F.email};return{email:null}}async signInWithMagicLink($=new R){let J=f.use(),F=J.provider,w=$.search.get("token"),W=decodeURIComponent($.search.get("email")),Z=null;try{Z=await F.adapter.findUserMagicLinkToken({email:W,token:w})}catch(Y){return console.log(Y),{error:JSON.stringify(Y)}}if(!Z)return{error:"Invalid token"};await F.adapter.verifyUser(W),await F.adapter.deleteMagicLinkToken(W);let B=await J.createOrUpdateSession({email:W});return $.ctx().setCookie("access_token",B.token,{expires:B.expiresAt}),await F.onSignIn(B),{session:B}}async signInWithPin($=new R){let J=f.use(),F=J.provider,w=await $.input(),{email:W,pin:Z}=w.toJSON();if(!await F.adapter.findUserMagicLinkToken({email:W,pin:Z}))throw new p({pin:["Invalid pin"]});await F.adapter.deleteMagicLinkToken(W),await F.adapter.verifyUser(W);let Y=await J.createOrUpdateSession({email:W});return $.ctx().setCookie("access_token",Y.token,{expires:Y.expiresAt}),await F.onSignIn(Y),{session:Y}}async signIn($=new m5){let J=await $.input.call($),{email:F,password:w}=J.toJSON(),W=await this.provider.adapter.findUserByEmailAddress(F,this.provider.verifyEmail);if(!W)throw new p({invalid_credentials:["Invalid credentials"]});if(!await this.provider.verifyPassword(w,W.password))throw new p({invalid_credentials:["Invalid credentials"]});let B=await f.use().createOrUpdateSession({email:W.email,id:W.id});$.ctx().setCookie("access_token",B.token,{expires:B.expiresAt}),await this.provider.onSignIn(W);let{password:Y,...K}=W;return K}async signUp($=new l5){let J=await $.input(),{email:F,password:w,name:W,invitationId:Z}=J.toJSON();if(await this.provider.adapter.findUserByEmailAddress(F,!1))throw new p({email:["Email address already exists"]});let Y=await this.provider.hashPassword(w),K=P2.use().detectLocale($),G;if(Z){if(G=await this.provider.adapter.findInvitation(Z,F),G)await this.provider.adapter.deleteInvitationById(Z)}let N,D;if(G)N=await this.provider.adapter.createUser({email:F,name:W,password:Y,emailVerifiedAt:new Date,locale:K}),await this.provider.adapter.createAccount({organizationId:G.organizationId,userId:N.id,organizationRole:G.role});else D=await this.provider.generateEmailVerificationToken(F),N=await this.provider.adapter.createUser({email:F,name:W,password:Y,verificationToken:D,locale:K});return await this.provider.onSignUp(N,D),N}async signOut($=new R){let J=$.cookies.get("access_token"),F=await n.user();return await this.provider.adapter.deleteSession({token:J}),$.ctx().setCookie("access_token","",{expires:new Date(0)}),await this.provider.onSignOut(F),{}}async forgotPassword($=new u5){let J=await $.input(),{email:F}=J.toJSON(),w=await this.provider.adapter.findUserByEmailAddress(F,this.provider.verifyEmail);if(!w)return{};let W=await this.provider.generateForgotPasswordToken(w);return await this.provider.adapter.createPasswordResetToken({user:w,token:W}),await this.provider.onForgotPassword(w,W),{}}async resetPassword($=new c5){let J=await $.input(),{password:F,token:w}=J.toJSON(),W=await this.provider.adapter.findPasswordResetToken({token:w});if(!W)throw new p({token:["Invalid token"]});if(R2.Instant.from(W.createdAt.toISOString()).add({hours:24}).until(R2.Now.instant()).sign>=0)throw new p({token:["Token expired"]});await this.provider.adapter.deletePasswordResetToken({token:w});let B=await this.provider.adapter.findUserByEmailAddress(W.user.email,this.provider.verifyEmail);if(!B)throw new p({email:["User not found"]});let Y=await this.provider.hashPassword(F);return await this.provider.adapter.updateUserPassword({id:B.id,password:Y}),await this.provider.adapter.deleteAllUserSessions(B.id),await this.provider.onResetPassword(B),{}}async changePassword($=new R){let J=await n.user(),F=await $.input(),{oldPassword:w,newPassword:W}=F.toJSON(),{password:Z}=await this.provider.adapter.findUserByEmailAddress(J.email,this.provider.verifyEmail);if(!await this.provider.verifyPassword(w,Z))throw new p({oldPassword:["Incorrect password"]});let Y=await this.provider.hashPassword(W);return await this.provider.adapter.updateUserPassword({id:J.id,password:Y}),await this.provider.adapter.deleteAllUserSessions(J.id),{}}async oauthRedirect($=new R){let{provider:J}=$.params,F=f.use().provider.oauthProviders[J];if(!F)throw new Error(`Invalid provider: ${J}`);return{url:await F.getRedirectUrl($)}}async oauthCallback($=new R){let{provider:J}=$.params,F=f.use(),w=F.provider,W=w.oauthProviders[J],{email:Z,name:B}=await W.onCallback($),Y=await w.adapter.findUserByEmailAddress(Z,!1),K=P2.use().detectLocale($);if(!Y)Y=await this.provider.adapter.createUser({email:Z,name:B,locale:K});let G=await F.createOrUpdateSession({email:Y.email,id:Y.id});return $.ctx().setCookie("access_token",G.token,{expires:G.expiresAt}),await w.onSignIn(Y),{session:G}}async createMagicLinkToken($=new R){let J=await $.input(),{email:F}=J.toJSON(),w=f.use(),W=w.provider,{user:Z,pin:B,token:Y}=await w.createMagicLinkToken(F);return await W.onMagicLinkCreated(Z,{email:F,pin:B,token:Y}),{email:F}}}class a5 extends y1{routes={"/:provider":this.view("__",[x,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[x,"oauthCallback"])}}class r6 extends y1{routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[x,"signInWithMagicLink"]),"/oauth":a5}}class L1 extends G2{middlewares=["cache:private"];routes={"/sign-in":this.post(x,"signIn"),"/sign-up":this.post(x,"signUp"),"/sign-out":this.post(x,"signOut"),"/forgot-password":this.post(x,"forgotPassword"),"/reset-password":this.post(x,"resetPassword"),"/change-password":this.post(x,"changePassword"),"/verify-email":this.post(x,"verifyEmail"),"/me":this.get(x,"me").middleware(["auth"]),"/magic-link":this.post(x,"createMagicLinkToken"),"/sign-in-with-pin":this.post(x,"signInWithPin")}}class e6 extends h5{basePath="/auth";verifyEmail=!0;sessionExpiresInHours=24;sessionAbsoluteExpiresInHours=672;adapter=new P1;oauthProviders={};boot(){}async verifyPassword($,J){return await Bun.password.verify($,J)}async hashPassword($){return await Bun.password.hash($)}async generateForgotPasswordToken($){let J=new Bun.CryptoHasher("sha256");return J.update(`${$.email}${Date.now()}`),J.digest("hex")}generateEmailVerificationToken($){if(!this.verifyEmail)return"";let J=new Bun.CryptoHasher("sha256");return J.update(`${$}${Date.now()}`),J.digest("hex")}generateMagicLinkToken($){let J=new Bun.CryptoHasher("sha256");return J.update(`${$}${Date.now()}`),J.digest("hex")}extendSession($){return{}}onSignUp($,J){}onSignIn($){}onSignOut($){}onForgotPassword($,J){}onResetPassword($){}onMagicLinkCreated($,J){return}}class N1 extends G2{routes={"/resize":this.file(async()=>{let $=new R,J=new URL($.rawRequest.url),F=J.searchParams.get("url"),w=Number(J.searchParams.get("w")),W=Number(J.searchParams.get("h")),Z=J.searchParams.get("fit")??"cover",B=Number(J.searchParams.get("q"));if(!F)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let K=`${F.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${F}`,G=await fetch(K);if(!G.ok)return new Response(JSON.stringify({error:"Image not found",info:K}),{headers:{"Content-Type":"application/json"},status:404});let N=Buffer.from(await G.arrayBuffer()),D=await r5.use().service.driver.resize(N,{height:W,width:w,fit:Z,quality:B});return G.headers.delete("Content-Type"),G.headers.delete("Content-Length"),new Response(D,{headers:{"Content-Type":"image/webp","Content-Length":`${D.byteLength}`,...G.headers.toJSON()}})})}}class r5 extends v{service;static _name="ImageOptimizationServiceContainer";constructor($){super();this.service=$}}import{mkdir as p6,exists as n6,readdir as s6}from"fs/promises";class g extends v{service;static _name="LoggingServiceContainer";writer;isReady=!1;logsDirPath=`${process.env.ROOT_DIR}/storage/logs`;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;currentLogFilePath;constructor($){super();this.service=$;this.boot().then(()=>{this.isReady=!0})}async boot(){if(!process.env.ROOT_DIR)return;if(!await n6(this.logsDirPath))await p6(this.logsDirPath);this.newLogFile()}async newLogFile(){if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let F=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.service.onLogFileClosed(F),this.fileSize=0,this.writerSize=0}let J=(await s6(this.logsDirPath)).sort().reverse()[0];if(J){let F=Bun.file(`${this.logsDirPath}/${J}`);if(F.size<this.service.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${J}`,this.writer=F.writer(),this.writer.write(await F.text()),this.writer.write(`
|
|
4
|
+
`),this.writer.flush(),this.fileSize=F.size}if(!this.writer){let F=`${new Date(Date.now()).toISOString()}.log`.replaceAll(":","-");this.currentLogFilePath=`${this.logsDirPath}/${F}`;let w=Bun.file(`${this.logsDirPath}/${F}`);this.writer=w.writer(),this.fileSize=0,this.writerSize=0}this.isCreatingFile=!1}async log($,J,F={}){if(!this.isReady)await new Promise((Y)=>{let K=setInterval(()=>{if(this.isReady)Y({}),clearInterval(K)},100)});let w=d.getStore(),W={};if(w)W={url:w.req.rawRequest.url,method:w.req.rawRequest.method,headers:w.req.rawRequest.headers,body:w.req.rawRequest.body};let Z={timestamp:new Date(Date.now()).toISOString(),env:"production",level:$,message:J,metadata:{...W,...F}},B="";try{B=JSON.stringify(Z)}catch(Y){throw new Error("Metadata must be a valid JSON object")}this.writerSize+=B.length,this.fileSize+=B.length,this.writer.write(B),this.writer.write(`
|
|
5
|
+
`),u2.channel("/logs/live",{}).publish(JSON.stringify(Z)),this.service.onLogCreated(Z),this.tryFlush()}async tryFlush(){if(this.fileSize>this.service.maxFileSize){if(!this.isCreatingFile)await this.newLogFile()}if(this.writerSize>this.service.maxFileSize/2)await this.writer.flush(),this.writerSize=0,await this.newLogFile();else clearTimeout(this.flushTimeout),this.flushTimeout=setTimeout(async()=>{await this.writer.flush(),this.writerSize=0},100)}}class X1 extends G2{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let $=Bun.file(g.use().currentLogFilePath);return new Response(await $.text(),{headers:{"Content-Type":"text/plain"}})})}}function t6($){let J=new Map;for(let F of $)if(typeof F==="string"){let[w,W=""]=F.split(":");if(w.startsWith("-")){if(J.has(w.replace("-","")))J.delete(w.replace("-",""))}else J.set(w,W.split(",").filter(Boolean))}else J.set(F,[]);return J}class V1 extends v{service;static _name="MiddlewareServiceContainer";constructor($){super();this.service=$}runMiddleware($){let J=new R;return Array.from(t6($).entries()).map(([F,w])=>{if(typeof F==="string"){let W=this.service.aliases[F];if(W){let Z=new W(J);return()=>Z.run.call(Z,...w)}}else{if(e5(F)){let W=new F(J);return W.run.bind(W)}return F}}).filter(Boolean).reduce((F,w)=>{return async()=>{return{...await F(),...await w()}}},()=>Promise.resolve({}))()}}function p5($){return $.replace(/-([a-z])/g,(J)=>J[1].toUpperCase())}function D1(){let J=new R().ctx().headers;return console.log(J),new Response(null,{headers:J,status:204})}function i6($){if("__brand"in $)return $.__brand==="ApiRouter";return!1}function T1($,J=""){let F={};for(let[w,W]of Object.entries($))if("run"in W){let Z=W;if(!F[w])F[w]={};let{method:B,middlewares:Y}=Z,K=Z.run.bind(Z);F[w][B]={exec:K,middleware:Y},F[w].OPTIONS={exec:()=>D1(),middleware:Y}}else if(typeof W==="function"){let Z={},B=[];if(i6(W)){let K=new W;Z=K.routes,B=[K.middleware,...K.middlewares]}else{let[K]=(w==="/"?J:w).split("/").reverse();if(K==="")throw new Error(`"${w}" is not valid for a resource route`);if(K.includes(":"))throw new Error(`Last segment of a resource route has to be static. See "${w}"`);Z=W(`${p5(K)}Id`)}let Y=T1(Z,w);for(let[K,G]of Object.entries(Y)){let N=K==="/"?"":K,D=w==="/"?"":w,A=`${D}${N}`===""?"/":`${D}${N}`;if(!F[A])F[A]={};for(let[a2,H2]of Object.entries(G))F[A][a2]={exec:H2.exec,middleware:[...B,...H2.middleware]},F[A].OPTIONS={exec:()=>D1(),middleware:[...B,...H2.middleware]}}}else for(let Z of Object.values(W)){if(!F[w])F[w]={};let{method:B,middlewares:Y}=Z,K=Z.run.bind(Z);F[w][B]={exec:K,middleware:Y},F[w].OPTIONS={exec:()=>D1(),middleware:Y}}return Object.fromEntries(Object.entries(F).sort(([w],[W])=>{let Z=w.split("/").length+w.split(":").length,B=W.split("/").length+W.split(":").length;return Z-B}))}class j1 extends v{service;static _name="ApiRouterServiceContainer";flatRoutes={};constructor($){super();this.service=$;this.flatRoutes=T1({"/":this.service.rootRouter.bind(this.service),"/auth":L1,"/__gemi__/services/i18n":n5,"/__gemi__/services/logs":X1,"/__gemi__/services/image":N1})}getRouteHandlerAndParams($){let F=new URL($.url).pathname.replace("/api",""),w={},W;for(let[Z]of Object.entries(this.flatRoutes))try{let B=new URLPattern({pathname:Z});if(B.test({pathname:F})){W=Z,w=B.exec({pathname:F})?.pathname.groups;break}}catch(B){console.error(B)}return{params:w,path:W}}async runRouteMiddleware($,J){let w=this.flatRoutes[$][J.rawRequest.method].middleware;try{await V1.use().runMiddleware(w)}catch(W){if(W.kind===z1){if(J.rawRequest.url.includes("/api")){let{status:Z=400,data:B,headers:Y}=W.payload.api;return new Response(JSON.stringify(B),{status:Z,headers:{"Content-Type":"application/json",...Y}})}}else throw this.service.onRequestFail(J,W),console.error(W),W}}async getRouteData($){let J=this.flatRoutes[$],F=d.getStore(),w=J[F.req.rawRequest.method].exec??(()=>Promise.resolve({})),W={};try{W=await w()}catch(Z){if(Z.kind===z1){let{status:B=400,data:Y,headers:K}=Z.payload.api;return new Response(JSON.stringify(Y),{status:B,headers:{"Content-Type":"application/json",...K}})}else throw this.service.onRequestFail(F.req,Z),console.error(Z),Z}return W}async handleApiRequest($){let{params:J,path:F}=this.getRouteHandlerAndParams($),w=this.flatRoutes[F];if(!w||!w[$.method])return new Response(JSON.stringify({error:{message:"Not found"}}),{status:404});let W=new R($,J,"api",F);if(!$.url.includes("/__gemi__"))this.service.onRequestStart(W);return await d.run(W,async()=>{let Z=d.getStore();Z.setRequest(W);let B=await this.runRouteMiddleware(F,W);if(B instanceof Response)return B;let Y=await this.getRouteData(F);if(Y instanceof Response)return Y;let K=Z.headers;if(K.append("Content-Type","application/json"),Z.cookies.forEach((G)=>K.append("Set-Cookie",G.toString())),Z.destroy(),!$.url.includes("/__gemi__"))this.service.onRequestEnd(W);return new Response(JSON.stringify(Y),{headers:K})})}}class c2{static prepare($,...J){let F={params:{},search:{}},[w={}]=J,{search:W,params:Z}={...F,...w},B=d.getStore();if(B.req.kind==="api")throw new Error("Query.prefetch() cannot be called from an API request");let Y=B.req.rawRequest,K=new URL(Y.url),G=new URLSearchParams(b5(W));G.delete("json"),G.sort();let N=[`${l($,Z)}`,G.toString()].filter((w2)=>w2.length>0).join("?"),D=`${K.origin}/${N}`,A=new Request(D,{headers:Y.headers}),a2=new R(A,Z),H2=(w2)=>{B.prefetchedResources.set(l($,Z),{[G.toString()]:w2})},R1=()=>{return d.run(a2,async()=>{let w2=await j1.use().getRouteData($);return H2(w2),w2})};return{instant:R1,prefetch:()=>{B.prefetchPromiseQueue.add(R1)}}}static instant($,...J){return c2.prepare($,...J).instant()}static prefetch($,...J){return c2.prepare($,...J).prefetch()}}class u2{static channel($,J){let F=W2.use().service.channels[$];if(!F)return console.error(`Channel ${$} not found`),{publish:()=>{}};let w=new F;return{publish:(W,Z=!1)=>{let B=l($,J);W2.use().publish(B,JSON.stringify({topic:B,data:w.publish(W)}),Z)}}}}class s5{static absolute($,...J){return`${process.env.HOST_NAME}${l(String($),J[0]??{})}`}static relative($,...J){return l(String($),J[0]??{})}}class t5{static debug($,J){g.use().log("debug",$,J)}static info($,J){g.use().log("info",$,J)}static notice($,J){g.use().log("notice",$,J)}static warning($,J){g.use().log("warning",$,J)}static error($,J){g.use().log("error",$,J)}static critical($,J){g.use().log("critical",$,J)}static alert($,J){g.use().log("alert",$,J)}static emergency($,J){g.use().log("emergency",$,J)}}export{s5 as Url,q1 as Redirect,c2 as Query,t5 as Log,S1 as I18n,O5 as FileStorage,u2 as Broadcast,n as Auth};export{W2 as tb,q1 as ub,f5 as vb,j2 as wb,g as xb,t5 as yb,r6 as zb,e6 as Ab,r5 as Bb,V1 as Cb,j1 as Db};
|
|
3
6
|
|
|
4
|
-
//# debugId=
|
|
7
|
+
//# debugId=B3FFF1E977E3706E64756E2164756E21
|