yinzerflow 0.3.0 → 0.3.1

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/index.d.ts CHANGED
@@ -2217,6 +2217,7 @@ declare class HookRegistryImpl implements InternalHookRegistryImpl {
2217
2217
  constructor();
2218
2218
  _addBeforeHooks(handlers: Array<HandlerCallback>, options?: InternalGlobalHookOptions): void;
2219
2219
  _addAfterHooks(handlers: Array<HandlerCallback>, options?: InternalGlobalHookOptions): void;
2220
+ private _validateHandlersArray;
2220
2221
  _addOnError(handler: HandlerCallback): void;
2221
2222
  _addOnNotFound(handler: HandlerCallback): void;
2222
2223
  }
package/index.js CHANGED
@@ -1,22 +1,32 @@
1
- var H0=Object.create;var{getPrototypeOf:O0,defineProperty:f$,getOwnPropertyNames:V0}=Object;var N0=Object.prototype.hasOwnProperty;var O$=($,W,Y)=>{Y=$!=null?H0(O0($)):{};let Z=W||!$||!$.__esModule?f$(Y,"default",{value:$,enumerable:!0}):Y;for(let D of V0($))if(!N0.call(Z,D))f$(Z,D,{get:()=>$[D],enumerable:!0});return Z};var w0=($,W)=>()=>(W||$((W={exports:{}}).exports,W),W.exports);var Q$=w0((V$,N$)=>{(function($,W){typeof V$=="object"&&typeof N$!="undefined"?N$.exports=W():typeof define=="function"&&define.amd?define(W):($=typeof globalThis!="undefined"?globalThis:$||self).dayjs=W()})(V$,function(){var $=1000,W=60000,Y=3600000,Z="millisecond",D="second",Q="minute",X="hour",G="day",V="week",A="month",B="quarter",z="year",L="date",e="Invalid Date",F$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,$$=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,_$={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(j){var M=["th","st","nd","rd"],J=j%100;return"["+j+(M[(J-20)%10]||M[J]||M[0])+"]"}},s=function(j,M,J){var U=String(j);return!U||U.length>=M?j:""+Array(M+1-U.length).join(J)+j},W$={s,z:function(j){var M=-j.utcOffset(),J=Math.abs(M),U=Math.floor(J/60),K=J%60;return(M<=0?"+":"-")+s(U,2,"0")+":"+s(K,2,"0")},m:function j(M,J){if(M.date()<J.date())return-j(J,M);var U=12*(J.year()-M.year())+(J.month()-M.month()),K=M.clone().add(U,A),F=J-K<0,_=M.clone().add(U+(F?-1:1),A);return+(-(U+(J-K)/(F?K-_:_-K))||0)},a:function(j){return j<0?Math.ceil(j)||0:Math.floor(j)},p:function(j){return{M:A,y:z,w:V,d:G,D:L,h:X,m:Q,s:D,ms:Z,Q:B}[j]||String(j||"").toLowerCase().replace(/s$/,"")},u:function(j){return j===void 0}},f="en",l={};l[f]=_$;var h$="$isDayjsObject",H$=function(j){return j instanceof Z$||!(!j||!j[h$])},Y$=function j(M,J,U){var K;if(!M)return f;if(typeof M=="string"){var F=M.toLowerCase();l[F]&&(K=F),J&&(l[F]=J,K=F);var _=M.split("-");if(!K&&_.length>1)return j(_[0])}else{var N=M.name;l[N]=M,K=N}return!U&&K&&(f=K),K||!U&&f},S=function(j,M){if(H$(j))return j.clone();var J=typeof M=="object"?M:{};return J.date=j,J.args=arguments,new Z$(J)},O=W$;O.l=Y$,O.i=H$,O.w=function(j,M){return S(j,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var Z$=function(){function j(J){this.$L=Y$(J.locale,null,!0),this.parse(J),this.$x=this.$x||J.x||{},this[h$]=!0}var M=j.prototype;return M.parse=function(J){this.$d=function(U){var{date:K,utc:F}=U;if(K===null)return new Date(NaN);if(O.u(K))return new Date;if(K instanceof Date)return new Date(K);if(typeof K=="string"&&!/Z$/i.test(K)){var _=K.match(F$);if(_){var N=_[2]-1||0,q=(_[7]||"0").substring(0,3);return F?new Date(Date.UTC(_[1],N,_[3]||1,_[4]||0,_[5]||0,_[6]||0,q)):new Date(_[1],N,_[3]||1,_[4]||0,_[5]||0,_[6]||0,q)}}return new Date(K)}(J),this.init()},M.init=function(){var J=this.$d;this.$y=J.getFullYear(),this.$M=J.getMonth(),this.$D=J.getDate(),this.$W=J.getDay(),this.$H=J.getHours(),this.$m=J.getMinutes(),this.$s=J.getSeconds(),this.$ms=J.getMilliseconds()},M.$utils=function(){return O},M.isValid=function(){return this.$d.toString()!==e},M.isSame=function(J,U){var K=S(J);return this.startOf(U)<=K&&K<=this.endOf(U)},M.isAfter=function(J,U){return S(J)<this.startOf(U)},M.isBefore=function(J,U){return this.endOf(U)<S(J)},M.$g=function(J,U,K){return O.u(J)?this[U]:this.set(K,J)},M.unix=function(){return Math.floor(this.valueOf()/1000)},M.valueOf=function(){return this.$d.getTime()},M.startOf=function(J,U){var K=this,F=!!O.u(U)||U,_=O.p(J),N=function(g,T){var m=O.w(K.$u?Date.UTC(K.$y,T,g):new Date(K.$y,T,g),K);return F?m:m.endOf(G)},q=function(g,T){return O.w(K.toDate()[g].apply(K.toDate("s"),(F?[0,0,0,0]:[23,59,59,999]).slice(T)),K)},k=this.$W,I=this.$M,R=this.$D,d="set"+(this.$u?"UTC":"");switch(_){case z:return F?N(1,0):N(31,11);case A:return F?N(1,I):N(0,I+1);case V:var p=this.$locale().weekStart||0,n=(k<p?k+7:k)-p;return N(F?R-n:R+(6-n),I);case G:case L:return q(d+"Hours",0);case X:return q(d+"Minutes",1);case Q:return q(d+"Seconds",2);case D:return q(d+"Milliseconds",3);default:return this.clone()}},M.endOf=function(J){return this.startOf(J,!1)},M.$set=function(J,U){var K,F=O.p(J),_="set"+(this.$u?"UTC":""),N=(K={},K[G]=_+"Date",K[L]=_+"Date",K[A]=_+"Month",K[z]=_+"FullYear",K[X]=_+"Hours",K[Q]=_+"Minutes",K[D]=_+"Seconds",K[Z]=_+"Milliseconds",K)[F],q=F===G?this.$D+(U-this.$W):U;if(F===A||F===z){var k=this.clone().set(L,1);k.$d[N](q),k.init(),this.$d=k.set(L,Math.min(this.$D,k.daysInMonth())).$d}else N&&this.$d[N](q);return this.init(),this},M.set=function(J,U){return this.clone().$set(J,U)},M.get=function(J){return this[O.p(J)]()},M.add=function(J,U){var K,F=this;J=Number(J);var _=O.p(U),N=function(I){var R=S(F);return O.w(R.date(R.date()+Math.round(I*J)),F)};if(_===A)return this.set(A,this.$M+J);if(_===z)return this.set(z,this.$y+J);if(_===G)return N(1);if(_===V)return N(7);var q=(K={},K[Q]=W,K[X]=Y,K[D]=$,K)[_]||1,k=this.$d.getTime()+J*q;return O.w(k,this)},M.subtract=function(J,U){return this.add(-1*J,U)},M.format=function(J){var U=this,K=this.$locale();if(!this.isValid())return K.invalidDate||e;var F=J||"YYYY-MM-DDTHH:mm:ssZ",_=O.z(this),N=this.$H,q=this.$m,k=this.$M,I=K.weekdays,R=K.months,d=K.meridiem,p=function(T,m,t,D$){return T&&(T[m]||T(U,F))||t[m].slice(0,D$)},n=function(T){return O.s(N%12||12,T,"0")},g=d||function(T,m,t){var D$=T<12?"AM":"PM";return t?D$.toLowerCase():D$};return F.replace($$,function(T,m){return m||function(t){switch(t){case"YY":return String(U.$y).slice(-2);case"YYYY":return O.s(U.$y,4,"0");case"M":return k+1;case"MM":return O.s(k+1,2,"0");case"MMM":return p(K.monthsShort,k,R,3);case"MMMM":return p(R,k);case"D":return U.$D;case"DD":return O.s(U.$D,2,"0");case"d":return String(U.$W);case"dd":return p(K.weekdaysMin,U.$W,I,2);case"ddd":return p(K.weekdaysShort,U.$W,I,3);case"dddd":return I[U.$W];case"H":return String(N);case"HH":return O.s(N,2,"0");case"h":return n(1);case"hh":return n(2);case"a":return g(N,q,!0);case"A":return g(N,q,!1);case"m":return String(q);case"mm":return O.s(q,2,"0");case"s":return String(U.$s);case"ss":return O.s(U.$s,2,"0");case"SSS":return O.s(U.$ms,3,"0");case"Z":return _}return null}(T)||_.replace(":","")})},M.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},M.diff=function(J,U,K){var F,_=this,N=O.p(U),q=S(J),k=(q.utcOffset()-this.utcOffset())*W,I=this-q,R=function(){return O.m(_,q)};switch(N){case z:F=R()/12;break;case A:F=R();break;case B:F=R()/3;break;case V:F=(I-k)/604800000;break;case G:F=(I-k)/86400000;break;case X:F=I/Y;break;case Q:F=I/W;break;case D:F=I/$;break;default:F=I}return K?F:O.a(F)},M.daysInMonth=function(){return this.endOf(A).$D},M.$locale=function(){return l[this.$L]},M.locale=function(J,U){if(!J)return this.$L;var K=this.clone(),F=Y$(J,U,!0);return F&&(K.$L=F),K},M.clone=function(){return O.w(this.$d,this)},M.toDate=function(){return new Date(this.valueOf())},M.toJSON=function(){return this.isValid()?this.toISOString():null},M.toISOString=function(){return this.$d.toISOString()},M.toString=function(){return this.$d.toUTCString()},j}(),m$=Z$.prototype;return S.prototype=m$,[["$ms",Z],["$s",D],["$m",Q],["$H",X],["$W",G],["$M",A],["$y",z],["$D",L]].forEach(function(j){m$[j[1]]=function(M){return this.$g(M,j[0],j[1])}}),S.extend=function(j,M){return j.$i||(j(M,Z$,S),j.$i=!0),S},S.locale=Y$,S.isDayjs=H$,S.unix=function(j){return S(1000*j)},S.en=l[f],S.Ls=l,S.p={},S})});import{createServer as s1}from"net";var q$=O$(Q$(),1);var X$={ok:"OK",created:"Created",accepted:"Accepted",noContent:"No Content",movedPermanently:"Moved Permanently",found:"Found",notModified:"Not Modified",badRequest:"Bad Request",unauthorized:"Unauthorized",forbidden:"Forbidden",notFound:"Not Found",methodNotAllowed:"Method Not Allowed",conflict:"Conflict",unsupportedMediaType:"Unsupported Media Type",tooManyRequests:"Too Many Requests",internalServerError:"Internal Server Error"},u={ok:200,created:201,accepted:202,noContent:204,movedPermanently:301,found:302,notModified:304,badRequest:400,unauthorized:401,forbidden:403,notFound:404,methodNotAllowed:405,conflict:409,unsupportedMediaType:415,tooManyRequests:429,internalServerError:500},E={delete:"DELETE",get:"GET",head:"HEAD",post:"POST",put:"PUT",patch:"PATCH",options:"OPTIONS"},v={json:"application/json",html:"text/html",form:"application/x-www-form-urlencoded",multipart:"multipart/form-data",xml:"application/xml",text:"text/plain",csv:"text/csv",yamlApplication:"application/yaml",yamlText:"text/yaml",urlEncodedJson:"application/x-www-form-urlencoded+json"},y={authorization:"Authorization",proxyAuthorization:"Proxy-Authorization",wwwAuthenticate:"WWW-Authenticate",cacheControl:"Cache-Control",etag:"ETag",expires:"Expires",lastModified:"Last-Modified",ifMatch:"If-Match",ifNoneMatch:"If-None-Match",ifModifiedSince:"If-Modified-Since",ifUnmodifiedSince:"If-Unmodified-Since",ifRange:"If-Range",age:"Age",vary:"Vary",contentType:"Content-Type",contentLength:"Content-Length",contentEncoding:"Content-Encoding",contentLanguage:"Content-Language",contentDisposition:"Content-Disposition",contentLocation:"Content-Location",contentRange:"Content-Range",accessControlAllowCredentials:"Access-Control-Allow-Credentials",accessControlAllowHeaders:"Access-Control-Allow-Headers",accessControlAllowMethods:"Access-Control-Allow-Methods",accessControlAllowOrigin:"Access-Control-Allow-Origin",accessControlExposeHeaders:"Access-Control-Expose-Headers",accessControlMaxAge:"Access-Control-Max-Age",accessControlRequestHeaders:"Access-Control-Request-Headers",accessControlRequestMethod:"Access-Control-Request-Method",accept:"Accept",acceptEncoding:"Accept-Encoding",acceptLanguage:"Accept-Language",acceptRanges:"Accept-Ranges",host:"Host",userAgent:"User-Agent",referer:"Referer",origin:"Origin",from:"From",expect:"Expect",location:"Location",server:"Server",date:"Date",allow:"Allow",retryAfter:"Retry-After",range:"Range",contentSecurityPolicy:"Content-Security-Policy",contentSecurityPolicyReportOnly:"Content-Security-Policy-Report-Only",strictTransportSecurity:"Strict-Transport-Security",xContentTypeOptions:"X-Content-Type-Options",xFrameOptions:"X-Frame-Options",xXSSProtection:"X-XSS-Protection",referrerPolicy:"Referrer-Policy",permissionsPolicy:"Permissions-Policy",crossOriginEmbedderPolicy:"Cross-Origin-Embedder-Policy",crossOriginOpenerPolicy:"Cross-Origin-Opener-Policy",crossOriginResourcePolicy:"Cross-Origin-Resource-Policy",cookie:"Cookie",setCookie:"Set-Cookie",connection:"Connection",keepAlive:"Keep-Alive",upgrade:"Upgrade",upgradeInsecureRequests:"Upgrade-Insecure-Requests",transferEncoding:"Transfer-Encoding",te:"TE",trailer:"Trailer",forwarded:"Forwarded",xForwardedFor:"X-Forwarded-For",via:"Via",maxForwards:"Max-Forwards",altSvc:"Alt-Svc",altUsed:"Alt-Used",timingAllowOrigin:"Timing-Allow-Origin",serverTiming:"Server-Timing",refresh:"Refresh",link:"Link",xPoweredBy:"X-Powered-By",xPermittedCrossDomainPolicies:"X-Permitted-Cross-Domain-Policies",reportTo:"Report-To",serviceWorkerAllowed:"Service-Worker-Allowed",sourceMap:"SourceMap",priority:"Priority",secGPC:"Sec-GPC",clearSiteData:"Clear-Site-Data",noVarySearch:"No-Vary-Search"},r={base64:"base64",binary:"binary",utf8:"utf8"};var J$=($,W)=>{if(!W.enabled)return!1;if($.request.method==="OPTIONS"){if(!p$($,W))return $.response.setStatusCode(403),$._response._setBody({error:"CORS: Origin not allowed",origin:$.request.headers.origin}),!0;$.response.setStatusCode(W.optionsSuccessStatus);let D=l$($,W);if($._response._setHeadersIfNotSet({[y.accessControlAllowOrigin]:D,[y.accessControlAllowMethods]:W.methods.join(", "),[y.accessControlAllowHeaders]:typeof W.allowedHeaders==="string"?W.allowedHeaders:W.allowedHeaders.join(", "),[y.accessControlAllowCredentials]:W.credentials?"true":"false",[y.accessControlExposeHeaders]:W.exposedHeaders.join(", "),[y.accessControlMaxAge]:W.maxAge.toString()}),W.preflightContinue)return!1;return $._response._setBody(""),!0}if(p$($,W)){let Z=l$($,W);$._response._setHeadersIfNotSet({[y.accessControlAllowOrigin]:Z,[y.accessControlAllowCredentials]:W.credentials?"true":"false"})}return!1},l$=($,W)=>{if(W.origin==="*"){if(W.credentials)throw new Error('CORS Security Error: origin: "*" with credentials: true is forbidden by CORS spec and creates security vulnerabilities. Use specific origins instead.');return"*"}let Y=$.request.headers.origin;if(Y)return Y;if(typeof W.origin==="string")return W.origin;if(Array.isArray(W.origin)&&W.origin.length>0){let[Z]=W.origin;return Z??"null"}return"null"},p$=($,W)=>{if(W.origin==="*")return!0;let Y=$.request.headers.origin?.toLowerCase()??"";if(typeof W.origin==="function")return Boolean(W.origin(Y,$.request));if(typeof W.origin==="string")return Y===W.origin.toLowerCase();if(Array.isArray(W.origin))return W.origin.some((Z)=>Y===Z.toLowerCase());if(W.origin instanceof RegExp)return W.origin.test(Y);return!1};var g$=O$(Q$(),1),h="YINZER",w={reset:"\x1B[0m",cyan:"\x1B[96m",yellow:"\x1B[93m",red:"\x1B[91m",green:"\x1B[92m",magenta:"\x1B[95m",gray:"\x1B[90m"},B0={positive:["n'at!","yinz are good!","that's the way!","right on!","lookin' good!","way to go!","keep it up!"],neutral:["n'at","yinz know","just sayin'","that's how it is","what can ya do","it happens"],negative:["aw jeez","that ain't right","what a jagoff move","that's terrible n'at","somebody messed up","this is bad news","yinz better fix this"]},i=!1,P=null,C=()=>g$.default().format("YYYY-MM-DD HH:mm:ss.SSS"),w$=($)=>{let W=B0[$];return W[Math.floor(Math.random()*W.length)]??""},q0=($)=>{if(typeof $==="string")return Buffer.byteLength($,"utf8");if(Buffer.isBuffer($))return $.length;if(typeof $==="object"&&$!==null)try{return Buffer.byteLength(JSON.stringify($),"utf8")}catch{return 0}return 0},E0=($)=>{if($>=200&&$<300)return"✅";if($>=300&&$<400)return"\uD83D\uDD04";if($>=400&&$<500)return"❌";if($>=500)return"\uD83D\uDCA5";return"❓"},A0=($)=>{if($<50)return{emoji:"⚡",phrase:Math.random()<0.5?"lightning quick n'at!":"faster than a Stillers touchdown!"};if($<100)return{emoji:"\uD83D\uDD25",phrase:Math.random()<0.5?"that's the way!":"smooth as butter n'at!"};if($<200)return{emoji:"✅",phrase:Math.random()<0.5?"not bad yinz!":"keepin' up just fine!"};if($<500)return{emoji:"⚠️",phrase:Math.random()<0.5?"eh, could be better":"slowin' down a bit there"};if($<1000)return{emoji:"\uD83D\uDC0C",phrase:Math.random()<0.5?"that's draggin' n'at":"c'mon, pick up the pace!"};return{emoji:"\uD83D\uDCA5",phrase:Math.random()<0.5?"what a jagoff response time!":"slower than traffic on the Parkway!"}},z0=($,W,Y)=>{if(!i)return;let Z=C(),D=W??"unknown",Q=Y?` - ${Y}`:"",X="",G="info";if($==="connect")X=`\uD83E\uDD1D [NETWORK] New visitor from ${D} - Welcome to the 'Burgh!`;else if($==="disconnect")X=`\uD83D\uDC4B [NETWORK] ${D} headed out - Thanks for stopping by, yinz come back now!`;else X=`\uD83D\uDCA5 [NETWORK] Connection trouble with ${D}${Q} - That's not good, n'at!`,G="error";if(P)P[G](X);else{let V=G==="error"?w.red:w.gray;console.log(`${V}[${h}] [${Z}] ${X}${w.reset}`)}},S0=($,W,Y)=>{if(!i)return;let{request:Z}=$,D=$._response,Q=(Y-W).toFixed(1),X=Z.ipAddress||"unknown",{method:G,path:V,protocol:A}=Z,B=D._statusCode,z=q0(D._body),L=Z.headers.referer?`"${Z.headers.referer}"`:'"-"',e=Z.headers["user-agent"]?`"${Z.headers["user-agent"]}"`:'"-"',F$=E0(B),$$=`\uD83C\uDFE0 ${X} - - [${C()}] "${G} ${V} ${A}" ${B} ${z}b ${L} ${e} ${Q}ms ${F$}`,_$=parseFloat(Q),{emoji:s,phrase:W$}=A0(_$),f=`${s} [PERF] Response time: ${Q}ms - ${W$}`;if(P)P.info(`[NETWORK] ${$$}`),P.info(`[PERF] ${f}`);else console.log(`${w.gray}[${h}] [${C()}] [NETWORK] ${$$}${w.reset}`),console.log(`${w.magenta}[${h}] ${s} [${C()}] [PERF] Response time: ${Q}ms - ${W$}${w.reset}`)},k0=($,W)=>{if(!i)return;let Y=C(),Z=$&&W?`${W}:${$}`:"unknown",D=w$("positive"),Q=`\uD83D\uDE80 [NETWORK] YinzerFlow server is up and running at ${Z} - Ready to serve yinz all, ${D}!`;if(P)P.info(Q);else console.log(`${w.gray}[${h}] [${Y}] ${Q}${w.reset}`)},I0=($,W)=>{if(!i)return;let Y=C(),Z=$&&W?`${W}:${$}`:"unknown",D=w$("neutral"),Q=`\uD83D\uDED1 [NETWORK] YinzerFlow server at ${Z} is shutting down - See yinz later, ${D}!`;if(P)P.info(Q);else console.log(`${w.gray}[${h}] [${Y}] ${Q}${w.reset}`)},L0=($,W,Y)=>{if(!i)return;let Z=C(),D=$&&W?`${W}:${$}`:"unknown",Q=Y?` - ${Y}`:"",X=w$("negative"),G=`\uD83D\uDCA5 [NETWORK] Server error at ${D}${Q} - Something's not right, ${X}!`;if(P)P.error(G);else console.log(`${w.red}[${h}] [${Z}] ${G}${w.reset}`)},T0=($)=>{i=$},R0=($)=>{P=$},x={setEnabled:T0,setNetworkLogger:R0,connection:z0,request:S0,serverStart:k0,serverStop:I0,serverError:L0};var a={off:0,error:1,warn:2,info:3},v0={positive:["n'at!","yinz are good!","that's the way!","right on!","lookin' good!","way to go!","keep it up!"],neutral:["n'at","yinz know","just sayin'","that's how it is","what can ya do","it happens"],negative:["aw jeez","that ain't right","what a jagoff move","that's terrible n'at","somebody messed up","this is bad news","yinz better fix this"]},o=a.warn,c=null,P0=($)=>{let W=v0[$];return W[Math.floor(Math.random()*W.length)]??""},x0=(...$)=>{if(o<a.info)return;if(c)c.info(...$);else B$("info",...$)},C0=(...$)=>{if(o<a.warn)return;if(c)c.warn(...$);else B$("warn",...$)},b0=(...$)=>{if(o<a.error)return;if(c)c.error(...$);else B$("error",...$)},u0=($,W,Y)=>{if(o<a.info)return;let Z=C(),D="❓ ",Q="";if(W<50)D="⚡ ",Q=Math.random()<0.5?"lightning quick n'at!":"faster than a Stillers touchdown!";else if(W<100)D="\uD83D\uDD25 ",Q=Math.random()<0.5?"that's the way!":"smooth as butter n'at!";else if(W<200)D="✅ ",Q=Math.random()<0.5?"not bad yinz!":"keepin' up just fine!";else if(W<500)D="⚠️ ",Q=Math.random()<0.5?"eh, could be better":"slowin' down a bit there";else if(W<1000)D="\uD83D\uDC0C ",Q=Math.random()<0.5?"that's draggin' n'at":"c'mon, pick up the pace!";else D="\uD83D\uDCA5 ",Q=Math.random()<0.5?"what a jagoff response time!":"slower than traffic on the Parkway!";let X=`${w.magenta}[${h}] ${D} [${Z}] [PERF]${w.reset}`,G=Y?{...Y,executionTime:`${W}ms`}:{executionTime:`${W}ms`};console.log(`${X} ${$} -`,G,`- ${Q}`)},y0=($)=>{o={off:0,error:1,warn:2,info:3}[$]},h0=($)=>{c=$},B$=($,...W)=>{let Y=C(),Z="✅ ",D=w.cyan,Q="positive",X="info";if($==="error")Z="❌ ",D=w.red,Q="negative",X="error";else if($==="warn")Z="⚠️ ",D=w.yellow,Q="neutral",X="warn";else Z="✅ ",D=w.cyan,Q="positive",X="info";let G=P0(Q),V=`${D}[${h}] ${Z}[${Y}] [${$.toUpperCase()}]${w.reset}`;console[X](`${V}`,...W,`- ${G}`)},H={setLogLevel:y0,setCustomLogger:h0,info:x0,warn:C0,error:b0,perf:u0,levels:a};class E${setup;constructor($){this.setup=$}async handle($){try{if(J$($,this.setup._configuration.cors)){$._response._parseResponseIntoString();return}let Y=this.setup._routeRegistry._findRoute($.request.method,$.request.path);if(!Y){let B=await this.setup._hooks._onNotFound($);$._response._setBody(B),$._response._parseResponseIntoString();return}$.request.params=Y.params;let{handler:Z,options:D}=Y,{beforeHooks:Q=[],afterHooks:X=[]}=D,G=this.setup._hooks._beforeAll;for(let B of G)await B.handler($);for(let B of Q)await B($);let V=null;try{V=await Z($)}catch(B){throw B}for(let B of X)await B($);let A=this.setup._hooks._afterAll;for(let B of A)await B.handler($);if($._response._setBody(V),$.request.method==="HEAD")$._response._setBody(null);$._response._parseResponseIntoString();return}catch(W){await this.handleError($,W)}}async handleError($,W){try{let Y=this.setup._hooks._onError,Z=await Y($,W);$._response._setBody(Z),J$($,this.setup._configuration.cors),$._response._parseResponseIntoString(),$._response._setHeadersIfNotSet({Date:q$.default().format("ddd, DD MMM YYYY HH:mm:ss [GMT]"),"Content-Length":$._response._stringBody.split(`
1
+ var _0=Object.create;var{getPrototypeOf:w0,defineProperty:f$,getOwnPropertyNames:O0}=Object;var V0=Object.prototype.hasOwnProperty;var w$=($,W,Y)=>{Y=$!=null?_0(w0($)):{};let Z=W||!$||!$.__esModule?f$(Y,"default",{value:$,enumerable:!0}):Y;for(let D of O0($))if(!V0.call(Z,D))f$(Z,D,{get:()=>$[D],enumerable:!0});return Z};var N0=($,W)=>()=>(W||$((W={exports:{}}).exports,W),W.exports);var Q$=N0((O$,V$)=>{(function($,W){typeof O$=="object"&&typeof V$!="undefined"?V$.exports=W():typeof define=="function"&&define.amd?define(W):($=typeof globalThis!="undefined"?globalThis:$||self).dayjs=W()})(O$,function(){var $=1000,W=60000,Y=3600000,Z="millisecond",D="second",Q="minute",X="hour",G="day",V="week",A="month",q="quarter",z="year",L="date",e="Invalid Date",j$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,$$=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,H$={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var M=["th","st","nd","rd"],J=F%100;return"["+F+(M[(J-20)%10]||M[J]||M[0])+"]"}},r=function(F,M,J){var U=String(F);return!U||U.length>=M?F:""+Array(M+1-U.length).join(J)+F},W$={s:r,z:function(F){var M=-F.utcOffset(),J=Math.abs(M),U=Math.floor(J/60),K=J%60;return(M<=0?"+":"-")+r(U,2,"0")+":"+r(K,2,"0")},m:function F(M,J){if(M.date()<J.date())return-F(J,M);var U=12*(J.year()-M.year())+(J.month()-M.month()),K=M.clone().add(U,A),j=J-K<0,H=M.clone().add(U+(j?-1:1),A);return+(-(U+(J-K)/(j?K-H:H-K))||0)},a:function(F){return F<0?Math.ceil(F)||0:Math.floor(F)},p:function(F){return{M:A,y:z,w:V,d:G,D:L,h:X,m:Q,s:D,ms:Z,Q:q}[F]||String(F||"").toLowerCase().replace(/s$/,"")},u:function(F){return F===void 0}},f="en",l={};l[f]=H$;var h$="$isDayjsObject",_$=function(F){return F instanceof Z$||!(!F||!F[h$])},Y$=function F(M,J,U){var K;if(!M)return f;if(typeof M=="string"){var j=M.toLowerCase();l[j]&&(K=j),J&&(l[j]=J,K=j);var H=M.split("-");if(!K&&H.length>1)return F(H[0])}else{var N=M.name;l[N]=M,K=N}return!U&&K&&(f=K),K||!U&&f},S=function(F,M){if(_$(F))return F.clone();var J=typeof M=="object"?M:{};return J.date=F,J.args=arguments,new Z$(J)},O=W$;O.l=Y$,O.i=_$,O.w=function(F,M){return S(F,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var Z$=function(){function F(J){this.$L=Y$(J.locale,null,!0),this.parse(J),this.$x=this.$x||J.x||{},this[h$]=!0}var M=F.prototype;return M.parse=function(J){this.$d=function(U){var{date:K,utc:j}=U;if(K===null)return new Date(NaN);if(O.u(K))return new Date;if(K instanceof Date)return new Date(K);if(typeof K=="string"&&!/Z$/i.test(K)){var H=K.match(j$);if(H){var N=H[2]-1||0,B=(H[7]||"0").substring(0,3);return j?new Date(Date.UTC(H[1],N,H[3]||1,H[4]||0,H[5]||0,H[6]||0,B)):new Date(H[1],N,H[3]||1,H[4]||0,H[5]||0,H[6]||0,B)}}return new Date(K)}(J),this.init()},M.init=function(){var J=this.$d;this.$y=J.getFullYear(),this.$M=J.getMonth(),this.$D=J.getDate(),this.$W=J.getDay(),this.$H=J.getHours(),this.$m=J.getMinutes(),this.$s=J.getSeconds(),this.$ms=J.getMilliseconds()},M.$utils=function(){return O},M.isValid=function(){return this.$d.toString()!==e},M.isSame=function(J,U){var K=S(J);return this.startOf(U)<=K&&K<=this.endOf(U)},M.isAfter=function(J,U){return S(J)<this.startOf(U)},M.isBefore=function(J,U){return this.endOf(U)<S(J)},M.$g=function(J,U,K){return O.u(J)?this[U]:this.set(K,J)},M.unix=function(){return Math.floor(this.valueOf()/1000)},M.valueOf=function(){return this.$d.getTime()},M.startOf=function(J,U){var K=this,j=!!O.u(U)||U,H=O.p(J),N=function(g,v){var m=O.w(K.$u?Date.UTC(K.$y,v,g):new Date(K.$y,v,g),K);return j?m:m.endOf(G)},B=function(g,v){return O.w(K.toDate()[g].apply(K.toDate("s"),(j?[0,0,0,0]:[23,59,59,999]).slice(v)),K)},k=this.$W,I=this.$M,T=this.$D,s="set"+(this.$u?"UTC":"");switch(H){case z:return j?N(1,0):N(31,11);case A:return j?N(1,I):N(0,I+1);case V:var p=this.$locale().weekStart||0,n=(k<p?k+7:k)-p;return N(j?T-n:T+(6-n),I);case G:case L:return B(s+"Hours",0);case X:return B(s+"Minutes",1);case Q:return B(s+"Seconds",2);case D:return B(s+"Milliseconds",3);default:return this.clone()}},M.endOf=function(J){return this.startOf(J,!1)},M.$set=function(J,U){var K,j=O.p(J),H="set"+(this.$u?"UTC":""),N=(K={},K[G]=H+"Date",K[L]=H+"Date",K[A]=H+"Month",K[z]=H+"FullYear",K[X]=H+"Hours",K[Q]=H+"Minutes",K[D]=H+"Seconds",K[Z]=H+"Milliseconds",K)[j],B=j===G?this.$D+(U-this.$W):U;if(j===A||j===z){var k=this.clone().set(L,1);k.$d[N](B),k.init(),this.$d=k.set(L,Math.min(this.$D,k.daysInMonth())).$d}else N&&this.$d[N](B);return this.init(),this},M.set=function(J,U){return this.clone().$set(J,U)},M.get=function(J){return this[O.p(J)]()},M.add=function(J,U){var K,j=this;J=Number(J);var H=O.p(U),N=function(I){var T=S(j);return O.w(T.date(T.date()+Math.round(I*J)),j)};if(H===A)return this.set(A,this.$M+J);if(H===z)return this.set(z,this.$y+J);if(H===G)return N(1);if(H===V)return N(7);var B=(K={},K[Q]=W,K[X]=Y,K[D]=$,K)[H]||1,k=this.$d.getTime()+J*B;return O.w(k,this)},M.subtract=function(J,U){return this.add(-1*J,U)},M.format=function(J){var U=this,K=this.$locale();if(!this.isValid())return K.invalidDate||e;var j=J||"YYYY-MM-DDTHH:mm:ssZ",H=O.z(this),N=this.$H,B=this.$m,k=this.$M,I=K.weekdays,T=K.months,s=K.meridiem,p=function(v,m,t,D$){return v&&(v[m]||v(U,j))||t[m].slice(0,D$)},n=function(v){return O.s(N%12||12,v,"0")},g=s||function(v,m,t){var D$=v<12?"AM":"PM";return t?D$.toLowerCase():D$};return j.replace($$,function(v,m){return m||function(t){switch(t){case"YY":return String(U.$y).slice(-2);case"YYYY":return O.s(U.$y,4,"0");case"M":return k+1;case"MM":return O.s(k+1,2,"0");case"MMM":return p(K.monthsShort,k,T,3);case"MMMM":return p(T,k);case"D":return U.$D;case"DD":return O.s(U.$D,2,"0");case"d":return String(U.$W);case"dd":return p(K.weekdaysMin,U.$W,I,2);case"ddd":return p(K.weekdaysShort,U.$W,I,3);case"dddd":return I[U.$W];case"H":return String(N);case"HH":return O.s(N,2,"0");case"h":return n(1);case"hh":return n(2);case"a":return g(N,B,!0);case"A":return g(N,B,!1);case"m":return String(B);case"mm":return O.s(B,2,"0");case"s":return String(U.$s);case"ss":return O.s(U.$s,2,"0");case"SSS":return O.s(U.$ms,3,"0");case"Z":return H}return null}(v)||H.replace(":","")})},M.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},M.diff=function(J,U,K){var j,H=this,N=O.p(U),B=S(J),k=(B.utcOffset()-this.utcOffset())*W,I=this-B,T=function(){return O.m(H,B)};switch(N){case z:j=T()/12;break;case A:j=T();break;case q:j=T()/3;break;case V:j=(I-k)/604800000;break;case G:j=(I-k)/86400000;break;case X:j=I/Y;break;case Q:j=I/W;break;case D:j=I/$;break;default:j=I}return K?j:O.a(j)},M.daysInMonth=function(){return this.endOf(A).$D},M.$locale=function(){return l[this.$L]},M.locale=function(J,U){if(!J)return this.$L;var K=this.clone(),j=Y$(J,U,!0);return j&&(K.$L=j),K},M.clone=function(){return O.w(this.$d,this)},M.toDate=function(){return new Date(this.valueOf())},M.toJSON=function(){return this.isValid()?this.toISOString():null},M.toISOString=function(){return this.$d.toISOString()},M.toString=function(){return this.$d.toUTCString()},F}(),m$=Z$.prototype;return S.prototype=m$,[["$ms",Z],["$s",D],["$m",Q],["$H",X],["$W",G],["$M",A],["$y",z],["$D",L]].forEach(function(F){m$[F[1]]=function(M){return this.$g(M,F[0],F[1])}}),S.extend=function(F,M){return F.$i||(F(M,Z$,S),F.$i=!0),S},S.locale=Y$,S.isDayjs=_$,S.unix=function(F){return S(1000*F)},S.en=l[f],S.Ls=l,S.p={},S})});import{createServer as r1}from"net";var B$=w$(Q$(),1);var X$={ok:"OK",created:"Created",accepted:"Accepted",noContent:"No Content",movedPermanently:"Moved Permanently",found:"Found",notModified:"Not Modified",badRequest:"Bad Request",unauthorized:"Unauthorized",forbidden:"Forbidden",notFound:"Not Found",methodNotAllowed:"Method Not Allowed",conflict:"Conflict",unsupportedMediaType:"Unsupported Media Type",tooManyRequests:"Too Many Requests",internalServerError:"Internal Server Error"},u={ok:200,created:201,accepted:202,noContent:204,movedPermanently:301,found:302,notModified:304,badRequest:400,unauthorized:401,forbidden:403,notFound:404,methodNotAllowed:405,conflict:409,unsupportedMediaType:415,tooManyRequests:429,internalServerError:500},E={delete:"DELETE",get:"GET",head:"HEAD",post:"POST",put:"PUT",patch:"PATCH",options:"OPTIONS"},R={json:"application/json",html:"text/html",form:"application/x-www-form-urlencoded",multipart:"multipart/form-data",xml:"application/xml",text:"text/plain",csv:"text/csv",yamlApplication:"application/yaml",yamlText:"text/yaml",urlEncodedJson:"application/x-www-form-urlencoded+json"},y={authorization:"Authorization",proxyAuthorization:"Proxy-Authorization",wwwAuthenticate:"WWW-Authenticate",cacheControl:"Cache-Control",etag:"ETag",expires:"Expires",lastModified:"Last-Modified",ifMatch:"If-Match",ifNoneMatch:"If-None-Match",ifModifiedSince:"If-Modified-Since",ifUnmodifiedSince:"If-Unmodified-Since",ifRange:"If-Range",age:"Age",vary:"Vary",contentType:"Content-Type",contentLength:"Content-Length",contentEncoding:"Content-Encoding",contentLanguage:"Content-Language",contentDisposition:"Content-Disposition",contentLocation:"Content-Location",contentRange:"Content-Range",accessControlAllowCredentials:"Access-Control-Allow-Credentials",accessControlAllowHeaders:"Access-Control-Allow-Headers",accessControlAllowMethods:"Access-Control-Allow-Methods",accessControlAllowOrigin:"Access-Control-Allow-Origin",accessControlExposeHeaders:"Access-Control-Expose-Headers",accessControlMaxAge:"Access-Control-Max-Age",accessControlRequestHeaders:"Access-Control-Request-Headers",accessControlRequestMethod:"Access-Control-Request-Method",accept:"Accept",acceptEncoding:"Accept-Encoding",acceptLanguage:"Accept-Language",acceptRanges:"Accept-Ranges",host:"Host",userAgent:"User-Agent",referer:"Referer",origin:"Origin",from:"From",expect:"Expect",location:"Location",server:"Server",date:"Date",allow:"Allow",retryAfter:"Retry-After",range:"Range",contentSecurityPolicy:"Content-Security-Policy",contentSecurityPolicyReportOnly:"Content-Security-Policy-Report-Only",strictTransportSecurity:"Strict-Transport-Security",xContentTypeOptions:"X-Content-Type-Options",xFrameOptions:"X-Frame-Options",xXSSProtection:"X-XSS-Protection",referrerPolicy:"Referrer-Policy",permissionsPolicy:"Permissions-Policy",crossOriginEmbedderPolicy:"Cross-Origin-Embedder-Policy",crossOriginOpenerPolicy:"Cross-Origin-Opener-Policy",crossOriginResourcePolicy:"Cross-Origin-Resource-Policy",cookie:"Cookie",setCookie:"Set-Cookie",connection:"Connection",keepAlive:"Keep-Alive",upgrade:"Upgrade",upgradeInsecureRequests:"Upgrade-Insecure-Requests",transferEncoding:"Transfer-Encoding",te:"TE",trailer:"Trailer",forwarded:"Forwarded",xForwardedFor:"X-Forwarded-For",via:"Via",maxForwards:"Max-Forwards",altSvc:"Alt-Svc",altUsed:"Alt-Used",timingAllowOrigin:"Timing-Allow-Origin",serverTiming:"Server-Timing",refresh:"Refresh",link:"Link",xPoweredBy:"X-Powered-By",xPermittedCrossDomainPolicies:"X-Permitted-Cross-Domain-Policies",reportTo:"Report-To",serviceWorkerAllowed:"Service-Worker-Allowed",sourceMap:"SourceMap",priority:"Priority",secGPC:"Sec-GPC",clearSiteData:"Clear-Site-Data",noVarySearch:"No-Vary-Search"},d={base64:"base64",binary:"binary",utf8:"utf8"};var J$=($,W)=>{if(!W.enabled)return!1;if($.request.method==="OPTIONS"){if(!p$($,W))return $.response.setStatusCode(403),$._response._setBody({error:"CORS: Origin not allowed",origin:$.request.headers.origin}),!0;$.response.setStatusCode(W.optionsSuccessStatus);let D=l$($,W);if($._response._setHeadersIfNotSet({[y.accessControlAllowOrigin]:D,[y.accessControlAllowMethods]:W.methods.join(", "),[y.accessControlAllowHeaders]:typeof W.allowedHeaders==="string"?W.allowedHeaders:W.allowedHeaders.join(", "),[y.accessControlAllowCredentials]:W.credentials?"true":"false",[y.accessControlExposeHeaders]:W.exposedHeaders.join(", "),[y.accessControlMaxAge]:W.maxAge.toString()}),W.preflightContinue)return!1;return $._response._setBody(""),!0}if(p$($,W)){let Z=l$($,W);$._response._setHeadersIfNotSet({[y.accessControlAllowOrigin]:Z,[y.accessControlAllowCredentials]:W.credentials?"true":"false"})}return!1},l$=($,W)=>{if(W.origin==="*"){if(W.credentials)throw new Error('CORS Security Error: origin: "*" with credentials: true is forbidden by CORS spec and creates security vulnerabilities. Use specific origins instead.');return"*"}let Y=$.request.headers.origin;if(Y)return Y;if(typeof W.origin==="string")return W.origin;if(Array.isArray(W.origin)&&W.origin.length>0){let[Z]=W.origin;return Z??"null"}return"null"},p$=($,W)=>{if(W.origin==="*")return!0;let Y=$.request.headers.origin?.toLowerCase()??"";if(typeof W.origin==="function")return Boolean(W.origin(Y,$.request));if(typeof W.origin==="string")return Y===W.origin.toLowerCase();if(Array.isArray(W.origin))return W.origin.some((Z)=>Y===Z.toLowerCase());if(W.origin instanceof RegExp)return W.origin.test(Y);return!1};var g$=w$(Q$(),1),h="YINZER",w={reset:"\x1B[0m",cyan:"\x1B[96m",yellow:"\x1B[93m",red:"\x1B[91m",green:"\x1B[92m",magenta:"\x1B[95m",gray:"\x1B[90m"},q0={positive:["n'at!","yinz are good!","that's the way!","right on!","lookin' good!","way to go!","keep it up!"],neutral:["n'at","yinz know","just sayin'","that's how it is","what can ya do","it happens"],negative:["aw jeez","that ain't right","what a jagoff move","that's terrible n'at","somebody messed up","this is bad news","yinz better fix this"]},i=!1,P=null,C=()=>g$.default().format("YYYY-MM-DD HH:mm:ss.SSS"),N$=($)=>{let W=q0[$];return W[Math.floor(Math.random()*W.length)]??""},B0=($)=>{if(typeof $==="string")return Buffer.byteLength($,"utf8");if(Buffer.isBuffer($))return $.length;if(typeof $==="object"&&$!==null)try{return Buffer.byteLength(JSON.stringify($),"utf8")}catch{return 0}return 0},E0=($)=>{if($>=200&&$<300)return"✅";if($>=300&&$<400)return"\uD83D\uDD04";if($>=400&&$<500)return"❌";if($>=500)return"\uD83D\uDCA5";return"❓"},A0=($)=>{if($<50)return{emoji:"⚡",phrase:Math.random()<0.5?"lightning quick n'at!":"faster than a Stillers touchdown!"};if($<100)return{emoji:"\uD83D\uDD25",phrase:Math.random()<0.5?"that's the way!":"smooth as butter n'at!"};if($<200)return{emoji:"✅",phrase:Math.random()<0.5?"not bad yinz!":"keepin' up just fine!"};if($<500)return{emoji:"⚠️",phrase:Math.random()<0.5?"eh, could be better":"slowin' down a bit there"};if($<1000)return{emoji:"\uD83D\uDC0C",phrase:Math.random()<0.5?"that's draggin' n'at":"c'mon, pick up the pace!"};return{emoji:"\uD83D\uDCA5",phrase:Math.random()<0.5?"what a jagoff response time!":"slower than traffic on the Parkway!"}},z0=($,W,Y)=>{if(!i)return;let Z=C(),D=W??"unknown",Q=Y?` - ${Y}`:"",X="",G="info";if($==="connect")X=`\uD83E\uDD1D [NETWORK] New visitor from ${D} - Welcome to the 'Burgh!`;else if($==="disconnect")X=`\uD83D\uDC4B [NETWORK] ${D} headed out - Thanks for stopping by, yinz come back now!`;else X=`\uD83D\uDCA5 [NETWORK] Connection trouble with ${D}${Q} - That's not good, n'at!`,G="error";if(P)P[G](X);else{let V=G==="error"?w.red:w.gray;console.log(`${V}[${h}] [${Z}] ${X}${w.reset}`)}},S0=($,W,Y)=>{if(!i)return;let{request:Z}=$,D=$._response,Q=(Y-W).toFixed(1),X=Z.ipAddress||"unknown",{method:G,path:V,protocol:A}=Z,q=D._statusCode,z=B0(D._body),L=Z.headers.referer?`"${Z.headers.referer}"`:'"-"',e=Z.headers["user-agent"]?`"${Z.headers["user-agent"]}"`:'"-"',j$=E0(q),$$=`\uD83C\uDFE0 ${X} - - [${C()}] "${G} ${V} ${A}" ${q} ${z}b ${L} ${e} ${Q}ms ${j$}`,H$=parseFloat(Q),{emoji:r,phrase:W$}=A0(H$),f=`${r} [PERF] Response time: ${Q}ms - ${W$}`;if(P)P.info(`[NETWORK] ${$$}`),P.info(`[PERF] ${f}`);else console.log(`${w.gray}[${h}] [${C()}] [NETWORK] ${$$}${w.reset}`),console.log(`${w.magenta}[${h}] ${r} [${C()}] [PERF] Response time: ${Q}ms - ${W$}${w.reset}`)},k0=($,W)=>{if(!i)return;let Y=C(),Z=$&&W?`${W}:${$}`:"unknown",D=N$("positive"),Q=`\uD83D\uDE80 [NETWORK] YinzerFlow server is up and running at ${Z} - Ready to serve yinz all, ${D}!`;if(P)P.info(Q);else console.log(`${w.gray}[${h}] [${Y}] ${Q}${w.reset}`)},I0=($,W)=>{if(!i)return;let Y=C(),Z=$&&W?`${W}:${$}`:"unknown",D=N$("neutral"),Q=`\uD83D\uDED1 [NETWORK] YinzerFlow server at ${Z} is shutting down - See yinz later, ${D}!`;if(P)P.info(Q);else console.log(`${w.gray}[${h}] [${Y}] ${Q}${w.reset}`)},L0=($,W,Y)=>{if(!i)return;let Z=C(),D=$&&W?`${W}:${$}`:"unknown",Q=Y?` - ${Y}`:"",X=N$("negative"),G=`\uD83D\uDCA5 [NETWORK] Server error at ${D}${Q} - Something's not right, ${X}!`;if(P)P.error(G);else console.log(`${w.red}[${h}] [${Z}] ${G}${w.reset}`)},v0=($)=>{i=$},T0=($)=>{P=$},x={setEnabled:v0,setNetworkLogger:T0,connection:z0,request:S0,serverStart:k0,serverStop:I0,serverError:L0};var a={off:0,error:1,warn:2,info:3},R0={positive:["n'at!","yinz are good!","that's the way!","right on!","lookin' good!","way to go!","keep it up!"],neutral:["n'at","yinz know","just sayin'","that's how it is","what can ya do","it happens"],negative:["aw jeez","that ain't right","what a jagoff move","that's terrible n'at","somebody messed up","this is bad news","yinz better fix this"]},o=a.warn,c=null,P0=($)=>{let W=R0[$];return W[Math.floor(Math.random()*W.length)]??""},x0=(...$)=>{if(o<a.info)return;if(c)c.info(...$);else q$("info",...$)},C0=(...$)=>{if(o<a.warn)return;if(c)c.warn(...$);else q$("warn",...$)},b0=(...$)=>{if(o<a.error)return;if(c)c.error(...$);else q$("error",...$)},u0=($,W,Y)=>{if(o<a.info)return;let Z=C(),D="❓ ",Q="";if(W<50)D="⚡ ",Q=Math.random()<0.5?"lightning quick n'at!":"faster than a Stillers touchdown!";else if(W<100)D="\uD83D\uDD25 ",Q=Math.random()<0.5?"that's the way!":"smooth as butter n'at!";else if(W<200)D="✅ ",Q=Math.random()<0.5?"not bad yinz!":"keepin' up just fine!";else if(W<500)D="⚠️ ",Q=Math.random()<0.5?"eh, could be better":"slowin' down a bit there";else if(W<1000)D="\uD83D\uDC0C ",Q=Math.random()<0.5?"that's draggin' n'at":"c'mon, pick up the pace!";else D="\uD83D\uDCA5 ",Q=Math.random()<0.5?"what a jagoff response time!":"slower than traffic on the Parkway!";let X=`${w.magenta}[${h}] ${D} [${Z}] [PERF]${w.reset}`,G=Y?{...Y,executionTime:`${W}ms`}:{executionTime:`${W}ms`};console.log(`${X} ${$} -`,G,`- ${Q}`)},y0=($)=>{o={off:0,error:1,warn:2,info:3}[$]},h0=($)=>{c=$},q$=($,...W)=>{let Y=C(),Z="✅ ",D=w.cyan,Q="positive",X="info";if($==="error")Z="❌ ",D=w.red,Q="negative",X="error";else if($==="warn")Z="⚠️ ",D=w.yellow,Q="neutral",X="warn";else Z="✅ ",D=w.cyan,Q="positive",X="info";let G=P0(Q),V=`${D}[${h}] ${Z}[${Y}] [${$.toUpperCase()}]${w.reset}`;console[X](`${V}`,...W,`- ${G}`)},_={setLogLevel:y0,setCustomLogger:h0,info:x0,warn:C0,error:b0,perf:u0,levels:a};class E${setup;constructor($){this.setup=$}async handle($){try{if(J$($,this.setup._configuration.cors)){$._response._parseResponseIntoString();return}let Y=this.setup._routeRegistry._findRoute($.request.method,$.request.path);if(!Y){let q=await this.setup._hooks._onNotFound($);$._response._setBody(q),$._response._parseResponseIntoString();return}$.request.params=Y.params;let{handler:Z,options:D}=Y,{beforeHooks:Q=[],afterHooks:X=[]}=D,G=this.setup._hooks._beforeAll;for(let q of G)await q.handler($);for(let q of Q)await q($);let V=null;try{V=await Z($)}catch(q){throw q}for(let q of X)await q($);let A=this.setup._hooks._afterAll;for(let q of A)await q.handler($);if($._response._setBody(V),$.request.method==="HEAD")$._response._setBody(null);$._response._parseResponseIntoString();return}catch(W){await this.handleError($,W)}}async handleError($,W){try{let Y=this.setup._hooks._onError,Z=await Y($,W);$._response._setBody(Z),J$($,this.setup._configuration.cors),$._response._parseResponseIntoString(),$._response._setHeadersIfNotSet({Date:B$.default().format("ddd, DD MMM YYYY HH:mm:ss [GMT]"),"Content-Length":$._response._stringBody.split(`
2
2
 
3
- `)[1]?.length.toString()??"0"})}catch(Y){H.error("Error handler failed, this might be an internal error in the YinzerFlow framework: ",Y),$.response.setStatusCode(500),$._response._setBody({success:!1,message:"Internal Server Error"}),J$($,this.setup._configuration.cors),$._response._parseResponseIntoString(),$._response._setHeadersIfNotSet({Date:q$.default().format("ddd, DD MMM YYYY HH:mm:ss [GMT]"),"Content-Length":$._response._stringBody.split(`
3
+ `)[1]?.length.toString()??"0"})}catch(Y){_.error("Error handler failed, this might be an internal error in the YinzerFlow framework: ",Y),$.response.setStatusCode(500),$._response._setBody({success:!1,message:"Internal Server Error"}),J$($,this.setup._configuration.cors),$._response._parseResponseIntoString(),$._response._setHeadersIfNotSet({Date:B$.default().format("ddd, DD MMM YYYY HH:mm:ss [GMT]"),"Content-Length":$._response._stringBody.split(`
4
4
 
5
- `)[1]?.length.toString()??"0"})}}}var c$=["__proto__","constructor","prototype"],s$=($,W)=>{if(!$||!$.trim()||$.trim()==="\x00")return;let Y=Buffer.byteLength($,"utf8");if(Y>W.maxSize)throw H.warn("[SECURITY] JSON request body too large",{size:Y,limit:W.maxSize,sizeMB:Math.round(Y/1024/1024)}),new Error(`Request body too large: ${Y} bytes exceeds limit of ${W.maxSize} bytes`);let Z=null;try{Z=JSON.parse($)}catch(D){let Q=D instanceof Error?D.message:String(D);throw new Error(`Invalid JSON syntax: ${Q}`)}try{A$(Z,W,1)}catch(D){let Q=D instanceof Error?D.message:String(D);throw new Error(`JSON security validation failed: ${Q}`)}return Z},m0=($,W)=>{if(typeof $==="string"&&$.length>W.maxStringLength)throw new Error(`String too long: ${$.length} characters exceeds limit of ${W.maxStringLength}`)},f0=($,W,Y)=>{if($.length>W.maxArrayLength)throw new Error(`Array too large: ${$.length} elements exceeds limit of ${W.maxArrayLength}`);for(let Z of $)A$(Z,W,Y+1)},l0=($,W)=>{if($.length>W.maxKeys)throw new Error(`Object has too many keys: ${$.length} exceeds limit of ${W.maxKeys}`);if(!W.allowPrototypeProperties){for(let Y of $)if(c$.includes(Y))throw H.warn("[SECURITY] Prototype pollution attempt detected",{property:Y,dangerousProperties:c$}),new Error(`Prototype pollution attempt detected: property '${Y}' is not allowed`)}},p0=($,W,Y)=>{let Z=Object.keys($);for(let D of Z){if(D.length>W.maxStringLength)throw new Error(`Object key too long: '${D.substring(0,50)}...' exceeds limit of ${W.maxStringLength}`);let Q=$[D];if(typeof Q==="string"&&Q.length>W.maxStringLength)throw new Error(`String value too long: property '${D}' has ${Q.length} characters, exceeds limit of ${W.maxStringLength}`);A$(Q,W,Y+1)}},A$=($,W,Y)=>{if(Y>W.maxDepth)throw H.warn("[SECURITY] JSON nesting too deep - potential stack overflow attack",{currentDepth:Y,maxDepth:W.maxDepth}),new Error(`JSON nesting too deep: current depth ${Y} exceeds maximum depth of ${W.maxDepth}`);if($===null||typeof $!=="object"){m0($,W);return}if(Array.isArray($)){f0($,W,Y);return}let Z=Object.keys($);l0(Z,W),p0($,W,Y)};var g0=($)=>{let W=$.startsWith(`\r
5
+ `)[1]?.length.toString()??"0"})}}}var c$=["__proto__","constructor","prototype"],r$=($,W)=>{if(!$||!$.trim()||$.trim()==="\x00")return;let Y=Buffer.byteLength($,"utf8");if(Y>W.maxSize)throw _.warn("[SECURITY] JSON request body too large",{size:Y,limit:W.maxSize,sizeMB:Math.round(Y/1024/1024)}),new Error(`Request body too large: ${Y} bytes exceeds limit of ${W.maxSize} bytes`);let Z=null;try{Z=JSON.parse($)}catch(D){let Q=D instanceof Error?D.message:String(D);throw new Error(`Invalid JSON syntax: ${Q}`)}try{A$(Z,W,1)}catch(D){let Q=D instanceof Error?D.message:String(D);throw new Error(`JSON security validation failed: ${Q}`)}return Z},m0=($,W)=>{if(typeof $==="string"&&$.length>W.maxStringLength)throw new Error(`String too long: ${$.length} characters exceeds limit of ${W.maxStringLength}`)},f0=($,W,Y)=>{if($.length>W.maxArrayLength)throw new Error(`Array too large: ${$.length} elements exceeds limit of ${W.maxArrayLength}`);for(let Z of $)A$(Z,W,Y+1)},l0=($,W)=>{if($.length>W.maxKeys)throw new Error(`Object has too many keys: ${$.length} exceeds limit of ${W.maxKeys}`);if(!W.allowPrototypeProperties){for(let Y of $)if(c$.includes(Y))throw _.warn("[SECURITY] Prototype pollution attempt detected",{property:Y,dangerousProperties:c$}),new Error(`Prototype pollution attempt detected: property '${Y}' is not allowed`)}},p0=($,W,Y)=>{let Z=Object.keys($);for(let D of Z){if(D.length>W.maxStringLength)throw new Error(`Object key too long: '${D.substring(0,50)}...' exceeds limit of ${W.maxStringLength}`);let Q=$[D];if(typeof Q==="string"&&Q.length>W.maxStringLength)throw new Error(`String value too long: property '${D}' has ${Q.length} characters, exceeds limit of ${W.maxStringLength}`);A$(Q,W,Y+1)}},A$=($,W,Y)=>{if(Y>W.maxDepth)throw _.warn("[SECURITY] JSON nesting too deep - potential stack overflow attack",{currentDepth:Y,maxDepth:W.maxDepth}),new Error(`JSON nesting too deep: current depth ${Y} exceeds maximum depth of ${W.maxDepth}`);if($===null||typeof $!=="object"){m0($,W);return}if(Array.isArray($)){f0($,W,Y);return}let Z=Object.keys($);l0(Z,W),p0($,W,Y)};var g0=($)=>{let W=$.startsWith(`\r
6
6
  `)?$.slice(2):$,Y=W.indexOf(`\r
7
7
  \r
8
- `);if(Y===-1)return["",""];let Z=W.slice(0,Y),D=W.slice(Y+4);return[Z,D]},c0=($)=>{let W={name:""},Y=/name=(?:"(?<temp2>[^"]*)"|(?<temp1>[^;,\s]+))/i.exec($),Z=/filename=(?:"(?<temp2>[^"]*)"|(?<temp1>[^;,\s]+))/i.exec($);if(Y)W.name=Y[1]??Y[2]??"";if(Z){let D=Z[1]??Z[2];if(D)W.filename=D}return W},s0=($)=>{let Y=$.split(/\r?\n/).find((Z)=>Z.toLowerCase().startsWith("content-type:"));if(!Y)return"application/octet-stream";return Y.slice(Y.indexOf(":")+1).trim().split(";")[0]?.trim()??"application/octet-stream"},d0=($)=>{return["image/","audio/","video/","application/octet-stream","application/pdf","application/zip","application/x-"].some((Y)=>$.toLowerCase().startsWith(Y))},r0=($)=>Buffer.isBuffer($)?$.length:Buffer.byteLength($,"utf8"),i0=($,W)=>{if(!W)return;if($.size>W.maxFileSize)throw H.warn("[SECURITY] File upload too large",{filename:$.filename,size:$.size,limit:W.maxFileSize,sizeMB:Math.round($.size/1024/1024)}),new Error(`File too large: ${$.filename} is ${$.size} bytes, exceeds limit of ${W.maxFileSize} bytes`);if($.filename&&$.filename.length>W.maxFilenameLength)throw new Error(`Filename too long: ${$.filename.length} characters exceeds limit of ${W.maxFilenameLength}`);if($.filename){let Y=$.filename.toLowerCase().substring($.filename.lastIndexOf("."));if(W.blockedExtensions.includes(Y))throw H.warn("[SECURITY] Blocked file type upload attempt",{filename:$.filename,extension:Y,blockedExtensions:W.blockedExtensions}),new Error(`File type not allowed: ${Y} files are blocked for security reasons`);if(W.allowedExtensions.length>0&&!W.allowedExtensions.includes(Y))throw new Error(`File type not allowed: ${Y} is not in the allowed extensions list`)}},a0=({contentDisposition:$,contentSection:W,headersSection:Y,config:Z})=>{let D=s0(Y),Q=W.endsWith(`\r
9
- `)?W.slice(0,-2):W,X=d0(D)?Buffer.from(Q,"binary"):Q,G={filename:$.filename??"",contentType:D,size:r0(X),content:X};return i0(G,Z),G},d$=($,W,Y)=>{let Z={fields:{},files:[]},D=$.split(`--${W}`).slice(1),Q=0;for(let X of D){if(!X||X.trim()===""||X.trim()==="--")continue;let[G,V]=g0(X);if(!G)continue;let B=G.split(/\r?\n/).find((L)=>L.toLowerCase().startsWith("content-disposition:"));if(!B)continue;let z=c0(B);if(!z.name)continue;if(z.filename!==void 0){if(Y&&Z.files.length>=Y.maxFiles)throw H.warn("[SECURITY] Too many files in upload request",{fileCount:Z.files.length,maxFiles:Y.maxFiles}),new Error(`Too many files: maximum of ${Y.maxFiles} files allowed per request`);let L=a0({contentDisposition:z,contentSection:V,headersSection:G,config:Y});if(Q+=L.size,Y&&Q>Y.maxTotalSize)throw H.warn("[SECURITY] Total upload size too large",{totalSize:Q,limit:Y.maxTotalSize,totalSizeMB:Math.round(Q/1024/1024)}),new Error(`Total file size too large: ${Q} bytes exceeds limit of ${Y.maxTotalSize} bytes`);Z.files.push(L)}if(z.filename===void 0){let L=V.endsWith(`\r
10
- `)?V.slice(0,-2):V;Z.fields[z.name]=L}}return Z};var n0=($,W)=>{if($.length>W.maxFields)throw new Error(`Too many form fields: ${$.length} exceeds limit of ${W.maxFields}`)},t0=($,W,Y)=>{if($.length>Y.maxFieldNameLength)throw new Error(`Form field name too long: ${$.length} characters exceeds limit of ${Y.maxFieldNameLength}`);if(W&&W.length>Y.maxFieldLength)throw new Error(`Form field value too long: field '${$}' has ${W.length} characters, exceeds limit of ${Y.maxFieldLength}`)},o0=($,W,Y)=>{if($.length>Y.maxFieldNameLength)throw new Error(`Decoded form field name too long: ${$.length} characters exceeds limit of ${Y.maxFieldNameLength}`);if(W.length>Y.maxFieldLength)throw new Error(`Decoded form field value too long: field '${$}' has ${W.length} characters, exceeds limit of ${Y.maxFieldLength}`)},e0=($,W,Y)=>{let[Z,D]=$.split("=");if(!Z)return;if(Y)t0(Z,D,Y);try{let Q=decodeURIComponent(Z),X=D?decodeURIComponent(D):"";if(Y)o0(Q,X,Y);W[Q]=X}catch(Q){if(Q instanceof Error&&Q.message.includes("exceeds limit"))throw Q;W[Z]=D??""}},r$=($,W)=>{let Y={},Z=$.split("&");if(W)n0(Z,W);for(let D of Z)e0(D,Y,W);return Y};var K$={JPEG:[255,216,255],PNG:[137,80,78,71],GIF87A:[71,73,70,56,55,97],GIF89A:[71,73,70,56,57,97],BMP:[66,77],TIFF_LE:[73,73,42,0],TIFF_BE:[77,77,0,42],WEBP:[82,73,70,70],ICO:[0,0,1,0],MP3_ID3:[73,68,51],MP3_FRAME:[255,251],WAV:[82,73,70,70],FLAC:[102,76,97,67],OGG:[79,103,103,83],MP4_FTYP:[0,0,0,24,102,116,121,112],MP4_FTYP_ALT:[0,0,0,28,102,116,121,112],AVI:[82,73,70,70],WEBM:[26,69,223,163],PDF:[37,80,68,70],ZIP:[80,75,3,4],ZIP_EMPTY:[80,75,5,6],ZIP_SPANNED:[80,75,7,8],RAR:[82,97,114,33,26,7,0],RAR5:[82,97,114,33,26,7,1,0],SEVENZ:[55,122,188,175,39,28],GZIP:[31,139],EXE:[77,90],ELF:[127,69,76,70],OFFICE_OLD:[208,207,17,224,161,177,26,225]},M$=($,W)=>{if($.length<W.length)return!1;return W.every((Y,Z)=>$[Z]===Y)},$1=($)=>{if(M$($,K$.WEBP)&&$.length>=12)return $.subarray(8,12).toString("ascii")==="WEBP";if(M$($,K$.WAV)&&$.length>=12)return $.subarray(8,12).toString("ascii")==="WAVE";if(M$($,K$.AVI)&&$.length>=12)return $.subarray(8,12).toString("ascii")==="AVI ";return!1},G$=($,W)=>{if(!$)return W1(W);let Y=$.toLowerCase();if(Y.startsWith("image/")||Y.startsWith("video/")||Y.startsWith("audio/")||Y==="application/pdf"||Y==="application/octet-stream"||Y.startsWith("application/zip")||Y.startsWith("application/x-"))return"base64";if(Y.startsWith("text/")||Y.startsWith("application/json")||Y.startsWith("application/xml")||Y.startsWith("application/javascript"))return"utf8";return"binary"},W1=($)=>{if(Buffer.isBuffer($))return Y1($)?"base64":"utf8";if(typeof $==="object"&&$!==null)return"utf8";if(typeof $==="string")return"utf8";return"utf8"},Y1=($)=>{if($.length===0)return!1;let W=Object.values(K$);for(let D of W)if(M$($,D))return!0;if($1($))return!0;let Y=$.filter((D)=>D===0).length,Z=$.filter((D)=>D<32&&D!==9&&D!==10&&D!==13).length;return Y/$.length>0.1||Z/$.length>0.3};var Z1=($)=>{if(!($.startsWith("{")&&$.endsWith("}")||$.startsWith("[")&&$.endsWith("]")))return!1;try{return JSON.parse($),!0}catch{return!1}},D1=($)=>$.includes("=")&&$.includes("&"),Q1=($)=>$.includes("boundary="),X1=($)=>typeof $==="object"&&$!==null&&!Buffer.isBuffer($)&&!($ instanceof Uint8Array)&&!($ instanceof ArrayBuffer)&&!($ instanceof Date),J1=($)=>$ instanceof Date,K1=($)=>{if(Buffer.isBuffer($))return $;return Buffer.from($)},M1=($)=>{return G$(void 0,$)==="base64"?"application/octet-stream":"text/plain"},z$=($)=>{let W=$.trim();if(Z1(W))return v.json;if(D1(W))return v.form;if(Q1(W))return v.multipart;return"text/plain"},i$=($)=>{if($===null||$===void 0)return"text/plain";if(J1($))return"text/plain";if(X1($))return v.json;if(typeof $==="string")return z$($);if(Buffer.isBuffer($)||$ instanceof Uint8Array||$ instanceof ArrayBuffer){let W=K1($);return M1(W)}return"text/plain"};var G1=($,W,Y)=>{let Z=Buffer.byteLength($,"utf8");if(W===v.json){if(Z>Y.json.maxSize)throw new Error(`JSON body too large: ${Z} bytes exceeds limit of ${Y.json.maxSize} bytes`)}else if(W===v.form){if(Z>Y.urlEncoded.maxSize)throw new Error(`URL-encoded body too large: ${Z} bytes exceeds limit of ${Y.urlEncoded.maxSize} bytes`)}else if(W===v.multipart){if(Z>Y.fileUploads.maxTotalSize)throw new Error(`Multipart body too large: ${Z} bytes exceeds limit of ${Y.fileUploads.maxTotalSize} bytes`)}},a$=($,W={})=>{let{headerContentType:Y,boundary:Z,config:D}=W;if(!$||!$.trim())return;let Q=Y??z$($);if(D)G1($,Q,D);if(Q===v.json){if(!D)throw new Error("Body parser configuration is required for JSON parsing");return s$($,D.json)}if(Q===v.multipart){if(!Z)throw new Error("Invalid multipart form data: missing boundary");return d$($,Z,D?.fileUploads)}if(Q===v.form)return r$($,D?.urlEncoded);return $};var S$=($,W)=>{let Y=$.indexOf(W);if(Y===-1)return[$,""];let Z=$.slice(0,Y),D=$.slice(Y+W.length);return[Z,D]};var n$=($)=>{if(!$||!$.trim())return{method:"GET",path:"/",protocol:"HTTP/1.1",headersRaw:"",rawBody:""};let[W,Y]=S$($,`\r
8
+ `);if(Y===-1)return["",""];let Z=W.slice(0,Y),D=W.slice(Y+4);return[Z,D]},c0=($)=>{let W={name:""},Y=/name=(?:"(?<temp2>[^"]*)"|(?<temp1>[^;,\s]+))/i.exec($),Z=/filename=(?:"(?<temp2>[^"]*)"|(?<temp1>[^;,\s]+))/i.exec($);if(Y)W.name=Y[1]??Y[2]??"";if(Z){let D=Z[1]??Z[2];if(D)W.filename=D}return W},r0=($)=>{let Y=$.split(/\r?\n/).find((Z)=>Z.toLowerCase().startsWith("content-type:"));if(!Y)return"application/octet-stream";return Y.slice(Y.indexOf(":")+1).trim().split(";")[0]?.trim()??"application/octet-stream"},s0=($)=>{return["image/","audio/","video/","application/octet-stream","application/pdf","application/zip","application/x-"].some((Y)=>$.toLowerCase().startsWith(Y))},d0=($)=>Buffer.isBuffer($)?$.length:Buffer.byteLength($,"utf8"),i0=($,W)=>{if(!W)return;if($.size>W.maxFileSize)throw _.warn("[SECURITY] File upload too large",{filename:$.filename,size:$.size,limit:W.maxFileSize,sizeMB:Math.round($.size/1024/1024)}),new Error(`File too large: ${$.filename} is ${$.size} bytes, exceeds limit of ${W.maxFileSize} bytes`);if($.filename&&$.filename.length>W.maxFilenameLength)throw new Error(`Filename too long: ${$.filename.length} characters exceeds limit of ${W.maxFilenameLength}`);if($.filename){let Y=$.filename.toLowerCase().substring($.filename.lastIndexOf("."));if(W.blockedExtensions.includes(Y))throw _.warn("[SECURITY] Blocked file type upload attempt",{filename:$.filename,extension:Y,blockedExtensions:W.blockedExtensions}),new Error(`File type not allowed: ${Y} files are blocked for security reasons`);if(W.allowedExtensions.length>0&&!W.allowedExtensions.includes(Y))throw new Error(`File type not allowed: ${Y} is not in the allowed extensions list`)}},a0=({contentDisposition:$,contentSection:W,headersSection:Y,config:Z})=>{let D=r0(Y),Q=W.endsWith(`\r
9
+ `)?W.slice(0,-2):W,X=s0(D)?Buffer.from(Q,"binary"):Q,G={filename:$.filename??"",contentType:D,size:d0(X),content:X};return i0(G,Z),G},s$=($,W,Y)=>{let Z={fields:{},files:[]},D=$.split(`--${W}`).slice(1),Q=0;for(let X of D){if(!X||X.trim()===""||X.trim()==="--")continue;let[G,V]=g0(X);if(!G)continue;let q=G.split(/\r?\n/).find((L)=>L.toLowerCase().startsWith("content-disposition:"));if(!q)continue;let z=c0(q);if(!z.name)continue;if(z.filename!==void 0){if(Y&&Z.files.length>=Y.maxFiles)throw _.warn("[SECURITY] Too many files in upload request",{fileCount:Z.files.length,maxFiles:Y.maxFiles}),new Error(`Too many files: maximum of ${Y.maxFiles} files allowed per request`);let L=a0({contentDisposition:z,contentSection:V,headersSection:G,config:Y});if(Q+=L.size,Y&&Q>Y.maxTotalSize)throw _.warn("[SECURITY] Total upload size too large",{totalSize:Q,limit:Y.maxTotalSize,totalSizeMB:Math.round(Q/1024/1024)}),new Error(`Total file size too large: ${Q} bytes exceeds limit of ${Y.maxTotalSize} bytes`);Z.files.push(L)}if(z.filename===void 0){let L=V.endsWith(`\r
10
+ `)?V.slice(0,-2):V;Z.fields[z.name]=L}}return Z};var n0=($,W)=>{if($.length>W.maxFields)throw new Error(`Too many form fields: ${$.length} exceeds limit of ${W.maxFields}`)},t0=($,W,Y)=>{if($.length>Y.maxFieldNameLength)throw new Error(`Form field name too long: ${$.length} characters exceeds limit of ${Y.maxFieldNameLength}`);if(W&&W.length>Y.maxFieldLength)throw new Error(`Form field value too long: field '${$}' has ${W.length} characters, exceeds limit of ${Y.maxFieldLength}`)},o0=($,W,Y)=>{if($.length>Y.maxFieldNameLength)throw new Error(`Decoded form field name too long: ${$.length} characters exceeds limit of ${Y.maxFieldNameLength}`);if(W.length>Y.maxFieldLength)throw new Error(`Decoded form field value too long: field '${$}' has ${W.length} characters, exceeds limit of ${Y.maxFieldLength}`)},e0=($,W,Y)=>{let[Z,D]=$.split("=");if(!Z)return;if(Y)t0(Z,D,Y);try{let Q=decodeURIComponent(Z),X=D?decodeURIComponent(D):"";if(Y)o0(Q,X,Y);W[Q]=X}catch(Q){if(Q instanceof Error&&Q.message.includes("exceeds limit"))throw Q;W[Z]=D??""}},d$=($,W)=>{let Y={},Z=$.split("&");if(W)n0(Z,W);for(let D of Z)e0(D,Y,W);return Y};var K$={JPEG:[255,216,255],PNG:[137,80,78,71],GIF87A:[71,73,70,56,55,97],GIF89A:[71,73,70,56,57,97],BMP:[66,77],TIFF_LE:[73,73,42,0],TIFF_BE:[77,77,0,42],WEBP:[82,73,70,70],ICO:[0,0,1,0],MP3_ID3:[73,68,51],MP3_FRAME:[255,251],WAV:[82,73,70,70],FLAC:[102,76,97,67],OGG:[79,103,103,83],MP4_FTYP:[0,0,0,24,102,116,121,112],MP4_FTYP_ALT:[0,0,0,28,102,116,121,112],AVI:[82,73,70,70],WEBM:[26,69,223,163],PDF:[37,80,68,70],ZIP:[80,75,3,4],ZIP_EMPTY:[80,75,5,6],ZIP_SPANNED:[80,75,7,8],RAR:[82,97,114,33,26,7,0],RAR5:[82,97,114,33,26,7,1,0],SEVENZ:[55,122,188,175,39,28],GZIP:[31,139],EXE:[77,90],ELF:[127,69,76,70],OFFICE_OLD:[208,207,17,224,161,177,26,225]},M$=($,W)=>{if($.length<W.length)return!1;return W.every((Y,Z)=>$[Z]===Y)},$1=($)=>{if(M$($,K$.WEBP)&&$.length>=12)return $.subarray(8,12).toString("ascii")==="WEBP";if(M$($,K$.WAV)&&$.length>=12)return $.subarray(8,12).toString("ascii")==="WAVE";if(M$($,K$.AVI)&&$.length>=12)return $.subarray(8,12).toString("ascii")==="AVI ";return!1},G$=($,W)=>{if(!$)return W1(W);let Y=$.toLowerCase();if(Y.startsWith("image/")||Y.startsWith("video/")||Y.startsWith("audio/")||Y==="application/pdf"||Y==="application/octet-stream"||Y.startsWith("application/zip")||Y.startsWith("application/x-"))return"base64";if(Y.startsWith("text/")||Y.startsWith("application/json")||Y.startsWith("application/xml")||Y.startsWith("application/javascript"))return"utf8";return"binary"},W1=($)=>{if(Buffer.isBuffer($))return Y1($)?"base64":"utf8";if(typeof $==="object"&&$!==null)return"utf8";if(typeof $==="string")return"utf8";return"utf8"},Y1=($)=>{if($.length===0)return!1;let W=Object.values(K$);for(let D of W)if(M$($,D))return!0;if($1($))return!0;let Y=$.filter((D)=>D===0).length,Z=$.filter((D)=>D<32&&D!==9&&D!==10&&D!==13).length;return Y/$.length>0.1||Z/$.length>0.3};var Z1=($)=>{if(!($.startsWith("{")&&$.endsWith("}")||$.startsWith("[")&&$.endsWith("]")))return!1;try{return JSON.parse($),!0}catch{return!1}},D1=($)=>$.includes("=")&&$.includes("&"),Q1=($)=>$.includes("boundary="),X1=($)=>typeof $==="object"&&$!==null&&!Buffer.isBuffer($)&&!($ instanceof Uint8Array)&&!($ instanceof ArrayBuffer)&&!($ instanceof Date),J1=($)=>$ instanceof Date,K1=($)=>{if(Buffer.isBuffer($))return $;return Buffer.from($)},M1=($)=>{return G$(void 0,$)==="base64"?"application/octet-stream":"text/plain"},z$=($)=>{let W=$.trim();if(Z1(W))return R.json;if(D1(W))return R.form;if(Q1(W))return R.multipart;return"text/plain"},i$=($)=>{if($===null||$===void 0)return"text/plain";if(J1($))return"text/plain";if(X1($))return R.json;if(typeof $==="string")return z$($);if(Buffer.isBuffer($)||$ instanceof Uint8Array||$ instanceof ArrayBuffer){let W=K1($);return M1(W)}return"text/plain"};var G1=($,W,Y)=>{let Z=Buffer.byteLength($,"utf8");if(W===R.json){if(Z>Y.json.maxSize)throw new Error(`JSON body too large: ${Z} bytes exceeds limit of ${Y.json.maxSize} bytes`)}else if(W===R.form){if(Z>Y.urlEncoded.maxSize)throw new Error(`URL-encoded body too large: ${Z} bytes exceeds limit of ${Y.urlEncoded.maxSize} bytes`)}else if(W===R.multipart){if(Z>Y.fileUploads.maxTotalSize)throw new Error(`Multipart body too large: ${Z} bytes exceeds limit of ${Y.fileUploads.maxTotalSize} bytes`)}},a$=($,W={})=>{let{headerContentType:Y,boundary:Z,config:D}=W;if(!$||!$.trim())return;let Q=Y??z$($);if(D)G1($,Q,D);if(Q===R.json){if(!D)throw new Error("Body parser configuration is required for JSON parsing");return r$($,D.json)}if(Q===R.multipart){if(!Z)throw new Error("Invalid multipart form data: missing boundary");return s$($,Z,D?.fileUploads)}if(Q===R.form)return d$($,D?.urlEncoded);return $};var S$=($,W)=>{let Y=$.indexOf(W);if(Y===-1)return[$,""];let Z=$.slice(0,Y),D=$.slice(Y+W.length);return[Z,D]};var n$=($)=>{if(!$||!$.trim())return{method:"GET",path:"/",protocol:"HTTP/1.1",headersRaw:"",rawBody:""};let[W,Y]=S$($,`\r
11
11
  `),[Z,D,Q]=W.split(" ",3),[X,G]=S$(Y,`\r
12
12
  \r
13
- `);if(!Z||!Object.values(E).includes(Z))return{method:"GET",path:D??"/",protocol:Q??"HTTP/1.1",headersRaw:X,rawBody:G};return{method:Z,path:D??"/",protocol:Q??"HTTP/1.1",headersRaw:X,rawBody:G}};var t$=($)=>{if(!$)return{};if(!$.includes("?"))return{};let[,W]=$.split("?");if(!W)return{};let Y={},Z=W.split("&");for(let D of Z){let[Q,X]=D.split("=");if(Q)try{let G=decodeURIComponent(Q),V=X?decodeURIComponent(X):"";Y[G]=V}catch{Y[Q]=X??""}}return Y};var U1=[/^(?<classA>10)\./,/^(?<classB>172)\.(?<classBRange>1[6-9]|2[0-9]|3[0-1])\./,/^(?<classC>192)\.(?<classCRange>168)\./,/^(?<linkLocal>169)\.(?<linkLocalRange>254)\./,/^(?<loopback>127)\./,/^(?<ipv6Loopback>::1)$/,/^(?<ipv6LinkLocal>fe80):/i,/^(?<ipv6UniqueLocalFC>fc00):/i,/^(?<ipv6UniqueLocalFD>fd00):/i],o$=($)=>{if(!$||typeof $!=="string")return!1;let W=$.replace(/^\[|\]$/g,"");if(/^(?<octet>(?<highByte>25[0-5]|(?<midByte>2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/.test(W)){let D=W.split(".");return D.length===4&&D.every((Q)=>{let X=parseInt(Q,10);return X>=0&&X<=255})}if(W.includes("::")&&(W.match(/::/g)??[]).length>1)return!1;return/^(?<ipv6Address>(?<fullAddress>(?<hexQuad>[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4})|(?<compressedAddress>(?<leadingPart>[0-9a-fA-F]{1,4}:){1,7}:)|(?<mixedCompression>(?<frontPart>[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4})|(?<doubleColonOnly>::)|(?<linkLocal>fe80:(?<linkSuffix>:[0-9a-fA-F]{0,4}){0,4}(?<zoneId>%[0-9a-zA-Z]+)?)|(?<ipv4MappedFull>::ffff:(?<mappedIpv4>(?<mappedOctet>[0-9]{1,3}\.){3}[0-9]{1,3}))|(?<generalPattern>(?<segmentGroup>[0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}))$/.test(W)},e$=($)=>{if(!$)return!1;let W=$.replace(/^\[|\]$/g,"");return U1.some((Y)=>Y.test(W))},$0=($,W)=>{if(!$||!W.length)return!1;if(W.includes("*"))return!0;return W.includes($)},j1=($,W)=>{if(!W.detectSpoofing||$.length<=1)return!1;if($.length>W.maxChainLength)return!0;if(new Set($).size!==$.length)return!0;let Z=$.filter(o$).length;if(Z>0&&Z<$.length)return!0;return!1},F1=($,W)=>{if($.length<=1)return!0;let Y=$[$.length-1];return Boolean(Y&&$0(Y,W.trustedProxies))},_1=($,W)=>{if(W==="x-forwarded-for")return $[0];return $[$.length-1]},H1=($)=>{let{clientIp:W,headerName:Y,ipChain:Z,config:D}=$,Q=e$(W),X=Y==="x-forwarded-for"?$0(Z[Z.length-1]??"",D.trustedProxies):!0;return{ip:W,isValid:!0,isPrivate:Q,source:Y,trusted:X}},O1=()=>({ip:"",isValid:!1,isPrivate:!1,source:"socket",trusted:!1}),V1=($,W)=>{for(let Y of W.headerPreference){let Z=$[Y];if(!Z)continue;let D=Z.split(",").map((G)=>G.trim()).filter(Boolean);if(D.length===0)continue;if(j1(D,W))continue;if(Y==="x-forwarded-for"&&!F1(D,W))continue;let Q=_1(D,Y);if(!Q||!o$(Q))continue;if(e$(Q)&&!W.allowPrivateIps)continue;return H1({clientIp:Q,headerName:Y,ipChain:D,config:W})}return O1()},N1=($,W,Y={})=>{let D={...$._configuration.ipSecurity,...Y},Q=V1(W,D);if(Q.isValid)return Q;return{ip:"",isValid:!1,isPrivate:!1,source:"socket",trusted:!1}},W0=($,W)=>{return N1($,W).ip};var Y0=($)=>{if(!$)return;return/boundary\s*=\s*(?<temp1>[^;,\s]*)/i.exec($)?.[1]};var Z0=($)=>{if(!$)return{};w1($);let W=B1($),Y=q1(W);return E1(Y)},w1=($)=>{if($.split(/\r\n|\r|\n/).length>100)throw new Error("Too many headers: maximum 100 allowed")},B1=($)=>{let W={},Z=$.replace(/\r\n|\r|\n/g,`
13
+ `);if(!Z||!Object.values(E).includes(Z))return{method:"GET",path:D??"/",protocol:Q??"HTTP/1.1",headersRaw:X,rawBody:G};return{method:Z,path:D??"/",protocol:Q??"HTTP/1.1",headersRaw:X,rawBody:G}};var t$=($)=>{if(!$)return{};if(!$.includes("?"))return{};let[,W]=$.split("?");if(!W)return{};let Y={},Z=W.split("&");for(let D of Z){let[Q,X]=D.split("=");if(Q)try{let G=decodeURIComponent(Q),V=X?decodeURIComponent(X):"";Y[G]=V}catch{Y[Q]=X??""}}return Y};var U1=[/^(?<classA>10)\./,/^(?<classB>172)\.(?<classBRange>1[6-9]|2[0-9]|3[0-1])\./,/^(?<classC>192)\.(?<classCRange>168)\./,/^(?<linkLocal>169)\.(?<linkLocalRange>254)\./,/^(?<loopback>127)\./,/^(?<ipv6Loopback>::1)$/,/^(?<ipv6LinkLocal>fe80):/i,/^(?<ipv6UniqueLocalFC>fc00):/i,/^(?<ipv6UniqueLocalFD>fd00):/i],o$=($)=>{if(!$||typeof $!=="string")return!1;let W=$.replace(/^\[|\]$/g,"");if(/^(?<octet>(?<highByte>25[0-5]|(?<midByte>2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/.test(W)){let D=W.split(".");return D.length===4&&D.every((Q)=>{let X=parseInt(Q,10);return X>=0&&X<=255})}if(W.includes("::")&&(W.match(/::/g)??[]).length>1)return!1;return/^(?<ipv6Address>(?<fullAddress>(?<hexQuad>[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4})|(?<compressedAddress>(?<leadingPart>[0-9a-fA-F]{1,4}:){1,7}:)|(?<mixedCompression>(?<frontPart>[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4})|(?<doubleColonOnly>::)|(?<linkLocal>fe80:(?<linkSuffix>:[0-9a-fA-F]{0,4}){0,4}(?<zoneId>%[0-9a-zA-Z]+)?)|(?<ipv4MappedFull>::ffff:(?<mappedIpv4>(?<mappedOctet>[0-9]{1,3}\.){3}[0-9]{1,3}))|(?<generalPattern>(?<segmentGroup>[0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}))$/.test(W)},e$=($)=>{if(!$)return!1;let W=$.replace(/^\[|\]$/g,"");return U1.some((Y)=>Y.test(W))},$0=($,W)=>{if(!$||!W.length)return!1;if(W.includes("*"))return!0;return W.includes($)},F1=($,W)=>{if(!W.detectSpoofing||$.length<=1)return!1;if($.length>W.maxChainLength)return!0;if(new Set($).size!==$.length)return!0;let Z=$.filter(o$).length;if(Z>0&&Z<$.length)return!0;return!1},j1=($,W)=>{if($.length<=1)return!0;let Y=$[$.length-1];return Boolean(Y&&$0(Y,W.trustedProxies))},H1=($,W)=>{if(W==="x-forwarded-for")return $[0];return $[$.length-1]},_1=($)=>{let{clientIp:W,headerName:Y,ipChain:Z,config:D}=$,Q=e$(W),X=Y==="x-forwarded-for"?$0(Z[Z.length-1]??"",D.trustedProxies):!0;return{ip:W,isValid:!0,isPrivate:Q,source:Y,trusted:X}},w1=()=>({ip:"",isValid:!1,isPrivate:!1,source:"socket",trusted:!1}),O1=($,W)=>{for(let Y of W.headerPreference){let Z=$[Y];if(!Z)continue;let D=Z.split(",").map((G)=>G.trim()).filter(Boolean);if(D.length===0)continue;if(F1(D,W))continue;if(Y==="x-forwarded-for"&&!j1(D,W))continue;let Q=H1(D,Y);if(!Q||!o$(Q))continue;if(e$(Q)&&!W.allowPrivateIps)continue;return _1({clientIp:Q,headerName:Y,ipChain:D,config:W})}return w1()},V1=($,W,Y={})=>{let D={...$._configuration.ipSecurity,...Y},Q=O1(W,D);if(Q.isValid)return Q;return{ip:"",isValid:!1,isPrivate:!1,source:"socket",trusted:!1}},W0=($,W)=>{return V1($,W).ip};var Y0=($)=>{if(!$)return;return/boundary\s*=\s*(?<temp1>[^;,\s]*)/i.exec($)?.[1]};var Z0=($)=>{if(!$)return{};N1($);let W=q1($),Y=B1(W);return E1(Y)},N1=($)=>{if($.split(/\r\n|\r|\n/).length>100)throw new Error("Too many headers: maximum 100 allowed")},q1=($)=>{let W={},Z=$.replace(/\r\n|\r|\n/g,`
14
14
  `).split(`
15
- `);for(let D of Z){if(!D.trim())continue;let Q=D.indexOf(":");if(Q===-1)continue;let X=D.slice(0,Q).trim(),G=D.slice(Q+1).trim();if(!X)continue;if(!A1(X))throw new Error(`Invalid header name: ${X}`);if(X.length>200)throw new Error("Header name too long: maximum 200 characters allowed");if(G.length>8192)throw new Error("Header value too long: maximum 8192 characters allowed");W[X.toLowerCase()]=G}return W},q1=($)=>{let W={};for(let[Y,Z]of Object.entries($))W[Y]=z1(Z);return W},E1=($)=>$,A1=($)=>{return/^[a-zA-Z0-9!#$%&'*+\-.^_`|~]+$/.test($)},z1=($)=>{return $.replace(/[\x00-\x08\x0A-\x1F\x7F]/g,"")};class k${_rawRequest;_setup;method;path;protocol;headers;body;query;params;ipAddress;rawBody;constructor($,W,Y){this._rawRequest=$,this._setup=W,this.ipAddress=Y??"";let{method:Z,path:D,protocol:Q,headers:X,body:G,query:V,params:A,rawBody:B}=this._parseRequestIntoObject();this.method=Z,this.path=D,this.protocol=Q,this.headers=X,this.body=G,this.query=V??{},this.params=A??{},this.rawBody=B;let z=W0(this._setup,X);if(z)this.ipAddress=z}_parseRequestIntoObject(){let $=this._rawRequest.toString(),{method:W,path:Y,protocol:Z,headersRaw:D,rawBody:Q}=n$($),X=Z0(D),G=X["content-type"],V=G?.split(";")[0]?.trim().toLowerCase(),A=Y0(G);return{method:W,path:Y,protocol:Z,headers:X,body:a$(Q,{headerContentType:V,boundary:A,config:this._setup._configuration.bodyParser}),query:t$(Y),params:{},rawBody:Q}}}var K0=O$(Q$(),1);var D0=($,W)=>{let Y=W?.encoding??"utf8";if($===null||$===void 0)return"";if(Buffer.isBuffer($))return I$($,Y);if($ instanceof Uint8Array)return S1($,Y);if($ instanceof ArrayBuffer)return k1($,Y);if(typeof $==="string")return $;if(typeof $==="object")return I1($);return String($)},I$=($,W)=>{if(W==="base64")return $.toString("base64");if(W==="binary")return $.toString("binary");return $.toString("utf8")},S1=($,W)=>{let Y=Buffer.from($);return I$(Y,W)},k1=($,W)=>{let Y=Buffer.from($);return I$(Y,W)},I1=($)=>{try{return JSON.stringify($)}catch(W){return String($)}};var Q0=new Map;for(let[$,W]of Object.entries(u)){let Z=X$[$];Q0.set(W,Z)}var X0=($)=>{let W=Q0.get($);if(!W)throw new Error(`Unknown status code: ${$}`);return W};var L1=($,W)=>{if(typeof W!=="string")throw new Error(`Header value must be a string, got ${typeof W}`);if(W.includes("\r")||W.includes(`
16
- `))throw new Error(`Header value contains invalid line break characters: ${$}`);let Y=[/[\r\n](?:set-cookie|location|authorization|www-authenticate):/i,/\r\n\r\n|\n\n/,/[\r\n]http\/\d\.\d\s+\d+/i];for(let Z of Y)if(Z.test(W))throw new Error(`Header value contains suspicious injection pattern: ${$}`)},T1=($)=>{for(let[W,Y]of Object.entries($))L1(W,Y)},L$=($)=>{let W={};for(let[Y,Z]of Object.entries($))if(Z!==void 0)W[Y]=Z;return T1(W),W};var J0=($,W)=>{if(!$)return"0";let Y=0;if(W===r.base64)Y=Buffer.byteLength($,"utf8");if(W===r.binary)Y=$.length;if(W===r.utf8)Y=Buffer.byteLength($,"utf8");return String(Y)};class T${_request;_statusCode=u.ok;_status=X$.ok;_headers={};_body="";_stringBody="";_encoding=r.utf8;constructor($){this._request=$,this._setSecurityHeaders()}_parseResponseIntoString(){let $=`${this._request.protocol} ${this._statusCode} ${this._status}`,W=Object.entries(this._headers).map(([X,G])=>`${X}: ${G}`),Y=G$(this._headers["content-type"],this._body),Z=D0(this._body,{encoding:Y});this._encoding=Y;let D=W.length>0?`${W.join(`
15
+ `);for(let D of Z){if(!D.trim())continue;let Q=D.indexOf(":");if(Q===-1)continue;let X=D.slice(0,Q).trim(),G=D.slice(Q+1).trim();if(!X)continue;if(!A1(X))throw new Error(`Invalid header name: ${X}`);if(X.length>200)throw new Error("Header name too long: maximum 200 characters allowed");if(G.length>8192)throw new Error("Header value too long: maximum 8192 characters allowed");W[X.toLowerCase()]=G}return W},B1=($)=>{let W={};for(let[Y,Z]of Object.entries($))W[Y]=z1(Z);return W},E1=($)=>$,A1=($)=>{return/^[a-zA-Z0-9!#$%&'*+\-.^_`|~]+$/.test($)},z1=($)=>{return $.replace(/[\x00-\x08\x0A-\x1F\x7F]/g,"")};class k${_rawRequest;_setup;method;path;protocol;headers;body;query;params;ipAddress;rawBody;constructor($,W,Y){this._rawRequest=$,this._setup=W,this.ipAddress=Y??"";let{method:Z,path:D,protocol:Q,headers:X,body:G,query:V,params:A,rawBody:q}=this._parseRequestIntoObject();this.method=Z,this.path=D,this.protocol=Q,this.headers=X,this.body=G,this.query=V??{},this.params=A??{},this.rawBody=q;let z=W0(this._setup,X);if(z)this.ipAddress=z}_parseRequestIntoObject(){let $=this._rawRequest.toString(),{method:W,path:Y,protocol:Z,headersRaw:D,rawBody:Q}=n$($),X=Z0(D),G=X["content-type"],V=G?.split(";")[0]?.trim().toLowerCase(),A=Y0(G);return{method:W,path:Y,protocol:Z,headers:X,body:a$(Q,{headerContentType:V,boundary:A,config:this._setup._configuration.bodyParser}),query:t$(Y),params:{},rawBody:Q}}}var K0=w$(Q$(),1);var D0=($,W)=>{let Y=W?.encoding??"utf8";if($===null||$===void 0)return"";if(Buffer.isBuffer($))return I$($,Y);if($ instanceof Uint8Array)return S1($,Y);if($ instanceof ArrayBuffer)return k1($,Y);if(typeof $==="string")return $;if(typeof $==="object")return I1($);return String($)},I$=($,W)=>{if(W==="base64")return $.toString("base64");if(W==="binary")return $.toString("binary");return $.toString("utf8")},S1=($,W)=>{let Y=Buffer.from($);return I$(Y,W)},k1=($,W)=>{let Y=Buffer.from($);return I$(Y,W)},I1=($)=>{try{return JSON.stringify($)}catch(W){return String($)}};var Q0=new Map;for(let[$,W]of Object.entries(u)){let Z=X$[$];Q0.set(W,Z)}var X0=($)=>{let W=Q0.get($);if(!W)throw new Error(`Unknown status code: ${$}`);return W};var L1=($,W)=>{if(typeof W!=="string")throw new Error(`Header value must be a string, got ${typeof W}`);if(W.includes("\r")||W.includes(`
16
+ `))throw new Error(`Header value contains invalid line break characters: ${$}`);let Y=[/[\r\n](?:set-cookie|location|authorization|www-authenticate):/i,/\r\n\r\n|\n\n/,/[\r\n]http\/\d\.\d\s+\d+/i];for(let Z of Y)if(Z.test(W))throw new Error(`Header value contains suspicious injection pattern: ${$}`)},v1=($)=>{for(let[W,Y]of Object.entries($))L1(W,Y)},L$=($)=>{let W={};for(let[Y,Z]of Object.entries($))if(Z!==void 0)W[Y]=Z;return v1(W),W};var J0=($,W)=>{if(!$)return"0";let Y=0;if(W===d.base64)Y=Buffer.byteLength($,"utf8");if(W===d.binary)Y=$.length;if(W===d.utf8)Y=Buffer.byteLength($,"utf8");return String(Y)};class v${_request;_statusCode=u.ok;_status=X$.ok;_headers={};_body="";_stringBody="";_encoding=d.utf8;constructor($){this._request=$,this._setSecurityHeaders()}_parseResponseIntoString(){let $=`${this._request.protocol} ${this._statusCode} ${this._status}`,W=Object.entries(this._headers).map(([X,G])=>`${X}: ${G}`),Y=G$(this._headers["content-type"],this._body),Z=D0(this._body,{encoding:Y});this._encoding=Y;let D=W.length>0?`${W.join(`
17
17
  `)}
18
18
  `:"";this._stringBody=`${$}
19
19
  ${D}
20
- ${Z}`;let Q=J0(this._stringBody,this._encoding);this._setHeadersIfNotSet({Date:K0.default().format("ddd, DD MMM YYYY HH:mm:ss [GMT]"),"Content-Length":Q})}_setHeadersIfNotSet($){let W={};for(let[Z,D]of Object.entries($))if(D!==void 0&&!(Z in this._headers))W[Z]=D;let Y=L$(W);Object.assign(this._headers,Y)}_setBody($){if(this._body=$,!this._headers["content-type"]){let W=i$($);this._setHeadersIfNotSet({"Content-Type":W})}}setStatusCode($){this._statusCode=$,this._status=X0($)}addHeaders($){let W=L$($);this._headers={...this._headers,...W}}removeHeaders($){for(let W of $)delete this._headers[W]}_setSecurityHeaders(){this._setHeadersIfNotSet({"X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY","X-XSS-Protection":"1; mode=block","Referrer-Policy":"strict-origin-when-cross-origin"})}}class R${_request;_response;request;response;state={};constructor($,W,Y){this._request=new k$($,W,Y),this._response=new T$(this._request),this.request=this._request,this.response=this._response}}var M0={off:"off",error:"error",warn:"warn",info:"info"};var R1={enabled:!0,origin:"*",methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:"*",exposedHeaders:[],credentials:!1,maxAge:86400,preflightContinue:!1,optionsSuccessStatus:u.noContent},U$={json:{maxSize:262144,maxDepth:10,allowPrototypeProperties:!1,maxKeys:1000,maxStringLength:1048576,maxArrayLength:1e4},fileUploads:{maxFileSize:10485760,maxTotalSize:52428800,maxFiles:10,allowedExtensions:[],blockedExtensions:[".exe",".bat",".cmd",".scr",".pif",".com"],maxFilenameLength:255},urlEncoded:{maxSize:1048576,maxFields:1000,maxFieldNameLength:100,maxFieldLength:1048576}},G0={trustedProxies:["127.0.0.1","::1"],allowPrivateIps:!0,headerPreference:["x-forwarded-for","x-real-ip","cf-connecting-ip","x-client-ip","true-client-ip"],maxChainLength:10,detectSpoofing:!0},v1={port:5000,host:"0.0.0.0",logLevel:M0.warn,networkLogs:!1,cors:{enabled:!1},bodyParser:U$,ipSecurity:G0,connectionOptions:{socketTimeout:30000,gracefulShutdownTimeout:30000,keepAliveTimeout:65000,headersTimeout:66000},autoGracefulShutdown:!0},P1=($)=>{if($.maxSize<1)throw new Error("bodyParser.json.maxSize must be at least 1 byte");if($.maxDepth<1)throw new Error("bodyParser.json.maxDepth must be at least 1");if($.maxKeys<1)throw new Error("bodyParser.json.maxKeys must be at least 1");if($.maxStringLength<1)throw new Error("bodyParser.json.maxStringLength must be at least 1 byte");if($.maxArrayLength<1)throw new Error("bodyParser.json.maxArrayLength must be at least 1")},x1=($)=>{if($.maxFileSize<1)throw new Error("bodyParser.fileUploads.maxFileSize must be at least 1 byte");if($.maxTotalSize<1)throw new Error("bodyParser.fileUploads.maxTotalSize must be at least 1 byte");if($.maxFiles<1)throw new Error("bodyParser.fileUploads.maxFiles must be at least 1");if($.maxFilenameLength<1)throw new Error("bodyParser.fileUploads.maxFilenameLength must be at least 1 character")},C1=($)=>{if($.maxSize<1)throw new Error("bodyParser.urlEncoded.maxSize must be at least 1 byte");if($.maxFields<1)throw new Error("bodyParser.urlEncoded.maxFields must be at least 1");if($.maxFieldNameLength<1)throw new Error("bodyParser.urlEncoded.maxFieldNameLength must be at least 1 character");if($.maxFieldLength<1)throw new Error("bodyParser.urlEncoded.maxFieldLength must be at least 1 byte")},b1=($)=>{if(!Array.isArray($.trustedProxies))throw new Error("ipSecurity.trustedProxies must be an array");if(!Array.isArray($.headerPreference))throw new Error("ipSecurity.headerPreference must be an array");if($.headerPreference.length===0)throw new Error("ipSecurity.headerPreference must contain at least one header");if($.maxChainLength<1)throw new Error("ipSecurity.maxChainLength must be at least 1");if($.maxChainLength>50)throw new Error("ipSecurity.maxChainLength must not exceed 50 to prevent DoS attacks")},u1=($)=>{if($.allowPrototypeProperties)H.warn("[SECURITY WARNING] bodyParser.json.allowPrototypeProperties is enabled. This allows prototype pollution attacks. Only enable this if you absolutely need it and have other protections in place.");if($.maxSize>10485760)H.warn(`[SECURITY WARNING] bodyParser.json.maxSize is set to ${$.maxSize} bytes (${Math.round($.maxSize/1024/1024)}MB). Large JSON payloads can cause memory exhaustion and DoS attacks. Consider if this size is necessary.`);if($.maxDepth>50)H.warn(`[SECURITY WARNING] bodyParser.json.maxDepth is set to ${$.maxDepth}. Very deep JSON nesting can cause stack overflow attacks. Consider if this depth is necessary.`)},y1=($)=>{if($.maxFileSize>104857600)H.warn(`[SECURITY WARNING] bodyParser.fileUploads.maxFileSize is set to ${$.maxFileSize} bytes (${Math.round($.maxFileSize/1024/1024)}MB). Large file uploads can consume significant server resources.`);if($.maxTotalSize>1073741824)H.warn(`[SECURITY WARNING] bodyParser.fileUploads.maxTotalSize is set to ${$.maxTotalSize} bytes (${Math.round($.maxTotalSize/1024/1024/1024)}GB). Very large total upload sizes can cause memory and disk space exhaustion.`);let W=[".exe",".bat",".cmd",".scr",".pif",".com",".vbs",".jar",".app"],Y=$.allowedExtensions.filter((Z)=>W.includes(Z.toLowerCase()));if(Y.length>0)H.warn(`[SECURITY WARNING] bodyParser.fileUploads.allowedExtensions includes dangerous file types: ${Y.join(", ")}. This could allow execution of malicious files. Only allow these if absolutely necessary.`);if($.blockedExtensions.length===0&&$.allowedExtensions.length===0)H.warn("[SECURITY WARNING] File uploads have no extension restrictions (no blockedExtensions and no allowedExtensions). Consider adding blockedExtensions or allowedExtensions to improve security.")},h1=($)=>{if($.trustedProxies.length===0)H.warn("[SECURITY WARNING] ipSecurity.trustedProxies is empty. No proxy headers will be trusted, which may prevent proper client IP detection.");if($.maxChainLength>20)H.warn(`[SECURITY WARNING] ipSecurity.maxChainLength is set to ${$.maxChainLength}. Very long proxy chains can consume significant resources and may indicate amplification attacks.`);if(!$.detectSpoofing)H.warn("[SECURITY WARNING] ipSecurity.detectSpoofing is disabled. This reduces protection against IP spoofing attacks. Only disable if you have other protective measures.")},m1=($,W)=>{if(W?.cors?.enabled)$.cors={...R1,...W.cors,enabled:!0}},f1=($,W)=>{if(W?.bodyParser)$.bodyParser={json:{...U$.json,...W.bodyParser.json},fileUploads:{...U$.fileUploads,...W.bodyParser.fileUploads},urlEncoded:{...U$.urlEncoded,...W.bodyParser.urlEncoded}},g1($.bodyParser)},l1=($,W)=>{if(W?.ipSecurity)$.ipSecurity={...G0,...W.ipSecurity},b1($.ipSecurity),h1($.ipSecurity)},p1=($,W)=>{if(W?.port!==void 0){let Y=Number(W.port);if(isNaN(Y)||Y<1||Y>65535)throw new Error("Invalid port number");$.port=Y}},g1=($)=>{P1($.json),x1($.fileUploads),C1($.urlEncoded),u1($.json),y1($.fileUploads)},U0=($)=>{let W={...v1};return Object.assign(W,$),m1(W,$),f1(W,$),l1(W,$),p1(W,$),W};class v${_beforeAll;_afterAll;_onError;_onNotFound;constructor(){this._beforeAll=new Set,this._afterAll=new Set,this._onError=($,W)=>{return H.error("Error while handeling your request: ",W),$.response.setStatusCode(u.internalServerError),{success:!1,message:"Internal Server Error"}},this._onNotFound=($)=>{return $.response.setStatusCode(u.notFound),{success:!1,message:"404 Not Found"}}}_addBeforeHooks($,W){for(let Y of $)this._beforeAll.add({handler:Y,options:W??{routesToExclude:[],routesToInclude:[]}})}_addAfterHooks($,W){for(let Y of $)this._afterAll.add({handler:Y,options:W??{routesToExclude:[],routesToInclude:[]}})}_addOnError($){this._onError=$}_addOnNotFound($){this._onNotFound=$}}var j0=($)=>{let W=[],Y=$.path.replace(/:\w+/g,(Z)=>{let D=Z.slice(1);return W.push(D),"([^/]+)"}).replace(/\//g,"\\/");return{...$,pattern:new RegExp(`^${Y}$`),paramNames:W,isParameterized:!0}};var P$=($)=>{let[W]=$.split("?");if(!W)return"";if([W]=W.split("#"),!W)return"";try{W=decodeURIComponent(W)}catch(Y){H.warn("Failed to decode URL path",{path:W})}if(W=W.startsWith("/")?W:`/${W}`,W=W.replace(/\/\/+/g,"/"),W=c1(W),W.length>1&&W.endsWith("/"))W=W.slice(0,-1);return W},c1=($)=>{let W=$.split("/"),Y=[];for(let D of W){if(D==="."||D===""){if(D===""&&Y.length===0)Y.push(D);continue}if(D===".."){if(Y.length>1)Y.pop()}else Y.push(D)}return Y.join("/")||"/"},x$=($)=>$.replace(/:\w+/g,":param");var F0=($)=>{let W=$.match(/:\w+/g);if(!W)return;let Y=W.map((D)=>D.slice(1)),Z=new Set(Y);if(Y.length!==Z.size){let D=Y.filter((Q,X)=>Y.indexOf(Q)!==X);throw new Error(`Route ${$} has duplicate parameter names: ${D.join(", ")}. Parameter names must be unique within a route for clarity and to prevent conflicts.`)}};class C${_exactRoutes=new Map;_parameterizedRoutes=new Map;_register({method:$,path:W,handler:Y,options:Z}){let D=P$(W),Q=D.includes(":");if(Q)F0(D);if(this._hasExactRoutePattern($,D))throw new Error(`Route ${D} already exists for method ${$}`);let X={method:$,path:D,handler:Y,options:Z,params:{}};if(Q)this._storeParameterizedRoute($,X);else this._storeExactRoute($,D,X)}_findRoute($,W){let Y=P$(W),Z=this._exactRoutes.get($)?.get(Y);if(Z)return Z;let D=this._findParameterizedRoute($,Y);if(D)return D;return}_hasExactRoutePattern($,W){if(this._exactRoutes.get($)?.has(W))return!0;if(W.includes(":")){let Y=x$(W),Z=this._parameterizedRoutes.get($);if(Z)return Z.some((D)=>x$(D.path)===Y)}else{let Y=this._parameterizedRoutes.get($);if(Y)return Y.some((Z)=>Z.path===W)}return!1}_storeExactRoute($,W,Y){if(!this._exactRoutes.has($))this._exactRoutes.set($,new Map);this._exactRoutes.get($)?.set(W,Y)}_storeParameterizedRoute($,W){if(!this._parameterizedRoutes.has($))this._parameterizedRoutes.set($,[]);let Y=j0(W);this._parameterizedRoutes.get($)?.push(Y)}_findParameterizedRoute($,W){let Y=this._parameterizedRoutes.get($);if(!Y)return;for(let Z of Y){let D=W.match(Z.pattern);if(D){let Q={};for(let X=0;X<Z.paramNames.length;X++){let G=D[X+1],V=Z.paramNames[X];if(G!==void 0&&V!==void 0)Q[V]=G}return{...Z,params:Q}}}return}}var b=($)=>({beforeHooks:$?.beforeHooks??[],afterHooks:$?.afterHooks??[]}),b$=($,W)=>({beforeHooks:[...$.beforeHooks??[],...W?.beforeHooks??[]],afterHooks:[...W?.afterHooks??[],...$.afterHooks??[]]}),u$=($,W)=>{let Y=$.endsWith("/")?$.slice(0,-1):$,Z=W.startsWith("/")?W:`/${W}`;return`${Y}${Z}`};class j${_setup;_prefix;_options;constructor($,W,Y){this._setup=$,this._prefix=W,this._options=b(Y)}_createRouteHandler($){return(W,Y,Z)=>{let D=u$(this._prefix,W),Q=b$(this._options,Z);if(this._setup._routeRegistry._register({method:$,handler:Y,path:D,options:Q,params:{}}),$===E.get)this._setup._routeRegistry._register({method:E.head,handler:Y,path:D,options:Q,params:{}})}}get=this._createRouteHandler(E.get);head=this._createRouteHandler(E.head);post=this._createRouteHandler(E.post);put=this._createRouteHandler(E.put);delete=this._createRouteHandler(E.delete);patch=this._createRouteHandler(E.patch);options=this._createRouteHandler(E.options);group($,W,Y){let Z=u$(this._prefix,$),D=b$(this._options,Y),Q=new j$(this._setup,Z,D);return W(Q),Q}}class y${_configuration;_routeRegistry=new C$;_hooks=new v$;constructor($){this._configuration=U0($)}get($,W,Y){let Z=b(Y);this._routeRegistry._register({method:E.get,handler:W,path:$,options:Z,params:{}}),this._routeRegistry._register({method:E.head,handler:W,path:$,options:Z,params:{}})}head($,W,Y){this._routeRegistry._register({method:E.head,handler:W,path:$,options:b(Y),params:{}})}post($,W,Y){this._routeRegistry._register({method:E.post,handler:W,path:$,options:b(Y),params:{}})}put($,W,Y){this._routeRegistry._register({method:E.put,handler:W,path:$,options:b(Y),params:{}})}patch($,W,Y){this._routeRegistry._register({method:E.patch,handler:W,path:$,options:b(Y),params:{}})}delete($,W,Y){this._routeRegistry._register({method:E.delete,handler:W,path:$,options:b(Y),params:{}})}options($,W,Y){this._routeRegistry._register({method:E.options,handler:W,path:$,options:b(Y),params:{}})}group($,W,Y){let Z=new j$(this,$,Y);return W(Z),Z}beforeAll($,W){this._hooks._addBeforeHooks($,W)}afterAll($,W){this._hooks._addAfterHooks($,W)}onError($){this._hooks._addOnError($)}onNotFound($){this._hooks._addOnNotFound($)}}class _0 extends y${_isListening=!1;_server;constructor($){super($);if(this._configuration.logger)H.setCustomLogger(this._configuration.logger);if(H.setLogLevel(this._configuration.logLevel),x.setEnabled(this._configuration.networkLogs),this._configuration.networkLogger)x.setNetworkLogger(this._configuration.networkLogger);if(H.info("YinzerFlow initialized with logging enabled",`${w.green}level: ${this._configuration.logLevel}, networkLogs: ${this._configuration.networkLogs}${w.reset}`),this._configuration.autoGracefulShutdown)this._setupGracefulShutdown()}_setupServer($,W,Y){if(!this._server)return;this._server.on("error",(Z)=>{x.serverError(this._configuration.port,this._configuration.host,Z.message),W(Z)}),this._server.on("listening",()=>{this._isListening=!0,x.serverStart(this._configuration.port,this._configuration.host),$()}),this._server.on("connection",(Z)=>{this._handleConnection(Z,Y)})}async _processRequest({data:$,socket:W,requestHandler:Y,clientAddress:Z}){let D=Date.now();H.info("Processing incoming request",`Client: ${Z}, Data Size: ${$.length}`);let Q=new R$($,this,Z);await Y.handle(Q),W.write(Q._response._stringBody),W.end();let X=Date.now(),G=X-D;if(x.request(Q,D,X),G>500)H.warn("Slow request detected",{method:Q.request.method,path:Q.request.path,statusCode:Q._response._statusCode,responseTime:`${G}ms`,clientAddress:Z})}_handleConnection($,W){let Y=$.remoteAddress??"unknown";x.connection("connect",Y),$.on("data",(Z)=>{this._processRequest({data:Z,socket:$,requestHandler:W,clientAddress:Y}).catch((D)=>{let Q=D instanceof Error?D.message:"Unknown error";x.connection("error",Y,`Unexpected error: ${Q}`),$.destroy()})}),$.on("error",(Z)=>{x.connection("error",Y,Z.message)}),$.on("close",()=>{x.connection("disconnect",Y)})}async listen(){if(this._isListening)throw new Error("Server is already listening");return new Promise(($,W)=>{let Y=new E$(this);this._server=s1(),this._setupServer($,W,Y),this._server.listen(this._configuration.port,this._configuration.host)})}async close(){if(!this._isListening||!this._server)return;return new Promise(($)=>{if(!this._server){this._isListening=!1,$();return}this._server.close(()=>{this._isListening=!1,x.serverStop(this._configuration.port,this._configuration.host),$()})})}status(){return{isListening:this._isListening,port:this._configuration.port,host:this._configuration.host}}_setupGracefulShutdown(){if(process.listenerCount("SIGTERM")===0&&process.listenerCount("SIGINT")===0){let $=(W)=>{H.info(`\uD83D\uDED1 Received ${W}, shutting down gracefully...`),this.close().then(()=>{H.info("✅ Server shut down gracefully"),process.exit(0)}).catch((Y)=>{H.error("❌ Error during graceful shutdown:",Y),process.exit(1)})};process.on("SIGTERM",()=>$("SIGTERM")),process.on("SIGINT",()=>$("SIGINT"))}}}export{H as log,_0 as YinzerFlow};
20
+ ${Z}`;let Q=J0(this._stringBody,this._encoding);this._setHeadersIfNotSet({Date:K0.default().format("ddd, DD MMM YYYY HH:mm:ss [GMT]"),"Content-Length":Q})}_setHeadersIfNotSet($){let W={};for(let[Z,D]of Object.entries($))if(D!==void 0&&!(Z in this._headers))W[Z]=D;let Y=L$(W);Object.assign(this._headers,Y)}_setBody($){if(this._body=$,!this._headers["content-type"]){let W=i$($);this._setHeadersIfNotSet({"Content-Type":W})}}setStatusCode($){this._statusCode=$,this._status=X0($)}addHeaders($){let W=L$($);this._headers={...this._headers,...W}}removeHeaders($){for(let W of $)delete this._headers[W]}_setSecurityHeaders(){this._setHeadersIfNotSet({"X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY","X-XSS-Protection":"1; mode=block","Referrer-Policy":"strict-origin-when-cross-origin"})}}class T${_request;_response;request;response;state={};constructor($,W,Y){this._request=new k$($,W,Y),this._response=new v$(this._request),this.request=this._request,this.response=this._response}}var M0={off:"off",error:"error",warn:"warn",info:"info"};var T1={enabled:!0,origin:"*",methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:"*",exposedHeaders:[],credentials:!1,maxAge:86400,preflightContinue:!1,optionsSuccessStatus:u.noContent},U$={json:{maxSize:262144,maxDepth:10,allowPrototypeProperties:!1,maxKeys:1000,maxStringLength:1048576,maxArrayLength:1e4},fileUploads:{maxFileSize:10485760,maxTotalSize:52428800,maxFiles:10,allowedExtensions:[],blockedExtensions:[".exe",".bat",".cmd",".scr",".pif",".com"],maxFilenameLength:255},urlEncoded:{maxSize:1048576,maxFields:1000,maxFieldNameLength:100,maxFieldLength:1048576}},G0={trustedProxies:["127.0.0.1","::1"],allowPrivateIps:!0,headerPreference:["x-forwarded-for","x-real-ip","cf-connecting-ip","x-client-ip","true-client-ip"],maxChainLength:10,detectSpoofing:!0},R1={port:5000,host:"0.0.0.0",logLevel:M0.warn,networkLogs:!1,cors:{enabled:!1},bodyParser:U$,ipSecurity:G0,connectionOptions:{socketTimeout:30000,gracefulShutdownTimeout:30000,keepAliveTimeout:65000,headersTimeout:66000},autoGracefulShutdown:!0},P1=($)=>{if($.maxSize<1)throw new Error("bodyParser.json.maxSize must be at least 1 byte");if($.maxDepth<1)throw new Error("bodyParser.json.maxDepth must be at least 1");if($.maxKeys<1)throw new Error("bodyParser.json.maxKeys must be at least 1");if($.maxStringLength<1)throw new Error("bodyParser.json.maxStringLength must be at least 1 byte");if($.maxArrayLength<1)throw new Error("bodyParser.json.maxArrayLength must be at least 1")},x1=($)=>{if($.maxFileSize<1)throw new Error("bodyParser.fileUploads.maxFileSize must be at least 1 byte");if($.maxTotalSize<1)throw new Error("bodyParser.fileUploads.maxTotalSize must be at least 1 byte");if($.maxFiles<1)throw new Error("bodyParser.fileUploads.maxFiles must be at least 1");if($.maxFilenameLength<1)throw new Error("bodyParser.fileUploads.maxFilenameLength must be at least 1 character")},C1=($)=>{if($.maxSize<1)throw new Error("bodyParser.urlEncoded.maxSize must be at least 1 byte");if($.maxFields<1)throw new Error("bodyParser.urlEncoded.maxFields must be at least 1");if($.maxFieldNameLength<1)throw new Error("bodyParser.urlEncoded.maxFieldNameLength must be at least 1 character");if($.maxFieldLength<1)throw new Error("bodyParser.urlEncoded.maxFieldLength must be at least 1 byte")},b1=($)=>{if(!Array.isArray($.trustedProxies))throw new Error("ipSecurity.trustedProxies must be an array");if(!Array.isArray($.headerPreference))throw new Error("ipSecurity.headerPreference must be an array");if($.headerPreference.length===0)throw new Error("ipSecurity.headerPreference must contain at least one header");if($.maxChainLength<1)throw new Error("ipSecurity.maxChainLength must be at least 1");if($.maxChainLength>50)throw new Error("ipSecurity.maxChainLength must not exceed 50 to prevent DoS attacks")},u1=($)=>{if($.allowPrototypeProperties)_.warn("[SECURITY WARNING] bodyParser.json.allowPrototypeProperties is enabled. This allows prototype pollution attacks. Only enable this if you absolutely need it and have other protections in place.");if($.maxSize>10485760)_.warn(`[SECURITY WARNING] bodyParser.json.maxSize is set to ${$.maxSize} bytes (${Math.round($.maxSize/1024/1024)}MB). Large JSON payloads can cause memory exhaustion and DoS attacks. Consider if this size is necessary.`);if($.maxDepth>50)_.warn(`[SECURITY WARNING] bodyParser.json.maxDepth is set to ${$.maxDepth}. Very deep JSON nesting can cause stack overflow attacks. Consider if this depth is necessary.`)},y1=($)=>{if($.maxFileSize>104857600)_.warn(`[SECURITY WARNING] bodyParser.fileUploads.maxFileSize is set to ${$.maxFileSize} bytes (${Math.round($.maxFileSize/1024/1024)}MB). Large file uploads can consume significant server resources.`);if($.maxTotalSize>1073741824)_.warn(`[SECURITY WARNING] bodyParser.fileUploads.maxTotalSize is set to ${$.maxTotalSize} bytes (${Math.round($.maxTotalSize/1024/1024/1024)}GB). Very large total upload sizes can cause memory and disk space exhaustion.`);let W=[".exe",".bat",".cmd",".scr",".pif",".com",".vbs",".jar",".app"],Y=$.allowedExtensions.filter((Z)=>W.includes(Z.toLowerCase()));if(Y.length>0)_.warn(`[SECURITY WARNING] bodyParser.fileUploads.allowedExtensions includes dangerous file types: ${Y.join(", ")}. This could allow execution of malicious files. Only allow these if absolutely necessary.`);if($.blockedExtensions.length===0&&$.allowedExtensions.length===0)_.warn("[SECURITY WARNING] File uploads have no extension restrictions (no blockedExtensions and no allowedExtensions). Consider adding blockedExtensions or allowedExtensions to improve security.")},h1=($)=>{if($.trustedProxies.length===0)_.warn("[SECURITY WARNING] ipSecurity.trustedProxies is empty. No proxy headers will be trusted, which may prevent proper client IP detection.");if($.maxChainLength>20)_.warn(`[SECURITY WARNING] ipSecurity.maxChainLength is set to ${$.maxChainLength}. Very long proxy chains can consume significant resources and may indicate amplification attacks.`);if(!$.detectSpoofing)_.warn("[SECURITY WARNING] ipSecurity.detectSpoofing is disabled. This reduces protection against IP spoofing attacks. Only disable if you have other protective measures.")},m1=($,W)=>{if(W?.cors?.enabled)$.cors={...T1,...W.cors,enabled:!0}},f1=($,W)=>{if(W?.bodyParser)$.bodyParser={json:{...U$.json,...W.bodyParser.json},fileUploads:{...U$.fileUploads,...W.bodyParser.fileUploads},urlEncoded:{...U$.urlEncoded,...W.bodyParser.urlEncoded}},g1($.bodyParser)},l1=($,W)=>{if(W?.ipSecurity)$.ipSecurity={...G0,...W.ipSecurity},b1($.ipSecurity),h1($.ipSecurity)},p1=($,W)=>{if(W?.port!==void 0){let Y=Number(W.port);if(isNaN(Y)||Y<1||Y>65535)throw new Error("Invalid port number");$.port=Y}},g1=($)=>{P1($.json),x1($.fileUploads),C1($.urlEncoded),u1($.json),y1($.fileUploads)},U0=($)=>{let W={...R1};return Object.assign(W,$),m1(W,$),f1(W,$),l1(W,$),p1(W,$),W};class R${_beforeAll;_afterAll;_onError;_onNotFound;constructor(){this._beforeAll=new Set,this._afterAll=new Set,this._onError=($,W)=>{return _.error("Error while handeling your request: ",W),$.response.setStatusCode(u.internalServerError),{success:!1,message:"Internal Server Error"}},this._onNotFound=($)=>{return $.response.setStatusCode(u.notFound),{success:!1,message:"404 Not Found"}}}_addBeforeHooks($,W){this._validateHandlersArray($,"beforeAll");for(let Y of $)this._beforeAll.add({handler:Y,options:W??{routesToExclude:[],routesToInclude:[]}})}_addAfterHooks($,W){this._validateHandlersArray($,"afterAll");for(let Y of $)this._afterAll.add({handler:Y,options:W??{routesToExclude:[],routesToInclude:[]}})}_validateHandlersArray($,W){if(!Array.isArray($)){let Y=typeof $;throw new Error(`YinzerFlow: ${W}() expects an array of handler functions, but received ${Y}.${Y==="function"?`
21
21
 
22
- //# debugId=8F64E00F56FEC5A864756E2164756E21
22
+ Incorrect: app.${W}${w.red}(${w.reset}(ctx) => { ... }${w.red})${w.reset}
23
+ ✅ Correct: app.${W}${w.green}([${w.reset}(ctx) => { ... }${w.green}])${w.reset}
24
+
25
+ Note: Wrap your handler function in ${w.magenta}square brackets${w.reset} to make it an array.
26
+
27
+ `:`
28
+
29
+ Expected: Array<HandlerCallback>
30
+ Received: ${Y}`}`)}if($.length===0){_.warn(`${W}() called with empty array. No hooks will be registered.`);return}for(let Y=0;Y<$.length;Y++){let Z=$[Y];if(typeof Z!=="function")throw new Error(`YinzerFlow: ${W}() array contains non-function at index ${Y}. Expected: function, received: ${typeof Z}`)}}_addOnError($){this._onError=$}_addOnNotFound($){this._onNotFound=$}}var F0=($)=>{let W=[],Y=$.path.replace(/:\w+/g,(Z)=>{let D=Z.slice(1);return W.push(D),"([^/]+)"}).replace(/\//g,"\\/");return{...$,pattern:new RegExp(`^${Y}$`),paramNames:W,isParameterized:!0}};var P$=($)=>{let[W]=$.split("?");if(!W)return"";if([W]=W.split("#"),!W)return"";try{W=decodeURIComponent(W)}catch(Y){_.warn("Failed to decode URL path",{path:W})}if(W=W.startsWith("/")?W:`/${W}`,W=W.replace(/\/\/+/g,"/"),W=c1(W),W.length>1&&W.endsWith("/"))W=W.slice(0,-1);return W},c1=($)=>{let W=$.split("/"),Y=[];for(let D of W){if(D==="."||D===""){if(D===""&&Y.length===0)Y.push(D);continue}if(D===".."){if(Y.length>1)Y.pop()}else Y.push(D)}return Y.join("/")||"/"},x$=($)=>$.replace(/:\w+/g,":param");var j0=($)=>{let W=$.match(/:\w+/g);if(!W)return;let Y=W.map((D)=>D.slice(1)),Z=new Set(Y);if(Y.length!==Z.size){let D=Y.filter((Q,X)=>Y.indexOf(Q)!==X);throw new Error(`Route ${$} has duplicate parameter names: ${D.join(", ")}. Parameter names must be unique within a route for clarity and to prevent conflicts.`)}};class C${_exactRoutes=new Map;_parameterizedRoutes=new Map;_register({method:$,path:W,handler:Y,options:Z}){let D=P$(W),Q=D.includes(":");if(Q)j0(D);if(this._hasExactRoutePattern($,D))throw new Error(`Route ${D} already exists for method ${$}`);let X={method:$,path:D,handler:Y,options:Z,params:{}};if(Q)this._storeParameterizedRoute($,X);else this._storeExactRoute($,D,X)}_findRoute($,W){let Y=P$(W),Z=this._exactRoutes.get($)?.get(Y);if(Z)return Z;let D=this._findParameterizedRoute($,Y);if(D)return D;return}_hasExactRoutePattern($,W){if(this._exactRoutes.get($)?.has(W))return!0;if(W.includes(":")){let Y=x$(W),Z=this._parameterizedRoutes.get($);if(Z)return Z.some((D)=>x$(D.path)===Y)}else{let Y=this._parameterizedRoutes.get($);if(Y)return Y.some((Z)=>Z.path===W)}return!1}_storeExactRoute($,W,Y){if(!this._exactRoutes.has($))this._exactRoutes.set($,new Map);this._exactRoutes.get($)?.set(W,Y)}_storeParameterizedRoute($,W){if(!this._parameterizedRoutes.has($))this._parameterizedRoutes.set($,[]);let Y=F0(W);this._parameterizedRoutes.get($)?.push(Y)}_findParameterizedRoute($,W){let Y=this._parameterizedRoutes.get($);if(!Y)return;for(let Z of Y){let D=W.match(Z.pattern);if(D){let Q={};for(let X=0;X<Z.paramNames.length;X++){let G=D[X+1],V=Z.paramNames[X];if(G!==void 0&&V!==void 0)Q[V]=G}return{...Z,params:Q}}}return}}var b=($)=>({beforeHooks:$?.beforeHooks??[],afterHooks:$?.afterHooks??[]}),b$=($,W)=>({beforeHooks:[...$.beforeHooks??[],...W?.beforeHooks??[]],afterHooks:[...W?.afterHooks??[],...$.afterHooks??[]]}),u$=($,W)=>{let Y=$.endsWith("/")?$.slice(0,-1):$,Z=W.startsWith("/")?W:`/${W}`;return`${Y}${Z}`};class F${_setup;_prefix;_options;constructor($,W,Y){this._setup=$,this._prefix=W,this._options=b(Y)}_createRouteHandler($){return(W,Y,Z)=>{let D=u$(this._prefix,W),Q=b$(this._options,Z);if(this._setup._routeRegistry._register({method:$,handler:Y,path:D,options:Q,params:{}}),$===E.get)this._setup._routeRegistry._register({method:E.head,handler:Y,path:D,options:Q,params:{}})}}get=this._createRouteHandler(E.get);head=this._createRouteHandler(E.head);post=this._createRouteHandler(E.post);put=this._createRouteHandler(E.put);delete=this._createRouteHandler(E.delete);patch=this._createRouteHandler(E.patch);options=this._createRouteHandler(E.options);group($,W,Y){let Z=u$(this._prefix,$),D=b$(this._options,Y),Q=new F$(this._setup,Z,D);return W(Q),Q}}class y${_configuration;_routeRegistry=new C$;_hooks=new R$;constructor($){this._configuration=U0($)}get($,W,Y){let Z=b(Y);this._routeRegistry._register({method:E.get,handler:W,path:$,options:Z,params:{}}),this._routeRegistry._register({method:E.head,handler:W,path:$,options:Z,params:{}})}head($,W,Y){this._routeRegistry._register({method:E.head,handler:W,path:$,options:b(Y),params:{}})}post($,W,Y){this._routeRegistry._register({method:E.post,handler:W,path:$,options:b(Y),params:{}})}put($,W,Y){this._routeRegistry._register({method:E.put,handler:W,path:$,options:b(Y),params:{}})}patch($,W,Y){this._routeRegistry._register({method:E.patch,handler:W,path:$,options:b(Y),params:{}})}delete($,W,Y){this._routeRegistry._register({method:E.delete,handler:W,path:$,options:b(Y),params:{}})}options($,W,Y){this._routeRegistry._register({method:E.options,handler:W,path:$,options:b(Y),params:{}})}group($,W,Y){let Z=new F$(this,$,Y);return W(Z),Z}beforeAll($,W){this._hooks._addBeforeHooks($,W)}afterAll($,W){this._hooks._addAfterHooks($,W)}onError($){this._hooks._addOnError($)}onNotFound($){this._hooks._addOnNotFound($)}}class H0 extends y${_isListening=!1;_server;constructor($){super($);if(this._configuration.logger)_.setCustomLogger(this._configuration.logger);if(_.setLogLevel(this._configuration.logLevel),x.setEnabled(this._configuration.networkLogs),this._configuration.networkLogger)x.setNetworkLogger(this._configuration.networkLogger);if(_.info("YinzerFlow initialized with logging enabled",`${w.green}level: ${this._configuration.logLevel}, networkLogs: ${this._configuration.networkLogs}${w.reset}`),this._configuration.autoGracefulShutdown)this._setupGracefulShutdown()}_setupServer($,W,Y){if(!this._server)return;this._server.on("error",(Z)=>{x.serverError(this._configuration.port,this._configuration.host,Z.message),W(Z)}),this._server.on("listening",()=>{this._isListening=!0,x.serverStart(this._configuration.port,this._configuration.host),$()}),this._server.on("connection",(Z)=>{this._handleConnection(Z,Y)})}async _processRequest({data:$,socket:W,requestHandler:Y,clientAddress:Z}){let D=Date.now();_.info("Processing incoming request",`Client: ${Z}, Data Size: ${$.length}`);let Q=new T$($,this,Z);await Y.handle(Q),W.write(Q._response._stringBody),W.end();let X=Date.now(),G=X-D;if(x.request(Q,D,X),G>500)_.warn("Slow request detected",{method:Q.request.method,path:Q.request.path,statusCode:Q._response._statusCode,responseTime:`${G}ms`,clientAddress:Z})}_handleConnection($,W){let Y=$.remoteAddress??"unknown";x.connection("connect",Y),$.on("data",(Z)=>{this._processRequest({data:Z,socket:$,requestHandler:W,clientAddress:Y}).catch((D)=>{let Q=D instanceof Error?D.message:"Unknown error";x.connection("error",Y,`Unexpected error: ${Q}`),$.destroy()})}),$.on("error",(Z)=>{x.connection("error",Y,Z.message)}),$.on("close",()=>{x.connection("disconnect",Y)})}async listen(){if(this._isListening)throw new Error("Server is already listening");return new Promise(($,W)=>{let Y=new E$(this);this._server=r1(),this._setupServer($,W,Y),this._server.listen(this._configuration.port,this._configuration.host)})}async close(){if(!this._isListening||!this._server)return;return new Promise(($)=>{if(!this._server){this._isListening=!1,$();return}this._server.close(()=>{this._isListening=!1,x.serverStop(this._configuration.port,this._configuration.host),$()})})}status(){return{isListening:this._isListening,port:this._configuration.port,host:this._configuration.host}}_setupGracefulShutdown(){if(process.listenerCount("SIGTERM")===0&&process.listenerCount("SIGINT")===0){let $=(W)=>{_.info(`\uD83D\uDED1 Received ${W}, shutting down gracefully...`),this.close().then(()=>{_.info("✅ Server shut down gracefully"),process.exit(0)}).catch((Y)=>{_.error("❌ Error during graceful shutdown:",Y),process.exit(1)})};process.on("SIGTERM",()=>$("SIGTERM")),process.on("SIGINT",()=>$("SIGINT"))}}}export{_ as log,H0 as YinzerFlow};
31
+
32
+ //# debugId=C76EA9A23F53082C64756E2164756E21
package/index.js.map CHANGED
@@ -30,7 +30,7 @@
30
30
  "import { RequestImpl } from '@core/execution/RequestImpl.ts';\nimport { ResponseImpl } from '@core/execution/ResponseImpl.ts';\nimport type { SetupImpl } from '@core/setup/SetupImpl.ts';\nimport type { InternalContextImpl } from '@typedefs/internal/InternalContextImpl.js';\nimport type { InternalRequestImpl } from '@typedefs/internal/InternalRequestImpl.js';\nimport type { InternalResponseImpl } from '@typedefs/internal/InternalResponseImpl.js';\nimport type { Request } from '@typedefs/public/Request.ts';\nimport type { Response } from '@typedefs/public/Response.ts';\n\n/**\n * ContextImpl is the core class that handles the building of the context.\n * It is responsible for building the request and response objects, plus\n * managing user-defined state data.\n *\n * ## What is ContextImpl?\n *\n * ContextImpl is the concrete implementation of the Context interface. It's\n * automatically created for each incoming request and provides a unified\n * interface for accessing request data, controlling responses, and managing\n * request-scoped state.\n *\n * ## How ContextImpl Works\n *\n * 1. **Construction**: Creates RequestImpl and ResponseImpl instances\n * 2. **State Initialization**: Initializes empty state object for user data\n * 3. **Request Processing**: Handles raw request data and builds structured request\n * 4. **Response Control**: Provides methods to control HTTP response behavior\n * 5. **State Management**: Allows middleware and handlers to store custom data\n * 6. **Cleanup**: Automatically manages memory and resource cleanup\n *\n * @example\n * ```typescript\n * // ContextImpl is automatically created for each request\n * const context = new ContextImpl(rawRequest, setup, clientAddress);\n *\n * // Access request data\n * const userId = context.request.params.id;\n * const userData = context.request.body;\n *\n * // Store custom state\n * context.state.user = { id: userId, name: 'John' };\n * context.state.requestId = generateRequestId();\n *\n * // Control response\n * context.response.setStatusCode(200);\n * context.response.addHeaders({ 'X-User-ID': userId });\n *\n * // Return response data\n * return { success: true, user: context.state.user };\n * ```\n *\n * @see {@link Context} for the public interface\n * @see {@link RequestImpl} for request implementation details\n * @see {@link ResponseImpl} for response implementation details\n * @see {@link InternalContextImpl} for internal interface details\n */\nexport class ContextImpl implements InternalContextImpl {\n readonly _request: InternalRequestImpl;\n readonly _response: InternalResponseImpl;\n\n /**\n * The incoming request object containing all request data and metadata.\n *\n * Provides access to headers, body, query parameters, route parameters,\n * and client information like IP address.\n *\n * @example\n * ```typescript\n * const handler: HandlerCallback = async (ctx) => {\n * // Access route parameters\n * const userId = ctx.request.params.id;\n *\n * // Access request body\n * const userData = ctx.request.body;\n *\n * // Access headers\n * const authToken = ctx.request.headers.authorization;\n *\n * // Access client information\n * const clientIp = ctx.request.ipAddress;\n *\n * return { userId, userData, hasAuth: !!authToken };\n * };\n * ```\n *\n * @see {@link Request} for complete request interface documentation\n */\n request: Request;\n\n /**\n * The outgoing response object for controlling HTTP response behavior.\n *\n * Provides methods to set status codes, add headers, and control\n * response formatting and content.\n *\n * @example\n * ```typescript\n * const handler: HandlerCallback = async (ctx) => {\n * const { request, response } = ctx;\n *\n * // Set successful status code\n * response.setStatusCode(201);\n *\n * // Add custom headers\n * response.addHeaders({\n * 'Location': `/api/users/${request.params.id}`,\n * 'X-User-ID': request.params.id,\n * 'Cache-Control': 'max-age=3600'\n * });\n *\n * // Return response body (Content-Type automatically set)\n * return { message: 'User created successfully' };\n * };\n * ```\n *\n * @see {@link Response} for complete response interface documentation\n */\n response: Response;\n\n /**\n * User-defined state data that persists throughout the request lifecycle.\n *\n * This property allows middleware and route handlers to store and share\n * custom data. The state is request-scoped and will be garbage collected\n * after the request completes.\n *\n * ## State Lifecycle\n *\n * 1. **Request Start**: State object is created as empty object\n * 2. **Global Hooks**: `beforeAll` hooks can populate state\n * 3. **Route Hooks**: `beforeHooks` can access and modify state\n * 4. **Route Handler**: Your handler can access and modify state\n * 5. **Route Hooks**: `afterHooks` can access state and modify response\n * 6. **Global Hooks**: `afterAll` hooks can access state and modify response\n * 7. **Request End**: State is automatically garbage collected\n *\n * @example\n * ```typescript\n * // Authentication middleware\n * const authMiddleware: HandlerCallback = async (ctx) => {\n * const token = ctx.request.headers.authorization;\n * const user = await validateToken(token);\n *\n * // Store user data in state for route handlers\n * ctx.state.user = user;\n * ctx.state.permissions = await getUserPermissions(user.id);\n * ctx.state.isAuthenticated = true;\n * };\n *\n * // Route that uses the authenticated state\n * app.get('/api/admin/users', authMiddleware, async (ctx) => {\n * // Access the user data set by middleware\n * const { user, permissions, isAuthenticated } = ctx.state;\n *\n * if (!permissions.includes('admin')) {\n * throw new Error('Insufficient permissions');\n * }\n *\n * // Add route-specific state\n * ctx.state.routeAccessed = true;\n * ctx.state.lastAccess = new Date();\n *\n * return { message: 'Admin access granted', user };\n * });\n * ```\n *\n * @see {@link Context} for complete context interface documentation\n */\n state: Record<string, unknown> = {};\n\n /**\n * Creates a new ContextImpl instance for handling a single request.\n *\n * @param rawRequest - The raw request data (Buffer or string) from the client\n * @param setup - The SetupImpl instance that manages routes and hooks\n * @param clientAddress - Optional client IP address for security and logging\n *\n * @example\n * ```typescript\n * // ContextImpl is typically created internally by YinzerFlow\n * const context = new ContextImpl(\n * Buffer.from('GET /api/users HTTP/1.1...'),\n * setupInstance,\n * '192.168.1.100'\n * );\n *\n * // Access the context properties\n * console.log(context.request.method); // \"GET\"\n * console.log(context.request.url); // \"/api/users\"\n * console.log(context.request.ipAddress); // \"192.168.1.100\"\n * ```\n *\n * @see {@link SetupImpl} for setup implementation details\n * @see {@link RequestImpl} for request building details\n * @see {@link ResponseImpl} for response building details\n */\n constructor(rawRequest: Buffer | string, setup: SetupImpl, clientAddress?: string) {\n this._request = new RequestImpl(rawRequest, setup, clientAddress);\n this._response = new ResponseImpl(this._request);\n\n this.request = this._request;\n this.response = this._response;\n }\n}\n",
31
31
  "/**\n * YinzerFlow Logging Levels\n *\n * String-based logging levels for intuitive configuration:\n * - 'off': No logging except errors\n * - 'error': Only errors\n * - 'warn': Warnings and errors (includes security warnings, slow requests)\n * - 'info': Info, warnings, and errors (standard application logging)\n *\n * Network logging is controlled separately via boolean networkLogging config.\n */\nexport const logLevels = {\n off: 'off',\n error: 'error',\n warn: 'warn',\n info: 'info',\n} as const;\n",
32
32
  "import type { ServerConfiguration } from '@typedefs/public/Configuration.js';\nimport type { InternalServerConfiguration } from '@typedefs/internal/InternalConfiguration.js';\nimport { logLevels } from '@constants/log.ts';\nimport { httpStatusCode } from '@constants/http.ts';\nimport { log } from '@core/utils/log.ts';\n\n/**\n * Default CORS configuration for when CORS is enabled\n */\nconst DEFAULT_CORS_ENABLED_CONFIG = {\n enabled: true,\n origin: '*',\n methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],\n allowedHeaders: '*',\n exposedHeaders: [],\n credentials: false,\n maxAge: 86400, // 24 hours\n preflightContinue: false,\n optionsSuccessStatus: httpStatusCode.noContent,\n};\n\n/**\n * Default body parser configuration with secure defaults\n */\nconst DEFAULT_BODY_PARSER_CONFIG = {\n json: {\n maxSize: 262144, // 256KB - reasonable for JSON APIs (Express uses 100KB)\n maxDepth: 10, // Prevent deeply nested objects that can cause stack overflow\n allowPrototypeProperties: false, // SECURITY: Block prototype pollution by default\n maxKeys: 1000, // Prevent memory exhaustion from objects with too many keys\n maxStringLength: 1048576, // 1MB per string - prevent memory exhaustion\n maxArrayLength: 10000, // Prevent memory exhaustion from large arrays\n },\n fileUploads: {\n maxFileSize: 10485760, // 10MB per file - reasonable for documents/images\n maxTotalSize: 52428800, // 50MB total - prevent bulk upload attacks\n maxFiles: 10, // Reasonable number of files per request\n allowedExtensions: [], // Empty array = all extensions allowed\n blockedExtensions: ['.exe', '.bat', '.cmd', '.scr', '.pif', '.com'], // Block dangerous executables\n maxFilenameLength: 255, // Standard filesystem limit\n },\n urlEncoded: {\n maxSize: 1048576, // 1MB for form data\n maxFields: 1000, // Prevent field spam attacks\n maxFieldNameLength: 100, // Reasonable field name length\n maxFieldLength: 1048576, // 1MB per field value\n },\n};\n\n/**\n * Default IP security configuration with secure defaults\n */\nconst DEFAULT_IP_SECURITY_CONFIG = {\n trustedProxies: ['127.0.0.1', '::1'], // Localhost only by default\n allowPrivateIps: true, // Allow private IPs for internal usage\n headerPreference: ['x-forwarded-for', 'x-real-ip', 'cf-connecting-ip', 'x-client-ip', 'true-client-ip'],\n maxChainLength: 10, // Reasonable proxy chain length\n detectSpoofing: true, // Enable security by default\n};\n\n/**\n * Default configuration object\n */\nconst DEFAULT_CONFIGURATION: InternalServerConfiguration = {\n port: 5000,\n host: '0.0.0.0',\n logLevel: logLevels.warn,\n networkLogs: false,\n cors: {\n enabled: false, // Disabled by default\n },\n bodyParser: DEFAULT_BODY_PARSER_CONFIG,\n ipSecurity: DEFAULT_IP_SECURITY_CONFIG,\n connectionOptions: {\n socketTimeout: 30000,\n gracefulShutdownTimeout: 30000,\n keepAliveTimeout: 65000,\n headersTimeout: 66000,\n },\n autoGracefulShutdown: true, // Enabled by default\n};\n\n/**\n * Validate JSON parser configuration minimums\n */\nconst _validateJsonConfig = (config: InternalServerConfiguration['bodyParser']['json']): void => {\n if (config.maxSize < 1) {\n throw new Error('bodyParser.json.maxSize must be at least 1 byte');\n }\n\n if (config.maxDepth < 1) {\n throw new Error('bodyParser.json.maxDepth must be at least 1');\n }\n\n if (config.maxKeys < 1) {\n throw new Error('bodyParser.json.maxKeys must be at least 1');\n }\n\n if (config.maxStringLength < 1) {\n throw new Error('bodyParser.json.maxStringLength must be at least 1 byte');\n }\n\n if (config.maxArrayLength < 1) {\n throw new Error('bodyParser.json.maxArrayLength must be at least 1');\n }\n};\n\n/**\n * Validate file upload configuration minimums\n */\nconst _validateFileUploadConfig = (config: InternalServerConfiguration['bodyParser']['fileUploads']): void => {\n if (config.maxFileSize < 1) {\n throw new Error('bodyParser.fileUploads.maxFileSize must be at least 1 byte');\n }\n\n if (config.maxTotalSize < 1) {\n throw new Error('bodyParser.fileUploads.maxTotalSize must be at least 1 byte');\n }\n\n if (config.maxFiles < 1) {\n throw new Error('bodyParser.fileUploads.maxFiles must be at least 1');\n }\n\n if (config.maxFilenameLength < 1) {\n throw new Error('bodyParser.fileUploads.maxFilenameLength must be at least 1 character');\n }\n};\n\n/**\n * Validate URL-encoded configuration minimums\n */\nconst _validateUrlEncodedConfig = (config: InternalServerConfiguration['bodyParser']['urlEncoded']): void => {\n if (config.maxSize < 1) {\n throw new Error('bodyParser.urlEncoded.maxSize must be at least 1 byte');\n }\n\n if (config.maxFields < 1) {\n throw new Error('bodyParser.urlEncoded.maxFields must be at least 1');\n }\n\n if (config.maxFieldNameLength < 1) {\n throw new Error('bodyParser.urlEncoded.maxFieldNameLength must be at least 1 character');\n }\n\n if (config.maxFieldLength < 1) {\n throw new Error('bodyParser.urlEncoded.maxFieldLength must be at least 1 byte');\n }\n};\n\n/**\n * Validate IP security configuration minimums\n */\nconst _validateIpSecurityConfig = (config: InternalServerConfiguration['ipSecurity']): void => {\n if (!Array.isArray(config.trustedProxies)) {\n throw new Error('ipSecurity.trustedProxies must be an array');\n }\n\n if (!Array.isArray(config.headerPreference)) {\n throw new Error('ipSecurity.headerPreference must be an array');\n }\n\n if (config.headerPreference.length === 0) {\n throw new Error('ipSecurity.headerPreference must contain at least one header');\n }\n\n if (config.maxChainLength < 1) {\n throw new Error('ipSecurity.maxChainLength must be at least 1');\n }\n\n if (config.maxChainLength > 50) {\n throw new Error('ipSecurity.maxChainLength must not exceed 50 to prevent DoS attacks');\n }\n};\n\n/**\n * Issue security warnings for risky JSON configurations\n */\nconst _warnJsonConfig = (config: InternalServerConfiguration['bodyParser']['json']): void => {\n if (config.allowPrototypeProperties) {\n log.warn(\n '[SECURITY WARNING] bodyParser.json.allowPrototypeProperties is enabled. This allows prototype pollution attacks. ' +\n 'Only enable this if you absolutely need it and have other protections in place.',\n );\n }\n\n // Warn about very large JSON sizes (but don't block them)\n if (config.maxSize > 10485760) {\n // 10MB\n log.warn(\n `[SECURITY WARNING] bodyParser.json.maxSize is set to ${config.maxSize} bytes (${Math.round(config.maxSize / 1024 / 1024)}MB). ` +\n 'Large JSON payloads can cause memory exhaustion and DoS attacks. Consider if this size is necessary.',\n );\n }\n\n // Warn about very deep nesting (but don't block it)\n if (config.maxDepth > 50) {\n log.warn(\n `[SECURITY WARNING] bodyParser.json.maxDepth is set to ${config.maxDepth}. ` +\n 'Very deep JSON nesting can cause stack overflow attacks. Consider if this depth is necessary.',\n );\n }\n};\n\n/**\n * Issue security warnings for risky file upload configurations\n */\nconst _warnFileUploadConfig = (config: InternalServerConfiguration['bodyParser']['fileUploads']): void => {\n // Warn about very large file uploads (but don't block them)\n if (config.maxFileSize > 104857600) {\n // 100MB\n log.warn(\n `[SECURITY WARNING] bodyParser.fileUploads.maxFileSize is set to ${config.maxFileSize} bytes (${Math.round(config.maxFileSize / 1024 / 1024)}MB). ` +\n 'Large file uploads can consume significant server resources.',\n );\n }\n\n if (config.maxTotalSize > 1073741824) {\n // 1GB\n log.warn(\n `[SECURITY WARNING] bodyParser.fileUploads.maxTotalSize is set to ${config.maxTotalSize} bytes (${Math.round(config.maxTotalSize / 1024 / 1024 / 1024)}GB). ` +\n 'Very large total upload sizes can cause memory and disk space exhaustion.',\n );\n }\n\n // Validate file extension security\n const dangerousExtensions = ['.exe', '.bat', '.cmd', '.scr', '.pif', '.com', '.vbs', '.jar', '.app'];\n const allowedDangerous = config.allowedExtensions.filter((ext) => dangerousExtensions.includes(ext.toLowerCase()));\n\n if (allowedDangerous.length > 0) {\n log.warn(\n `[SECURITY WARNING] bodyParser.fileUploads.allowedExtensions includes dangerous file types: ${allowedDangerous.join(', ')}. ` +\n 'This could allow execution of malicious files. Only allow these if absolutely necessary.',\n );\n }\n\n // Warn if no blocked extensions and no allowed extensions (completely open)\n if (config.blockedExtensions.length === 0 && config.allowedExtensions.length === 0) {\n log.warn(\n '[SECURITY WARNING] File uploads have no extension restrictions (no blockedExtensions and no allowedExtensions). ' +\n 'Consider adding blockedExtensions or allowedExtensions to improve security.',\n );\n }\n};\n\n/**\n * Issue security warnings for risky IP security configurations\n */\nconst _warnIpSecurityConfig = (config: InternalServerConfiguration['ipSecurity']): void => {\n // Warn about wildcard or overly permissive trusted proxies\n if (config.trustedProxies.length === 0) {\n log.warn('[SECURITY WARNING] ipSecurity.trustedProxies is empty. No proxy headers will be trusted, which may prevent proper client IP detection.');\n }\n\n // Warn about very long proxy chains\n if (config.maxChainLength > 20) {\n log.warn(\n `[SECURITY WARNING] ipSecurity.maxChainLength is set to ${config.maxChainLength}. ` +\n 'Very long proxy chains can consume significant resources and may indicate amplification attacks.',\n );\n }\n\n // Warn if spoofing detection is disabled\n if (!config.detectSpoofing) {\n log.warn(\n '[SECURITY WARNING] ipSecurity.detectSpoofing is disabled. ' +\n 'This reduces protection against IP spoofing attacks. Only disable if you have other protective measures.',\n );\n }\n};\n\n/**\n * Handle CORS configuration merging\n */\nconst _handleCorsConfig = (defaultConfig: InternalServerConfiguration, userConfig?: ServerConfiguration): void => {\n if (userConfig?.cors?.enabled) {\n // When CORS is enabled, merge with enabled defaults\n // We ensure enabled is literally true to satisfy the type constraint\n defaultConfig.cors = {\n ...DEFAULT_CORS_ENABLED_CONFIG,\n ...userConfig.cors,\n enabled: true, // Override to ensure literal true type\n };\n }\n};\n\n/**\n * Handle body parser configuration merging and validation\n */\nconst _handleBodyParserConfig = (defaultConfig: InternalServerConfiguration, userConfig?: ServerConfiguration): void => {\n if (userConfig?.bodyParser) {\n defaultConfig.bodyParser = {\n json: {\n ...DEFAULT_BODY_PARSER_CONFIG.json,\n ...userConfig.bodyParser.json,\n },\n fileUploads: {\n ...DEFAULT_BODY_PARSER_CONFIG.fileUploads,\n ...userConfig.bodyParser.fileUploads,\n },\n urlEncoded: {\n ...DEFAULT_BODY_PARSER_CONFIG.urlEncoded,\n ...userConfig.bodyParser.urlEncoded,\n },\n };\n\n // Validate configuration for security\n _validateBodyParserConfig(defaultConfig.bodyParser);\n }\n};\n\n/**\n * Handle IP security configuration merging and validation\n */\nconst _handleIpSecurityConfig = (defaultConfig: InternalServerConfiguration, userConfig?: ServerConfiguration): void => {\n if (userConfig?.ipSecurity) {\n defaultConfig.ipSecurity = {\n ...DEFAULT_IP_SECURITY_CONFIG,\n ...userConfig.ipSecurity,\n };\n\n // Validate configuration for security\n _validateIpSecurityConfig(defaultConfig.ipSecurity);\n _warnIpSecurityConfig(defaultConfig.ipSecurity);\n }\n};\n\n/**\n * Validate port number\n */\nconst _validatePort = (defaultConfig: InternalServerConfiguration, userConfig?: ServerConfiguration): void => {\n if (userConfig?.port !== undefined) {\n const normalizedPort = Number(userConfig.port);\n if (isNaN(normalizedPort) || normalizedPort < 1 || normalizedPort > 65535) {\n throw new Error('Invalid port number');\n }\n defaultConfig.port = normalizedPort;\n }\n};\n\n/**\n * Validate body parser configuration to prevent broken settings and warn about risky configurations\n */\nconst _validateBodyParserConfig = (config: InternalServerConfiguration['bodyParser']): void => {\n // Validate minimums for all parser types\n _validateJsonConfig(config.json);\n _validateFileUploadConfig(config.fileUploads);\n _validateUrlEncodedConfig(config.urlEncoded);\n\n // Issue security warnings for risky configurations (but don't block them)\n _warnJsonConfig(config.json);\n _warnFileUploadConfig(config.fileUploads);\n};\n\n/**\n * Handle custom configuration\n */\nexport const handleCustomConfiguration = (configuration?: ServerConfiguration): InternalServerConfiguration => {\n // Start with default configuration\n const result = { ...DEFAULT_CONFIGURATION };\n\n // Merge user configuration with proper handling of nested objects\n Object.assign(result, configuration);\n\n // Handle special configuration sections\n _handleCorsConfig(result, configuration);\n _handleBodyParserConfig(result, configuration);\n _handleIpSecurityConfig(result, configuration);\n _validatePort(result, configuration);\n\n return result;\n};\n",
33
- "import { httpStatusCode } from '@constants/http.ts';\nimport { log } from '@core/utils/log.ts';\nimport type { InternalGlobalHookOptions, InternalHookRegistryImpl } from '@typedefs/internal/InternalHookRegistryImpl.js';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\n\nexport class HookRegistryImpl implements InternalHookRegistryImpl {\n readonly _beforeAll: Set<{\n handler: HandlerCallback;\n options?: InternalGlobalHookOptions;\n }>;\n readonly _afterAll: Set<{\n handler: HandlerCallback;\n options?: InternalGlobalHookOptions;\n }>;\n _onError: HandlerCallback;\n _onNotFound: HandlerCallback;\n\n constructor() {\n this._beforeAll = new Set();\n this._afterAll = new Set();\n this._onError = (ctx, error: unknown): unknown => {\n log.error('Error while handeling your request: ', error);\n ctx.response.setStatusCode(httpStatusCode.internalServerError);\n return { success: false, message: 'Internal Server Error' };\n };\n this._onNotFound = (ctx): unknown => {\n ctx.response.setStatusCode(httpStatusCode.notFound);\n return { success: false, message: '404 Not Found' };\n };\n }\n\n _addBeforeHooks(handlers: Array<HandlerCallback>, options?: InternalGlobalHookOptions): void {\n for (const handler of handlers) this._beforeAll.add({ handler, options: options ?? { routesToExclude: [], routesToInclude: [] } });\n }\n\n _addAfterHooks(handlers: Array<HandlerCallback>, options?: InternalGlobalHookOptions): void {\n for (const handler of handlers) this._afterAll.add({ handler, options: options ?? { routesToExclude: [], routesToInclude: [] } });\n }\n\n _addOnError(handler: HandlerCallback): void {\n this._onError = handler;\n }\n\n _addOnNotFound(handler: HandlerCallback): void {\n this._onNotFound = handler;\n }\n}\n",
33
+ "import { httpStatusCode } from '@constants/http.ts';\nimport { log } from '@core/utils/log.ts';\nimport { colors } from '@core/utils/networkLog.ts';\nimport type { InternalGlobalHookOptions, InternalHookRegistryImpl } from '@typedefs/internal/InternalHookRegistryImpl.js';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\n\nexport class HookRegistryImpl implements InternalHookRegistryImpl {\n readonly _beforeAll: Set<{\n handler: HandlerCallback;\n options?: InternalGlobalHookOptions;\n }>;\n readonly _afterAll: Set<{\n handler: HandlerCallback;\n options?: InternalGlobalHookOptions;\n }>;\n _onError: HandlerCallback;\n _onNotFound: HandlerCallback;\n\n constructor() {\n this._beforeAll = new Set();\n this._afterAll = new Set();\n this._onError = (ctx, error: unknown): unknown => {\n log.error('Error while handeling your request: ', error);\n ctx.response.setStatusCode(httpStatusCode.internalServerError);\n return { success: false, message: 'Internal Server Error' };\n };\n this._onNotFound = (ctx): unknown => {\n ctx.response.setStatusCode(httpStatusCode.notFound);\n return { success: false, message: '404 Not Found' };\n };\n }\n\n _addBeforeHooks(handlers: Array<HandlerCallback>, options?: InternalGlobalHookOptions): void {\n this._validateHandlersArray(handlers, 'beforeAll');\n for (const handler of handlers) this._beforeAll.add({ handler, options: options ?? { routesToExclude: [], routesToInclude: [] } });\n }\n\n _addAfterHooks(handlers: Array<HandlerCallback>, options?: InternalGlobalHookOptions): void {\n this._validateHandlersArray(handlers, 'afterAll');\n for (const handler of handlers) this._afterAll.add({ handler, options: options ?? { routesToExclude: [], routesToInclude: [] } });\n }\n\n private _validateHandlersArray(handlers: unknown, methodName: string): asserts handlers is Array<HandlerCallback> {\n if (!Array.isArray(handlers)) {\n const receivedType = typeof handlers;\n const isFunction = receivedType === 'function';\n\n throw new Error(\n `YinzerFlow: ${methodName}() expects an array of handler functions, but received ${receivedType}.${\n isFunction ?\n `\\n\\n❌ Incorrect: app.${methodName}${colors.red}(${colors.reset}(ctx) => { ... }${colors.red})${colors.reset}\\n✅ Correct: app.${methodName}${colors.green}([${colors.reset}(ctx) => { ... }${colors.green}])${colors.reset}\\n\\nNote: Wrap your handler function in ${colors.magenta}square brackets${colors.reset} to make it an array.\\n\\n`\n : `\\n\\n Expected: Array<HandlerCallback>\\n Received: ${receivedType}`\n }`,\n );\n }\n\n if (handlers.length === 0) {\n log.warn(`${methodName}() called with empty array. No hooks will be registered.`);\n return;\n }\n\n for (let i = 0; i < handlers.length; i++) {\n const handler = handlers[i] as unknown;\n if (typeof handler !== 'function') {\n throw new Error(`YinzerFlow: ${methodName}() array contains non-function at index ${i}. Expected: function, received: ${typeof handler}`);\n }\n }\n }\n\n _addOnError(handler: HandlerCallback): void {\n this._onError = handler;\n }\n\n _addOnNotFound(handler: HandlerCallback): void {\n this._onNotFound = handler;\n }\n}\n",
34
34
  "import type { InternalPreCompiledRoute, InternalRouteRegistry } from '@typedefs/internal/InternalRouteRegistryImpl.d.ts';\n\n/**\n * Compile a route pattern into a regular expression\n *\n * @example\n * ```ts\n * compileRoutePattern({ path: '/users/:id/posts/:postId' });\n * // Returns { pattern: /^users\\/([^/]+)\\/posts\\/([^/]+)$/, paramNames: ['id', 'postId'], isParameterized: true }\n * ```\n */\nexport const compileRoutePattern = (route: InternalRouteRegistry): InternalPreCompiledRoute => {\n const paramNames: Array<string> = [];\n\n // Convert route pattern to regex with capture groups\n // Example: /users/:id/posts/:postId → /users/([^/]+)/posts/([^/]+)\n const pattern = route.path\n .replace(/:\\w+/g, (match) => {\n const paramName = match.slice(1); // Remove the ':' prefix\n paramNames.push(paramName);\n return '([^/]+)'; // Capture group: match any characters except '/'\n })\n .replace(/\\//g, '\\\\/'); // Escape forward slashes for regex\n\n return {\n ...route,\n pattern: new RegExp(`^${pattern}$`), // ^ and $ ensure full string match\n paramNames,\n isParameterized: true,\n };\n};\n",
35
35
  "import { log } from '@core/utils/log.ts';\n\n/**\n * Normalize the path to ensure consistent format\n *\n * Handles common HTTP path variations for consistent route matching:\n * - Always starts with '/'\n * - No double slashes\n * - Consistent trailing slash handling\n * - Strips query parameters (for route matching)\n * - URL decodes encoded characters\n * - Resolves dot segments for security\n *\n * Examples:\n * - \"users\" → \"/users\"\n * - \"//users\" → \"/users\"\n * - \"/users/\" → \"/users\" (consistent - no trailing slash)\n * - \"/users?page=1\" → \"/users\"\n * - \"/users%20profile\" → \"/users profile\"\n * - \"/users/../admin\" → \"/admin\" (dot segment resolved)\n * - \"/api/./users\" → \"/api/users\" (current dir resolved)\n *\n * @example\n * ```ts\n * normalizePath('users');\n * // Returns \"/users\"\n * ```\n */\nexport const normalizePath = (path: string): string => {\n // Step 1: Strip query parameters and fragments for route matching\n // \"/users?page=1#section\" → \"/users\"\n let [normalizedPath] = path.split('?');\n if (!normalizedPath) return '';\n\n [normalizedPath] = normalizedPath.split('#');\n if (!normalizedPath) return '';\n\n // Step 2: URL decode encoded characters\n // \"/users%20profile\" → \"/users profile\"\n try {\n normalizedPath = decodeURIComponent(normalizedPath);\n } catch (_) {\n // If decoding fails (malformed URL), use original\n // This prevents crashes from malicious URLs\n log.warn('Failed to decode URL path', { path: normalizedPath });\n }\n\n // Step 3: Add leading slash if not present\n // \"users\" → \"/users\"\n normalizedPath = normalizedPath.startsWith('/') ? normalizedPath : `/${normalizedPath}`;\n\n // Step 4: Remove double slashes\n // \"//users\" → \"/users\"\n normalizedPath = normalizedPath.replace(/\\/\\/+/g, '/');\n\n // Step 5: Resolve dot segments for security and consistency\n // SECURITY CRITICAL: Prevents directory traversal attacks\n // \"/users/../admin\" → \"/admin\"\n // \"/api/./users\" → \"/api/users\"\n // \"/users/../../etc/passwd\" → \"/etc/passwd\" (contained within app context)\n normalizedPath = resolveDotSegments(normalizedPath);\n\n // Step 6: Remove trailing slash for consistency (except root path)\n // \"/users/\" → \"/users\", but \"/\" stays \"/\"\n if (normalizedPath.length > 1 && normalizedPath.endsWith('/')) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n\n return normalizedPath;\n};\n\n/**\n * Resolve dot segments according to RFC 3986 Section 5.2.4\n *\n * SECURITY PURPOSE: Prevents directory traversal attacks by resolving relative paths\n *\n * Dot segments are dangerous because they allow attackers to:\n * - Bypass access controls: \"/users/../admin\" → \"/admin\"\n * - Access system files: \"/api/../../etc/passwd\" → \"/etc/passwd\"\n * - Traverse outside intended directories\n *\n * ALGORITHM:\n * - \".\" (current directory) → remove completely\n * - \"..\" (parent directory) → remove this segment AND the previous segment\n * - Regular segments → keep as-is\n *\n * Examples:\n * - \"/users/./profile\" → \"/users/profile\"\n * - \"/users/../admin\" → \"/admin\"\n * - \"/a/b/c/../../d\" → \"/a/d\"\n * - \"/../secret\" → \"/secret\" (can't go above root)\n *\n * @param path - Path with potential dot segments\n * @returns Path with dot segments resolved\n */\nconst resolveDotSegments = (path: string): string => {\n // Split path into segments, preserving empty strings from leading slash\n const segments = path.split('/');\n const resolved: Array<string> = [];\n\n for (const segment of segments) {\n if (segment === '.' || segment === '') {\n // Current directory \".\" - skip completely\n // Empty segments from double slashes - also skip\n if (segment === '' && resolved.length === 0) {\n // Keep the first empty segment to maintain leading slash\n resolved.push(segment);\n }\n continue;\n }\n\n if (segment === '..') {\n // Parent directory \"..\" - go up one level\n if (resolved.length > 1) {\n // Remove last segment (go to parent)\n // But don't remove the leading empty string (which represents root \"/\")\n resolved.pop();\n }\n // If we're already at root, ignore \"..\" (can't go above root)\n } else {\n // Regular segment - keep it\n resolved.push(segment);\n }\n }\n\n // Rejoin segments\n const result = resolved.join('/');\n\n // Ensure we always have at least \"/\" for root\n return result || '/';\n};\n\n/**\n * Normalize route structure for conflict detection\n * Converts /users/:id and /users/:userId to the same structure: /users/:param\n */\nexport const normalizeRouteStructure = (path: string): string => path.replace(/:\\w+/g, ':param');\n",
36
36
  "/**\n * Validate that parameter names are unique within a single route\n *\n * WHY THIS MATTERS:\n * - Routes like \"/users/:id/jobs/:id\" are confusing and error-prone\n * - Multiple params with same name would overwrite each other: { id: \"lastValue\" }\n * - Forces developers to use descriptive, unique names: \"/users/:userId/jobs/:jobId\"\n * - Makes code self-documenting and prevents runtime bugs\n *\n * EXAMPLES OF PROBLEMS THIS PREVENTS:\n * - Bad: \"/users/:id/posts/:id\" → unclear which :id refers to what\n * - Good: \"/users/:userId/posts/:postId\" → crystal clear intent\n *\n * @example\n * ```ts\n * validateParameterNames('/users/:id/posts/:id');\n * // Throws error: \"Route /users/:id/posts/:id has duplicate parameter names: id. Parameter names must be unique within a route for clarity and to prevent conflicts.\"\n * ```\n */\nexport const validateParameterNames = (routePath: string): void => {\n // Extract all parameter names from the route\n // \"/users/:userId/posts/:postId\" → [\":userId\", \":postId\"] → [\"userId\", \"postId\"]\n const paramMatches = routePath.match(/:\\w+/g);\n if (!paramMatches) return; // No parameters to validate\n\n const paramNames = paramMatches.map((param) => param.slice(1)); // Remove ':' prefix\n const uniqueParamNames = new Set(paramNames);\n\n // Check for duplicates\n if (paramNames.length !== uniqueParamNames.size) {\n const duplicates = paramNames.filter((name, index) => paramNames.indexOf(name) !== index);\n throw new Error(\n `Route ${routePath} has duplicate parameter names: ${duplicates.join(', ')}. ` +\n 'Parameter names must be unique within a route for clarity and to prevent conflicts.',\n );\n }\n};\n",
@@ -39,7 +39,7 @@
39
39
  "import { httpMethod } from '@constants/http.ts';\nimport type { InternalHttpMethod } from '@typedefs/constants/http.ts';\nimport type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\nimport type { InternalSetupImpl } from '@typedefs/internal/InternalSetupImpl.js';\nimport type { HttpMethodHandlers, RouteGroupMethod } from '@core/setup/utils/routeUtils.js';\nimport { buildRoutePath, ensureCompleteRouteOptions, mergeRouteOptions } from '@core/setup/utils/routeUtils.js';\n\nexport interface InternalGroupApp extends HttpMethodHandlers {\n readonly group: RouteGroupMethod;\n}\n\nexport class GroupApp implements InternalGroupApp {\n private readonly _setup: InternalSetupImpl;\n private readonly _prefix: string;\n private readonly _options: InternalRouteRegistryOptions;\n\n constructor(setup: InternalSetupImpl, prefix: string, options?: InternalRouteRegistryOptions) {\n this._setup = setup;\n this._prefix = prefix;\n this._options = ensureCompleteRouteOptions(options);\n }\n\n private _createRouteHandler(method: InternalHttpMethod) {\n return (path: string, handler: HandlerCallback<any>, routeOptions?: InternalRouteRegistryOptions): void => {\n const fullPath = buildRoutePath(this._prefix, path);\n const mergedOptions = mergeRouteOptions(this._options, routeOptions);\n\n this._setup._routeRegistry._register({\n method,\n handler,\n path: fullPath,\n options: mergedOptions,\n params: {},\n });\n\n // If this is a GET route, automatically register the corresponding HEAD route\n if (method === httpMethod.get) {\n this._setup._routeRegistry._register({\n method: httpMethod.head,\n handler,\n path: fullPath,\n options: mergedOptions,\n params: {},\n });\n }\n };\n }\n\n // HTTP method handlers - using the utility type to ensure consistency\n get = this._createRouteHandler(httpMethod.get);\n head = this._createRouteHandler(httpMethod.head);\n post = this._createRouteHandler(httpMethod.post);\n put = this._createRouteHandler(httpMethod.put);\n delete = this._createRouteHandler(httpMethod.delete);\n patch = this._createRouteHandler(httpMethod.patch);\n options = this._createRouteHandler(httpMethod.options);\n\n // Nested group support\n group(prefix: string, callback: (group: InternalGroupApp) => void, options?: InternalRouteRegistryOptions): InternalGroupApp {\n const nestedPrefix = buildRoutePath(this._prefix, prefix);\n const nestedOptions = mergeRouteOptions(this._options, options);\n\n const nestedGroup = new GroupApp(this._setup, nestedPrefix, nestedOptions);\n callback(nestedGroup);\n\n return nestedGroup;\n }\n}\n",
40
40
  "import { httpMethod } from '@constants/http.ts';\nimport { handleCustomConfiguration } from '@core/setup/utils/handleCustomConfiguration.ts';\nimport type { InternalSetupImpl } from '@typedefs/internal/InternalSetupImpl.ts';\nimport { HookRegistryImpl } from '@core/execution/HookRegistryImpl.ts';\nimport type { InternalGlobalHookOptions } from '@typedefs/internal/InternalHookRegistryImpl.js';\nimport type { InternalServerConfiguration } from '@typedefs/internal/InternalConfiguration.js';\nimport type { ServerConfiguration } from '@typedefs/public/Configuration.js';\nimport type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport { RouteRegistryImpl } from '@core/setup/RouteRegistryImpl.ts';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\nimport { GroupApp } from '@core/setup/GroupApp.ts';\nimport type { InternalGroupApp } from '@core/setup/GroupApp.ts';\nimport { ensureCompleteRouteOptions } from '@core/setup/utils/routeUtils.js';\n\nexport class SetupImpl implements InternalSetupImpl {\n readonly _configuration: InternalServerConfiguration;\n readonly _routeRegistry = new RouteRegistryImpl();\n readonly _hooks = new HookRegistryImpl();\n\n constructor(customConfiguration?: ServerConfiguration) {\n this._configuration = handleCustomConfiguration(customConfiguration);\n }\n\n // ===== Route Registration =====\n get(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n const routeOptions = ensureCompleteRouteOptions(options);\n // Register GET route\n this._routeRegistry._register({ method: httpMethod.get, handler, path, options: routeOptions, params: {} });\n // Automatically register corresponding HEAD route\n this._routeRegistry._register({ method: httpMethod.head, handler, path, options: routeOptions, params: {} });\n }\n\n head(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.head, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n post(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.post, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n put(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.put, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n patch(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.patch, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n delete(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.delete, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n options(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.options, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n group(prefix: string, callback: (group: InternalGroupApp) => void, options?: InternalRouteRegistryOptions): InternalGroupApp {\n // Create a group app that can handle nested groups and route registration\n const groupApp = new GroupApp(this, prefix, options);\n\n // Execute callback to register routes\n callback(groupApp);\n\n return groupApp;\n }\n\n /**\n * Hook Registration\n *\n * Note these are going to be called dynamically at run time, for now\n * we are just storing them in the server object until runtime. Although\n * it is slower during lookup, it is more flexible and memory efficient\n * allowing for more flexibility to include hook modification, conditional\n * hook execution, and better debugging.\n */\n beforeAll(handlers: Array<HandlerCallback<any>>, options?: InternalGlobalHookOptions): void {\n this._hooks._addBeforeHooks(handlers, options);\n }\n\n afterAll(handlers: Array<HandlerCallback<any>>, options?: InternalGlobalHookOptions): void {\n this._hooks._addAfterHooks(handlers, options);\n }\n\n onError(handler: HandlerCallback<any>): void {\n this._hooks._addOnError(handler);\n }\n\n onNotFound(handler: HandlerCallback<any>): void {\n this._hooks._addOnNotFound(handler);\n }\n}\n"
41
41
  ],
42
- "mappings": "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",
43
- "debugId": "8F64E00F56FEC5A864756E2164756E21",
42
+ "mappings": "uZAAC,QAAQ,CAAC,EAAE,EAAE,CAAW,OAAO,IAAjB,UAAuC,OAAO,IAApB,YAA2B,GAAO,QAAQ,EAAE,EAAc,OAAO,QAAnB,YAA2B,OAAO,IAAI,OAAO,CAAC,GAAG,EAAe,OAAO,YAApB,YAA+B,WAAW,GAAG,MAAM,MAAM,EAAE,IAAG,GAAM,QAAQ,EAAE,CAAc,IAAI,EAAE,KAAI,EAAE,MAAI,EAAE,QAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAE,6FAA6F,GAAE,sFAAsF,GAAE,CAAC,KAAK,KAAK,SAAS,2DAA2D,MAAM,GAAG,EAAE,OAAO,wFAAwF,MAAM,GAAG,EAAE,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,IAAI,MAAM,IAAI,GAAG,EAAG,GAAE,IAAI,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,GAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAgB,IAAJ,OAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,GAAE,iBAAiB,GAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,aAAa,OAAM,IAAI,EAAE,MAAK,GAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAM,KAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAY,OAAO,GAAjB,SAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,UAAU,IAAI,GAAE,CAAC,GAAG,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,GAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAE,EAAE,OAAO,KAAK,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,IAAG,GAAG,IAAI,EAAE,EAAE,UAAU,OAAO,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAQ,KAAJ,EAAa,IAAJ,GAAE,EAAM,GAAU,IAAP,KAAS,OAAO,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,KAAK,GAAG,aAAa,KAAK,OAAO,IAAI,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,WAAqB,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,YAAY,EAAE,KAAK,GAAG,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,WAAW,EAAE,KAAK,GAAG,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,gBAAgB,GAAG,EAAE,OAAO,QAAQ,EAAE,CAAC,OAAO,GAAG,EAAE,QAAQ,QAAQ,EAAE,CAAC,OAAQ,KAAK,GAAG,SAAS,IAAI,GAAI,EAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAC,GAAG,GAAG,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,GAAG,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,KAAK,QAAQ,EAAE,IAAG,GAAG,EAAE,QAAQ,QAAQ,EAAE,CAAC,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,QAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK,GAAG,MAAM,IAAI,OAAO,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,UAAU,OAAO,KAAK,MAAM,IAAI,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,GAAQ,QAAG,KAAK,GAAG,GAAG,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,MAAM,EAAE,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,GAAG,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAE,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,EAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAE,EAAE,GAAG,KAAK,KAAK,OAAO,EAAE,GAAE,YAAY,EAAE,IAAG,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,OAAO,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,KAAK,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,MAAM,OAAO,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,OAAO,EAAE,OAAO,KAAK,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,OAAO,EAAE,EAAE,MAAM,KAAK,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,OAAO,OAAO,EAAE,EAAE,QAAQ,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,IAAI,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,OAAO,OAAO,EAAE,EAAE,MAAM,KAAK,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,OAAO,EAAE,OAAO,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE,EAAG,GAAG,EAAE,UAAU,QAAQ,EAAE,CAAC,MAAO,KAAI,KAAK,MAAM,KAAK,GAAG,kBAAkB,EAAE,EAAE,GAAG,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,UAAO,WAAW,EAAE,GAAG,EAAE,GAAG,SAAM,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,GAAG,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,MAAM,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,OAAO,QAAQ,EAAE,CAAC,OAAO,IAAI,KAAK,KAAK,QAAQ,CAAC,GAAG,EAAE,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,YAAY,QAAQ,EAAE,CAAC,OAAO,KAAK,GAAG,YAAY,GAAG,EAAE,SAAS,QAAQ,EAAE,CAAC,OAAO,KAAK,GAAG,YAAY,GAAG,GAAG,EAAE,GAAE,GAAE,UAAU,OAAO,EAAE,UAAU,GAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAS,QAAQ,CAAC,EAAE,CAAC,GAAE,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAI,EAAE,EAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAE,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,OAAO,GAAE,EAAE,QAAQ,GAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,KAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAG,ICAt/N,uBAAS,aCAT,kBCYO,IAAM,GAAa,CACxB,GAAI,KACJ,QAAS,UACT,SAAU,WACV,UAAW,aACX,iBAAkB,oBAClB,MAAO,QACP,YAAa,eACb,WAAY,cACZ,aAAc,eACd,UAAW,YACX,SAAU,YACV,iBAAkB,qBAClB,SAAU,WACV,qBAAsB,yBACtB,gBAAiB,oBACjB,oBAAqB,uBACvB,EAMa,EAAiB,CAC5B,GAAI,IACJ,QAAS,IACT,SAAU,IACV,UAAW,IACX,iBAAkB,IAClB,MAAO,IACP,YAAa,IACb,WAAY,IACZ,aAAc,IACd,UAAW,IACX,SAAU,IACV,iBAAkB,IAClB,SAAU,IACV,qBAAsB,IACtB,gBAAiB,IACjB,oBAAqB,GACvB,EAMa,EAAa,CACxB,OAAQ,SACR,IAAK,MACL,KAAM,OACN,KAAM,OACN,IAAK,MACL,MAAO,QACP,QAAS,SACX,EAMa,EAAc,CACzB,KAAM,mBACN,KAAM,YACN,KAAM,oCACN,UAAW,sBACX,IAAK,kBACL,KAAM,aACN,IAAK,WACL,gBAAiB,mBACjB,SAAU,YACV,eAAgB,wCAClB,EAMa,EAAc,CAEzB,cAAe,gBACf,mBAAoB,sBACpB,gBAAiB,mBAGjB,aAAc,gBACd,KAAM,OACN,QAAS,UACT,aAAc,gBACd,QAAS,WACT,YAAa,gBACb,gBAAiB,oBACjB,kBAAmB,sBACnB,QAAS,WACT,IAAK,MACL,KAAM,OAGN,YAAa,eACb,cAAe,iBACf,gBAAiB,mBACjB,gBAAiB,mBACjB,mBAAoB,sBACpB,gBAAiB,mBACjB,aAAc,gBAGd,8BAA+B,mCAC/B,0BAA2B,+BAC3B,0BAA2B,+BAC3B,yBAA0B,8BAC1B,2BAA4B,gCAC5B,oBAAqB,yBACrB,4BAA6B,iCAC7B,2BAA4B,gCAG5B,OAAQ,SACR,eAAgB,kBAChB,eAAgB,kBAChB,aAAc,gBACd,KAAM,OACN,UAAW,aACX,QAAS,UACT,OAAQ,SACR,KAAM,OACN,OAAQ,SAGR,SAAU,WACV,OAAQ,SACR,KAAM,OACN,MAAO,QACP,WAAY,cAGZ,MAAO,QAGP,sBAAuB,0BACvB,gCAAiC,sCACjC,wBAAyB,4BACzB,oBAAqB,yBACrB,cAAe,kBACf,eAAgB,mBAChB,eAAgB,kBAChB,kBAAmB,qBACnB,0BAA2B,+BAC3B,wBAAyB,6BACzB,0BAA2B,+BAG3B,OAAQ,SACR,UAAW,aAGX,WAAY,aACZ,UAAW,aACX,QAAS,UACT,wBAAyB,4BAGzB,iBAAkB,oBAClB,GAAI,KACJ,QAAS,UAGT,UAAW,YACX,cAAe,kBACf,IAAK,MACL,YAAa,eAGb,OAAQ,UACR,QAAS,WAGT,kBAAmB,sBACnB,aAAc,gBAGd,QAAS,UACT,KAAM,OAGN,WAAY,eACZ,8BAA+B,oCAC/B,SAAU,YACV,qBAAsB,yBACtB,UAAW,YACX,SAAU,WACV,OAAQ,UAGR,cAAe,kBACf,aAAc,gBAChB,EAEa,EAAe,CAC1B,OAAQ,SACR,OAAQ,SACR,KAAM,MACR,EChNO,IAAM,GAAa,CAAC,EAA8B,IAAuC,CAC9F,IAAK,EAAO,QAAS,MAAO,GAE5B,GAAI,EAAQ,QAAQ,SAAW,UAAW,CAIxC,IAFwB,GAAgB,EAAS,CAAM,EASrD,OALA,EAAQ,SAAS,cAAc,GAAG,EAClC,EAAQ,UAAU,SAAS,CACzB,MAAO,2BACP,OAAQ,EAAQ,QAAQ,QAAQ,MAClC,CAAC,EACM,GAIT,EAAQ,SAAS,cAAc,EAAO,oBAAoB,EAG1D,IAAM,EAAgB,GAAwB,EAAS,CAAM,EAY7D,GATA,EAAQ,UAAU,oBAAoB,EACnC,EAAY,0BAA2B,GACvC,EAAY,2BAA4B,EAAO,QAAQ,KAAK,IAAI,GAChE,EAAY,2BAA4B,OAAO,EAAO,iBAAmB,SAAW,EAAO,eAAiB,EAAO,eAAe,KAAK,IAAI,GAC3I,EAAY,+BAAgC,EAAO,YAAc,OAAS,SAC1E,EAAY,4BAA6B,EAAO,eAAe,KAAK,IAAI,GACxE,EAAY,qBAAsB,EAAO,OAAO,SAAS,CAC5D,CAAC,EAEG,EAAO,kBAET,MAAO,GAIT,OADA,EAAQ,UAAU,SAAS,EAAE,EACtB,GAMT,GAFwB,GAAgB,EAAS,CAAM,EAElC,CACnB,IAAM,EAAgB,GAAwB,EAAS,CAAM,EAC7D,EAAQ,UAAU,oBAAoB,EACnC,EAAY,0BAA2B,GACvC,EAAY,+BAAgC,EAAO,YAAc,OAAS,OAC7E,CAAC,EAGH,MAAO,IAOH,GAA0B,CAAC,EAA8B,IAAqD,CAClH,GAAI,EAAO,SAAW,IAAK,CAEzB,GAAI,EAAO,YACT,MAAM,IAAI,MACR,uJACF,EAKF,MAAO,IAIT,IAAM,EAAgB,EAAQ,QAAQ,QAAQ,OAC9C,GAAI,EAEF,OAAO,EAIT,GAAI,OAAO,EAAO,SAAW,SAC3B,OAAO,EAAO,OAGhB,GAAI,MAAM,QAAQ,EAAO,MAAM,GAAK,EAAO,OAAO,OAAS,EAAG,CAC5D,IAAO,GAAe,EAAO,OAC7B,OAAO,GAAe,OAIxB,MAAO,QAGH,GAAkB,CAAC,EAA8B,IAAsD,CAC3G,GAAI,EAAO,SAAW,IAAK,MAAO,GAElC,IAAM,EAAmB,EAAQ,QAAQ,QAAQ,QAAQ,YAAY,GAAK,GAE1E,GAAI,OAAO,EAAO,SAAW,WAC3B,OAAO,QAAQ,EAAO,OAAO,EAAkB,EAAQ,OAAO,CAAC,EAGjE,GAAI,OAAO,EAAO,SAAW,SAC3B,OAAO,IAAqB,EAAO,OAAO,YAAY,EAGxD,GAAI,MAAM,QAAQ,EAAO,MAAM,EAC7B,OAAO,EAAO,OAAO,KAAK,CAAC,IAAW,IAAqB,EAAO,YAAY,CAAC,EAGjF,GAAI,EAAO,kBAAkB,OAC3B,OAAO,EAAO,OAAO,KAAK,CAAgB,EAG5C,MAAO,ICzHT,kBAaa,EAAY,SAGZ,EAAS,CACpB,MAAO,UACP,KAAM,WACN,OAAQ,WACR,IAAK,WACL,MAAO,WACP,QAAS,WACT,KAAM,UACR,EAEM,GAAgB,CACpB,SAAU,CAAC,QAAS,iBAAkB,kBAAmB,YAAa,gBAAiB,aAAc,aAAa,EAClH,QAAS,CAAC,OAAQ,YAAa,cAAe,mBAAoB,iBAAkB,YAAY,EAChG,SAAU,CAAC,UAAW,mBAAoB,qBAAsB,uBAAwB,qBAAsB,mBAAoB,sBAAsB,CAC1J,EAGI,EAAwB,GACxB,EAA+B,KAGtB,EAAkB,IAAc,WAAM,EAAE,OAAO,yBAAyB,EAE/E,GAAkB,CAAC,IAAsD,CAC7E,IAAM,EAAU,GAAc,GAC9B,OAAO,EAAQ,KAAK,MAAM,KAAK,OAAO,EAAI,EAAQ,MAAM,IAAM,IAM1D,GAAyB,CAAC,IAAkC,CAChE,GAAI,OAAO,IAAiB,SAC1B,OAAO,OAAO,WAAW,EAAc,MAAM,EAE/C,GAAI,OAAO,SAAS,CAAY,EAC9B,OAAO,EAAa,OAEtB,GAAI,OAAO,IAAiB,UAAY,IAAiB,KACvD,GAAI,CACF,OAAO,OAAO,WAAW,KAAK,UAAU,CAAY,EAAG,MAAM,EAC7D,KAAM,CACN,MAAO,GAGX,MAAO,IAMH,GAAkB,CAAC,IAA+B,CACtD,GAAI,GAAc,KAAO,EAAa,IAAK,MAAO,IAClD,GAAI,GAAc,KAAO,EAAa,IAAK,MAAO,eAClD,GAAI,GAAc,KAAO,EAAa,IAAK,MAAO,IAClD,GAAI,GAAc,IAAK,MAAO,eAC9B,MAAO,KAMH,GAAyB,CAAC,IAAsD,CAEpF,GAAI,EAAS,GACX,MAAO,CACL,MAAO,IACP,OAAQ,KAAK,OAAO,EAAI,IAAM,wBAA0B,mCAC1D,EAGF,GAAI,EAAS,IACX,MAAO,CACL,MAAO,eACP,OAAQ,KAAK,OAAO,EAAI,IAAM,kBAAoB,wBACpD,EAGF,GAAI,EAAS,IACX,MAAO,CACL,MAAO,IACP,OAAQ,KAAK,OAAO,EAAI,IAAM,gBAAkB,uBAClD,EAGF,GAAI,EAAS,IACX,MAAO,CACL,MAAO,KACP,OAAQ,KAAK,OAAO,EAAI,IAAM,sBAAwB,0BACxD,EAGF,GAAI,EAAS,KACX,MAAO,CACL,MAAO,eACP,OAAQ,KAAK,OAAO,EAAI,IAAM,uBAAyB,0BACzD,EAGF,MAAO,CACL,MAAO,eACP,OAAQ,KAAK,OAAO,EAAI,IAAM,+BAAiC,qCACjE,GAOI,GAAa,CAAC,EAA2C,EAAmB,IAA2B,CAC3G,IAAK,EAAuB,OAE5B,IAAM,EAAY,EAAgB,EAC5B,EAAK,GAAY,UACjB,EAAe,EAAU,MAAM,IAAY,GAE7C,EAAU,GACV,EAAmC,OAEvC,GAAI,IAAU,UACZ,EAAU,2CAAgC,6BACrC,QAAI,IAAU,aACnB,EAAU,0BAAe,6DAEzB,OAAU,kDAAuC,IAAK,6BACtD,EAAQ,QAGV,GAAI,EAEF,EAAc,GAAO,CAAO,EACvB,KAEL,IAAM,EAAQ,IAAU,QAAU,EAAO,IAAM,EAAO,KACtD,QAAQ,IAAI,GAAG,KAAS,OAAe,MAAc,IAAU,EAAO,OAAO,IAI3E,GAAU,CAAC,EAA8B,EAAmB,IAA0B,CAC1F,IAAK,EAAuB,OAE5B,IAAQ,QAAS,GAAQ,EACnB,EAAW,EAAQ,UACnB,GAAkB,EAAU,GAAW,QAAQ,CAAC,EAEhD,EAAW,EAAI,WAAa,WAC1B,SAAQ,OAAM,YAAa,EAC7B,EAAa,EAAS,YACtB,EAAe,GAAuB,EAAS,KAAK,EACpD,EAAU,EAAI,QAAQ,QAAU,IAAI,EAAI,QAAQ,WAAa,MAC7D,EAAY,EAAI,QAAQ,cAAgB,IAAI,EAAI,QAAQ,iBAAmB,MAC3E,GAAc,GAAgB,CAAU,EAGxC,GAAW,gBAAK,UAAiB,EAAgB,OAAO,KAAU,KAAQ,MAAa,KAAc,MAAiB,KAAW,KAAa,OAAoB,KAGlK,GAAS,WAAW,CAAc,GAChC,QAAO,WAAW,GAAuB,EAAM,EACjD,EAAY,GAAG,2BAA+B,SAAsB,KAE1E,GAAI,EAEF,EAAc,KAAK,aAAa,IAAU,EAC1C,EAAc,KAAK,UAAU,GAAW,EAGxC,aAAQ,IAAI,GAAG,EAAO,QAAQ,OAAe,EAAgB,gBAAgB,KAAW,EAAO,OAAO,EACtG,QAAQ,IAAI,GAAG,EAAO,WAAW,MAAc,MAAU,EAAgB,4BAA4B,SAAsB,KAAS,EAAO,OAAO,GAIhJ,GAAc,CAAC,EAAe,IAAwB,CAC1D,IAAK,EAAuB,OAE5B,IAAM,EAAY,EAAgB,EAC5B,EAAU,GAAQ,EAAO,GAAG,KAAQ,IAAS,UAC7C,EAAS,GAAgB,UAAU,EACnC,EAAU,iEAAsD,gCAAsC,KAE5G,GAAI,EAEF,EAAc,KAAK,CAAO,EAG1B,aAAQ,IAAI,GAAG,EAAO,QAAQ,OAAe,MAAc,IAAU,EAAO,OAAO,GAIjF,GAAa,CAAC,EAAe,IAAwB,CACzD,IAAK,EAAuB,OAE5B,IAAM,EAAY,EAAgB,EAC5B,EAAU,GAAQ,EAAO,GAAG,KAAQ,IAAS,UAC7C,EAAS,GAAgB,SAAS,EAClC,EAAU,+CAAoC,wCAA8C,KAElG,GAAI,EAEF,EAAc,KAAK,CAAO,EAG1B,aAAQ,IAAI,GAAG,EAAO,QAAQ,OAAe,MAAc,IAAU,EAAO,OAAO,GAIjF,GAAc,CAAC,EAAe,EAAe,IAA2B,CAC5E,IAAK,EAAuB,OAE5B,IAAM,EAAY,EAAgB,EAC5B,EAAU,GAAQ,EAAO,GAAG,KAAQ,IAAS,UAC7C,EAAe,EAAU,MAAM,IAAY,GAC3C,EAAS,GAAgB,UAAU,EACnC,EAAU,0CAA+B,IAAU,8BAAyC,KAElG,GAAI,EAEF,EAAc,MAAM,CAAO,EAG3B,aAAQ,IAAI,GAAG,EAAO,OAAO,OAAe,MAAc,IAAU,EAAO,OAAO,GAWhF,GAAa,CAAC,IAA2B,CAC7C,EAAwB,GAMpB,GAAmB,CAAC,IAAyB,CACjD,EAAgB,GAGL,EAAa,CAExB,cACA,oBAGA,cACA,WACA,eACA,cACA,cACF,EC9PA,IAAM,EAAoB,CACxB,IAAK,EACL,MAAO,EACP,KAAM,EACN,KAAM,CACR,EAIM,GAAgB,CACpB,SAAU,CAAC,QAAS,iBAAkB,kBAAmB,YAAa,gBAAiB,aAAc,aAAa,EAClH,QAAS,CAAC,OAAQ,YAAa,cAAe,mBAAoB,iBAAkB,YAAY,EAChG,SAAU,CAAC,UAAW,mBAAoB,qBAAsB,uBAAwB,qBAAsB,mBAAoB,sBAAsB,CAC1J,EAGI,EAA0B,EAAkB,KAC5C,EAA8B,KAI5B,GAAkB,CAAC,IAAsD,CAC7E,IAAM,EAAU,GAAc,GAC9B,OAAO,EAAQ,KAAK,MAAM,KAAK,OAAO,EAAI,EAAQ,MAAM,IAAM,IAS1D,GAAO,IAAI,IAA+B,CAC9C,GAAI,EAAkB,EAAkB,KAAM,OAE9C,GAAI,EAEF,EAAa,KAAK,GAAG,CAAI,EAGzB,QAAa,OAAQ,GAAG,CAAI,GAI1B,GAAO,IAAI,IAA+B,CAC9C,GAAI,EAAkB,EAAkB,KAAM,OAE9C,GAAI,EAEF,EAAa,KAAK,GAAG,CAAI,EAGzB,QAAa,OAAQ,GAAG,CAAI,GAI1B,GAAQ,IAAI,IAA+B,CAC/C,GAAI,EAAkB,EAAkB,MAAO,OAE/C,GAAI,EAEF,EAAa,MAAM,GAAG,CAAI,EAG1B,QAAa,QAAS,GAAG,CAAI,GAM3B,GAAO,CAAC,EAAiB,EAAgB,IAAyB,CACtE,GAAI,EAAkB,EAAkB,KAAM,OAC9C,IAAM,EAAY,EAAgB,EAG9B,EAAQ,KACR,EAAS,GAGb,GAAI,EAAS,GACX,EAAQ,KACR,EAAS,KAAK,OAAO,EAAI,IAAM,wBAA0B,oCAEpD,QAAI,EAAS,IAClB,EAAQ,gBACR,EAAS,KAAK,OAAO,EAAI,IAAM,kBAAoB,yBAE9C,QAAI,EAAS,IAClB,EAAQ,KACR,EAAS,KAAK,OAAO,EAAI,IAAM,gBAAkB,wBAE5C,QAAI,EAAS,IAClB,EAAQ,MACR,EAAS,KAAK,OAAO,EAAI,IAAM,sBAAwB,2BAElD,QAAI,EAAS,KAClB,EAAQ,gBACR,EAAS,KAAK,OAAO,EAAI,IAAM,uBAAyB,2BAGxD,OAAQ,gBACR,EAAS,KAAK,OAAO,EAAI,IAAM,+BAAiC,sCAGlE,IAAM,EAAS,GAAG,EAAO,WAAW,MAAc,MAAU,YAAoB,EAAO,QAGjF,EAAW,EAAO,IAAK,EAAM,cAAe,GAAG,KAAW,EAAI,CAAE,cAAe,GAAG,KAAW,EACnG,QAAQ,IAAI,GAAG,KAAU,MAAa,EAAU,KAAK,GAAQ,GAYzD,GAAc,CAAC,IAAmD,CAQtE,EAPiB,CACf,IAAK,EACL,MAAO,EACP,KAAM,EACN,KAAM,CACR,EAE2B,IAMvB,GAAkB,CAAC,IAAyB,CAChD,EAAe,GAMX,GAAe,CAAC,KAAqC,IAA+B,CACxF,IAAM,EAAY,EAAgB,EAG9B,EAAQ,KACR,EAAgB,EAAO,KACvB,EAAkD,WAClD,EAA2C,OAE/C,GAAI,IAAU,QACZ,EAAQ,KACR,EAAQ,EAAO,IACf,EAAa,WACb,EAAgB,QACX,QAAI,IAAU,OACnB,EAAQ,MACR,EAAQ,EAAO,OACf,EAAa,UACb,EAAgB,OAEhB,OAAQ,KACR,EAAQ,EAAO,KACf,EAAa,WACb,EAAgB,OAGlB,IAAM,EAAS,GAAgB,CAAU,EACnC,EAAS,GAAG,KAAS,MAAc,KAAS,OAAe,EAAM,YAAY,KAAK,EAAO,QAI/F,QAAQ,GAAe,GAAG,IAAU,GAAG,EAAM,KAAK,GAAQ,GAG/C,EAAM,CAEjB,eACA,mBAGA,QACA,QACA,SACA,QAGA,OAAQ,CACV,EJ3LO,MAAM,EAAmB,CACb,MAEjB,WAAW,CAAC,EAAkB,CAC5B,KAAK,MAAQ,OAMT,OAAM,CAAC,EAA6C,CACxD,GAAI,CAIF,GAFmB,GAAW,EAAS,KAAK,MAAM,eAAe,IAAI,EAErD,CACd,EAAQ,UAAU,yBAAyB,EAC3C,OAIF,IAAM,EAAe,KAAK,MAAM,eAAe,WAAW,EAAQ,QAAQ,OAAQ,EAAQ,QAAQ,IAAI,EAEtG,IAAK,EAAc,CACjB,IAAM,EAAmB,MAAM,KAAK,MAAM,OAAO,YAAY,CAAO,EACpE,EAAQ,UAAU,SAAS,CAAgB,EAC3C,EAAQ,UAAU,yBAAyB,EAC3C,OAIF,EAAQ,QAAQ,OAAS,EAAa,OAEtC,IAAQ,UAAS,WAAY,GACrB,cAAc,CAAC,EAAG,aAAa,CAAC,GAAM,EAGxC,EAAiB,KAAK,MAAM,OAAO,WACzC,QAAW,KAAQ,EAAgB,MAAM,EAAK,QAAQ,CAAO,EAI7D,QAAW,KAAQ,EAAa,MAAM,EAAK,CAAO,EAKlD,IAAI,EAAyB,KAC7B,GAAI,CACF,EAAgB,MAAM,EAAQ,CAAO,EACrC,MAAO,EAAc,CACrB,MAAM,EAKR,QAAW,KAAQ,EAAY,MAAM,EAAK,CAAO,EAGjD,IAAM,EAAgB,KAAK,MAAM,OAAO,UACxC,QAAW,KAAQ,EAAe,MAAM,EAAK,QAAQ,CAAO,EAO5D,GAJA,EAAQ,UAAU,SAAS,CAAa,EAIpC,EAAQ,QAAQ,SAAW,OAC7B,EAAQ,UAAU,SAAS,IAAI,EAKjC,EAAQ,UAAU,yBAAyB,EAE3C,OACA,MAAO,EAAO,CAEd,MAAM,KAAK,YAAY,EAAS,CAAK,QAQ3B,YAAW,CAAC,EAA8B,EAA+B,CACrF,GAAI,CAEF,IAAM,EAAe,KAAK,MAAM,OAAO,SAGjC,EAAgB,MAAM,EAAa,EAAS,CAAK,EAGvD,EAAQ,UAAU,SAAS,CAAa,EAGxC,GAAW,EAAS,KAAK,MAAM,eAAe,IAAI,EAGlD,EAAQ,UAAU,yBAAyB,EAC3C,EAAQ,UAAU,oBAAoB,CACpC,KAAM,WAAM,EAAE,OAAO,iCAAiC,EACtD,iBAAkB,EAAQ,UAAU,YAAY,MAAM;AAAA;AAAA,CAAM,EAAE,IAAI,OAAO,SAAS,GAAK,GACzF,CAAC,EACD,MAAO,EAAmB,CAE1B,EAAI,MAAM,sFAAuF,CAAiB,EAElH,EAAQ,SAAS,cAAc,GAAG,EAClC,EAAQ,UAAU,SAAS,CACzB,QAAS,GACT,QAAS,uBACX,CAAC,EAGD,GAAW,EAAS,KAAK,MAAM,eAAe,IAAI,EAGlD,EAAQ,UAAU,yBAAyB,EAC3C,EAAQ,UAAU,oBAAoB,CACpC,KAAM,WAAM,EAAE,OAAO,iCAAiC,EACtD,iBAAkB,EAAQ,UAAU,YAAY,MAAM;AAAA;AAAA,CAAM,EAAE,IAAI,OAAO,SAAS,GAAK,GACzF,CAAC,GAGP,CKzIA,IAAM,GAAuB,CAAC,YAAa,cAAe,WAAW,EAYxD,GAAuB,CAAC,EAAc,IAAqD,CAEtG,IAAK,IAAS,EAAK,KAAK,GAAK,EAAK,KAAK,IAAM,OAC3C,OAIF,IAAM,EAAW,OAAO,WAAW,EAAM,MAAM,EAC/C,GAAI,EAAW,EAAO,QAMpB,MALA,EAAI,KAAK,yCAA0C,CACjD,KAAM,EACN,MAAO,EAAO,QACd,OAAQ,KAAK,MAAM,EAAW,KAAO,IAAI,CAC3C,CAAC,EACK,IAAI,MAAM,2BAA2B,4BAAmC,EAAO,eAAe,EAGtG,IAAI,EAAsB,KAE1B,GAAI,CAEF,EAAa,KAAK,MAAM,CAAI,EAC5B,MAAO,EAAO,CACd,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,MAAM,IAAI,MAAM,wBAAwB,GAAS,EAInD,GAAI,CACF,GAAuB,EAAY,EAAQ,CAAC,EAC5C,MAAO,EAAO,CACd,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,MAAM,IAAI,MAAM,oCAAoC,GAAS,EAG/D,OAAO,GAMH,GAAqB,CAAC,EAAe,IAAkD,CAC3F,GAAI,OAAO,IAAS,UAAY,EAAK,OAAS,EAAO,gBACnD,MAAM,IAAI,MAAM,oBAAoB,EAAK,sCAAsC,EAAO,iBAAiB,GAOrG,GAAiB,CAAC,EAAsB,EAAyC,IAAwB,CAE7G,GAAI,EAAK,OAAS,EAAO,eACvB,MAAM,IAAI,MAAM,oBAAoB,EAAK,oCAAoC,EAAO,gBAAgB,EAItG,QAAW,KAAQ,EACjB,GAAuB,EAAM,EAAQ,EAAQ,CAAC,GAO5C,GAAsB,CAAC,EAAqB,IAAkD,CAElG,GAAI,EAAK,OAAS,EAAO,QACvB,MAAM,IAAI,MAAM,6BAA6B,EAAK,2BAA2B,EAAO,SAAS,EAI/F,IAAK,EAAO,0BACV,QAAW,KAAO,EAChB,GAAI,GAAqB,SAAS,CAAG,EAKnC,MAJA,EAAI,KAAK,kDAAmD,CAC1D,SAAU,EACV,oBAAqB,EACvB,CAAC,EACK,IAAI,MAAM,mDAAmD,mBAAqB,IAS1F,GAA4B,CAAC,EAA+B,EAAyC,IAAwB,CACjI,IAAM,EAAO,OAAO,KAAK,CAAI,EAE7B,QAAW,KAAO,EAAM,CAEtB,GAAI,EAAI,OAAS,EAAO,gBACtB,MAAM,IAAI,MAAM,yBAAyB,EAAI,UAAU,EAAG,EAAE,0BAA0B,EAAO,iBAAiB,EAGhH,IAAM,EAAQ,EAAK,GAGnB,GAAI,OAAO,IAAU,UAAY,EAAM,OAAS,EAAO,gBACrD,MAAM,IAAI,MAAM,oCAAoC,UAAY,EAAM,uCAAuC,EAAO,iBAAiB,EAIvI,GAAuB,EAAO,EAAQ,EAAQ,CAAC,IAW7C,GAAyB,CAAC,EAAe,EAAyC,IAAwB,CAE9G,GAAI,EAAQ,EAAO,SAKjB,MAJA,EAAI,KAAK,qEAAsE,CAC7E,aAAc,EACd,SAAU,EAAO,QACnB,CAAC,EACK,IAAI,MAAM,wCAAwC,8BAAkC,EAAO,UAAU,EAI7G,GAAI,IAAS,MAAQ,OAAO,IAAS,SAAU,CAC7C,GAAmB,EAAM,CAAM,EAC/B,OAIF,GAAI,MAAM,QAAQ,CAAI,EAAG,CACvB,GAAe,EAAM,EAAQ,CAAK,EAClC,OAIF,IAAM,EAAO,OAAO,KAAK,CAAI,EAC7B,GAAoB,EAAM,CAAM,EAChC,GAA0B,EAAiC,EAAQ,CAAK,GClJ1E,IAAM,GAAwB,CAAC,IAAsC,CACnE,IAAM,EAAiB,EAAQ,WAAW;AAAA,CAAM,EAAI,EAAQ,MAAM,CAAC,EAAI,EACjE,EAAiB,EAAe,QAAQ;AAAA;AAAA,CAAU,EAExD,GAAI,IAAmB,GACrB,MAAO,CAAC,GAAI,EAAE,EAGhB,IAAM,EAAU,EAAe,MAAM,EAAG,CAAc,EAChD,EAAU,EAAe,MAAM,EAAiB,CAAC,EACvD,MAAO,CAAC,EAAS,CAAO,GAYpB,GAA0B,CAAC,IAAmD,CAClF,IAAM,EAAqC,CAAE,KAAM,EAAG,EAEhD,EAAY,iDAAiD,KAAK,CAAU,EAC5E,EAAgB,qDAAqD,KAAK,CAAU,EAE1F,GAAI,EACF,EAAO,KAAO,EAAU,IAAM,EAAU,IAAM,GAGhD,GAAI,EAAe,CACjB,IAAM,EAAW,EAAc,IAAM,EAAc,GACnD,GAAI,EACF,EAAO,SAAW,EAItB,OAAO,GAYH,GAA4B,CAAC,IAA4B,CAE7D,IAAM,EADQ,EAAQ,MAAM,OAAO,EACL,KAAK,CAAC,IAAS,EAAK,YAAY,EAAE,WAAW,eAAe,CAAC,EAE3F,IAAK,EAAiB,MAAO,2BAE7B,OACE,EACG,MAAM,EAAgB,QAAQ,GAAG,EAAI,CAAC,EACtC,KAAK,EACL,MAAM,GAAG,EAAE,IACV,KAAK,GAAK,4BAaZ,GAAkB,CAAC,IAAsC,CAG7D,MAFoB,CAAC,SAAU,SAAU,SAAU,2BAA4B,kBAAmB,kBAAmB,gBAAgB,EAElH,KAAK,CAAC,IAAS,EAAiB,YAAY,EAAE,WAAW,CAAI,CAAC,GAY7E,GAAyB,CAAC,IAAsC,OAAO,SAAS,CAAO,EAAI,EAAQ,OAAS,OAAO,WAAW,EAAS,MAAM,EAK7I,GAAsB,CAAC,EAA0B,IAAmD,CACxG,IAAK,EAAQ,OAGb,GAAI,EAAK,KAAO,EAAO,YAOrB,MANA,EAAI,KAAK,mCAAoC,CAC3C,SAAU,EAAK,SACf,KAAM,EAAK,KACX,MAAO,EAAO,YACd,OAAQ,KAAK,MAAM,EAAK,KAAO,KAAO,IAAI,CAC5C,CAAC,EACK,IAAI,MAAM,mBAAmB,EAAK,eAAe,EAAK,gCAAgC,EAAO,mBAAmB,EAIxH,GAAI,EAAK,UAAY,EAAK,SAAS,OAAS,EAAO,kBACjD,MAAM,IAAI,MAAM,sBAAsB,EAAK,SAAS,sCAAsC,EAAO,mBAAmB,EAItH,GAAI,EAAK,SAAU,CACjB,IAAM,EAAY,EAAK,SAAS,YAAY,EAAE,UAAU,EAAK,SAAS,YAAY,GAAG,CAAC,EAGtF,GAAI,EAAO,kBAAkB,SAAS,CAAS,EAM7C,MALA,EAAI,KAAK,8CAA+C,CACtD,SAAU,EAAK,SACf,YACA,kBAAmB,EAAO,iBAC5B,CAAC,EACK,IAAI,MAAM,0BAA0B,0CAAkD,EAI9F,GAAI,EAAO,kBAAkB,OAAS,IAAM,EAAO,kBAAkB,SAAS,CAAS,EACrF,MAAM,IAAI,MAAM,0BAA0B,yCAAiD,IAgB3F,GAAmB,EACvB,qBACA,iBACA,iBACA,YAMwB,CACxB,IAAM,EAAmB,GAA0B,CAAc,EAG3D,EAAiB,EAAe,SAAS;AAAA,CAAM,EAAI,EAAe,MAAM,EAAG,EAAE,EAAI,EAGjF,EAA2B,GAAgB,CAAgB,EAAI,OAAO,KAAK,EAAgB,QAAQ,EAAI,EAEvG,EAA2B,CAC/B,SAAU,EAAmB,UAAY,GACzC,YAAa,EACb,KAAM,GAAuB,CAAO,EACpC,SACF,EAKA,OAFA,GAAoB,EAAM,CAAM,EAEzB,GAmBI,GAAyB,CAAC,EAAc,EAAkB,IAAwE,CAC7I,IAAM,EAAoC,CACxC,OAAQ,CAAC,EACT,MAAO,CAAC,CACV,EAGM,EAAQ,EAAK,MAAM,KAAK,GAAU,EAAE,MAAM,CAAC,EAE7C,EAAgB,EAEpB,QAAW,KAAQ,EAAO,CAExB,IAAK,GAAQ,EAAK,KAAK,IAAM,IAAM,EAAK,KAAK,IAAM,KAAM,SAGzD,IAAO,EAAgB,GAAkB,GAAsB,CAAI,EACnE,IAAK,EAAgB,SAIrB,IAAM,EADQ,EAAe,MAAM,OAAO,EACZ,KAAK,CAAC,IAAS,EAAK,YAAY,EAAE,WAAW,sBAAsB,CAAC,EAClG,IAAK,EAAiB,SAEtB,IAAM,EAAqB,GAAwB,CAAe,EAClE,IAAK,EAAmB,KAAM,SAG9B,GAAI,EAAmB,WAAa,OAAW,CAE7C,GAAI,GAAU,EAAO,MAAM,QAAU,EAAO,SAK1C,MAJA,EAAI,KAAK,8CAA+C,CACtD,UAAW,EAAO,MAAM,OACxB,SAAU,EAAO,QACnB,CAAC,EACK,IAAI,MAAM,8BAA8B,EAAO,oCAAoC,EAG3F,IAAM,EAAO,GAAiB,CAC5B,qBACA,iBACA,iBACA,QACF,CAAC,EAKD,GAHA,GAAiB,EAAK,KAGlB,GAAU,EAAgB,EAAO,aAMnC,MALA,EAAI,KAAK,yCAA0C,CACjD,UAAW,EACX,MAAO,EAAO,aACd,YAAa,KAAK,MAAM,EAAgB,KAAO,IAAI,CACrD,CAAC,EACK,IAAI,MAAM,8BAA8B,4BAAwC,EAAO,oBAAoB,EAGnH,EAAO,MAAM,KAAK,CAAI,EAIxB,GAAI,EAAmB,WAAa,OAAW,CAE7C,IAAM,EAAiB,EAAe,SAAS;AAAA,CAAM,EAAI,EAAe,MAAM,EAAG,EAAE,EAAI,EACvF,EAAO,OAAO,EAAmB,MAAQ,GAI7C,OAAO,GC9QT,IAAM,GAAyB,CAAC,EAAsB,IAAkD,CAEtG,GAAI,EAAM,OAAS,EAAO,UACxB,MAAM,IAAI,MAAM,yBAAyB,EAAM,2BAA2B,EAAO,WAAW,GAO1F,GAAwB,CAAC,EAAa,EAA2B,IAAkD,CAEvH,GAAI,EAAI,OAAS,EAAO,mBACtB,MAAM,IAAI,MAAM,6BAA6B,EAAI,sCAAsC,EAAO,oBAAoB,EAIpH,GAAI,GAAS,EAAM,OAAS,EAAO,eACjC,MAAM,IAAI,MAAM,qCAAqC,UAAY,EAAM,uCAAuC,EAAO,gBAAgB,GAOnI,GAA0B,CAAC,EAAoB,EAAsB,IAAkD,CAE3H,GAAI,EAAW,OAAS,EAAO,mBAC7B,MAAM,IAAI,MAAM,qCAAqC,EAAW,sCAAsC,EAAO,oBAAoB,EAInI,GAAI,EAAa,OAAS,EAAO,eAC/B,MAAM,IAAI,MACR,6CAA6C,UAAmB,EAAa,uCAAuC,EAAO,gBAC7H,GAOE,GAAoB,CAAC,EAAc,EAAgC,IAAmD,CAC1H,IAAO,EAAK,GAAS,EAAK,MAAM,GAAG,EACnC,IAAK,EAAK,OAGV,GAAI,EACF,GAAsB,EAAK,EAAO,CAAM,EAG1C,GAAI,CACF,IAAM,EAAa,mBAAmB,CAAG,EACnC,EAAe,EAAQ,mBAAmB,CAAK,EAAI,GAGzD,GAAI,EACF,GAAwB,EAAY,EAAc,CAAM,EAG1D,EAAO,GAAc,EACrB,MAAO,EAAO,CAEd,GAAI,aAAiB,OAAS,EAAM,QAAQ,SAAS,eAAe,EAClE,MAAM,EAIR,EAAO,GAAO,GAAS,KAoBd,GAAsB,CAAC,EAAc,IAAqE,CACrH,IAAM,EAAiC,CAAC,EAClC,EAAQ,EAAK,MAAM,GAAG,EAG5B,GAAI,EACF,GAAuB,EAAO,CAAM,EAItC,QAAW,KAAQ,EACjB,GAAkB,EAAM,EAAQ,CAAM,EAGxC,OAAO,GCrGT,IAAM,GAAoB,CAExB,KAAM,CAAC,IAAM,IAAM,GAAI,EACvB,IAAK,CAAC,IAAM,GAAM,GAAM,EAAI,EAC5B,OAAQ,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,EAC3C,OAAQ,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,EAC3C,IAAK,CAAC,GAAM,EAAI,EAChB,QAAS,CAAC,GAAM,GAAM,GAAM,CAAI,EAChC,QAAS,CAAC,GAAM,GAAM,EAAM,EAAI,EAChC,KAAM,CAAC,GAAM,GAAM,GAAM,EAAI,EAC7B,IAAK,CAAC,EAAM,EAAM,EAAM,CAAI,EAG5B,QAAS,CAAC,GAAM,GAAM,EAAI,EAC1B,UAAW,CAAC,IAAM,GAAI,EACtB,IAAK,CAAC,GAAM,GAAM,GAAM,EAAI,EAC5B,KAAM,CAAC,IAAM,GAAM,GAAM,EAAI,EAC7B,IAAK,CAAC,GAAM,IAAM,IAAM,EAAI,EAG5B,SAAU,CAAC,EAAM,EAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GAAI,EACzD,aAAc,CAAC,EAAM,EAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GAAI,EAC7D,IAAK,CAAC,GAAM,GAAM,GAAM,EAAI,EAC5B,KAAM,CAAC,GAAM,GAAM,IAAM,GAAI,EAG7B,IAAK,CAAC,GAAM,GAAM,GAAM,EAAI,EAG5B,IAAK,CAAC,GAAM,GAAM,EAAM,CAAI,EAC5B,UAAW,CAAC,GAAM,GAAM,EAAM,CAAI,EAClC,YAAa,CAAC,GAAM,GAAM,EAAM,CAAI,EACpC,IAAK,CAAC,GAAM,GAAM,IAAM,GAAM,GAAM,EAAM,CAAI,EAC9C,KAAM,CAAC,GAAM,GAAM,IAAM,GAAM,GAAM,EAAM,EAAM,CAAI,EACrD,OAAQ,CAAC,GAAM,IAAM,IAAM,IAAM,GAAM,EAAI,EAC3C,KAAM,CAAC,GAAM,GAAI,EAGjB,IAAK,CAAC,GAAM,EAAI,EAChB,IAAK,CAAC,IAAM,GAAM,GAAM,EAAI,EAG5B,WAAY,CAAC,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAI,CAC7D,EAKM,GAAmB,CAAC,EAAgB,IAA8C,CACtF,GAAI,EAAO,OAAS,EAAU,OAAQ,MAAO,GAC7C,OAAO,EAAU,MAAM,CAAC,EAAM,IAAU,EAAO,KAAW,CAAI,GAM1D,GAA4B,CAAC,IAA4B,CAE7D,GAAI,GAAiB,EAAQ,GAAkB,IAAI,GAAK,EAAO,QAAU,GAEvE,OADmB,EAAO,SAAS,EAAG,EAAE,EACtB,SAAS,OAAO,IAAM,OAI1C,GAAI,GAAiB,EAAQ,GAAkB,GAAG,GAAK,EAAO,QAAU,GAEtE,OADmB,EAAO,SAAS,EAAG,EAAE,EACtB,SAAS,OAAO,IAAM,OAI1C,GAAI,GAAiB,EAAQ,GAAkB,GAAG,GAAK,EAAO,QAAU,GAEtE,OADkB,EAAO,SAAS,EAAG,EAAE,EACtB,SAAS,OAAO,IAAM,OAGzC,MAAO,IAOI,GAAoB,CAAC,EAAsB,IAAyC,CAC/F,IAAK,EAEH,OAAO,GAAsB,CAAI,EAGnC,IAAM,EAAmB,EAAY,YAAY,EAGjD,GACE,EAAiB,WAAW,QAAQ,GACpC,EAAiB,WAAW,QAAQ,GACpC,EAAiB,WAAW,QAAQ,GACpC,IAAqB,mBACrB,IAAqB,4BACrB,EAAiB,WAAW,iBAAiB,GAC7C,EAAiB,WAAW,gBAAgB,EAE5C,MAAO,SAIT,GACE,EAAiB,WAAW,OAAO,GACnC,EAAiB,WAAW,kBAAkB,GAC9C,EAAiB,WAAW,iBAAiB,GAC7C,EAAiB,WAAW,wBAAwB,EAEpD,MAAO,OAIT,MAAO,UAMI,GAAwB,CAAC,IAAiD,CAErF,GAAI,OAAO,SAAS,CAAI,EACtB,OAAO,GAAmB,CAAI,EAAI,SAAW,OAI/C,GAAI,OAAO,IAAS,UAAY,IAAS,KAAM,MAAO,OAGtD,GAAI,OAAO,IAAS,SAAU,MAAO,OAGrC,MAAO,QAMH,GAAqB,CAAC,IAA4B,CACtD,GAAI,EAAO,SAAW,EAAG,MAAO,GAGhC,IAAM,EAAa,OAAO,OAAO,EAAiB,EAElD,QAAW,KAAa,EACtB,GAAI,GAAiB,EAAQ,CAAS,EACpC,MAAO,GAKX,GAAI,GAA0B,CAAM,EAClC,MAAO,GAIT,IAAM,EAAY,EAAO,OAAO,CAAC,IAAS,IAAS,CAAC,EAAE,OAChD,EAAoB,EAAO,OAAO,CAAC,IAAS,EAAO,IAAM,IAAS,GAAK,IAAS,IAAM,IAAS,EAAE,EAAE,OAGzG,OAAO,EAAY,EAAO,OAAS,KAAO,EAAoB,EAAO,OAAS,KC5JhF,IAAM,GAAgB,CAAC,IAA6B,CAClD,KAAO,EAAQ,WAAW,GAAG,GAAK,EAAQ,SAAS,GAAG,GAAO,EAAQ,WAAW,GAAG,GAAK,EAAQ,SAAS,GAAG,GAC1G,MAAO,GAGT,GAAI,CAEF,OADA,KAAK,MAAM,CAAO,EACX,GACP,KAAM,CACN,MAAO,KAWL,GAA0B,CAAC,IAA6B,EAAQ,SAAS,GAAG,GAAK,EAAQ,SAAS,GAAG,EAKrG,GAAyB,CAAC,IAA6B,EAAQ,SAAS,WAAW,EASnF,GAAuB,CAAC,IAC5B,OAAO,IAAU,UACjB,IAAU,OACT,OAAO,SAAS,CAAK,KACpB,aAAiB,eACjB,aAAiB,gBACjB,aAAiB,MAKf,GAAe,CAAC,IAAkC,aAAiB,KASnE,GAAkB,CAAC,IAAoD,CAC3E,GAAI,OAAO,SAAS,CAAI,EAAG,OAAO,EAClC,OAAO,OAAO,KAAK,CAAmB,GAMlC,GAAyB,CAAC,IAA2B,CAEzD,OADiB,GAAkB,OAAW,CAAM,IAChC,SAAW,2BAA6B,cAcjD,GAA6B,CAAC,IAAyB,CAClE,IAAM,EAAc,EAAK,KAAK,EAG9B,GAAI,GAAc,CAAW,EAC3B,OAAO,EAAY,KAIrB,GAAI,GAAwB,CAAW,EACrC,OAAO,EAAY,KAGrB,GAAI,GAAuB,CAAW,EACpC,OAAO,EAAY,UAIrB,MAAO,cAcI,GAAmB,CAAC,IAA0B,CAEzD,GAAI,IAAS,MAAQ,IAAS,OAC5B,MAAO,aAIT,GAAI,GAAa,CAAI,EACnB,MAAO,aAIT,GAAI,GAAqB,CAAI,EAC3B,OAAO,EAAY,KAIrB,GAAI,OAAO,IAAS,SAClB,OAAO,GAA2B,CAAI,EAIxC,GAAI,OAAO,SAAS,CAAI,GAAK,aAAgB,YAAc,aAAgB,YAAa,CACtF,IAAM,EAAS,GAAgB,CAAI,EACnC,OAAO,GAAuB,CAAM,EAItC,MAAO,cCrHT,IAAM,GAAoB,CAAC,EAAc,EAAyB,IAAkD,CAClH,IAAM,EAAW,OAAO,WAAW,EAAM,MAAM,EAE/C,GAAI,IAAoB,EAAY,MAClC,GAAI,EAAW,EAAO,KAAK,QACzB,MAAM,IAAI,MAAM,wBAAwB,4BAAmC,EAAO,KAAK,eAAe,EAEnG,QAAI,IAAoB,EAAY,MACzC,GAAI,EAAW,EAAO,WAAW,QAC/B,MAAM,IAAI,MAAM,+BAA+B,4BAAmC,EAAO,WAAW,eAAe,EAEhH,QAAI,IAAoB,EAAY,WACzC,GAAI,EAAW,EAAO,YAAY,aAChC,MAAM,IAAI,MAAM,6BAA6B,4BAAmC,EAAO,YAAY,oBAAoB,IA0BhH,GAAY,CAAC,EAAc,EAA4B,CAAC,IAAe,CAClF,IAAQ,oBAAmB,WAAU,UAAW,EAGhD,IAAK,IAAS,EAAK,KAAK,EACtB,OAIF,IAAM,EAAkB,GAAqB,GAA2B,CAAI,EAG5E,GAAI,EACF,GAAkB,EAAM,EAAiB,CAAM,EAIjD,GAAI,IAAoB,EAAY,KAAM,CACxC,IAAK,EACH,MAAM,IAAI,MAAM,wDAAwD,EAE1E,OAAO,GAAqB,EAAM,EAAO,IAAI,EAG/C,GAAI,IAAoB,EAAY,UAAW,CAC7C,IAAK,EAAU,MAAM,IAAI,MAAM,+CAA+C,EAC9E,OAAO,GAAuB,EAAM,EAAU,GAAQ,WAAW,EAGnE,GAAI,IAAoB,EAAY,KAClC,OAAO,GAAoB,EAAM,GAAQ,UAAU,EAKrD,OAAO,GC9FF,IAAM,GAAe,CAAC,EAAa,IAAwC,CAChF,IAAM,EAAQ,EAAI,QAAQ,CAAS,EACnC,GAAI,IAAU,GACZ,MAAO,CAAC,EAAK,EAAE,EAEjB,IAAM,EAAQ,EAAI,MAAM,EAAG,CAAK,EAC1B,EAAO,EAAI,MAAM,EAAQ,EAAU,MAAM,EAC/C,MAAO,CAAC,EAAO,CAAI,GCNd,IAAM,GAAmB,CAAC,IAAyH,CAQxJ,IAAK,IAAY,EAAQ,KAAK,EAC5B,MAAO,CACL,OAAQ,MACR,KAAM,IACN,SAAU,WACV,WAAY,GACZ,QAAS,EACX,EAGF,IAAO,EAAW,GAAQ,GAAa,EAAS;AAAA,CAAM,GAC/C,EAAQ,EAAM,GAAY,EAAU,MAAM,IAAK,CAAC,GAChD,EAAY,GAAW,GAAa,EAAM;AAAA;AAAA,CAAU,EAG3D,IAAK,IAAW,OAAO,OAAO,CAAU,EAAE,SAAS,CAA4B,EAC7E,MAAO,CACL,OAAQ,MACR,KAAM,GAAQ,IACd,SAAU,GAAY,WACtB,aACA,SACF,EAGF,MAAO,CACL,OAAQ,EACR,KAAM,GAAQ,IACd,SAAU,GAAY,WACtB,aACA,SACF,GC3CK,IAAM,GAAa,CAAC,IAAyC,CAClE,IAAK,EAAM,MAAO,CAAC,EAEnB,IAAK,EAAK,SAAS,GAAG,EAAG,MAAO,CAAC,EAEjC,KAAS,GAAe,EAAK,MAAM,GAAG,EACtC,IAAK,EAAa,MAAO,CAAC,EAE1B,IAAM,EAAiC,CAAC,EAClC,EAAQ,EAAY,MAAM,GAAG,EAEnC,QAAW,KAAQ,EAAO,CACxB,IAAO,EAAK,GAAS,EAAK,MAAM,GAAG,EACnC,GAAI,EACF,GAAI,CACF,IAAM,EAAa,mBAAmB,CAAG,EACnC,EAAe,EAAQ,mBAAmB,CAAK,EAAI,GACzD,EAAO,GAAc,EACrB,KAAM,CAEN,EAAO,GAAO,GAAS,IAK7B,OAAO,GC5BT,IAAM,GAAoB,CAExB,mBACA,0DACA,yCACA,+CACA,sBAEA,yBACA,4BACA,gCACA,+BACF,EAKa,GAAmB,CAAC,IAAwB,CACvD,IAAK,GAAM,OAAO,IAAO,SAAU,MAAO,GAG1C,IAAM,EAAU,EAAG,QAAQ,WAAY,EAAE,EAIzC,GADkB,2EACJ,KAAK,CAAO,EAAG,CAC3B,IAAM,EAAQ,EAAQ,MAAM,GAAG,EAC/B,OACE,EAAM,SAAW,GACjB,EAAM,MAAM,CAAC,IAAS,CACpB,IAAM,EAAM,SAAS,EAAM,EAAE,EAC7B,OAAO,GAAO,GAAK,GAAO,IAC3B,EAML,GAAI,EAAQ,SAAS,IAAI,IAAM,EAAQ,MAAM,KAAK,GAAK,CAAC,GAAG,OAAS,EAClE,MAAO,GAMT,MAFE,qeAEe,KAAK,CAAO,GAMlB,GAAc,CAAC,IAAwB,CAClD,IAAK,EAAI,MAAO,GAChB,IAAM,EAAU,EAAG,QAAQ,WAAY,EAAE,EACzC,OAAO,GAAkB,KAAK,CAAC,IAAU,EAAM,KAAK,CAAO,CAAC,GAOjD,GAAiB,CAAC,EAAY,IAA2C,CACpF,IAAK,IAAO,EAAe,OAAQ,MAAO,GAG1C,GAAI,EAAe,SAAS,GAAG,EAAG,MAAO,GAEzC,OAAO,EAAe,SAAS,CAAE,GAMtB,GAAyB,CAAC,EAAsB,IAAgD,CAC3G,IAAK,EAAO,gBAAkB,EAAM,QAAU,EAAG,MAAO,GAGxD,GAAI,EAAM,OAAS,EAAO,eAAgB,MAAO,GAIjD,GADkB,IAAI,IAAI,CAAK,EACjB,OAAS,EAAM,OAAQ,MAAO,GAG5C,IAAM,EAAa,EAAM,OAAO,EAAgB,EAAE,OAClD,GAAI,EAAa,GAAK,EAAa,EAAM,OAAQ,MAAO,GAMxD,MAAO,IAMH,GAA8B,CAAC,EAAwB,IAAgD,CAC3G,GAAI,EAAQ,QAAU,EAAG,MAAO,GAEhC,IAAM,EAAS,EAAQ,EAAQ,OAAS,GACxC,OAAO,QAAQ,GAAU,GAAe,EAAQ,EAAO,cAAc,CAAC,GAMlE,GAAmB,CAAC,EAAwB,IAA2C,CAC3F,GAAI,IAAe,kBACjB,OAAO,EAAQ,GAEjB,OAAO,EAAQ,EAAQ,OAAS,IAM5B,GAAuB,CAAC,IAKC,CAC7B,IAAQ,WAAU,aAAY,UAAS,UAAW,EAC5C,EAAY,GAAY,CAAQ,EAChC,EAAU,IAAe,kBAAoB,GAAe,EAAQ,EAAQ,OAAS,IAAM,GAAI,EAAO,cAAc,EAAI,GAE9H,MAAO,CACL,GAAI,EACJ,QAAS,GACT,YACA,OAAQ,EACR,SACF,GAMI,GAAyB,KAAgC,CAC7D,GAAI,GACJ,QAAS,GACT,UAAW,GACX,OAAQ,SACR,QAAS,EACX,GAKM,GAAwB,CAAC,EAAuD,IAAgE,CAEpJ,QAAW,KAAc,EAAO,iBAAkB,CAChD,IAAM,EAAc,EAAQ,GAC5B,IAAK,EAAa,SAGlB,IAAM,EAAU,EACb,MAAM,GAAG,EACT,IAAI,CAAC,IAAO,EAAG,KAAK,CAAC,EACrB,OAAO,OAAO,EACjB,GAAI,EAAQ,SAAW,EAAG,SAG1B,GAAI,GAAuB,EAAS,CAAM,EAAG,SAG7C,GAAI,IAAe,oBAAsB,GAA4B,EAAS,CAAM,EAClF,SAIF,IAAM,EAAW,GAAiB,EAAS,CAAU,EACrD,IAAK,IAAa,GAAiB,CAAQ,EAAG,SAI9C,GADkB,GAAY,CAAQ,IACpB,EAAO,gBAAiB,SAE1C,OAAO,GAAqB,CAAE,WAAU,aAAY,UAAS,QAAO,CAAC,EAGvE,OAAO,GAAuB,GAOnB,GAAuB,CAClC,EACA,EACA,EAAsD,CAAC,IAC3B,CAE5B,IAAM,EAAc,IADC,EAAM,eAAe,cACA,CAAe,EAGnD,EAAe,GAAsB,EAAS,CAAW,EAC/D,GAAI,EAAa,QACf,OAAO,EAIT,MAAO,CACL,GAAI,GACJ,QAAS,GACT,UAAW,GACX,OAAQ,SACR,QAAS,EACX,GAOW,GAAiB,CAAC,EAA0B,IAAkE,CAEzH,OADe,GAAqB,EAAO,CAAO,EACpC,ICxNT,IAAM,GAA4B,CAAC,IAAmD,CAC3F,IAAK,EAAmB,OAGxB,MADsB,qCAAqC,KAAK,CAAiB,IAC1D,ICMlB,IAAM,GAAsB,CAAC,IAAqE,CACvG,IAAK,EAAY,MAAO,CAAC,EAGzB,GAAmB,CAAU,EAG7B,IAAM,EAAgB,GAAqB,CAAU,EAG/C,EAAmB,GAAgB,CAAa,EAKtD,OAFuB,GAAsB,CAAgB,GASlD,GAAqB,CAAC,IAA6B,CAG9D,GADoB,EAAW,MAAM,YAAY,EACjC,OAzCE,IA0ChB,MAAM,IAAI,MAAM,uCAAkD,GAWzD,GAAuB,CAAC,IAA+C,CAClF,IAAM,EAAkC,CAAC,EAInC,EADoB,EAAW,QAAQ,cAAe;AAAA,CAAI,EAC1B,MAAM;AAAA,CAAI,EAEhD,QAAW,KAAQ,EAAa,CAC9B,IAAK,EAAK,KAAK,EAAG,SAElB,IAAM,EAAa,EAAK,QAAQ,GAAG,EACnC,GAAI,IAAe,GAAI,SAEvB,IAAM,EAAM,EAAK,MAAM,EAAG,CAAU,EAAE,KAAK,EACrC,EAAQ,EAAK,MAAM,EAAa,CAAC,EAAE,KAAK,EAE9C,IAAK,EAAK,SAGV,IAAK,GAAkB,CAAG,EACxB,MAAM,IAAI,MAAM,wBAAwB,GAAK,EAI/C,GAAI,EAAI,OA5EmB,IA6EzB,MAAM,IAAI,MAAM,sDAA4E,EAI9F,GAAI,EAAM,OAhFkB,KAiF1B,MAAM,IAAI,MAAM,wDAA8E,EAIhG,EAAQ,EAAI,YAAY,GAAK,EAG/B,OAAO,GAOI,GAAkB,CAAC,IAA4D,CAC1F,IAAM,EAAoC,CAAC,EAE3C,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAO,EAC/C,EAAU,GAAO,GAAoB,CAAK,EAG5C,OAAO,GAOI,GAAwB,CAAC,IASpC,EAKI,GAAoB,CAAC,IAA0B,CAMnD,MAD6B,iCACD,KAAK,CAAI,GAMjC,GAAsB,CAAC,IAA0B,CAIrD,OADkB,EAAM,QAAQ,4BAA6B,EAAE,GCnI1D,MAAM,EAA2C,CAC7C,YACA,OAET,OACA,KACA,SACA,QACA,KACA,MACA,OACA,UACA,QAEA,WAAW,CAAC,EAAgC,EAAkB,EAAwB,CACpF,KAAK,YAAc,EACnB,KAAK,OAAS,EAGd,KAAK,UAAY,GAAiB,GAElC,IAAQ,SAAQ,OAAM,WAAU,UAAS,OAAM,QAAO,SAAQ,WAAY,KAAK,wBAAwB,EAEvG,KAAK,OAAS,EACd,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,KAAO,EACZ,KAAK,MAAQ,GAAS,CAAC,EACvB,KAAK,OAAS,GAAU,CAAC,EACzB,KAAK,QAAU,EAGf,IAAM,EAAkB,GAAe,KAAK,OAAQ,CAAO,EAC3D,GAAI,EACF,KAAK,UAAY,EAIb,uBAAuB,EAA+B,CAC5D,IAAM,EAAU,KAAK,YAAY,SAAS,GAElC,SAAQ,OAAM,WAAU,aAAY,WAAY,GAAiB,CAAO,EAE1E,EAAU,GAAoB,CAAU,EAGxC,EAAoB,EAAQ,gBAC5B,EAAkB,GAAmB,MAAM,GAAG,EAAE,IAAI,KAAK,EAAE,YAAY,EACvE,EAAW,GAA0B,CAAiB,EAE5D,MAAO,CACL,SACA,OACA,WACA,UACA,KAAM,GAAU,EAAS,CACvB,kBAAmB,EACnB,WACA,OAAQ,KAAK,OAAO,eAAe,UACrC,CAAC,EACD,MAAO,GAAW,CAAI,EACtB,OAAQ,CAAC,EACT,SACF,EAEJ,CC9EA,kBC4BO,IAAM,GAAuB,CAAC,EAAe,IAAkE,CACpH,IAAM,EAAW,GAAS,UAAY,OAGtC,GAAI,IAAS,MAAQ,IAAS,OAAW,MAAO,GAGhD,GAAI,OAAO,SAAS,CAAI,EAAG,OAAO,GAAa,EAAM,CAAQ,EAC7D,GAAI,aAAgB,WAAY,OAAO,GAAiB,EAAM,CAAQ,EACtE,GAAI,aAAgB,YAAa,OAAO,GAAkB,EAAM,CAAQ,EAGxE,GAAI,OAAO,IAAS,SAAU,OAAO,EAGrC,GAAI,OAAO,IAAS,SAAU,OAAO,GAAuB,CAAI,EAIhE,OAAO,OAAO,CAAc,GAGxB,GAAe,CAAC,EAAc,IAAmD,CACrF,GAAI,IAAa,SAAU,OAAO,EAAK,SAAS,QAAQ,EACxD,GAAI,IAAa,SAAU,OAAO,EAAK,SAAS,QAAQ,EACxD,OAAO,EAAK,SAAS,MAAM,GAGvB,GAAmB,CAAC,EAAkB,IAAmD,CAC7F,IAAM,EAAS,OAAO,KAAK,CAAI,EAC/B,OAAO,GAAa,EAAQ,CAAQ,GAGhC,GAAoB,CAAC,EAAmB,IAAmD,CAC/F,IAAM,EAAS,OAAO,KAAK,CAAI,EAC/B,OAAO,GAAa,EAAQ,CAAQ,GAGhC,GAAyB,CAAC,IAA0B,CACxD,GAAI,CACF,OAAO,KAAK,UAAU,CAAI,EAC1B,MAAO,EAAG,CAGV,OAAO,OAAO,CAAI,ICjEtB,IAAM,GAAgB,IAAI,IAG1B,QAAY,EAAK,KAAS,OAAO,QAAQ,CAAc,EAAG,CAExD,IAAM,EAAU,GADE,GAGlB,GAAc,IAAI,EAAM,CAAO,EAgB1B,IAAM,GAAyB,CAAC,IAA2D,CAChG,IAAM,EAAU,GAAc,IAAI,CAAU,EAE5C,IAAK,EACH,MAAM,IAAI,MAAM,wBAAwB,GAAY,EAGtD,OAAO,GC1BF,IAAM,GAA8B,CAAC,EAAoB,IAA8B,CAI5F,GAAI,OAAO,IAAgB,SACzB,MAAM,IAAI,MAAM,sCAAsC,OAAO,GAAa,EAI5E,GAAI,EAAY,SAAS,IAAI,GAAK,EAAY,SAAS;AAAA,CAAI,EACzD,MAAM,IAAI,MAAM,wDAAwD,GAAY,EAItF,IAAM,EAAqB,CAEzB,iEAEA,gBAEA,2BACF,EAEA,QAAW,KAAW,EACpB,GAAI,EAAQ,KAAK,CAAW,EAC1B,MAAM,IAAI,MAAM,uDAAuD,GAAY,GAS5E,GAA0B,CAAC,IAA0C,CAChF,QAAY,EAAM,KAAU,OAAO,QAAQ,CAAO,EAChD,GAA4B,EAAM,CAAK,GAQ9B,GAA2B,CAAC,IAAiF,CAExH,IAAM,EAAyC,CAAC,EAChD,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAO,EAC/C,GAAI,IAAU,OACZ,EAAe,GAAO,EAO1B,OAFA,GAAwB,CAAc,EAE/B,GCxDF,IAAM,GAAyB,CAAC,EAAiC,IAA4C,CAClH,IAAK,EAAM,MAAO,IAGlB,IAAI,EAAa,EAEjB,GAAI,IAAa,EAAa,OAE5B,EAAa,OAAO,WAAW,EAAM,MAAM,EAE7C,GAAI,IAAa,EAAa,OAE5B,EAAa,EAAK,OAIpB,GAAI,IAAa,EAAa,KAC5B,EAAa,OAAO,WAAW,EAAM,MAAM,EAG7C,OAAO,OAAO,CAAU,GJnBnB,MAAM,EAA6C,CAC/C,SAET,YAAsC,EAAe,GACrD,QAA8B,GAAW,GACzC,SAAyD,CAAC,EAC1D,MAAiB,GACjB,YAAc,GACd,UAAkC,EAAa,KAE/C,WAAW,CAAC,EAAkB,CAC5B,KAAK,SAAW,EAChB,KAAK,oBAAoB,EAG3B,wBAAwB,EAAS,CAE/B,IAAM,EAAa,GAAG,KAAK,SAAS,YAAY,KAAK,eAAe,KAAK,UAGnE,EAAc,OAAO,QAAQ,KAAK,QAAQ,EAAE,IAAI,EAAE,EAAK,KAAW,GAAG,MAAQ,GAAO,EAGpF,EAAW,GAAkB,KAAK,SAAS,gBAAiB,KAAK,KAAK,EAGtE,EAAO,GAAqB,KAAK,MAAO,CAAE,UAAS,CAAC,EAG1D,KAAK,UAAY,EAGjB,IAAM,EAAiB,EAAY,OAAS,EAAI,GAAG,EAAY,KAAK;AAAA,CAAI;AAAA,EAAQ,GAChF,KAAK,YAAc,GAAG;AAAA,EAAe;AAAA,EAAmB,IAExD,IAAM,EAAgB,GAAuB,KAAK,YAAa,KAAK,SAAS,EAC7E,KAAK,oBAAoB,CACvB,KAAM,WAAM,EAAE,OAAO,iCAAiC,EACtD,iBAAkB,CACpB,CAAC,EAGH,mBAAmB,CAAC,EAA6D,CAG/E,IAAM,EAAuC,CAAC,EAC9C,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAO,EAC/C,GAAI,IAAU,UAAe,KAAO,KAAK,UACvC,EAAa,GAAO,EAIxB,IAAM,EAAmB,GAAyB,CAAY,EAG9D,OAAO,OAAO,KAAK,SAAU,CAAgB,EAG/C,QAAQ,CAAC,EAAqB,CAI5B,GAHA,KAAK,MAAQ,GAGR,KAAK,SAAS,gBAAiB,CAClC,IAAM,EAAsB,GAAiB,CAAI,EACjD,KAAK,oBAAoB,CACvB,eAAgB,CAClB,CAAC,GAIL,aAAa,CAAC,EAA0C,CACtD,KAAK,YAAc,EACnB,KAAK,QAAU,GAAuB,CAAU,EAGlD,UAAU,CAAC,EAA6D,CAEtE,IAAM,EAAmB,GAAyB,CAAO,EAGzD,KAAK,SAAW,IAAK,KAAK,YAAa,CAAiB,EAG1D,aAAa,CAAC,EAA+C,CAC3D,QAAW,KAAc,EACvB,OAAO,KAAK,SAAS,GAQzB,mBAAmB,EAAS,CAC1B,KAAK,oBAAoB,CACvB,yBAA0B,UAC1B,kBAAmB,OACnB,mBAAoB,gBACpB,kBAAmB,iCACrB,CAAC,EAEL,CKzDO,MAAM,EAA2C,CAC7C,SACA,UA6BT,QA8BA,SAmDA,MAAiC,CAAC,EA4BlC,WAAW,CAAC,EAA6B,EAAkB,EAAwB,CACjF,KAAK,SAAW,IAAI,GAAY,EAAY,EAAO,CAAa,EAChE,KAAK,UAAY,IAAI,GAAa,KAAK,QAAQ,EAE/C,KAAK,QAAU,KAAK,SACpB,KAAK,SAAW,KAAK,UAEzB,CChMO,IAAM,GAAY,CACvB,IAAK,MACL,MAAO,QACP,KAAM,OACN,KAAM,MACR,ECPA,IAAM,GAA8B,CAClC,QAAS,GACT,OAAQ,IACR,QAAS,CAAC,MAAO,OAAQ,MAAO,SAAU,QAAS,SAAS,EAC5D,eAAgB,IAChB,eAAgB,CAAC,EACjB,YAAa,GACb,OAAQ,MACR,kBAAmB,GACnB,qBAAsB,EAAe,SACvC,EAKM,GAA6B,CACjC,KAAM,CACJ,QAAS,OACT,SAAU,GACV,yBAA0B,GAC1B,QAAS,KACT,gBAAiB,QACjB,eAAgB,GAClB,EACA,YAAa,CACX,YAAa,SACb,aAAc,SACd,SAAU,GACV,kBAAmB,CAAC,EACpB,kBAAmB,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,EAClE,kBAAmB,GACrB,EACA,WAAY,CACV,QAAS,QACT,UAAW,KACX,mBAAoB,IACpB,eAAgB,OAClB,CACF,EAKM,GAA6B,CACjC,eAAgB,CAAC,YAAa,KAAK,EACnC,gBAAiB,GACjB,iBAAkB,CAAC,kBAAmB,YAAa,mBAAoB,cAAe,gBAAgB,EACtG,eAAgB,GAChB,eAAgB,EAClB,EAKM,GAAqD,CACzD,KAAM,KACN,KAAM,UACN,SAAU,GAAU,KACpB,YAAa,GACb,KAAM,CACJ,QAAS,EACX,EACA,WAAY,GACZ,WAAY,GACZ,kBAAmB,CACjB,cAAe,MACf,wBAAyB,MACzB,iBAAkB,MAClB,eAAgB,KAClB,EACA,qBAAsB,EACxB,EAKM,GAAsB,CAAC,IAAoE,CAC/F,GAAI,EAAO,QAAU,EACnB,MAAM,IAAI,MAAM,iDAAiD,EAGnE,GAAI,EAAO,SAAW,EACpB,MAAM,IAAI,MAAM,6CAA6C,EAG/D,GAAI,EAAO,QAAU,EACnB,MAAM,IAAI,MAAM,4CAA4C,EAG9D,GAAI,EAAO,gBAAkB,EAC3B,MAAM,IAAI,MAAM,yDAAyD,EAG3E,GAAI,EAAO,eAAiB,EAC1B,MAAM,IAAI,MAAM,mDAAmD,GAOjE,GAA4B,CAAC,IAA2E,CAC5G,GAAI,EAAO,YAAc,EACvB,MAAM,IAAI,MAAM,4DAA4D,EAG9E,GAAI,EAAO,aAAe,EACxB,MAAM,IAAI,MAAM,6DAA6D,EAG/E,GAAI,EAAO,SAAW,EACpB,MAAM,IAAI,MAAM,oDAAoD,EAGtE,GAAI,EAAO,kBAAoB,EAC7B,MAAM,IAAI,MAAM,uEAAuE,GAOrF,GAA4B,CAAC,IAA0E,CAC3G,GAAI,EAAO,QAAU,EACnB,MAAM,IAAI,MAAM,uDAAuD,EAGzE,GAAI,EAAO,UAAY,EACrB,MAAM,IAAI,MAAM,oDAAoD,EAGtE,GAAI,EAAO,mBAAqB,EAC9B,MAAM,IAAI,MAAM,uEAAuE,EAGzF,GAAI,EAAO,eAAiB,EAC1B,MAAM,IAAI,MAAM,8DAA8D,GAO5E,GAA4B,CAAC,IAA4D,CAC7F,IAAK,MAAM,QAAQ,EAAO,cAAc,EACtC,MAAM,IAAI,MAAM,4CAA4C,EAG9D,IAAK,MAAM,QAAQ,EAAO,gBAAgB,EACxC,MAAM,IAAI,MAAM,8CAA8C,EAGhE,GAAI,EAAO,iBAAiB,SAAW,EACrC,MAAM,IAAI,MAAM,8DAA8D,EAGhF,GAAI,EAAO,eAAiB,EAC1B,MAAM,IAAI,MAAM,8CAA8C,EAGhE,GAAI,EAAO,eAAiB,GAC1B,MAAM,IAAI,MAAM,qEAAqE,GAOnF,GAAkB,CAAC,IAAoE,CAC3F,GAAI,EAAO,yBACT,EAAI,KACF,kMAEF,EAIF,GAAI,EAAO,QAAU,SAEnB,EAAI,KACF,wDAAwD,EAAO,kBAAkB,KAAK,MAAM,EAAO,QAAU,KAAO,IAAI,4GAE1H,EAIF,GAAI,EAAO,SAAW,GACpB,EAAI,KACF,yDAAyD,EAAO,yGAElE,GAOE,GAAwB,CAAC,IAA2E,CAExG,GAAI,EAAO,YAAc,UAEvB,EAAI,KACF,mEAAmE,EAAO,sBAAsB,KAAK,MAAM,EAAO,YAAc,KAAO,IAAI,oEAE7I,EAGF,GAAI,EAAO,aAAe,WAExB,EAAI,KACF,oEAAoE,EAAO,uBAAuB,KAAK,MAAM,EAAO,aAAe,KAAO,KAAO,IAAI,iFAEvJ,EAIF,IAAM,EAAsB,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,EAC7F,EAAmB,EAAO,kBAAkB,OAAO,CAAC,IAAQ,EAAoB,SAAS,EAAI,YAAY,CAAC,CAAC,EAEjH,GAAI,EAAiB,OAAS,EAC5B,EAAI,KACF,8FAA8F,EAAiB,KAAK,IAAI,6FAE1H,EAIF,GAAI,EAAO,kBAAkB,SAAW,GAAK,EAAO,kBAAkB,SAAW,EAC/E,EAAI,KACF,6LAEF,GAOE,GAAwB,CAAC,IAA4D,CAEzF,GAAI,EAAO,eAAe,SAAW,EACnC,EAAI,KAAK,wIAAwI,EAInJ,GAAI,EAAO,eAAiB,GAC1B,EAAI,KACF,0DAA0D,EAAO,kHAEnE,EAIF,IAAK,EAAO,eACV,EAAI,KACF,oKAEF,GAOE,GAAoB,CAAC,EAA4C,IAA2C,CAChH,GAAI,GAAY,MAAM,QAGpB,EAAc,KAAO,IAChB,MACA,EAAW,KACd,QAAS,EACX,GAOE,GAA0B,CAAC,EAA4C,IAA2C,CACtH,GAAI,GAAY,WACd,EAAc,WAAa,CACzB,KAAM,IACD,GAA2B,QAC3B,EAAW,WAAW,IAC3B,EACA,YAAa,IACR,GAA2B,eAC3B,EAAW,WAAW,WAC3B,EACA,WAAY,IACP,GAA2B,cAC3B,EAAW,WAAW,UAC3B,CACF,EAGA,GAA0B,EAAc,UAAU,GAOhD,GAA0B,CAAC,EAA4C,IAA2C,CACtH,GAAI,GAAY,WACd,EAAc,WAAa,IACtB,MACA,EAAW,UAChB,EAGA,GAA0B,EAAc,UAAU,EAClD,GAAsB,EAAc,UAAU,GAO5C,GAAgB,CAAC,EAA4C,IAA2C,CAC5G,GAAI,GAAY,OAAS,OAAW,CAClC,IAAM,EAAiB,OAAO,EAAW,IAAI,EAC7C,GAAI,MAAM,CAAc,GAAK,EAAiB,GAAK,EAAiB,MAClE,MAAM,IAAI,MAAM,qBAAqB,EAEvC,EAAc,KAAO,IAOnB,GAA4B,CAAC,IAA4D,CAE7F,GAAoB,EAAO,IAAI,EAC/B,GAA0B,EAAO,WAAW,EAC5C,GAA0B,EAAO,UAAU,EAG3C,GAAgB,EAAO,IAAI,EAC3B,GAAsB,EAAO,WAAW,GAM7B,GAA4B,CAAC,IAAqE,CAE7G,IAAM,EAAS,IAAK,EAAsB,EAW1C,OARA,OAAO,OAAO,EAAQ,CAAa,EAGnC,GAAkB,EAAQ,CAAa,EACvC,GAAwB,EAAQ,CAAa,EAC7C,GAAwB,EAAQ,CAAa,EAC7C,GAAc,EAAQ,CAAa,EAE5B,GC3WF,MAAM,EAAqD,CACvD,WAIA,UAIT,SACA,YAEA,WAAW,EAAG,CACZ,KAAK,WAAa,IAAI,IACtB,KAAK,UAAY,IAAI,IACrB,KAAK,SAAW,CAAC,EAAK,IAA4B,CAGhD,OAFA,EAAI,MAAM,uCAAwC,CAAK,EACvD,EAAI,SAAS,cAAc,EAAe,mBAAmB,EACtD,CAAE,QAAS,GAAO,QAAS,uBAAwB,GAE5D,KAAK,YAAc,CAAC,IAAiB,CAEnC,OADA,EAAI,SAAS,cAAc,EAAe,QAAQ,EAC3C,CAAE,QAAS,GAAO,QAAS,eAAgB,GAItD,eAAe,CAAC,EAAkC,EAA2C,CAC3F,KAAK,uBAAuB,EAAU,WAAW,EACjD,QAAW,KAAW,EAAU,KAAK,WAAW,IAAI,CAAE,UAAS,QAAS,GAAW,CAAE,gBAAiB,CAAC,EAAG,gBAAiB,CAAC,CAAE,CAAE,CAAC,EAGnI,cAAc,CAAC,EAAkC,EAA2C,CAC1F,KAAK,uBAAuB,EAAU,UAAU,EAChD,QAAW,KAAW,EAAU,KAAK,UAAU,IAAI,CAAE,UAAS,QAAS,GAAW,CAAE,gBAAiB,CAAC,EAAG,gBAAiB,CAAC,CAAE,CAAE,CAAC,EAG1H,sBAAsB,CAAC,EAAmB,EAAgE,CAChH,IAAK,MAAM,QAAQ,CAAQ,EAAG,CAC5B,IAAM,EAAe,OAAO,EAG5B,MAAM,IAAI,MACR,eAAe,2DAAoE,KAHlE,IAAiB,WAK9B;AAAA;AAAA,mBAAuB,IAAa,EAAO,OAAO,EAAO,wBAAwB,EAAO,OAAO,EAAO;AAAA,iBAAyB,IAAa,EAAO,UAAU,EAAO,wBAAwB,EAAO,UAAU,EAAO;AAAA;AAAA,sCAAgD,EAAO,yBAAyB,EAAO;AAAA;AAAA,EAC3S;AAAA;AAAA;AAAA,aAAqD,KAE3D,EAGF,GAAI,EAAS,SAAW,EAAG,CACzB,EAAI,KAAK,GAAG,2DAAoE,EAChF,OAGF,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAM,EAAU,EAAS,GACzB,GAAI,OAAO,IAAY,WACrB,MAAM,IAAI,MAAM,eAAe,4CAAqD,oCAAoC,OAAO,GAAS,GAK9I,WAAW,CAAC,EAAgC,CAC1C,KAAK,SAAW,EAGlB,cAAc,CAAC,EAAgC,CAC7C,KAAK,YAAc,EAEvB,CCjEO,IAAM,GAAsB,CAAC,IAA2D,CAC7F,IAAM,EAA4B,CAAC,EAI7B,EAAU,EAAM,KACnB,QAAQ,QAAS,CAAC,IAAU,CAC3B,IAAM,EAAY,EAAM,MAAM,CAAC,EAE/B,OADA,EAAW,KAAK,CAAS,EAClB,UACR,EACA,QAAQ,MAAO,KAAK,EAEvB,MAAO,IACF,EACH,QAAS,IAAI,OAAO,IAAI,IAAU,EAClC,aACA,gBAAiB,EACnB,GCDK,IAAM,GAAgB,CAAC,IAAyB,CAGrD,IAAK,GAAkB,EAAK,MAAM,GAAG,EACrC,IAAK,EAAgB,MAAO,GAG5B,GADA,CAAC,CAAc,EAAI,EAAe,MAAM,GAAG,GACtC,EAAgB,MAAO,GAI5B,GAAI,CACF,EAAiB,mBAAmB,CAAc,EAClD,MAAO,EAAG,CAGV,EAAI,KAAK,4BAA6B,CAAE,KAAM,CAAe,CAAC,EAoBhE,GAfA,EAAiB,EAAe,WAAW,GAAG,EAAI,EAAiB,IAAI,IAIvE,EAAiB,EAAe,QAAQ,SAAU,GAAG,EAOrD,EAAiB,GAAmB,CAAc,EAI9C,EAAe,OAAS,GAAK,EAAe,SAAS,GAAG,EAC1D,EAAiB,EAAe,MAAM,EAAG,EAAE,EAG7C,OAAO,GA2BH,GAAqB,CAAC,IAAyB,CAEnD,IAAM,EAAW,EAAK,MAAM,GAAG,EACzB,EAA0B,CAAC,EAEjC,QAAW,KAAW,EAAU,CAC9B,GAAI,IAAY,KAAO,IAAY,GAAI,CAGrC,GAAI,IAAY,IAAM,EAAS,SAAW,EAExC,EAAS,KAAK,CAAO,EAEvB,SAGF,GAAI,IAAY,MAEd,GAAI,EAAS,OAAS,EAGpB,EAAS,IAAI,EAKf,OAAS,KAAK,CAAO,EAQzB,OAHe,EAAS,KAAK,GAAG,GAGf,KAON,GAA0B,CAAC,IAAyB,EAAK,QAAQ,QAAS,QAAQ,ECrHxF,IAAM,GAAyB,CAAC,IAA4B,CAGjE,IAAM,EAAe,EAAU,MAAM,OAAO,EAC5C,IAAK,EAAc,OAEnB,IAAM,EAAa,EAAa,IAAI,CAAC,IAAU,EAAM,MAAM,CAAC,CAAC,EACvD,EAAmB,IAAI,IAAI,CAAU,EAG3C,GAAI,EAAW,SAAW,EAAiB,KAAM,CAC/C,IAAM,EAAa,EAAW,OAAO,CAAC,EAAM,IAAU,EAAW,QAAQ,CAAI,IAAM,CAAK,EACxF,MAAM,IAAI,MACR,SAAS,oCAA4C,EAAW,KAAK,IAAI,wFAE3E,ICXG,MAAM,EAAuD,CAKzD,aAAe,IAAI,IAWnB,qBAAuB,IAAI,IAQpC,SAAS,EAAG,SAAQ,OAAM,UAAS,WAAwC,CACzE,IAAM,EAAiB,GAAc,CAAI,EACnC,EAAkB,EAAe,SAAS,GAAG,EAGnD,GAAI,EACF,GAAuB,CAAc,EAKvC,GAAI,KAAK,sBAAsB,EAAQ,CAAc,EACnD,MAAM,IAAI,MAAM,SAAS,+BAA4C,GAAQ,EAG/E,IAAM,EAAQ,CAAE,SAAQ,KAAM,EAAgB,UAAS,UAAS,OAAQ,CAAC,CAAE,EAE3E,GAAI,EAEF,KAAK,yBAAyB,EAAQ,CAAK,EAG3C,UAAK,iBAAiB,EAAQ,EAAgB,CAAK,EAWvD,UAAU,CAAC,EAA4B,EAAiD,CACtF,IAAM,EAAiB,GAAc,CAAI,EAGnC,EAAa,KAAK,aAAa,IAAI,CAAM,GAAG,IAAI,CAAc,EACpE,GAAI,EACF,OAAO,EAIT,IAAM,EAAqB,KAAK,wBAAwB,EAAQ,CAAc,EAC9E,GAAI,EACF,OAAO,EAGT,OAOM,qBAAqB,CAAC,EAA4B,EAA0B,CAElF,GAAI,KAAK,aAAa,IAAI,CAAM,GAAG,IAAI,CAAO,EAC5C,MAAO,GAKT,GAAI,EAAQ,SAAS,GAAG,EAAG,CACzB,IAAM,EAAoB,GAAwB,CAAO,EACnD,EAAc,KAAK,qBAAqB,IAAI,CAAM,EAExD,GAAI,EACF,OAAO,EAAY,KAAK,CAAC,IAAU,GAAwB,EAAM,IAAI,IAAM,CAAiB,EAEzF,KAEL,IAAM,EAAc,KAAK,qBAAqB,IAAI,CAAM,EACxD,GAAI,EACF,OAAO,EAAY,KAAK,CAAC,IAAU,EAAM,OAAS,CAAO,EAI7D,MAAO,GAMD,gBAAgB,CAAC,EAA4B,EAAc,EAAoC,CACrG,IAAK,KAAK,aAAa,IAAI,CAAM,EAC/B,KAAK,aAAa,IAAI,EAAQ,IAAI,GAAK,EAGzC,KAAK,aAAa,IAAI,CAAM,GAAG,IAAI,EAAM,CAAK,EAMxC,wBAAwB,CAAC,EAA4B,EAAoC,CAC/F,IAAK,KAAK,qBAAqB,IAAI,CAAM,EACvC,KAAK,qBAAqB,IAAI,EAAQ,CAAC,CAAC,EAa1C,IAAM,EAAW,GAAoB,CAAK,EAC1C,KAAK,qBAAqB,IAAI,CAAM,GAAG,KAAK,CAAQ,EAQ9C,uBAAuB,CAAC,EAA4B,EAAiD,CAC3G,IAAM,EAAc,KAAK,qBAAqB,IAAI,CAAM,EACxD,IAAK,EAAa,OAGlB,QAAW,KAAiB,EAAa,CACvC,IAAM,EAAQ,EAAK,MAAM,EAAc,OAAO,EAC9C,GAAI,EAAO,CACT,IAAM,EAAiC,CAAC,EAIxC,QAAS,EAAI,EAAG,EAAI,EAAc,WAAW,OAAQ,IAAK,CACxD,IAAM,EAAa,EAAM,EAAI,GACvB,EAAY,EAAc,WAAW,GAE3C,GAAI,IAAe,QAAa,IAAc,OAC5C,EAAO,GAAa,EAIxB,MAAO,IAAK,EAAe,QAAO,GAItC,OAEJ,CC3KO,IAAM,EAA6B,CAAC,KAA0E,CACnH,YAAa,GAAS,aAAe,CAAC,EACtC,WAAY,GAAS,YAAc,CAAC,CACtC,GAQa,GAAoB,CAAC,EAA6C,KAA+E,CAC5J,YAAa,CAAC,GAAI,EAAc,aAAe,CAAC,EAAI,GAAI,GAAc,aAAe,CAAC,CAAE,EACxF,WAAY,CAAC,GAAI,GAAc,YAAc,CAAC,EAAI,GAAI,EAAc,YAAc,CAAC,CAAE,CACvF,GAMa,GAAiB,CAAC,EAAgB,IAAyB,CACtE,IAAM,EAAc,EAAO,SAAS,GAAG,EAAI,EAAO,MAAM,EAAG,EAAE,EAAI,EAC3D,EAAY,EAAK,WAAW,GAAG,EAAI,EAAO,IAAI,IACpD,MAAO,GAAG,IAAc,KCjCnB,MAAM,EAAqC,CAC/B,OACA,QACA,SAEjB,WAAW,CAAC,EAA0B,EAAgB,EAAwC,CAC5F,KAAK,OAAS,EACd,KAAK,QAAU,EACf,KAAK,SAAW,EAA2B,CAAO,EAG5C,mBAAmB,CAAC,EAA4B,CACtD,MAAO,CAAC,EAAc,EAA+B,IAAsD,CACzG,IAAM,EAAW,GAAe,KAAK,QAAS,CAAI,EAC5C,EAAgB,GAAkB,KAAK,SAAU,CAAY,EAWnE,GATA,KAAK,OAAO,eAAe,UAAU,CACnC,SACA,UACA,KAAM,EACN,QAAS,EACT,OAAQ,CAAC,CACX,CAAC,EAGG,IAAW,EAAW,IACxB,KAAK,OAAO,eAAe,UAAU,CACnC,OAAQ,EAAW,KACnB,UACA,KAAM,EACN,QAAS,EACT,OAAQ,CAAC,CACX,CAAC,GAMP,IAAM,KAAK,oBAAoB,EAAW,GAAG,EAC7C,KAAO,KAAK,oBAAoB,EAAW,IAAI,EAC/C,KAAO,KAAK,oBAAoB,EAAW,IAAI,EAC/C,IAAM,KAAK,oBAAoB,EAAW,GAAG,EAC7C,OAAS,KAAK,oBAAoB,EAAW,MAAM,EACnD,MAAQ,KAAK,oBAAoB,EAAW,KAAK,EACjD,QAAU,KAAK,oBAAoB,EAAW,OAAO,EAGrD,KAAK,CAAC,EAAgB,EAA6C,EAA0D,CAC3H,IAAM,EAAe,GAAe,KAAK,QAAS,CAAM,EAClD,EAAgB,GAAkB,KAAK,SAAU,CAAO,EAExD,EAAc,IAAI,GAAS,KAAK,OAAQ,EAAc,CAAa,EAGzE,OAFA,EAAS,CAAW,EAEb,EAEX,CCtDO,MAAM,EAAuC,CACzC,eACA,eAAiB,IAAI,GACrB,OAAS,IAAI,GAEtB,WAAW,CAAC,EAA2C,CACrD,KAAK,eAAiB,GAA0B,CAAmB,EAIrE,GAAG,CAAC,EAAc,EAA+B,EAA8C,CAC7F,IAAM,EAAe,EAA2B,CAAO,EAEvD,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,IAAK,UAAS,OAAM,QAAS,EAAc,OAAQ,CAAC,CAAE,CAAC,EAE1G,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,KAAM,UAAS,OAAM,QAAS,EAAc,OAAQ,CAAC,CAAE,CAAC,EAG7G,IAAI,CAAC,EAAc,EAA+B,EAA8C,CAC9F,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,KAAM,UAAS,OAAM,QAAS,EAA2B,CAAO,EAAG,OAAQ,CAAC,CAAE,CAAC,EAGpI,IAAI,CAAC,EAAc,EAA+B,EAA8C,CAC9F,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,KAAM,UAAS,OAAM,QAAS,EAA2B,CAAO,EAAG,OAAQ,CAAC,CAAE,CAAC,EAGpI,GAAG,CAAC,EAAc,EAA+B,EAA8C,CAC7F,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,IAAK,UAAS,OAAM,QAAS,EAA2B,CAAO,EAAG,OAAQ,CAAC,CAAE,CAAC,EAGnI,KAAK,CAAC,EAAc,EAA+B,EAA8C,CAC/F,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,MAAO,UAAS,OAAM,QAAS,EAA2B,CAAO,EAAG,OAAQ,CAAC,CAAE,CAAC,EAGrI,MAAM,CAAC,EAAc,EAA+B,EAA8C,CAChG,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,OAAQ,UAAS,OAAM,QAAS,EAA2B,CAAO,EAAG,OAAQ,CAAC,CAAE,CAAC,EAGtI,OAAO,CAAC,EAAc,EAA+B,EAA8C,CACjG,KAAK,eAAe,UAAU,CAAE,OAAQ,EAAW,QAAS,UAAS,OAAM,QAAS,EAA2B,CAAO,EAAG,OAAQ,CAAC,CAAE,CAAC,EAGvI,KAAK,CAAC,EAAgB,EAA6C,EAA0D,CAE3H,IAAM,EAAW,IAAI,GAAS,KAAM,EAAQ,CAAO,EAKnD,OAFA,EAAS,CAAQ,EAEV,EAYT,SAAS,CAAC,EAAuC,EAA2C,CAC1F,KAAK,OAAO,gBAAgB,EAAU,CAAO,EAG/C,QAAQ,CAAC,EAAuC,EAA2C,CACzF,KAAK,OAAO,eAAe,EAAU,CAAO,EAG9C,OAAO,CAAC,EAAqC,CAC3C,KAAK,OAAO,YAAY,CAAO,EAGjC,UAAU,CAAC,EAAqC,CAC9C,KAAK,OAAO,eAAe,CAAO,EAEtC,ClC2CO,MAAM,WAAmB,EAAU,CAChC,aAAe,GACf,QAER,WAAW,CAAC,EAAqC,CAC/C,MAAM,CAAa,EAGnB,GAAI,KAAK,eAAe,OACtB,EAAI,gBAAgB,KAAK,eAAe,MAAM,EAUhD,GANA,EAAI,YAAY,KAAK,eAAe,QAAQ,EAG5C,EAAW,WAAW,KAAK,eAAe,WAAW,EAGjD,KAAK,eAAe,cACtB,EAAW,iBAAiB,KAAK,eAAe,aAAa,EAU/D,GANA,EAAI,KACF,8CACA,GAAG,EAAO,eAAe,KAAK,eAAe,0BAA0B,KAAK,eAAe,cAAc,EAAO,OAClH,EAGI,KAAK,eAAe,qBACtB,KAAK,uBAAuB,EAOxB,YAAY,CAAC,EAAqB,EAAgC,EAA0C,CAClH,IAAK,KAAK,QAAS,OAEnB,KAAK,QAAQ,GAAG,QAAS,CAAC,IAAiB,CACzC,EAAW,YAAY,KAAK,eAAe,KAAM,KAAK,eAAe,KAAM,EAAM,OAAO,EACxF,EAAO,CAAK,EACb,EAED,KAAK,QAAQ,GAAG,YAAa,IAAM,CACjC,KAAK,aAAe,GACpB,EAAW,YAAY,KAAK,eAAe,KAAM,KAAK,eAAe,IAAI,EACzE,EAAQ,EACT,EAED,KAAK,QAAQ,GAAG,aAAc,CAAC,IAAW,CACxC,KAAK,kBAAkB,EAAQ,CAAc,EAC9C,OAMW,gBAAe,EAC3B,OACA,SACA,iBACA,iBAMgB,CAChB,IAAM,EAAY,KAAK,IAAI,EAE3B,EAAI,KAAK,8BAA+B,WAAW,iBAA6B,EAAK,QAAQ,EAE7F,IAAM,EAAU,IAAI,GAAY,EAAM,KAAM,CAAa,EAEzD,MAAM,EAAe,OAAO,CAAO,EAEnC,EAAO,MAAM,EAAQ,UAAU,WAAW,EAC1C,EAAO,IAAI,EAEX,IAAM,EAAU,KAAK,IAAI,EACnB,EAAiB,EAAU,EAIjC,GADA,EAAW,QAAQ,EAAS,EAAW,CAAO,EAC1C,EAAiB,IACnB,EAAI,KAAK,wBAAyB,CAChC,OAAQ,EAAQ,QAAQ,OACxB,KAAM,EAAQ,QAAQ,KACtB,WAAY,EAAQ,UAAU,YAC9B,aAAc,GAAG,MACjB,eACF,CAAC,EAOG,iBAAiB,CAAC,EAAgB,EAA0C,CAClF,IAAM,EAAgB,EAAO,eAAiB,UAE9C,EAAW,WAAW,UAAW,CAAa,EAE9C,EAAO,GAAG,OAAQ,CAAC,IAAS,CAC1B,KAAK,gBAAgB,CAAE,OAAM,SAAQ,iBAAgB,eAAc,CAAC,EAAE,MAAM,CAAC,IAAmB,CAC9F,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,gBAC9D,EAAW,WAAW,QAAS,EAAe,qBAAqB,GAAc,EACjF,EAAO,QAAQ,EAChB,EACF,EAED,EAAO,GAAG,QAAS,CAAC,IAAiB,CACnC,EAAW,WAAW,QAAS,EAAe,EAAM,OAAO,EAC5D,EAED,EAAO,GAAG,QAAS,IAAM,CACvB,EAAW,WAAW,aAAc,CAAa,EAClD,OAGG,OAAM,EAAkB,CAC5B,GAAI,KAAK,aACP,MAAM,IAAI,MAAM,6BAA6B,EAG/C,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACtC,IAAM,EAAiB,IAAI,GAAmB,IAAI,EAClD,KAAK,QAAU,GAAa,EAE5B,KAAK,aAAa,EAAS,EAAQ,CAAc,EACjD,KAAK,QAAQ,OAAO,KAAK,eAAe,KAAM,KAAK,eAAe,IAAI,EACvE,OAGG,MAAK,EAAkB,CAC3B,IAAK,KAAK,eAAiB,KAAK,QAC9B,OAGF,OAAO,IAAI,QAAQ,CAAC,IAAY,CAC9B,IAAK,KAAK,QAAS,CACjB,KAAK,aAAe,GACpB,EAAQ,EACR,OAGF,KAAK,QAAQ,MAAM,IAAM,CACvB,KAAK,aAAe,GACpB,EAAW,WAAW,KAAK,eAAe,KAAM,KAAK,eAAe,IAAI,EACxE,EAAQ,EACT,EACF,EAGH,MAAM,EAIJ,CACA,MAAO,CACL,YAAa,KAAK,aAClB,KAAM,KAAK,eAAe,KAC1B,KAAM,KAAK,eAAe,IAC5B,EAMM,sBAAsB,EAAS,CAErC,GAAI,QAAQ,cAAc,SAAS,IAAM,GAAK,QAAQ,cAAc,QAAQ,IAAM,EAAG,CACnF,IAAM,EAAW,CAAC,IAAyB,CACzC,EAAI,KAAK,yBAAc,gCAAqC,EAC5D,KAAK,MAAM,EACR,KAAK,IAAM,CACV,EAAI,KAAK,+BAA8B,EACvC,QAAQ,KAAK,CAAC,EACf,EACA,MAAM,CAAC,IAAU,CAChB,EAAI,MAAM,oCAAoC,CAAK,EACnD,QAAQ,KAAK,CAAC,EACf,GAGL,QAAQ,GAAG,UAAW,IAAM,EAAS,SAAS,CAAC,EAC/C,QAAQ,GAAG,SAAU,IAAM,EAAS,QAAQ,CAAC,GAGnD",
43
+ "debugId": "C76EA9A23F53082C64756E2164756E21",
44
44
  "names": []
45
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yinzerflow",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "author": "Patrick Rizzardi <patrick@redact.digital> (https://redact.digital)",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/yinzers/YinzerFlow/blob/main/docs/start-here.md",