gemi 0.12.13 → 0.12.14
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/facades/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{fc as W4,gc as f1,hc as Z4,jc as U4,kc as b2,lc as x2,mc as q}from"../http/index.js";import{pc as I4,qc as U2,rc as O2,sc as a1,tc as o,vc as d,wc as y4,xc as s,yc as C,zc as _}from"../chunk-d22q8e8f.js";import{Bc as H4}from"../chunk-hhkht3nz.js";import{Cc as H7,Dc as V,Ec as A}from"../chunk-bzp23bra.js";var e=V((a7,s1)=>{var n1=function($){return typeof $!=="undefined"&&$!==null},D4=function($){return typeof $==="object"},_4=function($){return Object.prototype.toString.call($)==="[object Object]"},E4=function($){return typeof $==="function"},A4=function($){return typeof $==="boolean"},R4=function($){return $ instanceof Buffer},q4=function($){if(n1($))switch($.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},P4=function($){return $ instanceof ArrayBuffer},S4=function($){return typeof $==="string"&&$.length>0},C4=function($){return typeof $==="number"&&!Number.isNaN($)},M4=function($){return Number.isInteger($)},k4=function($,J,F){return $>=J&&$<=F},x4=function($,J){return J.includes($)},f4=function($,J,F){return new Error(`Expected ${J} for ${$} but received ${F} of type ${typeof F}`)},O4=function($,J){return J.message=$.message,J};s1.exports={defined:n1,object:D4,plainObject:_4,fn:E4,bool:A4,buffer:R4,typedArray:q4,arrayBuffer:P4,string:S4,number:C4,integer:M4,inRange:k4,inArray:x4,invalidParameterError:f4,nativeError:O4}});var E2=V((r7,t1)=>{var b4=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};t1.exports=b4});var d2=V((e7,i1)=>{var d4=Number.MAX_SAFE_INTEGER||9007199254740991,v4=["major","premajor","minor","preminor","patch","prepatch","prerelease"];i1.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:d4,RELEASE_TYPES:v4,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var A2=V((p,o1)=>{var{MAX_SAFE_COMPONENT_LENGTH:G1,MAX_SAFE_BUILD_LENGTH:g4,MAX_LENGTH:h4}=d2(),m4=E2();p=o1.exports={};var l4=p.re=[],c4=p.safeRe=[],H=p.src=[],u4=p.safeSrc=[],y=p.t={},a4=0,I1="[a-zA-Z0-9-]",r4=[["\\s",1],["\\d",h4],[I1,g4]],e4=($)=>{for(let[J,F]of r4)$=$.split(`${J}*`).join(`${J}{0,${F}}`).split(`${J}+`).join(`${J}{1,${F}}`);return $},T=($,J,F)=>{let W=e4(J),Z=a4++;m4($,Z,J),y[$]=Z,H[Z]=J,u4[Z]=W,l4[Z]=new RegExp(J,F?"g":void 0),c4[Z]=new RegExp(W,F?"g":void 0)};T("NUMERICIDENTIFIER","0|[1-9]\\d*");T("NUMERICIDENTIFIERLOOSE","\\d+");T("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${I1}*`);T("MAINVERSION",`(${H[y.NUMERICIDENTIFIER]})\\.(${H[y.NUMERICIDENTIFIER]})\\.(${H[y.NUMERICIDENTIFIER]})`);T("MAINVERSIONLOOSE",`(${H[y.NUMERICIDENTIFIERLOOSE]})\\.(${H[y.NUMERICIDENTIFIERLOOSE]})\\.(${H[y.NUMERICIDENTIFIERLOOSE]})`);T("PRERELEASEIDENTIFIER",`(?:${H[y.NUMERICIDENTIFIER]}|${H[y.NONNUMERICIDENTIFIER]})`);T("PRERELEASEIDENTIFIERLOOSE",`(?:${H[y.NUMERICIDENTIFIERLOOSE]}|${H[y.NONNUMERICIDENTIFIER]})`);T("PRERELEASE",`(?:-(${H[y.PRERELEASEIDENTIFIER]}(?:\\.${H[y.PRERELEASEIDENTIFIER]})*))`);T("PRERELEASELOOSE",`(?:-?(${H[y.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${H[y.PRERELEASEIDENTIFIERLOOSE]})*))`);T("BUILDIDENTIFIER",`${I1}+`);T("BUILD",`(?:\\+(${H[y.BUILDIDENTIFIER]}(?:\\.${H[y.BUILDIDENTIFIER]})*))`);T("FULLPLAIN",`v?${H[y.MAINVERSION]}${H[y.PRERELEASE]}?${H[y.BUILD]}?`);T("FULL",`^${H[y.FULLPLAIN]}$`);T("LOOSEPLAIN",`[v=\\s]*${H[y.MAINVERSIONLOOSE]}${H[y.PRERELEASELOOSE]}?${H[y.BUILD]}?`);T("LOOSE",`^${H[y.LOOSEPLAIN]}$`);T("GTLT","((?:<|>)?=?)");T("XRANGEIDENTIFIERLOOSE",`${H[y.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);T("XRANGEIDENTIFIER",`${H[y.NUMERICIDENTIFIER]}|x|X|\\*`);T("XRANGEPLAIN",`[v=\\s]*(${H[y.XRANGEIDENTIFIER]})(?:\\.(${H[y.XRANGEIDENTIFIER]})(?:\\.(${H[y.XRANGEIDENTIFIER]})(?:${H[y.PRERELEASE]})?${H[y.BUILD]}?)?)?`);T("XRANGEPLAINLOOSE",`[v=\\s]*(${H[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[y.XRANGEIDENTIFIERLOOSE]})(?:${H[y.PRERELEASELOOSE]})?${H[y.BUILD]}?)?)?`);T("XRANGE",`^${H[y.GTLT]}\\s*${H[y.XRANGEPLAIN]}$`);T("XRANGELOOSE",`^${H[y.GTLT]}\\s*${H[y.XRANGEPLAINLOOSE]}$`);T("COERCEPLAIN",`(^|[^\\d])(\\d{1,${G1}})(?:\\.(\\d{1,${G1}}))?(?:\\.(\\d{1,${G1}}))?`);T("COERCE",`${H[y.COERCEPLAIN]}(?:$|[^\\d])`);T("COERCEFULL",H[y.COERCEPLAIN]+`(?:${H[y.PRERELEASE]})?(?:${H[y.BUILD]})?(?:$|[^\\d])`);T("COERCERTL",H[y.COERCE],!0);T("COERCERTLFULL",H[y.COERCEFULL],!0);T("LONETILDE","(?:~>?)");T("TILDETRIM",`(\\s*)${H[y.LONETILDE]}\\s+`,!0);p.tildeTrimReplace="$1~";T("TILDE",`^${H[y.LONETILDE]}${H[y.XRANGEPLAIN]}$`);T("TILDELOOSE",`^${H[y.LONETILDE]}${H[y.XRANGEPLAINLOOSE]}$`);T("LONECARET","(?:\\^)");T("CARETTRIM",`(\\s*)${H[y.LONECARET]}\\s+`,!0);p.caretTrimReplace="$1^";T("CARET",`^${H[y.LONECARET]}${H[y.XRANGEPLAIN]}$`);T("CARETLOOSE",`^${H[y.LONECARET]}${H[y.XRANGEPLAINLOOSE]}$`);T("COMPARATORLOOSE",`^${H[y.GTLT]}\\s*(${H[y.LOOSEPLAIN]})$|^$`);T("COMPARATOR",`^${H[y.GTLT]}\\s*(${H[y.FULLPLAIN]})$|^$`);T("COMPARATORTRIM",`(\\s*)${H[y.GTLT]}\\s*(${H[y.LOOSEPLAIN]}|${H[y.XRANGEPLAIN]})`,!0);p.comparatorTrimReplace="$1$2$3";T("HYPHENRANGE",`^\\s*(${H[y.XRANGEPLAIN]})\\s+-\\s+(${H[y.XRANGEPLAIN]})\\s*$`);T("HYPHENRANGELOOSE",`^\\s*(${H[y.XRANGEPLAINLOOSE]})\\s+-\\s+(${H[y.XRANGEPLAINLOOSE]})\\s*$`);T("STAR","(<|>)?=?\\s*\\*");T("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");T("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var v2=V((p7,$0)=>{var p4=Object.freeze({loose:!0}),n4=Object.freeze({}),s4=($)=>{if(!$)return n4;if(typeof $!=="object")return p4;return $};$0.exports=s4});var Z0=V((n7,W0)=>{var J0=/^[0-9]+$/,F0=($,J)=>{let F=J0.test($),W=J0.test(J);if(F&&W)$=+$,J=+J;return $===J?0:F&&!W?-1:W&&!F?1:$<J?-1:1},t4=($,J)=>F0(J,$);W0.exports={compareIdentifiers:F0,rcompareIdentifiers:t4}});var H2=V((s7,Q0)=>{var g2=E2(),{MAX_LENGTH:U0,MAX_SAFE_INTEGER:h2}=d2(),{safeRe:B0,safeSrc:Y0,t:m2}=A2(),i4=v2(),{compareIdentifiers:L2}=Z0();class a{constructor($,J){if(J=i4(J),$ instanceof a)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>U0)throw new TypeError(`version is longer than ${U0} characters`);g2("SemVer",$,J),this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease;let F=$.trim().match(J.loose?B0[m2.LOOSE]:B0[m2.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>h2||this.major<0)throw new TypeError("Invalid major version");if(this.minor>h2||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>h2||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 Z=+W;if(Z>=0&&Z<h2)return Z}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(g2("SemVer.compare",this.version,this.options,$),!($ instanceof a)){if(typeof $==="string"&&$===this.version)return 0;$=new a($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof a))$=new a($,this.options);return L2(this.major,$.major)||L2(this.minor,$.minor)||L2(this.patch,$.patch)}comparePre($){if(!($ instanceof a))$=new a($,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(g2("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 L2(F,W)}while(++J)}compareBuild($){if(!($ instanceof a))$=new a($,this.options);let J=0;do{let F=this.build[J],W=$.build[J];if(g2("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 L2(F,W)}while(++J)}inc($,J,F){if($.startsWith("pre")){if(!J&&F===!1)throw new Error("invalid increment argument: identifier is empty");if(J){let W=new RegExp(`^${this.options.loose?Y0[m2.PRERELEASELOOSE]:Y0[m2.PRERELEASE]}$`),Z=`-${J}`.match(W);if(!Z||Z[1]!==J)throw new Error(`invalid identifier: ${J}`)}}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"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;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(this.prerelease.length===0)this.prerelease=[W];else{let Z=this.prerelease.length;while(--Z>=0)if(typeof this.prerelease[Z]==="number")this.prerelease[Z]++,Z=-2;if(Z===-1){if(J===this.prerelease.join(".")&&F===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(W)}}if(J){let Z=[J,W];if(F===!1)Z=[J];if(L2(this.prerelease[0],J)===0){if(isNaN(this.prerelease[1]))this.prerelease=Z}else this.prerelease=Z}break}default:throw new Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}Q0.exports=a});var G0=V((t7,w0)=>{var K0=H2(),o4=($,J,F=!1)=>{if($ instanceof K0)return $;try{return new K0($,J)}catch(W){if(!F)return null;throw W}};w0.exports=o4});var L0=V((i7,I0)=>{var $3=H2(),J3=G0(),{safeRe:l2,t:c2}=A2(),F3=($,J)=>{if($ instanceof $3)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;J=J||{};let F=null;if(!J.rtl)F=$.match(J.includePrerelease?l2[c2.COERCEFULL]:l2[c2.COERCE]);else{let K=J.includePrerelease?l2[c2.COERCERTLFULL]:l2[c2.COERCERTL],I;while((I=K.exec($))&&(!F||F.index+F[0].length!==$.length)){if(!F||I.index+I[0].length!==F.index+F[0].length)F=I;K.lastIndex=I.index+I[1].length+I[2].length}K.lastIndex=-1}if(F===null)return null;let W=F[2],Z=F[3]||"0",U=F[4]||"0",Y=J.includePrerelease&&F[5]?`-${F[5]}`:"",Q=J.includePrerelease&&F[6]?`+${F[6]}`:"";return J3(`${W}.${Z}.${U}${Y}${Q}`,J)};I0.exports=F3});var B2=V((o7,y0)=>{var H0=H2(),W3=($,J,F)=>new H0($,F).compare(new H0(J,F));y0.exports=W3});var L1=V(($9,X0)=>{var Z3=B2(),U3=($,J,F)=>Z3($,J,F)>=0;X0.exports=U3});var T0=V((J9,j0)=>{class N0{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}}j0.exports=N0});var z0=V((F9,V0)=>{var B3=B2(),Y3=($,J,F)=>B3($,J,F)===0;V0.exports=Y3});var _0=V((W9,D0)=>{var Q3=B2(),K3=($,J,F)=>Q3($,J,F)!==0;D0.exports=K3});var A0=V((Z9,E0)=>{var w3=B2(),G3=($,J,F)=>w3($,J,F)>0;E0.exports=G3});var q0=V((U9,R0)=>{var I3=B2(),L3=($,J,F)=>I3($,J,F)<0;R0.exports=L3});var S0=V((B9,P0)=>{var H3=B2(),y3=($,J,F)=>H3($,J,F)<=0;P0.exports=y3});var M0=V((Y9,C0)=>{var X3=z0(),N3=_0(),j3=A0(),T3=L1(),V3=q0(),z3=S0(),D3=($,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 X3($,F,W);case"!=":return N3($,F,W);case">":return j3($,F,W);case">=":return T3($,F,W);case"<":return V3($,F,W);case"<=":return z3($,F,W);default:throw new TypeError(`Invalid operator: ${J}`)}};C0.exports=D3});var v0=V((Q9,d0)=>{var R2=Symbol("SemVer ANY");class u2{static get ANY(){return R2}constructor($,J){if(J=k0(J),$ instanceof u2)if($.loose===!!J.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),y1("comparator",$,J),this.options=J,this.loose=!!J.loose,this.parse($),this.semver===R2)this.value="";else this.value=this.operator+this.semver.version;y1("comp",this)}parse($){let J=this.options.loose?x0[f0.COMPARATORLOOSE]:x0[f0.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=R2;else this.semver=new O0(F[2],this.options.loose)}toString(){return this.value}test($){if(y1("Comparator.test",$,this.options.loose),this.semver===R2||$===R2)return!0;if(typeof $==="string")try{$=new O0($,this.options)}catch(J){return!1}return H1($,this.operator,this.semver,this.options)}intersects($,J){if(!($ instanceof u2))throw new TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new b0($.value,J).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new b0(this.value,J).test($.semver)}if(J=k0(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(H1(this.semver,"<",$.semver,J)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(H1(this.semver,">",$.semver,J)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}d0.exports=u2;var k0=v2(),{safeRe:x0,t:f0}=A2(),H1=M0(),y1=E2(),O0=H2(),b0=X1()});var X1=V((K9,l0)=>{var _3=/\s+/g;class q2{constructor($,J){if(J=A3(J),$ instanceof q2)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else return new q2($.raw,J);if($ instanceof N1)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(_3," "),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)=>!h0(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&&k3(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&&C3)|(this.options.loose&&M3))+":"+$,W=g0.get(F);if(W)return W;let Z=this.options.loose,U=Z?v[f.HYPHENRANGELOOSE]:v[f.HYPHENRANGE];$=$.replace(U,l3(this.options.includePrerelease)),E("hyphen replace",$),$=$.replace(v[f.COMPARATORTRIM],q3),E("comparator trim",$),$=$.replace(v[f.TILDETRIM],P3),E("tilde trim",$),$=$.replace(v[f.CARETTRIM],S3),E("caret trim",$);let Y=$.split(" ").map((L)=>x3(L,this.options)).join(" ").split(/\s+/).map((L)=>m3(L,this.options));if(Z)Y=Y.filter((L)=>{return E("loose invalid filter",L,this.options),!!L.match(v[f.COMPARATORLOOSE])});E("range list",Y);let Q=new Map,K=Y.map((L)=>new N1(L,this.options));for(let L of K){if(h0(L))return[L];Q.set(L.value,L)}if(Q.size>1&&Q.has(""))Q.delete("");let I=[...Q.values()];return g0.set(F,I),I}intersects($,J){if(!($ instanceof q2))throw new TypeError("a Range is required");return this.set.some((F)=>{return m0(F,J)&&$.set.some((W)=>{return m0(W,J)&&F.every((Z)=>{return W.every((U)=>{return Z.intersects(U,J)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new R3($,this.options)}catch(J){return!1}for(let J=0;J<this.set.length;J++)if(c3(this.set[J],$,this.options))return!0;return!1}}l0.exports=q2;var E3=T0(),g0=new E3,A3=v2(),N1=v0(),E=E2(),R3=H2(),{safeRe:v,t:f,comparatorTrimReplace:q3,tildeTrimReplace:P3,caretTrimReplace:S3}=A2(),{FLAG_INCLUDE_PRERELEASE:C3,FLAG_LOOSE:M3}=d2(),h0=($)=>$.value==="<0.0.0-0",k3=($)=>$.value==="",m0=($,J)=>{let F=!0,W=$.slice(),Z=W.pop();while(F&&W.length)F=W.every((U)=>{return Z.intersects(U,J)}),Z=W.pop();return F},x3=($,J)=>{return E("comp",$,J),$=b3($,J),E("caret",$),$=f3($,J),E("tildes",$),$=v3($,J),E("xrange",$),$=h3($,J),E("stars",$),$},O=($)=>!$||$.toLowerCase()==="x"||$==="*",f3=($,J)=>{return $.trim().split(/\s+/).map((F)=>O3(F,J)).join(" ")},O3=($,J)=>{let F=J.loose?v[f.TILDELOOSE]:v[f.TILDE];return $.replace(F,(W,Z,U,Y,Q)=>{E("tilde",$,W,Z,U,Y,Q);let K;if(O(Z))K="";else if(O(U))K=`>=${Z}.0.0 <${+Z+1}.0.0-0`;else if(O(Y))K=`>=${Z}.${U}.0 <${Z}.${+U+1}.0-0`;else if(Q)E("replaceTilde pr",Q),K=`>=${Z}.${U}.${Y}-${Q} <${Z}.${+U+1}.0-0`;else K=`>=${Z}.${U}.${Y} <${Z}.${+U+1}.0-0`;return E("tilde return",K),K})},b3=($,J)=>{return $.trim().split(/\s+/).map((F)=>d3(F,J)).join(" ")},d3=($,J)=>{E("caret",$,J);let F=J.loose?v[f.CARETLOOSE]:v[f.CARET],W=J.includePrerelease?"-0":"";return $.replace(F,(Z,U,Y,Q,K)=>{E("caret",$,Z,U,Y,Q,K);let I;if(O(U))I="";else if(O(Y))I=`>=${U}.0.0${W} <${+U+1}.0.0-0`;else if(O(Q))if(U==="0")I=`>=${U}.${Y}.0${W} <${U}.${+Y+1}.0-0`;else I=`>=${U}.${Y}.0${W} <${+U+1}.0.0-0`;else if(K)if(E("replaceCaret pr",K),U==="0")if(Y==="0")I=`>=${U}.${Y}.${Q}-${K} <${U}.${Y}.${+Q+1}-0`;else I=`>=${U}.${Y}.${Q}-${K} <${U}.${+Y+1}.0-0`;else I=`>=${U}.${Y}.${Q}-${K} <${+U+1}.0.0-0`;else if(E("no pr"),U==="0")if(Y==="0")I=`>=${U}.${Y}.${Q}${W} <${U}.${Y}.${+Q+1}-0`;else I=`>=${U}.${Y}.${Q}${W} <${U}.${+Y+1}.0-0`;else I=`>=${U}.${Y}.${Q} <${+U+1}.0.0-0`;return E("caret return",I),I})},v3=($,J)=>{return E("replaceXRanges",$,J),$.split(/\s+/).map((F)=>g3(F,J)).join(" ")},g3=($,J)=>{$=$.trim();let F=J.loose?v[f.XRANGELOOSE]:v[f.XRANGE];return $.replace(F,(W,Z,U,Y,Q,K)=>{E("xRange",$,W,Z,U,Y,Q,K);let I=O(U),L=I||O(Y),N=L||O(Q),z=N;if(Z==="="&&z)Z="";if(K=J.includePrerelease?"-0":"",I)if(Z===">"||Z==="<")W="<0.0.0-0";else W="*";else if(Z&&z){if(L)Y=0;if(Q=0,Z===">")if(Z=">=",L)U=+U+1,Y=0,Q=0;else Y=+Y+1,Q=0;else if(Z==="<=")if(Z="<",L)U=+U+1;else Y=+Y+1;if(Z==="<")K="-0";W=`${Z+U}.${Y}.${Q}${K}`}else if(L)W=`>=${U}.0.0${K} <${+U+1}.0.0-0`;else if(N)W=`>=${U}.${Y}.0${K} <${U}.${+Y+1}.0-0`;return E("xRange return",W),W})},h3=($,J)=>{return E("replaceStars",$,J),$.trim().replace(v[f.STAR],"")},m3=($,J)=>{return E("replaceGTE0",$,J),$.trim().replace(v[J.includePrerelease?f.GTE0PRE:f.GTE0],"")},l3=($)=>(J,F,W,Z,U,Y,Q,K,I,L,N,z)=>{if(O(W))F="";else if(O(Z))F=`>=${W}.0.0${$?"-0":""}`;else if(O(U))F=`>=${W}.${Z}.0${$?"-0":""}`;else if(Y)F=`>=${F}`;else F=`>=${F}${$?"-0":""}`;if(O(I))K="";else if(O(L))K=`<${+I+1}.0.0-0`;else if(O(N))K=`<${I}.${+L+1}.0-0`;else if(z)K=`<=${I}.${L}.${N}-${z}`;else if($)K=`<${I}.${L}.${+N+1}-0`;else K=`<=${K}`;return`${F} ${K}`.trim()},c3=($,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(E($[W].semver),$[W].semver===N1.ANY)continue;if($[W].semver.prerelease.length>0){let Z=$[W].semver;if(Z.major===J.major&&Z.minor===J.minor&&Z.patch===J.patch)return!0}}return!1}return!0}});var u0=V((w9,c0)=>{var u3=X1(),a3=($,J,F)=>{try{J=new u3(J,F)}catch(W){return!1}return J.test($)};c0.exports=a3});var j1=V((G9,r3)=>{r3.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 V1=V((I9,$5)=>{var{spawnSync:a2}=A("child_process"),{createHash:e3}=A("crypto"),p0=L0(),p3=L1(),n3=u0(),a0=A("detect-libc"),{config:s3,engines:r0,optionalDependencies:t3}=j1(),i3=process.env.npm_package_config_libvips||s3.libvips,n0=p0(i3).version,o3=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-ia32","win32-x64"],r2={encoding:"utf8",shell:!0},$8=($)=>{if($ instanceof Error)console.error(`sharp: Installation error: ${$.message}`);else console.log(`sharp: ${$}`)},s0=()=>a0.isNonGlibcLinuxSync()?a0.familySync():"",J8=()=>`${process.platform}${s0()}-${process.arch}`,y2=()=>{if(t0())return"wasm32";let{npm_config_arch:$,npm_config_platform:J,npm_config_libc:F}=process.env,W=typeof F==="string"?F:s0();return`${J||process.platform}${W}-${$||process.arch}`},F8=()=>{try{return A(`@img/sharp-libvips-dev-${y2()}/include`)}catch{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/include");})()}catch{}}return""},W8=()=>{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/cplusplus");})()}catch{}return""},Z8=()=>{try{return A(`@img/sharp-libvips-dev-${y2()}/lib`)}catch{try{return A(`@img/sharp-libvips-${y2()}/lib`)}catch{}}return""},U8=()=>{if(process.release?.name==="node"&&process.versions){if(!n3(process.versions.node,r0.node))return{found:process.versions.node,expected:r0.node}}},t0=()=>{let{CC:$}=process.env;return Boolean($&&$.endsWith("/emcc"))},B8=()=>{if(process.platform==="darwin"&&process.arch==="x64")return(a2("sysctl sysctl.proc_translated",r2).stdout||"").trim()==="sysctl.proc_translated: 1";return!1},e0=($)=>e3("sha512").update($).digest("hex"),Y8=()=>{try{let $=e0(`imgsharp-libvips-${y2()}`),J=p0(t3[`@img/sharp-libvips-${y2()}`]).version;return e0(`${$}npm:${J}`).slice(0,10)}catch{}return""},Q8=()=>a2(`node-gyp rebuild --directory=src ${t0()?"--nodedir=emscripten":""}`,{...r2,stdio:"inherit"}).status,i0=()=>{if(process.platform!=="win32")return(a2("pkg-config --modversion vips-cpp",{...r2,env:{...process.env,PKG_CONFIG_PATH:o0()}}).stdout||"").trim();else return""},o0=()=>{if(process.platform!=="win32")return[(a2('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',r2).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""},T1=($,J,F)=>{if(F)F(`Detected ${J}, skipping search for globally-installed libvips`);return $},K8=($)=>{if(Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)===!0)return T1(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",$);if(Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS)===!0)return T1(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",$);if(B8())return T1(!1,"Rosetta",$);let J=i0();return!!J&&p3(J,n0)};$5.exports={minimumLibvipsVersion:n0,prebuiltPlatforms:o3,buildPlatformArch:y2,buildSharpLibvipsIncludeDir:F8,buildSharpLibvipsCPlusPlusDir:W8,buildSharpLibvipsLibDir:Z8,isUnsupportedNodeRuntime:U8,runtimePlatformArch:J8,log:$8,yarnLocator:Y8,spawnRebuild:Q8,globalLibvipsVersion:i0,pkgConfigPath:o0,useGlobalLibvips:K8}});var P2=V((H9,F5)=>{var{familySync:w8,versionSync:G8}=A("detect-libc"),{runtimePlatformArch:I8,isUnsupportedNodeRuntime:J5,prebuiltPlatforms:L8,minimumLibvipsVersion:H8}=V1(),Y2=I8(),y8=[`../src/build/Release/sharp-${Y2}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${Y2}/sharp.node`,"@img/sharp-wasm32/sharp.node"],z1,e2=[];for(let $ of y8)try{z1=A($);break}catch(J){e2.push(J)}if(z1)F5.exports=z1;else{let[$,J,F]=["linux","darwin","win32"].map((U)=>Y2.startsWith(U)),W=[`Could not load the "sharp" module using the ${Y2} runtime`];e2.forEach((U)=>{if(U.code!=="MODULE_NOT_FOUND")W.push(`${U.code}: ${U.message}`)});let Z=e2.map((U)=>U.message).join(" ");if(W.push("Possible solutions:"),J5()){let{found:U,expected:Y}=J5();W.push("- Please upgrade Node.js:",` Found ${U}`,` Requires ${Y}`)}else if(L8.includes(Y2)){let[U,Y]=Y2.split("-"),Q=U.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=${U.replace("musl","")}${Q} --cpu=${Y} sharp`)}else W.push(`- Manually install libvips >= ${H8}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if($&&/(symbol not found|CXXABI_)/i.test(Z))try{let{config:U}=A(`@img/sharp-libvips-${Y2}/package`),Y=`${w8()} ${G8()}`,Q=`${U.musl?"musl":"glibc"} ${U.musl||U.glibc}`;W.push("- Update your OS:",` Found ${Y}`,` Requires ${Q}`)}catch(U){}if($&&/\/snap\/core[0-9]{2}/.test(Z))W.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node");if(J&&/Incompatible library version/.test(Z))W.push("- Update Homebrew:"," brew update && brew upgrade vips");if(e2.some((U)=>U.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(Z))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 Z5=V((X9,W5)=>{var X8=A("util"),D1=A("stream"),N8=e();P2();var j8=X8.debuglog("sharp"),Q2=function($,J){if(arguments.length===1&&!N8.defined($))throw new Error("Invalid input");if(!(this instanceof Q2))return new Q2($,J);return D1.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),j8(F)},queueListener:function(F){Q2.queue.emit("change",F)}},this.options.input=this._createInputDescriptor($,J,{allowStream:!0}),this};Object.setPrototypeOf(Q2.prototype,D1.Duplex.prototype);Object.setPrototypeOf(Q2,D1.Duplex);function T8(){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(Q2.prototype,{clone:T8});W5.exports=Q2});var _1=V((N9,U5)=>{U5.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 Y5=V((j9,B5)=>{B5.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 w5=V((T9,K5)=>{var V8=Y5(),z8=Array.prototype.concat,D8=Array.prototype.slice,Q5=K5.exports=function $(J){var F=[];for(var W=0,Z=J.length;W<Z;W++){var U=J[W];if(V8(U))F=z8.call(F,D8.call(U));else F.push(U)}return F};Q5.wrap=function($){return function(){return $(Q5(arguments))}}});var H5=V((V9,L5)=>{var S2=_1(),C2=w5(),G5=Object.hasOwnProperty,I5=Object.create(null);for(p2 in S2)if(G5.call(S2,p2))I5[S2[p2]]=p2;var p2,m=L5.exports={to:{},get:{}};m.get=function($){var J=$.substring(0,3).toLowerCase(),F,W;switch(J){case"hsl":F=m.get.hsl($),W="hsl";break;case"hwb":F=m.get.hwb($),W="hwb";break;default:F=m.get.rgb($),W="rgb";break}if(!F)return null;return{model:W,value:F}};m.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*)?\)$/,Z=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,U=/^(\w+)$/,Y=[0,0,0,1],Q,K,I;if(Q=$.match(F)){I=Q[2],Q=Q[1];for(K=0;K<3;K++){var L=K*2;Y[K]=parseInt(Q.slice(L,L+2),16)}if(I)Y[3]=parseInt(I,16)/255}else if(Q=$.match(J)){Q=Q[1],I=Q[3];for(K=0;K<3;K++)Y[K]=parseInt(Q[K]+Q[K],16);if(I)Y[3]=parseInt(I+I,16)/255}else if(Q=$.match(W)){for(K=0;K<3;K++)Y[K]=parseInt(Q[K+1],0);if(Q[4])if(Q[5])Y[3]=parseFloat(Q[4])*0.01;else Y[3]=parseFloat(Q[4])}else if(Q=$.match(Z)){for(K=0;K<3;K++)Y[K]=Math.round(parseFloat(Q[K+1])*2.55);if(Q[4])if(Q[5])Y[3]=parseFloat(Q[4])*0.01;else Y[3]=parseFloat(Q[4])}else if(Q=$.match(U)){if(Q[1]==="transparent")return[0,0,0,0];if(!G5.call(S2,Q[1]))return null;return Y=S2[Q[1]],Y[3]=1,Y}else return null;for(K=0;K<3;K++)Y[K]=F2(Y[K],0,255);return Y[3]=F2(Y[3],0,1),Y};m.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]),Z=(parseFloat(F[1])%360+360)%360,U=F2(parseFloat(F[2]),0,100),Y=F2(parseFloat(F[3]),0,100),Q=F2(isNaN(W)?1:W,0,1);return[Z,U,Y,Q]}return null};m.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]),Z=(parseFloat(F[1])%360+360)%360,U=F2(parseFloat(F[2]),0,100),Y=F2(parseFloat(F[3]),0,100),Q=F2(isNaN(W)?1:W,0,1);return[Z,U,Y,Q]}return null};m.to.hex=function(){var $=C2(arguments);return"#"+n2($[0])+n2($[1])+n2($[2])+($[3]<1?n2(Math.round($[3]*255)):"")};m.to.rgb=function(){var $=C2(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]+")"};m.to.rgb.percent=function(){var $=C2(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]+")"};m.to.hsl=function(){var $=C2(arguments);return $.length<4||$[3]===1?"hsl("+$[0]+", "+$[1]+"%, "+$[2]+"%)":"hsla("+$[0]+", "+$[1]+"%, "+$[2]+"%, "+$[3]+")"};m.to.hwb=function(){var $=C2(arguments),J="";if($.length>=4&&$[3]!==1)J=", "+$[3];return"hwb("+$[0]+", "+$[1]+"%, "+$[2]+"%"+J+")"};m.to.keyword=function($){return I5[$.slice(0,3)]};function F2($,J,F){return Math.min(Math.max(J,$),F)}function n2($){var J=Math.round($).toString(16).toUpperCase();return J.length<2?"0"+J:J}});var E1=V((z9,X5)=>{var M2=_1(),y5={};for(let $ of Object.keys(M2))y5[M2[$]]=$;var X={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"]}};X5.exports=X;for(let $ of Object.keys(X)){if(!("channels"in X[$]))throw new Error("missing channels property: "+$);if(!("labels"in X[$]))throw new Error("missing channel labels property: "+$);if(X[$].labels.length!==X[$].channels)throw new Error("channel and label counts mismatch: "+$);let{channels:J,labels:F}=X[$];delete X[$].channels,delete X[$].labels,Object.defineProperty(X[$],"channels",{value:J}),Object.defineProperty(X[$],"labels",{value:F})}X.rgb.hsl=function($){let J=$[0]/255,F=$[1]/255,W=$[2]/255,Z=Math.min(J,F,W),U=Math.max(J,F,W),Y=U-Z,Q,K;if(U===Z)Q=0;else if(J===U)Q=(F-W)/Y;else if(F===U)Q=2+(W-J)/Y;else if(W===U)Q=4+(J-F)/Y;if(Q=Math.min(Q*60,360),Q<0)Q+=360;let I=(Z+U)/2;if(U===Z)K=0;else if(I<=0.5)K=Y/(U+Z);else K=Y/(2-U-Z);return[Q,K*100,I*100]};X.rgb.hsv=function($){let J,F,W,Z,U,Y=$[0]/255,Q=$[1]/255,K=$[2]/255,I=Math.max(Y,Q,K),L=I-Math.min(Y,Q,K),N=function(z){return(I-z)/6/L+0.5};if(L===0)Z=0,U=0;else{if(U=L/I,J=N(Y),F=N(Q),W=N(K),Y===I)Z=W-F;else if(Q===I)Z=0.3333333333333333+J-W;else if(K===I)Z=0.6666666666666666+F-J;if(Z<0)Z+=1;else if(Z>1)Z-=1}return[Z*360,U*100,I*100]};X.rgb.hwb=function($){let J=$[0],F=$[1],W=$[2],Z=X.rgb.hsl($)[0],U=0.00392156862745098*Math.min(J,Math.min(F,W));return W=1-0.00392156862745098*Math.max(J,Math.max(F,W)),[Z,U*100,W*100]};X.rgb.cmyk=function($){let J=$[0]/255,F=$[1]/255,W=$[2]/255,Z=Math.min(1-J,1-F,1-W),U=(1-J-Z)/(1-Z)||0,Y=(1-F-Z)/(1-Z)||0,Q=(1-W-Z)/(1-Z)||0;return[U*100,Y*100,Q*100,Z*100]};function _8($,J){return($[0]-J[0])**2+($[1]-J[1])**2+($[2]-J[2])**2}X.rgb.keyword=function($){let J=y5[$];if(J)return J;let F=1/0,W;for(let Z of Object.keys(M2)){let U=M2[Z],Y=_8($,U);if(Y<F)F=Y,W=Z}return W};X.keyword.rgb=function($){return M2[$]};X.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 Z=J*0.4124+F*0.3576+W*0.1805,U=J*0.2126+F*0.7152+W*0.0722,Y=J*0.0193+F*0.1192+W*0.9505;return[Z*100,U*100,Y*100]};X.rgb.lab=function($){let J=X.rgb.xyz($),F=J[0],W=J[1],Z=J[2];F/=95.047,W/=100,Z/=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,Z=Z>0.008856?Z**0.3333333333333333:7.787*Z+0.13793103448275862;let U=116*W-16,Y=500*(F-W),Q=200*(W-Z);return[U,Y,Q]};X.hsl.rgb=function($){let J=$[0]/360,F=$[1]/100,W=$[2]/100,Z,U,Y;if(F===0)return Y=W*255,[Y,Y,Y];if(W<0.5)Z=W*(1+F);else Z=W+F-W*F;let Q=2*W-Z,K=[0,0,0];for(let I=0;I<3;I++){if(U=J+0.3333333333333333*-(I-1),U<0)U++;if(U>1)U--;if(6*U<1)Y=Q+(Z-Q)*6*U;else if(2*U<1)Y=Z;else if(3*U<2)Y=Q+(Z-Q)*(0.6666666666666666-U)*6;else Y=Q;K[I]=Y*255}return K};X.hsl.hsv=function($){let J=$[0],F=$[1]/100,W=$[2]/100,Z=F,U=Math.max(W,0.01);W*=2,F*=W<=1?W:2-W,Z*=U<=1?U:2-U;let Y=(W+F)/2,Q=W===0?2*Z/(U+Z):2*F/(W+F);return[J,Q*100,Y*100]};X.hsv.rgb=function($){let J=$[0]/60,F=$[1]/100,W=$[2]/100,Z=Math.floor(J)%6,U=J-Math.floor(J),Y=255*W*(1-F),Q=255*W*(1-F*U),K=255*W*(1-F*(1-U));switch(W*=255,Z){case 0:return[W,K,Y];case 1:return[Q,W,Y];case 2:return[Y,W,K];case 3:return[Y,Q,W];case 4:return[K,Y,W];case 5:return[W,Y,Q]}};X.hsv.hsl=function($){let J=$[0],F=$[1]/100,W=$[2]/100,Z=Math.max(W,0.01),U,Y;Y=(2-F)*W;let Q=(2-F)*Z;return U=F*Z,U/=Q<=1?Q:2-Q,U=U||0,Y/=2,[J,U*100,Y*100]};X.hwb.rgb=function($){let J=$[0]/360,F=$[1]/100,W=$[2]/100,Z=F+W,U;if(Z>1)F/=Z,W/=Z;let Y=Math.floor(6*J),Q=1-W;if(U=6*J-Y,(Y&1)!==0)U=1-U;let K=F+U*(Q-F),I,L,N;switch(Y){default:case 6:case 0:I=Q,L=K,N=F;break;case 1:I=K,L=Q,N=F;break;case 2:I=F,L=Q,N=K;break;case 3:I=F,L=K,N=Q;break;case 4:I=K,L=F,N=Q;break;case 5:I=Q,L=F,N=K;break}return[I*255,L*255,N*255]};X.cmyk.rgb=function($){let J=$[0]/100,F=$[1]/100,W=$[2]/100,Z=$[3]/100,U=1-Math.min(1,J*(1-Z)+Z),Y=1-Math.min(1,F*(1-Z)+Z),Q=1-Math.min(1,W*(1-Z)+Z);return[U*255,Y*255,Q*255]};X.xyz.rgb=function($){let J=$[0]/100,F=$[1]/100,W=$[2]/100,Z,U,Y;return Z=J*3.2406+F*-1.5372+W*-0.4986,U=J*-0.9689+F*1.8758+W*0.0415,Y=J*0.0557+F*-0.204+W*1.057,Z=Z>0.0031308?1.055*Z**0.4166666666666667-0.055:Z*12.92,U=U>0.0031308?1.055*U**0.4166666666666667-0.055:U*12.92,Y=Y>0.0031308?1.055*Y**0.4166666666666667-0.055:Y*12.92,Z=Math.min(Math.max(0,Z),1),U=Math.min(Math.max(0,U),1),Y=Math.min(Math.max(0,Y),1),[Z*255,U*255,Y*255]};X.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 Z=116*F-16,U=500*(J-F),Y=200*(F-W);return[Z,U,Y]};X.lab.xyz=function($){let J=$[0],F=$[1],W=$[2],Z,U,Y;U=(J+16)/116,Z=F/500+U,Y=U-W/200;let Q=U**3,K=Z**3,I=Y**3;return U=Q>0.008856?Q:(U-0.13793103448275862)/7.787,Z=K>0.008856?K:(Z-0.13793103448275862)/7.787,Y=I>0.008856?I:(Y-0.13793103448275862)/7.787,Z*=95.047,U*=100,Y*=108.883,[Z,U,Y]};X.lab.lch=function($){let J=$[0],F=$[1],W=$[2],Z;if(Z=Math.atan2(W,F)*360/2/Math.PI,Z<0)Z+=360;let Y=Math.sqrt(F*F+W*W);return[J,Y,Z]};X.lch.lab=function($){let J=$[0],F=$[1],Z=$[2]/360*2*Math.PI,U=F*Math.cos(Z),Y=F*Math.sin(Z);return[J,U,Y]};X.rgb.ansi16=function($,J=null){let[F,W,Z]=$,U=J===null?X.rgb.hsv($)[2]:J;if(U=Math.round(U/50),U===0)return 30;let Y=30+(Math.round(Z/255)<<2|Math.round(W/255)<<1|Math.round(F/255));if(U===2)Y+=60;return Y};X.hsv.ansi16=function($){return X.rgb.ansi16(X.hsv.rgb($),$[2])};X.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)};X.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,Z=(J>>1&1)*F*255,U=(J>>2&1)*F*255;return[W,Z,U]};X.ansi256.rgb=function($){if($>=232){let U=($-232)*10+8;return[U,U,U]}$-=16;let J,F=Math.floor($/36)/5*255,W=Math.floor((J=$%36)/6)/5*255,Z=J%6/5*255;return[F,W,Z]};X.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};X.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((Q)=>{return Q+Q}).join("");let W=parseInt(F,16),Z=W>>16&255,U=W>>8&255,Y=W&255;return[Z,U,Y]};X.rgb.hcg=function($){let J=$[0]/255,F=$[1]/255,W=$[2]/255,Z=Math.max(Math.max(J,F),W),U=Math.min(Math.min(J,F),W),Y=Z-U,Q,K;if(Y<1)Q=U/(1-Y);else Q=0;if(Y<=0)K=0;else if(Z===J)K=(F-W)/Y%6;else if(Z===F)K=2+(W-J)/Y;else K=4+(J-F)/Y;return K/=6,K%=1,[K*360,Y*100,Q*100]};X.hsl.hcg=function($){let J=$[1]/100,F=$[2]/100,W=F<0.5?2*J*F:2*J*(1-F),Z=0;if(W<1)Z=(F-0.5*W)/(1-W);return[$[0],W*100,Z*100]};X.hsv.hcg=function($){let J=$[1]/100,F=$[2]/100,W=J*F,Z=0;if(W<1)Z=(F-W)/(1-W);return[$[0],W*100,Z*100]};X.hcg.rgb=function($){let J=$[0]/360,F=$[1]/100,W=$[2]/100;if(F===0)return[W*255,W*255,W*255];let Z=[0,0,0],U=J%1*6,Y=U%1,Q=1-Y,K=0;switch(Math.floor(U)){case 0:Z[0]=1,Z[1]=Y,Z[2]=0;break;case 1:Z[0]=Q,Z[1]=1,Z[2]=0;break;case 2:Z[0]=0,Z[1]=1,Z[2]=Y;break;case 3:Z[0]=0,Z[1]=Q,Z[2]=1;break;case 4:Z[0]=Y,Z[1]=0,Z[2]=1;break;default:Z[0]=1,Z[1]=0,Z[2]=Q}return K=(1-F)*W,[(F*Z[0]+K)*255,(F*Z[1]+K)*255,(F*Z[2]+K)*255]};X.hcg.hsv=function($){let J=$[1]/100,F=$[2]/100,W=J+F*(1-J),Z=0;if(W>0)Z=J/W;return[$[0],Z*100,W*100]};X.hcg.hsl=function($){let J=$[1]/100,W=$[2]/100*(1-J)+0.5*J,Z=0;if(W>0&&W<0.5)Z=J/(2*W);else if(W>=0.5&&W<1)Z=J/(2*(1-W));return[$[0],Z*100,W*100]};X.hcg.hwb=function($){let J=$[1]/100,F=$[2]/100,W=J+F*(1-J);return[$[0],(W-J)*100,(1-W)*100]};X.hwb.hcg=function($){let J=$[1]/100,W=1-$[2]/100,Z=W-J,U=0;if(Z<1)U=(W-Z)/(1-Z);return[$[0],Z*100,U*100]};X.apple.rgb=function($){return[$[0]/65535*255,$[1]/65535*255,$[2]/65535*255]};X.rgb.apple=function($){return[$[0]/255*65535,$[1]/255*65535,$[2]/255*65535]};X.gray.rgb=function($){return[$[0]/100*255,$[0]/100*255,$[0]/100*255]};X.gray.hsl=function($){return[0,0,$[0]]};X.gray.hsv=X.gray.hsl;X.gray.hwb=function($){return[0,100,$[0]]};X.gray.cmyk=function($){return[0,0,0,$[0]]};X.gray.lab=function($){return[$[0],0,0]};X.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};X.rgb.gray=function($){return[($[0]+$[1]+$[2])/3/255*100]}});var j5=V((D9,N5)=>{var s2=E1();function E8(){let $={},J=Object.keys(s2);for(let F=J.length,W=0;W<F;W++)$[J[W]]={distance:-1,parent:null};return $}function A8($){let J=E8(),F=[$];J[$].distance=0;while(F.length){let W=F.pop(),Z=Object.keys(s2[W]);for(let U=Z.length,Y=0;Y<U;Y++){let Q=Z[Y],K=J[Q];if(K.distance===-1)K.distance=J[W].distance+1,K.parent=W,F.unshift(Q)}}return J}function R8($,J){return function(F){return J($(F))}}function q8($,J){let F=[J[$].parent,$],W=s2[J[$].parent][$],Z=J[$].parent;while(J[Z].parent)F.unshift(J[Z].parent),W=R8(s2[J[Z].parent][Z],W),Z=J[Z].parent;return W.conversion=F,W}N5.exports=function($){let J=A8($),F={},W=Object.keys(J);for(let Z=W.length,U=0;U<Z;U++){let Y=W[U];if(J[Y].parent===null)continue;F[Y]=q8(Y,J)}return F}});var V5=V((_9,T5)=>{var A1=E1(),P8=j5(),X2={},S8=Object.keys(A1);function C8($){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 M8($){let J=function(...F){let W=F[0];if(W===void 0||W===null)return W;if(W.length>1)F=W;let Z=$(F);if(typeof Z==="object")for(let U=Z.length,Y=0;Y<U;Y++)Z[Y]=Math.round(Z[Y]);return Z};if("conversion"in $)J.conversion=$.conversion;return J}S8.forEach(($)=>{X2[$]={},Object.defineProperty(X2[$],"channels",{value:A1[$].channels}),Object.defineProperty(X2[$],"labels",{value:A1[$].labels});let J=P8($);Object.keys(J).forEach((W)=>{let Z=J[W];X2[$][W]=M8(Z),X2[$][W].raw=C8(Z)})});T5.exports=X2});var i2=V((E9,D5)=>{var N2=H5(),l=V5(),z5=["keyword","gray","hex"],R1={};for(let $ of Object.keys(l))R1[[...l[$].labels].sort().join("")]=$;var t2={};function M($,J){if(!(this instanceof M))return new M($,J);if(J&&J in z5)J=null;if(J&&!(J in l))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 M)this.model=$.model,this.color=[...$.color],this.valpha=$.valpha;else if(typeof $==="string"){let Z=N2.get($);if(Z===null)throw new Error("Unable to parse color from string: "+$);this.model=Z.model,W=l[this.model].channels,this.color=Z.value.slice(0,W),this.valpha=typeof Z.value[W]==="number"?Z.value[W]:1}else if($.length>0){this.model=J||"rgb",W=l[this.model].channels;let Z=Array.prototype.slice.call($,0,W);this.color=q1(Z,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 Z=Object.keys($);if("alpha"in $)Z.splice(Z.indexOf("alpha"),1),this.valpha=typeof $.alpha==="number"?$.alpha:0;let U=Z.sort().join("");if(!(U in R1))throw new Error("Unable to parse color from object: "+JSON.stringify($));this.model=R1[U];let{labels:Y}=l[this.model],Q=[];for(F=0;F<Y.length;F++)Q.push($[Y[F]]);this.color=q1(Q)}if(t2[this.model]){W=l[this.model].channels;for(F=0;F<W;F++){let Z=t2[this.model][F];if(Z)this.color[F]=Z(this.color[F])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}M.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string($){let J=this.model in N2.to?this:this.rgb();J=J.round(typeof $==="number"?$:1);let F=J.valpha===1?J.color:[...J.color,this.valpha];return N2.to[J.model](F)},percentString($){let J=this.rgb().round(typeof $==="number"?$:1),F=J.valpha===1?J.color:[...J.color,this.valpha];return N2.to.rgb.percent(F)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let $={},{channels:J}=l[this.model],{labels:F}=l[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 M([...this.color.map(x8($)),this.valpha],this.model)},alpha($){if($!==void 0)return new M([...this.color,Math.max(0,Math.min(1,$))],this.model);return this.valpha},red:R("rgb",0,P(255)),green:R("rgb",1,P(255)),blue:R("rgb",2,P(255)),hue:R(["hsl","hsv","hsl","hwb","hcg"],0,($)=>($%360+360)%360),saturationl:R("hsl",1,P(100)),lightness:R("hsl",2,P(100)),saturationv:R("hsv",1,P(100)),value:R("hsv",2,P(100)),chroma:R("hcg",1,P(100)),gray:R("hcg",2,P(100)),white:R("hwb",1,P(100)),wblack:R("hwb",2,P(100)),cyan:R("cmyk",0,P(100)),magenta:R("cmyk",1,P(100)),yellow:R("cmyk",2,P(100)),black:R("cmyk",3,P(100)),x:R("xyz",0,P(95.047)),y:R("xyz",1,P(100)),z:R("xyz",2,P(108.833)),l:R("lab",0,P(100)),a:R("lab",1),b:R("lab",2),keyword($){if($!==void 0)return new M($);return l[this.model].keyword(this.color)},hex($){if($!==void 0)return new M($);return N2.to.hex(this.rgb().round().color)},hexa($){if($!==void 0)return new M($);let J=this.rgb().round().color,F=Math.round(this.valpha*255).toString(16).toUpperCase();if(F.length===1)F="0"+F;return N2.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 Z=W/255;J[F]=Z<=0.04045?Z/12.92:((Z+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 M.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(),Z=J===void 0?0.5:J,U=2*Z-1,Y=F.alpha()-W.alpha(),Q=((U*Y===-1?U:(U+Y)/(1+U*Y))+1)/2,K=1-Q;return M.rgb(Q*F.red()+K*W.red(),Q*F.green()+K*W.green(),Q*F.blue()+K*W.blue(),F.alpha()*Z+W.alpha()*(1-Z))}};for(let $ of Object.keys(l)){if(z5.includes($))continue;let{channels:J}=l[$];M.prototype[$]=function(...F){if(this.model===$)return new M(this);if(F.length>0)return new M(F,$);return new M([...f8(l[this.model][$].raw(this.color)),this.valpha],$)},M[$]=function(...F){let W=F[0];if(typeof W==="number")W=q1(F,J);return new M(W,$)}}function k8($,J){return Number($.toFixed(J))}function x8($){return function(J){return k8(J,$)}}function R($,J,F){$=Array.isArray($)?$:[$];for(let W of $)(t2[W]||(t2[W]=[]))[J]=F;return $=$[0],function(W){let Z;if(W!==void 0){if(F)W=F(W);return Z=this[$](),Z.color[J]=W,Z}if(Z=this[$]().color[J],F)Z=F(Z);return Z}}function P($){return function(J){return Math.max(0,Math.min($,J))}}function f8($){return Array.isArray($)?$:[$]}function q1($,J){for(let F=0;F<J;F++)if(typeof $[F]!=="number")$[F]=0;return $}D5.exports=M});var A5=V((A9,E5)=>{var O8=i2(),G=e(),W2=P2(),b8={left:"low",center:"centre",centre:"centre",right:"high"};function _5($){let{raw:J,density:F,limitInputPixels:W,ignoreIcc:Z,unlimited:U,sequentialRead:Y,failOn:Q,failOnError:K,animated:I,page:L,pages:N,subifd:z}=$;return[J,F,W,Z,U,Y,Q,K,I,L,N,z].some(G.defined)?{raw:J,density:F,limitInputPixels:W,ignoreIcc:Z,unlimited:U,sequentialRead:Y,failOn:Q,failOnError:K,animated:I,page:L,pages:N,subifd:z}:void 0}function d8($,J,F){let W={failOn:"warning",limitInputPixels:Math.pow(16383,2),ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(G.string($))W.file=$;else if(G.buffer($)){if($.length===0)throw Error("Input Buffer is empty");W.buffer=$}else if(G.arrayBuffer($)){if($.byteLength===0)throw Error("Input bit Array is empty");W.buffer=Buffer.from($,0,$.byteLength)}else if(G.typedArray($)){if($.length===0)throw Error("Input Bit Array is empty");W.buffer=Buffer.from($.buffer,$.byteOffset,$.byteLength)}else if(G.plainObject($)&&!G.defined(J)){if(J=$,_5(J))W.buffer=[]}else if(!G.defined($)&&!G.defined(J)&&G.object(F)&&F.allowStream)W.buffer=[];else throw new Error(`Unsupported input '${$}' of type ${typeof $}${G.defined(J)?` when also providing options of type ${typeof J}`:""}`);if(G.object(J)){if(G.defined(J.failOnError))if(G.bool(J.failOnError))W.failOn=J.failOnError?"warning":"none";else throw G.invalidParameterError("failOnError","boolean",J.failOnError);if(G.defined(J.failOn))if(G.string(J.failOn)&&G.inArray(J.failOn,["none","truncated","error","warning"]))W.failOn=J.failOn;else throw G.invalidParameterError("failOn","one of: none, truncated, error, warning",J.failOn);if(G.defined(J.density))if(G.inRange(J.density,1,1e5))W.density=J.density;else throw G.invalidParameterError("density","number between 1 and 100000",J.density);if(G.defined(J.ignoreIcc))if(G.bool(J.ignoreIcc))W.ignoreIcc=J.ignoreIcc;else throw G.invalidParameterError("ignoreIcc","boolean",J.ignoreIcc);if(G.defined(J.limitInputPixels))if(G.bool(J.limitInputPixels))W.limitInputPixels=J.limitInputPixels?Math.pow(16383,2):0;else if(G.integer(J.limitInputPixels)&&G.inRange(J.limitInputPixels,0,Number.MAX_SAFE_INTEGER))W.limitInputPixels=J.limitInputPixels;else throw G.invalidParameterError("limitInputPixels","positive integer",J.limitInputPixels);if(G.defined(J.unlimited))if(G.bool(J.unlimited))W.unlimited=J.unlimited;else throw G.invalidParameterError("unlimited","boolean",J.unlimited);if(G.defined(J.sequentialRead))if(G.bool(J.sequentialRead))W.sequentialRead=J.sequentialRead;else throw G.invalidParameterError("sequentialRead","boolean",J.sequentialRead);if(G.defined(J.raw))if(G.object(J.raw)&&G.integer(J.raw.width)&&J.raw.width>0&&G.integer(J.raw.height)&&J.raw.height>0&&G.integer(J.raw.channels)&&G.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(G.defined(J.animated))if(G.bool(J.animated))W.pages=J.animated?-1:1;else throw G.invalidParameterError("animated","boolean",J.animated);if(G.defined(J.pages))if(G.integer(J.pages)&&G.inRange(J.pages,-1,1e5))W.pages=J.pages;else throw G.invalidParameterError("pages","integer between -1 and 100000",J.pages);if(G.defined(J.page))if(G.integer(J.page)&&G.inRange(J.page,0,1e5))W.page=J.page;else throw G.invalidParameterError("page","integer between 0 and 100000",J.page);if(G.defined(J.level))if(G.integer(J.level)&&G.inRange(J.level,0,256))W.level=J.level;else throw G.invalidParameterError("level","integer between 0 and 256",J.level);if(G.defined(J.subifd))if(G.integer(J.subifd)&&G.inRange(J.subifd,-1,1e5))W.subifd=J.subifd;else throw G.invalidParameterError("subifd","integer between -1 and 100000",J.subifd);if(G.defined(J.create))if(G.object(J.create)&&G.integer(J.create.width)&&J.create.width>0&&G.integer(J.create.height)&&J.create.height>0&&G.integer(J.create.channels)){if(W.createWidth=J.create.width,W.createHeight=J.create.height,W.createChannels=J.create.channels,G.defined(J.create.noise)){if(!G.object(J.create.noise))throw new Error("Expected noise to be an object");if(!G.inArray(J.create.noise.type,["gaussian"]))throw new Error("Only gaussian noise is supported at the moment");if(!G.inRange(J.create.channels,1,4))throw G.invalidParameterError("create.channels","number between 1 and 4",J.create.channels);if(W.createNoiseType=J.create.noise.type,G.number(J.create.noise.mean)&&G.inRange(J.create.noise.mean,0,1e4))W.createNoiseMean=J.create.noise.mean;else throw G.invalidParameterError("create.noise.mean","number between 0 and 10000",J.create.noise.mean);if(G.number(J.create.noise.sigma)&&G.inRange(J.create.noise.sigma,0,1e4))W.createNoiseSigma=J.create.noise.sigma;else throw G.invalidParameterError("create.noise.sigma","number between 0 and 10000",J.create.noise.sigma)}else if(G.defined(J.create.background)){if(!G.inRange(J.create.channels,3,4))throw G.invalidParameterError("create.channels","number between 3 and 4",J.create.channels);let Z=O8(J.create.background);W.createBackground=[Z.red(),Z.green(),Z.blue(),Math.round(Z.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(G.defined(J.text))if(G.object(J.text)&&G.string(J.text.text)){if(W.textValue=J.text.text,G.defined(J.text.height)&&G.defined(J.text.dpi))throw new Error("Expected only one of dpi or height");if(G.defined(J.text.font))if(G.string(J.text.font))W.textFont=J.text.font;else throw G.invalidParameterError("text.font","string",J.text.font);if(G.defined(J.text.fontfile))if(G.string(J.text.fontfile))W.textFontfile=J.text.fontfile;else throw G.invalidParameterError("text.fontfile","string",J.text.fontfile);if(G.defined(J.text.width))if(G.integer(J.text.width)&&J.text.width>0)W.textWidth=J.text.width;else throw G.invalidParameterError("text.width","positive integer",J.text.width);if(G.defined(J.text.height))if(G.integer(J.text.height)&&J.text.height>0)W.textHeight=J.text.height;else throw G.invalidParameterError("text.height","positive integer",J.text.height);if(G.defined(J.text.align))if(G.string(J.text.align)&&G.string(this.constructor.align[J.text.align]))W.textAlign=this.constructor.align[J.text.align];else throw G.invalidParameterError("text.align","valid alignment",J.text.align);if(G.defined(J.text.justify))if(G.bool(J.text.justify))W.textJustify=J.text.justify;else throw G.invalidParameterError("text.justify","boolean",J.text.justify);if(G.defined(J.text.dpi))if(G.integer(J.text.dpi)&&G.inRange(J.text.dpi,1,1e6))W.textDpi=J.text.dpi;else throw G.invalidParameterError("text.dpi","integer between 1 and 1000000",J.text.dpi);if(G.defined(J.text.rgba))if(G.bool(J.text.rgba))W.textRgba=J.text.rgba;else throw G.invalidParameterError("text.rgba","bool",J.text.rgba);if(G.defined(J.text.spacing))if(G.integer(J.text.spacing)&&G.inRange(J.text.spacing,-1e6,1e6))W.textSpacing=J.text.spacing;else throw G.invalidParameterError("text.spacing","integer between -1000000 and 1000000",J.text.spacing);if(G.defined(J.text.wrap))if(G.string(J.text.wrap)&&G.inArray(J.text.wrap,["word","char","word-char","none"]))W.textWrap=J.text.wrap;else throw G.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(G.defined(J))throw new Error("Invalid input options "+J);return W}function v8($,J,F){if(Array.isArray(this.options.input.buffer))if(G.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 g8(){if(this._isStreamInput())this.options.input.buffer=Buffer.concat(this.options.input.buffer)}function h8(){return Array.isArray(this.options.input.buffer)}function m8($){let J=Error();if(G.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),W2.metadata(this.options,(F,W)=>{if(F)$(G.nativeError(F,J));else $(null,W)})});else W2.metadata(this.options,(F,W)=>{if(F)$(G.nativeError(F,J));else $(null,W)});return this}else if(this._isStreamInput())return new Promise((F,W)=>{let Z=()=>{this._flattenBufferIn(),W2.metadata(this.options,(U,Y)=>{if(U)W(G.nativeError(U,J));else F(Y)})};if(this.writableFinished)Z();else this.once("finish",Z)});else return new Promise((F,W)=>{W2.metadata(this.options,(Z,U)=>{if(Z)W(G.nativeError(Z,J));else F(U)})})}function l8($){let J=Error();if(G.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),W2.stats(this.options,(F,W)=>{if(F)$(G.nativeError(F,J));else $(null,W)})});else W2.stats(this.options,(F,W)=>{if(F)$(G.nativeError(F,J));else $(null,W)});return this}else if(this._isStreamInput())return new Promise((F,W)=>{this.on("finish",function(){this._flattenBufferIn(),W2.stats(this.options,(Z,U)=>{if(Z)W(G.nativeError(Z,J));else F(U)})})});else return new Promise((F,W)=>{W2.stats(this.options,(Z,U)=>{if(Z)W(G.nativeError(Z,J));else F(U)})})}E5.exports=function($){Object.assign($.prototype,{_inputOptionsFromObject:_5,_createInputDescriptor:d8,_write:v8,_flattenBufferIn:g8,_isStreamInput:h8,metadata:m8,stats:l8}),$.align=b8}});var M5=V((R9,C5)=>{var j=e(),q5={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},P5={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},R5={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},S5={entropy:16,attention:17},P1={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3"},c8={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},u8={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function S1($){return $.angle%360!==0||$.useExifOrientation===!0||$.rotationAngle!==0}function o2($){return $.width!==-1||$.height!==-1}function a8($,J,F){if(o2(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(j.defined($))if(j.object($)&&!j.defined(F))F=$;else if(j.integer($)&&$>0)this.options.width=$;else throw j.invalidParameterError("width","positive integer",$);else this.options.width=-1;if(j.defined(J))if(j.integer(J)&&J>0)this.options.height=J;else throw j.invalidParameterError("height","positive integer",J);else this.options.height=-1;if(j.object(F)){if(j.defined(F.width))if(j.integer(F.width)&&F.width>0)this.options.width=F.width;else throw j.invalidParameterError("width","positive integer",F.width);if(j.defined(F.height))if(j.integer(F.height)&&F.height>0)this.options.height=F.height;else throw j.invalidParameterError("height","positive integer",F.height);if(j.defined(F.fit)){let W=u8[F.fit];if(j.string(W))this.options.canvas=W;else throw j.invalidParameterError("fit","valid fit",F.fit)}if(j.defined(F.position)){let W=j.integer(F.position)?F.position:S5[F.position]||P5[F.position]||q5[F.position];if(j.integer(W)&&(j.inRange(W,0,8)||j.inRange(W,16,17)))this.options.position=W;else throw j.invalidParameterError("position","valid position/gravity/strategy",F.position)}if(this._setBackgroundColourOption("resizeBackground",F.background),j.defined(F.kernel))if(j.string(P1[F.kernel]))this.options.kernel=P1[F.kernel];else throw j.invalidParameterError("kernel","valid kernel name",F.kernel);if(j.defined(F.withoutEnlargement))this._setBooleanOption("withoutEnlargement",F.withoutEnlargement);if(j.defined(F.withoutReduction))this._setBooleanOption("withoutReduction",F.withoutReduction);if(j.defined(F.fastShrinkOnLoad))this._setBooleanOption("fastShrinkOnLoad",F.fastShrinkOnLoad)}if(S1(this.options)&&o2(this.options))this.options.rotateBeforePreExtract=!0;return this}function r8($){if(j.integer($)&&$>0)this.options.extendTop=$,this.options.extendBottom=$,this.options.extendLeft=$,this.options.extendRight=$;else if(j.object($)){if(j.defined($.top))if(j.integer($.top)&&$.top>=0)this.options.extendTop=$.top;else throw j.invalidParameterError("top","positive integer",$.top);if(j.defined($.bottom))if(j.integer($.bottom)&&$.bottom>=0)this.options.extendBottom=$.bottom;else throw j.invalidParameterError("bottom","positive integer",$.bottom);if(j.defined($.left))if(j.integer($.left)&&$.left>=0)this.options.extendLeft=$.left;else throw j.invalidParameterError("left","positive integer",$.left);if(j.defined($.right))if(j.integer($.right)&&$.right>=0)this.options.extendRight=$.right;else throw j.invalidParameterError("right","positive integer",$.right);if(this._setBackgroundColourOption("extendBackground",$.background),j.defined($.extendWith))if(j.string(R5[$.extendWith]))this.options.extendWith=R5[$.extendWith];else throw j.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",$.extendWith)}else throw j.invalidParameterError("extend","integer or object",$);return this}function e8($){let J=o2(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(j.integer(W)&&W>=0)this.options[F+(F==="left"||F==="top"?"Offset":"")+J]=W;else throw j.invalidParameterError(F,"integer",W)},this),S1(this.options)&&!o2(this.options)){if(this.options.widthPre===-1||this.options.widthPost===-1)this.options.rotateBeforePreExtract=!0}return this}function p8($){if(this.options.trimThreshold=10,j.defined($))if(j.object($)){if(j.defined($.background))this._setBackgroundColourOption("trimBackground",$.background);if(j.defined($.threshold))if(j.number($.threshold)&&$.threshold>=0)this.options.trimThreshold=$.threshold;else throw j.invalidParameterError("threshold","positive number",$.threshold);if(j.defined($.lineArt))this._setBooleanOption("trimLineArt",$.lineArt)}else throw j.invalidParameterError("trim","object",$);if(S1(this.options))this.options.rotateBeforePreExtract=!0;return this}C5.exports=function($){Object.assign($.prototype,{resize:a8,extend:r8,extract:e8,trim:p8}),$.gravity=q5,$.strategy=S5,$.kernel=P1,$.fit=c8,$.position=P5}});var x5=V((q9,k5)=>{var D=e(),C1={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 n8($){if(!Array.isArray($))throw D.invalidParameterError("images to composite","array",$);return this.options.composite=$.map((J)=>{if(!D.object(J))throw D.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(D.defined(J.blend))if(D.string(C1[J.blend]))W.blend=C1[J.blend];else throw D.invalidParameterError("blend","valid blend name",J.blend);if(D.defined(J.tile))if(D.bool(J.tile))W.tile=J.tile;else throw D.invalidParameterError("tile","boolean",J.tile);if(D.defined(J.left))if(D.integer(J.left))W.left=J.left;else throw D.invalidParameterError("left","integer",J.left);if(D.defined(J.top))if(D.integer(J.top))W.top=J.top;else throw D.invalidParameterError("top","integer",J.top);if(D.defined(J.top)!==D.defined(J.left))throw new Error("Expected both left and top to be set");else W.hasOffset=D.integer(J.top)&&D.integer(J.left);if(D.defined(J.gravity))if(D.integer(J.gravity)&&D.inRange(J.gravity,0,8))W.gravity=J.gravity;else if(D.string(J.gravity)&&D.integer(this.constructor.gravity[J.gravity]))W.gravity=this.constructor.gravity[J.gravity];else throw D.invalidParameterError("gravity","valid gravity",J.gravity);if(D.defined(J.premultiplied))if(D.bool(J.premultiplied))W.premultiplied=J.premultiplied;else throw D.invalidParameterError("premultiplied","boolean",J.premultiplied);return W}),this}k5.exports=function($){$.prototype.composite=n8,$.blend=C1}});var b5=V((P9,O5)=>{var s8=i2(),w=e(),f5={integer:"integer",float:"float",approximate:"approximate"};function t8($,J){if(this.options.useExifOrientation||this.options.angle||this.options.rotationAngle)this.options.debuglog("ignoring previous rotate options");if(!w.defined($))this.options.useExifOrientation=!0;else if(w.integer($)&&!($%90))this.options.angle=$;else if(w.number($)){if(this.options.rotationAngle=$,w.object(J)&&J.background){let F=s8(J.background);this.options.rotationBackground=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}}else throw w.invalidParameterError("angle","numeric",$);return this}function i8($){return this.options.flip=w.bool($)?$:!0,this}function o8($){return this.options.flop=w.bool($)?$:!0,this}function $6($,J){let F=[].concat(...$);if(F.length===4&&F.every(w.number))this.options.affineMatrix=F;else throw w.invalidParameterError("matrix","1x4 or 2x2 array",$);if(w.defined(J))if(w.object(J)){if(this._setBackgroundColourOption("affineBackground",J.background),w.defined(J.idx))if(w.number(J.idx))this.options.affineIdx=J.idx;else throw w.invalidParameterError("options.idx","number",J.idx);if(w.defined(J.idy))if(w.number(J.idy))this.options.affineIdy=J.idy;else throw w.invalidParameterError("options.idy","number",J.idy);if(w.defined(J.odx))if(w.number(J.odx))this.options.affineOdx=J.odx;else throw w.invalidParameterError("options.odx","number",J.odx);if(w.defined(J.ody))if(w.number(J.ody))this.options.affineOdy=J.ody;else throw w.invalidParameterError("options.ody","number",J.ody);if(w.defined(J.interpolator))if(w.inArray(J.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=J.interpolator;else throw w.invalidParameterError("options.interpolator","valid interpolator name",J.interpolator)}else throw w.invalidParameterError("options","object",J);return this}function J6($,J,F){if(!w.defined($))this.options.sharpenSigma=-1;else if(w.bool($))this.options.sharpenSigma=$?-1:0;else if(w.number($)&&w.inRange($,0.01,1e4)){if(this.options.sharpenSigma=$,w.defined(J))if(w.number(J)&&w.inRange(J,0,1e4))this.options.sharpenM1=J;else throw w.invalidParameterError("flat","number between 0 and 10000",J);if(w.defined(F))if(w.number(F)&&w.inRange(F,0,1e4))this.options.sharpenM2=F;else throw w.invalidParameterError("jagged","number between 0 and 10000",F)}else if(w.plainObject($)){if(w.number($.sigma)&&w.inRange($.sigma,0.000001,10))this.options.sharpenSigma=$.sigma;else throw w.invalidParameterError("options.sigma","number between 0.000001 and 10",$.sigma);if(w.defined($.m1))if(w.number($.m1)&&w.inRange($.m1,0,1e6))this.options.sharpenM1=$.m1;else throw w.invalidParameterError("options.m1","number between 0 and 1000000",$.m1);if(w.defined($.m2))if(w.number($.m2)&&w.inRange($.m2,0,1e6))this.options.sharpenM2=$.m2;else throw w.invalidParameterError("options.m2","number between 0 and 1000000",$.m2);if(w.defined($.x1))if(w.number($.x1)&&w.inRange($.x1,0,1e6))this.options.sharpenX1=$.x1;else throw w.invalidParameterError("options.x1","number between 0 and 1000000",$.x1);if(w.defined($.y2))if(w.number($.y2)&&w.inRange($.y2,0,1e6))this.options.sharpenY2=$.y2;else throw w.invalidParameterError("options.y2","number between 0 and 1000000",$.y2);if(w.defined($.y3))if(w.number($.y3)&&w.inRange($.y3,0,1e6))this.options.sharpenY3=$.y3;else throw w.invalidParameterError("options.y3","number between 0 and 1000000",$.y3)}else throw w.invalidParameterError("sigma","number between 0.01 and 10000",$);return this}function F6($){if(!w.defined($))this.options.medianSize=3;else if(w.integer($)&&w.inRange($,1,1000))this.options.medianSize=$;else throw w.invalidParameterError("size","integer between 1 and 1000",$);return this}function W6($){let J;if(w.number($))J=$;else if(w.plainObject($)){if(!w.number($.sigma))throw w.invalidParameterError("options.sigma","number between 0.3 and 1000",J);if(J=$.sigma,"precision"in $)if(w.string(f5[$.precision]))this.options.precision=f5[$.precision];else throw w.invalidParameterError("precision","one of: integer, float, approximate",$.precision);if("minAmplitude"in $)if(w.number($.minAmplitude)&&w.inRange($.minAmplitude,0.001,1))this.options.minAmpl=$.minAmplitude;else throw w.invalidParameterError("minAmplitude","number between 0.001 and 1",$.minAmplitude)}if(!w.defined($))this.options.blurSigma=-1;else if(w.bool($))this.options.blurSigma=$?-1:0;else if(w.number(J)&&w.inRange(J,0.3,1000))this.options.blurSigma=J;else throw w.invalidParameterError("sigma","number between 0.3 and 1000",J);return this}function Z6($){if(this.options.flatten=w.bool($)?$:!0,w.object($))this._setBackgroundColourOption("flattenBackground",$.background);return this}function U6(){return this.options.unflatten=!0,this}function B6($,J){if(!w.defined($))this.options.gamma=2.2;else if(w.number($)&&w.inRange($,1,3))this.options.gamma=$;else throw w.invalidParameterError("gamma","number between 1.0 and 3.0",$);if(!w.defined(J))this.options.gammaOut=this.options.gamma;else if(w.number(J)&&w.inRange(J,1,3))this.options.gammaOut=J;else throw w.invalidParameterError("gammaOut","number between 1.0 and 3.0",J);return this}function Y6($){if(this.options.negate=w.bool($)?$:!0,w.plainObject($)&&"alpha"in $)if(!w.bool($.alpha))throw w.invalidParameterError("alpha","should be boolean value",$.alpha);else this.options.negateAlpha=$.alpha;return this}function Q6($){if(w.plainObject($)){if(w.defined($.lower))if(w.number($.lower)&&w.inRange($.lower,0,99))this.options.normaliseLower=$.lower;else throw w.invalidParameterError("lower","number between 0 and 99",$.lower);if(w.defined($.upper))if(w.number($.upper)&&w.inRange($.upper,1,100))this.options.normaliseUpper=$.upper;else throw w.invalidParameterError("upper","number between 1 and 100",$.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw w.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function K6($){return this.normalise($)}function w6($){if(w.plainObject($)){if(w.integer($.width)&&$.width>0)this.options.claheWidth=$.width;else throw w.invalidParameterError("width","integer greater than zero",$.width);if(w.integer($.height)&&$.height>0)this.options.claheHeight=$.height;else throw w.invalidParameterError("height","integer greater than zero",$.height);if(w.defined($.maxSlope))if(w.integer($.maxSlope)&&w.inRange($.maxSlope,0,100))this.options.claheMaxSlope=$.maxSlope;else throw w.invalidParameterError("maxSlope","integer between 0 and 100",$.maxSlope)}else throw w.invalidParameterError("options","plain object",$);return this}function G6($){if(!w.object($)||!Array.isArray($.kernel)||!w.integer($.width)||!w.integer($.height)||!w.inRange($.width,3,1001)||!w.inRange($.height,3,1001)||$.height*$.width!==$.kernel.length)throw new Error("Invalid convolution kernel");if(!w.integer($.scale))$.scale=$.kernel.reduce(function(J,F){return J+F},0);if($.scale<1)$.scale=1;if(!w.integer($.offset))$.offset=0;return this.options.convKernel=$,this}function I6($,J){if(!w.defined($))this.options.threshold=128;else if(w.bool($))this.options.threshold=$?128:0;else if(w.integer($)&&w.inRange($,0,255))this.options.threshold=$;else throw w.invalidParameterError("threshold","integer between 0 and 255",$);if(!w.object(J)||J.greyscale===!0||J.grayscale===!0)this.options.thresholdGrayscale=!0;else this.options.thresholdGrayscale=!1;return this}function L6($,J,F){if(this.options.boolean=this._createInputDescriptor($,F),w.string(J)&&w.inArray(J,["and","or","eor"]))this.options.booleanOp=J;else throw w.invalidParameterError("operator","one of: and, or, eor",J);return this}function H6($,J){if(!w.defined($)&&w.number(J))$=1;else if(w.number($)&&!w.defined(J))J=0;if(!w.defined($))this.options.linearA=[];else if(w.number($))this.options.linearA=[$];else if(Array.isArray($)&&$.length&&$.every(w.number))this.options.linearA=$;else throw w.invalidParameterError("a","number or array of numbers",$);if(!w.defined(J))this.options.linearB=[];else if(w.number(J))this.options.linearB=[J];else if(Array.isArray(J)&&J.length&&J.every(w.number))this.options.linearB=J;else throw w.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 y6($){if(!Array.isArray($))throw w.invalidParameterError("inputMatrix","array",$);if($.length!==3&&$.length!==4)throw w.invalidParameterError("inputMatrix","3x3 or 4x4 array",$.length);let J=$.flat().map(Number);if(J.length!==9&&J.length!==16)throw w.invalidParameterError("inputMatrix","cardinality of 9 or 16",J.length);return this.options.recombMatrix=J,this}function X6($){if(!w.plainObject($))throw w.invalidParameterError("options","plain object",$);if("brightness"in $)if(w.number($.brightness)&&$.brightness>=0)this.options.brightness=$.brightness;else throw w.invalidParameterError("brightness","number above zero",$.brightness);if("saturation"in $)if(w.number($.saturation)&&$.saturation>=0)this.options.saturation=$.saturation;else throw w.invalidParameterError("saturation","number above zero",$.saturation);if("hue"in $)if(w.integer($.hue))this.options.hue=$.hue%360;else throw w.invalidParameterError("hue","number",$.hue);if("lightness"in $)if(w.number($.lightness))this.options.lightness=$.lightness;else throw w.invalidParameterError("lightness","number",$.lightness);return this}O5.exports=function($){Object.assign($.prototype,{rotate:t8,flip:i8,flop:o8,affine:$6,sharpen:J6,median:F6,blur:W6,flatten:Z6,unflatten:U6,gamma:B6,negate:Y6,normalise:Q6,normalize:K6,clahe:w6,convolve:G6,threshold:I6,boolean:L6,linear:H6,recomb:y6,modulate:X6})}});var g5=V((S9,v5)=>{var N6=i2(),t=e(),d5={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function j6($){return this._setBackgroundColourOption("tint",$),this}function T6($){return this.options.greyscale=t.bool($)?$:!0,this}function V6($){return this.greyscale($)}function z6($){if(!t.string($))throw t.invalidParameterError("colourspace","string",$);return this.options.colourspacePipeline=$,this}function D6($){return this.pipelineColourspace($)}function _6($){if(!t.string($))throw t.invalidParameterError("colourspace","string",$);return this.options.colourspace=$,this}function E6($){return this.toColourspace($)}function A6($,J){if(t.defined(J))if(t.object(J)||t.string(J)){let F=N6(J);this.options[$]=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}else throw t.invalidParameterError("background","object or string",J)}v5.exports=function($){Object.assign($.prototype,{tint:j6,greyscale:T6,grayscale:V6,pipelineColourspace:z6,pipelineColorspace:D6,toColourspace:_6,toColorspace:E6,_setBackgroundColourOption:A6}),$.colourspace=d5,$.colorspace=d5}});var m5=V((C9,h5)=>{var n=e(),R6={and:"and",or:"or",eor:"eor"};function q6(){return this.options.removeAlpha=!0,this}function P6($){if(n.defined($))if(n.number($)&&n.inRange($,0,1))this.options.ensureAlpha=$;else throw n.invalidParameterError("alpha","number between 0 and 1",$);else this.options.ensureAlpha=1;return this}function S6($){let J={red:0,green:1,blue:2,alpha:3};if(Object.keys(J).includes($))$=J[$];if(n.integer($)&&n.inRange($,0,4))this.options.extractChannel=$;else throw n.invalidParameterError("channel","integer or one of: red, green, blue, alpha",$);return this}function C6($,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 M6($){if(n.string($)&&n.inArray($,["and","or","eor"]))this.options.bandBoolOp=$;else throw n.invalidParameterError("boolOp","one of: and, or, eor",$);return this}h5.exports=function($){Object.assign($.prototype,{removeAlpha:q6,ensureAlpha:P6,extractChannel:S6,joinChannel:C6,bandbool:M6}),$.bool=R6}});var e5=V((M9,r5)=>{var M1=A("path"),B=e(),j2=P2(),l5=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"]]),k6=/\.(jp[2x]|j2[kc])$/i,c5=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),u5=($)=>1<<31-Math.clz32(Math.ceil(Math.log2($)));function x6($,J){let F;if(!B.string($))F=new Error("Missing output file path");else if(B.string(this.options.input.file)&&M1.resolve(this.options.input.file)===M1.resolve($))F=new Error("Cannot use same file for input and output");else if(k6.test(M1.extname($))&&!this.constructor.format.jp2k.output.file)F=c5();if(F)if(B.fn(J))J(F);else return Promise.reject(F);else{this.options.fileOut=$;let W=Error();return this._pipeline(J,W)}return this}function f6($,J){if(B.object($))this._setBooleanOption("resolveWithObject",$.resolveWithObject);else if(this.options.resolveWithObject)this.options.resolveWithObject=!1;this.options.fileOut="";let F=Error();return this._pipeline(B.fn($)?$:J,F)}function O6(){return this.options.keepMetadata|=1,this}function b6($){if(B.object($))for(let[J,F]of Object.entries($))if(B.object(F))for(let[W,Z]of Object.entries(F))if(B.string(Z))this.options.withExif[`exif-${J.toLowerCase()}-${W}`]=Z;else throw B.invalidParameterError(`${J}.${W}`,"string",Z);else throw B.invalidParameterError(J,"object",F);else throw B.invalidParameterError("exif","object",$);return this.options.withExifMerge=!1,this.keepExif()}function d6($){return this.withExif($),this.options.withExifMerge=!0,this}function v6(){return this.options.keepMetadata|=8,this}function g6($,J){if(B.string($))this.options.withIccProfile=$;else throw B.invalidParameterError("icc","string",$);if(this.keepIccProfile(),B.object(J)){if(B.defined(J.attach))if(B.bool(J.attach)){if(!J.attach)this.options.keepMetadata&=-9}else throw B.invalidParameterError("attach","boolean",J.attach)}return this}function h6(){return this.options.keepMetadata=31,this}function m6($){if(this.keepMetadata(),this.withIccProfile("srgb"),B.object($)){if(B.defined($.orientation))if(B.integer($.orientation)&&B.inRange($.orientation,1,8))this.options.withMetadataOrientation=$.orientation;else throw B.invalidParameterError("orientation","integer between 1 and 8",$.orientation);if(B.defined($.density))if(B.number($.density)&&$.density>0)this.options.withMetadataDensity=$.density;else throw B.invalidParameterError("density","positive number",$.density);if(B.defined($.icc))this.withIccProfile($.icc);if(B.defined($.exif))this.withExifMerge($.exif)}return this}function l6($,J){let F=l5.get((B.object($)&&B.string($.id)?$.id:$).toLowerCase());if(!F)throw B.invalidParameterError("format",`one of: ${[...l5.keys()].join(", ")}`,$);return this[F](J)}function c6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.jpegQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.progressive))this._setBooleanOption("jpegProgressive",$.progressive);if(B.defined($.chromaSubsampling))if(B.string($.chromaSubsampling)&&B.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=$.chromaSubsampling;else throw B.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);let J=B.bool($.optimizeCoding)?$.optimizeCoding:$.optimiseCoding;if(B.defined(J))this._setBooleanOption("jpegOptimiseCoding",J);if(B.defined($.mozjpeg))if(B.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 B.invalidParameterError("mozjpeg","boolean",$.mozjpeg);let F=B.bool($.trellisQuantization)?$.trellisQuantization:$.trellisQuantisation;if(B.defined(F))this._setBooleanOption("jpegTrellisQuantisation",F);if(B.defined($.overshootDeringing))this._setBooleanOption("jpegOvershootDeringing",$.overshootDeringing);let W=B.bool($.optimizeScans)?$.optimizeScans:$.optimiseScans;if(B.defined(W)){if(this._setBooleanOption("jpegOptimiseScans",W),W)this.options.jpegProgressive=!0}let Z=B.number($.quantizationTable)?$.quantizationTable:$.quantisationTable;if(B.defined(Z))if(B.integer(Z)&&B.inRange(Z,0,8))this.options.jpegQuantisationTable=Z;else throw B.invalidParameterError("quantisationTable","integer between 0 and 8",Z)}return this._updateFormatOut("jpeg",$)}function u6($){if(B.object($)){if(B.defined($.progressive))this._setBooleanOption("pngProgressive",$.progressive);if(B.defined($.compressionLevel))if(B.integer($.compressionLevel)&&B.inRange($.compressionLevel,0,9))this.options.pngCompressionLevel=$.compressionLevel;else throw B.invalidParameterError("compressionLevel","integer between 0 and 9",$.compressionLevel);if(B.defined($.adaptiveFiltering))this._setBooleanOption("pngAdaptiveFiltering",$.adaptiveFiltering);let J=$.colours||$.colors;if(B.defined(J))if(B.integer(J)&&B.inRange(J,2,256))this.options.pngBitdepth=u5(J);else throw B.invalidParameterError("colours","integer between 2 and 256",J);if(B.defined($.palette))this._setBooleanOption("pngPalette",$.palette);else if([$.quality,$.effort,$.colours,$.colors,$.dither].some(B.defined))this._setBooleanOption("pngPalette",!0);if(this.options.pngPalette){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,0,100))this.options.pngQuality=$.quality;else throw B.invalidParameterError("quality","integer between 0 and 100",$.quality);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,1,10))this.options.pngEffort=$.effort;else throw B.invalidParameterError("effort","integer between 1 and 10",$.effort);if(B.defined($.dither))if(B.number($.dither)&&B.inRange($.dither,0,1))this.options.pngDither=$.dither;else throw B.invalidParameterError("dither","number between 0.0 and 1.0",$.dither)}}return this._updateFormatOut("png",$)}function a6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.webpQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.alphaQuality))if(B.integer($.alphaQuality)&&B.inRange($.alphaQuality,0,100))this.options.webpAlphaQuality=$.alphaQuality;else throw B.invalidParameterError("alphaQuality","integer between 0 and 100",$.alphaQuality);if(B.defined($.lossless))this._setBooleanOption("webpLossless",$.lossless);if(B.defined($.nearLossless))this._setBooleanOption("webpNearLossless",$.nearLossless);if(B.defined($.smartSubsample))this._setBooleanOption("webpSmartSubsample",$.smartSubsample);if(B.defined($.preset))if(B.string($.preset)&&B.inArray($.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=$.preset;else throw B.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",$.preset);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,0,6))this.options.webpEffort=$.effort;else throw B.invalidParameterError("effort","integer between 0 and 6",$.effort);if(B.defined($.minSize))this._setBooleanOption("webpMinSize",$.minSize);if(B.defined($.mixed))this._setBooleanOption("webpMixed",$.mixed)}return a5($,this.options),this._updateFormatOut("webp",$)}function r6($){if(B.object($)){if(B.defined($.reuse))this._setBooleanOption("gifReuse",$.reuse);if(B.defined($.progressive))this._setBooleanOption("gifProgressive",$.progressive);let J=$.colours||$.colors;if(B.defined(J))if(B.integer(J)&&B.inRange(J,2,256))this.options.gifBitdepth=u5(J);else throw B.invalidParameterError("colours","integer between 2 and 256",J);if(B.defined($.effort))if(B.number($.effort)&&B.inRange($.effort,1,10))this.options.gifEffort=$.effort;else throw B.invalidParameterError("effort","integer between 1 and 10",$.effort);if(B.defined($.dither))if(B.number($.dither)&&B.inRange($.dither,0,1))this.options.gifDither=$.dither;else throw B.invalidParameterError("dither","number between 0.0 and 1.0",$.dither);if(B.defined($.interFrameMaxError))if(B.number($.interFrameMaxError)&&B.inRange($.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=$.interFrameMaxError;else throw B.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",$.interFrameMaxError);if(B.defined($.interPaletteMaxError))if(B.number($.interPaletteMaxError)&&B.inRange($.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=$.interPaletteMaxError;else throw B.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",$.interPaletteMaxError)}return a5($,this.options),this._updateFormatOut("gif",$)}function e6($){if(!this.constructor.format.jp2k.output.buffer)throw c5();if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.jp2Quality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.lossless))if(B.bool($.lossless))this.options.jp2Lossless=$.lossless;else throw B.invalidParameterError("lossless","boolean",$.lossless);if(B.defined($.tileWidth))if(B.integer($.tileWidth)&&B.inRange($.tileWidth,1,32768))this.options.jp2TileWidth=$.tileWidth;else throw B.invalidParameterError("tileWidth","integer between 1 and 32768",$.tileWidth);if(B.defined($.tileHeight))if(B.integer($.tileHeight)&&B.inRange($.tileHeight,1,32768))this.options.jp2TileHeight=$.tileHeight;else throw B.invalidParameterError("tileHeight","integer between 1 and 32768",$.tileHeight);if(B.defined($.chromaSubsampling))if(B.string($.chromaSubsampling)&&B.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=$.chromaSubsampling;else throw B.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling)}return this._updateFormatOut("jp2",$)}function a5($,J){if(B.object($)&&B.defined($.loop))if(B.integer($.loop)&&B.inRange($.loop,0,65535))J.loop=$.loop;else throw B.invalidParameterError("loop","integer between 0 and 65535",$.loop);if(B.object($)&&B.defined($.delay))if(B.integer($.delay)&&B.inRange($.delay,0,65535))J.delay=[$.delay];else if(Array.isArray($.delay)&&$.delay.every(B.integer)&&$.delay.every((F)=>B.inRange(F,0,65535)))J.delay=$.delay;else throw B.invalidParameterError("delay","integer or an array of integers between 0 and 65535",$.delay)}function p6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.tiffQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.bitdepth))if(B.integer($.bitdepth)&&B.inArray($.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=$.bitdepth;else throw B.invalidParameterError("bitdepth","1, 2, 4 or 8",$.bitdepth);if(B.defined($.tile))this._setBooleanOption("tiffTile",$.tile);if(B.defined($.tileWidth))if(B.integer($.tileWidth)&&$.tileWidth>0)this.options.tiffTileWidth=$.tileWidth;else throw B.invalidParameterError("tileWidth","integer greater than zero",$.tileWidth);if(B.defined($.tileHeight))if(B.integer($.tileHeight)&&$.tileHeight>0)this.options.tiffTileHeight=$.tileHeight;else throw B.invalidParameterError("tileHeight","integer greater than zero",$.tileHeight);if(B.defined($.miniswhite))this._setBooleanOption("tiffMiniswhite",$.miniswhite);if(B.defined($.pyramid))this._setBooleanOption("tiffPyramid",$.pyramid);if(B.defined($.xres))if(B.number($.xres)&&$.xres>0)this.options.tiffXres=$.xres;else throw B.invalidParameterError("xres","number greater than zero",$.xres);if(B.defined($.yres))if(B.number($.yres)&&$.yres>0)this.options.tiffYres=$.yres;else throw B.invalidParameterError("yres","number greater than zero",$.yres);if(B.defined($.compression))if(B.string($.compression)&&B.inArray($.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=$.compression;else throw B.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",$.compression);if(B.defined($.predictor))if(B.string($.predictor)&&B.inArray($.predictor,["none","horizontal","float"]))this.options.tiffPredictor=$.predictor;else throw B.invalidParameterError("predictor","one of: none, horizontal, float",$.predictor);if(B.defined($.resolutionUnit))if(B.string($.resolutionUnit)&&B.inArray($.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=$.resolutionUnit;else throw B.invalidParameterError("resolutionUnit","one of: inch, cm",$.resolutionUnit)}return this._updateFormatOut("tiff",$)}function n6($){return this.heif({...$,compression:"av1"})}function s6($){if(B.object($)){if(B.string($.compression)&&B.inArray($.compression,["av1","hevc"]))this.options.heifCompression=$.compression;else throw B.invalidParameterError("compression","one of: av1, hevc",$.compression);if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.heifQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.lossless))if(B.bool($.lossless))this.options.heifLossless=$.lossless;else throw B.invalidParameterError("lossless","boolean",$.lossless);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,0,9))this.options.heifEffort=$.effort;else throw B.invalidParameterError("effort","integer between 0 and 9",$.effort);if(B.defined($.chromaSubsampling))if(B.string($.chromaSubsampling)&&B.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=$.chromaSubsampling;else throw B.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);if(B.defined($.bitdepth))if(B.integer($.bitdepth)&&B.inArray($.bitdepth,[8,10,12])){if($.bitdepth!==8&&this.constructor.versions.heif)throw B.invalidParameterError("bitdepth when using prebuilt binaries",8,$.bitdepth);this.options.heifBitdepth=$.bitdepth}else throw B.invalidParameterError("bitdepth","8, 10 or 12",$.bitdepth)}else throw B.invalidParameterError("options","Object",$);return this._updateFormatOut("heif",$)}function t6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.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 B.invalidParameterError("quality","integer between 1 and 100",$.quality);else if(B.defined($.distance))if(B.number($.distance)&&B.inRange($.distance,0,15))this.options.jxlDistance=$.distance;else throw B.invalidParameterError("distance","number between 0.0 and 15.0",$.distance);if(B.defined($.decodingTier))if(B.integer($.decodingTier)&&B.inRange($.decodingTier,0,4))this.options.jxlDecodingTier=$.decodingTier;else throw B.invalidParameterError("decodingTier","integer between 0 and 4",$.decodingTier);if(B.defined($.lossless))if(B.bool($.lossless))this.options.jxlLossless=$.lossless;else throw B.invalidParameterError("lossless","boolean",$.lossless);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,3,9))this.options.jxlEffort=$.effort;else throw B.invalidParameterError("effort","integer between 3 and 9",$.effort)}return this._updateFormatOut("jxl",$)}function i6($){if(B.object($)){if(B.defined($.depth))if(B.string($.depth)&&B.inArray($.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=$.depth;else throw B.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",$.depth)}return this._updateFormatOut("raw")}function o6($){if(B.object($)){if(B.defined($.size))if(B.integer($.size)&&B.inRange($.size,1,8192))this.options.tileSize=$.size;else throw B.invalidParameterError("size","integer between 1 and 8192",$.size);if(B.defined($.overlap))if(B.integer($.overlap)&&B.inRange($.overlap,0,8192)){if($.overlap>this.options.tileSize)throw B.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,$.overlap);this.options.tileOverlap=$.overlap}else throw B.invalidParameterError("overlap","integer between 0 and 8192",$.overlap);if(B.defined($.container))if(B.string($.container)&&B.inArray($.container,["fs","zip"]))this.options.tileContainer=$.container;else throw B.invalidParameterError("container","one of: fs, zip",$.container);if(B.defined($.layout))if(B.string($.layout)&&B.inArray($.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=$.layout;else throw B.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",$.layout);if(B.defined($.angle))if(B.integer($.angle)&&!($.angle%90))this.options.tileAngle=$.angle;else throw B.invalidParameterError("angle","positive/negative multiple of 90",$.angle);if(this._setBackgroundColourOption("tileBackground",$.background),B.defined($.depth))if(B.string($.depth)&&B.inArray($.depth,["onepixel","onetile","one"]))this.options.tileDepth=$.depth;else throw B.invalidParameterError("depth","one of: onepixel, onetile, one",$.depth);if(B.defined($.skipBlanks))if(B.integer($.skipBlanks)&&B.inRange($.skipBlanks,-1,65535))this.options.tileSkipBlanks=$.skipBlanks;else throw B.invalidParameterError("skipBlanks","integer between -1 and 255/65535",$.skipBlanks);else if(B.defined($.layout)&&$.layout==="google")this.options.tileSkipBlanks=5;let J=B.bool($.center)?$.center:$.centre;if(B.defined(J))this._setBooleanOption("tileCentre",J);if(B.defined($.id))if(B.string($.id))this.options.tileId=$.id;else throw B.invalidParameterError("id","string",$.id);if(B.defined($.basename))if(B.string($.basename))this.options.tileBasename=$.basename;else throw B.invalidParameterError("basename","string",$.basename)}if(B.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw B.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function $7($){if(!B.plainObject($))throw B.invalidParameterError("options","object",$);if(B.integer($.seconds)&&B.inRange($.seconds,0,3600))this.options.timeoutSeconds=$.seconds;else throw B.invalidParameterError("seconds","integer between 0 and 3600",$.seconds);return this}function J7($,J){if(!(B.object(J)&&J.force===!1))this.options.formatOut=$;return this}function F7($,J){if(B.bool(J))this.options[$]=J;else throw B.invalidParameterError($,"boolean",J)}function W7(){if(!this.options.streamOut){this.options.streamOut=!0;let $=Error();this._pipeline(void 0,$)}}function Z7($,J){if(typeof $==="function"){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),j2.pipeline(this.options,(F,W,Z)=>{if(F)$(B.nativeError(F,J));else $(null,W,Z)})});else j2.pipeline(this.options,(F,W,Z)=>{if(F)$(B.nativeError(F,J));else $(null,W,Z)});return this}else if(this.options.streamOut){if(this._isStreamInput()){if(this.once("finish",()=>{this._flattenBufferIn(),j2.pipeline(this.options,(F,W,Z)=>{if(F)this.emit("error",B.nativeError(F,J));else this.emit("info",Z),this.push(W);this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished)this.emit("finish")}else j2.pipeline(this.options,(F,W,Z)=>{if(F)this.emit("error",B.nativeError(F,J));else this.emit("info",Z),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(),j2.pipeline(this.options,(Z,U,Y)=>{if(Z)W(B.nativeError(Z,J));else if(this.options.resolveWithObject)F({data:U,info:Y});else F(U)})})});else return new Promise((F,W)=>{j2.pipeline(this.options,(Z,U,Y)=>{if(Z)W(B.nativeError(Z,J));else if(this.options.resolveWithObject)F({data:U,info:Y});else F(U)})})}r5.exports=function($){Object.assign($.prototype,{toFile:x6,toBuffer:f6,keepExif:O6,withExif:b6,withExifMerge:d6,keepIccProfile:v6,withIccProfile:g6,keepMetadata:h6,withMetadata:m6,toFormat:l6,jpeg:c6,jp2:e6,png:u6,webp:a6,tiff:p6,avif:n6,heif:s6,jxl:t6,gif:r6,raw:i6,tile:o6,timeout:$7,_updateFormatOut:J7,_setBooleanOption:F7,_read:W7,_pipeline:Z7})}});var t5=V((k9,s5)=>{var U7=A("events"),$1=A("detect-libc"),c=e(),{runtimePlatformArch:B7}=V1(),b=P2(),p5=B7(),k1=b.libvipsVersion(),Z2=b.format();Z2.heif.output.alias=["avif","heic"];Z2.jpeg.output.alias=["jpe","jpg"];Z2.tiff.output.alias=["tif"];Z2.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Y7={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},T2={vips:k1.semver};if(!k1.isGlobal)if(!k1.isWasm)try{T2=A(`@img/sharp-${p5}/versions`)}catch($){try{T2=A(`@img/sharp-libvips-${p5}/versions`)}catch(J){}}else try{T2=(()=>{throw new Error("Cannot require module "+"@img/sharp-wasm32/versions");})()}catch($){}T2.sharp=j1().version;if(T2.heif&&Z2.heif)Z2.heif.input.fileSuffix=[".avif"],Z2.heif.output.alias=["avif"];function n5($){if(c.bool($))if($)return b.cache(50,20,100);else return b.cache(0,0,0);else if(c.object($))return b.cache($.memory,$.files,$.items);else return b.cache()}n5(!0);function Q7($){return b.concurrency(c.integer($)?$:null)}if($1.familySync()===$1.GLIBC&&!b._isUsingJemalloc())b.concurrency(1);else if($1.familySync()===$1.MUSL&&b.concurrency()===1024)b.concurrency(A("os").availableParallelism());var K7=new U7.EventEmitter;function w7(){return b.counters()}function G7($){return b.simd(c.bool($)?$:null)}function I7($){if(c.object($))if(Array.isArray($.operation)&&$.operation.every(c.string))b.block($.operation,!0);else throw c.invalidParameterError("operation","Array<string>",$.operation);else throw c.invalidParameterError("options","object",$)}function L7($){if(c.object($))if(Array.isArray($.operation)&&$.operation.every(c.string))b.block($.operation,!1);else throw c.invalidParameterError("operation","Array<string>",$.operation);else throw c.invalidParameterError("options","object",$)}s5.exports=function($){$.cache=n5,$.concurrency=Q7,$.counters=w7,$.simd=G7,$.format=Z2,$.interpolators=Y7,$.versions=T2,$.queue=K7,$.block=I7,$.unblock=L7}});var o5=V((f9,i5)=>{var i=Z5();A5()(i);M5()(i);x5()(i);b5()(i);g5()(i);m5()(i);e5()(i);t5()(i);i5.exports=i});import{AsyncLocalStorage as z4}from"async_hooks";class I2 extends d{service;static _name="BroadcastingServiceContainer";publishCb;context=new z4;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(([Z],[U])=>Z.length-U.length);for(let[Z,U]of W){let Y=new URLPattern({pathname:Z});if(Y.test({pathname:F.topic})){let Q=Y.exec({pathname:F.topic})?.pathname.groups,K=new U;if(await K.subscribe.call(K,Q))$.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 Z=F.split(";");for(let U of Z){let[Y,Q]=U.split("=");W.set(Y.trim(),Q.trim())}}this.context.run({headers:$,cookies:W},J)}}class J2{static async user(){let $=C.getStore(),J=I2.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 Z=$?.user;if(!Z)Z=(await q.use().getSession(F,W))?.user,$?.setUser(Z);if(Z)return Z;return null}static async guard($){let J=await J2.user();if(!J)throw new b2;try{if(!await $(J))throw new b2}catch(F){throw new b2}}static async guardSafe($){let J=await J2.user();if(!J)return!1;try{return await $(J)}catch(F){return!1}}static async authenticate($){await q.use().authenticate($)}static async createMagicLink($){return await q.use().createMagicLinkToken($)}}function r($,J){return $.replace(/:([^/]+)/g,(F,W)=>{let Z=W.endsWith("?"),U=Z?W.slice(0,-1):W,Y=J[U];if(Y===void 0){if(Z)return"";throw new Error(`Missing parameter: ${U}`)}return String(Y)}).replace(/\/\//g,"/")}class r1 extends a1{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 e1{static to($,...J){let[F={}]=J,{search:W={},params:Z={}}={params:{},...F},U=new URLSearchParams(W).toString();throw new r1([r($,Z),U.toString()].filter(Boolean).join("?"))}}function p1($,J){return $.replace(/{{([^}]+)}}/g,(F,W)=>{let Z=J[W];if(Z===void 0)throw new Error(`Missing parameter: ${W}`);return Z})}class _2{static scope($){return $}static translate($,...J){let F=s.use(),W=F.detectLocale(C.getStore().req),Z=F.translations.get(`${W}.server`)?.[$];if(!Z)return $;return p1(Z,J[0])}static locale(){return s.use().detectLocale(C.getStore().req)}static setLocale($=_2.locale()){let J=s.use(),F=$;if(!J.supportedLocales.includes($))F=J.service.defaultLocale;C.getStore().setCookie("i18n-locale",F,{expires:new Date(Date.now()+31536000000)})}}var $4=H7(o5(),1);import{Buffer as y7}from"buffer";class k2 extends d{service;static _name="FileStorageServiceContainer";constructor($){super();this.service=$}}class J4{static async put($){return k2.use().service.driver.put($)}static async metadata($){let J=y7.from(await $.arrayBuffer());try{return await $4.default(J).metadata()}catch{return{}}}static async fetch($){return k2.use().service.driver.fetch($)}static list($){return k2.use().service.driver.list($)}static delete(){}}function F4($){return Object.fromEntries(Object.entries($).filter(([,J])=>{return J!==null&&J!==void 0}))}class K2 extends Error{constructor(){super("Adapter not found");this.name="AdapterNotFound"}}class x1{createSession(){throw new K2}deleteSession(){throw new K2}findSession(){throw new K2}findUserByEmailAddress(){throw new K2}updateSession(){throw new K2}createUser(){throw new K2}}class B4 extends _{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class Y4 extends _{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 Q4 extends _{schema={email:{required:"Email is required",email:"Invalid email"}}}class K4 extends _{schema={password:{required:"Password is required",password:"Invalid password"}}}class g extends W4{provider=q.use()?.provider;async me(){let $=await J2.user();if(!$)throw new U4;return $}async verifyEmail($=new _){let J=await $.input(),F=q.use()?.provider,W=await F.adapter.findUserByVerificationToken(J.get("token"));if(!W)return{email:null};if(await F.adapter.verifyUser(W.email),W)return{email:W.email};return{email:null}}async signInWithMagicLink($=new _){let J=q.use(),F=J.provider,W=$.search.get("token"),Z=decodeURIComponent($.search.get("email")),U=null;try{U=await F.adapter.findUserMagicLinkToken({email:Z,token:W})}catch(Q){return console.log(Q),{error:JSON.stringify(Q)}}if(!U)return{error:"Invalid token"};await F.adapter.verifyUser(Z),await F.adapter.deleteMagicLinkToken(Z);let Y=await J.createOrUpdateSession({email:Z});return $.ctx().setCookie("access_token",Y.token,{expires:Y.absoluteExpiresAt}),await F.onSignIn(Y),{session:Y}}async signInWithPin($=new _){let J=q.use(),F=J.provider,W=await $.input(),{email:Z,pin:U}=W.toJSON();if(!await F.adapter.findUserMagicLinkToken({email:Z,pin:U}))throw new o({pin:["Invalid pin"]});await F.adapter.deleteMagicLinkToken(Z),await F.adapter.verifyUser(Z);let Q=await J.createOrUpdateSession({email:Z});return $.ctx().setCookie("access_token",Q.token,{expires:Q.absoluteExpiresAt}),await F.onSignIn(Q),{session:Q}}async signIn($=new B4){let J=await $.input();if(process.env.DEBUG==="verbose")console.log("signIn",J.toJSON());let{email:F,password:W}=J.toJSON(),Z=q.use().provider,U=await Z.adapter.findUserByEmailAddress(F,Z.verifyEmail);if(!U)throw new o({invalid_credentials:["Invalid credentials"]});if(!await Z.verifyPassword(W,U.password))throw new o({invalid_credentials:["Invalid credentials"]});let Q=await q.use().createOrUpdateSession({email:U.email,id:U.id});$.ctx().setCookie("access_token",Q.token,{expires:Q.absoluteExpiresAt}),await Z.onSignIn(U);let{password:K,...I}=U;return I}async signUp($=new Y4){let J=await $.input(),{email:F,password:W,name:Z,invitationId:U}=J.toJSON(),Y=q.use().provider;if(await Y.adapter.findUserByEmailAddress(F,!1))throw new o({email:["Email address already exists"]});let K=await Y.hashPassword(W),I=s.use().detectLocale($),L;if(U){if(L=await Y.adapter.findInvitation(U,F),L)await Y.adapter.deleteInvitationById(U)}let N,z;if(L)N=await Y.adapter.createUser({email:F,name:Z,password:K,emailVerifiedAt:new Date,locale:I}),await Y.adapter.createAccount({organizationId:L.organizationId,userId:N.id,organizationRole:L.role});else z=await Y.generateEmailVerificationToken(F),N=await Y.adapter.createUser({email:F,name:Z,password:K,verificationToken:z,locale:I});return await Y.onSignUp(N,z),N}async signOut($=new _){let J=$.cookies.get("access_token"),F=await J2.user(),W=q.use().provider;return await W.adapter.deleteSession({token:J}),$.ctx().setCookie("access_token","",{expires:new Date(0)}),await W.onSignOut(F),{}}async forgotPassword($=new Q4){let J=await $.input(),{email:F}=J.toJSON(),W=q.use().provider,Z=await W.adapter.findUserByEmailAddress(F,W.verifyEmail);if(!Z)return{};let U=await W.generateForgotPasswordToken(Z);return await W.adapter.createPasswordResetToken({user:Z,token:U}),await W.onForgotPassword(Z,U),{}}async resetPassword($=new K4){let J=q.use().provider,F=await $.input(),{password:W,token:Z}=F.toJSON(),U=await J.adapter.findPasswordResetToken({token:Z});if(!U)throw new o({token:["Invalid token"]});if(x2.Instant.from(U.createdAt.toISOString()).add({hours:24}).until(x2.Now.instant()).sign>=0)throw new o({token:["Token expired"]});await J.adapter.deletePasswordResetToken({token:Z});let Q=await J.adapter.findUserByEmailAddress(U.user.email,J.verifyEmail);if(!Q)throw new o({email:["User not found"]});let K=await J.hashPassword(W);return await J.adapter.updateUserPassword({id:Q.id,password:K}),await J.adapter.deleteAllUserSessions(Q.id),await J.onResetPassword(Q),{}}async changePassword($=new _){let J=q.use().provider,F=await J2.user(),W=await $.input(),{oldPassword:Z,newPassword:U}=W.toJSON(),{password:Y}=await J.adapter.findUserByEmailAddress(F.email,J.verifyEmail);if(!await J.verifyPassword(Z,Y))throw new o({oldPassword:["Incorrect password"]});let K=await J.hashPassword(U);return await J.adapter.updateUserPassword({id:F.id,password:K}),await J.adapter.deleteAllUserSessions(F.id),{}}async oauthRedirect($=new _){let{provider:J}=$.params,F=q.use().provider.oauthProviders[J];if(!F)throw new Error(`Invalid provider: ${J}`);return{url:await F.getRedirectUrl($)}}async oauthCallback($=new _){let{provider:J}=$.params,F=q.use(),W=F.provider,Z=W.oauthProviders[J],{email:U,name:Y,username:Q,providerId:K}=await Z.onCallback($);if(!Q&&!U)throw new Error("Email or username is required");let I=U??`${Q}:${J}`,L=await W.adapter.findUserByEmailAddress(I,!1),N=s.use().detectLocale($);if(!L)L=await W.adapter.createUser({email:I,name:Y,locale:N,emailVerifiedAt:new Date}),await W.adapter.createSocialAccount({provider:J,userId:L.id,email:I,username:Q,providerId:K,expiresAt:new Date,accessToken:"",refreshToken:""});let z=await F.createOrUpdateSession({email:L.email,id:L.id});return $.ctx().setCookie("access_token",z.token,{expires:z.expiresAt}),await W.onSignIn(L),{session:z}}async createMagicLinkToken($=new _){let J=await $.input(),{email:F}=J.toJSON(),W=q.use(),Z=W.provider,{user:U,pin:Y,token:Q}=await W.createMagicLinkToken(F);return await Z.onMagicLinkCreated(U,{email:F,pin:Y,token:Q}),{email:F}}}class w4 extends f1{routes={"/:provider":this.view("__",[g,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[g,"oauthCallback"])}}class O1 extends f1{routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[g,"signInWithMagicLink"]),"/oauth":w4}}class b1 extends U2{middlewares=["cache:private"];routes={"/sign-in":this.post(g,"signIn"),"/sign-up":this.post(g,"signUp"),"/sign-out":this.post(g,"signOut"),"/forgot-password":this.post(g,"forgotPassword"),"/reset-password":this.post(g,"resetPassword"),"/change-password":this.post(g,"changePassword"),"/verify-email":this.post(g,"verifyEmail"),"/me":this.get(g,"me").middleware(["auth"]),"/magic-link":this.post(g,"createMagicLinkToken"),"/sign-in-with-pin":this.post(g,"signInWithPin")}}class X7 extends Z4{basePath="/auth";verifyEmail=!0;sessionExpiresInHours=24;sessionAbsoluteExpiresInHours=672;adapter=new x1;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 d1 extends U2{routes={"/resize":this.file(async()=>{let $=new _,J=new URL($.rawRequest.url),F=J.searchParams.get("url"),W=Number(J.searchParams.get("w")),Z=Number(J.searchParams.get("h")),U=J.searchParams.get("fit")??"cover",Y=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}`,I=await fetch(K);if(!I.ok)return new Response(JSON.stringify({error:"Image not found",info:K}),{headers:{"Content-Type":"application/json"},status:404});let L=Buffer.from(await I.arrayBuffer()),N=await G4.use().service.driver.resize(L,{height:Z,width:W,fit:U,quality:Y});return I.headers.delete("Content-Type"),I.headers.delete("Content-Length"),new Response(N,{headers:{"Content-Type":"image/webp","Content-Length":`${N.byteLength}`,...I.headers.toJSON()}})})}}class G4 extends d{service;static _name="ImageOptimizationServiceContainer";constructor($){super();this.service=$}}import{mkdir as v1,exists as g1,readdir as N7}from"fs/promises";class u extends d{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 g1(`${process.env.ROOT_DIR}/storage`))await v1(`${process.env.ROOT_DIR}/storage`);if(!await g1(this.logsDirPath))await v1(this.logsDirPath);this.newLogFile()}async newLogFile(){if(!await g1(this.logsDirPath))await v1(this.logsDirPath);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 N7(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(`
|
|
2
|
+
import{fc as W4,gc as f1,hc as Z4,jc as U4,kc as b2,lc as x2,mc as q}from"../http/index.js";import{pc as G4,qc as U2,rc as O2,sc as a1,tc as o,vc as d,wc as y4,xc as a,yc as C,zc as _}from"../chunk-d22q8e8f.js";import{Bc as H4}from"../chunk-hhkht3nz.js";import{Cc as H7,Dc as V,Ec as A}from"../chunk-bzp23bra.js";var p=V((a7,s1)=>{var n1=function($){return typeof $!=="undefined"&&$!==null},D4=function($){return typeof $==="object"},_4=function($){return Object.prototype.toString.call($)==="[object Object]"},E4=function($){return typeof $==="function"},A4=function($){return typeof $==="boolean"},R4=function($){return $ instanceof Buffer},q4=function($){if(n1($))switch($.constructor){case Uint8Array:case Uint8ClampedArray:case Int8Array:case Uint16Array:case Int16Array:case Uint32Array:case Int32Array:case Float32Array:case Float64Array:return!0}return!1},P4=function($){return $ instanceof ArrayBuffer},S4=function($){return typeof $==="string"&&$.length>0},C4=function($){return typeof $==="number"&&!Number.isNaN($)},M4=function($){return Number.isInteger($)},k4=function($,J,F){return $>=J&&$<=F},x4=function($,J){return J.includes($)},f4=function($,J,F){return new Error(`Expected ${J} for ${$} but received ${F} of type ${typeof F}`)},O4=function($,J){return J.message=$.message,J};s1.exports={defined:n1,object:D4,plainObject:_4,fn:E4,bool:A4,buffer:R4,typedArray:q4,arrayBuffer:P4,string:S4,number:C4,integer:M4,inRange:k4,inArray:x4,invalidParameterError:f4,nativeError:O4}});var E2=V((r7,t1)=>{var b4=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};t1.exports=b4});var d2=V((e7,i1)=>{var d4=Number.MAX_SAFE_INTEGER||9007199254740991,v4=["major","premajor","minor","preminor","patch","prepatch","prerelease"];i1.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:d4,RELEASE_TYPES:v4,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var A2=V((n,o1)=>{var{MAX_SAFE_COMPONENT_LENGTH:L1,MAX_SAFE_BUILD_LENGTH:g4,MAX_LENGTH:h4}=d2(),m4=E2();n=o1.exports={};var l4=n.re=[],c4=n.safeRe=[],H=n.src=[],u4=n.safeSrc=[],y=n.t={},a4=0,G1="[a-zA-Z0-9-]",r4=[["\\s",1],["\\d",h4],[G1,g4]],e4=($)=>{for(let[J,F]of r4)$=$.split(`${J}*`).join(`${J}{0,${F}}`).split(`${J}+`).join(`${J}{1,${F}}`);return $},T=($,J,F)=>{let W=e4(J),Z=a4++;m4($,Z,J),y[$]=Z,H[Z]=J,u4[Z]=W,l4[Z]=new RegExp(J,F?"g":void 0),c4[Z]=new RegExp(W,F?"g":void 0)};T("NUMERICIDENTIFIER","0|[1-9]\\d*");T("NUMERICIDENTIFIERLOOSE","\\d+");T("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${G1}*`);T("MAINVERSION",`(${H[y.NUMERICIDENTIFIER]})\\.(${H[y.NUMERICIDENTIFIER]})\\.(${H[y.NUMERICIDENTIFIER]})`);T("MAINVERSIONLOOSE",`(${H[y.NUMERICIDENTIFIERLOOSE]})\\.(${H[y.NUMERICIDENTIFIERLOOSE]})\\.(${H[y.NUMERICIDENTIFIERLOOSE]})`);T("PRERELEASEIDENTIFIER",`(?:${H[y.NUMERICIDENTIFIER]}|${H[y.NONNUMERICIDENTIFIER]})`);T("PRERELEASEIDENTIFIERLOOSE",`(?:${H[y.NUMERICIDENTIFIERLOOSE]}|${H[y.NONNUMERICIDENTIFIER]})`);T("PRERELEASE",`(?:-(${H[y.PRERELEASEIDENTIFIER]}(?:\\.${H[y.PRERELEASEIDENTIFIER]})*))`);T("PRERELEASELOOSE",`(?:-?(${H[y.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${H[y.PRERELEASEIDENTIFIERLOOSE]})*))`);T("BUILDIDENTIFIER",`${G1}+`);T("BUILD",`(?:\\+(${H[y.BUILDIDENTIFIER]}(?:\\.${H[y.BUILDIDENTIFIER]})*))`);T("FULLPLAIN",`v?${H[y.MAINVERSION]}${H[y.PRERELEASE]}?${H[y.BUILD]}?`);T("FULL",`^${H[y.FULLPLAIN]}$`);T("LOOSEPLAIN",`[v=\\s]*${H[y.MAINVERSIONLOOSE]}${H[y.PRERELEASELOOSE]}?${H[y.BUILD]}?`);T("LOOSE",`^${H[y.LOOSEPLAIN]}$`);T("GTLT","((?:<|>)?=?)");T("XRANGEIDENTIFIERLOOSE",`${H[y.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);T("XRANGEIDENTIFIER",`${H[y.NUMERICIDENTIFIER]}|x|X|\\*`);T("XRANGEPLAIN",`[v=\\s]*(${H[y.XRANGEIDENTIFIER]})(?:\\.(${H[y.XRANGEIDENTIFIER]})(?:\\.(${H[y.XRANGEIDENTIFIER]})(?:${H[y.PRERELEASE]})?${H[y.BUILD]}?)?)?`);T("XRANGEPLAINLOOSE",`[v=\\s]*(${H[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${H[y.XRANGEIDENTIFIERLOOSE]})(?:${H[y.PRERELEASELOOSE]})?${H[y.BUILD]}?)?)?`);T("XRANGE",`^${H[y.GTLT]}\\s*${H[y.XRANGEPLAIN]}$`);T("XRANGELOOSE",`^${H[y.GTLT]}\\s*${H[y.XRANGEPLAINLOOSE]}$`);T("COERCEPLAIN",`(^|[^\\d])(\\d{1,${L1}})(?:\\.(\\d{1,${L1}}))?(?:\\.(\\d{1,${L1}}))?`);T("COERCE",`${H[y.COERCEPLAIN]}(?:$|[^\\d])`);T("COERCEFULL",H[y.COERCEPLAIN]+`(?:${H[y.PRERELEASE]})?(?:${H[y.BUILD]})?(?:$|[^\\d])`);T("COERCERTL",H[y.COERCE],!0);T("COERCERTLFULL",H[y.COERCEFULL],!0);T("LONETILDE","(?:~>?)");T("TILDETRIM",`(\\s*)${H[y.LONETILDE]}\\s+`,!0);n.tildeTrimReplace="$1~";T("TILDE",`^${H[y.LONETILDE]}${H[y.XRANGEPLAIN]}$`);T("TILDELOOSE",`^${H[y.LONETILDE]}${H[y.XRANGEPLAINLOOSE]}$`);T("LONECARET","(?:\\^)");T("CARETTRIM",`(\\s*)${H[y.LONECARET]}\\s+`,!0);n.caretTrimReplace="$1^";T("CARET",`^${H[y.LONECARET]}${H[y.XRANGEPLAIN]}$`);T("CARETLOOSE",`^${H[y.LONECARET]}${H[y.XRANGEPLAINLOOSE]}$`);T("COMPARATORLOOSE",`^${H[y.GTLT]}\\s*(${H[y.LOOSEPLAIN]})$|^$`);T("COMPARATOR",`^${H[y.GTLT]}\\s*(${H[y.FULLPLAIN]})$|^$`);T("COMPARATORTRIM",`(\\s*)${H[y.GTLT]}\\s*(${H[y.LOOSEPLAIN]}|${H[y.XRANGEPLAIN]})`,!0);n.comparatorTrimReplace="$1$2$3";T("HYPHENRANGE",`^\\s*(${H[y.XRANGEPLAIN]})\\s+-\\s+(${H[y.XRANGEPLAIN]})\\s*$`);T("HYPHENRANGELOOSE",`^\\s*(${H[y.XRANGEPLAINLOOSE]})\\s+-\\s+(${H[y.XRANGEPLAINLOOSE]})\\s*$`);T("STAR","(<|>)?=?\\s*\\*");T("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");T("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var v2=V((p7,$0)=>{var p4=Object.freeze({loose:!0}),n4=Object.freeze({}),s4=($)=>{if(!$)return n4;if(typeof $!=="object")return p4;return $};$0.exports=s4});var Z0=V((n7,W0)=>{var J0=/^[0-9]+$/,F0=($,J)=>{let F=J0.test($),W=J0.test(J);if(F&&W)$=+$,J=+J;return $===J?0:F&&!W?-1:W&&!F?1:$<J?-1:1},t4=($,J)=>F0(J,$);W0.exports={compareIdentifiers:F0,rcompareIdentifiers:t4}});var H2=V((s7,Q0)=>{var g2=E2(),{MAX_LENGTH:U0,MAX_SAFE_INTEGER:h2}=d2(),{safeRe:B0,safeSrc:Y0,t:m2}=A2(),i4=v2(),{compareIdentifiers:I2}=Z0();class r{constructor($,J){if(J=i4(J),$ instanceof r)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>U0)throw new TypeError(`version is longer than ${U0} characters`);g2("SemVer",$,J),this.options=J,this.loose=!!J.loose,this.includePrerelease=!!J.includePrerelease;let F=$.trim().match(J.loose?B0[m2.LOOSE]:B0[m2.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>h2||this.major<0)throw new TypeError("Invalid major version");if(this.minor>h2||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>h2||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 Z=+W;if(Z>=0&&Z<h2)return Z}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(g2("SemVer.compare",this.version,this.options,$),!($ instanceof r)){if(typeof $==="string"&&$===this.version)return 0;$=new r($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof r))$=new r($,this.options);return I2(this.major,$.major)||I2(this.minor,$.minor)||I2(this.patch,$.patch)}comparePre($){if(!($ instanceof r))$=new r($,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(g2("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 I2(F,W)}while(++J)}compareBuild($){if(!($ instanceof r))$=new r($,this.options);let J=0;do{let F=this.build[J],W=$.build[J];if(g2("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 I2(F,W)}while(++J)}inc($,J,F){if($.startsWith("pre")){if(!J&&F===!1)throw new Error("invalid increment argument: identifier is empty");if(J){let W=new RegExp(`^${this.options.loose?Y0[m2.PRERELEASELOOSE]:Y0[m2.PRERELEASE]}$`),Z=`-${J}`.match(W);if(!Z||Z[1]!==J)throw new Error(`invalid identifier: ${J}`)}}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"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;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(this.prerelease.length===0)this.prerelease=[W];else{let Z=this.prerelease.length;while(--Z>=0)if(typeof this.prerelease[Z]==="number")this.prerelease[Z]++,Z=-2;if(Z===-1){if(J===this.prerelease.join(".")&&F===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(W)}}if(J){let Z=[J,W];if(F===!1)Z=[J];if(I2(this.prerelease[0],J)===0){if(isNaN(this.prerelease[1]))this.prerelease=Z}else this.prerelease=Z}break}default:throw new Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}Q0.exports=r});var L0=V((t7,w0)=>{var K0=H2(),o4=($,J,F=!1)=>{if($ instanceof K0)return $;try{return new K0($,J)}catch(W){if(!F)return null;throw W}};w0.exports=o4});var I0=V((i7,G0)=>{var $3=H2(),J3=L0(),{safeRe:l2,t:c2}=A2(),F3=($,J)=>{if($ instanceof $3)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;J=J||{};let F=null;if(!J.rtl)F=$.match(J.includePrerelease?l2[c2.COERCEFULL]:l2[c2.COERCE]);else{let K=J.includePrerelease?l2[c2.COERCERTLFULL]:l2[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],Z=F[3]||"0",U=F[4]||"0",Y=J.includePrerelease&&F[5]?`-${F[5]}`:"",Q=J.includePrerelease&&F[6]?`+${F[6]}`:"";return J3(`${W}.${Z}.${U}${Y}${Q}`,J)};G0.exports=F3});var B2=V((o7,y0)=>{var H0=H2(),W3=($,J,F)=>new H0($,F).compare(new H0(J,F));y0.exports=W3});var I1=V(($9,X0)=>{var Z3=B2(),U3=($,J,F)=>Z3($,J,F)>=0;X0.exports=U3});var T0=V((J9,j0)=>{class N0{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}}j0.exports=N0});var z0=V((F9,V0)=>{var B3=B2(),Y3=($,J,F)=>B3($,J,F)===0;V0.exports=Y3});var _0=V((W9,D0)=>{var Q3=B2(),K3=($,J,F)=>Q3($,J,F)!==0;D0.exports=K3});var A0=V((Z9,E0)=>{var w3=B2(),L3=($,J,F)=>w3($,J,F)>0;E0.exports=L3});var q0=V((U9,R0)=>{var G3=B2(),I3=($,J,F)=>G3($,J,F)<0;R0.exports=I3});var S0=V((B9,P0)=>{var H3=B2(),y3=($,J,F)=>H3($,J,F)<=0;P0.exports=y3});var M0=V((Y9,C0)=>{var X3=z0(),N3=_0(),j3=A0(),T3=I1(),V3=q0(),z3=S0(),D3=($,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 X3($,F,W);case"!=":return N3($,F,W);case">":return j3($,F,W);case">=":return T3($,F,W);case"<":return V3($,F,W);case"<=":return z3($,F,W);default:throw new TypeError(`Invalid operator: ${J}`)}};C0.exports=D3});var v0=V((Q9,d0)=>{var R2=Symbol("SemVer ANY");class u2{static get ANY(){return R2}constructor($,J){if(J=k0(J),$ instanceof u2)if($.loose===!!J.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),y1("comparator",$,J),this.options=J,this.loose=!!J.loose,this.parse($),this.semver===R2)this.value="";else this.value=this.operator+this.semver.version;y1("comp",this)}parse($){let J=this.options.loose?x0[f0.COMPARATORLOOSE]:x0[f0.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=R2;else this.semver=new O0(F[2],this.options.loose)}toString(){return this.value}test($){if(y1("Comparator.test",$,this.options.loose),this.semver===R2||$===R2)return!0;if(typeof $==="string")try{$=new O0($,this.options)}catch(J){return!1}return H1($,this.operator,this.semver,this.options)}intersects($,J){if(!($ instanceof u2))throw new TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new b0($.value,J).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new b0(this.value,J).test($.semver)}if(J=k0(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(H1(this.semver,"<",$.semver,J)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(H1(this.semver,">",$.semver,J)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}d0.exports=u2;var k0=v2(),{safeRe:x0,t:f0}=A2(),H1=M0(),y1=E2(),O0=H2(),b0=X1()});var X1=V((K9,l0)=>{var _3=/\s+/g;class q2{constructor($,J){if(J=A3(J),$ instanceof q2)if($.loose===!!J.loose&&$.includePrerelease===!!J.includePrerelease)return $;else return new q2($.raw,J);if($ instanceof N1)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(_3," "),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)=>!h0(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&&k3(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&&C3)|(this.options.loose&&M3))+":"+$,W=g0.get(F);if(W)return W;let Z=this.options.loose,U=Z?v[f.HYPHENRANGELOOSE]:v[f.HYPHENRANGE];$=$.replace(U,l3(this.options.includePrerelease)),E("hyphen replace",$),$=$.replace(v[f.COMPARATORTRIM],q3),E("comparator trim",$),$=$.replace(v[f.TILDETRIM],P3),E("tilde trim",$),$=$.replace(v[f.CARETTRIM],S3),E("caret trim",$);let Y=$.split(" ").map((I)=>x3(I,this.options)).join(" ").split(/\s+/).map((I)=>m3(I,this.options));if(Z)Y=Y.filter((I)=>{return E("loose invalid filter",I,this.options),!!I.match(v[f.COMPARATORLOOSE])});E("range list",Y);let Q=new Map,K=Y.map((I)=>new N1(I,this.options));for(let I of K){if(h0(I))return[I];Q.set(I.value,I)}if(Q.size>1&&Q.has(""))Q.delete("");let G=[...Q.values()];return g0.set(F,G),G}intersects($,J){if(!($ instanceof q2))throw new TypeError("a Range is required");return this.set.some((F)=>{return m0(F,J)&&$.set.some((W)=>{return m0(W,J)&&F.every((Z)=>{return W.every((U)=>{return Z.intersects(U,J)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new R3($,this.options)}catch(J){return!1}for(let J=0;J<this.set.length;J++)if(c3(this.set[J],$,this.options))return!0;return!1}}l0.exports=q2;var E3=T0(),g0=new E3,A3=v2(),N1=v0(),E=E2(),R3=H2(),{safeRe:v,t:f,comparatorTrimReplace:q3,tildeTrimReplace:P3,caretTrimReplace:S3}=A2(),{FLAG_INCLUDE_PRERELEASE:C3,FLAG_LOOSE:M3}=d2(),h0=($)=>$.value==="<0.0.0-0",k3=($)=>$.value==="",m0=($,J)=>{let F=!0,W=$.slice(),Z=W.pop();while(F&&W.length)F=W.every((U)=>{return Z.intersects(U,J)}),Z=W.pop();return F},x3=($,J)=>{return E("comp",$,J),$=b3($,J),E("caret",$),$=f3($,J),E("tildes",$),$=v3($,J),E("xrange",$),$=h3($,J),E("stars",$),$},O=($)=>!$||$.toLowerCase()==="x"||$==="*",f3=($,J)=>{return $.trim().split(/\s+/).map((F)=>O3(F,J)).join(" ")},O3=($,J)=>{let F=J.loose?v[f.TILDELOOSE]:v[f.TILDE];return $.replace(F,(W,Z,U,Y,Q)=>{E("tilde",$,W,Z,U,Y,Q);let K;if(O(Z))K="";else if(O(U))K=`>=${Z}.0.0 <${+Z+1}.0.0-0`;else if(O(Y))K=`>=${Z}.${U}.0 <${Z}.${+U+1}.0-0`;else if(Q)E("replaceTilde pr",Q),K=`>=${Z}.${U}.${Y}-${Q} <${Z}.${+U+1}.0-0`;else K=`>=${Z}.${U}.${Y} <${Z}.${+U+1}.0-0`;return E("tilde return",K),K})},b3=($,J)=>{return $.trim().split(/\s+/).map((F)=>d3(F,J)).join(" ")},d3=($,J)=>{E("caret",$,J);let F=J.loose?v[f.CARETLOOSE]:v[f.CARET],W=J.includePrerelease?"-0":"";return $.replace(F,(Z,U,Y,Q,K)=>{E("caret",$,Z,U,Y,Q,K);let G;if(O(U))G="";else if(O(Y))G=`>=${U}.0.0${W} <${+U+1}.0.0-0`;else if(O(Q))if(U==="0")G=`>=${U}.${Y}.0${W} <${U}.${+Y+1}.0-0`;else G=`>=${U}.${Y}.0${W} <${+U+1}.0.0-0`;else if(K)if(E("replaceCaret pr",K),U==="0")if(Y==="0")G=`>=${U}.${Y}.${Q}-${K} <${U}.${Y}.${+Q+1}-0`;else G=`>=${U}.${Y}.${Q}-${K} <${U}.${+Y+1}.0-0`;else G=`>=${U}.${Y}.${Q}-${K} <${+U+1}.0.0-0`;else if(E("no pr"),U==="0")if(Y==="0")G=`>=${U}.${Y}.${Q}${W} <${U}.${Y}.${+Q+1}-0`;else G=`>=${U}.${Y}.${Q}${W} <${U}.${+Y+1}.0-0`;else G=`>=${U}.${Y}.${Q} <${+U+1}.0.0-0`;return E("caret return",G),G})},v3=($,J)=>{return E("replaceXRanges",$,J),$.split(/\s+/).map((F)=>g3(F,J)).join(" ")},g3=($,J)=>{$=$.trim();let F=J.loose?v[f.XRANGELOOSE]:v[f.XRANGE];return $.replace(F,(W,Z,U,Y,Q,K)=>{E("xRange",$,W,Z,U,Y,Q,K);let G=O(U),I=G||O(Y),N=I||O(Q),z=N;if(Z==="="&&z)Z="";if(K=J.includePrerelease?"-0":"",G)if(Z===">"||Z==="<")W="<0.0.0-0";else W="*";else if(Z&&z){if(I)Y=0;if(Q=0,Z===">")if(Z=">=",I)U=+U+1,Y=0,Q=0;else Y=+Y+1,Q=0;else if(Z==="<=")if(Z="<",I)U=+U+1;else Y=+Y+1;if(Z==="<")K="-0";W=`${Z+U}.${Y}.${Q}${K}`}else if(I)W=`>=${U}.0.0${K} <${+U+1}.0.0-0`;else if(N)W=`>=${U}.${Y}.0${K} <${U}.${+Y+1}.0-0`;return E("xRange return",W),W})},h3=($,J)=>{return E("replaceStars",$,J),$.trim().replace(v[f.STAR],"")},m3=($,J)=>{return E("replaceGTE0",$,J),$.trim().replace(v[J.includePrerelease?f.GTE0PRE:f.GTE0],"")},l3=($)=>(J,F,W,Z,U,Y,Q,K,G,I,N,z)=>{if(O(W))F="";else if(O(Z))F=`>=${W}.0.0${$?"-0":""}`;else if(O(U))F=`>=${W}.${Z}.0${$?"-0":""}`;else if(Y)F=`>=${F}`;else F=`>=${F}${$?"-0":""}`;if(O(G))K="";else if(O(I))K=`<${+G+1}.0.0-0`;else if(O(N))K=`<${G}.${+I+1}.0-0`;else if(z)K=`<=${G}.${I}.${N}-${z}`;else if($)K=`<${G}.${I}.${+N+1}-0`;else K=`<=${K}`;return`${F} ${K}`.trim()},c3=($,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(E($[W].semver),$[W].semver===N1.ANY)continue;if($[W].semver.prerelease.length>0){let Z=$[W].semver;if(Z.major===J.major&&Z.minor===J.minor&&Z.patch===J.patch)return!0}}return!1}return!0}});var u0=V((w9,c0)=>{var u3=X1(),a3=($,J,F)=>{try{J=new u3(J,F)}catch(W){return!1}return J.test($)};c0.exports=a3});var j1=V((L9,r3)=>{r3.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 V1=V((G9,$5)=>{var{spawnSync:a2}=A("child_process"),{createHash:e3}=A("crypto"),p0=I0(),p3=I1(),n3=u0(),a0=A("detect-libc"),{config:s3,engines:r0,optionalDependencies:t3}=j1(),i3=process.env.npm_package_config_libvips||s3.libvips,n0=p0(i3).version,o3=["darwin-arm64","darwin-x64","linux-arm","linux-arm64","linux-s390x","linux-x64","linuxmusl-arm64","linuxmusl-x64","win32-ia32","win32-x64"],r2={encoding:"utf8",shell:!0},$8=($)=>{if($ instanceof Error)console.error(`sharp: Installation error: ${$.message}`);else console.log(`sharp: ${$}`)},s0=()=>a0.isNonGlibcLinuxSync()?a0.familySync():"",J8=()=>`${process.platform}${s0()}-${process.arch}`,y2=()=>{if(t0())return"wasm32";let{npm_config_arch:$,npm_config_platform:J,npm_config_libc:F}=process.env,W=typeof F==="string"?F:s0();return`${J||process.platform}${W}-${$||process.arch}`},F8=()=>{try{return A(`@img/sharp-libvips-dev-${y2()}/include`)}catch{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/include");})()}catch{}}return""},W8=()=>{try{return (()=>{throw new Error("Cannot require module "+"@img/sharp-libvips-dev/cplusplus");})()}catch{}return""},Z8=()=>{try{return A(`@img/sharp-libvips-dev-${y2()}/lib`)}catch{try{return A(`@img/sharp-libvips-${y2()}/lib`)}catch{}}return""},U8=()=>{if(process.release?.name==="node"&&process.versions){if(!n3(process.versions.node,r0.node))return{found:process.versions.node,expected:r0.node}}},t0=()=>{let{CC:$}=process.env;return Boolean($&&$.endsWith("/emcc"))},B8=()=>{if(process.platform==="darwin"&&process.arch==="x64")return(a2("sysctl sysctl.proc_translated",r2).stdout||"").trim()==="sysctl.proc_translated: 1";return!1},e0=($)=>e3("sha512").update($).digest("hex"),Y8=()=>{try{let $=e0(`imgsharp-libvips-${y2()}`),J=p0(t3[`@img/sharp-libvips-${y2()}`]).version;return e0(`${$}npm:${J}`).slice(0,10)}catch{}return""},Q8=()=>a2(`node-gyp rebuild --directory=src ${t0()?"--nodedir=emscripten":""}`,{...r2,stdio:"inherit"}).status,i0=()=>{if(process.platform!=="win32")return(a2("pkg-config --modversion vips-cpp",{...r2,env:{...process.env,PKG_CONFIG_PATH:o0()}}).stdout||"").trim();else return""},o0=()=>{if(process.platform!=="win32")return[(a2('which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2',r2).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""},T1=($,J,F)=>{if(F)F(`Detected ${J}, skipping search for globally-installed libvips`);return $},K8=($)=>{if(Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS)===!0)return T1(!1,"SHARP_IGNORE_GLOBAL_LIBVIPS",$);if(Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS)===!0)return T1(!0,"SHARP_FORCE_GLOBAL_LIBVIPS",$);if(B8())return T1(!1,"Rosetta",$);let J=i0();return!!J&&p3(J,n0)};$5.exports={minimumLibvipsVersion:n0,prebuiltPlatforms:o3,buildPlatformArch:y2,buildSharpLibvipsIncludeDir:F8,buildSharpLibvipsCPlusPlusDir:W8,buildSharpLibvipsLibDir:Z8,isUnsupportedNodeRuntime:U8,runtimePlatformArch:J8,log:$8,yarnLocator:Y8,spawnRebuild:Q8,globalLibvipsVersion:i0,pkgConfigPath:o0,useGlobalLibvips:K8}});var P2=V((H9,F5)=>{var{familySync:w8,versionSync:L8}=A("detect-libc"),{runtimePlatformArch:G8,isUnsupportedNodeRuntime:J5,prebuiltPlatforms:I8,minimumLibvipsVersion:H8}=V1(),Y2=G8(),y8=[`../src/build/Release/sharp-${Y2}.node`,"../src/build/Release/sharp-wasm32.node",`@img/sharp-${Y2}/sharp.node`,"@img/sharp-wasm32/sharp.node"],z1,e2=[];for(let $ of y8)try{z1=A($);break}catch(J){e2.push(J)}if(z1)F5.exports=z1;else{let[$,J,F]=["linux","darwin","win32"].map((U)=>Y2.startsWith(U)),W=[`Could not load the "sharp" module using the ${Y2} runtime`];e2.forEach((U)=>{if(U.code!=="MODULE_NOT_FOUND")W.push(`${U.code}: ${U.message}`)});let Z=e2.map((U)=>U.message).join(" ");if(W.push("Possible solutions:"),J5()){let{found:U,expected:Y}=J5();W.push("- Please upgrade Node.js:",` Found ${U}`,` Requires ${Y}`)}else if(I8.includes(Y2)){let[U,Y]=Y2.split("-"),Q=U.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=${U.replace("musl","")}${Q} --cpu=${Y} sharp`)}else W.push(`- Manually install libvips >= ${H8}`,"- Add experimental WebAssembly-based dependencies:"," npm install --cpu=wasm32 sharp"," npm install @img/sharp-wasm32");if($&&/(symbol not found|CXXABI_)/i.test(Z))try{let{config:U}=A(`@img/sharp-libvips-${Y2}/package`),Y=`${w8()} ${L8()}`,Q=`${U.musl?"musl":"glibc"} ${U.musl||U.glibc}`;W.push("- Update your OS:",` Found ${Y}`,` Requires ${Q}`)}catch(U){}if($&&/\/snap\/core[0-9]{2}/.test(Z))W.push("- Remove the Node.js Snap, which does not support native modules"," snap remove node");if(J&&/Incompatible library version/.test(Z))W.push("- Update Homebrew:"," brew update && brew upgrade vips");if(e2.some((U)=>U.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(Z))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 Z5=V((X9,W5)=>{var X8=A("util"),D1=A("stream"),N8=p();P2();var j8=X8.debuglog("sharp"),Q2=function($,J){if(arguments.length===1&&!N8.defined($))throw new Error("Invalid input");if(!(this instanceof Q2))return new Q2($,J);return D1.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),j8(F)},queueListener:function(F){Q2.queue.emit("change",F)}},this.options.input=this._createInputDescriptor($,J,{allowStream:!0}),this};Object.setPrototypeOf(Q2.prototype,D1.Duplex.prototype);Object.setPrototypeOf(Q2,D1.Duplex);function T8(){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(Q2.prototype,{clone:T8});W5.exports=Q2});var _1=V((N9,U5)=>{U5.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 Y5=V((j9,B5)=>{B5.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 w5=V((T9,K5)=>{var V8=Y5(),z8=Array.prototype.concat,D8=Array.prototype.slice,Q5=K5.exports=function $(J){var F=[];for(var W=0,Z=J.length;W<Z;W++){var U=J[W];if(V8(U))F=z8.call(F,D8.call(U));else F.push(U)}return F};Q5.wrap=function($){return function(){return $(Q5(arguments))}}});var H5=V((V9,I5)=>{var S2=_1(),C2=w5(),L5=Object.hasOwnProperty,G5=Object.create(null);for(p2 in S2)if(L5.call(S2,p2))G5[S2[p2]]=p2;var p2,m=I5.exports={to:{},get:{}};m.get=function($){var J=$.substring(0,3).toLowerCase(),F,W;switch(J){case"hsl":F=m.get.hsl($),W="hsl";break;case"hwb":F=m.get.hwb($),W="hwb";break;default:F=m.get.rgb($),W="rgb";break}if(!F)return null;return{model:W,value:F}};m.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*)?\)$/,Z=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,U=/^(\w+)$/,Y=[0,0,0,1],Q,K,G;if(Q=$.match(F)){G=Q[2],Q=Q[1];for(K=0;K<3;K++){var I=K*2;Y[K]=parseInt(Q.slice(I,I+2),16)}if(G)Y[3]=parseInt(G,16)/255}else if(Q=$.match(J)){Q=Q[1],G=Q[3];for(K=0;K<3;K++)Y[K]=parseInt(Q[K]+Q[K],16);if(G)Y[3]=parseInt(G+G,16)/255}else if(Q=$.match(W)){for(K=0;K<3;K++)Y[K]=parseInt(Q[K+1],0);if(Q[4])if(Q[5])Y[3]=parseFloat(Q[4])*0.01;else Y[3]=parseFloat(Q[4])}else if(Q=$.match(Z)){for(K=0;K<3;K++)Y[K]=Math.round(parseFloat(Q[K+1])*2.55);if(Q[4])if(Q[5])Y[3]=parseFloat(Q[4])*0.01;else Y[3]=parseFloat(Q[4])}else if(Q=$.match(U)){if(Q[1]==="transparent")return[0,0,0,0];if(!L5.call(S2,Q[1]))return null;return Y=S2[Q[1]],Y[3]=1,Y}else return null;for(K=0;K<3;K++)Y[K]=F2(Y[K],0,255);return Y[3]=F2(Y[3],0,1),Y};m.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]),Z=(parseFloat(F[1])%360+360)%360,U=F2(parseFloat(F[2]),0,100),Y=F2(parseFloat(F[3]),0,100),Q=F2(isNaN(W)?1:W,0,1);return[Z,U,Y,Q]}return null};m.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]),Z=(parseFloat(F[1])%360+360)%360,U=F2(parseFloat(F[2]),0,100),Y=F2(parseFloat(F[3]),0,100),Q=F2(isNaN(W)?1:W,0,1);return[Z,U,Y,Q]}return null};m.to.hex=function(){var $=C2(arguments);return"#"+n2($[0])+n2($[1])+n2($[2])+($[3]<1?n2(Math.round($[3]*255)):"")};m.to.rgb=function(){var $=C2(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]+")"};m.to.rgb.percent=function(){var $=C2(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]+")"};m.to.hsl=function(){var $=C2(arguments);return $.length<4||$[3]===1?"hsl("+$[0]+", "+$[1]+"%, "+$[2]+"%)":"hsla("+$[0]+", "+$[1]+"%, "+$[2]+"%, "+$[3]+")"};m.to.hwb=function(){var $=C2(arguments),J="";if($.length>=4&&$[3]!==1)J=", "+$[3];return"hwb("+$[0]+", "+$[1]+"%, "+$[2]+"%"+J+")"};m.to.keyword=function($){return G5[$.slice(0,3)]};function F2($,J,F){return Math.min(Math.max(J,$),F)}function n2($){var J=Math.round($).toString(16).toUpperCase();return J.length<2?"0"+J:J}});var E1=V((z9,X5)=>{var M2=_1(),y5={};for(let $ of Object.keys(M2))y5[M2[$]]=$;var X={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"]}};X5.exports=X;for(let $ of Object.keys(X)){if(!("channels"in X[$]))throw new Error("missing channels property: "+$);if(!("labels"in X[$]))throw new Error("missing channel labels property: "+$);if(X[$].labels.length!==X[$].channels)throw new Error("channel and label counts mismatch: "+$);let{channels:J,labels:F}=X[$];delete X[$].channels,delete X[$].labels,Object.defineProperty(X[$],"channels",{value:J}),Object.defineProperty(X[$],"labels",{value:F})}X.rgb.hsl=function($){let J=$[0]/255,F=$[1]/255,W=$[2]/255,Z=Math.min(J,F,W),U=Math.max(J,F,W),Y=U-Z,Q,K;if(U===Z)Q=0;else if(J===U)Q=(F-W)/Y;else if(F===U)Q=2+(W-J)/Y;else if(W===U)Q=4+(J-F)/Y;if(Q=Math.min(Q*60,360),Q<0)Q+=360;let G=(Z+U)/2;if(U===Z)K=0;else if(G<=0.5)K=Y/(U+Z);else K=Y/(2-U-Z);return[Q,K*100,G*100]};X.rgb.hsv=function($){let J,F,W,Z,U,Y=$[0]/255,Q=$[1]/255,K=$[2]/255,G=Math.max(Y,Q,K),I=G-Math.min(Y,Q,K),N=function(z){return(G-z)/6/I+0.5};if(I===0)Z=0,U=0;else{if(U=I/G,J=N(Y),F=N(Q),W=N(K),Y===G)Z=W-F;else if(Q===G)Z=0.3333333333333333+J-W;else if(K===G)Z=0.6666666666666666+F-J;if(Z<0)Z+=1;else if(Z>1)Z-=1}return[Z*360,U*100,G*100]};X.rgb.hwb=function($){let J=$[0],F=$[1],W=$[2],Z=X.rgb.hsl($)[0],U=0.00392156862745098*Math.min(J,Math.min(F,W));return W=1-0.00392156862745098*Math.max(J,Math.max(F,W)),[Z,U*100,W*100]};X.rgb.cmyk=function($){let J=$[0]/255,F=$[1]/255,W=$[2]/255,Z=Math.min(1-J,1-F,1-W),U=(1-J-Z)/(1-Z)||0,Y=(1-F-Z)/(1-Z)||0,Q=(1-W-Z)/(1-Z)||0;return[U*100,Y*100,Q*100,Z*100]};function _8($,J){return($[0]-J[0])**2+($[1]-J[1])**2+($[2]-J[2])**2}X.rgb.keyword=function($){let J=y5[$];if(J)return J;let F=1/0,W;for(let Z of Object.keys(M2)){let U=M2[Z],Y=_8($,U);if(Y<F)F=Y,W=Z}return W};X.keyword.rgb=function($){return M2[$]};X.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 Z=J*0.4124+F*0.3576+W*0.1805,U=J*0.2126+F*0.7152+W*0.0722,Y=J*0.0193+F*0.1192+W*0.9505;return[Z*100,U*100,Y*100]};X.rgb.lab=function($){let J=X.rgb.xyz($),F=J[0],W=J[1],Z=J[2];F/=95.047,W/=100,Z/=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,Z=Z>0.008856?Z**0.3333333333333333:7.787*Z+0.13793103448275862;let U=116*W-16,Y=500*(F-W),Q=200*(W-Z);return[U,Y,Q]};X.hsl.rgb=function($){let J=$[0]/360,F=$[1]/100,W=$[2]/100,Z,U,Y;if(F===0)return Y=W*255,[Y,Y,Y];if(W<0.5)Z=W*(1+F);else Z=W+F-W*F;let Q=2*W-Z,K=[0,0,0];for(let G=0;G<3;G++){if(U=J+0.3333333333333333*-(G-1),U<0)U++;if(U>1)U--;if(6*U<1)Y=Q+(Z-Q)*6*U;else if(2*U<1)Y=Z;else if(3*U<2)Y=Q+(Z-Q)*(0.6666666666666666-U)*6;else Y=Q;K[G]=Y*255}return K};X.hsl.hsv=function($){let J=$[0],F=$[1]/100,W=$[2]/100,Z=F,U=Math.max(W,0.01);W*=2,F*=W<=1?W:2-W,Z*=U<=1?U:2-U;let Y=(W+F)/2,Q=W===0?2*Z/(U+Z):2*F/(W+F);return[J,Q*100,Y*100]};X.hsv.rgb=function($){let J=$[0]/60,F=$[1]/100,W=$[2]/100,Z=Math.floor(J)%6,U=J-Math.floor(J),Y=255*W*(1-F),Q=255*W*(1-F*U),K=255*W*(1-F*(1-U));switch(W*=255,Z){case 0:return[W,K,Y];case 1:return[Q,W,Y];case 2:return[Y,W,K];case 3:return[Y,Q,W];case 4:return[K,Y,W];case 5:return[W,Y,Q]}};X.hsv.hsl=function($){let J=$[0],F=$[1]/100,W=$[2]/100,Z=Math.max(W,0.01),U,Y;Y=(2-F)*W;let Q=(2-F)*Z;return U=F*Z,U/=Q<=1?Q:2-Q,U=U||0,Y/=2,[J,U*100,Y*100]};X.hwb.rgb=function($){let J=$[0]/360,F=$[1]/100,W=$[2]/100,Z=F+W,U;if(Z>1)F/=Z,W/=Z;let Y=Math.floor(6*J),Q=1-W;if(U=6*J-Y,(Y&1)!==0)U=1-U;let K=F+U*(Q-F),G,I,N;switch(Y){default:case 6:case 0:G=Q,I=K,N=F;break;case 1:G=K,I=Q,N=F;break;case 2:G=F,I=Q,N=K;break;case 3:G=F,I=K,N=Q;break;case 4:G=K,I=F,N=Q;break;case 5:G=Q,I=F,N=K;break}return[G*255,I*255,N*255]};X.cmyk.rgb=function($){let J=$[0]/100,F=$[1]/100,W=$[2]/100,Z=$[3]/100,U=1-Math.min(1,J*(1-Z)+Z),Y=1-Math.min(1,F*(1-Z)+Z),Q=1-Math.min(1,W*(1-Z)+Z);return[U*255,Y*255,Q*255]};X.xyz.rgb=function($){let J=$[0]/100,F=$[1]/100,W=$[2]/100,Z,U,Y;return Z=J*3.2406+F*-1.5372+W*-0.4986,U=J*-0.9689+F*1.8758+W*0.0415,Y=J*0.0557+F*-0.204+W*1.057,Z=Z>0.0031308?1.055*Z**0.4166666666666667-0.055:Z*12.92,U=U>0.0031308?1.055*U**0.4166666666666667-0.055:U*12.92,Y=Y>0.0031308?1.055*Y**0.4166666666666667-0.055:Y*12.92,Z=Math.min(Math.max(0,Z),1),U=Math.min(Math.max(0,U),1),Y=Math.min(Math.max(0,Y),1),[Z*255,U*255,Y*255]};X.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 Z=116*F-16,U=500*(J-F),Y=200*(F-W);return[Z,U,Y]};X.lab.xyz=function($){let J=$[0],F=$[1],W=$[2],Z,U,Y;U=(J+16)/116,Z=F/500+U,Y=U-W/200;let Q=U**3,K=Z**3,G=Y**3;return U=Q>0.008856?Q:(U-0.13793103448275862)/7.787,Z=K>0.008856?K:(Z-0.13793103448275862)/7.787,Y=G>0.008856?G:(Y-0.13793103448275862)/7.787,Z*=95.047,U*=100,Y*=108.883,[Z,U,Y]};X.lab.lch=function($){let J=$[0],F=$[1],W=$[2],Z;if(Z=Math.atan2(W,F)*360/2/Math.PI,Z<0)Z+=360;let Y=Math.sqrt(F*F+W*W);return[J,Y,Z]};X.lch.lab=function($){let J=$[0],F=$[1],Z=$[2]/360*2*Math.PI,U=F*Math.cos(Z),Y=F*Math.sin(Z);return[J,U,Y]};X.rgb.ansi16=function($,J=null){let[F,W,Z]=$,U=J===null?X.rgb.hsv($)[2]:J;if(U=Math.round(U/50),U===0)return 30;let Y=30+(Math.round(Z/255)<<2|Math.round(W/255)<<1|Math.round(F/255));if(U===2)Y+=60;return Y};X.hsv.ansi16=function($){return X.rgb.ansi16(X.hsv.rgb($),$[2])};X.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)};X.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,Z=(J>>1&1)*F*255,U=(J>>2&1)*F*255;return[W,Z,U]};X.ansi256.rgb=function($){if($>=232){let U=($-232)*10+8;return[U,U,U]}$-=16;let J,F=Math.floor($/36)/5*255,W=Math.floor((J=$%36)/6)/5*255,Z=J%6/5*255;return[F,W,Z]};X.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};X.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((Q)=>{return Q+Q}).join("");let W=parseInt(F,16),Z=W>>16&255,U=W>>8&255,Y=W&255;return[Z,U,Y]};X.rgb.hcg=function($){let J=$[0]/255,F=$[1]/255,W=$[2]/255,Z=Math.max(Math.max(J,F),W),U=Math.min(Math.min(J,F),W),Y=Z-U,Q,K;if(Y<1)Q=U/(1-Y);else Q=0;if(Y<=0)K=0;else if(Z===J)K=(F-W)/Y%6;else if(Z===F)K=2+(W-J)/Y;else K=4+(J-F)/Y;return K/=6,K%=1,[K*360,Y*100,Q*100]};X.hsl.hcg=function($){let J=$[1]/100,F=$[2]/100,W=F<0.5?2*J*F:2*J*(1-F),Z=0;if(W<1)Z=(F-0.5*W)/(1-W);return[$[0],W*100,Z*100]};X.hsv.hcg=function($){let J=$[1]/100,F=$[2]/100,W=J*F,Z=0;if(W<1)Z=(F-W)/(1-W);return[$[0],W*100,Z*100]};X.hcg.rgb=function($){let J=$[0]/360,F=$[1]/100,W=$[2]/100;if(F===0)return[W*255,W*255,W*255];let Z=[0,0,0],U=J%1*6,Y=U%1,Q=1-Y,K=0;switch(Math.floor(U)){case 0:Z[0]=1,Z[1]=Y,Z[2]=0;break;case 1:Z[0]=Q,Z[1]=1,Z[2]=0;break;case 2:Z[0]=0,Z[1]=1,Z[2]=Y;break;case 3:Z[0]=0,Z[1]=Q,Z[2]=1;break;case 4:Z[0]=Y,Z[1]=0,Z[2]=1;break;default:Z[0]=1,Z[1]=0,Z[2]=Q}return K=(1-F)*W,[(F*Z[0]+K)*255,(F*Z[1]+K)*255,(F*Z[2]+K)*255]};X.hcg.hsv=function($){let J=$[1]/100,F=$[2]/100,W=J+F*(1-J),Z=0;if(W>0)Z=J/W;return[$[0],Z*100,W*100]};X.hcg.hsl=function($){let J=$[1]/100,W=$[2]/100*(1-J)+0.5*J,Z=0;if(W>0&&W<0.5)Z=J/(2*W);else if(W>=0.5&&W<1)Z=J/(2*(1-W));return[$[0],Z*100,W*100]};X.hcg.hwb=function($){let J=$[1]/100,F=$[2]/100,W=J+F*(1-J);return[$[0],(W-J)*100,(1-W)*100]};X.hwb.hcg=function($){let J=$[1]/100,W=1-$[2]/100,Z=W-J,U=0;if(Z<1)U=(W-Z)/(1-Z);return[$[0],Z*100,U*100]};X.apple.rgb=function($){return[$[0]/65535*255,$[1]/65535*255,$[2]/65535*255]};X.rgb.apple=function($){return[$[0]/255*65535,$[1]/255*65535,$[2]/255*65535]};X.gray.rgb=function($){return[$[0]/100*255,$[0]/100*255,$[0]/100*255]};X.gray.hsl=function($){return[0,0,$[0]]};X.gray.hsv=X.gray.hsl;X.gray.hwb=function($){return[0,100,$[0]]};X.gray.cmyk=function($){return[0,0,0,$[0]]};X.gray.lab=function($){return[$[0],0,0]};X.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};X.rgb.gray=function($){return[($[0]+$[1]+$[2])/3/255*100]}});var j5=V((D9,N5)=>{var s2=E1();function E8(){let $={},J=Object.keys(s2);for(let F=J.length,W=0;W<F;W++)$[J[W]]={distance:-1,parent:null};return $}function A8($){let J=E8(),F=[$];J[$].distance=0;while(F.length){let W=F.pop(),Z=Object.keys(s2[W]);for(let U=Z.length,Y=0;Y<U;Y++){let Q=Z[Y],K=J[Q];if(K.distance===-1)K.distance=J[W].distance+1,K.parent=W,F.unshift(Q)}}return J}function R8($,J){return function(F){return J($(F))}}function q8($,J){let F=[J[$].parent,$],W=s2[J[$].parent][$],Z=J[$].parent;while(J[Z].parent)F.unshift(J[Z].parent),W=R8(s2[J[Z].parent][Z],W),Z=J[Z].parent;return W.conversion=F,W}N5.exports=function($){let J=A8($),F={},W=Object.keys(J);for(let Z=W.length,U=0;U<Z;U++){let Y=W[U];if(J[Y].parent===null)continue;F[Y]=q8(Y,J)}return F}});var V5=V((_9,T5)=>{var A1=E1(),P8=j5(),X2={},S8=Object.keys(A1);function C8($){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 M8($){let J=function(...F){let W=F[0];if(W===void 0||W===null)return W;if(W.length>1)F=W;let Z=$(F);if(typeof Z==="object")for(let U=Z.length,Y=0;Y<U;Y++)Z[Y]=Math.round(Z[Y]);return Z};if("conversion"in $)J.conversion=$.conversion;return J}S8.forEach(($)=>{X2[$]={},Object.defineProperty(X2[$],"channels",{value:A1[$].channels}),Object.defineProperty(X2[$],"labels",{value:A1[$].labels});let J=P8($);Object.keys(J).forEach((W)=>{let Z=J[W];X2[$][W]=M8(Z),X2[$][W].raw=C8(Z)})});T5.exports=X2});var i2=V((E9,D5)=>{var N2=H5(),l=V5(),z5=["keyword","gray","hex"],R1={};for(let $ of Object.keys(l))R1[[...l[$].labels].sort().join("")]=$;var t2={};function M($,J){if(!(this instanceof M))return new M($,J);if(J&&J in z5)J=null;if(J&&!(J in l))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 M)this.model=$.model,this.color=[...$.color],this.valpha=$.valpha;else if(typeof $==="string"){let Z=N2.get($);if(Z===null)throw new Error("Unable to parse color from string: "+$);this.model=Z.model,W=l[this.model].channels,this.color=Z.value.slice(0,W),this.valpha=typeof Z.value[W]==="number"?Z.value[W]:1}else if($.length>0){this.model=J||"rgb",W=l[this.model].channels;let Z=Array.prototype.slice.call($,0,W);this.color=q1(Z,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 Z=Object.keys($);if("alpha"in $)Z.splice(Z.indexOf("alpha"),1),this.valpha=typeof $.alpha==="number"?$.alpha:0;let U=Z.sort().join("");if(!(U in R1))throw new Error("Unable to parse color from object: "+JSON.stringify($));this.model=R1[U];let{labels:Y}=l[this.model],Q=[];for(F=0;F<Y.length;F++)Q.push($[Y[F]]);this.color=q1(Q)}if(t2[this.model]){W=l[this.model].channels;for(F=0;F<W;F++){let Z=t2[this.model][F];if(Z)this.color[F]=Z(this.color[F])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}M.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string($){let J=this.model in N2.to?this:this.rgb();J=J.round(typeof $==="number"?$:1);let F=J.valpha===1?J.color:[...J.color,this.valpha];return N2.to[J.model](F)},percentString($){let J=this.rgb().round(typeof $==="number"?$:1),F=J.valpha===1?J.color:[...J.color,this.valpha];return N2.to.rgb.percent(F)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let $={},{channels:J}=l[this.model],{labels:F}=l[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 M([...this.color.map(x8($)),this.valpha],this.model)},alpha($){if($!==void 0)return new M([...this.color,Math.max(0,Math.min(1,$))],this.model);return this.valpha},red:R("rgb",0,P(255)),green:R("rgb",1,P(255)),blue:R("rgb",2,P(255)),hue:R(["hsl","hsv","hsl","hwb","hcg"],0,($)=>($%360+360)%360),saturationl:R("hsl",1,P(100)),lightness:R("hsl",2,P(100)),saturationv:R("hsv",1,P(100)),value:R("hsv",2,P(100)),chroma:R("hcg",1,P(100)),gray:R("hcg",2,P(100)),white:R("hwb",1,P(100)),wblack:R("hwb",2,P(100)),cyan:R("cmyk",0,P(100)),magenta:R("cmyk",1,P(100)),yellow:R("cmyk",2,P(100)),black:R("cmyk",3,P(100)),x:R("xyz",0,P(95.047)),y:R("xyz",1,P(100)),z:R("xyz",2,P(108.833)),l:R("lab",0,P(100)),a:R("lab",1),b:R("lab",2),keyword($){if($!==void 0)return new M($);return l[this.model].keyword(this.color)},hex($){if($!==void 0)return new M($);return N2.to.hex(this.rgb().round().color)},hexa($){if($!==void 0)return new M($);let J=this.rgb().round().color,F=Math.round(this.valpha*255).toString(16).toUpperCase();if(F.length===1)F="0"+F;return N2.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 Z=W/255;J[F]=Z<=0.04045?Z/12.92:((Z+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 M.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(),Z=J===void 0?0.5:J,U=2*Z-1,Y=F.alpha()-W.alpha(),Q=((U*Y===-1?U:(U+Y)/(1+U*Y))+1)/2,K=1-Q;return M.rgb(Q*F.red()+K*W.red(),Q*F.green()+K*W.green(),Q*F.blue()+K*W.blue(),F.alpha()*Z+W.alpha()*(1-Z))}};for(let $ of Object.keys(l)){if(z5.includes($))continue;let{channels:J}=l[$];M.prototype[$]=function(...F){if(this.model===$)return new M(this);if(F.length>0)return new M(F,$);return new M([...f8(l[this.model][$].raw(this.color)),this.valpha],$)},M[$]=function(...F){let W=F[0];if(typeof W==="number")W=q1(F,J);return new M(W,$)}}function k8($,J){return Number($.toFixed(J))}function x8($){return function(J){return k8(J,$)}}function R($,J,F){$=Array.isArray($)?$:[$];for(let W of $)(t2[W]||(t2[W]=[]))[J]=F;return $=$[0],function(W){let Z;if(W!==void 0){if(F)W=F(W);return Z=this[$](),Z.color[J]=W,Z}if(Z=this[$]().color[J],F)Z=F(Z);return Z}}function P($){return function(J){return Math.max(0,Math.min($,J))}}function f8($){return Array.isArray($)?$:[$]}function q1($,J){for(let F=0;F<J;F++)if(typeof $[F]!=="number")$[F]=0;return $}D5.exports=M});var A5=V((A9,E5)=>{var O8=i2(),L=p(),W2=P2(),b8={left:"low",center:"centre",centre:"centre",right:"high"};function _5($){let{raw:J,density:F,limitInputPixels:W,ignoreIcc:Z,unlimited:U,sequentialRead:Y,failOn:Q,failOnError:K,animated:G,page:I,pages:N,subifd:z}=$;return[J,F,W,Z,U,Y,Q,K,G,I,N,z].some(L.defined)?{raw:J,density:F,limitInputPixels:W,ignoreIcc:Z,unlimited:U,sequentialRead:Y,failOn:Q,failOnError:K,animated:G,page:I,pages:N,subifd:z}:void 0}function d8($,J,F){let W={failOn:"warning",limitInputPixels:Math.pow(16383,2),ignoreIcc:!1,unlimited:!1,sequentialRead:!0};if(L.string($))W.file=$;else if(L.buffer($)){if($.length===0)throw Error("Input Buffer is empty");W.buffer=$}else if(L.arrayBuffer($)){if($.byteLength===0)throw Error("Input bit Array is empty");W.buffer=Buffer.from($,0,$.byteLength)}else if(L.typedArray($)){if($.length===0)throw Error("Input Bit Array is empty");W.buffer=Buffer.from($.buffer,$.byteOffset,$.byteLength)}else if(L.plainObject($)&&!L.defined(J)){if(J=$,_5(J))W.buffer=[]}else if(!L.defined($)&&!L.defined(J)&&L.object(F)&&F.allowStream)W.buffer=[];else throw new Error(`Unsupported input '${$}' of type ${typeof $}${L.defined(J)?` when also providing options of type ${typeof J}`:""}`);if(L.object(J)){if(L.defined(J.failOnError))if(L.bool(J.failOnError))W.failOn=J.failOnError?"warning":"none";else throw L.invalidParameterError("failOnError","boolean",J.failOnError);if(L.defined(J.failOn))if(L.string(J.failOn)&&L.inArray(J.failOn,["none","truncated","error","warning"]))W.failOn=J.failOn;else throw L.invalidParameterError("failOn","one of: none, truncated, error, warning",J.failOn);if(L.defined(J.density))if(L.inRange(J.density,1,1e5))W.density=J.density;else throw L.invalidParameterError("density","number between 1 and 100000",J.density);if(L.defined(J.ignoreIcc))if(L.bool(J.ignoreIcc))W.ignoreIcc=J.ignoreIcc;else throw L.invalidParameterError("ignoreIcc","boolean",J.ignoreIcc);if(L.defined(J.limitInputPixels))if(L.bool(J.limitInputPixels))W.limitInputPixels=J.limitInputPixels?Math.pow(16383,2):0;else if(L.integer(J.limitInputPixels)&&L.inRange(J.limitInputPixels,0,Number.MAX_SAFE_INTEGER))W.limitInputPixels=J.limitInputPixels;else throw L.invalidParameterError("limitInputPixels","positive integer",J.limitInputPixels);if(L.defined(J.unlimited))if(L.bool(J.unlimited))W.unlimited=J.unlimited;else throw L.invalidParameterError("unlimited","boolean",J.unlimited);if(L.defined(J.sequentialRead))if(L.bool(J.sequentialRead))W.sequentialRead=J.sequentialRead;else throw L.invalidParameterError("sequentialRead","boolean",J.sequentialRead);if(L.defined(J.raw))if(L.object(J.raw)&&L.integer(J.raw.width)&&J.raw.width>0&&L.integer(J.raw.height)&&J.raw.height>0&&L.integer(J.raw.channels)&&L.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(L.defined(J.animated))if(L.bool(J.animated))W.pages=J.animated?-1:1;else throw L.invalidParameterError("animated","boolean",J.animated);if(L.defined(J.pages))if(L.integer(J.pages)&&L.inRange(J.pages,-1,1e5))W.pages=J.pages;else throw L.invalidParameterError("pages","integer between -1 and 100000",J.pages);if(L.defined(J.page))if(L.integer(J.page)&&L.inRange(J.page,0,1e5))W.page=J.page;else throw L.invalidParameterError("page","integer between 0 and 100000",J.page);if(L.defined(J.level))if(L.integer(J.level)&&L.inRange(J.level,0,256))W.level=J.level;else throw L.invalidParameterError("level","integer between 0 and 256",J.level);if(L.defined(J.subifd))if(L.integer(J.subifd)&&L.inRange(J.subifd,-1,1e5))W.subifd=J.subifd;else throw L.invalidParameterError("subifd","integer between -1 and 100000",J.subifd);if(L.defined(J.create))if(L.object(J.create)&&L.integer(J.create.width)&&J.create.width>0&&L.integer(J.create.height)&&J.create.height>0&&L.integer(J.create.channels)){if(W.createWidth=J.create.width,W.createHeight=J.create.height,W.createChannels=J.create.channels,L.defined(J.create.noise)){if(!L.object(J.create.noise))throw new Error("Expected noise to be an object");if(!L.inArray(J.create.noise.type,["gaussian"]))throw new Error("Only gaussian noise is supported at the moment");if(!L.inRange(J.create.channels,1,4))throw L.invalidParameterError("create.channels","number between 1 and 4",J.create.channels);if(W.createNoiseType=J.create.noise.type,L.number(J.create.noise.mean)&&L.inRange(J.create.noise.mean,0,1e4))W.createNoiseMean=J.create.noise.mean;else throw L.invalidParameterError("create.noise.mean","number between 0 and 10000",J.create.noise.mean);if(L.number(J.create.noise.sigma)&&L.inRange(J.create.noise.sigma,0,1e4))W.createNoiseSigma=J.create.noise.sigma;else throw L.invalidParameterError("create.noise.sigma","number between 0 and 10000",J.create.noise.sigma)}else if(L.defined(J.create.background)){if(!L.inRange(J.create.channels,3,4))throw L.invalidParameterError("create.channels","number between 3 and 4",J.create.channels);let Z=O8(J.create.background);W.createBackground=[Z.red(),Z.green(),Z.blue(),Math.round(Z.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(L.defined(J.text))if(L.object(J.text)&&L.string(J.text.text)){if(W.textValue=J.text.text,L.defined(J.text.height)&&L.defined(J.text.dpi))throw new Error("Expected only one of dpi or height");if(L.defined(J.text.font))if(L.string(J.text.font))W.textFont=J.text.font;else throw L.invalidParameterError("text.font","string",J.text.font);if(L.defined(J.text.fontfile))if(L.string(J.text.fontfile))W.textFontfile=J.text.fontfile;else throw L.invalidParameterError("text.fontfile","string",J.text.fontfile);if(L.defined(J.text.width))if(L.integer(J.text.width)&&J.text.width>0)W.textWidth=J.text.width;else throw L.invalidParameterError("text.width","positive integer",J.text.width);if(L.defined(J.text.height))if(L.integer(J.text.height)&&J.text.height>0)W.textHeight=J.text.height;else throw L.invalidParameterError("text.height","positive integer",J.text.height);if(L.defined(J.text.align))if(L.string(J.text.align)&&L.string(this.constructor.align[J.text.align]))W.textAlign=this.constructor.align[J.text.align];else throw L.invalidParameterError("text.align","valid alignment",J.text.align);if(L.defined(J.text.justify))if(L.bool(J.text.justify))W.textJustify=J.text.justify;else throw L.invalidParameterError("text.justify","boolean",J.text.justify);if(L.defined(J.text.dpi))if(L.integer(J.text.dpi)&&L.inRange(J.text.dpi,1,1e6))W.textDpi=J.text.dpi;else throw L.invalidParameterError("text.dpi","integer between 1 and 1000000",J.text.dpi);if(L.defined(J.text.rgba))if(L.bool(J.text.rgba))W.textRgba=J.text.rgba;else throw L.invalidParameterError("text.rgba","bool",J.text.rgba);if(L.defined(J.text.spacing))if(L.integer(J.text.spacing)&&L.inRange(J.text.spacing,-1e6,1e6))W.textSpacing=J.text.spacing;else throw L.invalidParameterError("text.spacing","integer between -1000000 and 1000000",J.text.spacing);if(L.defined(J.text.wrap))if(L.string(J.text.wrap)&&L.inArray(J.text.wrap,["word","char","word-char","none"]))W.textWrap=J.text.wrap;else throw L.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(L.defined(J))throw new Error("Invalid input options "+J);return W}function v8($,J,F){if(Array.isArray(this.options.input.buffer))if(L.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 g8(){if(this._isStreamInput())this.options.input.buffer=Buffer.concat(this.options.input.buffer)}function h8(){return Array.isArray(this.options.input.buffer)}function m8($){let J=Error();if(L.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),W2.metadata(this.options,(F,W)=>{if(F)$(L.nativeError(F,J));else $(null,W)})});else W2.metadata(this.options,(F,W)=>{if(F)$(L.nativeError(F,J));else $(null,W)});return this}else if(this._isStreamInput())return new Promise((F,W)=>{let Z=()=>{this._flattenBufferIn(),W2.metadata(this.options,(U,Y)=>{if(U)W(L.nativeError(U,J));else F(Y)})};if(this.writableFinished)Z();else this.once("finish",Z)});else return new Promise((F,W)=>{W2.metadata(this.options,(Z,U)=>{if(Z)W(L.nativeError(Z,J));else F(U)})})}function l8($){let J=Error();if(L.fn($)){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),W2.stats(this.options,(F,W)=>{if(F)$(L.nativeError(F,J));else $(null,W)})});else W2.stats(this.options,(F,W)=>{if(F)$(L.nativeError(F,J));else $(null,W)});return this}else if(this._isStreamInput())return new Promise((F,W)=>{this.on("finish",function(){this._flattenBufferIn(),W2.stats(this.options,(Z,U)=>{if(Z)W(L.nativeError(Z,J));else F(U)})})});else return new Promise((F,W)=>{W2.stats(this.options,(Z,U)=>{if(Z)W(L.nativeError(Z,J));else F(U)})})}E5.exports=function($){Object.assign($.prototype,{_inputOptionsFromObject:_5,_createInputDescriptor:d8,_write:v8,_flattenBufferIn:g8,_isStreamInput:h8,metadata:m8,stats:l8}),$.align=b8}});var M5=V((R9,C5)=>{var j=p(),q5={center:0,centre:0,north:1,east:2,south:3,west:4,northeast:5,southeast:6,southwest:7,northwest:8},P5={top:1,right:2,bottom:3,left:4,"right top":5,"right bottom":6,"left bottom":7,"left top":8},R5={background:"background",copy:"copy",repeat:"repeat",mirror:"mirror"},S5={entropy:16,attention:17},P1={nearest:"nearest",linear:"linear",cubic:"cubic",mitchell:"mitchell",lanczos2:"lanczos2",lanczos3:"lanczos3"},c8={contain:"contain",cover:"cover",fill:"fill",inside:"inside",outside:"outside"},u8={contain:"embed",cover:"crop",fill:"ignore_aspect",inside:"max",outside:"min"};function S1($){return $.angle%360!==0||$.useExifOrientation===!0||$.rotationAngle!==0}function o2($){return $.width!==-1||$.height!==-1}function a8($,J,F){if(o2(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(j.defined($))if(j.object($)&&!j.defined(F))F=$;else if(j.integer($)&&$>0)this.options.width=$;else throw j.invalidParameterError("width","positive integer",$);else this.options.width=-1;if(j.defined(J))if(j.integer(J)&&J>0)this.options.height=J;else throw j.invalidParameterError("height","positive integer",J);else this.options.height=-1;if(j.object(F)){if(j.defined(F.width))if(j.integer(F.width)&&F.width>0)this.options.width=F.width;else throw j.invalidParameterError("width","positive integer",F.width);if(j.defined(F.height))if(j.integer(F.height)&&F.height>0)this.options.height=F.height;else throw j.invalidParameterError("height","positive integer",F.height);if(j.defined(F.fit)){let W=u8[F.fit];if(j.string(W))this.options.canvas=W;else throw j.invalidParameterError("fit","valid fit",F.fit)}if(j.defined(F.position)){let W=j.integer(F.position)?F.position:S5[F.position]||P5[F.position]||q5[F.position];if(j.integer(W)&&(j.inRange(W,0,8)||j.inRange(W,16,17)))this.options.position=W;else throw j.invalidParameterError("position","valid position/gravity/strategy",F.position)}if(this._setBackgroundColourOption("resizeBackground",F.background),j.defined(F.kernel))if(j.string(P1[F.kernel]))this.options.kernel=P1[F.kernel];else throw j.invalidParameterError("kernel","valid kernel name",F.kernel);if(j.defined(F.withoutEnlargement))this._setBooleanOption("withoutEnlargement",F.withoutEnlargement);if(j.defined(F.withoutReduction))this._setBooleanOption("withoutReduction",F.withoutReduction);if(j.defined(F.fastShrinkOnLoad))this._setBooleanOption("fastShrinkOnLoad",F.fastShrinkOnLoad)}if(S1(this.options)&&o2(this.options))this.options.rotateBeforePreExtract=!0;return this}function r8($){if(j.integer($)&&$>0)this.options.extendTop=$,this.options.extendBottom=$,this.options.extendLeft=$,this.options.extendRight=$;else if(j.object($)){if(j.defined($.top))if(j.integer($.top)&&$.top>=0)this.options.extendTop=$.top;else throw j.invalidParameterError("top","positive integer",$.top);if(j.defined($.bottom))if(j.integer($.bottom)&&$.bottom>=0)this.options.extendBottom=$.bottom;else throw j.invalidParameterError("bottom","positive integer",$.bottom);if(j.defined($.left))if(j.integer($.left)&&$.left>=0)this.options.extendLeft=$.left;else throw j.invalidParameterError("left","positive integer",$.left);if(j.defined($.right))if(j.integer($.right)&&$.right>=0)this.options.extendRight=$.right;else throw j.invalidParameterError("right","positive integer",$.right);if(this._setBackgroundColourOption("extendBackground",$.background),j.defined($.extendWith))if(j.string(R5[$.extendWith]))this.options.extendWith=R5[$.extendWith];else throw j.invalidParameterError("extendWith","one of: background, copy, repeat, mirror",$.extendWith)}else throw j.invalidParameterError("extend","integer or object",$);return this}function e8($){let J=o2(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(j.integer(W)&&W>=0)this.options[F+(F==="left"||F==="top"?"Offset":"")+J]=W;else throw j.invalidParameterError(F,"integer",W)},this),S1(this.options)&&!o2(this.options)){if(this.options.widthPre===-1||this.options.widthPost===-1)this.options.rotateBeforePreExtract=!0}return this}function p8($){if(this.options.trimThreshold=10,j.defined($))if(j.object($)){if(j.defined($.background))this._setBackgroundColourOption("trimBackground",$.background);if(j.defined($.threshold))if(j.number($.threshold)&&$.threshold>=0)this.options.trimThreshold=$.threshold;else throw j.invalidParameterError("threshold","positive number",$.threshold);if(j.defined($.lineArt))this._setBooleanOption("trimLineArt",$.lineArt)}else throw j.invalidParameterError("trim","object",$);if(S1(this.options))this.options.rotateBeforePreExtract=!0;return this}C5.exports=function($){Object.assign($.prototype,{resize:a8,extend:r8,extract:e8,trim:p8}),$.gravity=q5,$.strategy=S5,$.kernel=P1,$.fit=c8,$.position=P5}});var x5=V((q9,k5)=>{var D=p(),C1={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 n8($){if(!Array.isArray($))throw D.invalidParameterError("images to composite","array",$);return this.options.composite=$.map((J)=>{if(!D.object(J))throw D.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(D.defined(J.blend))if(D.string(C1[J.blend]))W.blend=C1[J.blend];else throw D.invalidParameterError("blend","valid blend name",J.blend);if(D.defined(J.tile))if(D.bool(J.tile))W.tile=J.tile;else throw D.invalidParameterError("tile","boolean",J.tile);if(D.defined(J.left))if(D.integer(J.left))W.left=J.left;else throw D.invalidParameterError("left","integer",J.left);if(D.defined(J.top))if(D.integer(J.top))W.top=J.top;else throw D.invalidParameterError("top","integer",J.top);if(D.defined(J.top)!==D.defined(J.left))throw new Error("Expected both left and top to be set");else W.hasOffset=D.integer(J.top)&&D.integer(J.left);if(D.defined(J.gravity))if(D.integer(J.gravity)&&D.inRange(J.gravity,0,8))W.gravity=J.gravity;else if(D.string(J.gravity)&&D.integer(this.constructor.gravity[J.gravity]))W.gravity=this.constructor.gravity[J.gravity];else throw D.invalidParameterError("gravity","valid gravity",J.gravity);if(D.defined(J.premultiplied))if(D.bool(J.premultiplied))W.premultiplied=J.premultiplied;else throw D.invalidParameterError("premultiplied","boolean",J.premultiplied);return W}),this}k5.exports=function($){$.prototype.composite=n8,$.blend=C1}});var b5=V((P9,O5)=>{var s8=i2(),w=p(),f5={integer:"integer",float:"float",approximate:"approximate"};function t8($,J){if(this.options.useExifOrientation||this.options.angle||this.options.rotationAngle)this.options.debuglog("ignoring previous rotate options");if(!w.defined($))this.options.useExifOrientation=!0;else if(w.integer($)&&!($%90))this.options.angle=$;else if(w.number($)){if(this.options.rotationAngle=$,w.object(J)&&J.background){let F=s8(J.background);this.options.rotationBackground=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}}else throw w.invalidParameterError("angle","numeric",$);return this}function i8($){return this.options.flip=w.bool($)?$:!0,this}function o8($){return this.options.flop=w.bool($)?$:!0,this}function $6($,J){let F=[].concat(...$);if(F.length===4&&F.every(w.number))this.options.affineMatrix=F;else throw w.invalidParameterError("matrix","1x4 or 2x2 array",$);if(w.defined(J))if(w.object(J)){if(this._setBackgroundColourOption("affineBackground",J.background),w.defined(J.idx))if(w.number(J.idx))this.options.affineIdx=J.idx;else throw w.invalidParameterError("options.idx","number",J.idx);if(w.defined(J.idy))if(w.number(J.idy))this.options.affineIdy=J.idy;else throw w.invalidParameterError("options.idy","number",J.idy);if(w.defined(J.odx))if(w.number(J.odx))this.options.affineOdx=J.odx;else throw w.invalidParameterError("options.odx","number",J.odx);if(w.defined(J.ody))if(w.number(J.ody))this.options.affineOdy=J.ody;else throw w.invalidParameterError("options.ody","number",J.ody);if(w.defined(J.interpolator))if(w.inArray(J.interpolator,Object.values(this.constructor.interpolators)))this.options.affineInterpolator=J.interpolator;else throw w.invalidParameterError("options.interpolator","valid interpolator name",J.interpolator)}else throw w.invalidParameterError("options","object",J);return this}function J6($,J,F){if(!w.defined($))this.options.sharpenSigma=-1;else if(w.bool($))this.options.sharpenSigma=$?-1:0;else if(w.number($)&&w.inRange($,0.01,1e4)){if(this.options.sharpenSigma=$,w.defined(J))if(w.number(J)&&w.inRange(J,0,1e4))this.options.sharpenM1=J;else throw w.invalidParameterError("flat","number between 0 and 10000",J);if(w.defined(F))if(w.number(F)&&w.inRange(F,0,1e4))this.options.sharpenM2=F;else throw w.invalidParameterError("jagged","number between 0 and 10000",F)}else if(w.plainObject($)){if(w.number($.sigma)&&w.inRange($.sigma,0.000001,10))this.options.sharpenSigma=$.sigma;else throw w.invalidParameterError("options.sigma","number between 0.000001 and 10",$.sigma);if(w.defined($.m1))if(w.number($.m1)&&w.inRange($.m1,0,1e6))this.options.sharpenM1=$.m1;else throw w.invalidParameterError("options.m1","number between 0 and 1000000",$.m1);if(w.defined($.m2))if(w.number($.m2)&&w.inRange($.m2,0,1e6))this.options.sharpenM2=$.m2;else throw w.invalidParameterError("options.m2","number between 0 and 1000000",$.m2);if(w.defined($.x1))if(w.number($.x1)&&w.inRange($.x1,0,1e6))this.options.sharpenX1=$.x1;else throw w.invalidParameterError("options.x1","number between 0 and 1000000",$.x1);if(w.defined($.y2))if(w.number($.y2)&&w.inRange($.y2,0,1e6))this.options.sharpenY2=$.y2;else throw w.invalidParameterError("options.y2","number between 0 and 1000000",$.y2);if(w.defined($.y3))if(w.number($.y3)&&w.inRange($.y3,0,1e6))this.options.sharpenY3=$.y3;else throw w.invalidParameterError("options.y3","number between 0 and 1000000",$.y3)}else throw w.invalidParameterError("sigma","number between 0.01 and 10000",$);return this}function F6($){if(!w.defined($))this.options.medianSize=3;else if(w.integer($)&&w.inRange($,1,1000))this.options.medianSize=$;else throw w.invalidParameterError("size","integer between 1 and 1000",$);return this}function W6($){let J;if(w.number($))J=$;else if(w.plainObject($)){if(!w.number($.sigma))throw w.invalidParameterError("options.sigma","number between 0.3 and 1000",J);if(J=$.sigma,"precision"in $)if(w.string(f5[$.precision]))this.options.precision=f5[$.precision];else throw w.invalidParameterError("precision","one of: integer, float, approximate",$.precision);if("minAmplitude"in $)if(w.number($.minAmplitude)&&w.inRange($.minAmplitude,0.001,1))this.options.minAmpl=$.minAmplitude;else throw w.invalidParameterError("minAmplitude","number between 0.001 and 1",$.minAmplitude)}if(!w.defined($))this.options.blurSigma=-1;else if(w.bool($))this.options.blurSigma=$?-1:0;else if(w.number(J)&&w.inRange(J,0.3,1000))this.options.blurSigma=J;else throw w.invalidParameterError("sigma","number between 0.3 and 1000",J);return this}function Z6($){if(this.options.flatten=w.bool($)?$:!0,w.object($))this._setBackgroundColourOption("flattenBackground",$.background);return this}function U6(){return this.options.unflatten=!0,this}function B6($,J){if(!w.defined($))this.options.gamma=2.2;else if(w.number($)&&w.inRange($,1,3))this.options.gamma=$;else throw w.invalidParameterError("gamma","number between 1.0 and 3.0",$);if(!w.defined(J))this.options.gammaOut=this.options.gamma;else if(w.number(J)&&w.inRange(J,1,3))this.options.gammaOut=J;else throw w.invalidParameterError("gammaOut","number between 1.0 and 3.0",J);return this}function Y6($){if(this.options.negate=w.bool($)?$:!0,w.plainObject($)&&"alpha"in $)if(!w.bool($.alpha))throw w.invalidParameterError("alpha","should be boolean value",$.alpha);else this.options.negateAlpha=$.alpha;return this}function Q6($){if(w.plainObject($)){if(w.defined($.lower))if(w.number($.lower)&&w.inRange($.lower,0,99))this.options.normaliseLower=$.lower;else throw w.invalidParameterError("lower","number between 0 and 99",$.lower);if(w.defined($.upper))if(w.number($.upper)&&w.inRange($.upper,1,100))this.options.normaliseUpper=$.upper;else throw w.invalidParameterError("upper","number between 1 and 100",$.upper)}if(this.options.normaliseLower>=this.options.normaliseUpper)throw w.invalidParameterError("range","lower to be less than upper",`${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);return this.options.normalise=!0,this}function K6($){return this.normalise($)}function w6($){if(w.plainObject($)){if(w.integer($.width)&&$.width>0)this.options.claheWidth=$.width;else throw w.invalidParameterError("width","integer greater than zero",$.width);if(w.integer($.height)&&$.height>0)this.options.claheHeight=$.height;else throw w.invalidParameterError("height","integer greater than zero",$.height);if(w.defined($.maxSlope))if(w.integer($.maxSlope)&&w.inRange($.maxSlope,0,100))this.options.claheMaxSlope=$.maxSlope;else throw w.invalidParameterError("maxSlope","integer between 0 and 100",$.maxSlope)}else throw w.invalidParameterError("options","plain object",$);return this}function L6($){if(!w.object($)||!Array.isArray($.kernel)||!w.integer($.width)||!w.integer($.height)||!w.inRange($.width,3,1001)||!w.inRange($.height,3,1001)||$.height*$.width!==$.kernel.length)throw new Error("Invalid convolution kernel");if(!w.integer($.scale))$.scale=$.kernel.reduce(function(J,F){return J+F},0);if($.scale<1)$.scale=1;if(!w.integer($.offset))$.offset=0;return this.options.convKernel=$,this}function G6($,J){if(!w.defined($))this.options.threshold=128;else if(w.bool($))this.options.threshold=$?128:0;else if(w.integer($)&&w.inRange($,0,255))this.options.threshold=$;else throw w.invalidParameterError("threshold","integer between 0 and 255",$);if(!w.object(J)||J.greyscale===!0||J.grayscale===!0)this.options.thresholdGrayscale=!0;else this.options.thresholdGrayscale=!1;return this}function I6($,J,F){if(this.options.boolean=this._createInputDescriptor($,F),w.string(J)&&w.inArray(J,["and","or","eor"]))this.options.booleanOp=J;else throw w.invalidParameterError("operator","one of: and, or, eor",J);return this}function H6($,J){if(!w.defined($)&&w.number(J))$=1;else if(w.number($)&&!w.defined(J))J=0;if(!w.defined($))this.options.linearA=[];else if(w.number($))this.options.linearA=[$];else if(Array.isArray($)&&$.length&&$.every(w.number))this.options.linearA=$;else throw w.invalidParameterError("a","number or array of numbers",$);if(!w.defined(J))this.options.linearB=[];else if(w.number(J))this.options.linearB=[J];else if(Array.isArray(J)&&J.length&&J.every(w.number))this.options.linearB=J;else throw w.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 y6($){if(!Array.isArray($))throw w.invalidParameterError("inputMatrix","array",$);if($.length!==3&&$.length!==4)throw w.invalidParameterError("inputMatrix","3x3 or 4x4 array",$.length);let J=$.flat().map(Number);if(J.length!==9&&J.length!==16)throw w.invalidParameterError("inputMatrix","cardinality of 9 or 16",J.length);return this.options.recombMatrix=J,this}function X6($){if(!w.plainObject($))throw w.invalidParameterError("options","plain object",$);if("brightness"in $)if(w.number($.brightness)&&$.brightness>=0)this.options.brightness=$.brightness;else throw w.invalidParameterError("brightness","number above zero",$.brightness);if("saturation"in $)if(w.number($.saturation)&&$.saturation>=0)this.options.saturation=$.saturation;else throw w.invalidParameterError("saturation","number above zero",$.saturation);if("hue"in $)if(w.integer($.hue))this.options.hue=$.hue%360;else throw w.invalidParameterError("hue","number",$.hue);if("lightness"in $)if(w.number($.lightness))this.options.lightness=$.lightness;else throw w.invalidParameterError("lightness","number",$.lightness);return this}O5.exports=function($){Object.assign($.prototype,{rotate:t8,flip:i8,flop:o8,affine:$6,sharpen:J6,median:F6,blur:W6,flatten:Z6,unflatten:U6,gamma:B6,negate:Y6,normalise:Q6,normalize:K6,clahe:w6,convolve:L6,threshold:G6,boolean:I6,linear:H6,recomb:y6,modulate:X6})}});var g5=V((S9,v5)=>{var N6=i2(),t=p(),d5={multiband:"multiband","b-w":"b-w",bw:"b-w",cmyk:"cmyk",srgb:"srgb"};function j6($){return this._setBackgroundColourOption("tint",$),this}function T6($){return this.options.greyscale=t.bool($)?$:!0,this}function V6($){return this.greyscale($)}function z6($){if(!t.string($))throw t.invalidParameterError("colourspace","string",$);return this.options.colourspacePipeline=$,this}function D6($){return this.pipelineColourspace($)}function _6($){if(!t.string($))throw t.invalidParameterError("colourspace","string",$);return this.options.colourspace=$,this}function E6($){return this.toColourspace($)}function A6($,J){if(t.defined(J))if(t.object(J)||t.string(J)){let F=N6(J);this.options[$]=[F.red(),F.green(),F.blue(),Math.round(F.alpha()*255)]}else throw t.invalidParameterError("background","object or string",J)}v5.exports=function($){Object.assign($.prototype,{tint:j6,greyscale:T6,grayscale:V6,pipelineColourspace:z6,pipelineColorspace:D6,toColourspace:_6,toColorspace:E6,_setBackgroundColourOption:A6}),$.colourspace=d5,$.colorspace=d5}});var m5=V((C9,h5)=>{var s=p(),R6={and:"and",or:"or",eor:"eor"};function q6(){return this.options.removeAlpha=!0,this}function P6($){if(s.defined($))if(s.number($)&&s.inRange($,0,1))this.options.ensureAlpha=$;else throw s.invalidParameterError("alpha","number between 0 and 1",$);else this.options.ensureAlpha=1;return this}function S6($){let J={red:0,green:1,blue:2,alpha:3};if(Object.keys(J).includes($))$=J[$];if(s.integer($)&&s.inRange($,0,4))this.options.extractChannel=$;else throw s.invalidParameterError("channel","integer or one of: red, green, blue, alpha",$);return this}function C6($,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 M6($){if(s.string($)&&s.inArray($,["and","or","eor"]))this.options.bandBoolOp=$;else throw s.invalidParameterError("boolOp","one of: and, or, eor",$);return this}h5.exports=function($){Object.assign($.prototype,{removeAlpha:q6,ensureAlpha:P6,extractChannel:S6,joinChannel:C6,bandbool:M6}),$.bool=R6}});var e5=V((M9,r5)=>{var M1=A("path"),B=p(),j2=P2(),l5=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"]]),k6=/\.(jp[2x]|j2[kc])$/i,c5=()=>new Error("JP2 output requires libvips with support for OpenJPEG"),u5=($)=>1<<31-Math.clz32(Math.ceil(Math.log2($)));function x6($,J){let F;if(!B.string($))F=new Error("Missing output file path");else if(B.string(this.options.input.file)&&M1.resolve(this.options.input.file)===M1.resolve($))F=new Error("Cannot use same file for input and output");else if(k6.test(M1.extname($))&&!this.constructor.format.jp2k.output.file)F=c5();if(F)if(B.fn(J))J(F);else return Promise.reject(F);else{this.options.fileOut=$;let W=Error();return this._pipeline(J,W)}return this}function f6($,J){if(B.object($))this._setBooleanOption("resolveWithObject",$.resolveWithObject);else if(this.options.resolveWithObject)this.options.resolveWithObject=!1;this.options.fileOut="";let F=Error();return this._pipeline(B.fn($)?$:J,F)}function O6(){return this.options.keepMetadata|=1,this}function b6($){if(B.object($))for(let[J,F]of Object.entries($))if(B.object(F))for(let[W,Z]of Object.entries(F))if(B.string(Z))this.options.withExif[`exif-${J.toLowerCase()}-${W}`]=Z;else throw B.invalidParameterError(`${J}.${W}`,"string",Z);else throw B.invalidParameterError(J,"object",F);else throw B.invalidParameterError("exif","object",$);return this.options.withExifMerge=!1,this.keepExif()}function d6($){return this.withExif($),this.options.withExifMerge=!0,this}function v6(){return this.options.keepMetadata|=8,this}function g6($,J){if(B.string($))this.options.withIccProfile=$;else throw B.invalidParameterError("icc","string",$);if(this.keepIccProfile(),B.object(J)){if(B.defined(J.attach))if(B.bool(J.attach)){if(!J.attach)this.options.keepMetadata&=-9}else throw B.invalidParameterError("attach","boolean",J.attach)}return this}function h6(){return this.options.keepMetadata=31,this}function m6($){if(this.keepMetadata(),this.withIccProfile("srgb"),B.object($)){if(B.defined($.orientation))if(B.integer($.orientation)&&B.inRange($.orientation,1,8))this.options.withMetadataOrientation=$.orientation;else throw B.invalidParameterError("orientation","integer between 1 and 8",$.orientation);if(B.defined($.density))if(B.number($.density)&&$.density>0)this.options.withMetadataDensity=$.density;else throw B.invalidParameterError("density","positive number",$.density);if(B.defined($.icc))this.withIccProfile($.icc);if(B.defined($.exif))this.withExifMerge($.exif)}return this}function l6($,J){let F=l5.get((B.object($)&&B.string($.id)?$.id:$).toLowerCase());if(!F)throw B.invalidParameterError("format",`one of: ${[...l5.keys()].join(", ")}`,$);return this[F](J)}function c6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.jpegQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.progressive))this._setBooleanOption("jpegProgressive",$.progressive);if(B.defined($.chromaSubsampling))if(B.string($.chromaSubsampling)&&B.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jpegChromaSubsampling=$.chromaSubsampling;else throw B.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);let J=B.bool($.optimizeCoding)?$.optimizeCoding:$.optimiseCoding;if(B.defined(J))this._setBooleanOption("jpegOptimiseCoding",J);if(B.defined($.mozjpeg))if(B.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 B.invalidParameterError("mozjpeg","boolean",$.mozjpeg);let F=B.bool($.trellisQuantization)?$.trellisQuantization:$.trellisQuantisation;if(B.defined(F))this._setBooleanOption("jpegTrellisQuantisation",F);if(B.defined($.overshootDeringing))this._setBooleanOption("jpegOvershootDeringing",$.overshootDeringing);let W=B.bool($.optimizeScans)?$.optimizeScans:$.optimiseScans;if(B.defined(W)){if(this._setBooleanOption("jpegOptimiseScans",W),W)this.options.jpegProgressive=!0}let Z=B.number($.quantizationTable)?$.quantizationTable:$.quantisationTable;if(B.defined(Z))if(B.integer(Z)&&B.inRange(Z,0,8))this.options.jpegQuantisationTable=Z;else throw B.invalidParameterError("quantisationTable","integer between 0 and 8",Z)}return this._updateFormatOut("jpeg",$)}function u6($){if(B.object($)){if(B.defined($.progressive))this._setBooleanOption("pngProgressive",$.progressive);if(B.defined($.compressionLevel))if(B.integer($.compressionLevel)&&B.inRange($.compressionLevel,0,9))this.options.pngCompressionLevel=$.compressionLevel;else throw B.invalidParameterError("compressionLevel","integer between 0 and 9",$.compressionLevel);if(B.defined($.adaptiveFiltering))this._setBooleanOption("pngAdaptiveFiltering",$.adaptiveFiltering);let J=$.colours||$.colors;if(B.defined(J))if(B.integer(J)&&B.inRange(J,2,256))this.options.pngBitdepth=u5(J);else throw B.invalidParameterError("colours","integer between 2 and 256",J);if(B.defined($.palette))this._setBooleanOption("pngPalette",$.palette);else if([$.quality,$.effort,$.colours,$.colors,$.dither].some(B.defined))this._setBooleanOption("pngPalette",!0);if(this.options.pngPalette){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,0,100))this.options.pngQuality=$.quality;else throw B.invalidParameterError("quality","integer between 0 and 100",$.quality);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,1,10))this.options.pngEffort=$.effort;else throw B.invalidParameterError("effort","integer between 1 and 10",$.effort);if(B.defined($.dither))if(B.number($.dither)&&B.inRange($.dither,0,1))this.options.pngDither=$.dither;else throw B.invalidParameterError("dither","number between 0.0 and 1.0",$.dither)}}return this._updateFormatOut("png",$)}function a6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.webpQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.alphaQuality))if(B.integer($.alphaQuality)&&B.inRange($.alphaQuality,0,100))this.options.webpAlphaQuality=$.alphaQuality;else throw B.invalidParameterError("alphaQuality","integer between 0 and 100",$.alphaQuality);if(B.defined($.lossless))this._setBooleanOption("webpLossless",$.lossless);if(B.defined($.nearLossless))this._setBooleanOption("webpNearLossless",$.nearLossless);if(B.defined($.smartSubsample))this._setBooleanOption("webpSmartSubsample",$.smartSubsample);if(B.defined($.preset))if(B.string($.preset)&&B.inArray($.preset,["default","photo","picture","drawing","icon","text"]))this.options.webpPreset=$.preset;else throw B.invalidParameterError("preset","one of: default, photo, picture, drawing, icon, text",$.preset);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,0,6))this.options.webpEffort=$.effort;else throw B.invalidParameterError("effort","integer between 0 and 6",$.effort);if(B.defined($.minSize))this._setBooleanOption("webpMinSize",$.minSize);if(B.defined($.mixed))this._setBooleanOption("webpMixed",$.mixed)}return a5($,this.options),this._updateFormatOut("webp",$)}function r6($){if(B.object($)){if(B.defined($.reuse))this._setBooleanOption("gifReuse",$.reuse);if(B.defined($.progressive))this._setBooleanOption("gifProgressive",$.progressive);let J=$.colours||$.colors;if(B.defined(J))if(B.integer(J)&&B.inRange(J,2,256))this.options.gifBitdepth=u5(J);else throw B.invalidParameterError("colours","integer between 2 and 256",J);if(B.defined($.effort))if(B.number($.effort)&&B.inRange($.effort,1,10))this.options.gifEffort=$.effort;else throw B.invalidParameterError("effort","integer between 1 and 10",$.effort);if(B.defined($.dither))if(B.number($.dither)&&B.inRange($.dither,0,1))this.options.gifDither=$.dither;else throw B.invalidParameterError("dither","number between 0.0 and 1.0",$.dither);if(B.defined($.interFrameMaxError))if(B.number($.interFrameMaxError)&&B.inRange($.interFrameMaxError,0,32))this.options.gifInterFrameMaxError=$.interFrameMaxError;else throw B.invalidParameterError("interFrameMaxError","number between 0.0 and 32.0",$.interFrameMaxError);if(B.defined($.interPaletteMaxError))if(B.number($.interPaletteMaxError)&&B.inRange($.interPaletteMaxError,0,256))this.options.gifInterPaletteMaxError=$.interPaletteMaxError;else throw B.invalidParameterError("interPaletteMaxError","number between 0.0 and 256.0",$.interPaletteMaxError)}return a5($,this.options),this._updateFormatOut("gif",$)}function e6($){if(!this.constructor.format.jp2k.output.buffer)throw c5();if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.jp2Quality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.lossless))if(B.bool($.lossless))this.options.jp2Lossless=$.lossless;else throw B.invalidParameterError("lossless","boolean",$.lossless);if(B.defined($.tileWidth))if(B.integer($.tileWidth)&&B.inRange($.tileWidth,1,32768))this.options.jp2TileWidth=$.tileWidth;else throw B.invalidParameterError("tileWidth","integer between 1 and 32768",$.tileWidth);if(B.defined($.tileHeight))if(B.integer($.tileHeight)&&B.inRange($.tileHeight,1,32768))this.options.jp2TileHeight=$.tileHeight;else throw B.invalidParameterError("tileHeight","integer between 1 and 32768",$.tileHeight);if(B.defined($.chromaSubsampling))if(B.string($.chromaSubsampling)&&B.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.jp2ChromaSubsampling=$.chromaSubsampling;else throw B.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling)}return this._updateFormatOut("jp2",$)}function a5($,J){if(B.object($)&&B.defined($.loop))if(B.integer($.loop)&&B.inRange($.loop,0,65535))J.loop=$.loop;else throw B.invalidParameterError("loop","integer between 0 and 65535",$.loop);if(B.object($)&&B.defined($.delay))if(B.integer($.delay)&&B.inRange($.delay,0,65535))J.delay=[$.delay];else if(Array.isArray($.delay)&&$.delay.every(B.integer)&&$.delay.every((F)=>B.inRange(F,0,65535)))J.delay=$.delay;else throw B.invalidParameterError("delay","integer or an array of integers between 0 and 65535",$.delay)}function p6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.tiffQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.bitdepth))if(B.integer($.bitdepth)&&B.inArray($.bitdepth,[1,2,4,8]))this.options.tiffBitdepth=$.bitdepth;else throw B.invalidParameterError("bitdepth","1, 2, 4 or 8",$.bitdepth);if(B.defined($.tile))this._setBooleanOption("tiffTile",$.tile);if(B.defined($.tileWidth))if(B.integer($.tileWidth)&&$.tileWidth>0)this.options.tiffTileWidth=$.tileWidth;else throw B.invalidParameterError("tileWidth","integer greater than zero",$.tileWidth);if(B.defined($.tileHeight))if(B.integer($.tileHeight)&&$.tileHeight>0)this.options.tiffTileHeight=$.tileHeight;else throw B.invalidParameterError("tileHeight","integer greater than zero",$.tileHeight);if(B.defined($.miniswhite))this._setBooleanOption("tiffMiniswhite",$.miniswhite);if(B.defined($.pyramid))this._setBooleanOption("tiffPyramid",$.pyramid);if(B.defined($.xres))if(B.number($.xres)&&$.xres>0)this.options.tiffXres=$.xres;else throw B.invalidParameterError("xres","number greater than zero",$.xres);if(B.defined($.yres))if(B.number($.yres)&&$.yres>0)this.options.tiffYres=$.yres;else throw B.invalidParameterError("yres","number greater than zero",$.yres);if(B.defined($.compression))if(B.string($.compression)&&B.inArray($.compression,["none","jpeg","deflate","packbits","ccittfax4","lzw","webp","zstd","jp2k"]))this.options.tiffCompression=$.compression;else throw B.invalidParameterError("compression","one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k",$.compression);if(B.defined($.predictor))if(B.string($.predictor)&&B.inArray($.predictor,["none","horizontal","float"]))this.options.tiffPredictor=$.predictor;else throw B.invalidParameterError("predictor","one of: none, horizontal, float",$.predictor);if(B.defined($.resolutionUnit))if(B.string($.resolutionUnit)&&B.inArray($.resolutionUnit,["inch","cm"]))this.options.tiffResolutionUnit=$.resolutionUnit;else throw B.invalidParameterError("resolutionUnit","one of: inch, cm",$.resolutionUnit)}return this._updateFormatOut("tiff",$)}function n6($){return this.heif({...$,compression:"av1"})}function s6($){if(B.object($)){if(B.string($.compression)&&B.inArray($.compression,["av1","hevc"]))this.options.heifCompression=$.compression;else throw B.invalidParameterError("compression","one of: av1, hevc",$.compression);if(B.defined($.quality))if(B.integer($.quality)&&B.inRange($.quality,1,100))this.options.heifQuality=$.quality;else throw B.invalidParameterError("quality","integer between 1 and 100",$.quality);if(B.defined($.lossless))if(B.bool($.lossless))this.options.heifLossless=$.lossless;else throw B.invalidParameterError("lossless","boolean",$.lossless);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,0,9))this.options.heifEffort=$.effort;else throw B.invalidParameterError("effort","integer between 0 and 9",$.effort);if(B.defined($.chromaSubsampling))if(B.string($.chromaSubsampling)&&B.inArray($.chromaSubsampling,["4:2:0","4:4:4"]))this.options.heifChromaSubsampling=$.chromaSubsampling;else throw B.invalidParameterError("chromaSubsampling","one of: 4:2:0, 4:4:4",$.chromaSubsampling);if(B.defined($.bitdepth))if(B.integer($.bitdepth)&&B.inArray($.bitdepth,[8,10,12])){if($.bitdepth!==8&&this.constructor.versions.heif)throw B.invalidParameterError("bitdepth when using prebuilt binaries",8,$.bitdepth);this.options.heifBitdepth=$.bitdepth}else throw B.invalidParameterError("bitdepth","8, 10 or 12",$.bitdepth)}else throw B.invalidParameterError("options","Object",$);return this._updateFormatOut("heif",$)}function t6($){if(B.object($)){if(B.defined($.quality))if(B.integer($.quality)&&B.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 B.invalidParameterError("quality","integer between 1 and 100",$.quality);else if(B.defined($.distance))if(B.number($.distance)&&B.inRange($.distance,0,15))this.options.jxlDistance=$.distance;else throw B.invalidParameterError("distance","number between 0.0 and 15.0",$.distance);if(B.defined($.decodingTier))if(B.integer($.decodingTier)&&B.inRange($.decodingTier,0,4))this.options.jxlDecodingTier=$.decodingTier;else throw B.invalidParameterError("decodingTier","integer between 0 and 4",$.decodingTier);if(B.defined($.lossless))if(B.bool($.lossless))this.options.jxlLossless=$.lossless;else throw B.invalidParameterError("lossless","boolean",$.lossless);if(B.defined($.effort))if(B.integer($.effort)&&B.inRange($.effort,3,9))this.options.jxlEffort=$.effort;else throw B.invalidParameterError("effort","integer between 3 and 9",$.effort)}return this._updateFormatOut("jxl",$)}function i6($){if(B.object($)){if(B.defined($.depth))if(B.string($.depth)&&B.inArray($.depth,["char","uchar","short","ushort","int","uint","float","complex","double","dpcomplex"]))this.options.rawDepth=$.depth;else throw B.invalidParameterError("depth","one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex",$.depth)}return this._updateFormatOut("raw")}function o6($){if(B.object($)){if(B.defined($.size))if(B.integer($.size)&&B.inRange($.size,1,8192))this.options.tileSize=$.size;else throw B.invalidParameterError("size","integer between 1 and 8192",$.size);if(B.defined($.overlap))if(B.integer($.overlap)&&B.inRange($.overlap,0,8192)){if($.overlap>this.options.tileSize)throw B.invalidParameterError("overlap",`<= size (${this.options.tileSize})`,$.overlap);this.options.tileOverlap=$.overlap}else throw B.invalidParameterError("overlap","integer between 0 and 8192",$.overlap);if(B.defined($.container))if(B.string($.container)&&B.inArray($.container,["fs","zip"]))this.options.tileContainer=$.container;else throw B.invalidParameterError("container","one of: fs, zip",$.container);if(B.defined($.layout))if(B.string($.layout)&&B.inArray($.layout,["dz","google","iiif","iiif3","zoomify"]))this.options.tileLayout=$.layout;else throw B.invalidParameterError("layout","one of: dz, google, iiif, iiif3, zoomify",$.layout);if(B.defined($.angle))if(B.integer($.angle)&&!($.angle%90))this.options.tileAngle=$.angle;else throw B.invalidParameterError("angle","positive/negative multiple of 90",$.angle);if(this._setBackgroundColourOption("tileBackground",$.background),B.defined($.depth))if(B.string($.depth)&&B.inArray($.depth,["onepixel","onetile","one"]))this.options.tileDepth=$.depth;else throw B.invalidParameterError("depth","one of: onepixel, onetile, one",$.depth);if(B.defined($.skipBlanks))if(B.integer($.skipBlanks)&&B.inRange($.skipBlanks,-1,65535))this.options.tileSkipBlanks=$.skipBlanks;else throw B.invalidParameterError("skipBlanks","integer between -1 and 255/65535",$.skipBlanks);else if(B.defined($.layout)&&$.layout==="google")this.options.tileSkipBlanks=5;let J=B.bool($.center)?$.center:$.centre;if(B.defined(J))this._setBooleanOption("tileCentre",J);if(B.defined($.id))if(B.string($.id))this.options.tileId=$.id;else throw B.invalidParameterError("id","string",$.id);if(B.defined($.basename))if(B.string($.basename))this.options.tileBasename=$.basename;else throw B.invalidParameterError("basename","string",$.basename)}if(B.inArray(this.options.formatOut,["jpeg","png","webp"]))this.options.tileFormat=this.options.formatOut;else if(this.options.formatOut!=="input")throw B.invalidParameterError("format","one of: jpeg, png, webp",this.options.formatOut);return this._updateFormatOut("dz")}function $7($){if(!B.plainObject($))throw B.invalidParameterError("options","object",$);if(B.integer($.seconds)&&B.inRange($.seconds,0,3600))this.options.timeoutSeconds=$.seconds;else throw B.invalidParameterError("seconds","integer between 0 and 3600",$.seconds);return this}function J7($,J){if(!(B.object(J)&&J.force===!1))this.options.formatOut=$;return this}function F7($,J){if(B.bool(J))this.options[$]=J;else throw B.invalidParameterError($,"boolean",J)}function W7(){if(!this.options.streamOut){this.options.streamOut=!0;let $=Error();this._pipeline(void 0,$)}}function Z7($,J){if(typeof $==="function"){if(this._isStreamInput())this.on("finish",()=>{this._flattenBufferIn(),j2.pipeline(this.options,(F,W,Z)=>{if(F)$(B.nativeError(F,J));else $(null,W,Z)})});else j2.pipeline(this.options,(F,W,Z)=>{if(F)$(B.nativeError(F,J));else $(null,W,Z)});return this}else if(this.options.streamOut){if(this._isStreamInput()){if(this.once("finish",()=>{this._flattenBufferIn(),j2.pipeline(this.options,(F,W,Z)=>{if(F)this.emit("error",B.nativeError(F,J));else this.emit("info",Z),this.push(W);this.push(null),this.on("end",()=>this.emit("close"))})}),this.streamInFinished)this.emit("finish")}else j2.pipeline(this.options,(F,W,Z)=>{if(F)this.emit("error",B.nativeError(F,J));else this.emit("info",Z),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(),j2.pipeline(this.options,(Z,U,Y)=>{if(Z)W(B.nativeError(Z,J));else if(this.options.resolveWithObject)F({data:U,info:Y});else F(U)})})});else return new Promise((F,W)=>{j2.pipeline(this.options,(Z,U,Y)=>{if(Z)W(B.nativeError(Z,J));else if(this.options.resolveWithObject)F({data:U,info:Y});else F(U)})})}r5.exports=function($){Object.assign($.prototype,{toFile:x6,toBuffer:f6,keepExif:O6,withExif:b6,withExifMerge:d6,keepIccProfile:v6,withIccProfile:g6,keepMetadata:h6,withMetadata:m6,toFormat:l6,jpeg:c6,jp2:e6,png:u6,webp:a6,tiff:p6,avif:n6,heif:s6,jxl:t6,gif:r6,raw:i6,tile:o6,timeout:$7,_updateFormatOut:J7,_setBooleanOption:F7,_read:W7,_pipeline:Z7})}});var t5=V((k9,s5)=>{var U7=A("events"),$1=A("detect-libc"),c=p(),{runtimePlatformArch:B7}=V1(),b=P2(),p5=B7(),k1=b.libvipsVersion(),Z2=b.format();Z2.heif.output.alias=["avif","heic"];Z2.jpeg.output.alias=["jpe","jpg"];Z2.tiff.output.alias=["tif"];Z2.jp2k.output.alias=["j2c","j2k","jp2","jpx"];var Y7={nearest:"nearest",bilinear:"bilinear",bicubic:"bicubic",locallyBoundedBicubic:"lbb",nohalo:"nohalo",vertexSplitQuadraticBasisSpline:"vsqbs"},T2={vips:k1.semver};if(!k1.isGlobal)if(!k1.isWasm)try{T2=A(`@img/sharp-${p5}/versions`)}catch($){try{T2=A(`@img/sharp-libvips-${p5}/versions`)}catch(J){}}else try{T2=(()=>{throw new Error("Cannot require module "+"@img/sharp-wasm32/versions");})()}catch($){}T2.sharp=j1().version;if(T2.heif&&Z2.heif)Z2.heif.input.fileSuffix=[".avif"],Z2.heif.output.alias=["avif"];function n5($){if(c.bool($))if($)return b.cache(50,20,100);else return b.cache(0,0,0);else if(c.object($))return b.cache($.memory,$.files,$.items);else return b.cache()}n5(!0);function Q7($){return b.concurrency(c.integer($)?$:null)}if($1.familySync()===$1.GLIBC&&!b._isUsingJemalloc())b.concurrency(1);else if($1.familySync()===$1.MUSL&&b.concurrency()===1024)b.concurrency(A("os").availableParallelism());var K7=new U7.EventEmitter;function w7(){return b.counters()}function L7($){return b.simd(c.bool($)?$:null)}function G7($){if(c.object($))if(Array.isArray($.operation)&&$.operation.every(c.string))b.block($.operation,!0);else throw c.invalidParameterError("operation","Array<string>",$.operation);else throw c.invalidParameterError("options","object",$)}function I7($){if(c.object($))if(Array.isArray($.operation)&&$.operation.every(c.string))b.block($.operation,!1);else throw c.invalidParameterError("operation","Array<string>",$.operation);else throw c.invalidParameterError("options","object",$)}s5.exports=function($){$.cache=n5,$.concurrency=Q7,$.counters=w7,$.simd=L7,$.format=Z2,$.interpolators=Y7,$.versions=T2,$.queue=K7,$.block=G7,$.unblock=I7}});var o5=V((f9,i5)=>{var i=Z5();A5()(i);M5()(i);x5()(i);b5()(i);g5()(i);m5()(i);e5()(i);t5()(i);i5.exports=i});import{AsyncLocalStorage as z4}from"async_hooks";class G2 extends d{service;static _name="BroadcastingServiceContainer";publishCb;context=new z4;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(([Z],[U])=>Z.length-U.length);for(let[Z,U]of W){let Y=new URLPattern({pathname:Z});if(Y.test({pathname:F.topic})){let Q=Y.exec({pathname:F.topic})?.pathname.groups,K=new U;if(await K.subscribe.call(K,Q))$.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 Z=F.split(";");for(let U of Z){let[Y,Q]=U.split("=");W.set(Y.trim(),Q.trim())}}this.context.run({headers:$,cookies:W},J)}}class J2{static async user(){let $=C.getStore(),J=G2.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 Z=$?.user;if(!Z)Z=(await q.use().getSession(F,W))?.user,$?.setUser(Z);if(Z)return Z;return null}static async guard($){let J=await J2.user();if(!J)throw new b2;try{if(!await $(J))throw new b2}catch(F){throw new b2}}static async guardSafe($){let J=await J2.user();if(!J)return!1;try{return await $(J)}catch(F){return!1}}static async authenticate($){await q.use().authenticate($)}static async createMagicLink($){return await q.use().createMagicLinkToken($)}}function e($,J){return $.replace(/:([^/]+)/g,(F,W)=>{let Z=W.endsWith("?"),U=Z?W.slice(0,-1):W,Y=J[U];if(Y===void 0){if(Z)return"";throw new Error(`Missing parameter: ${U}`)}return String(Y)}).replace(/\/\//g,"/")}class r1 extends a1{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 e1{static to($,...J){let[F={}]=J,{search:W={},params:Z={}}={params:{},...F},U=new URLSearchParams(W).toString();throw new r1([e($,Z),U.toString()].filter(Boolean).join("?"))}}function p1($,J){return $.replace(/{{([^}]+)}}/g,(F,W)=>{let Z=J[W];if(Z===void 0)throw new Error(`Missing parameter: ${W}`);return Z})}class _2{static scope($){return $}static translate($,...J){let F=a.use(),W=F.detectLocale(C.getStore().req),Z=F.translations.get(`${W}.server`)?.[$];if(!Z)return $;return p1(Z,J[0])}static getSupportedLocales(){return a.use().supportedLocales}static getDefaultLocale(){return a.use().service.defaultLocale}static locale(){return a.use().detectLocale(C.getStore().req)}static setLocale($=_2.locale()){let J=a.use(),F=$;if(!J.supportedLocales.includes($))F=J.service.defaultLocale;return C.getStore().setCookie("i18n-locale",F,{expires:new Date(Date.now()+31536000000)}),F}}var $4=H7(o5(),1);import{Buffer as y7}from"buffer";class k2 extends d{service;static _name="FileStorageServiceContainer";constructor($){super();this.service=$}}class J4{static async put($){return k2.use().service.driver.put($)}static async metadata($){let J=y7.from(await $.arrayBuffer());try{return await $4.default(J).metadata()}catch{return{}}}static async fetch($){return k2.use().service.driver.fetch($)}static list($){return k2.use().service.driver.list($)}static delete(){}}function F4($){return Object.fromEntries(Object.entries($).filter(([,J])=>{return J!==null&&J!==void 0}))}class K2 extends Error{constructor(){super("Adapter not found");this.name="AdapterNotFound"}}class x1{createSession(){throw new K2}deleteSession(){throw new K2}findSession(){throw new K2}findUserByEmailAddress(){throw new K2}updateSession(){throw new K2}createUser(){throw new K2}}class B4 extends _{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class Y4 extends _{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 Q4 extends _{schema={email:{required:"Email is required",email:"Invalid email"}}}class K4 extends _{schema={password:{required:"Password is required",password:"Invalid password"}}}class g extends W4{provider=q.use()?.provider;async me(){let $=await J2.user();if(!$)throw new U4;return $}async verifyEmail($=new _){let J=await $.input(),F=q.use()?.provider,W=await F.adapter.findUserByVerificationToken(J.get("token"));if(!W)return{email:null};if(await F.adapter.verifyUser(W.email),W)return{email:W.email};return{email:null}}async signInWithMagicLink($=new _){let J=q.use(),F=J.provider,W=$.search.get("token"),Z=decodeURIComponent($.search.get("email")),U=null;try{U=await F.adapter.findUserMagicLinkToken({email:Z,token:W})}catch(Q){return console.log(Q),{error:JSON.stringify(Q)}}if(!U)return{error:"Invalid token"};await F.adapter.verifyUser(Z),await F.adapter.deleteMagicLinkToken(Z);let Y=await J.createOrUpdateSession({email:Z});return $.ctx().setCookie("access_token",Y.token,{expires:Y.absoluteExpiresAt}),await F.onSignIn(Y),{session:Y}}async signInWithPin($=new _){let J=q.use(),F=J.provider,W=await $.input(),{email:Z,pin:U}=W.toJSON();if(!await F.adapter.findUserMagicLinkToken({email:Z,pin:U}))throw new o({pin:["Invalid pin"]});await F.adapter.deleteMagicLinkToken(Z),await F.adapter.verifyUser(Z);let Q=await J.createOrUpdateSession({email:Z});return $.ctx().setCookie("access_token",Q.token,{expires:Q.absoluteExpiresAt}),await F.onSignIn(Q),{session:Q}}async signIn($=new B4){let J=await $.input();if(process.env.DEBUG==="verbose")console.log("signIn",J.toJSON());let{email:F,password:W}=J.toJSON(),Z=q.use().provider,U=await Z.adapter.findUserByEmailAddress(F,Z.verifyEmail);if(!U)throw new o({invalid_credentials:["Invalid credentials"]});if(!await Z.verifyPassword(W,U.password))throw new o({invalid_credentials:["Invalid credentials"]});let Q=await q.use().createOrUpdateSession({email:U.email,id:U.id});$.ctx().setCookie("access_token",Q.token,{expires:Q.absoluteExpiresAt}),await Z.onSignIn(U);let{password:K,...G}=U;return G}async signUp($=new Y4){let J=await $.input(),{email:F,password:W,name:Z,invitationId:U}=J.toJSON(),Y=q.use().provider;if(await Y.adapter.findUserByEmailAddress(F,!1))throw new o({email:["Email address already exists"]});let K=await Y.hashPassword(W),G=a.use().detectLocale($),I;if(U){if(I=await Y.adapter.findInvitation(U,F),I)await Y.adapter.deleteInvitationById(U)}let N,z;if(I)N=await Y.adapter.createUser({email:F,name:Z,password:K,emailVerifiedAt:new Date,locale:G}),await Y.adapter.createAccount({organizationId:I.organizationId,userId:N.id,organizationRole:I.role});else z=await Y.generateEmailVerificationToken(F),N=await Y.adapter.createUser({email:F,name:Z,password:K,verificationToken:z,locale:G});return await Y.onSignUp(N,z),N}async signOut($=new _){let J=$.cookies.get("access_token"),F=await J2.user(),W=q.use().provider;return await W.adapter.deleteSession({token:J}),$.ctx().setCookie("access_token","",{expires:new Date(0)}),await W.onSignOut(F),{}}async forgotPassword($=new Q4){let J=await $.input(),{email:F}=J.toJSON(),W=q.use().provider,Z=await W.adapter.findUserByEmailAddress(F,W.verifyEmail);if(!Z)return{};let U=await W.generateForgotPasswordToken(Z);return await W.adapter.createPasswordResetToken({user:Z,token:U}),await W.onForgotPassword(Z,U),{}}async resetPassword($=new K4){let J=q.use().provider,F=await $.input(),{password:W,token:Z}=F.toJSON(),U=await J.adapter.findPasswordResetToken({token:Z});if(!U)throw new o({token:["Invalid token"]});if(x2.Instant.from(U.createdAt.toISOString()).add({hours:24}).until(x2.Now.instant()).sign>=0)throw new o({token:["Token expired"]});await J.adapter.deletePasswordResetToken({token:Z});let Q=await J.adapter.findUserByEmailAddress(U.user.email,J.verifyEmail);if(!Q)throw new o({email:["User not found"]});let K=await J.hashPassword(W);return await J.adapter.updateUserPassword({id:Q.id,password:K}),await J.adapter.deleteAllUserSessions(Q.id),await J.onResetPassword(Q),{}}async changePassword($=new _){let J=q.use().provider,F=await J2.user(),W=await $.input(),{oldPassword:Z,newPassword:U}=W.toJSON(),{password:Y}=await J.adapter.findUserByEmailAddress(F.email,J.verifyEmail);if(!await J.verifyPassword(Z,Y))throw new o({oldPassword:["Incorrect password"]});let K=await J.hashPassword(U);return await J.adapter.updateUserPassword({id:F.id,password:K}),await J.adapter.deleteAllUserSessions(F.id),{}}async oauthRedirect($=new _){let{provider:J}=$.params,F=q.use().provider.oauthProviders[J];if(!F)throw new Error(`Invalid provider: ${J}`);return{url:await F.getRedirectUrl($)}}async oauthCallback($=new _){let{provider:J}=$.params,F=q.use(),W=F.provider,Z=W.oauthProviders[J],{email:U,name:Y,username:Q,providerId:K}=await Z.onCallback($);if(!Q&&!U)throw new Error("Email or username is required");let G=U??`${Q}:${J}`,I=await W.adapter.findUserByEmailAddress(G,!1),N=a.use().detectLocale($);if(!I)I=await W.adapter.createUser({email:G,name:Y,locale:N,emailVerifiedAt:new Date}),await W.adapter.createSocialAccount({provider:J,userId:I.id,email:G,username:Q,providerId:K,expiresAt:new Date,accessToken:"",refreshToken:""});let z=await F.createOrUpdateSession({email:I.email,id:I.id});return $.ctx().setCookie("access_token",z.token,{expires:z.expiresAt}),await W.onSignIn(I),{session:z}}async createMagicLinkToken($=new _){let J=await $.input(),{email:F}=J.toJSON(),W=q.use(),Z=W.provider,{user:U,pin:Y,token:Q}=await W.createMagicLinkToken(F);return await Z.onMagicLinkCreated(U,{email:F,pin:Y,token:Q}),{email:F}}}class w4 extends f1{routes={"/:provider":this.view("__",[g,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[g,"oauthCallback"])}}class O1 extends f1{routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[g,"signInWithMagicLink"]),"/oauth":w4}}class b1 extends U2{middlewares=["cache:private"];routes={"/sign-in":this.post(g,"signIn"),"/sign-up":this.post(g,"signUp"),"/sign-out":this.post(g,"signOut"),"/forgot-password":this.post(g,"forgotPassword"),"/reset-password":this.post(g,"resetPassword"),"/change-password":this.post(g,"changePassword"),"/verify-email":this.post(g,"verifyEmail"),"/me":this.get(g,"me").middleware(["auth"]),"/magic-link":this.post(g,"createMagicLinkToken"),"/sign-in-with-pin":this.post(g,"signInWithPin")}}class X7 extends Z4{basePath="/auth";verifyEmail=!0;sessionExpiresInHours=24;sessionAbsoluteExpiresInHours=672;adapter=new x1;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 d1 extends U2{routes={"/resize":this.file(async()=>{let $=new _,J=new URL($.rawRequest.url),F=J.searchParams.get("url"),W=Number(J.searchParams.get("w")),Z=Number(J.searchParams.get("h")),U=J.searchParams.get("fit")??"cover",Y=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 I=Buffer.from(await G.arrayBuffer()),N=await L4.use().service.driver.resize(I,{height:Z,width:W,fit:U,quality:Y});return G.headers.delete("Content-Type"),G.headers.delete("Content-Length"),new Response(N,{headers:{"Content-Type":"image/webp","Content-Length":`${N.byteLength}`,...G.headers.toJSON()}})})}}class L4 extends d{service;static _name="ImageOptimizationServiceContainer";constructor($){super();this.service=$}}import{mkdir as v1,exists as g1,readdir as N7}from"fs/promises";class u extends d{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 g1(`${process.env.ROOT_DIR}/storage`))await v1(`${process.env.ROOT_DIR}/storage`);if(!await g1(this.logsDirPath))await v1(this.logsDirPath);this.newLogFile()}async newLogFile(){if(!await g1(this.logsDirPath))await v1(this.logsDirPath);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 N7(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
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((Q)=>{let K=setInterval(()=>{if(this.isReady)Q({}),clearInterval(K)},100)});let W=C.getStore(),Z={};if(W)Z={url:W.req.rawRequest.url,method:W.req.rawRequest.method,headers:W.req.rawRequest.headers,body:W.req.rawRequest.body};let U={timestamp:new Date(Date.now()).toISOString(),env:"production",level:$,message:J,metadata:{...Z,...F}},Y="";try{Y=JSON.stringify(U)}catch(Q){throw new Error("Metadata must be a valid JSON object")}this.writerSize+=Y.length,this.fileSize+=Y.length,this.writer.write(Y),this.writer.write(`
|
|
5
|
-
`),J1.channel("/logs/live",{}).publish(JSON.stringify(U)),this.service.onLogCreated(U),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 h1 extends U2{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let $=Bun.file(u.use().currentLogFilePath);return new Response(await $.text(),{headers:{"Content-Type":"text/plain"}})})}}function j7($){let J=new Map;for(let F of $)if(typeof F==="string"){let[W,Z=""]=F.split(":");if(W.startsWith("-")){if(J.has(W.replace("-","")))J.delete(W.replace("-",""))}else J.set(W,Z.split(",").filter(Boolean))}else J.set(F,[]);return J}class f2 extends d{service;static _name="MiddlewareServiceContainer";constructor($){super();this.service=$}runMiddleware($){let J=new _;return Array.from(j7($).entries()).map(([F,W])=>{if(typeof F==="string"){let Z=this.service.aliases[F];if(Z){let U=new Z(J);return()=>U.run.call(U,...W)}}else{if(I4(F)){let Z=new F(J);return Z.run.bind(Z)}return F}}).filter(Boolean).reduce((F,W)=>{return async()=>{return{...await F(),...await W()}}},()=>Promise.resolve({}))()}}function T7($){return"run"in $}function V7($){return Object.hasOwn($,"get")||Object.hasOwn($,"post")||Object.hasOwn($,"put")||Object.hasOwn($,"delete")}function z7($){return Object.hasOwn($,"first")&&Object.hasOwn($,"second")}function D7($){if("__brand"in $)return $.__brand==="ApiRouter";return!1}function m1($,J="",F=[]){let W={};function Z(U,Y,Q,K){let I=U==="/"?"":U,L=J==="/"?"":J,N=(`${L}${I}`===""?"/":`${L}${I}`).replaceAll("//","/");if(!W[N])W[N]={};W[N][Y.toUpperCase()]={exec:Q,middleware:[...F,...K]},W[N].OPTIONS={exec:()=>{let k=new _().ctx().headers;return new Response(null,{headers:k,status:204})},middleware:[]}}for(let[U,Y]of Object.entries($)){if(T7(Y)){let Q=Y,K=Q.method,I=Q.middlewares,L=Q.run.bind(Q);Z(U,K,L,I)}if(V7(Y))for(let[Q,K]of Object.entries(Y)){let I=K.middlewares,L=K.run.bind(K);Z(U,Q,L,I)}if(D7(Y)){let Q=new Y,K=m1(Q.routes,`${J}${U}`,Q.middlewares);for(let[I,L]of Object.entries(K))W[I.replaceAll("//","/")]=L}if(z7(Y)){let{first:Q,second:K}=Y;for(let[I,L]of Object.entries(Q)){let N=L.middlewares,z=L.run.bind(L),[k,...S]=U.split("/").reverse();if(!k.startsWith(":"))throw new Error("Resource route must end with a dynamic segment");Z(S.reverse().join("/"),I,z,N)}for(let[I,L]of Object.entries(K)){let N=L.middlewares,z=L.run.bind(L);Z(U,I,z,N)}}}return Object.fromEntries(Object.entries(W).sort(([U],[Y])=>{let Q=U.split("/").length+U.split(":").length,K=Y.split("/").length+Y.split(":").length;return Q-K}))}function l1($){return $.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function F1($){let J={};for(let[F,W]of Object.entries($))if("run"in W){let Z=W;if("children"in Z){let U=new Z.children,Y=F1(U.routes);for(let[Q,{exec:K,middleware:I}]of Object.entries(Y)){let L=F==="/"?Q:`${F}${Q}`,N=Q==="/"&&F!=="/"?F:L,z=(k)=>Z.run.call(Z,k,F);J[l1(N)]={exec:[z,...K],middleware:[...Z.middlewares,...I],viewPath:Z.viewPath}}}else{let U=(Y)=>Z.run.call(Z,Y,F);J[l1(F)]={exec:[U],middleware:Z.middlewares,viewPath:Z.viewPath}}}else{let Z=new W,U=F1(Z.routes);for(let[Y,{exec:Q,middleware:K,viewPath:I}]of Object.entries(U)){let L=F==="/"?Y:`${F}${Y}`,N=Y==="/"&&F!=="/"?F:L;J[l1(N)]={exec:Q,middleware:[...Z.middlewares,...K],viewPath:I}}}return Object.fromEntries(Object.entries(J).sort(([F],[W])=>{let Z=F.split("/").length+F.split(":").length,U=W.split("/").length+W.split(":").length;return Z-U}))}import{renderToReadableStream as E7}from"react-dom/server.browser";import{createElement as L4,Fragment as A7}from"react";function _7($){return $.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function W1($){let J={};for(let[F,W]of Object.entries($))if("run"in W){let Z=W.viewPath;if("children"in W){J[F]=[Z];let U=new W.children,Y=W1(U.routes);for(let[Q,K]of Object.entries(Y)){let I=F==="/"?Q:`${F}${Q}`,L=Q==="/"&&F!=="/"?F:I;J[L]=[Z,...K]}if(J[F].length===1)delete J[F]}else J[F]=[Z]}else{let Z=new W,U=W1(Z.routes);for(let[Y,Q]of Object.entries(U)){let K=F==="/"?Y:`${F}${Y}`,I=Y==="/"&&F!=="/"?F:K;J[I]=Q}}return Object.fromEntries(Object.entries(J).map(([F,W])=>[_7(F),W]))}function Z1($){let J=[];for(let[F,W]of Object.entries($))if("run"in W){let Z=W.viewPath;if(Z==="__")continue;if("children"in W){let U=new W.children,Y=Z1(U.routes);J.push([Z,Y])}else J.push([Z,[]])}else{let Z=new W,U=Z1(Z.routes);J.push(...U)}return J}function c1($){let J=[];for(let[F,W]of $)J.push(F,...c1(W).flat());return Array.from(new Set(J))}import{randomBytes as R7,createHmac as q7}from"crypto";class u1 extends d{service;static _name="ViewRouterServiceContainer";flatViewRoutes={};routeManifest={};componentTree=[];flatComponentTree=[];root=null;constructor($){super();this.service=$;let J={"/":$.rootRouter,"/auth":O1};this.flatViewRoutes=F1(J),this.routeManifest=W1(J),this.componentTree=Z1(J),this.flatComponentTree=c1(this.componentTree),this.root=$.root}boot(){}generateCSRFTokenWithHmac(){let $=Buffer.from(process.env.SECRET,"utf8"),F=R7(21).toString("base64"),W=q7("sha256",$);W.update(F);let Z=W.digest();return{csrfToken:F,csrfTokenHMAC:Z}}async onRequestEnd($){if(!$.cookies.has("session_id"))$.ctx().setCookie("session_id",Bun.randomUUIDv7(),{httpOnly:!0,secure:!0,sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.service.onRequestEnd($)}async render($){let{csrfTokenHMAC:J,currentPathName:F,headers:W,i18n:Z,params:U,pathname:Y,prefetchedData:Q,url:K,user:I,viewData:L,breadcrumbs:N}=$,z={kind:"view",data:{pageData:{[Y]:L},__csrf:J.toString("base64"),prefetchedData:Q,i18n:Z,auth:{user:I},routeManifest:this.routeManifest,breadcrumbs:N,router:{pathname:F,params:U,currentPath:Y,searchParams:K.search,is404:!F?!0:!1},componentTree:[["404",[]],...this.componentTree]},head:{}},k=this.root,S=this.routeManifest[F];return async($2)=>{let{bootstrapModules:h,loaders:w2,getStyles:Q1,viewImportMap:V2,cssManifest:z2}=$2;z.data.cssManifest=z2;let G2=await E7(L4(A7,{children:[...await Q1(S),L4(k,{data:z.data,viewImportMap:V2,key:"root"})]}),{bootstrapScriptContent:`window.__GEMI_DATA__ = ${JSON.stringify(z.data)}; window.loaders=${w2}`,bootstrapModules:h});return new Response(G2,{status:!F?404:200,headers:W})}}async handleViewRequest($){let J=new URL($.url),F=J.pathname.endsWith(".json"),W=J.pathname.replace(".json",""),Z=[],U=[],Y=null,Q={};try{for(let[I,L]of Object.entries(this.flatViewRoutes)){let N=new H4({pathname:I});if(N.test({pathname:W})){Y=I,Q=N.exec({pathname:W})?.pathname.groups,Z=L.exec,U=L.middleware;break}}}catch(I){throw I}let K=new _($,Q,"view",Y);return await C.run(K,async()=>{_2.setLocale();let I=null,L=C.getStore(),N=L.req;try{await f2.use().runMiddleware(U);let z=await Promise.all([...Z.map((x)=>x(N)),...Array.from(L.prefetchPromiseQueue).map((x)=>x())]),k=L.cookies,S=L.headers,$2=L.prefetchedResources;I={data:z,cookies:k,headers:S,user:L.user,prefetchedData:Object.fromEntries($2.entries()),currentPathName:N.routePath,params:N.params};let{params:h,currentPathName:w2,user:Q1}=I,V2={},z2={};for(let x of z){let[D2,w1]=Object.entries(x)?.[0]??[];if(!D2||!w1)continue;z2[`${D2}:${w2}`]=w1.breadcrumb,V2[D2]=w1}let G2=s.use(),j4=G2.isEnabled,K1={};if(j4){let x=G2.detectLocale(new _($,h)),D2=G2.getPageTranslations(x,w2);K1={supportedLocales:G2.supportedLocales,currentLocale:x,dictionary:{[x]:D2}}}if(F)return S.set("Content-Type","application/json"),k.forEach((x)=>S.append("Set-Cookie",x.toString())),await this.service.onRequestEnd(N),new Response(JSON.stringify({data:{[W]:V2},breadcrumbs:z2,prefetchedData:I.prefetchedData,i18n:K1,is404:!w2}),{headers:S});S.set("Content-Type","text/html"),k.forEach((x)=>S.append("Set-Cookie",x.toString()));let{csrfToken:T4,csrfTokenHMAC:V4}=this.generateCSRFTokenWithHmac();S.append("Set-Cookie",`csrf_token=${T4}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);try{await this.onRequestEnd(N)}catch(x){U1.error(x?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(x)})}return await this.render({csrfTokenHMAC:V4,currentPathName:w2,headers:S,i18n:K1,params:h,pathname:J.pathname,prefetchedData:I.prefetchedData,url:J,user:Q1,viewData:V2,breadcrumbs:z2})}catch(z){if(z.kind===O2)if(F){let{status:k=400,data:S,directive:$2,headers:h}=z.payload.api;return new Response(JSON.stringify({data:S,directive:$2}),{headers:h,status:k})}else{let{status:k=400,error:S}=z.payload.view;return new Response(S?.message,{...z.payload.view,status:k})}else throw this.service.onRequestFail(N,z),z}})}}class X4 extends U2{routes={"/api-routes":this.get(()=>{let $=B1.use().flatRoutes,J=[];for(let[F,W]of Object.entries($))for(let[Z,U]of Object.entries(W)){let{exec:Y,middleware:Q}=U;J.push({path:F,method:Z,middleware:Q})}return J}),"/view-routes":this.get(()=>{let $=u1.use().flatViewRoutes,J=[];for(let[F,{middleware:W,viewPath:Z}]of Object.entries($))J.push({path:F,method:"GET",viewPath:Z,middleware:W});return J})}}class B1 extends d{service;static _name="ApiRouterServiceContainer";flatRoutes={};constructor($){super();this.service=$;this.flatRoutes=m1({"/":this.service.rootRouter.bind(this.service),"/auth":b1,"/__gemi__/services/i18n":y4,"/__gemi__/services/logs":h1,"/__gemi__/services/image":d1,"/__gemi__/debug":X4})}getRouteHandlerAndParams($){let F=new URL($.url).pathname.replace("/api",""),W={},Z;for(let[U]of Object.entries(this.flatRoutes))try{let Y=new URLPattern({pathname:U});if(Y.test({pathname:F})){Z=U,W=Y.exec({pathname:F})?.pathname.groups;break}}catch(Y){console.error(Y)}return{params:W,path:Z}}async runRouteMiddleware($,J){let W=this.flatRoutes[$][J.rawRequest.method].middleware;try{await f2.use().runMiddleware(W)}catch(Z){if(Z.kind===O2){if(J.rawRequest.url.includes("/api")){let{status:U=400,data:Y,headers:Q}=Z.payload.api;return new Response(JSON.stringify(Y),{status:U,headers:{"Content-Type":"application/json",...Q}})}}else throw this.service.onRequestFail(J,Z),console.error(Z),Z}}async getRouteData($){let J=this.flatRoutes[$],F=C.getStore(),W=J[F.req.rawRequest.method].exec??(()=>Promise.resolve({})),Z={};try{Z=await W()}catch(U){if(U.kind===O2){let{status:Y=400,data:Q,headers:K}=U.payload.api;return new Response(JSON.stringify(Q),{status:Y,headers:{"Content-Type":"application/json",...K}})}throw this.service.onRequestFail(F.req,U),console.error(U),U}return Z}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 Z=new _($,J,"api",F);if(!$.url.includes("/__gemi__"))this.service.onRequestStart(Z);return await C.run(Z,async()=>{let U=C.getStore();U.setRequest(Z);let Y=await this.runRouteMiddleware(F,Z);if(Y instanceof Response)return Y;let Q=await this.getRouteData(F);if(Q instanceof Response)return Q;let K=U.headers;if(K.append("Content-Type","application/json"),U.cookies.forEach((I)=>K.append("Set-Cookie",I.toString())),U.destroy(),!$.url.includes("/__gemi__"))this.service.onRequestEnd(Z);return new Response(JSON.stringify(Q),{headers:K})})}}class Y1{static prepare($,...J){let F={params:{},search:{}},[W={}]=J,{search:Z,params:U}={...F,...W},Y=C.getStore();if(Y.req.kind==="api")throw new Error("Query.prefetch() cannot be called from an API request");let Q=Y.req.rawRequest,K=new URL(Q.url),I=new URLSearchParams(F4(Z));I.delete("json"),I.sort();let L=[`${r($,U)}`,I.toString()].filter((h)=>h.length>0).join("?"),N=`${K.origin}/${L}`,z=new Request(N,{headers:Q.headers}),k=new _(z,U),S=(h)=>{Y.prefetchedResources.set(r($,U),{[I.toString()]:h})},$2=()=>{return C.run(k,async()=>{let h=await B1.use().getRouteData($);return S(h),h})};return{instant:$2,prefetch:()=>{Y.prefetchPromiseQueue.add($2)}}}static instant($,...J){return Y1.prepare($,...J).instant()}static prefetch($,...J){return Y1.prepare($,...J).prefetch()}}class J1{static channel($,J){let F=I2.use().service.channels[$];if(!F)return console.error(`Channel ${$} not found`),{publish:()=>{}};let W=new F;return{publish:(Z,U=!1)=>{let Y=r($,J);I2.use().publish(Y,JSON.stringify({topic:Y,data:W.publish(Z)}),U)}}}}class N4{static absolute($,...J){return`${process.env.HOST_NAME}${r(String($),J[0]??{})}`}static relative($,...J){return r(String($),J[0]??{})}}class U1{static debug($,J){u.use().log("debug",$,J)}static info($,J){u.use().log("info",$,J)}static notice($,J){u.use().log("notice",$,J)}static warning($,J){u.use().log("warning",$,J)}static error($,J){u.use().log("error",$,J)}static critical($,J){u.use().log("critical",$,J)}static alert($,J){u.use().log("alert",$,J)}static emergency($,J){u.use().log("emergency",$,J)}}export{N4 as Url,e1 as Redirect,Y1 as Query,U1 as Log,_2 as I18n,J4 as FileStorage,J1 as Broadcast,J2 as Auth};export{I2 as Xb,e1 as Yb,o5 as Zb,k2 as _b,u as $b,X7 as ac,G4 as bc,f2 as cc,u1 as dc,B1 as ec};
|
|
5
|
+
`),J1.channel("/logs/live",{}).publish(JSON.stringify(U)),this.service.onLogCreated(U),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 h1 extends U2{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let $=Bun.file(u.use().currentLogFilePath);return new Response(await $.text(),{headers:{"Content-Type":"text/plain"}})})}}function j7($){let J=new Map;for(let F of $)if(typeof F==="string"){let[W,Z=""]=F.split(":");if(W.startsWith("-")){if(J.has(W.replace("-","")))J.delete(W.replace("-",""))}else J.set(W,Z.split(",").filter(Boolean))}else J.set(F,[]);return J}class f2 extends d{service;static _name="MiddlewareServiceContainer";constructor($){super();this.service=$}runMiddleware($){let J=new _;return Array.from(j7($).entries()).map(([F,W])=>{if(typeof F==="string"){let Z=this.service.aliases[F];if(Z){let U=new Z(J);return()=>U.run.call(U,...W)}}else{if(G4(F)){let Z=new F(J);return Z.run.bind(Z)}return F}}).filter(Boolean).reduce((F,W)=>{return async()=>{return{...await F(),...await W()}}},()=>Promise.resolve({}))()}}function T7($){return"run"in $}function V7($){return Object.hasOwn($,"get")||Object.hasOwn($,"post")||Object.hasOwn($,"put")||Object.hasOwn($,"delete")}function z7($){return Object.hasOwn($,"first")&&Object.hasOwn($,"second")}function D7($){if("__brand"in $)return $.__brand==="ApiRouter";return!1}function m1($,J="",F=[]){let W={};function Z(U,Y,Q,K){let G=U==="/"?"":U,I=J==="/"?"":J,N=(`${I}${G}`===""?"/":`${I}${G}`).replaceAll("//","/");if(!W[N])W[N]={};W[N][Y.toUpperCase()]={exec:Q,middleware:[...F,...K]},W[N].OPTIONS={exec:()=>{let k=new _().ctx().headers;return new Response(null,{headers:k,status:204})},middleware:[]}}for(let[U,Y]of Object.entries($)){if(T7(Y)){let Q=Y,K=Q.method,G=Q.middlewares,I=Q.run.bind(Q);Z(U,K,I,G)}if(V7(Y))for(let[Q,K]of Object.entries(Y)){let G=K.middlewares,I=K.run.bind(K);Z(U,Q,I,G)}if(D7(Y)){let Q=new Y,K=m1(Q.routes,`${J}${U}`,Q.middlewares);for(let[G,I]of Object.entries(K))W[G.replaceAll("//","/")]=I}if(z7(Y)){let{first:Q,second:K}=Y;for(let[G,I]of Object.entries(Q)){let N=I.middlewares,z=I.run.bind(I),[k,...S]=U.split("/").reverse();if(!k.startsWith(":"))throw new Error("Resource route must end with a dynamic segment");Z(S.reverse().join("/"),G,z,N)}for(let[G,I]of Object.entries(K)){let N=I.middlewares,z=I.run.bind(I);Z(U,G,z,N)}}}return Object.fromEntries(Object.entries(W).sort(([U],[Y])=>{let Q=U.split("/").length+U.split(":").length,K=Y.split("/").length+Y.split(":").length;return Q-K}))}function l1($){return $.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function F1($){let J={};for(let[F,W]of Object.entries($))if("run"in W){let Z=W;if("children"in Z){let U=new Z.children,Y=F1(U.routes);for(let[Q,{exec:K,middleware:G}]of Object.entries(Y)){let I=F==="/"?Q:`${F}${Q}`,N=Q==="/"&&F!=="/"?F:I,z=(k)=>Z.run.call(Z,k,F);J[l1(N)]={exec:[z,...K],middleware:[...Z.middlewares,...G],viewPath:Z.viewPath}}}else{let U=(Y)=>Z.run.call(Z,Y,F);J[l1(F)]={exec:[U],middleware:Z.middlewares,viewPath:Z.viewPath}}}else{let Z=new W,U=F1(Z.routes);for(let[Y,{exec:Q,middleware:K,viewPath:G}]of Object.entries(U)){let I=F==="/"?Y:`${F}${Y}`,N=Y==="/"&&F!=="/"?F:I;J[l1(N)]={exec:Q,middleware:[...Z.middlewares,...K],viewPath:G}}}return Object.fromEntries(Object.entries(J).sort(([F],[W])=>{let Z=F.split("/").length+F.split(":").length,U=W.split("/").length+W.split(":").length;return Z-U}))}import{renderToReadableStream as E7}from"react-dom/server.browser";import{createElement as I4,Fragment as A7}from"react";function _7($){return $.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function W1($){let J={};for(let[F,W]of Object.entries($))if("run"in W){let Z=W.viewPath;if("children"in W){J[F]=[Z];let U=new W.children,Y=W1(U.routes);for(let[Q,K]of Object.entries(Y)){let G=F==="/"?Q:`${F}${Q}`,I=Q==="/"&&F!=="/"?F:G;J[I]=[Z,...K]}if(J[F].length===1)delete J[F]}else J[F]=[Z]}else{let Z=new W,U=W1(Z.routes);for(let[Y,Q]of Object.entries(U)){let K=F==="/"?Y:`${F}${Y}`,G=Y==="/"&&F!=="/"?F:K;J[G]=Q}}return Object.fromEntries(Object.entries(J).map(([F,W])=>[_7(F),W]))}function Z1($){let J=[];for(let[F,W]of Object.entries($))if("run"in W){let Z=W.viewPath;if(Z==="__")continue;if("children"in W){let U=new W.children,Y=Z1(U.routes);J.push([Z,Y])}else J.push([Z,[]])}else{let Z=new W,U=Z1(Z.routes);J.push(...U)}return J}function c1($){let J=[];for(let[F,W]of $)J.push(F,...c1(W).flat());return Array.from(new Set(J))}import{randomBytes as R7,createHmac as q7}from"crypto";class u1 extends d{service;static _name="ViewRouterServiceContainer";flatViewRoutes={};routeManifest={};componentTree=[];flatComponentTree=[];root=null;constructor($){super();this.service=$;let J={"/":$.rootRouter,"/auth":O1};this.flatViewRoutes=F1(J),this.routeManifest=W1(J),this.componentTree=Z1(J),this.flatComponentTree=c1(this.componentTree),this.root=$.root}boot(){}generateCSRFTokenWithHmac(){let $=Buffer.from(process.env.SECRET,"utf8"),F=R7(21).toString("base64"),W=q7("sha256",$);W.update(F);let Z=W.digest();return{csrfToken:F,csrfTokenHMAC:Z}}async onRequestEnd($){if(!$.cookies.has("session_id"))$.ctx().setCookie("session_id",Bun.randomUUIDv7(),{httpOnly:!0,secure:!0,sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.service.onRequestEnd($)}async render($){let{csrfTokenHMAC:J,currentPathName:F,headers:W,i18n:Z,params:U,pathname:Y,prefetchedData:Q,url:K,user:G,viewData:I,breadcrumbs:N}=$,z={kind:"view",data:{pageData:{[Y]:I},__csrf:J.toString("base64"),prefetchedData:Q,i18n:Z,auth:{user:G},routeManifest:this.routeManifest,breadcrumbs:N,router:{pathname:F,params:U,currentPath:Y,searchParams:K.search,is404:!F?!0:!1},componentTree:[["404",[]],...this.componentTree]},head:{}},k=this.root,S=this.routeManifest[F];return async($2)=>{let{bootstrapModules:h,loaders:w2,getStyles:Q1,viewImportMap:V2,cssManifest:z2}=$2;z.data.cssManifest=z2;let L2=await E7(I4(A7,{children:[...await Q1(S),I4(k,{data:z.data,viewImportMap:V2,key:"root"})]}),{bootstrapScriptContent:`window.__GEMI_DATA__ = ${JSON.stringify(z.data)}; window.loaders=${w2}`,bootstrapModules:h});return new Response(L2,{status:!F?404:200,headers:W})}}async handleViewRequest($){let J=new URL($.url),F=J.pathname.endsWith(".json"),W=J.pathname.replace(".json",""),Z=[],U=[],Y=null,Q={};try{for(let[G,I]of Object.entries(this.flatViewRoutes)){let N=new H4({pathname:G});if(N.test({pathname:W})){Y=G,Q=N.exec({pathname:W})?.pathname.groups,Z=I.exec,U=I.middleware;break}}}catch(G){throw G}let K=new _($,Q,"view",Y);return await C.run(K,async()=>{_2.setLocale();let G=null,I=C.getStore(),N=I.req;try{await f2.use().runMiddleware(U);let z=await Promise.all([...Z.map((x)=>x(N)),...Array.from(I.prefetchPromiseQueue).map((x)=>x())]),k=I.cookies,S=I.headers,$2=I.prefetchedResources;G={data:z,cookies:k,headers:S,user:I.user,prefetchedData:Object.fromEntries($2.entries()),currentPathName:N.routePath,params:N.params};let{params:h,currentPathName:w2,user:Q1}=G,V2={},z2={};for(let x of z){let[D2,w1]=Object.entries(x)?.[0]??[];if(!D2||!w1)continue;z2[`${D2}:${w2}`]=w1.breadcrumb,V2[D2]=w1}let L2=a.use(),j4=L2.isEnabled,K1={};if(j4){let x=L2.detectLocale(new _($,h)),D2=L2.getPageTranslations(x,w2);K1={supportedLocales:L2.supportedLocales,currentLocale:x,dictionary:{[x]:D2}}}if(F)return S.set("Content-Type","application/json"),k.forEach((x)=>S.append("Set-Cookie",x.toString())),await this.service.onRequestEnd(N),new Response(JSON.stringify({data:{[W]:V2},breadcrumbs:z2,prefetchedData:G.prefetchedData,i18n:K1,is404:!w2}),{headers:S});S.set("Content-Type","text/html"),k.forEach((x)=>S.append("Set-Cookie",x.toString()));let{csrfToken:T4,csrfTokenHMAC:V4}=this.generateCSRFTokenWithHmac();S.append("Set-Cookie",`csrf_token=${T4}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);try{await this.onRequestEnd(N)}catch(x){U1.error(x?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(x)})}return await this.render({csrfTokenHMAC:V4,currentPathName:w2,headers:S,i18n:K1,params:h,pathname:J.pathname,prefetchedData:G.prefetchedData,url:J,user:Q1,viewData:V2,breadcrumbs:z2})}catch(z){if(z.kind===O2)if(F){let{status:k=400,data:S,directive:$2,headers:h}=z.payload.api;return new Response(JSON.stringify({data:S,directive:$2}),{headers:h,status:k})}else{let{status:k=400,error:S}=z.payload.view;return new Response(S?.message,{...z.payload.view,status:k})}else throw this.service.onRequestFail(N,z),z}})}}class X4 extends U2{routes={"/api-routes":this.get(()=>{let $=B1.use().flatRoutes,J=[];for(let[F,W]of Object.entries($))for(let[Z,U]of Object.entries(W)){let{exec:Y,middleware:Q}=U;J.push({path:F,method:Z,middleware:Q})}return J}),"/view-routes":this.get(()=>{let $=u1.use().flatViewRoutes,J=[];for(let[F,{middleware:W,viewPath:Z}]of Object.entries($))J.push({path:F,method:"GET",viewPath:Z,middleware:W});return J})}}class B1 extends d{service;static _name="ApiRouterServiceContainer";flatRoutes={};constructor($){super();this.service=$;this.flatRoutes=m1({"/":this.service.rootRouter.bind(this.service),"/auth":b1,"/__gemi__/services/i18n":y4,"/__gemi__/services/logs":h1,"/__gemi__/services/image":d1,"/__gemi__/debug":X4})}getRouteHandlerAndParams($){let F=new URL($.url).pathname.replace("/api",""),W={},Z;for(let[U]of Object.entries(this.flatRoutes))try{let Y=new URLPattern({pathname:U});if(Y.test({pathname:F})){Z=U,W=Y.exec({pathname:F})?.pathname.groups;break}}catch(Y){console.error(Y)}return{params:W,path:Z}}async runRouteMiddleware($,J){let W=this.flatRoutes[$][J.rawRequest.method].middleware;try{await f2.use().runMiddleware(W)}catch(Z){if(Z.kind===O2){if(J.rawRequest.url.includes("/api")){let{status:U=400,data:Y,headers:Q}=Z.payload.api;return new Response(JSON.stringify(Y),{status:U,headers:{"Content-Type":"application/json",...Q}})}}else throw this.service.onRequestFail(J,Z),console.error(Z),Z}}async getRouteData($){let J=this.flatRoutes[$],F=C.getStore(),W=J[F.req.rawRequest.method].exec??(()=>Promise.resolve({})),Z={};try{Z=await W()}catch(U){if(U.kind===O2){let{status:Y=400,data:Q,headers:K}=U.payload.api;return new Response(JSON.stringify(Q),{status:Y,headers:{"Content-Type":"application/json",...K}})}throw this.service.onRequestFail(F.req,U),console.error(U),U}return Z}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 Z=new _($,J,"api",F);if(!$.url.includes("/__gemi__"))this.service.onRequestStart(Z);return await C.run(Z,async()=>{let U=C.getStore();U.setRequest(Z);let Y=await this.runRouteMiddleware(F,Z);if(Y instanceof Response)return Y;let Q=await this.getRouteData(F);if(Q instanceof Response)return Q;let K=U.headers;if(K.append("Content-Type","application/json"),U.cookies.forEach((G)=>K.append("Set-Cookie",G.toString())),U.destroy(),!$.url.includes("/__gemi__"))this.service.onRequestEnd(Z);return new Response(JSON.stringify(Q),{headers:K})})}}class Y1{static prepare($,...J){let F={params:{},search:{}},[W={}]=J,{search:Z,params:U}={...F,...W},Y=C.getStore();if(Y.req.kind==="api")throw new Error("Query.prefetch() cannot be called from an API request");let Q=Y.req.rawRequest,K=new URL(Q.url),G=new URLSearchParams(F4(Z));G.delete("json"),G.sort();let I=[`${e($,U)}`,G.toString()].filter((h)=>h.length>0).join("?"),N=`${K.origin}/${I}`,z=new Request(N,{headers:Q.headers}),k=new _(z,U),S=(h)=>{Y.prefetchedResources.set(e($,U),{[G.toString()]:h})},$2=()=>{return C.run(k,async()=>{let h=await B1.use().getRouteData($);return S(h),h})};return{instant:$2,prefetch:()=>{Y.prefetchPromiseQueue.add($2)}}}static instant($,...J){return Y1.prepare($,...J).instant()}static prefetch($,...J){return Y1.prepare($,...J).prefetch()}}class J1{static channel($,J){let F=G2.use().service.channels[$];if(!F)return console.error(`Channel ${$} not found`),{publish:()=>{}};let W=new F;return{publish:(Z,U=!1)=>{let Y=e($,J);G2.use().publish(Y,JSON.stringify({topic:Y,data:W.publish(Z)}),U)}}}}class N4{static absolute($,...J){return`${process.env.HOST_NAME}${e(String($),J[0]??{})}`}static relative($,...J){return e(String($),J[0]??{})}}class U1{static debug($,J){u.use().log("debug",$,J)}static info($,J){u.use().log("info",$,J)}static notice($,J){u.use().log("notice",$,J)}static warning($,J){u.use().log("warning",$,J)}static error($,J){u.use().log("error",$,J)}static critical($,J){u.use().log("critical",$,J)}static alert($,J){u.use().log("alert",$,J)}static emergency($,J){u.use().log("emergency",$,J)}}export{N4 as Url,e1 as Redirect,Y1 as Query,U1 as Log,_2 as I18n,J4 as FileStorage,J1 as Broadcast,J2 as Auth};export{G2 as Xb,e1 as Yb,o5 as Zb,k2 as _b,u as $b,X7 as ac,L4 as bc,f2 as cc,u1 as dc,B1 as ec};
|
|
6
6
|
|
|
7
|
-
//# debugId=
|
|
7
|
+
//# debugId=7A312C0A7B44EDCC64756E2164756E21
|