riser-bob 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,22 +1,72 @@
1
1
  // @bun
2
- class M{routes=new Map;register(e,n,i){let s=`${e} ${n}`;if(this.routes.has(s))throw Error(`\uD83C\uDF4D Oh, barnacles! Route "${s}" already lives in Bikini Bottom! \uD83E\uDDFD`);return this.routes.set(s,i),this}matchPath(e,n){let i=e.split("/").filter(Boolean),s=n.split("/").filter(Boolean);if(i.length!==s.length)return;let r={};for(let o=0;o<i.length;o++){let d=i[o],t=s[o];if(!d||!t)return;if(d.startsWith(":")){let l=d.slice(1);if(!l)return;try{r[l]=decodeURIComponent(t)}catch{return}}else if(d!==t)return}return r}compareRoutes(e,n){let i=e.split("/").filter(Boolean),s=n.split("/").filter(Boolean),r=Math.min(i.length,s.length);for(let o=0;o<r;o++){let d=i[o].startsWith(":"),t=s[o].startsWith(":");if(d!==t)return Number(d)-Number(t)}return s.length-i.length}match(e,n){let i=[...this.routes.entries()].filter(([s])=>s.startsWith(`${e} `)).sort(([s],[r])=>{let o=s.slice(e.length+1),d=r.slice(e.length+1);return this.compareRoutes(o,d)});for(let[s,r]of i){let o=s.slice(e.length+1),d=this.matchPath(o,n);if(d!==void 0)return{handler:r,params:d}}return}allowedMethods(e){return["GET","POST","PUT","PATCH","DELETE"].filter((i)=>this.routes.has(`${i} ${e}`))}}class x{middlewares=[];use(e){return this.middlewares.push(e),this}async execute(e,n,i){let s=-1,r=async(o)=>{if(o<=s)throw Error("[RiserBob] \uD83E\uDDFD Oh, barnacles! next() called multiple times!");s=o;let d=this.middlewares[o];if(!d)return i();return d(e,n,()=>r(o+1))};return r(0)}}class c extends Error{status;constructor(e,n){super(n);this.status=e;this.name="HttpError"}}class S{static handle(e){if(e instanceof c)return Response.json({error:e.message},{status:e.status});return console.error("[RiserBob] \uD83E\uDDFD An unexpected error occurred!",e),Response.json({error:"Internal Server Error"},{status:500})}}var K=(e)=>{if(!e)return!1;let n=e.split(";",1)[0]?.trim().toLowerCase();return n==="application/json"||n?.startsWith("application/")===!0&&n.endsWith("+json")},L=(e)=>{if(!K(e))throw new c(415,"Unsupported Media Type")};var P=10485760,T=async(e,n=P)=>{let i=e.headers.get("content-length");if(i!==null){let l=Number(i);if(!Number.isSafeInteger(l)||l<0)throw new c(400,"Invalid Content-Length");if(l>n)throw new c(413,"Content Too Large")}if(!e.body)return new Uint8Array;let s=e.body.getReader(),r=[],o=0;try{while(!0){let{done:l,value:g}=await s.read();if(l)break;if(o+=g.byteLength,o>n)throw await s.cancel().catch(()=>{}),new c(413,"Content Too Large");r.push(g)}}catch(l){throw await s.cancel().catch(()=>{}),l}finally{s.releaseLock()}let d=new Uint8Array(o),t=0;for(let l of r)d.set(l,t),t+=l.byteLength;return d};var a={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,OK:200,Created:201,Accepted:202,NonAuthoritativeInfo:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,IMUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,ContentTooLarge:413,URITooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HTTPVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};function q(){let e=a.OK,n=new Headers,i=(t)=>{if(!Number.isInteger(t)||t<200||t>599)throw RangeError(`Invalid Fetch Response status: ${t}`)},s=(t)=>t===204||t===205||t===304,r=(t,l=e)=>{if(i(l),s(l))throw TypeError(`Status ${l} cannot have a response body`);return Response.json(t,{status:l,headers:n})},o=(t)=>(i(t),new Response(null,{status:t,headers:n})),d=(t,l="/")=>{let g=new URL(l,"http://localhost");return new Response(null,{status:t,headers:new Headers([...n.entries(),["Location",g.href]])})};return{send(t){let l=new Headers(n);if(!l.has("Content-Type")&&typeof t==="string")l.set("Content-Type","text/plain; charset=utf-8");return new Response(t,{status:e,headers:l})},json:r,status(t){return e=t,this},header(t,l){return n.set(t,l),this},SpongContinue:()=>o(a.Continue),SpongSwitchingProtocols:()=>o(a.SwitchingProtocols),SpongProcessing:()=>o(a.Processing),SpongEarlyHints:()=>o(a.EarlyHints),SpongOK:(t={message:"OK"})=>r(t,a.OK),SpongCreated:(t={message:"Created"})=>r(t,a.Created),SpongAccepted:(t={message:"Accepted"})=>r(t,a.Accepted),SpongNonAuthoritativeInfo:(t={})=>r(t,a.NonAuthoritativeInfo),SpongNoContent:()=>o(a.NoContent),SpongResetContent:()=>o(a.ResetContent),SpongPartialContent:(t={})=>r(t,a.PartialContent),SpongMultiStatus:(t={})=>r(t,a.MultiStatus),SpongAlreadyReported:(t={})=>r(t,a.AlreadyReported),SpongIMUsed:(t={})=>r(t,a.IMUsed),SpongMultipleChoices:(t={})=>r(t,a.MultipleChoices),SpongMovedPermanently:(t)=>d(a.MovedPermanently,t),SpongFound:(t)=>d(a.Found,t),SpongSeeOther:(t)=>d(a.SeeOther,t),SpongNotModified:()=>o(a.NotModified),SpongUseProxy:(t)=>d(a.UseProxy,t),SpongTemporaryRedirect:(t)=>d(a.TemporaryRedirect,t),SpongPermanentRedirect:(t)=>d(a.PermanentRedirect,t),SpongBadRequest:(t={error:"Bad Request"})=>r(t,a.BadRequest),SpongUnauthorized:(t={error:"Unauthorized"})=>r(t,a.Unauthorized),SpongPaymentRequired:(t={})=>r(t,a.PaymentRequired),SpongForbidden:(t={error:"Forbidden"})=>r(t,a.Forbidden),SpongNotFound:(t={error:"Not Found"})=>r(t,a.NotFound),SpongMethodNotAllowed:(t={})=>r(t,a.MethodNotAllowed),SpongNotAcceptable:(t={})=>r(t,a.NotAcceptable),SpongProxyAuthenticationRequired:(t={})=>r(t,a.ProxyAuthenticationRequired),SpongRequestTimeout:(t={})=>r(t,a.RequestTimeout),SpongConflict:(t={})=>r(t,a.Conflict),SpongGone:(t={})=>r(t,a.Gone),SpongLengthRequired:(t={})=>r(t,a.LengthRequired),SpongPreconditionFailed:(t={})=>r(t,a.PreconditionFailed),SpongContentTooLarge:(t={})=>r(t,a.ContentTooLarge),SpongURITooLong:(t={})=>r(t,a.URITooLong),SpongUnsupportedMediaType:(t={})=>r(t,a.UnsupportedMediaType),SpongRangeNotSatisfiable:(t={})=>r(t,a.RangeNotSatisfiable),SpongExpectationFailed:(t={})=>r(t,a.ExpectationFailed),SpongImATeapot:(t={message:"I'm a teapot"})=>r(t,a.ImATeapot),SpongMisdirectedRequest:(t={})=>r(t,a.MisdirectedRequest),SpongUnprocessableContent:(t={})=>r(t,a.UnprocessableContent),SpongLocked:(t={})=>r(t,a.Locked),SpongFailedDependency:(t={})=>r(t,a.FailedDependency),SpongTooEarly:(t={})=>r(t,a.TooEarly),SpongUpgradeRequired:(t={})=>r(t,a.UpgradeRequired),SpongPreconditionRequired:(t={})=>r(t,a.PreconditionRequired),SpongTooManyRequests:(t={})=>r(t,a.TooManyRequests),SpongRequestHeaderFieldsTooLarge:(t={})=>r(t,a.RequestHeaderFieldsTooLarge),SpongUnavailableForLegalReasons:(t={})=>r(t,a.UnavailableForLegalReasons),SpongInternalServerError:(t={error:"Internal Server Error"})=>r(t,a.InternalServerError),SpongNotImplemented:(t={})=>r(t,a.NotImplemented),SpongBadGateway:(t={})=>r(t,a.BadGateway),SpongServiceUnavailable:(t={})=>r(t,a.ServiceUnavailable),SpongGatewayTimeout:(t={})=>r(t,a.GatewayTimeout),SpongHTTPVersionNotSupported:(t={})=>r(t,a.HTTPVersionNotSupported),SpongVariantAlsoNegotiates:(t={})=>r(t,a.VariantAlsoNegotiates),SpongInsufficientStorage:(t={})=>r(t,a.InsufficientStorage),SpongLoopDetected:(t={})=>r(t,a.LoopDetected),SpongNotExtended:(t={})=>r(t,a.NotExtended),SpongNetworkAuthenticationRequired:(t={})=>r(t,a.NetworkAuthenticationRequired)}}var J=globalThis.Bun;var I=(e,n=3000,i)=>{let s=J.serve({port:n,async fetch(r){try{let o=new URL(r.url),d=r.headers.get("origin");if(r.method==="OPTIONS"){let p=new Headers;if(d)p.set("Access-Control-Allow-Origin",d),p.set("Access-Control-Allow-Credentials","true"),p.set("Access-Control-Allow-Methods","GET, POST, PUT, PATCH, DELETE, OPTIONS"),p.set("Access-Control-Allow-Headers","Content-Type, Authorization"),p.set("Access-Control-Max-Age","86400"),p.set("Vary","Origin");return new Response(null,{status:204,headers:p})}let t=e.match(r.method,o.pathname);if(!t){let p=e.allowedMethods(o.pathname);if(p.length>0)return console.error(`[RiserBob] \uD83D\uDE2D\uD83E\uDDFD Method Not Allowed!
3
- `+`Requested Method: ${r.method}
4
- Path: ${o.pathname}
5
- Allowed Methods: ${p.join(", ")}`),Response.json({error:"Method Not Allowed"},{status:405,headers:{Allow:p.join(", ")}});throw console.warn(`[RiserBob] \uD83E\uDDFD\uD83D\uDE02 Welcome to Bikini Bottom!
6
- \uD83D\uDD0E Requested Method: ${r.method}
7
- \uD83D\uDEE3\uFE0F Requested Path: ${o.pathname}
8
- \uD83E\uDD37 Route not found! Did Patrick register it?
9
- \uD83C\uDF4D SpongeBob: "I checked my pineapple, but the endpoint isn't there!"
10
- \uD83E\uDD80 Mr. Krabs: "NO ROUTE, NO MONEY!"
11
- `),new c(404,"Not Found")}let{handler:l,params:g}=t,m=r.headers.get("content-length");if(m!==null&&Number(m)>P)throw new c(413,"Content Too Large");let w={request:r,method:r.method,url:o,path:o.pathname,params:g,query:o.searchParams,headers:r.headers,formData:async()=>{let p=await T(r),u=r.headers.get("content-type");if(!u)throw new c(400,"Missing Content-Type");let O=new Response(p.buffer.slice(p.byteOffset,p.byteOffset+p.byteLength),{headers:{"Content-Type":u}});try{return await O.formData()}catch{throw new c(400,"Invalid form data")}},json:async()=>{L(r.headers.get("content-type"));let p=await T(r),u=new TextDecoder().decode(p);try{return JSON.parse(u)}catch{throw new c(400,"Invalid JSON body")}},text:async()=>{let p=await T(r);return new TextDecoder().decode(p)}},y=q(),h=await l(w,y);if(h instanceof Response)return h;return console.error(`[RiserBob] \uD83D\uDE2D\uD83E\uDDFD Oh no! RiserBob is sad! The Handler forgot to return a valid Response! \uD83D\uDC94
12
- Method: ${r.method}
13
- Path: ${o.pathname}
14
- Expected: Response
15
- Received: ${h===void 0?"undefined":typeof h}
16
- \uD83D\uDE22 RiserBob is crying in Bikini Bottom... \uD83C\uDF4D`),S.handle(Error("Handler did not send a response"))}catch(o){return console.error(`[RiserBob] \uD83D\uDE2D\uD83E\uDDFD Oh no! RiserBob is freaking out!
17
- Something went wrong while handling this request! \uD83D\uDCA5
18
- RiserBob: "Who lives in a pineapple under a bug?! \uD83D\uDE31\uD83C\uDF4D"
19
- Error:`,o),S.handle(o)}}});return i?.(),s};class U{router=new M;middlewares=[];register(e,n,i,...s){if(!n.startsWith("/"))throw Error(`\uD83E\uDDFD Oh, barnacles! "${n}" must start with "/"! \uD83C\uDF4D`);let r=new x;for(let d of this.middlewares)r.use(d);for(let d of s)r.use(d);let o=async(d,t)=>r.execute(d,t,async()=>{let l=await i(d,t);if(l instanceof Response)return l;throw console.error("[RiserBob] \uD83E\uDDFD Oh, barnacles! Handler did not return a Response! \uD83C\uDF4D"),new c(500,"Handler did not send a response")});return this.router.register(e,n,o),this}spongGet(e,n,...i){return this.register("GET",e,n,...i)}spongPost(e,n,...i){return this.register("POST",e,n,...i)}spongPut(e,n,...i){return this.register("PUT",e,n,...i)}spongPatch(e,n,...i){return this.register("PATCH",e,n,...i)}spongDelete(e,n,...i){return this.register("DELETE",e,n,...i)}spongHead(e,n,...i){return this.register("HEAD",e,n,...i)}spongOptions(e,n,...i){return this.register("OPTIONS",e,n,...i)}spongUse(e){return this.middlewares.push(e),this}spongListen(e=4000,n){return I(this.router,e,n)}}import{createHmac as Z,timingSafeEqual as Y}from"crypto";var X=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Q=/^[\u0021-\u003A\u003C-\u007E]*$/,ee=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,te=/^[\u0020-\u003A\u003D-\u007E]*$/,re=/^[!#$&'()*+\-.\/0-9:<=>?@A-Z[\]\^_`a-z{|}~]*$/,oe=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function ne(e,n){let i=new oe,s=e.length;if(s<2)return i;let r=n?.decode||de,o=0;do{let d=ae(e,o,s);if(d===s)break;let t=se(e,o,s);if(d>t){o=e.lastIndexOf(";",d-1)+1;continue}let l=B(e,o,d);if(i[l]===void 0)i[l]=r(B(e,d+1,t));o=t+1}while(o<s);return i}function ie(e,n){let i=n?.encode||le;if(!X.test(e.name))throw TypeError(`argument name is invalid: ${e.name}`);let s=e.value==null?"":i(e.value);if(!Q.test(s))throw TypeError(`argument val is invalid: ${e.value}`);let r=e.name+"="+s;if(e.maxAge!==void 0){if(!Number.isInteger(e.maxAge))throw TypeError(`option maxAge is invalid: ${e.maxAge}`);r+="; Max-Age="+e.maxAge}if(e.domain){if(!ee.test(e.domain))throw TypeError(`option domain is invalid: ${e.domain}`);r+="; Domain="+e.domain}if(e.path){if(!te.test(e.path))throw TypeError(`option path is invalid: ${e.path}`);r+="; Path="+e.path}if(e.expires){if(!Number.isFinite(e.expires.valueOf()))throw TypeError(`option expires is invalid: ${e.expires}`);r+="; Expires="+e.expires.toUTCString()}if(e.httpOnly)r+="; HttpOnly";if(e.secure)r+="; Secure";if(e.partitioned)r+="; Partitioned";if(e.priority)switch(typeof e.priority==="string"?e.priority.toLowerCase():void 0){case"low":r+="; Priority=Low";break;case"medium":r+="; Priority=Medium";break;case"high":r+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${e.priority}`)}if(e.sameSite)switch(typeof e.sameSite==="string"?e.sameSite.toLowerCase():e.sameSite){case!0:case"strict":r+="; SameSite=Strict";break;case"lax":r+="; SameSite=Lax";break;case"none":r+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${e.sameSite}`)}return r}function se(e,n,i){let s=e.indexOf(";",n);return s===-1?i:s}function ae(e,n,i){let s=e.indexOf("=",n);return s===-1?i:s}function B(e,n,i){if(n===i)return"";let s=n,r=i;do{let o=e.charCodeAt(s);if(o!==32&&o!==9)break}while(++s<r);while(r>s){let o=e.charCodeAt(r-1);if(o!==32&&o!==9)break;r--}return e.slice(s,r)}function de(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch(n){return e}}function le(e){return re.test(e)?e:encodeURIComponent(e)}class f extends Error{code;constructor(e,n,i){super(n,i);this.code=e,this.name="CookieError"}}var pe=Object.freeze({path:"/",httpOnly:!0,secure:!0,sameSite:"lax"}),D=4096,F=34560000,ue=16384,V=32,ce=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,ge=/^\/[\x20-\x3A\x3C-\x7E]*$/,_="[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?",me=new RegExp(`^\\.?${_}(?:\\.${_})*$`,"i"),he=new Set(["lax","strict","none"]),fe=new Set(["low","medium","high"]);function N(e){return Object.fromEntries(Object.entries(e).filter(([,n])=>n!==void 0))}function j(e,n,i){return Z("sha256",i).update(`${e}=${n}`).digest("base64url")}class A{cookies=new Map;pending=new Map;secrets;defaults;headerRejected;constructor(e,n={}){let i=n.secrets??[];for(let o of i)if(typeof o!=="string"||o.length<V)throw new f("WEAK_SECRET",`Cookie secrets must be strings of at least ${V} characters.`);this.secrets=[...i],this.defaults=N(n.defaults??{}),this.resolveOptions("probe",{});let s=n.maxHeaderBytes??ue,r=!1;if(typeof e==="string"&&e!=="")if(Buffer.byteLength(e,"utf8")>s)r=!0;else this.load(e);this.headerRejected=r}static fromRequest(e,n){return new A(e.headers.get("cookie"),n)}get(e){return this.cookies.get(e)}has(e){return this.cookies.has(e)}names(){return[...this.cookies.keys()]}getAll(){return Object.fromEntries(this.cookies)}set(e,n,i={}){let s=this.resolveOptions(e,i),r=this.serialize(e,n,s);if(this.record(e,s,r),this.isExpired(s))this.cookies.delete(e);else this.cookies.set(e,n);return this}setSigned(e,n,i={}){let s=this.secrets[0];if(s===void 0)throw new f("SECRETS_REQUIRED","Signed cookies need at least one secret in CookieManagerOptions.secrets.");if(typeof n!=="string")throw new f("INVALID_VALUE","Cookie value must be a string.");return this.set(e,`${n}.${j(e,n,s)}`,i)}getSigned(e){let n=this.cookies.get(e);if(n===void 0)return;let i=n.lastIndexOf(".");if(i===-1)return;let s=n.slice(0,i),r=Buffer.from(n.slice(i+1),"utf8"),o=!1;for(let d of this.secrets){let t=Buffer.from(j(e,s,d),"utf8");if(r.length===t.length&&Y(r,t))o=!0}return o?s:void 0}delete(e,n={}){let i=this.resolveOptions(e,{...N(n),expires:new Date(0),maxAge:0}),s=this.serialize(e,"",i);return this.record(e,i,s),this.cookies.delete(e),this}getSetCookieHeaders(){return[...this.pending.values()]}applyTo(e){let n=this.getSetCookieHeaders();if(n.length===0)return e;try{for(let i of n)e.headers.append("Set-Cookie",i);return e}catch{let i=new Response(e.body,{status:e.status,statusText:e.statusText,headers:new Headers(e.headers)});for(let s of n)i.headers.append("Set-Cookie",s);return i}}load(e){let n;try{n=ne(e)}catch{return}for(let[i,s]of Object.entries(n))if(s!==void 0)this.cookies.set(i,s)}resolveOptions(e,n){if(typeof e!=="string"||!ce.test(e))throw new f("INVALID_NAME",`Invalid cookie name: ${JSON.stringify(e)}.`);let i={...pe,...this.defaults,...N(n)},s=(o)=>{throw new f("INVALID_OPTION",`Cookie "${e}": ${o}`)};if(i.maxAge!==void 0){if(!Number.isSafeInteger(i.maxAge)||i.maxAge<0)s("maxAge must be a non-negative integer (seconds).");i.maxAge=Math.min(i.maxAge,F)}if(i.expires!==void 0){if(!(i.expires instanceof Date)||Number.isNaN(i.expires.getTime()))s("expires must be a valid Date.");let o=Date.now()+F*1000;if(i.expires.getTime()>o)i.expires=new Date(o)}if(i.path!==void 0&&!ge.test(i.path))s('path must start with "/" and not contain ";" or control characters.');if(i.domain!==void 0&&(i.domain.length>253||!me.test(i.domain)))s("domain is not a valid host name.");if(i.priority!==void 0&&!fe.has(i.priority))s('priority must be "low", "medium" or "high".');if(typeof i.sameSite==="string"&&!he.has(i.sameSite))s('sameSite must be "lax", "strict" or "none".');let r=e.startsWith("__Host-");if((r||e.startsWith("__Secure-")||i.sameSite==="none"||i.partitioned===!0)&&i.secure!==!0)s("this cookie requires the Secure attribute (__Host-/__Secure- prefix, SameSite=None or Partitioned).");if(r){if(i.domain!==void 0)s("__Host- cookies cannot set a domain.");if(i.path!=="/")s('__Host- cookies must use path "/".')}return i}serialize(e,n,i){if(typeof n!=="string")throw new f("INVALID_VALUE","Cookie value must be a string.");let s;try{s=ie({name:e,value:n,...i})}catch(r){throw new f("SERIALIZATION_FAILED",`Cookie "${e}" could not be serialized.`,{cause:r})}if(Buffer.byteLength(s,"utf8")>D)throw new f("COOKIE_TOO_LARGE",`Cookie "${e}" is larger than ${D} bytes.`);return s}record(e,n,i){let s=[e,n.domain?.toLowerCase()??"",n.path??"/",n.partitioned===!0?"partitioned":""].join("\x00");this.pending.delete(s),this.pending.set(s,i)}isExpired(e){return e.maxAge===0||e.expires!==void 0&&e.expires.getTime()<=Date.now()}}class z{verifyToken;mode;cookieName;constructor(e,n={}){this.verifyToken=e;this.mode=n.mode??"both",this.cookieName=n.cookieName??"token"}getToken(e){if(this.mode==="bearer"||this.mode==="both"){let n=e.headers.get("authorization");if(n){let i=n.match(/^Bearer\s+(\S+)$/i);if(!i)return null;return i[1]??null}if(this.mode==="bearer")return null}if(this.mode==="cookie"||this.mode==="both")return A.fromRequest(e.request).get(this.cookieName)??null;return null}middleware=async(e,n,i)=>{let s=this.getToken(e);if(!s)return n.SpongUnauthorized({success:!1,message:"Authentication token is missing or invalid."});let r;try{r=await this.verifyToken(s)}catch(o){return console.error("[RiserBob] Token verification failed:",o),S.handle(o)}if(!r)return n.SpongUnauthorized({success:!1,message:"Token is invalid or expired."});return e.user=r,e.auth={token:s},i()}}var ye=["GET","POST","PUT","PATCH","DELETE"],we=["Content-Type","Authorization"],Se=(e)=>{let{origin:n,credentials:i=!1,methods:s=ye,allowedHeaders:r=we,exposedHeaders:o=[],maxAge:d=86400}=e;if(n==="*"&&i)throw TypeError('[RiserBob] CORS cannot use "*" with credentials enabled.');if(!Array.isArray(s)||s.length===0)throw TypeError("[RiserBob] CORS methods must contain at least one method.");if(!Array.isArray(r))throw TypeError("[RiserBob] CORS allowedHeaders must be an array.");if(!Array.isArray(o))throw TypeError("[RiserBob] CORS exposedHeaders must be an array.");if(!Number.isInteger(d)||d<0)throw TypeError("[RiserBob] CORS maxAge must be a non-negative integer.");let t=new Set(Array.isArray(n)?n:[]),l=s.join(", "),g=r.join(", "),m=o.join(", ");return async(w,y,h)=>{let p=w.request.headers.get("origin"),u=new Headers;if(n==="*"?!0:p!==null&&t.has(p)||typeof n==="string"&&n!=="*"&&p===n){if(u.set("Access-Control-Allow-Origin",n==="*"?"*":p),i)u.set("Access-Control-Allow-Credentials","true");if(u.set("Access-Control-Allow-Methods",l),r.length>0)u.set("Access-Control-Allow-Headers",g);if(o.length>0)u.set("Access-Control-Expose-Headers",m);if(u.set("Access-Control-Max-Age",String(d)),n!=="*")u.set("Vary","Origin")}if(w.method==="OPTIONS")return new Response(null,{status:204,headers:u});let R=await h(),b=new Headers(R.headers);for(let[k,W]of u)if(k.toLowerCase()==="vary"){let H=b.get("Vary"),E=H?H.split(",").map((v)=>v.trim()):[];if(!E.some((v)=>v.toLowerCase()==="origin"))E.push("Origin");b.set("Vary",E.join(", "))}else b.set(k,W);return new Response(R.body,{status:R.status,statusText:R.statusText,headers:b})}};var Re=async(e,n,i)=>{let s=performance.now(),r=500;try{let o=await i();return r=o.status,o}catch(o){throw console.error("[RiserBob] \uD83D\uDC80\uD83E\uDDFD Barnacles! Request failed!",o),o}finally{let o=(performance.now()-s).toFixed(2),d=new Date().toISOString();console.log(`[RiserBob] ${d} | ${e.method} ${e.path} | ${r} | ${o}ms`)}};var be=new Set(["required","nullable","string","number","boolean","email","confirmed","min","max","minLength","maxLength"]);class G{static parseSchema(e){let n={};for(let[i,s]of Object.entries(e)){if(!Array.isArray(s))throw TypeError(`Invalid validation rules for "${i}"`);n[i]=s.map((o)=>{if(typeof o!=="string")throw TypeError(`Invalid validation rule for "${i}"`);let d=o.indexOf(":"),t=d===-1?o:o.slice(0,d);if(!be.has(t))throw TypeError(`Unknown validation rule: ${o}`);if(!["min","max","minLength","maxLength"].includes(t)){if(d!==-1)throw TypeError(`Rule "${t}" does not accept a limit`);return{name:t}}if(d===-1)throw TypeError(`Rule "${t}" requires a limit`);let g=o.slice(d+1);if(!/^\d+(?:\.\d+)?$/.test(g))throw TypeError(`Invalid validation limit: ${o}`);let m=Number(g);if(!Number.isFinite(m))throw TypeError(`Invalid validation limit: ${o}`);if(t.endsWith("Length")&&!Number.isInteger(m))throw TypeError(`Rule "${t}" requires an integer limit`);return{name:t,limit:m}});let r=n[i].map((o)=>o.name);if(r.includes("required")&&r.includes("nullable"))throw console.error(`[RiserBob] \uD83E\uDDFD\uD83C\uDF4D Oh, barnacles! Invalid Validation Schema!
20
- Field: ${i}
21
- \uD83D\uDCA5 "required" and "nullable" cannot be combined!
22
- \uD83E\uDD91 Squidward says: "Fix your Schema already!"`),TypeError(`[RiserBob] Invalid rules for field "${i}".`)}return n}static validate(e,n){if(e===null||typeof e!=="object"||Array.isArray(e))throw TypeError("Validation data must be a plain object");let i=this.parseSchema(n),s={},r=(o,d)=>{(s[o]??=[]).push(d)};for(let[o,d]of Object.entries(i)){let t=e[o],l=d.map((h)=>h.name),g=l.includes("required"),m=l.includes("nullable"),w=t===void 0||t===null||typeof t==="string"&&t.trim()==="";if(g&&w){r(o,`${o} is required`);continue}if(t===void 0)continue;if(t===null&&m)continue;if(typeof t==="string"&&t.trim()===""&&!g)continue;let y=!1;if(l.includes("string")&&typeof t!=="string")r(o,`${o} must be a string`),y=!0;if(l.includes("number")&&(typeof t!=="number"||!Number.isFinite(t)))r(o,`${o} must be a number`),y=!0;if(l.includes("boolean")&&typeof t!=="boolean")r(o,`${o} must be a boolean`),y=!0;if(y)continue;if(l.includes("email")&&(typeof t!=="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)))r(o,`${o} must be a valid email`);if(l.includes("confirmed")&&t!==e[`${o}Confirmation`])r(o,`${o} confirmation does not match`);for(let h of d){let{name:p,limit:u}=h;if(u===void 0)continue;if(p==="min"||p==="max")if(typeof t==="number"){if(p==="min"&&t<u)r(o,`${o} must be at least ${u}`);if(p==="max"&&t>u)r(o,`${o} may not be greater than ${u}`)}else if(typeof t==="string"){if(p==="min"&&t.length<u)r(o,`${o} must be at least ${u} characters`);if(p==="max"&&t.length>u)r(o,`${o} may not exceed ${u} characters`)}else r(o,`${o} must be a string or number for ${p}`);if(p==="minLength"){if(typeof t!=="string")r(o,`${o} must be a string`);else if(t.length<u)r(o,`${o} must be at least ${u} characters`)}if(p==="maxLength"){if(typeof t!=="string")r(o,`${o} must be a string`);else if(t.length>u)r(o,`${o} may not exceed ${u} characters`)}}}if(Object.keys(s).length>0)return{valid:!1,errors:s};return{valid:!0,data:e,errors:{}}}}export{z as AuthMiddleware,c as HttpError,x as MiddlewarePipeline,U as RiserBob,G as Validator,Se as corsMiddleware,Re as loggerMiddleware};
2
+ var xr=Object.create;var{getPrototypeOf:gr,defineProperty:rs,getOwnPropertyNames:vr}=Object;var cs=Object.prototype.hasOwnProperty;function br(e){return this[e]}var yr,wr,kr=(e,t,i)=>{var s=e!=null&&typeof e==="object";if(s){var n=t?yr??=new WeakMap:wr??=new WeakMap,a=n.get(e);if(a)return a}i=e!=null?xr(gr(e)):{};let r=t||!e||!e.__esModule||!cs.call(e,"default")?rs(i,"default",{value:e,enumerable:!0}):i;if(e&&typeof e==="object"||typeof e==="function"){for(let o of vr(e))if(!cs.call(r,o))rs(r,o,{get:br.bind(e,o),enumerable:!0})}if(s)n.set(e,r);return r};var g=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var T=import.meta.require;var hs=g(function(rm,ci){ci.exports=fs;ci.exports.preferredCharsets=fs;var Er=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Tr(e){var t=e.split(",");for(var i=0,s=0;i<t.length;i++){var n=Rr(t[i].trim(),i);if(n)t[s++]=n}return t.length=s,t}function Rr(e,t){var i=Er.exec(e);if(!i)return null;var s=i[1],n=1;if(i[2]){var a=i[2].split(";");for(var r=0;r<a.length;r++){var o=a[r].trim().split("=");if(o[0]==="q"){n=parseFloat(o[1]);break}}}return{charset:s,q:n,i:t}}function Cr(e,t,i){var s={o:-1,q:0,s:0};for(var n=0;n<t.length;n++){var a=Ar(e,t[n],i);if(a&&(s.s-a.s||s.q-a.q||s.o-a.o)<0)s=a}return s}function Ar(e,t,i){var s=0;if(t.charset.toLowerCase()===e.toLowerCase())s|=1;else if(t.charset!=="*")return null;return{i,o:t.i,q:t.q,s}}function fs(e,t){var i=Tr(e===void 0?"*":e||"");if(!t)return i.filter(ms).sort(ds).map(Or);var s=t.map(function(a,r){return Cr(a,i,r)});return s.filter(ms).sort(ds).map(function(a){return t[s.indexOf(a)]})}function ds(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function Or(e){return e.charset}function ms(e){return e.q>0}});var ys=g(function(cm,pi){pi.exports=bs;pi.exports.preferredEncodings=bs;var Pr=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function jr(e){var t=e.split(","),i=!1,s=1;for(var n=0,a=0;n<t.length;n++){var r=qr(t[n].trim(),n);if(r)t[a++]=r,i=i||vs("identity",r),s=Math.min(s,r.q||1)}if(!i)t[a++]={encoding:"identity",q:s,i:n};return t.length=a,t}function qr(e,t){var i=Pr.exec(e);if(!i)return null;var s=i[1],n=1;if(i[2]){var a=i[2].split(";");for(var r=0;r<a.length;r++){var o=a[r].trim().split("=");if(o[0]==="q"){n=parseFloat(o[1]);break}}}return{encoding:s,q:n,i:t}}function Nr(e,t,i){var s={o:-1,q:0,s:0};for(var n=0;n<t.length;n++){var a=vs(e,t[n],i);if(a&&(s.s-a.s||s.q-a.q||s.o-a.o)<0)s=a}return s}function vs(e,t,i){var s=0;if(t.encoding.toLowerCase()===e.toLowerCase())s|=1;else if(t.encoding!=="*")return null;return{i,o:t.i,q:t.q,s}}function bs(e,t){var i=jr(e||"");if(!t)return i.filter(gs).sort(xs).map(Ir);var s=t.map(function(a,r){return Nr(a,i,r)});return s.filter(gs).sort(xs).map(function(a){return t[s.indexOf(a)]})}function xs(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function Ir(e){return e.encoding}function gs(e){return e.q>0}});var Es=g(function(pm,li){li.exports=Ss;li.exports.preferredLanguages=Ss;var Br=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function Mr(e){var t=e.split(",");for(var i=0,s=0;i<t.length;i++){var n=_s(t[i].trim(),i);if(n)t[s++]=n}return t.length=s,t}function _s(e,t){var i=Br.exec(e);if(!i)return null;var s=i[1],n=i[2],a=s;if(n)a+="-"+n;var r=1;if(i[3]){var o=i[3].split(";");for(var c=0;c<o.length;c++){var l=o[c].split("=");if(l[0]==="q")r=parseFloat(l[1])}}return{prefix:s,suffix:n,q:r,i:t,full:a}}function Dr(e,t,i){var s={o:-1,q:0,s:0};for(var n=0;n<t.length;n++){var a=Fr(e,t[n],i);if(a&&(s.s-a.s||s.q-a.q||s.o-a.o)<0)s=a}return s}function Fr(e,t,i){var s=_s(e);if(!s)return null;var n=0;if(t.full.toLowerCase()===s.full.toLowerCase())n|=4;else if(t.prefix.toLowerCase()===s.full.toLowerCase())n|=2;else if(t.full.toLowerCase()===s.prefix.toLowerCase())n|=1;else if(t.full!=="*")return null;return{i,o:t.i,q:t.q,s:n}}function Ss(e,t){var i=Mr(e===void 0?"*":e||"");if(!t)return i.filter(ks).sort(ws).map(Lr);var s=t.map(function(a,r){return Dr(a,i,r)});return s.filter(ks).sort(ws).map(function(a){return t[s.indexOf(a)]})}function ws(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function Lr(e){return e.full}function ks(e){return e.q>0}});var Ps=g(function(lm,ui){ui.exports=As;ui.exports.preferredMediaTypes=As;var Ur=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function Hr(e){var t=Kr(e);for(var i=0,s=0;i<t.length;i++){var n=Cs(t[i].trim(),i);if(n)t[s++]=n}return t.length=s,t}function Cs(e,t){var i=Ur.exec(e);if(!i)return null;var s=Object.create(null),n=1,a=i[2],r=i[1];if(i[3]){var o=Gr(i[3]).map(Wr);for(var c=0;c<o.length;c++){var l=o[c],p=l[0].toLowerCase(),u=l[1],x=u&&u[0]==='"'&&u[u.length-1]==='"'?u.substr(1,u.length-2):u;if(p==="q"){n=parseFloat(x);break}s[p]=x}}return{type:r,subtype:a,params:s,q:n,i:t}}function zr(e,t,i){var s={o:-1,q:0,s:0};for(var n=0;n<t.length;n++){var a=$r(e,t[n],i);if(a&&(s.s-a.s||s.q-a.q||s.o-a.o)<0)s=a}return s}function $r(e,t,i){var s=Cs(e),n=0;if(!s)return null;if(t.type.toLowerCase()==s.type.toLowerCase())n|=4;else if(t.type!="*")return null;if(t.subtype.toLowerCase()==s.subtype.toLowerCase())n|=2;else if(t.subtype!="*")return null;var a=Object.keys(t.params);if(a.length>0)if(a.every(function(r){return t.params[r]=="*"||(t.params[r]||"").toLowerCase()==(s.params[r]||"").toLowerCase()}))n|=1;else return null;return{i,o:t.i,q:t.q,s:n}}function As(e,t){var i=Hr(e===void 0?"*/*":e||"");if(!t)return i.filter(Rs).sort(Ts).map(Vr);var s=t.map(function(a,r){return zr(a,i,r)});return s.filter(Rs).sort(Ts).map(function(a){return t[s.indexOf(a)]})}function Ts(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function Vr(e){return e.type+"/"+e.subtype}function Rs(e){return e.q>0}function Os(e){var t=0,i=0;while((i=e.indexOf('"',i))!==-1)t++,i++;return t}function Wr(e){var t=e.indexOf("="),i,s;if(t===-1)i=e;else i=e.substr(0,t),s=e.substr(t+1);return[i,s]}function Kr(e){var t=e.split(",");for(var i=1,s=0;i<t.length;i++)if(Os(t[s])%2==0)t[++s]=t[i];else t[s]+=","+t[i];return t.length=s+1,t}function Gr(e){var t=e.split(";");for(var i=1,s=0;i<t.length;i++)if(Os(t[s])%2==0)t[++s]=t[i];else t[s]+=";"+t[i];t.length=s+1;for(var i=0;i<t.length;i++)t[i]=t[i].trim();return t}});var js=g(function(um,di){/*!
3
+ * negotiator
4
+ * Copyright(c) 2012 Federico Romero
5
+ * Copyright(c) 2012-2014 Isaac Z. Schlueter
6
+ * Copyright(c) 2015 Douglas Christopher Wilson
7
+ * MIT Licensed
8
+ */var Jr=hs(),Yr=ys(),Qr=Es(),Xr=Ps();di.exports=S;di.exports.Negotiator=S;function S(e){if(!(this instanceof S))return new S(e);this.request=e}S.prototype.charset=function(t){var i=this.charsets(t);return i&&i[0]};S.prototype.charsets=function(t){return Jr(this.request.headers["accept-charset"],t)};S.prototype.encoding=function(t){var i=this.encodings(t);return i&&i[0]};S.prototype.encodings=function(t){return Yr(this.request.headers["accept-encoding"],t)};S.prototype.language=function(t){var i=this.languages(t);return i&&i[0]};S.prototype.languages=function(t){return Qr(this.request.headers["accept-language"],t)};S.prototype.mediaType=function(t){var i=this.mediaTypes(t);return i&&i[0]};S.prototype.mediaTypes=function(t){return Xr(this.request.headers.accept,t)};S.prototype.preferredCharset=S.prototype.charset;S.prototype.preferredCharsets=S.prototype.charsets;S.prototype.preferredEncoding=S.prototype.encoding;S.prototype.preferredEncodings=S.prototype.encodings;S.prototype.preferredLanguage=S.prototype.language;S.prototype.preferredLanguages=S.prototype.languages;S.prototype.preferredMediaType=S.prototype.mediaType;S.prototype.preferredMediaTypes=S.prototype.mediaTypes});var qs=g(function(dm,Zr){Zr.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Ds=g(function(oc){/*!
9
+ * mime-types
10
+ * Copyright(c) 2014 Jonathan Ong
11
+ * Copyright(c) 2015 Douglas Christopher Wilson
12
+ * MIT Licensed
13
+ */var gt=qs(),ec=T("path").extname,Ns=/^\s*([^;\s]*)(?:;|\s|$)/,tc=/^text\//i;oc.charset=Is;oc.charsets={lookup:Is};oc.contentType=ic;oc.extension=sc;oc.extensions=Object.create(null);oc.lookup=nc;oc.types=Object.create(null);ac(oc.extensions,oc.types);function Is(e){if(!e||typeof e!=="string")return!1;var t=Ns.exec(e),i=t&&gt[t[1].toLowerCase()];if(i&&i.charset)return i.charset;if(t&&tc.test(t[1]))return"UTF-8";return!1}function ic(e){if(!e||typeof e!=="string")return!1;var t=e.indexOf("/")===-1?oc.lookup(e):e;if(!t)return!1;if(t.indexOf("charset")===-1){var i=oc.charset(t);if(i)t+="; charset="+i.toLowerCase()}return t}function sc(e){if(!e||typeof e!=="string")return!1;var t=Ns.exec(e),i=t&&oc.extensions[t[1].toLowerCase()];if(!i||!i.length)return!1;return i[0]}function nc(e){if(!e||typeof e!=="string")return!1;var t=ec("x."+e).toLowerCase().substr(1);if(!t)return!1;return oc.types[t]||!1}function ac(e,t){var i=["nginx","apache",void 0,"iana"];Object.keys(gt).forEach(function(n){var a=gt[n],r=a.extensions;if(!r||!r.length)return;e[n]=r;for(var o=0;o<r.length;o++){var c=r[o];if(t[c]){var l=i.indexOf(gt[t[c]].source),p=i.indexOf(a.source);if(t[c]!=="application/octet-stream"&&(l>p||l===p&&t[c].substr(0,12)==="application/"))continue}t[c]=n}})}});var vt=g(function(fm,Fs){/*!
14
+ * accepts
15
+ * Copyright(c) 2014 Jonathan Ong
16
+ * Copyright(c) 2015 Douglas Christopher Wilson
17
+ * MIT Licensed
18
+ */var lc=js(),uc=Ds();Fs.exports=W;function W(e){if(!(this instanceof W))return new W(e);this.headers=e.headers,this.negotiator=new lc(e)}W.prototype.type=W.prototype.types=function(e){var t=e;if(t&&!Array.isArray(t)){t=Array(arguments.length);for(var i=0;i<t.length;i++)t[i]=arguments[i]}if(!t||t.length===0)return this.negotiator.mediaTypes();if(!this.headers.accept)return t[0];var s=t.map(dc),n=this.negotiator.mediaTypes(s.filter(mc)),a=n[0];return a?t[s.indexOf(a)]:!1};W.prototype.encoding=W.prototype.encodings=function(e){var t=e;if(t&&!Array.isArray(t)){t=Array(arguments.length);for(var i=0;i<t.length;i++)t[i]=arguments[i]}if(!t||t.length===0)return this.negotiator.encodings();return this.negotiator.encodings(t)[0]||!1};W.prototype.charset=W.prototype.charsets=function(e){var t=e;if(t&&!Array.isArray(t)){t=Array(arguments.length);for(var i=0;i<t.length;i++)t[i]=arguments[i]}if(!t||t.length===0)return this.negotiator.charsets();return this.negotiator.charsets(t)[0]||!1};W.prototype.lang=W.prototype.langs=W.prototype.language=W.prototype.languages=function(e){var t=e;if(t&&!Array.isArray(t)){t=Array(arguments.length);for(var i=0;i<t.length;i++)t[i]=arguments[i]}if(!t||t.length===0)return this.negotiator.languages();return this.negotiator.languages(t)[0]||!1};function dc(e){return e.indexOf("/")===-1?uc.lookup(e):e}function mc(e){return typeof e==="string"}});var Hs=g(function(Ls){/*!
19
+ * base64id v0.1.0
20
+ */Object.defineProperty(Ls,"__esModule",{value:!0});Ls.base64id=void 0;var te=T("crypto"),hi=function(){};hi.prototype.getRandomBytes=function(e){var t=4096,i=this;if(e=e||12,e>t)return te.randomBytes(e);var s=Math.floor(t/e),n=Math.floor(s*0.85);if(!n)return te.randomBytes(e);if(this.bytesBufferIndex==null)this.bytesBufferIndex=-1;if(this.bytesBufferIndex==s)this.bytesBuffer=null,this.bytesBufferIndex=-1;if(this.bytesBufferIndex==-1||this.bytesBufferIndex>n){if(!this.isGeneratingBytes)this.isGeneratingBytes=!0,te.randomBytes(t,function(r,o){i.bytesBuffer=o,i.bytesBufferIndex=0,i.isGeneratingBytes=!1});if(this.bytesBufferIndex==-1)return te.randomBytes(e)}var a=this.bytesBuffer.slice(e*this.bytesBufferIndex,e*(this.bytesBufferIndex+1));return this.bytesBufferIndex++,a};hi.prototype.generateId=function(){var e=Buffer.alloc(15);if(!e.writeInt32BE)return Math.abs(Math.random()*Math.random()*Date.now()|0).toString()+Math.abs(Math.random()*Math.random()*Date.now()|0).toString();if(this.sequenceNumber=this.sequenceNumber+1|0,e.writeInt32BE(this.sequenceNumber,11),te.randomBytes)this.getRandomBytes(12).copy(e);else[0,4,8].forEach(function(t){e.writeInt32BE(Math.random()*Math.pow(2,32)|0,t)});return e.toString("base64").replace(/\//g,"_").replace(/\+/g,"-")};Ls.base64id=new hi});var bt=g(function($s){Object.defineProperty($s,"__esModule",{value:!0});$s.ERROR_PACKET=$s.PACKET_TYPES_REVERSE=$s.PACKET_TYPES=void 0;var ie=Object.create(null);$s.PACKET_TYPES=ie;ie.open="0";ie.close="1";ie.ping="2";ie.pong="3";ie.message="4";ie.upgrade="5";ie.noop="6";var zs=Object.create(null);$s.PACKET_TYPES_REVERSE=zs;Object.keys(ie).forEach((e)=>{zs[ie[e]]=e});var fc={type:"error",data:"parser error"};$s.ERROR_PACKET=fc});var Js=g(function(Gs){Object.defineProperty(Gs,"__esModule",{value:!0});Gs.encodePacket=void 0;Gs.encodePacketToBinary=vc;var Ws=bt(),gc=({type:e,data:t},i,s)=>{if(t instanceof ArrayBuffer||ArrayBuffer.isView(t))return s(i?t:"b"+Ks(t,!0).toString("base64"));return s(Ws.PACKET_TYPES[e]+(t||""))};Gs.encodePacket=gc;var Ks=(e,t)=>{if(Buffer.isBuffer(e)||e instanceof Uint8Array&&!t)return e;else if(e instanceof ArrayBuffer)return Buffer.from(e);else return Buffer.from(e.buffer,e.byteOffset,e.byteLength)},xi;function vc(e,t){if(e.data instanceof ArrayBuffer||ArrayBuffer.isView(e.data))return t(Ks(e.data,!1));Gs.encodePacket(e,!0,(i)=>{if(!xi)xi=new TextEncoder;t(xi.encode(i))})}});var Zs=g(function(Qs){Object.defineProperty(Qs,"__esModule",{value:!0});Qs.decodePacket=void 0;var le=bt(),yc=(e,t)=>{if(typeof e!=="string")return{type:"message",data:Ys(e,t)};let i=e.charAt(0);if(i==="b"){let s=Buffer.from(e.substring(1),"base64");return{type:"message",data:Ys(s,t)}}if(!le.PACKET_TYPES_REVERSE[i])return le.ERROR_PACKET;return e.length>1?{type:le.PACKET_TYPES_REVERSE[i],data:e.substring(1)}:{type:le.PACKET_TYPES_REVERSE[i]}};Qs.decodePacket=yc;var Ys=(e,t)=>{switch(t){case"arraybuffer":if(e instanceof ArrayBuffer)return e;else if(Buffer.isBuffer(e))return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);else return e.buffer;case"nodebuffer":default:if(Buffer.isBuffer(e))return e;else return Buffer.from(e)}}});var pt=g(function(_t){Object.defineProperty(_t,"__esModule",{value:!0});_t.decodePayload=_t.decodePacket=_t.encodePayload=_t.encodePacket=_t.protocol=void 0;_t.createPacketEncoderStream=_c;_t.createPacketDecoderStream=Sc;var qe=Js();Object.defineProperty(_t,"encodePacket",{enumerable:!0,get:function(){return qe.encodePacket}});var Ne=Zs();Object.defineProperty(_t,"decodePacket",{enumerable:!0,get:function(){return Ne.decodePacket}});var kt=bt(),en=String.fromCharCode(30),wc=(e,t)=>{let i=e.length,s=Array(i),n=0;e.forEach((a,r)=>{qe.encodePacket(a,!1,(o)=>{if(s[r]=o,++n===i)t(s.join(en))})})};_t.encodePayload=wc;var kc=(e,t)=>{let i=e.split(en),s=[];for(let n=0;n<i.length;n++){let a=Ne.decodePacket(i[n],t);if(s.push(a),a.type==="error")break}return s};_t.decodePayload=kc;function _c(){return new TransformStream({transform(e,t){qe.encodePacketToBinary(e,(i)=>{let s=i.length,n;if(s<126)n=new Uint8Array(1),new DataView(n.buffer).setUint8(0,s);else if(s<65536){n=new Uint8Array(3);let a=new DataView(n.buffer);a.setUint8(0,126),a.setUint16(1,s)}else{n=new Uint8Array(9);let a=new DataView(n.buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(s))}if(e.data&&typeof e.data!=="string")n[0]|=128;t.enqueue(n),t.enqueue(i)})}})}var vi;function yt(e){return e.reduce((t,i)=>t+i.length,0)}function wt(e,t){if(e[0].length===t)return e.shift();let i=new Uint8Array(t),s=0;for(let n=0;n<t;n++)if(i[n]=e[0][s++],s===e[0].length)e.shift(),s=0;if(e.length&&s<e[0].length)e[0]=e[0].slice(s);return i}function Sc(e,t){if(!vi)vi=new TextDecoder;let i=[],s=0,n=-1,a=!1;return new TransformStream({transform(r,o){i.push(r);while(!0){if(s===0){if(yt(i)<1)break;let c=wt(i,1);if(a=(c[0]&128)===128,n=c[0]&127,n<126)s=3;else if(n===126)s=1;else s=2}else if(s===1){if(yt(i)<2)break;let c=wt(i,2);n=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),s=3}else if(s===2){if(yt(i)<8)break;let c=wt(i,8),l=new DataView(c.buffer,c.byteOffset,c.length),p=l.getUint32(0);if(p>Math.pow(2,21)-1){o.enqueue(kt.ERROR_PACKET);break}n=p*Math.pow(2,32)+l.getUint32(4),s=3}else{if(yt(i)<n)break;let c=wt(i,n);o.enqueue(Ne.decodePacket(a?c:vi.decode(c),t)),s=0}if(n===0||n>e){o.enqueue(kt.ERROR_PACKET);break}}}})}_t.protocol=4});var on=g(function(km,an){/*! https://mths.be/utf8js v2.1.2 by @mathias */var ue=String.fromCharCode;function sn(e){var t=[],i=0,s=e.length,n,a;while(i<s)if(n=e.charCodeAt(i++),n>=55296&&n<=56319&&i<s)if(a=e.charCodeAt(i++),(a&64512)==56320)t.push(((n&1023)<<10)+(a&1023)+65536);else t.push(n),i--;else t.push(n);return t}function Ac(e){var t=e.length,i=-1,s,n="";while(++i<t){if(s=e[i],s>65535)s-=65536,n+=ue(s>>>10&1023|55296),s=56320|s&1023;n+=ue(s)}return n}function nn(e,t){if(e>=55296&&e<=57343){if(t)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function bi(e,t){return ue(e>>t&63|128)}function Oc(e,t){if((e&4294967168)==0)return ue(e);var i="";if((e&4294965248)==0)i=ue(e>>6&31|192);else if((e&4294901760)==0){if(!nn(e,t))e=65533;i=ue(e>>12&15|224),i+=bi(e,6)}else if((e&4292870144)==0)i=ue(e>>18&7|240),i+=bi(e,12),i+=bi(e,6);return i+=ue(e&63|128),i}function Pc(e,t){t=t||{};var i=t.strict!==!1,s=sn(e),n=s.length,a=-1,r,o="";while(++a<n)r=s[a],o+=Oc(r,i);return o}function Ie(){if(de>=Et)throw Error("Invalid byte index");var e=St[de]&255;if(de++,(e&192)==128)return e&63;throw Error("Invalid continuation byte")}function jc(e){var t,i,s,n,a;if(de>Et)throw Error("Invalid byte index");if(de==Et)return!1;if(t=St[de]&255,de++,(t&128)==0)return t;if((t&224)==192)if(i=Ie(),a=(t&31)<<6|i,a>=128)return a;else throw Error("Invalid continuation byte");if((t&240)==224)if(i=Ie(),s=Ie(),a=(t&15)<<12|i<<6|s,a>=2048)return nn(a,e)?a:65533;else throw Error("Invalid continuation byte");if((t&248)==240){if(i=Ie(),s=Ie(),n=Ie(),a=(t&7)<<18|i<<12|s<<6|n,a>=65536&&a<=1114111)return a}throw Error("Invalid UTF-8 detected")}var St,Et,de;function qc(e,t){t=t||{};var i=t.strict!==!1;St=sn(e),Et=St.length,de=0;var s=[],n;while((n=jc(i))!==!1)s.push(n);return Ac(s)}an.exports={version:"2.1.2",encode:Pc,decode:qc}});var hn=g(function(fn){Object.defineProperty(fn,"__esModule",{value:!0});fn.packets=fn.protocol=void 0;fn.encodePacket=yi;fn.encodeBase64Packet=pn;fn.decodePacket=wi;fn.decodeBase64Packet=ln;fn.encodePayload=Mc;fn.decodePayload=Fc;fn.encodePayloadAsBinary=dn;fn.decodePayloadAsBinary=mn;var cn=on();fn.protocol=3;var Nc=(e)=>{for(let t of e)if(t.data instanceof ArrayBuffer||ArrayBuffer.isView(t.data))return!0;return!1};fn.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6};var Be=Object.keys(fn.packets),X={type:"error",data:"parser error"},Ic=Buffer.concat([]);function yi(e,t,i,s){if(typeof t==="function")s=t,t=null;if(typeof i==="function")s=i,i=null;if(Buffer.isBuffer(e.data))return rn(e,t,s);else if(e.data&&(e.data.buffer||e.data)instanceof ArrayBuffer)return rn({type:e.type,data:ki(e.data)},t,s);var n=fn.packets[e.type];if(e.data!==void 0)n+=i?cn.encode(String(e.data),{strict:!1}):String(e.data);return s(""+n)}function rn(e,t,i){if(!t)return pn(e,i);var s=e.data,n=Buffer.allocUnsafe(1);return n[0]=fn.packets[e.type],i(Buffer.concat([n,s]))}function pn(e,t){var i=Buffer.isBuffer(e.data)?e.data:ki(e.data),s="b"+fn.packets[e.type];return s+=i.toString("base64"),t(s)}function wi(e,t,i){if(e===void 0)return X;let s;if(typeof e==="string"){if(s=e.charAt(0),s==="b")return ln(e.slice(1),t);if(i){if(e=Bc(e),e===!1)return X}if(Number(s)!=s||!Be[s])return X;if(e.length>1)return{type:Be[s],data:e.slice(1)};else return{type:Be[s]}}if(t==="arraybuffer"){var n=new Uint8Array(e);return s=n[0],{type:Be[s],data:n.buffer.slice(1)}}if(e instanceof ArrayBuffer)e=ki(e);return s=e[0],{type:Be[s],data:e.slice(1)}}function Bc(e){try{e=cn.decode(e,{strict:!1})}catch(t){return!1}return e}function ln(e,t){var i=Be[e.charAt(0)],s=Buffer.from(e.slice(1),"base64");if(t==="arraybuffer"){var n=new Uint8Array(s.length);for(var a=0;a<n.length;a++)n[a]=s[a];s=n.buffer}return{type:i,data:s}}function Mc(e,t,i){if(typeof t==="function")i=t,t=null;if(t&&Nc(e))return dn(e,i);if(!e.length)return i("0:");function s(n,a){yi(n,t,!1,function(r){a(null,Dc(r))})}un(e,s,function(n,a){return i(a.join(""))})}function Dc(e){return e.length+":"+e}function un(e,t,i){let s=Array(e.length),n=0;for(let a=0;a<e.length;a++)t(e[a],(r,o)=>{if(s[a]=o,++n===e.length)i(null,s)})}function Fc(e,t,i){if(typeof e!=="string")return mn(e,t,i);if(typeof t==="function")i=t,t=null;if(e==="")return i(X,0,1);var s="",n,a,r;for(var o=0,c=e.length;o<c;o++){var l=e.charAt(o);if(l!==":"){s+=l;continue}if(s===""||s!=(n=Number(s)))return i(X,0,1);if(a=e.slice(o+1,o+1+n),s!=a.length)return i(X,0,1);if(a.length){if(r=wi(a,t,!1),X.type===r.type&&X.data===r.data)return i(X,0,1);var p=i(r,o+n,c);if(p===!1)return}o+=n,s=""}if(s!=="")return i(X,0,1)}function Lc(e){var t="";for(var i=0,s=e.length;i<s;i++)t+=String.fromCharCode(e[i]);return t}function Uc(e){var t=Buffer.allocUnsafe(e.length);for(var i=0,s=e.length;i<s;i++)t.writeUInt8(e.charCodeAt(i),i);return t}function ki(e){var t=e.byteLength||e.length,i=e.byteOffset||0;return Buffer.from(e.buffer||e,i,t)}function dn(e,t){if(!e.length)return t(Ic);un(e,Hc,function(i,s){return t(Buffer.concat(s))})}function Hc(e,t){function i(s){var n=""+s.length,a;if(typeof s==="string"){a=Buffer.allocUnsafe(n.length+2),a[0]=0;for(var r=0;r<n.length;r++)a[r+1]=parseInt(n[r],10);return a[a.length-1]=255,t(null,Buffer.concat([a,Uc(s)]))}a=Buffer.allocUnsafe(n.length+2),a[0]=1;for(var r=0;r<n.length;r++)a[r+1]=parseInt(n[r],10);a[a.length-1]=255,t(null,Buffer.concat([a,s]))}yi(e,!0,!0,i)}function mn(e,t,i){if(typeof t==="function")i=t,t=null;var s=e,n=[],a;while(s.length>0){var r="",o=s[0]===0;for(a=1;;a++){if(s[a]===255)break;if(r.length>310)return i(X,0,1);r+=""+s[a]}s=s.slice(r.length+1);var c=parseInt(r,10),l=s.slice(1,c+1);if(o)l=Lc(l);n.push(l),s=s.slice(c+1)}var p=n.length;for(a=0;a<p;a++){var u=n[a];i(wi(u,t,!0),a,p)}}});var gn=g(function(Sm,xn){var De=1000,Fe=De*60,Le=Fe*60,we=Le*24,Xc=we*7,Zc=we*365.25;xn.exports=function(e,t){t=t||{};var i=typeof e;if(i==="string"&&e.length>0)return ep(e);else if(i==="number"&&isFinite(e))return t.long?ip(e):tp(e);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function ep(e){if(e=String(e),e.length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var i=parseFloat(t[1]),s=(t[2]||"ms").toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return i*Zc;case"weeks":case"week":case"w":return i*Xc;case"days":case"day":case"d":return i*we;case"hours":case"hour":case"hrs":case"hr":case"h":return i*Le;case"minutes":case"minute":case"mins":case"min":case"m":return i*Fe;case"seconds":case"second":case"secs":case"sec":case"s":return i*De;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}function tp(e){var t=Math.abs(e);if(t>=we)return Math.round(e/we)+"d";if(t>=Le)return Math.round(e/Le)+"h";if(t>=Fe)return Math.round(e/Fe)+"m";if(t>=De)return Math.round(e/De)+"s";return e+"ms"}function ip(e){var t=Math.abs(e);if(t>=we)return Tt(e,t,we,"day");if(t>=Le)return Tt(e,t,Le,"hour");if(t>=Fe)return Tt(e,t,Fe,"minute");if(t>=De)return Tt(e,t,De,"second");return e+" ms"}function Tt(e,t,i,s){var n=t>=i*1.5;return Math.round(e/i)+" "+s+(n?"s":"")}});var _i=g(function(Em,vn){function sp(e){i.debug=i,i.default=i,i.coerce=c,i.disable=r,i.enable=n,i.enabled=o,i.humanize=gn(),i.destroy=l,Object.keys(e).forEach((p)=>{i[p]=e[p]}),i.names=[],i.skips=[],i.formatters={};function t(p){let u=0;for(let x=0;x<p.length;x++)u=(u<<5)-u+p.charCodeAt(x),u|=0;return i.colors[Math.abs(u)%i.colors.length]}i.selectColor=t;function i(p){let u,x=null,b,m;function d(...f){if(!d.enabled)return;let v=d,k=Number(new Date),V=k-(u||k);if(v.diff=V,v.prev=u,v.curr=k,u=k,f[0]=i.coerce(f[0]),typeof f[0]!=="string")f.unshift("%O");let oe=0;f[0]=f[0].replace(/%([a-zA-Z%])/g,(F,ee)=>{if(F==="%%")return"%";oe++;let Oe=i.formatters[ee];if(typeof Oe==="function"){let Pe=f[oe];F=Oe.call(v,Pe),f.splice(oe,1),oe--}return F}),i.formatArgs.call(v,f),(v.log||i.log).apply(v,f)}if(d.namespace=p,d.useColors=i.useColors(),d.color=i.selectColor(p),d.extend=s,d.destroy=i.destroy,Object.defineProperty(d,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(x!==null)return x;if(b!==i.namespaces)b=i.namespaces,m=i.enabled(p);return m},set:(f)=>{x=f}}),typeof i.init==="function")i.init(d);return d}function s(p,u){let x=i(this.namespace+(typeof u>"u"?":":u)+p);return x.log=this.log,x}function n(p){i.save(p),i.namespaces=p,i.names=[],i.skips=[];let u=(typeof p==="string"?p:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let x of u)if(x[0]==="-")i.skips.push(x.slice(1));else i.names.push(x)}function a(p,u){let x=0,b=0,m=-1,d=0;while(x<p.length)if(b<u.length&&(u[b]===p[x]||u[b]==="*"))if(u[b]==="*")m=b,d=x,b++;else x++,b++;else if(m!==-1)b=m+1,d++,x=d;else return!1;while(b<u.length&&u[b]==="*")b++;return b===u.length}function r(){let p=[...i.names,...i.skips.map((u)=>"-"+u)].join(",");return i.enable(""),p}function o(p){for(let u of i.skips)if(a(p,u))return!1;for(let u of i.names)if(a(p,u))return!0;return!1}function c(p){if(p instanceof Error)return p.stack||p.message;return p}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return i.enable(i.load()),i}vn.exports=sp});var bn=g(function(Si,Rt){Si.formatArgs=ap;Si.save=op;Si.load=rp;Si.useColors=np;Si.storage=cp();Si.destroy=(()=>{let e=!1;return()=>{if(!e)e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();Si.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function np(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ap(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Rt.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let i=0,s=0;e[0].replace(/%[a-zA-Z%]/g,(n)=>{if(n==="%%")return;if(i++,n==="%c")s=i}),e.splice(s,0,t)}Si.log=console.debug||console.log||(()=>{});function op(e){try{if(e)Si.storage.setItem("debug",e);else Si.storage.removeItem("debug")}catch(t){}}function rp(){let e;try{e=Si.storage.getItem("debug")||Si.storage.getItem("DEBUG")}catch(t){}if(!e&&typeof process<"u"&&"env"in process)e=process.env.DEBUG;return e}function cp(){try{return localStorage}catch(e){}}Rt.exports=_i()(Si);var{formatters:pp}=Rt.exports;pp.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _n=g(function(Ei,Ct){var yn=T("tty"),me=T("util");Ei.init=_p;Ei.log=yp;Ei.formatArgs=vp;Ei.save=wp;Ei.load=kp;Ei.useColors=gp;Ei.destroy=me.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ei.colors=[6,2,3,4,5,1];try{let e=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(e&&(e.stderr||e).level>=2)Ei.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(e){}Ei.inspectOpts=Object.keys(process.env).filter((e)=>/^debug_/i.test(e)).reduce((e,t)=>{let i=t.substring(6).toLowerCase().replace(/_([a-z])/g,(n,a)=>a.toUpperCase()),s=process.env[t];if(/^(yes|on|true|enabled)$/i.test(s))s=!0;else if(/^(no|off|false|disabled)$/i.test(s))s=!1;else if(s==="null")s=null;else s=Number(s);return e[i]=s,e},{});function gp(){return"colors"in Ei.inspectOpts?Boolean(Ei.inspectOpts.colors):yn.isatty(process.stderr.fd)}function vp(e){let{namespace:t,useColors:i}=this;if(i){let s=this.color,n="\x1B[3"+(s<8?s:"8;5;"+s),a=` ${n};1m${t} \x1B[0m`;e[0]=a+e[0].split(`
21
+ `).join(`
22
+ `+a),e.push(n+"m+"+Ct.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=bp()+t+" "+e[0]}function bp(){if(Ei.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function yp(...e){return process.stderr.write(me.formatWithOptions(Ei.inspectOpts,...e)+`
23
+ `)}function wp(e){if(e)process.env.DEBUG=e;else delete process.env.DEBUG}function kp(){return process.env.DEBUG}function _p(e){e.inspectOpts={};let t=Object.keys(Ei.inspectOpts);for(let i=0;i<t.length;i++)e.inspectOpts[t[i]]=Ei.inspectOpts[t[i]]}Ct.exports=_i()(Ei);var{formatters:wn}=Ct.exports;wn.o=function(e){return this.inspectOpts.colors=this.useColors,me.inspect(e,this.inspectOpts).split(`
24
+ `).map((t)=>t.trim()).join(" ")};wn.O=function(e){return this.inspectOpts.colors=this.useColors,me.inspect(e,this.inspectOpts)}});var j=g(function(Cm,Ti){if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Ti.exports=bn();else Ti.exports=_n()});var _e=g(function(J){var Pp=J&&J.__createBinding||(Object.create?function(e,t,i,s){if(s===void 0)s=i;var n=Object.getOwnPropertyDescriptor(t,i);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable))n={enumerable:!0,get:function(){return t[i]}};Object.defineProperty(e,s,n)}:function(e,t,i,s){if(s===void 0)s=i;e[s]=t[i]}),jp=J&&J.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),En=J&&J.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(i){var s=[];for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n))s[s.length]=n;return s},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null){for(var s=e(t),n=0;n<s.length;n++)if(s[n]!=="default")Pp(i,t,s[n])}return jp(i,t),i}}(),qp=J&&J.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(J,"__esModule",{value:!0});J.Transport=void 0;var Tn=T("events"),Np=En(pt()),Ip=En(hn()),Bp=qp(j()),Sn=(0,Bp.default)("engine:transport");function Mp(){}class Ri extends Tn.EventEmitter{get readyState(){return this._readyState}set readyState(e){Sn("readyState updated from %s to %s (%s)",this._readyState,e,this.name),this._readyState=e}constructor(e){super();this.writable=!1,this._readyState="open",this.discarded=!1,this.protocol=e._query.EIO==="4"?4:3,this.parser=this.protocol===4?Np:Ip,this.supportsBinary=!(e._query&&e._query.b64)}discard(){this.discarded=!0}onRequest(e){}close(e){if(this.readyState==="closed"||this.readyState==="closing")return;this.readyState="closing",this.doClose(e||Mp)}onError(e,t){if(this.listeners("error").length){let i=Error(e);i.type="TransportError",i.description=t,this.emit("error",i)}else Sn("ignored transport error %s (%s)",e,t)}onPacket(e){this.emit("packet",e)}onData(e){this.onPacket(this.parser.decodePacket(e))}onClose(){this.readyState="closed",this.emit("close")}}J.Transport=Ri;Ri.upgradesTo=[]});var Ci=g(function(Ue){var Dp=Ue&&Ue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Polling=void 0;var Rn=_e(),At=T("zlib"),Fp=vt(),Lp=Dp(j()),K=(0,Lp.default)("engine:polling"),Up={gzip:At.createGzip,deflate:At.createDeflate};class Cn extends Rn.Transport{constructor(e){super(e);this.closeTimeout=30000}get name(){return"polling"}onRequest(e){let t=e.res;if(e.res=null,e.method==="GET")this.onPollRequest(e,t);else if(e.method==="POST")this.onDataRequest(e,t);else t.writeHead(500),t.end()}onPollRequest(e,t){if(this.req){K("request overlap"),this.onError("overlap from client"),t.writeHead(400),t.end();return}K("setting request"),this.req=e,this.res=t;let i=()=>{this.onError("poll connection closed prematurely")},s=()=>{e.removeListener("close",i),this.req=this.res=null};if(e.cleanup=s,e.on("close",i),this.writable=!0,this.emit("ready"),this.writable&&this.shouldClose)K("triggering empty send to append close packet"),this.send([{type:"noop"}])}onDataRequest(e,t){if(this.dataReq){this.onError("data request overlap from client"),t.writeHead(400),t.end();return}let i=e.headers["content-type"]==="application/octet-stream";if(i&&this.protocol===4)return this.onError("invalid content"),t.writeHead(400).end();this.dataReq=e,this.dataRes=t;let s=[],n="",a=0,r=!1,o=()=>{e.removeListener("data",l),e.removeListener("end",p),e.removeListener("close",c),this.dataReq=this.dataRes=null},c=()=>{o(),this.onError("data request connection closed prematurely")},l=(u)=>{if(a+=i?u.length:Buffer.byteLength(u),a>this.maxHttpBufferSize){r=!0,t.writeHead(413).end(),o();return}if(i)s.push(u);else n+=u},p=()=>{if(r)return;let u=i?Buffer.concat(s,a):n;this.onData(u);let x={"Content-Type":"text/html","Content-Length":"2"};t.writeHead(200,this.headers(e,x)),t.end("ok"),o()};if(e.on("close",c),!i)e.setEncoding("utf8");e.on("data",l),e.on("end",p)}onData(e){K('received "%s"',e);let t=(i)=>{if(i.type==="close")return K("got xhr close packet"),this.onClose(),!1;this.onPacket(i)};if(this.protocol===3)this.parser.decodePayload(e,t);else this.parser.decodePayload(e).forEach(t)}onClose(){if(this.writable)this.send([{type:"noop"}]);super.onClose()}send(e){if(this.writable=!1,this.shouldClose)K("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null;let t=(i)=>{let s=e.some((n)=>n.options&&n.options.compress);this.write(i,{compress:s})};if(this.protocol===3)this.parser.encodePayload(e,this.supportsBinary,t);else this.parser.encodePayload(e,t)}write(e,t){K('writing "%s"',e),this.doWrite(e,t,()=>{this.req.cleanup(),this.emit("drain")})}doWrite(e,t,i){let s=typeof e==="string",a={"Content-Type":s?"text/plain; charset=UTF-8":"application/octet-stream"},r=(b)=>{a["Content-Length"]=typeof b==="string"?Buffer.byteLength(b):b.length,this.res.writeHead(200,this.headers(this.req,a)),this.res.end(b),i()};if(!this.httpCompression||!t.compress){r(e);return}if((s?Buffer.byteLength(e):e.length)<this.httpCompression.threshold){r(e);return}let c=Fp(this.req).encodings(["gzip","deflate"]);if(!c){r(e);return}K("compressing"),a["Content-Encoding"]=c,this.res.writeHead(200,this.headers(this.req,a));let l=Up[c](this.httpCompression),p=!1,u=!1,x=()=>{if(u||p)return;u=!0,i()};l.on("error",(b)=>{p=!0,this.res.end(),i(b)}),this.res.once("finish",x),this.res.once("close",x),l.pipe(this.res),l.end(e)}doClose(e){K("closing");let t;if(this.dataReq)K("aborting ongoing data request"),this.dataReq.destroy();let i=()=>{clearTimeout(t),e(),this.onClose()};if(this.writable)K("transport writable - closing right away"),this.send([{type:"close"}]),i();else if(this.discarded)K("transport discarded - closing right away"),i();else K("transport not writable - buffering orderly close"),this.shouldClose=i,t=setTimeout(i,this.closeTimeout)}headers(e,t={}){let i=e.headers["user-agent"];if(i&&(~i.indexOf(";MSIE")||~i.indexOf("Trident/")))t["X-XSS-Protection"]="0";return t["cache-control"]="no-store",this.emit("headers",t,e),t}}Ue.Polling=Cn});var Pn=g(function(se){var Hp=se&&se.__createBinding||(Object.create?function(e,t,i,s){if(s===void 0)s=i;var n=Object.getOwnPropertyDescriptor(t,i);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable))n={enumerable:!0,get:function(){return t[i]}};Object.defineProperty(e,s,n)}:function(e,t,i,s){if(s===void 0)s=i;e[s]=t[i]}),zp=se&&se.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),$p=se&&se.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(i){var s=[];for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n))s[s.length]=n;return s},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null){for(var s=e(t),n=0;n<s.length;n++)if(s[n]!=="default")Hp(i,t,s[n])}return zp(i,t),i}}();Object.defineProperty(se,"__esModule",{value:!0});se.JSONP=void 0;var An=Ci(),Vp=$p(T("querystring")),Wp=/\\\\n/g,Kp=/(\\)?\\n/g;class On extends An.Polling{constructor(e){super(e);this.head="___eio["+(e._query.j||"").replace(/[^0-9]/g,"")+"](",this.foot=");"}onData(e){if(e=Vp.parse(e).d,typeof e==="string")e=e.replace(Kp,function(t,i){return i?t:`
25
+ `}),super.onData(e.replace(Wp,"\\n"))}doWrite(e,t,i){let s=JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");e=this.head+s+this.foot,super.doWrite(e,t,i)}}se.JSONP=On});var In=g(function(He){var Gp=He&&He.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(He,"__esModule",{value:!0});He.WebSocket=void 0;var qn=_e(),Jp=Gp(j()),jn=(0,Jp.default)("engine:ws");class Nn extends qn.Transport{constructor(e){super(e);this._doSend=(t)=>{this.socket.send(t,this._onSent)},this._doSendLast=(t)=>{this.socket.send(t,this._onSentLast)},this._onSent=(t)=>{if(t)this.onError("write error",t.stack)},this._onSentLast=(t)=>{if(t)this.onError("write error",t.stack);else this.emit("drain"),this.writable=!0,this.emit("ready")},this.socket=e.websocket,this.socket.on("message",(t,i)=>{let s=i?t:t.toString();jn('received "%s"',s),super.onData(s)}),this.socket.once("close",this.onClose.bind(this)),this.socket.on("error",this.onError.bind(this)),this.writable=!0,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}send(e){this.writable=!1;for(let t=0;t<e.length;t++){let i=e[t],s=t+1===e.length;if(this._canSendPreEncodedFrame(i))this.socket._sender.sendFrame(i.options.wsPreEncodedFrame,s?this._onSentLast:this._onSent);else this.parser.encodePacket(i,this.supportsBinary,s?this._doSendLast:this._doSend)}}_canSendPreEncodedFrame(e){var t,i,s;return!this.perMessageDeflate&&typeof((i=(t=this.socket)===null||t===void 0?void 0:t._sender)===null||i===void 0?void 0:i.sendFrame)==="function"&&((s=e.options)===null||s===void 0?void 0:s.wsPreEncodedFrame)!==void 0}doClose(e){jn("closing"),this.socket.close(),e&&e()}}He.WebSocket=Nn});var Ai=g(function($e){var Yp=$e&&$e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($e,"__esModule",{value:!0});$e.WebTransport=void 0;var Bn=_e(),Qp=Yp(j()),Mn=pt(),ze=(0,Qp.default)("engine:webtransport");class Dn extends Bn.Transport{constructor(e,t,i){super({_query:{EIO:"4"}});this.session=e;let s=Mn.createPacketEncoderStream();s.readable.pipeTo(t.writable).catch(()=>{ze("the stream was closed")}),this.writer=s.writable.getWriter(),(async()=>{try{while(!0){let{value:n,done:a}=await i.read();if(a){ze("session is closed");break}ze("received chunk: %o",n),this.onPacket(n)}}catch(n){ze("error while reading: %s",n.message)}})(),e.closed.then(()=>this.onClose()),this.writable=!0}get name(){return"webtransport"}async send(e){this.writable=!1;try{for(let t=0;t<e.length;t++){let i=e[t];await this.writer.write(i)}}catch(t){ze("error while writing: %s",t.message)}this.emit("drain"),this.writable=!0,this.emit("ready")}doClose(e){ze("closing WebTransport session"),this.session.close(),e&&e()}}$e.WebTransport=Dn});var Oi=g(function($n){Object.defineProperty($n,"__esModule",{value:!0});var Fn=Ci(),Ln=Pn(),Un=In(),Hn=Ai();$n.default={polling:zn,websocket:Un.WebSocket,webtransport:Hn.WebTransport};function zn(e){if(typeof e._query.j==="string")return new Ln.JSONP(e);else return new Fn.Polling(e)}zn.upgradesTo=["websocket","webtransport"]});var Pi=g(function(Ve){var Zp=Ve&&Ve.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Socket=void 0;var Vn=T("events"),el=Zp(j()),N=T("timers"),P=(0,el.default)("engine:socket");class Wn extends Vn.EventEmitter{get readyState(){return this._readyState}set readyState(e){P("readyState updated from %s to %s",this._readyState,e),this._readyState=e}constructor(e,t,i,s,n){super();if(this._readyState="opening",this.upgrading=!1,this.upgraded=!1,this.writeBuffer=[],this.packetsFn=[],this.sentCallbackFn=[],this.cleanupFn=[],this.pingTimeoutTimer=null,this.pingIntervalTimer=null,this.hasRefreshedPingTimeout=!1,this.id=e,this.server=t,this.request=s,this.protocol=n,s)if(s.websocket&&s.websocket._socket)this.remoteAddress=s.websocket._socket.remoteAddress;else this.remoteAddress=s.connection.remoteAddress;this.setTransport(i),this.onOpen()}onOpen(){if(this.readyState="open",this.transport.sid=this.id,this.sendPacket("open",JSON.stringify({sid:this.id,upgrades:this.getAvailableUpgrades(),pingInterval:this.server.opts.pingInterval,pingTimeout:this.server.opts.pingTimeout,maxPayload:this.server.opts.maxHttpBufferSize})),this.server.opts.initialPacket)this.sendPacket("message",this.server.opts.initialPacket);if(this.emit("open"),this.protocol===3)this.resetPingTimeout();else this.schedulePing()}onPacket(e){var t,i;if(this.readyState!=="open")return P("packet received with closed socket");if(P(`received packet ${e.type}`),this.emit("packet",e),this.protocol!==3&&this.pingTimeoutTimer!==null&&!this.hasRefreshedPingTimeout&&e.type!=="pong")P("got packet while waiting for pong - refreshing ping timeout"),this.pingTimeoutTimer.refresh(),this.hasRefreshedPingTimeout=!0;switch(e.type){case"ping":if(this.protocol!==3){this.onError(Error("invalid heartbeat direction"));return}P("got ping"),(t=this.pingTimeoutTimer)===null||t===void 0||t.refresh(),this.sendPacket("pong"),this.emit("heartbeat");break;case"pong":if(this.protocol===3){this.onError(Error("invalid heartbeat direction"));return}P("got pong"),N.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=null,(i=this.pingIntervalTimer)===null||i===void 0||i.refresh(),this.emit("heartbeat");break;case"error":this.onClose("parse error");break;case"message":this.emit("data",e.data),this.emit("message",e.data);break}}onError(e){P("transport error"),this.onClose("transport error",e)}schedulePing(){this.pingIntervalTimer=N.setTimeout(()=>{P("writing ping packet - expecting pong within %sms",this.server.opts.pingTimeout),this.hasRefreshedPingTimeout=!1,this.sendPacket("ping"),this.resetPingTimeout()},this.server.opts.pingInterval)}resetPingTimeout(){N.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=N.setTimeout(()=>{if(this.readyState==="closed")return;this.onClose("ping timeout")},this.protocol===3?this.server.opts.pingInterval+this.server.opts.pingTimeout:this.server.opts.pingTimeout)}setTransport(e){let t=this.onError.bind(this),i=()=>this.flush(),s=this.onPacket.bind(this),n=this.onDrain.bind(this),a=this.onClose.bind(this,"transport close");this.transport=e,this.transport.once("error",t),this.transport.on("ready",i),this.transport.on("packet",s),this.transport.on("drain",n),this.transport.once("close",a),this.cleanupFn.push(function(){e.removeListener("error",t),e.removeListener("ready",i),e.removeListener("packet",s),e.removeListener("drain",n),e.removeListener("close",a)})}onDrain(){if(this.sentCallbackFn.length>0){P("executing batch send callback");let e=this.sentCallbackFn.shift();if(e)for(let t=0;t<e.length;t++)e[t](this.transport)}}_maybeUpgrade(e){P('might upgrade socket transport from "%s" to "%s"',this.transport.name,e.name),this.upgrading=!0;let t=N.setTimeout(()=>{if(P("client did not complete upgrade - closing transport"),a(),e.readyState==="open")e.close()},this.server.opts.upgradeTimeout),i,s=(l)=>{if(l.type==="ping"&&l.data==="probe")P("got probe ping packet, sending pong"),e.send([{type:"pong",data:"probe"}]),this.emit("upgrading",e),clearInterval(i),i=setInterval(n,100);else if(l.type==="upgrade"&&this.readyState!=="closed"){if(P("got upgrade packet - upgrading"),a(),this.transport.discard(),this.upgraded=!0,this.clearTransport(),this.setTransport(e),this.emit("upgrade",e),this.flush(),this.readyState==="closing")e.close(()=>{this.onClose("forced close")})}else a(),e.close()},n=()=>{if(this.transport.name==="polling"&&this.transport.writable)P("writing a noop packet to polling for fast upgrade"),this.transport.send([{type:"noop"}])},a=()=>{this.upgrading=!1,clearInterval(i),N.clearTimeout(t),e.removeListener("packet",s),e.removeListener("close",o),e.removeListener("error",r),this.removeListener("close",c)},r=(l)=>{P("client did not complete upgrade - %s",l),a(),e.close(),e=null},o=()=>{r("transport closed")},c=()=>{r("socket closed")};e.on("packet",s),e.once("close",o),e.once("error",r),this.once("close",c)}clearTransport(){let e,t=this.cleanupFn.length;for(let i=0;i<t;i++)e=this.cleanupFn.shift(),e();this.transport.on("error",function(){P("error triggered by discarded transport")}),this.transport.close(),N.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=null}onClose(e,t){if(this.readyState!=="closed")this.readyState="closed",N.clearTimeout(this.pingIntervalTimer),N.clearTimeout(this.pingTimeoutTimer),process.nextTick(()=>{this.writeBuffer=[]}),this.packetsFn=[],this.sentCallbackFn=[],this.clearTransport(),this.emit("close",e,t)}send(e,t,i){return this.sendPacket("message",e,t,i),this}write(e,t,i){return this.sendPacket("message",e,t,i),this}sendPacket(e,t,i={},s){if(typeof i==="function")s=i,i={};if(this.readyState!=="closing"&&this.readyState!=="closed"){P('sending packet "%s" (%s)',e,t),i.compress=i.compress!==!1;let n={type:e,options:i};if(t)n.data=t;if(this.emit("packetCreate",n),this.writeBuffer.push(n),typeof s==="function")this.packetsFn.push(s);this.flush()}}flush(){if(this.readyState!=="closed"&&this.transport.writable&&this.writeBuffer.length){P("flushing buffer to transport"),this.emit("flush",this.writeBuffer),this.server.emit("flush",this,this.writeBuffer);let e=this.writeBuffer;if(this.writeBuffer=[],this.packetsFn.length)this.sentCallbackFn.push(this.packetsFn),this.packetsFn=[];else this.sentCallbackFn.push(null);this.transport.send(e),this.emit("drain"),this.server.emit("drain",this)}}getAvailableUpgrades(){let e=[],t=this.server.upgrades(this.transport.name);for(let i=0;i<t.length;++i){let s=t[i];if(this.server.opts.transports.indexOf(s)!==-1)e.push(s)}return e}close(e){if(e&&(this.readyState==="open"||this.readyState==="closing"))return this.closeTransport(e);if(this.readyState!=="open")return;if(this.readyState="closing",this.writeBuffer.length){P("there are %d remaining packets in the buffer, waiting for the 'drain' event",this.writeBuffer.length),this.once("drain",()=>{P("all packets have been sent, closing the transport"),this.closeTransport(e)});return}P("the buffer is empty, closing the transport right away"),this.closeTransport(e)}closeTransport(e){if(P("closing the transport (discard? %s)",!!e),e)this.transport.discard();this.transport.close(this.onClose.bind(this,"forced close"))}}Ve.Socket=Wn});var Jn=g(function(dl){/*!
26
+ * cookie
27
+ * Copyright(c) 2012-2014 Roman Shtylman
28
+ * Copyright(c) 2015 Douglas Christopher Wilson
29
+ * MIT Licensed
30
+ */dl.parse=rl;dl.serialize=cl;var tl=Object.prototype.toString,il=Object.prototype.hasOwnProperty,sl=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,nl=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,al=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,ol=/^[\u0020-\u003A\u003D-\u007E]*$/;function rl(e,t){if(typeof e!=="string")throw TypeError("argument str must be a string");var i={},s=e.length;if(s<2)return i;var n=t&&t.decode||pl,a=0,r=0,o=0;do{if(r=e.indexOf("=",a),r===-1)break;if(o=e.indexOf(";",a),o===-1)o=s;else if(r>o){a=e.lastIndexOf(";",r-1)+1;continue}var c=Kn(e,a,r),l=Gn(e,r,c),p=e.slice(c,l);if(!il.call(i,p)){var u=Kn(e,r+1,o),x=Gn(e,o,u);if(e.charCodeAt(u)===34&&e.charCodeAt(x-1)===34)u++,x--;var b=e.slice(u,x);i[p]=ul(b,n)}a=o+1}while(a<s);return i}function Kn(e,t,i){do{var s=e.charCodeAt(t);if(s!==32&&s!==9)return t}while(++t<i);return i}function Gn(e,t,i){while(t>i){var s=e.charCodeAt(--t);if(s!==32&&s!==9)return t+1}return i}function cl(e,t,i){var s=i&&i.encode||encodeURIComponent;if(typeof s!=="function")throw TypeError("option encode is invalid");if(!sl.test(e))throw TypeError("argument name is invalid");var n=s(t);if(!nl.test(n))throw TypeError("argument val is invalid");var a=e+"="+n;if(!i)return a;if(i.maxAge!=null){var r=Math.floor(i.maxAge);if(!isFinite(r))throw TypeError("option maxAge is invalid");a+="; Max-Age="+r}if(i.domain){if(!al.test(i.domain))throw TypeError("option domain is invalid");a+="; Domain="+i.domain}if(i.path){if(!ol.test(i.path))throw TypeError("option path is invalid");a+="; Path="+i.path}if(i.expires){var o=i.expires;if(!ll(o)||isNaN(o.valueOf()))throw TypeError("option expires is invalid");a+="; Expires="+o.toUTCString()}if(i.httpOnly)a+="; HttpOnly";if(i.secure)a+="; Secure";if(i.partitioned)a+="; Partitioned";if(i.priority){var c=typeof i.priority==="string"?i.priority.toLowerCase():i.priority;switch(c){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; Priority=High";break;default:throw TypeError("option priority is invalid")}}if(i.sameSite){var l=typeof i.sameSite==="string"?i.sameSite.toLowerCase():i.sameSite;switch(l){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}}return a}function pl(e){return e.indexOf("%")!==-1?decodeURIComponent(e):e}function ll(e){return tl.call(e)==="[object Date]"}function ul(e,t){try{return t(e)}catch(i){return e}}});var ji=g(function(Yn){Object.defineProperty(Yn,"__esModule",{value:!0});Yn.objectFromEntries=void 0;Yn.objectFromEntries=Object.fromEntries||function(t){let i={};for(let[s,n]of t)i[s]=n;return i}});var ea=g(function(Dm,Zn){var Xn=Object.getOwnPropertySymbols,hl=Object.prototype.hasOwnProperty,xl=Object.prototype.propertyIsEnumerable;function gl(e){if(e===null||e===void 0)throw TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function vl(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;var t={};for(var i=0;i<10;i++)t["_"+String.fromCharCode(i)]=i;var s=Object.getOwnPropertyNames(t).map(function(a){return t[a]});if(s.join("")!=="0123456789")return!1;var n={};if("abcdefghijklmnopqrst".split("").forEach(function(a){n[a]=a}),Object.keys(Object.assign({},n)).join("")!=="abcdefghijklmnopqrst")return!1;return!0}catch(a){return!1}}Zn.exports=vl()?Object.assign:function(e,t){var i,s=gl(e),n;for(var a=1;a<arguments.length;a++){i=Object(arguments[a]);for(var r in i)if(hl.call(i,r))s[r]=i[r];if(Xn){n=Xn(i);for(var o=0;o<n.length;o++)if(xl.call(i,n[o]))s[n[o]]=i[n[o]]}}return s}});var sa=g(function(Fm,qi){/*!
31
+ * vary
32
+ * Copyright(c) 2014-2017 Douglas Christopher Wilson
33
+ * MIT Licensed
34
+ */qi.exports=yl;qi.exports.append=ia;var bl=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function ia(e,t){if(typeof e!=="string")throw TypeError("header argument is required");if(!t)throw TypeError("field argument is required");var i=!Array.isArray(t)?ta(String(t)):t;for(var s=0;s<i.length;s++)if(!bl.test(i[s]))throw TypeError("field argument contains an invalid header name");if(e==="*")return e;var n=e,a=ta(e.toLowerCase());if(i.indexOf("*")!==-1||a.indexOf("*")!==-1)return"*";for(var r=0;r<i.length;r++){var o=i[r].toLowerCase();if(a.indexOf(o)===-1)a.push(o),n=n?n+", "+i[r]:i[r]}return n}function ta(e){var t=0,i=[],s=0;for(var n=0,a=e.length;n<a;n++)switch(e.charCodeAt(n)){case 32:if(s===t)s=t=n+1;break;case 44:i.push(e.substring(s,t)),s=t=n+1;break;default:t=n+1;break}return i.push(e.substring(s,t)),i}function yl(e,t){if(!e||!e.getHeader||!e.setHeader)throw TypeError("res argument is required");var i=e.getHeader("Vary")||"",s=Array.isArray(i)?i.join(", "):String(i);if(i=ia(s,t))e.setHeader("Vary",i)}});var Ni=g(function(Lm,na){(function(){var e=ea(),t=sa(),i={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function s(m){return typeof m==="string"||m instanceof String}function n(m,d){if(Array.isArray(d)){for(var f=0;f<d.length;++f)if(n(m,d[f]))return!0;return!1}else if(s(d))return m===d;else if(d instanceof RegExp)return d.test(m);else return!!d}function a(m,d){var f=d.headers.origin,v=[],k;if(!m.origin||m.origin==="*")v.push([{key:"Access-Control-Allow-Origin",value:"*"}]);else if(s(m.origin))v.push([{key:"Access-Control-Allow-Origin",value:m.origin}]),v.push([{key:"Vary",value:"Origin"}]);else k=n(f,m.origin),v.push([{key:"Access-Control-Allow-Origin",value:k?f:!1}]),v.push([{key:"Vary",value:"Origin"}]);return v}function r(m){var d=m.methods;if(d.join)d=m.methods.join(",");return{key:"Access-Control-Allow-Methods",value:d}}function o(m){if(m.credentials===!0)return{key:"Access-Control-Allow-Credentials",value:"true"};return null}function c(m,d){var f=m.allowedHeaders||m.headers,v=[];if(!f)f=d.headers["access-control-request-headers"],v.push([{key:"Vary",value:"Access-Control-Request-Headers"}]);else if(f.join)f=f.join(",");if(f&&f.length)v.push([{key:"Access-Control-Allow-Headers",value:f}]);return v}function l(m){var d=m.exposedHeaders;if(!d)return null;else if(d.join)d=d.join(",");if(d&&d.length)return{key:"Access-Control-Expose-Headers",value:d};return null}function p(m){var d=(typeof m.maxAge==="number"||m.maxAge)&&m.maxAge.toString();if(d&&d.length)return{key:"Access-Control-Max-Age",value:d};return null}function u(m,d){for(var f=0,v=m.length;f<v;f++){var k=m[f];if(k){if(Array.isArray(k))u(k,d);else if(k.key==="Vary"&&k.value)t(d,k.value);else if(k.value)d.setHeader(k.key,k.value)}}}function x(m,d,f,v){var k=[],V=d.method&&d.method.toUpperCase&&d.method.toUpperCase();if(V==="OPTIONS")if(k.push(a(m,d)),k.push(o(m)),k.push(r(m)),k.push(c(m,d)),k.push(p(m)),k.push(l(m)),u(k,f),m.preflightContinue)v();else f.statusCode=m.optionsSuccessStatus,f.setHeader("Content-Length","0"),f.end();else k.push(a(m,d)),k.push(o(m)),k.push(l(m)),u(k,f),v()}function b(m){var d=null;if(typeof m==="function")d=m;else d=function(f,v){v(null,m)};return function(v,k,V){d(v,function(oe,ct){if(oe)V(oe);else{var F=e({},i,ct),ee=null;if(F.origin&&typeof F.origin==="function")ee=F.origin;else if(F.origin)ee=function(Oe,Pe){Pe(null,F.origin)};if(ee)ee(v.headers.origin,function(Oe,Pe){if(Oe||!Pe)V(Oe);else F.origin=Pe,x(F,v,k,V)});else V()}})}}na.exports=b})()});var Bi=g(function(fe){var ca=fe&&fe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(fe,"__esModule",{value:!0});fe.Server=fe.BaseServer=void 0;var Pt=Hs(),Ot=ca(Oi()),pa=T("events"),jt=Pi(),wl=ca(j()),la=Jn(),ua=T("ws"),qt=Ai(),da=pt(),ma=ji(),w=(0,wl.default)("engine"),We=Symbol("responseHeaders");function kl(e){try{let t=JSON.parse(e);if(typeof t.sid==="string")return t.sid}catch(t){}}function Ii(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function aa(e){return e._query.EIO==="4"?4:3}class dt extends pa.EventEmitter{constructor(e={}){super();if(this.middlewares=[],this.clients={},this.clientsCount=0,this.opts=Object.assign({wsEngine:ua.Server,pingTimeout:20000,pingInterval:25000,upgradeTimeout:1e4,maxHttpBufferSize:1e6,transports:["polling","websocket"],allowUpgrades:!0,httpCompression:{threshold:1024},cors:!1,allowEIO3:!1},e),e.cookie)this.opts.cookie=Object.assign({name:"io",path:"/",httpOnly:!0,sameSite:"lax"},e.cookie);if(this.opts.cors)this.use(Ni()(this.opts.cors));if(e.perMessageDeflate)this.opts.perMessageDeflate=Object.assign({threshold:1024},e.perMessageDeflate);this.init()}_computePath(e){let t=(e.path||"/engine.io").replace(/\/$/,"");if(e.addTrailingSlash!==!1)t+="/";return t}upgrades(e){if(!this.opts.allowUpgrades)return[];return Ot.default[e].upgradesTo||[]}verify(e,t,i){let s=e._query.transport;if(!~this.opts.transports.indexOf(s)||s==="webtransport")return w('unknown transport "%s"',s),i(_.errors.UNKNOWN_TRANSPORT,{transport:s});if(_l(e.headers.origin)){let r=e.headers.origin;return e.headers.origin=null,w("origin header invalid"),i(_.errors.BAD_REQUEST,{name:"INVALID_ORIGIN",origin:r})}let a=e._query.sid;if(a){if(!Ii(this.clients,a))return w('unknown sid "%s"',a),i(_.errors.UNKNOWN_SID,{sid:a});let r=this.clients[a],o=r.transport.name;if(!t&&o!==s)return w("bad request: unexpected transport without upgrade"),i(_.errors.BAD_REQUEST,{name:"TRANSPORT_MISMATCH",transport:s,previousTransport:o});let c=aa(e);if(r.protocol!==c)return w("bad request: unexpected protocol version during upgrade"),i(_.errors.BAD_REQUEST,{name:"PROTOCOL_MISMATCH",protocol:c,previousProtocol:r.protocol})}else{if(e.method!=="GET")return i(_.errors.BAD_HANDSHAKE_METHOD,{method:e.method});if(s==="websocket"&&!t)return w("invalid transport upgrade"),i(_.errors.BAD_REQUEST,{name:"TRANSPORT_HANDSHAKE_ERROR"});if(!this.opts.allowRequest)return i();return this.opts.allowRequest(e,(r,o)=>{if(!o)return i(_.errors.FORBIDDEN,{message:r});i()})}i()}use(e){this.middlewares.push(e)}_applyMiddlewares(e,t,i){if(this.middlewares.length===0)return w("no middleware to apply, skipping"),i();let s=(n)=>{w("applying middleware n\xB0%d",n+1),this.middlewares[n](e,t,(a)=>{if(a)return i(a);if(n+1<this.middlewares.length)s(n+1);else i()})};s(0)}close(){w("closing all open clients");for(let e in this.clients)if(Ii(this.clients,e))this.clients[e].close(!0);return this.cleanup(),this}generateId(e){return Pt.base64id.generateId()}async handshake(e,t,i){let s=aa(t);if(s===3&&!this.opts.allowEIO3){w("unsupported protocol version"),this.emit("connection_error",{req:t,code:_.errors.UNSUPPORTED_PROTOCOL_VERSION,message:_.errorMessages[_.errors.UNSUPPORTED_PROTOCOL_VERSION],context:{protocol:s}}),i(_.errors.UNSUPPORTED_PROTOCOL_VERSION);return}let n;try{n=await this.generateId(t)}catch(o){w("error while generating an id"),this.emit("connection_error",{req:t,code:_.errors.BAD_REQUEST,message:_.errorMessages[_.errors.BAD_REQUEST],context:{name:"ID_GENERATION_ERROR",error:o}}),i(_.errors.BAD_REQUEST);return}w('handshaking client "%s"',n);try{var a=this.createTransport(e,t);if(e==="polling")a.maxHttpBufferSize=this.opts.maxHttpBufferSize,a.httpCompression=this.opts.httpCompression;else if(e==="websocket")a.perMessageDeflate=this.opts.perMessageDeflate}catch(o){w('error handshaking to transport "%s"',e),this.emit("connection_error",{req:t,code:_.errors.BAD_REQUEST,message:_.errorMessages[_.errors.BAD_REQUEST],context:{name:"TRANSPORT_HANDSHAKE_ERROR",error:o}}),i(_.errors.BAD_REQUEST);return}let r=new jt.Socket(n,this,a,t,s);return a.on("headers",(o,c)=>{if(!c._query.sid){if(this.opts.cookie)o["Set-Cookie"]=[la.serialize(this.opts.cookie.name,n,this.opts.cookie)];this.emit("initial_headers",o,c)}this.emit("headers",o,c)}),a.onRequest(t),this.clients[n]=r,this.clientsCount++,r.once("close",()=>{delete this.clients[n],this.clientsCount--}),this.emit("connection",r),a}async onWebTransportSession(e){if(this.middlewares.length>0)return w("closing session since WebTransport is not compatible with middlewares"),e.close();let t=setTimeout(()=>{w("the client failed to establish a bidirectional stream in the given period"),e.close()},this.opts.upgradeTimeout),s=await e.incomingBidirectionalStreams.getReader().read();if(s.done){clearTimeout(t),w("session is closed");return}let n=s.value,a=da.createPacketDecoderStream(this.opts.maxHttpBufferSize,"nodebuffer"),r=n.readable.pipeThrough(a).getReader(),o=async()=>{try{await r.cancel()}catch(x){w("error while canceling WebTransport stream reader: %s",x.message)}r.releaseLock(),e.close()},{value:c,done:l}=await r.read();if(clearTimeout(t),l){w("stream is closed"),r.releaseLock();return}if(c.type!=="open")return w("invalid WebTransport handshake"),o();if(c.data===void 0){let x=new qt.WebTransport(e,n,r),b=Pt.base64id.generateId();w('handshaking client "%s" (WebTransport)',b);let m=new jt.Socket(b,this,x,null,4);this.clients[b]=m,this.clientsCount++,m.once("close",()=>{delete this.clients[b],this.clientsCount--}),this.emit("connection",m);return}let p=kl(c.data);if(!p||!Ii(this.clients,p))return w("invalid WebTransport handshake"),o();let u=this.clients[p];if(!u)return w("upgrade attempt for closed client"),o();else if(u.upgrading)return w("transport has already been trying to upgrade"),o();else if(u.upgraded)return w("transport had already been upgraded"),o();else{w("upgrading existing transport");let x=new qt.WebTransport(e,n,r);u._maybeUpgrade(x)}}}fe.BaseServer=dt;dt.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4,UNSUPPORTED_PROTOCOL_VERSION:5};dt.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden",5:"Unsupported protocol version"};class fa{constructor(e,t){this.req=e,this.socket=t,e[We]={}}setHeader(e,t){this.req[We][e]=t}getHeader(e){return this.req[We][e]}removeHeader(e){delete this.req[We][e]}write(){}writeHead(){}end(){this.socket.destroy()}}class _ extends dt{init(){if(!~this.opts.transports.indexOf("websocket"))return;if(this.ws)this.ws.close();if(this.ws=new this.opts.wsEngine({noServer:!0,clientTracking:!1,perMessageDeflate:this.opts.perMessageDeflate,maxPayload:this.opts.maxHttpBufferSize}),typeof this.ws.on==="function")this.ws.on("headers",(e,t)=>{let i=t[We]||{};if(delete t[We],!t._query.sid)this.emit("initial_headers",i,t);this.emit("headers",i,t),w("writing headers: %j",i),Object.keys(i).forEach((n)=>{e.push(`${n}: ${i[n]}`)})})}cleanup(){if(this.ws)w("closing webSocketServer"),this.ws.close()}prepare(e){if(!e._query){let t=new URL(e.url,"https://socket.io");e._query=ma.objectFromEntries(t.searchParams.entries())}}createTransport(e,t){return new Ot.default[e](t)}handleRequest(e,t){w('handling "%s" http request "%s"',e.method,e.url);let i=e;this.prepare(i),i.res=t;let s=(n,a)=>{if(n!==void 0){this.emit("connection_error",{req:i,code:n,message:_.errorMessages[n],context:a}),oa(t,n,a);return}if(i._query.sid)w("setting new request for existing client"),this.clients[i._query.sid].transport.onRequest(i);else{let r=(o,c)=>oa(t,o,c);this.handshake(i._query.transport,i,r)}};this._applyMiddlewares(i,t,(n)=>{if(n)s(_.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(i,!1,s)})}handleUpgrade(e,t,i){let s=e;this.prepare(s);let n=new fa(s,t),a=(r,o)=>{if(r!==void 0){this.emit("connection_error",{req:s,code:r,message:_.errorMessages[r],context:o}),ra(t,r,o);return}let c=Buffer.from(i);i=null,n.writeHead(),this.ws.handleUpgrade(s,t,c,(l)=>{this.onWebSocket(s,t,l)})};this._applyMiddlewares(s,n,(r)=>{if(r)a(_.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(s,!0,a)})}onWebSocket(e,t,i){if(i.on("error",n),Ot.default[e._query.transport]!==void 0&&!Ot.default[e._query.transport].prototype.handlesUpgrades){w("transport doesnt handle upgraded requests"),i.close();return}let s=e._query.sid;if(e.websocket=i,s){let a=this.clients[s];if(!a)w("upgrade attempt for closed client"),i.close();else if(a.upgrading)w("transport has already been trying to upgrade"),i.close();else if(a.upgraded)w("transport had already been upgraded"),i.close();else{w("upgrading existing transport"),i.removeListener("error",n);let r=this.createTransport(e._query.transport,e);r.perMessageDeflate=this.opts.perMessageDeflate,a._maybeUpgrade(r)}}else{let a=(r,o)=>ra(t,r,o);this.handshake(e._query.transport,e,a)}function n(){w("websocket error before upgrade")}}attach(e,t={}){let i=this._computePath(t),s=t.destroyUpgradeTimeout||1000;function n(r){return i===r.url.slice(0,i.length)}let a=e.listeners("request").slice(0);if(e.removeAllListeners("request"),e.on("close",this.close.bind(this)),e.on("listening",this.init.bind(this)),e.on("request",(r,o)=>{if(n(r))w('intercepting request for path "%s"',i),this.handleRequest(r,o);else{let c=0,l=a.length;for(;c<l;c++)a[c].call(e,r,o)}}),~this.opts.transports.indexOf("websocket"))e.on("upgrade",(r,o,c)=>{if(n(r))this.handleUpgrade(r,o,c);else if(t.destroyUpgrade!==!1)setTimeout(function(){if(o.writable&&o.bytesWritten<=0)return o.on("error",(l)=>{w("error while destroying upgrade: %s",l.message)}),o.end()},s)})}}fe.Server=_;function oa(e,t,i){let s=t===_.errors.FORBIDDEN?403:400,n=i&&i.message?i.message:_.errorMessages[t];e.writeHead(s,{"Content-Type":"application/json"}),e.end(JSON.stringify({code:t,message:n}))}function ra(e,t,i={}){if(e.on("error",()=>{w("ignoring error from closed connection")}),e.writable){let s=i.message||_.errorMessages[t],n=Buffer.byteLength(s);e.write(`HTTP/1.1 400 Bad Request\r
35
+ Connection: close\r
36
+ Content-type: text/html\r
37
+ Content-Length: `+n+`\r
38
+ \r
39
+ `+s)}e.destroy()}var ut=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];function _l(e){if(e+="",e.length<1)return!1;if(!ut[e.charCodeAt(0)])return w('invalid header, index 0, char "%s"',e.charCodeAt(0)),!0;if(e.length<2)return!1;if(!ut[e.charCodeAt(1)])return w('invalid header, index 1, char "%s"',e.charCodeAt(1)),!0;if(e.length<3)return!1;if(!ut[e.charCodeAt(2)])return w('invalid header, index 2, char "%s"',e.charCodeAt(2)),!0;if(e.length<4)return!1;if(!ut[e.charCodeAt(3)])return w('invalid header, index 3, char "%s"',e.charCodeAt(3)),!0;for(let t=4;t<e.length;++t)if(!ut[e.charCodeAt(t)])return w('invalid header, index "%i", char "%s"',t,e.charCodeAt(t)),!0;return!1}});var ga=g(function(Ke){var Sl=Ke&&Ke.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ke,"__esModule",{value:!0});Ke.Polling=void 0;var ha=_e(),Nt=T("zlib"),El=vt(),Tl=Sl(j()),Y=(0,Tl.default)("engine:polling"),Rl={gzip:Nt.createGzip,deflate:Nt.createDeflate};class xa extends ha.Transport{constructor(e){super(e);this.closeTimeout=30000}get name(){return"polling"}onRequest(e){let t=e.res;if(e.res=null,e.getMethod()==="get")this.onPollRequest(e,t);else if(e.getMethod()==="post")this.onDataRequest(e,t);else t.writeStatus("500 Internal Server Error"),t.end()}onPollRequest(e,t){if(this.req){Y("request overlap"),this.onError("overlap from client"),t.writeStatus("500 Internal Server Error"),t.end();return}Y("setting request"),this.req=e,this.res=t;let i=()=>{this.writable=!1,this.onError("poll connection closed prematurely")},s=()=>{this.req=this.res=null};if(e.cleanup=s,t.onAborted(i),this.writable=!0,this.emit("ready"),this.writable&&this.shouldClose)Y("triggering empty send to append close packet"),this.send([{type:"noop"}])}onDataRequest(e,t){if(this.dataReq){this.onError("data request overlap from client"),t.writeStatus("500 Internal Server Error"),t.end();return}let i=Number(e.headers["content-length"]);if(!i){this.onError("content-length header required"),t.writeStatus("411 Length Required").end();return}if(i>this.maxHttpBufferSize){this.onError("payload too large"),t.writeStatus("413 Payload Too Large").end();return}if(e.headers["content-type"]==="application/octet-stream"&&this.protocol===4)return this.onError("invalid content"),t.writeStatus("400 Bad Request").end();this.dataReq=e,this.dataRes=t;let n,a=0,r={"Content-Type":"text/html"};this.headers(e,r);for(let c in r)t.writeHeader(c,String(r[c]));let o=(c)=>{this.onData(c.toString()),this.onDataRequestCleanup(),t.cork(()=>{t.end("ok")})};t.onAborted(()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")}),t.onData((c,l)=>{let p=a+c.byteLength;if(p>i){this.onError("content-length mismatch"),t.close();return}if(!n){if(l){o(Buffer.from(c));return}n=Buffer.allocUnsafe(i)}if(Buffer.from(c).copy(n,a),l){if(p!=i){this.onError("content-length mismatch"),t.writeStatus("400 Content-Length Mismatch").end(),this.onDataRequestCleanup();return}o(n);return}a=p})}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(e){Y('received "%s"',e);let t=(i)=>{if(i.type==="close")return Y("got xhr close packet"),this.onClose(),!1;this.onPacket(i)};if(this.protocol===3)this.parser.decodePayload(e,t);else this.parser.decodePayload(e).forEach(t)}onClose(){if(this.writable)this.send([{type:"noop"}]);super.onClose()}send(e){if(this.writable=!1,this.shouldClose)Y("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null;let t=(i)=>{let s=e.some((n)=>n.options&&n.options.compress);this.write(i,{compress:s})};if(this.protocol===3)this.parser.encodePayload(e,this.supportsBinary,t);else this.parser.encodePayload(e,t)}write(e,t){Y('writing "%s"',e),this.doWrite(e,t,()=>{this.req.cleanup(),this.emit("drain")})}doWrite(e,t,i){let s=typeof e==="string",a={"Content-Type":s?"text/plain; charset=UTF-8":"application/octet-stream"},r=(l)=>{this.headers(this.req,a),this.res.cork(()=>{Object.keys(a).forEach((p)=>{this.res.writeHeader(p,String(a[p]))}),this.res.end(l)}),i()};if(!this.httpCompression||!t.compress){r(e);return}if((s?Buffer.byteLength(e):e.length)<this.httpCompression.threshold){r(e);return}let c=El(this.req).encodings(["gzip","deflate"]);if(!c){r(e);return}this.compress(e,c,(l,p)=>{if(l){this.res.writeStatus("500 Internal Server Error"),this.res.end(),i(l);return}a["Content-Encoding"]=c,r(p)})}compress(e,t,i){Y("compressing");let s=[],n=0;Rl[t](this.httpCompression).on("error",i).on("data",function(a){s.push(a),n+=a.length}).on("end",function(){i(null,Buffer.concat(s,n))}).end(e)}doClose(e){Y("closing");let t,i=()=>{clearTimeout(t),e(),this.onClose()};if(this.writable)Y("transport writable - closing right away"),this.send([{type:"close"}]),i();else if(this.discarded)Y("transport discarded - closing right away"),i();else Y("transport not writable - buffering orderly close"),this.shouldClose=i,t=setTimeout(i,this.closeTimeout)}headers(e,t){t=t||{};let i=e.headers["user-agent"];if(i&&(~i.indexOf(";MSIE")||~i.indexOf("Trident/")))t["X-XSS-Protection"]="0";return t["cache-control"]="no-store",this.emit("headers",t,e),t}}Ke.Polling=xa});var wa=g(function(Ge){var Cl=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.WebSocket=void 0;var ba=_e(),Al=Cl(j()),va=(0,Al.default)("engine:ws");class ya extends ba.Transport{constructor(e){super(e);this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}send(e){this.writable=!1;for(let t=0;t<e.length;t++){let i=e[t],s=t+1===e.length,n=(a)=>{let r=typeof a!=="string",o=this.perMessageDeflate&&Buffer.byteLength(a)>this.perMessageDeflate.threshold;if(va('writing "%s"',a),this.socket.send(a,r,o),s)this.emit("drain"),this.writable=!0,this.emit("ready")};if(i.options&&typeof i.options.wsPreEncoded==="string")n(i.options.wsPreEncoded);else this.parser.encodePacket(i,this.supportsBinary,n)}}doClose(e){va("closing"),e&&e(),this.socket.end()}}Ge.WebSocket=ya});var Ea=g(function(Sa){Object.defineProperty(Sa,"__esModule",{value:!0});var ka=ga(),_a=wa();Sa.default={polling:ka.Polling,websocket:_a.WebSocket}});var Oa=g(function(Je){var Ta=Je&&Je.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Je,"__esModule",{value:!0});Je.uServer=void 0;var Pl=Ta(j()),H=Bi(),jl=Ta(Ea()),Ra=ji(),he=(0,Pl.default)("engine:uws");class Ca extends H.BaseServer{init(){}cleanup(){}prepare(e,t){e.method=e.getMethod().toUpperCase(),e.url=e.getUrl();let i=new URLSearchParams(e.getQuery());e._query=Ra.objectFromEntries(i.entries()),e.headers={},e.forEach((s,n)=>{e.headers[s]=n}),e.connection={remoteAddress:Buffer.from(t.getRemoteAddressAsText()).toString()},t.onAborted(()=>{he("response has been aborted")})}createTransport(e,t){return new jl.default[e](t)}attach(e,t={}){let i=this._computePath(t);e.any(i,this.handleRequest.bind(this)).ws(i,{compression:t.compression,idleTimeout:t.idleTimeout,maxBackpressure:t.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:(s)=>{let n=s.getUserData().transport;n.socket=s,n.writable=!0,n.emit("ready")},message:(s,n,a)=>{s.getUserData().transport.onData(a?n:Buffer.from(n).toString())},close:(s,n,a)=>{s.getUserData().transport.onClose(n,a)}})}_applyMiddlewares(e,t,i){if(this.middlewares.length===0)return i();e.res=new Aa(t),super._applyMiddlewares(e,e.res,(s)=>{e.res.writeHead(),i(s)})}handleRequest(e,t){he('handling "%s" http request "%s"',t.getMethod(),t.getUrl()),this.prepare(t,e),t.res=e;let i=(s,n)=>{if(s!==void 0){this.emit("connection_error",{req:t,code:s,message:H.Server.errorMessages[s],context:n}),this.abortRequest(t.res,s,n);return}if(t._query.sid)he("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{let a=(r,o)=>this.abortRequest(e,r,o);this.handshake(t._query.transport,t,a)}};this._applyMiddlewares(t,e,(s)=>{if(s)i(H.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(t,!1,i)})}handleUpgrade(e,t,i){he("on upgrade"),this.prepare(t,e),t.res=e;let s=async(n,a)=>{if(n!==void 0){this.emit("connection_error",{req:t,code:n,message:H.Server.errorMessages[n],context:a}),this.abortRequest(e,n,a);return}let r=t._query.sid,o;if(r){let p=this.clients[r];if(!p)return he("upgrade attempt for closed client"),e.close();else if(p.upgrading)return he("transport has already been trying to upgrade"),e.close();else if(p.upgraded)return he("transport had already been upgraded"),e.close();else he("upgrading existing transport"),o=this.createTransport(t._query.transport,t),p._maybeUpgrade(o)}else if(o=await this.handshake(t._query.transport,t,(p,u)=>this.abortRequest(e,p,u)),!o)return;let c={};if(!r)this.emit("initial_headers",c,t);this.emit("headers",c,t),t.res.writeStatus("101 Switching Protocols"),Object.keys(c).forEach((p)=>{t.res.writeHeader(p,c[p])}),e.upgrade({transport:o},t.getHeader("sec-websocket-key"),t.getHeader("sec-websocket-protocol"),t.getHeader("sec-websocket-extensions"),i)};this._applyMiddlewares(t,e,(n)=>{if(n)s(H.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(t,!0,s)})}abortRequest(e,t,i){let s=t===H.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",n=i&&i.message?i.message:H.Server.errorMessages[t];e.writeStatus(s),e.writeHeader("Content-Type","application/json"),e.end(JSON.stringify({code:t,message:n}))}}Je.uServer=Ca;class Aa{constructor(e){this.res=e,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(e){if(!e)return;this.writeStatus(e===200?"200 OK":"204 No Content")}writeHead(e){this.statusCode=e}setHeader(e,t){if(Array.isArray(t))t.forEach((i)=>{this.writeHeader(e,i)});else this.writeHeader(e,t)}removeHeader(){}getHeader(){}writeStatus(e){if(this.isAborted)return;return this.res.writeStatus(e),this.statusWritten=!0,this.writeBufferedHeaders(),this}writeHeader(e,t){if(this.isAborted)return;if(e==="Content-Length")return;if(this.statusWritten)this.res.writeHeader(e,t);else this.headers.push([e,t])}writeBufferedHeaders(){this.headers.forEach(([e,t])=>{this.res.writeHeader(e,t)})}end(e){if(this.isAborted)return;this.res.cork(()=>{if(!this.statusWritten)this.writeBufferedHeaders();this.res.end(e)})}onData(e){if(this.isAborted)return;this.res.onData(e)}onAborted(e){if(this.isAborted)return;this.res.onAborted(()=>{this.isAborted=!0,e()})}cork(e){if(this.isAborted)return;this.res.cork(e)}}});var Na=g(function(R){var ql=R&&R.__createBinding||(Object.create?function(e,t,i,s){if(s===void 0)s=i;var n=Object.getOwnPropertyDescriptor(t,i);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable))n={enumerable:!0,get:function(){return t[i]}};Object.defineProperty(e,s,n)}:function(e,t,i,s){if(s===void 0)s=i;e[s]=t[i]}),Nl=R&&R.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Il=R&&R.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(i){var s=[];for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n))s[s.length]=n;return s},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null){for(var s=e(t),n=0;n<s.length;n++)if(s[n]!=="default")ql(i,t,s[n])}return Nl(i,t),i}}(),Bl=R&&R.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(R,"__esModule",{value:!0});R.protocol=R.Transport=R.Socket=R.uServer=R.parser=R.transports=R.Server=void 0;R.listen=Ul;R.attach=qa;var Pa=T("http"),It=Bi();Object.defineProperty(R,"Server",{enumerable:!0,get:function(){return It.Server}});var Ml=Bl(Oi());R.transports=Ml.default;var ja=Il(pt());R.parser=ja;var Dl=Oa();Object.defineProperty(R,"uServer",{enumerable:!0,get:function(){return Dl.uServer}});var Fl=Pi();Object.defineProperty(R,"Socket",{enumerable:!0,get:function(){return Fl.Socket}});var Ll=_e();Object.defineProperty(R,"Transport",{enumerable:!0,get:function(){return Ll.Transport}});R.protocol=ja.protocol;function Ul(e,t,i){if(typeof t==="function")i=t,t={};let s=Pa.createServer(function(a,r){r.writeHead(501),r.end("Not Implemented")}),n=qa(s,t);return n.httpServer=s,s.listen(e,i),n}function qa(e,t){let i=new It.Server(t);return i.attach(e,t),i}});var Ia=g(function(zl){zl.Emitter=L;function L(e){if(e)return Hl(e)}function Hl(e){for(var t in L.prototype)e[t]=L.prototype[t];return e}L.prototype.on=L.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};L.prototype.once=function(e,t){function i(){this.off(e,i),t.apply(this,arguments)}return i.fn=t,this.on(e,i),this};L.prototype.off=L.prototype.removeListener=L.prototype.removeAllListeners=L.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var i=this._callbacks["$"+e];if(!i)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;var s;for(var n=0;n<i.length;n++)if(s=i[n],s===t||s.fn===t){i.splice(n,1);break}if(i.length===0)delete this._callbacks["$"+e];return this};L.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=Array(arguments.length-1),i=this._callbacks["$"+e];for(var s=1;s<arguments.length;s++)t[s-1]=arguments[s];if(i){i=i.slice(0);for(var s=0,n=i.length;s<n;++s)i[s].apply(this,t)}return this};L.prototype.emitReserved=L.prototype.emit;L.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};L.prototype.hasListeners=function(e){return!!this.listeners(e).length}});var Mi=g(function(Da){Object.defineProperty(Da,"__esModule",{value:!0});Da.isBinary=Ma;Da.hasBinary=Bt;var Vl=typeof ArrayBuffer==="function",Wl=(e)=>typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,Ba=Object.prototype.toString,Kl=typeof Blob==="function"||typeof Blob<"u"&&Ba.call(Blob)==="[object BlobConstructor]",Gl=typeof File==="function"||typeof File<"u"&&Ba.call(File)==="[object FileConstructor]";function Ma(e){return Vl&&(e instanceof ArrayBuffer||Wl(e))||Kl&&e instanceof Blob||Gl&&e instanceof File}function Bt(e,t){if(!e||typeof e!=="object")return!1;if(Array.isArray(e)){for(let i=0,s=e.length;i<s;i++)if(Bt(e[i]))return!0;return!1}if(Ma(e))return!0;if(e.toJSON&&typeof e.toJSON==="function"&&arguments.length===1)return Bt(e.toJSON(),!0);for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&Bt(e[i]))return!0;return!1}});var Ua=g(function(La){Object.defineProperty(La,"__esModule",{value:!0});La.deconstructPacket=Ql;La.reconstructPacket=Xl;var Fa=Mi();function Ql(e){let t=[],i=e.data,s=e;return s.data=Mt(i,t),s.attachments=t.length,{packet:s,buffers:t}}function Mt(e,t,i){if(!e)return e;if(Fa.isBinary(e)){let s={_placeholder:!0,num:t.length};return t.push(e),s}else if(Array.isArray(e)){let s=Array(e.length);for(let n=0;n<e.length;n++)s[n]=Mt(e[n],t);return s}else if(typeof e==="object"&&!(e instanceof Date)){if(e.toJSON&&typeof e.toJSON==="function"&&!i)return Mt(e.toJSON(),t,!0);let s={};for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n))s[n]=Mt(e[n],t);return s}return e}function Xl(e,t){return e.data=Di(e.data,t),delete e.attachments,e}function Di(e,t){if(!e)return e;if(e&&e._placeholder===!0)if(typeof e.num==="number"&&e.num>=0&&e.num<t.length)return t[e.num];else throw Error("illegal attachments");else if(Array.isArray(e))for(let i=0;i<e.length;i++)e[i]=Di(e[i],t);else if(typeof e==="object"){for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i))e[i]=Di(e[i],t)}return e}});var mt=g(function(G){var tu=G&&G.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(G,"__esModule",{value:!0});G.Decoder=G.Encoder=G.PacketType=G.protocol=void 0;G.isPacketValid=ou;var Ha=Ia(),Ft=Ua(),Lt=Mi(),iu=tu(j()),Fi=(0,iu.default)("socket.io-parser"),za=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];G.protocol=5;var E;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(E||(G.PacketType=E={}));class $a{constructor(e){this.replacer=e}encode(e){if(Fi("encoding packet %j",e),e.type===E.EVENT||e.type===E.ACK){if(Lt.hasBinary(e))return this.encodeAsBinary({type:e.type===E.EVENT?E.BINARY_EVENT:E.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}return[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;if(e.type===E.BINARY_EVENT||e.type===E.BINARY_ACK)t+=e.attachments+"-";if(e.nsp&&e.nsp!=="/")t+=e.nsp+",";if(e.id!=null)t+=e.id;if(e.data!=null)t+=JSON.stringify(e.data,this.replacer);return Fi("encoded %j as %s",e,t),t}encodeAsBinary(e){let t=Ft.deconstructPacket(e),i=this.encodeAsString(t.packet),s=t.buffers;return s.unshift(i),s}}G.Encoder=$a;class Li extends Ha.Emitter{constructor(e){super();this.opts=Object.assign({reviver:void 0,maxAttachments:10},typeof e==="function"?{reviver:e}:e)}add(e){let t;if(typeof e==="string"){if(this.reconstructor)throw Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);let i=t.type===E.BINARY_EVENT;if(i||t.type===E.BINARY_ACK)t.type=i?E.EVENT:E.ACK,this.reconstructor=new Va(t);else super.emitReserved("decoded",t)}else if(Lt.isBinary(e)||e.base64){if(!this.reconstructor)throw Error("got binary data when not reconstructing a packet");else if(t=this.reconstructor.takeBinaryData(e),t)this.reconstructor=null,super.emitReserved("decoded",t)}else throw Error("Unknown type: "+e)}decodeString(e){let t=0,i={type:Number(e.charAt(0))};if(E[i.type]===void 0)throw Error("unknown packet type "+i.type);if(i.type===E.BINARY_EVENT||i.type===E.BINARY_ACK){let n=t+1;while(e.charAt(++t)!=="-"&&t!=e.length);let a=e.substring(n,t);if(a!=Number(a)||e.charAt(t)!=="-")throw Error("Illegal attachments");let r=Number(a);if(!Wa(r)||r<1)throw Error("Illegal attachments");else if(r>this.opts.maxAttachments)throw Error("too many attachments");i.attachments=r}if(e.charAt(t+1)==="/"){let n=t+1;while(++t){if(e.charAt(t)===",")break;if(t===e.length)break}i.nsp=e.substring(n,t)}else i.nsp="/";let s=e.charAt(t+1);if(s!==""&&Number(s)==s){let n=t+1;while(++t){let a=e.charAt(t);if(a==null||Number(a)!=a){--t;break}if(t===e.length)break}i.id=Number(e.substring(n,t+1))}if(e.charAt(++t)){let n=this.tryParse(e.substr(t));if(Li.isPayloadValid(i.type,n))i.data=n;else throw Error("invalid payload")}return Fi("decoded %s as %j",e,i),i}tryParse(e){try{return JSON.parse(e,this.opts.reviver)}catch(t){return!1}}static isPayloadValid(e,t){switch(e){case E.CONNECT:return Dt(t);case E.DISCONNECT:return t===void 0;case E.CONNECT_ERROR:return typeof t==="string"||Dt(t);case E.EVENT:case E.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]==="number"||typeof t[0]==="string"&&za.indexOf(t[0])===-1);case E.ACK:case E.BINARY_ACK:return Array.isArray(t)}}destroy(){if(this.reconstructor)this.reconstructor.finishedReconstruction(),this.reconstructor=null}}G.Decoder=Li;class Va{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let t=Ft.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function su(e){return typeof e==="string"}var Wa=Number.isInteger||function(e){return typeof e==="number"&&isFinite(e)&&Math.floor(e)===e};function nu(e){return e===void 0||Wa(e)}function Dt(e){return Object.prototype.toString.call(e)==="[object Object]"}function au(e,t){switch(e){case E.CONNECT:return t===void 0||Dt(t);case E.DISCONNECT:return t===void 0;case E.EVENT:return Array.isArray(t)&&(typeof t[0]==="number"||typeof t[0]==="string"&&za.indexOf(t[0])===-1);case E.ACK:return Array.isArray(t);case E.CONNECT_ERROR:return typeof t==="string"||Dt(t);default:return!1}}function ou(e){return su(e.nsp)&&nu(e.id)&&au(e.type,e.data)}});var Ga=g(function(Ye){var ru=Ye&&Ye.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Client=void 0;var xe=mt(),cu=ru(j()),Z=(0,cu.default)("socket.io:client");function pu(e){let t=Object.create(null);for(let[i,s]of e)t[i]=s;return t}class Ka{constructor(e,t){this.sockets=new Map,this.nsps=new Map,this.server=e,this.conn=t,this.encoder=e.encoder,this.decoder=new e._parser.Decoder,this.id=t.id,this.setup()}get request(){return this.conn.request}setup(){this.onclose=this.onclose.bind(this),this.ondata=this.ondata.bind(this),this.onerror=this.onerror.bind(this),this.ondecoded=this.ondecoded.bind(this),this.decoder.on("decoded",this.ondecoded),this.conn.on("data",this.ondata),this.conn.on("error",this.onerror),this.conn.on("close",this.onclose),this.connectTimeout=setTimeout(()=>{if(this.nsps.size===0)Z("no namespace joined yet, close the client"),this.close();else Z("the client has already joined a namespace, nothing to do")},this.server._connectTimeout)}connect(e,t={}){if(this.server._nsps.has(e))return Z("connecting to namespace %s",e),this.doConnect(e,t);this.server._checkNamespace(e,t,(i)=>{if(i)this.doConnect(e,t);else Z("creation of namespace %s was denied",e),this._packet({type:xe.PacketType.CONNECT_ERROR,nsp:e,data:{message:"Invalid namespace"}})})}doConnect(e,t){let i=this.server.of(e);i._add(this,t,(s)=>{if(this.sockets.set(s.id,s),this.nsps.set(i.name,s),this.connectTimeout)clearTimeout(this.connectTimeout),this.connectTimeout=void 0})}_disconnect(){for(let e of this.sockets.values())e.disconnect();this.sockets.clear(),this.close()}_remove(e){if(this.sockets.has(e.id)){let t=this.sockets.get(e.id).nsp.name;this.sockets.delete(e.id),this.nsps.delete(t)}else Z("ignoring remove for %s",e.id)}close(){if(this.conn.readyState==="open")Z("forcing transport close"),this.conn.close(),this.onclose("forced server close")}_packet(e,t={}){if(this.conn.readyState!=="open"){Z("ignoring packet write %j",e);return}let i=t.preEncoded?e:this.encoder.encode(e);this.writeToEngine(i,t)}writeToEngine(e,t){if(t.volatile&&!this.conn.transport.writable){Z("volatile packet is discarded since the transport is not currently writable");return}let i=Array.isArray(e)?e:[e];for(let s of i)this.conn.write(s,t)}ondata(e){try{this.decoder.add(e)}catch(t){Z("invalid packet format"),this.onerror(t)}}ondecoded(e){let{namespace:t,authPayload:i}=this._parseNamespace(e),s=this.nsps.get(t);if(!s&&e.type===xe.PacketType.CONNECT)this.connect(t,i);else if(s&&e.type!==xe.PacketType.CONNECT&&e.type!==xe.PacketType.CONNECT_ERROR)process.nextTick(function(){s._onpacket(e)});else Z("invalid state (packet type: %s)",e.type),this.close()}_parseNamespace(e){if(this.conn.protocol!==3)return{namespace:e.nsp,authPayload:e.data};let t=new URL(e.nsp,"https://socket.io");return{namespace:t.pathname,authPayload:pu(t.searchParams.entries())}}onerror(e){for(let t of this.sockets.values())t._onerror(e);this.conn.close()}onclose(e,t){Z("client close with reason %s",e),this.destroy();for(let i of this.sockets.values())i._onclose(e,t);this.sockets.clear(),this.decoder.destroy()}destroy(){if(this.conn.removeListener("data",this.ondata),this.conn.removeListener("error",this.onerror),this.conn.removeListener("close",this.onclose),this.decoder.removeListener("decoded",this.ondecoded),this.connectTimeout)clearTimeout(this.connectTimeout),this.connectTimeout=void 0}}Ye.Client=Ka});var Ut=g(function(Qa){Object.defineProperty(Qa,"__esModule",{value:!0});Qa.StrictEventEmitter=void 0;var Ja=T("events");class Ya extends Ja.EventEmitter{on(e,t){return super.on(e,t)}once(e,t){return super.once(e,t)}emit(e,...t){return super.emit(e,...t)}emitReserved(e,...t){return super.emit(e,...t)}emitUntyped(e,...t){return super.emit(e,...t)}listeners(e){return super.listeners(e)}}Qa.StrictEventEmitter=Ya});var to=g(function(Za){/*!
40
+ * base64id v0.1.0
41
+ */Object.defineProperty(Za,"__esModule",{value:!0});Za.base64id=void 0;var ne=T("crypto"),Ui=function(){};Ui.prototype.getRandomBytes=function(e){var t=4096,i=this;if(e=e||12,e>t)return ne.randomBytes(e);var s=Math.floor(t/e),n=Math.floor(s*0.85);if(!n)return ne.randomBytes(e);if(this.bytesBufferIndex==null)this.bytesBufferIndex=-1;if(this.bytesBufferIndex==s)this.bytesBuffer=null,this.bytesBufferIndex=-1;if(this.bytesBufferIndex==-1||this.bytesBufferIndex>n){if(!this.isGeneratingBytes)this.isGeneratingBytes=!0,ne.randomBytes(t,function(r,o){i.bytesBuffer=o,i.bytesBufferIndex=0,i.isGeneratingBytes=!1});if(this.bytesBufferIndex==-1)return ne.randomBytes(e)}var a=this.bytesBuffer.slice(e*this.bytesBufferIndex,e*(this.bytesBufferIndex+1));return this.bytesBufferIndex++,a};Ui.prototype.generateId=function(){var e=Buffer.alloc(15);if(!e.writeInt32BE)return Math.abs(Math.random()*Math.random()*Date.now()|0).toString()+Math.abs(Math.random()*Math.random()*Date.now()|0).toString();if(this.sequenceNumber=this.sequenceNumber+1|0,e.writeInt32BE(this.sequenceNumber,11),ne.randomBytes)this.getRandomBytes(12).copy(e);else[0,4,8].forEach(function(t){e.writeInt32BE(Math.random()*Math.pow(2,32)|0,t)});return e.toString("base64").replace(/\//g,"_").replace(/\+/g,"-")};Za.base64id=new Ui});var Hi=g(function(io){Object.defineProperty(io,"__esModule",{value:!0});io.RESERVED_EVENTS=void 0;io.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"])});var $i=g(function(ge){var lu=ge&&ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ge,"__esModule",{value:!0});ge.RemoteSocket=ge.BroadcastOperator=void 0;var ao=Hi(),oo=mt(),uu=lu(j()),no=(0,uu.default)("socket.io:broadcast-operator");class re{constructor(e,t=new Set,i=new Set,s={}){this.adapter=e,this.rooms=t,this.exceptRooms=i,this.flags=s}to(e){let t=new Set(this.rooms);if(Array.isArray(e))e.forEach((i)=>t.add(i));else t.add(e);return new re(this.adapter,t,this.exceptRooms,this.flags)}in(e){return this.to(e)}except(e){let t=new Set(this.exceptRooms);if(Array.isArray(e))e.forEach((i)=>t.add(i));else t.add(e);return new re(this.adapter,this.rooms,t,this.flags)}compress(e){let t=Object.assign({},this.flags,{compress:e});return new re(this.adapter,this.rooms,this.exceptRooms,t)}get volatile(){let e=Object.assign({},this.flags,{volatile:!0});return new re(this.adapter,this.rooms,this.exceptRooms,e)}get local(){let e=Object.assign({},this.flags,{local:!0});return new re(this.adapter,this.rooms,this.exceptRooms,e)}timeout(e){let t=Object.assign({},this.flags,{timeout:e});return new re(this.adapter,this.rooms,this.exceptRooms,t)}emit(e,...t){if(ao.RESERVED_EVENTS.has(e))throw Error(`"${String(e)}" is a reserved event name`);let i=[e,...t],s={type:oo.PacketType.EVENT,data:i};if(typeof i[i.length-1]!=="function")return this.adapter.broadcast(s,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;let a=i.pop(),r=!1,o=[],c=setTimeout(()=>{r=!0,no("operation has timed out");let b=s.id;if(b!==void 0)this.adapter.nsp.sockets.forEach((m)=>{m.acks.delete(b)});a.apply(this,[Error("operation has timed out"),this.flags.expectSingleResponse?null:o])},this.flags.timeout),l=-1,p=0,u=0,x=()=>{if(no("responses: servers: %d / %d ; clients: %d / %d",p,l,o.length,u),!r&&l===p&&o.length===u)clearTimeout(c),a.apply(this,[null,this.flags.expectSingleResponse?o[0]:o])};return this.adapter.broadcastWithAck(s,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},(b)=>{u+=b,p++,x()},(b)=>{o.push(b),x()}),this.adapter.serverCount().then((b)=>{l=b,x()}),!0}emitWithAck(e,...t){return new Promise((i,s)=>{t.push((n,a)=>{if(n)return n.responses=a,s(n);else return i(a)}),this.emit(e,...t)})}allSockets(){if(!this.adapter)throw Error("No adapter for this namespace, are you trying to get the list of clients of a dynamic namespace?");return this.adapter.sockets(this.rooms)}fetchSockets(){return this.adapter.fetchSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags}).then((e)=>e.map((t)=>{if(t.server)return t;else return new zi(this.adapter,t)}))}socketsJoin(e){this.adapter.addSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(e)?e:[e])}socketsLeave(e){this.adapter.delSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(e)?e:[e])}disconnectSockets(e=!1){this.adapter.disconnectSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},e)}}ge.BroadcastOperator=re;class zi{constructor(e,t){this.id=t.id,this.handshake=t.handshake,this.rooms=new Set(t.rooms),this.data=t.data,this.operator=new re(e,new Set([this.id]),new Set,{expectSingleResponse:!0})}timeout(e){return this.operator.timeout(e)}emit(e,...t){return this.operator.emit(e,...t)}join(e){return this.operator.socketsJoin(e)}leave(e){return this.operator.socketsLeave(e)}disconnect(e=!1){return this.operator.disconnectSockets(e),this}}ge.RemoteSocket=zi});var Vi=g(function(Qe){var du=Qe&&Qe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.Socket=void 0;var A=mt(),mu=du(j()),co=Ut(),Ht=to(),po=$i(),lo=Hi(),B=(0,mu.default)("socket.io:socket"),fu=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);function ro(){}class uo extends co.StrictEventEmitter{constructor(e,t,i,s){super();if(this.nsp=e,this.client=t,this.recovered=!1,this.data={},this.connected=!1,this.acks=new Map,this.fns=[],this.flags={},this.server=e.server,this.adapter=e.adapter,s)this.id=s.sid,this.pid=s.pid,s.rooms.forEach((n)=>this.join(n)),this.data=s.data,s.missedPackets.forEach((n)=>{this.packet({type:A.PacketType.EVENT,data:n})}),this.recovered=!0;else{if(t.conn.protocol===3)this.id=e.name!=="/"?e.name+"#"+t.id:t.id;else this.id=Ht.base64id.generateId();if(this.server._opts.connectionStateRecovery)this.pid=Ht.base64id.generateId()}this.handshake=this.buildHandshake(i),this.on("error",ro)}buildHandshake(e){var t,i,s,n;return{headers:((t=this.request)===null||t===void 0?void 0:t.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!((i=this.request)===null||i===void 0?void 0:i.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:(s=this.request)===null||s===void 0?void 0:s.url,query:((n=this.request)===null||n===void 0?void 0:n._query)||{},auth:e}}emit(e,...t){if(lo.RESERVED_EVENTS.has(e))throw Error(`"${String(e)}" is a reserved event name`);let i=[e,...t],s={type:A.PacketType.EVENT,data:i};if(typeof i[i.length-1]==="function"){let a=this.nsp._ids++;B("emitting packet with ack id %d",a),this.registerAckCallback(a,i.pop()),s.id=a}let n=Object.assign({},this.flags);if(this.flags={},this.nsp.server.opts.connectionStateRecovery)this.adapter.broadcast(s,{rooms:new Set([this.id]),except:new Set,flags:n});else this.notifyOutgoingListeners(s),this.packet(s,n);return!0}emitWithAck(e,...t){let i=this.flags.timeout!==void 0;return new Promise((s,n)=>{t.push((a,r)=>{if(i)return a?n(a):s(r);else return s(a)}),this.emit(e,...t)})}registerAckCallback(e,t){let i=this.flags.timeout;if(i===void 0){this.acks.set(e,t);return}let s=setTimeout(()=>{B("event with ack id %d has timed out after %d ms",e,i),this.acks.delete(e),t.call(this,Error("operation has timed out"))},i);this.acks.set(e,(...n)=>{clearTimeout(s),t.apply(this,[null,...n])})}to(e){return this.newBroadcastOperator().to(e)}in(e){return this.newBroadcastOperator().in(e)}except(e){return this.newBroadcastOperator().except(e)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}packet(e,t={}){e.nsp=this.nsp.name,t.compress=t.compress!==!1,this.client._packet(e,t)}join(e){return B("join room %s",e),this.adapter.addAll(this.id,new Set(Array.isArray(e)?e:[e]))}leave(e){return B("leave room %s",e),this.adapter.del(this.id,e)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){if(B("socket connected - writing packet"),this.connected=!0,this.join(this.id),this.conn.protocol===3)this.packet({type:A.PacketType.CONNECT});else this.packet({type:A.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(e){switch(B("got packet %j",e),e.type){case A.PacketType.EVENT:case A.PacketType.BINARY_EVENT:this.onevent(e);break;case A.PacketType.ACK:case A.PacketType.BINARY_ACK:this.onack(e);break;case A.PacketType.DISCONNECT:this.ondisconnect();break}}onevent(e){let t=e.data||[];if(B("emitting event %j",t),e.id!=null)B("attaching ack callback to event"),t.push(this.ack(e.id));if(this._anyListeners&&this._anyListeners.length){let i=this._anyListeners.slice();for(let s of i)s.apply(this,t)}this.dispatch(t)}ack(e){let t=this,i=!1;return function(){if(i)return;let s=Array.prototype.slice.call(arguments);B("sending ack %j",s),t.packet({id:e,type:A.PacketType.ACK,data:s}),i=!0}}onack(e){let t=this.acks.get(e.id);if(typeof t=="function")B("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),this.acks.delete(e.id);else B("bad ack %s",e.id)}ondisconnect(){B("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(e){this.emitReserved("error",e)}_onclose(e,t){if(!this.connected)return this;if(B("closing socket - reason %s",e),this.emitReserved("disconnecting",e,t),this.server._opts.connectionStateRecovery&&fu.has(e))B("connection state recovery is enabled for sid %s",this.id),this.adapter.persistSession({sid:this.id,pid:this.pid,rooms:[...this.rooms],data:this.data});this._cleanup(),this.client._remove(this),this.connected=!1,this.emitReserved("disconnect",e,t);return}_cleanup(){this.leaveAll(),this.nsp._remove(this),this.join=ro}_error(e){this.packet({type:A.PacketType.CONNECT_ERROR,data:e})}disconnect(e=!1){if(!this.connected)return this;if(e)this.client._disconnect();else this.packet({type:A.PacketType.DISCONNECT}),this._onclose("server namespace disconnect");return this}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}get broadcast(){return this.newBroadcastOperator()}get local(){return this.newBroadcastOperator().local}timeout(e){return this.flags.timeout=e,this}dispatch(e){B("dispatching an event %j",e),this.run(e,(t)=>{process.nextTick(()=>{if(t)return this._onerror(t);if(this.connected)super.emitUntyped.apply(this,e);else B("ignore packet received after disconnection")})})}use(e){return this.fns.push(e),this}run(e,t){if(!this.fns.length)return t();let i=this.fns.slice(0);function s(n){i[n](e,(a)=>{if(a)return t(a);if(!i[n+1])return t();s(n+1)})}s(0)}get disconnected(){return!this.connected}get request(){return this.client.request}get conn(){return this.client.conn}get rooms(){return this.adapter.socketRooms(this.id)||new Set}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let t=this._anyListeners;for(let i=0;i<t.length;i++)if(e===t[i])return t.splice(i,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let t=this._anyOutgoingListeners;for(let i=0;i<t.length;i++)if(e===t[i])return t.splice(i,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let i of t)i.apply(this,e.data)}}newBroadcastOperator(){let e=Object.assign({},this.flags);return this.flags={},new po.BroadcastOperator(this.adapter,new Set,new Set([this.id]),e)}}Qe.Socket=uo});var Wi=g(function(ce){var hu=ce&&ce.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ce,"__esModule",{value:!0});ce.Namespace=ce.RESERVED_EVENTS=void 0;var zt=Vi(),mo=Ut(),xu=hu(j()),C=$i(),Xe=(0,xu.default)("socket.io:namespace");ce.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);class fo extends mo.StrictEventEmitter{constructor(e,t){super();this.sockets=new Map,this._preConnectSockets=new Map,this._fns=[],this._ids=0,this.server=e,this.name=t,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this),Promise.resolve(this.adapter.init()).catch((e)=>{Xe("error while initializing adapter: %s",e)})}use(e){return this._fns.push(e),this}run(e,t){if(!this._fns.length)return t();let i=this._fns.slice(0);function s(n){i[n](e,(a)=>{if(a)return t(a);if(!i[n+1])return t();s(n+1)})}s(0)}to(e){return new C.BroadcastOperator(this.adapter).to(e)}in(e){return new C.BroadcastOperator(this.adapter).in(e)}except(e){return new C.BroadcastOperator(this.adapter).except(e)}async _add(e,t,i){var s;Xe("adding socket to nsp %s",this.name);let n=await this._createSocket(e,t);if(this._preConnectSockets.set(n.id,n),((s=this.server.opts.connectionStateRecovery)===null||s===void 0?void 0:s.skipMiddlewares)&&n.recovered&&e.conn.readyState==="open")return this._doConnect(n,i);this.run(n,(a)=>{process.nextTick(()=>{if(e.conn.readyState!=="open"){Xe("next called after client was closed - ignoring socket"),n._cleanup();return}if(a)if(Xe("middleware error, sending CONNECT_ERROR packet to the client"),n._cleanup(),e.conn.protocol===3)return n._error(a.data||a.message);else return n._error({message:a.message,data:a.data});this._doConnect(n,i)})})}async _createSocket(e,t){let{pid:i,offset:s}=t;if(this.server.opts.connectionStateRecovery&&typeof i==="string"&&typeof s==="string"){let n;try{n=await this.adapter.restoreSession(i,s)}catch(a){Xe("error while restoring session: %s",a)}if(n)return Xe("connection state recovered for sid %s",n.sid),new zt.Socket(this,e,t,n)}return new zt.Socket(this,e,t)}_doConnect(e,t){if(this._preConnectSockets.delete(e.id),this.sockets.set(e.id,e),e._onconnect(),t)t(e);this.emitReserved("connect",e),this.emitReserved("connection",e)}_remove(e){this.sockets.delete(e.id)||this._preConnectSockets.delete(e.id)}emit(e,...t){return new C.BroadcastOperator(this.adapter).emit(e,...t)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}serverSideEmit(e,...t){if(ce.RESERVED_EVENTS.has(e))throw Error(`"${String(e)}" is a reserved event name`);return t.unshift(e),this.adapter.serverSideEmit(t),!0}serverSideEmitWithAck(e,...t){return new Promise((i,s)=>{t.push((n,a)=>{if(n)return n.responses=a,s(n);else return i(a)}),this.serverSideEmit(e,...t)})}_onServerSideEmit(e){super.emitUntyped.apply(this,e)}allSockets(){return new C.BroadcastOperator(this.adapter).allSockets()}compress(e){return new C.BroadcastOperator(this.adapter).compress(e)}get volatile(){return new C.BroadcastOperator(this.adapter).volatile}get local(){return new C.BroadcastOperator(this.adapter).local}timeout(e){return new C.BroadcastOperator(this.adapter).timeout(e)}fetchSockets(){return new C.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(e){return new C.BroadcastOperator(this.adapter).socketsJoin(e)}socketsLeave(e){return new C.BroadcastOperator(this.adapter).socketsLeave(e)}disconnectSockets(e=!1){return new C.BroadcastOperator(this.adapter).disconnectSockets(e)}}ce.Namespace=fo});var yo=g(function(bo){Object.defineProperty(bo,"__esModule",{value:!0});bo.encode=Ki;bo.decode=gu;bo.yeast=vu;var go="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),$t=64,vo={},ho=0,ve=0,xo;function Ki(e){let t="";do t=go[e%$t]+t,e=Math.floor(e/$t);while(e>0);return t}function gu(e){let t=0;for(ve=0;ve<e.length;ve++)t=t*$t+vo[e.charAt(ve)];return t}function vu(){let e=Ki(+new Date);if(e!==xo)return ho=0,xo=e;return e+"."+Ki(ho++)}for(;ve<$t;ve++)vo[go[ve]]=ve});var Yi=g(function(So){var Gi;Object.defineProperty(So,"__esModule",{value:!0});So.SessionAwareAdapter=So.Adapter=void 0;var wo=T("events"),ko=yo(),Ze=T("ws"),ku=typeof((Gi=Ze===null||Ze===void 0?void 0:Ze.Sender)===null||Gi===void 0?void 0:Gi.frame)==="function";class Ji extends wo.EventEmitter{constructor(e){super();this.nsp=e,this.rooms=new Map,this.sids=new Map,this.encoder=e.server.encoder}init(){}close(){}serverCount(){return Promise.resolve(1)}addAll(e,t){if(!this.sids.has(e))this.sids.set(e,new Set);for(let i of t){if(this.sids.get(e).add(i),!this.rooms.has(i))this.rooms.set(i,new Set),this.emit("create-room",i);if(!this.rooms.get(i).has(e))this.rooms.get(i).add(e),this.emit("join-room",i,e)}}del(e,t){if(this.sids.has(e))this.sids.get(e).delete(t);this._del(t,e)}_del(e,t){let i=this.rooms.get(e);if(i!=null){if(i.delete(t))this.emit("leave-room",e,t);if(i.size===0&&this.rooms.delete(e))this.emit("delete-room",e)}}delAll(e){if(!this.sids.has(e))return;for(let t of this.sids.get(e))this._del(t,e);this.sids.delete(e)}broadcast(e,t){let i=t.flags||{},s={preEncoded:!0,volatile:i.volatile,compress:i.compress};e.nsp=this.nsp.name;let n=this._encode(e,s);this.apply(t,(a)=>{if(typeof a.notifyOutgoingListeners==="function")a.notifyOutgoingListeners(e);a.client.writeToEngine(n,s)})}broadcastWithAck(e,t,i,s){let n=t.flags||{},a={preEncoded:!0,volatile:n.volatile,compress:n.compress};e.nsp=this.nsp.name,e.id=this.nsp._ids++;let r=this._encode(e,a),o=0;this.apply(t,(c)=>{if(o++,c.acks.set(e.id,s),typeof c.notifyOutgoingListeners==="function")c.notifyOutgoingListeners(e);c.client.writeToEngine(r,a)}),i(o)}_encode(e,t){let i=this.encoder.encode(e);if(ku&&i.length===1&&typeof i[0]==="string"){let s=Buffer.from("4"+i[0]);t.wsPreEncodedFrame=Ze.Sender.frame(s,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return i}sockets(e){let t=new Set;return this.apply({rooms:e},(i)=>{t.add(i.id)}),Promise.resolve(t)}socketRooms(e){return this.sids.get(e)}fetchSockets(e){let t=[];return this.apply(e,(i)=>{t.push(i)}),Promise.resolve(t)}addSockets(e,t){this.apply(e,(i)=>{i.join(t)})}delSockets(e,t){this.apply(e,(i)=>{t.forEach((s)=>i.leave(s))})}disconnectSockets(e,t){this.apply(e,(i)=>{i.disconnect(t)})}apply(e,t){let i=e.rooms,s=this.computeExceptSids(e.except);if(i.size){let n=new Set;for(let a of i){if(!this.rooms.has(a))continue;for(let r of this.rooms.get(a)){if(n.has(r)||s.has(r))continue;let o=this.nsp.sockets.get(r);if(o)t(o),n.add(r)}}}else for(let[n]of this.sids){if(s.has(n))continue;let a=this.nsp.sockets.get(n);if(a)t(a)}}computeExceptSids(e){let t=new Set;if(e&&e.size>0){for(let i of e)if(this.rooms.has(i))this.rooms.get(i).forEach((s)=>t.add(s))}return t}serverSideEmit(e){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(e){}restoreSession(e,t){return null}}So.Adapter=Ji;class _o extends Ji{constructor(e){super(e);this.nsp=e,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=e.server.opts.connectionStateRecovery.maxDisconnectionDuration,setInterval(()=>{let i=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach((s,n)=>{if(s.disconnectedAt<i)this.sessions.delete(n)});for(let s=this.packets.length-1;s>=0;s--)if(this.packets[s].emittedAt<i){this.packets.splice(0,s+1);break}},60000).unref()}persistSession(e){e.disconnectedAt=Date.now(),this.sessions.set(e.pid,e)}restoreSession(e,t){let i=this.sessions.get(e);if(!i)return null;if(i.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(e),null;let n=this.packets.findIndex((r)=>r.id===t);if(n===-1)return null;let a=[];for(let r=n+1;r<this.packets.length;r++){let o=this.packets[r];if(_u(i.rooms,o.opts))a.push(o.data)}return Promise.resolve(Object.assign(Object.assign({},i),{missedPackets:a}))}broadcast(e,t){var i;let s=e.type===2,n=e.id===void 0,a=((i=t.flags)===null||i===void 0?void 0:i.volatile)===void 0;if(s&&n&&a){let r=ko.yeast();e.data.push(r),this.packets.push({id:r,opts:t,data:e.data,emittedAt:Date.now()})}super.broadcast(e,t)}}So.SessionAwareAdapter=_o;function _u(e,t){let i=t.rooms.size===0||e.some((n)=>t.rooms.has(n)),s=e.every((n)=>!t.except.has(n));return i&&s}});var Oo=g(function(ae){var Eu=ae&&ae.__rest||function(e,t){var i={};for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0)i[s]=e[s];if(e!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var n=0,s=Object.getOwnPropertySymbols(e);n<s.length;n++)if(t.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(e,s[n]))i[s[n]]=e[s[n]]}return i};Object.defineProperty(ae,"__esModule",{value:!0});ae.ClusterAdapterWithHeartbeat=ae.ClusterAdapter=ae.MessageType=void 0;var To=Yi(),Ro=j(),Co=T("crypto"),O=Ro.debug("socket.io-adapter"),Tu="emitter",Vt=5000;function tt(){return Co.randomBytes(8).toString("hex")}var y;(function(e){e[e.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",e[e.HEARTBEAT=2]="HEARTBEAT",e[e.BROADCAST=3]="BROADCAST",e[e.SOCKETS_JOIN=4]="SOCKETS_JOIN",e[e.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",e[e.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",e[e.FETCH_SOCKETS=7]="FETCH_SOCKETS",e[e.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",e[e.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",e[e.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",e[e.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",e[e.BROADCAST_ACK=12]="BROADCAST_ACK",e[e.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"})(y||(ae.MessageType=y={}));function Se(e){return{rooms:[...e.rooms],except:[...e.except],flags:e.flags}}function et(e){return{rooms:new Set(e.rooms),except:new Set(e.except),flags:e.flags}}class Qi extends To.Adapter{constructor(e){super(e);this.requests=new Map,this.ackRequests=new Map,this.uid=tt()}onMessage(e,t){if(e.uid===this.uid)return O("[%s] ignore message from self",this.uid);if(e.nsp!==this.nsp.name)return O("[%s] ignore message from another namespace (%s)",this.uid,e.nsp);switch(O("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case y.BROADCAST:{if(e.data.requestId!==void 0)super.broadcastWithAck(e.data.packet,et(e.data.opts),(s)=>{O("[%s] waiting for %d client acknowledgements",this.uid,s),this.publishResponse(e.uid,{type:y.BROADCAST_CLIENT_COUNT,data:{requestId:e.data.requestId,clientCount:s}})},(s)=>{O("[%s] received acknowledgement with value %j",this.uid,s),this.publishResponse(e.uid,{type:y.BROADCAST_ACK,data:{requestId:e.data.requestId,packet:s}})});else{let s=e.data.packet,n=et(e.data.opts);this.addOffsetIfNecessary(s,n,t),super.broadcast(s,n)}break}case y.SOCKETS_JOIN:super.addSockets(et(e.data.opts),e.data.rooms);break;case y.SOCKETS_LEAVE:super.delSockets(et(e.data.opts),e.data.rooms);break;case y.DISCONNECT_SOCKETS:super.disconnectSockets(et(e.data.opts),e.data.close);break;case y.FETCH_SOCKETS:{O("[%s] calling fetchSockets with opts %j",this.uid,e.data.opts),super.fetchSockets(et(e.data.opts)).then((i)=>{this.publishResponse(e.uid,{type:y.FETCH_SOCKETS_RESPONSE,data:{requestId:e.data.requestId,sockets:i.map((s)=>{let n=s.handshake,{sessionStore:a}=n,r=Eu(n,["sessionStore"]);return{id:s.id,handshake:r,rooms:[...s.rooms],data:s.data}})}})});break}case y.SERVER_SIDE_EMIT:{let i=e.data.packet;if(e.data.requestId===void 0){this.nsp._onServerSideEmit(i);return}let n=!1,a=(r)=>{if(n)return;n=!0,O("[%s] calling acknowledgement with %j",this.uid,r),this.publishResponse(e.uid,{type:y.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:e.data.requestId,packet:r}})};this.nsp._onServerSideEmit([...i,a]);break}case y.BROADCAST_CLIENT_COUNT:case y.BROADCAST_ACK:case y.FETCH_SOCKETS_RESPONSE:case y.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(e);break;default:O("[%s] unknown message type: %s",this.uid,e.type)}}onResponse(e){var t,i;let s=e.data.requestId;switch(O("[%s] received response %s to request %s",this.uid,e.type,s),e.type){case y.BROADCAST_CLIENT_COUNT:{(t=this.ackRequests.get(s))===null||t===void 0||t.clientCountCallback(e.data.clientCount);break}case y.BROADCAST_ACK:{(i=this.ackRequests.get(s))===null||i===void 0||i.ack(e.data.packet);break}case y.FETCH_SOCKETS_RESPONSE:{let n=this.requests.get(s);if(!n)return;if(n.current++,e.data.sockets.forEach((a)=>n.responses.push(a)),n.current===n.expected)clearTimeout(n.timeout),n.resolve(n.responses),this.requests.delete(s);break}case y.SERVER_SIDE_EMIT_RESPONSE:{let n=this.requests.get(s);if(!n)return;if(n.current++,n.responses.push(e.data.packet),n.current===n.expected)clearTimeout(n.timeout),n.resolve(null,n.responses),this.requests.delete(s);break}default:O("[%s] unknown response type: %s",this.uid,e.type)}}async broadcast(e,t){var i;if(!((i=t.flags)===null||i===void 0?void 0:i.local))try{let n=await this.publishAndReturnOffset({type:y.BROADCAST,data:{packet:e,opts:Se(t)}});this.addOffsetIfNecessary(e,t,n)}catch(n){O("[%s] error while broadcasting message: %s",this.uid,n.message)}super.broadcast(e,t)}addOffsetIfNecessary(e,t,i){var s;if(!this.nsp.server.opts.connectionStateRecovery)return;let n=e.type===2,a=e.id===void 0,r=((s=t.flags)===null||s===void 0?void 0:s.volatile)===void 0;if(n&&a&&r)e.data.push(i)}broadcastWithAck(e,t,i,s){var n;if(!((n=t===null||t===void 0?void 0:t.flags)===null||n===void 0?void 0:n.local)){let r=tt();this.ackRequests.set(r,{clientCountCallback:i,ack:s}),this.publish({type:y.BROADCAST,data:{packet:e,requestId:r,opts:Se(t)}}),setTimeout(()=>{this.ackRequests.delete(r)},t.flags.timeout)}super.broadcastWithAck(e,t,i,s)}async addSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:y.SOCKETS_JOIN,data:{opts:Se(e),rooms:t}})}catch(n){O("[%s] error while publishing message: %s",this.uid,n.message)}super.addSockets(e,t)}async delSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:y.SOCKETS_LEAVE,data:{opts:Se(e),rooms:t}})}catch(n){O("[%s] error while publishing message: %s",this.uid,n.message)}super.delSockets(e,t)}async disconnectSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:y.DISCONNECT_SOCKETS,data:{opts:Se(e),close:t}})}catch(n){O("[%s] error while publishing message: %s",this.uid,n.message)}super.disconnectSockets(e,t)}async fetchSockets(e){var t;let[i,s]=await Promise.all([super.fetchSockets(e),this.serverCount()]),n=s-1;if(((t=e.flags)===null||t===void 0?void 0:t.local)||n<=0)return i;let a=tt();return new Promise((r,o)=>{let c=setTimeout(()=>{let p=this.requests.get(a);if(p)o(Error(`timeout reached: only ${p.current} responses received out of ${p.expected}`)),this.requests.delete(a)},e.flags.timeout||Vt),l={type:y.FETCH_SOCKETS,resolve:r,timeout:c,current:0,expected:n,responses:i};this.requests.set(a,l),this.publish({type:y.FETCH_SOCKETS,data:{opts:Se(e),requestId:a}})})}async serverSideEmit(e){if(typeof e[e.length-1]!=="function")return this.publish({type:y.SERVER_SIDE_EMIT,data:{packet:e}});let i=e.pop(),s=await this.serverCount()-1;if(O('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,s),s<=0)return i(null,[]);let n=tt(),a=setTimeout(()=>{let o=this.requests.get(n);if(o)i(Error(`timeout reached: only ${o.current} responses received out of ${o.expected}`),o.responses),this.requests.delete(n)},Vt),r={type:y.SERVER_SIDE_EMIT,resolve:i,timeout:a,current:0,expected:s,responses:[]};this.requests.set(n,r),this.publish({type:y.SERVER_SIDE_EMIT,data:{requestId:n,packet:e}})}publish(e){O("[%s] sending message %s",this.uid,e.type),this.publishAndReturnOffset(e).catch((t)=>{O("[%s] error while publishing message: %s",this.uid,t)})}publishAndReturnOffset(e){return e.uid=this.uid,e.nsp=this.nsp.name,this.doPublish(e)}publishResponse(e,t){t.uid=this.uid,t.nsp=this.nsp.name,O("[%s] sending response %s to %s",this.uid,t.type,e),this.doPublishResponse(e,t).catch((i)=>{O("[%s] error while publishing response: %s",this.uid,i)})}}ae.ClusterAdapter=Qi;class Ao extends Qi{constructor(e,t){super(e);this.nodesMap=new Map,this.customRequests=new Map,this._opts=Object.assign({heartbeatInterval:5000,heartbeatTimeout:1e4},t),this.cleanupTimer=setInterval(()=>{let i=Date.now();this.nodesMap.forEach((s,n)=>{if(i-s>this._opts.heartbeatTimeout)O("[%s] node %s seems down",this.uid,n),this.removeNode(n)})},1000)}init(){this.publish({type:y.INITIAL_HEARTBEAT})}scheduleHeartbeat(){if(this.heartbeatTimer)this.heartbeatTimer.refresh();else this.heartbeatTimer=setTimeout(()=>{this.publish({type:y.HEARTBEAT})},this._opts.heartbeatInterval)}close(){if(this.publish({type:y.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer)clearInterval(this.cleanupTimer)}onMessage(e,t){if(e.uid===this.uid)return O("[%s] ignore message from self",this.uid);if(e.uid&&e.uid!==Tu)this.nodesMap.set(e.uid,Date.now());switch(e.type){case y.INITIAL_HEARTBEAT:this.publish({type:y.HEARTBEAT});break;case y.HEARTBEAT:break;case y.ADAPTER_CLOSE:this.removeNode(e.uid);break;default:super.onMessage(e,t)}}serverCount(){return Promise.resolve(1+this.nodesMap.size)}publish(e){return this.scheduleHeartbeat(),super.publish(e)}async serverSideEmit(e){if(typeof e[e.length-1]!=="function")return this.publish({type:y.SERVER_SIDE_EMIT,data:{packet:e}});let i=e.pop(),s=this.nodesMap.size;if(O('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,s),s<=0)return i(null,[]);let n=tt(),a=setTimeout(()=>{let o=this.customRequests.get(n);if(o)i(Error(`timeout reached: missing ${o.missingUids.size} responses`),o.responses),this.customRequests.delete(n)},Vt),r={type:y.SERVER_SIDE_EMIT,resolve:i,timeout:a,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(n,r),this.publish({type:y.SERVER_SIDE_EMIT,data:{requestId:n,packet:e}})}async fetchSockets(e){var t;let[i,s]=await Promise.all([super.fetchSockets({rooms:e.rooms,except:e.except,flags:{local:!0}}),this.serverCount()]),n=s-1;if(((t=e.flags)===null||t===void 0?void 0:t.local)||n<=0)return i;let a=tt();return new Promise((r,o)=>{let c=setTimeout(()=>{let p=this.customRequests.get(a);if(p)o(Error(`timeout reached: missing ${p.missingUids.size} responses`)),this.customRequests.delete(a)},e.flags.timeout||Vt),l={type:y.FETCH_SOCKETS,resolve:r,timeout:c,missingUids:new Set([...this.nodesMap.keys()]),responses:i};this.customRequests.set(a,l),this.publish({type:y.FETCH_SOCKETS,data:{opts:Se(e),requestId:a}})})}onResponse(e){let t=e.data.requestId;switch(O("[%s] received response %s to request %s",this.uid,e.type,t),e.type){case y.FETCH_SOCKETS_RESPONSE:{let i=this.customRequests.get(t);if(!i)return;if(e.data.sockets.forEach((s)=>i.responses.push(s)),i.missingUids.delete(e.uid),i.missingUids.size===0)clearTimeout(i.timeout),i.resolve(i.responses),this.customRequests.delete(t);break}case y.SERVER_SIDE_EMIT_RESPONSE:{let i=this.customRequests.get(t);if(!i)return;if(i.responses.push(e.data.packet),i.missingUids.delete(e.uid),i.missingUids.size===0)clearTimeout(i.timeout),i.resolve(null,i.responses),this.customRequests.delete(t);break}default:super.onResponse(e)}}removeNode(e){this.customRequests.forEach((t,i)=>{if(t.missingUids.delete(e),t.missingUids.size===0){if(clearTimeout(t.timeout),t.type===y.FETCH_SOCKETS)t.resolve(t.responses);else if(t.type===y.SERVER_SIDE_EMIT)t.resolve(null,t.responses);this.customRequests.delete(i)}}),this.nodesMap.delete(e)}}ae.ClusterAdapterWithHeartbeat=Ao});var Wt=g(function(Ee){Object.defineProperty(Ee,"__esModule",{value:!0});Ee.MessageType=Ee.ClusterAdapterWithHeartbeat=Ee.ClusterAdapter=Ee.SessionAwareAdapter=Ee.Adapter=void 0;var Po=Yi();Object.defineProperty(Ee,"Adapter",{enumerable:!0,get:function(){return Po.Adapter}});Object.defineProperty(Ee,"SessionAwareAdapter",{enumerable:!0,get:function(){return Po.SessionAwareAdapter}});var Xi=Oo();Object.defineProperty(Ee,"ClusterAdapter",{enumerable:!0,get:function(){return Xi.ClusterAdapter}});Object.defineProperty(Ee,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return Xi.ClusterAdapterWithHeartbeat}});Object.defineProperty(Ee,"MessageType",{enumerable:!0,get:function(){return Xi.MessageType}})});var Io=g(function(it){var Cu=it&&it.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(it,"__esModule",{value:!0});it.ParentNamespace=void 0;var Kt=Wi(),qo=Wt(),Au=Cu(j()),jo=(0,Au.default)("socket.io:parent-namespace");class Gt extends Kt.Namespace{constructor(e){super(e,"/_"+Gt.count++);this.children=new Set}_initAdapter(){this.adapter=new No(this)}emit(e,...t){return this.children.forEach((i)=>{i.emit(e,...t)}),!0}createChild(e){jo("creating child namespace %s",e);let t=new Kt.Namespace(this.server,e);if(this._fns.forEach((i)=>t.use(i)),this.listeners("connect").forEach((i)=>t.on("connect",i)),this.listeners("connection").forEach((i)=>t.on("connection",i)),this.children.add(t),this.server._opts.cleanupEmptyChildNamespaces){let i=t._remove;t._remove=(s)=>{if(i.call(t,s),t.sockets.size===0)jo("closing child namespace %s",e),t.adapter.close(),this.server._nsps.delete(t.name),this.children.delete(t)}}return this.server._nsps.set(e,t),this.server.sockets.emitReserved("new_namespace",t),t}fetchSockets(){throw Error("fetchSockets() is not supported on parent namespaces")}}it.ParentNamespace=Gt;Gt.count=0;class No extends qo.Adapter{broadcast(e,t){this.nsp.children.forEach((i)=>{i.adapter.broadcast(e,t)})}}});var Lo=g(function(Te){var Ou=Te&&Te.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Te,"__esModule",{value:!0});Te.patchAdapter=ju;Te.restoreAdapter=qu;Te.serveFile=Iu;var z=Wt(),Jt=T("fs"),Pu=Ou(j()),Yt=(0,Pu.default)("socket.io:adapter-uws"),Zi="\x1F",{addAll:Mo,del:Do,broadcast:Fo}=z.Adapter.prototype;function ju(e){z.Adapter.prototype.addAll=function(t,i){let s=!this.sids.has(t);Mo.call(this,t,i);let n=this.nsp.sockets.get(t)||this.nsp._preConnectSockets.get(t);if(!n)return;if(n.conn.transport.name==="websocket"){Bo(this.nsp.name,n,s,i);return}if(s)n.conn.on("upgrade",()=>{let a=this.sids.get(t);if(a)Bo(this.nsp.name,n,s,a)})},z.Adapter.prototype.del=function(t,i){Do.call(this,t,i);let s=this.nsp.sockets.get(t)||this.nsp._preConnectSockets.get(t);if(s&&s.conn.transport.name==="websocket"){let n=s.conn.id,a=s.conn.transport.socket,r=`${this.nsp.name}${Zi}${i}`;Yt("unsubscribe connection %s from topic %s",n,r),a.unsubscribe(r)}},z.Adapter.prototype.broadcast=function(t,i){if(!(i.rooms.size<=1&&i.except.size===0)){Fo.call(this,t,i);return}let n=i.flags||{},a={preEncoded:!0,volatile:n.volatile,compress:n.compress};t.nsp=this.nsp.name;let r=this.encoder.encode(t),o=i.rooms.size===0?this.nsp.name:`${this.nsp.name}${Zi}${i.rooms.keys().next().value}`;Yt("fast publish to %s",o),r.forEach((c)=>{let l=typeof c!=="string";e.publish(o,l?c:"4"+c,l)}),this.apply(i,(c)=>{if(c.conn.transport.name!=="websocket")c.client.writeToEngine(r,a)})}}function Bo(e,t,i,s){let n=t.conn.id,a=t.conn.transport.socket;if(i)Yt("subscribe connection %s to topic %s",n,e),a.subscribe(e);s.forEach((r)=>{let o=`${e}${Zi}${r}`;Yt("subscribe connection %s to topic %s",n,o),a.subscribe(o)})}function qu(){z.Adapter.prototype.addAll=Mo,z.Adapter.prototype.del=Do,z.Adapter.prototype.broadcast=Fo}var Nu=(e)=>{let{buffer:t,byteOffset:i,byteLength:s}=e;return t.slice(i,i+s)};function Iu(e,t){let{size:i}=Jt.statSync(t),s=Jt.createReadStream(t),n=()=>!s.destroyed&&s.destroy(),a=(o)=>{throw n(),o},r=(o)=>{let c=Nu(o);e.cork(()=>{let l=e.getWriteOffset(),[p,u]=e.tryEnd(c,i);if(!u&&!p)s.pause(),e.onWritable((x)=>{let[b,m]=e.tryEnd(c.slice(x-l),i);if(!m&&b)s.resume();return b})})};e.onAborted(n),s.on("data",r).on("error",a).on("end",n)}});var Uo=g(function(hf,Bu){Bu.exports={name:"socket.io",version:"4.8.4",description:"node.js realtime framework server",keywords:["realtime","framework","websocket","tcp","events","socket","io"],files:["dist/","client-dist/","wrapper.mjs","!**/*.tsbuildinfo"],directories:{doc:"docs/",example:"example/",lib:"lib/",test:"test/"},type:"commonjs",main:"./dist/index.js",exports:{".":{types:"./dist/index.d.ts",import:"./wrapper.mjs",require:"./dist/index.js"},"./package.json":"./package.json"},types:"./dist/index.d.ts",license:"MIT",homepage:"https://github.com/socketio/socket.io/tree/main/packages/socket.io#readme",repository:{type:"git",url:"git+https://github.com/socketio/socket.io.git"},bugs:{url:"https://github.com/socketio/socket.io/issues"},scripts:{compile:"rimraf ./dist && tsc",test:"npm run format:check && npm run compile && npm run test:types && npm run test:unit","test:types":"exit 0","test:unit":"nyc mocha --import=tsx --reporter spec --slow 200 --bail --timeout 10000 test/index.ts","format:check":'prettier --check "lib/**/*.ts" "test/**/*.ts"',"format:fix":'prettier --write "lib/**/*.ts" "test/**/*.ts"',prepack:"npm run compile"},dependencies:{accepts:"~1.3.4",cors:"~2.8.5",debug:"~4.4.1","engine.io":"~6.6.0","socket.io-adapter":"~2.5.2","socket.io-parser":"~4.2.4"},contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],engines:{node:">=10.2.0"},tsd:{directory:"test"}}});var Yo=g(function(M,ft){var __dirname="C:\\Users\\Nokta.byte\\OneDrive\\Desktop\\RiserBob\\node_modules\\.bun\\socket.io@4.8.4\\node_modules\\socket.io\\dist",Mu=M&&M.__createBinding||(Object.create?function(e,t,i,s){if(s===void 0)s=i;var n=Object.getOwnPropertyDescriptor(t,i);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable))n={enumerable:!0,get:function(){return t[i]}};Object.defineProperty(e,s,n)}:function(e,t,i,s){if(s===void 0)s=i;e[s]=t[i]}),Du=M&&M.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Fu=M&&M.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(i){var s=[];for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n))s[s.length]=n;return s},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null){for(var s=e(t),n=0;n<s.length;n++)if(s[n]!=="default")Mu(i,t,s[n])}return Du(i,t),i}}(),$o=M&&M.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M,"__esModule",{value:!0});M.Namespace=M.Socket=M.Server=void 0;var Vo=T("http"),Wo=T("fs"),st=T("zlib"),Lu=vt(),be=T("stream"),Qt=T("path"),Xt=Na(),Ko=Ga(),Zt=T("events"),at=Wi();Object.defineProperty(M,"Namespace",{enumerable:!0,get:function(){return at.Namespace}});var Go=Io(),ei=Wt(),Uu=Fu(mt()),Hu=$o(j()),ti=Vi();Object.defineProperty(M,"Socket",{enumerable:!0,get:function(){return ti.Socket}});var Jo=Ut(),nt=Lo(),zu=$o(Ni()),U=(0,Hu.default)("socket.io:server"),Ho=Uo().version,zo=new Set(["socket.io.esm.min.js","socket.io.esm.min.js.map","socket.io.js","socket.io.js.map","socket.io.min.js","socket.io.min.js.map","socket.io.msgpack.min.js","socket.io.msgpack.min.js.map"]);class ot extends Jo.StrictEventEmitter{constructor(e,t={}){super();if(this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,typeof e==="object"&&e instanceof Object&&!e.listen)t=e,e=void 0;if(this.path(t.path||"/socket.io"),this.connectTimeout(t.connectTimeout||45000),this.serveClient(t.serveClient!==!1),this._parser=t.parser||Uu,this.encoder=new this._parser.Encoder,this.opts=t,t.connectionStateRecovery)t.connectionStateRecovery=Object.assign({maxDisconnectionDuration:120000,skipMiddlewares:!0},t.connectionStateRecovery),this.adapter(t.adapter||ei.SessionAwareAdapter);else this.adapter(t.adapter||ei.Adapter);if(t.cleanupEmptyChildNamespaces=!!t.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),e||typeof e=="number")this.attach(e);if(this.opts.cors)this._corsMiddleware=(0,zu.default)(this.opts.cors)}get _opts(){return this.opts}serveClient(e){if(!arguments.length)return this._serveClient;return this._serveClient=e,this}_checkNamespace(e,t,i){if(this.parentNsps.size===0)return i(!1);let s=this.parentNsps.keys(),n=()=>{let a=s.next();if(a.done)return i(!1);a.value(e,t,(r,o)=>{if(r||!o)return n();if(this._nsps.has(e))return U("dynamic namespace %s already exists",e),i(this._nsps.get(e));let c=this.parentNsps.get(a.value).createChild(e);U("dynamic namespace %s was created",e),i(c)})};n()}path(e){if(!arguments.length)return this._path;return this._path=e.replace(/\/$/,""),this}connectTimeout(e){if(e===void 0)return this._connectTimeout;return this._connectTimeout=e,this}adapter(e){if(!arguments.length)return this._adapter;this._adapter=e;for(let t of this._nsps.values())t._initAdapter();return this}listen(e,t={}){return this.attach(e,t)}attach(e,t={}){if(typeof e=="function")throw Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.");if(Number(e)==e)e=Number(e);if(typeof e=="number"){U("creating http server and binding to %d",e);let i=e;e=Vo.createServer((s,n)=>{n.writeHead(404),n.end()}),e.listen(i)}return Object.assign(t,this.opts),t.path=t.path||this._path,this.initEngine(e,t),this}attachApp(e,t={}){Object.assign(t,this.opts),t.path=t.path||this._path,U("creating uWebSockets.js-based engine with opts %j",t);let i=new Xt.uServer(t);if(i.attach(e,t),this.bind(i),this._serveClient)e.get(`${this._path}/*`,(s,n)=>{let a=this.extractFilename(n.getUrl());if(!zo.has(a)){n.setYield(!0);return}let r=a.endsWith(".map"),o=r?"map":"source",c='"'+Ho+'"',l="W/"+c,p=n.getHeader("if-none-match");if(p){if(c===p||l===p){U("serve client %s 304",o),s.writeStatus("304 Not Modified"),s.end();return}}U("serve client %s",o),s.writeHeader("cache-control","public, max-age=0"),s.writeHeader("content-type","application/"+(r?"json":"javascript")+"; charset=utf-8"),s.writeHeader("etag",c);let u=Qt.join(__dirname,"../client-dist/",a);nt.serveFile(s,u)});nt.patchAdapter(e)}extractFilename(e){return e.substring(this._path.length+1).split("?")[0]}initEngine(e,t){if(U("creating engine.io instance with opts %j",t),this.eio=Xt.attach(e,t),this._serveClient)this.attachServe(e);this.httpServer=e,this.bind(this.eio)}attachServe(e){U("attaching client serving req handler");let t=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("request",(i,s)=>{if(i.url.startsWith(this._path)){let n=this.extractFilename(i.url);if(zo.has(n)){if(this._corsMiddleware)this._corsMiddleware(i,s,()=>{this.serve(n,i,s)});else this.serve(n,i,s);return}}for(let n=0;n<t.length;n++)t[n].call(e,i,s)})}serve(e,t,i){let s=e.endsWith(".map"),n=s?"map":"source",a='"'+Ho+'"',r="W/"+a,o=t.headers["if-none-match"];if(o){if(a===o||r===o){U("serve client %s 304",n),i.writeHead(304),i.end();return}}U("serve client %s",n),i.setHeader("Cache-Control","public, max-age=0"),i.setHeader("Content-Type","application/"+(s?"json":"javascript")+"; charset=utf-8"),i.setHeader("ETag",a),ot.sendFile(e,t,i)}static sendFile(e,t,i){let s=Wo.createReadStream(Qt.join(__dirname,"../client-dist/",e)),n=Lu(t).encodings(["br","gzip","deflate"]),a=(r)=>{if(r)i.end()};switch(n){case"br":i.writeHead(200,{"content-encoding":"br"}),be.pipeline(s,st.createBrotliCompress(),i,a);break;case"gzip":i.writeHead(200,{"content-encoding":"gzip"}),be.pipeline(s,st.createGzip(),i,a);break;case"deflate":i.writeHead(200,{"content-encoding":"deflate"}),be.pipeline(s,st.createDeflate(),i,a);break;default:i.writeHead(200),be.pipeline(s,i,a)}}bind(e){return this.engine=e,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(e){U("incoming connection with id %s",e.id);let t=new Ko.Client(this,e);if(e.protocol===3)t.connect("/");return this}of(e,t){if(typeof e==="function"||e instanceof RegExp){if(e instanceof RegExp){if(e.global||e.sticky)throw Error("stateful regular expressions are not supported")}let s=new Go.ParentNamespace(this);if(U("initializing parent namespace %s",s.name),typeof e==="function")this.parentNsps.set(e,s);else this.parentNsps.set((n,a,r)=>r(null,e.test(n)),s),this.parentNamespacesFromRegExp.set(e,s);if(t)s.on("connect",t);return s}if(String(e)[0]!=="/")e="/"+e;let i=this._nsps.get(e);if(!i){for(let[s,n]of this.parentNamespacesFromRegExp)if(s.test(e))return U("attaching namespace %s to parent namespace %s",e,s),n.createChild(e);if(U("initializing namespace %s",e),i=new at.Namespace(this,e),this._nsps.set(e,i),e!=="/")this.sockets.emitReserved("new_namespace",i)}if(t)i.on("connect",t);return i}async close(e){if(await Promise.allSettled([...this._nsps.values()].map(async(t)=>{t.sockets.forEach((i)=>{i._onclose("server shutting down")}),await t.adapter.close()})),this.engine.close(),nt.restoreAdapter(),this.httpServer)return new Promise((t)=>{this.httpServer.close((i)=>{if(e&&e(i),i)U("server was not running");t()})});else e&&e()}use(e){return this.sockets.use(e),this}to(e){return this.sockets.to(e)}in(e){return this.sockets.in(e)}except(e){return this.sockets.except(e)}send(...e){return this.sockets.emit("message",...e),this}write(...e){return this.sockets.emit("message",...e),this}serverSideEmit(e,...t){return this.sockets.serverSideEmit(e,...t)}serverSideEmitWithAck(e,...t){return this.sockets.serverSideEmitWithAck(e,...t)}allSockets(){return this.sockets.allSockets()}compress(e){return this.sockets.compress(e)}get volatile(){return this.sockets.volatile}get local(){return this.sockets.local}timeout(e){return this.sockets.timeout(e)}fetchSockets(){return this.sockets.fetchSockets()}socketsJoin(e){return this.sockets.socketsJoin(e)}socketsLeave(e){return this.sockets.socketsLeave(e)}disconnectSockets(e=!1){return this.sockets.disconnectSockets(e)}}M.Server=ot;var $u=Object.keys(Zt.EventEmitter.prototype).filter(function(e){return typeof Zt.EventEmitter.prototype[e]==="function"});$u.forEach(function(e){ot.prototype[e]=function(){return this.sockets[e].apply(this.sockets,arguments)}});ft.exports=(e,t)=>new ot(e,t);ft.exports.Server=ot;ft.exports.Namespace=at.Namespace;ft.exports.Socket=ti.Socket});class oi{errorMessages;routes=new Map;constructor(e){this.errorMessages=e}register(e,t,i){let s=`${e} ${t}`;if(this.routes.has(s))throw Error(this.errorMessages.duplicateRoute(s));return this.routes.set(s,i),this}matchPath(e,t){let i=e.split("/").filter(Boolean),s=t.split("/").filter(Boolean);if(i.length!==s.length)return;let n={};for(let a=0;a<i.length;a++){let r=i[a],o=s[a];if(!r||!o)return;if(r.startsWith(":")){let c=r.slice(1);if(!c)return;try{n[c]=decodeURIComponent(o)}catch{return}}else if(r!==o)return}return n}compareRoutes(e,t){let i=e.split("/").filter(Boolean),s=t.split("/").filter(Boolean),n=Math.min(i.length,s.length);for(let a=0;a<n;a++){let r=i[a].startsWith(":"),o=s[a].startsWith(":");if(r!==o)return Number(r)-Number(o)}return s.length-i.length}match(e,t){let i=[...this.routes.entries()].filter(([s])=>s.startsWith(`${e} `)).sort(([s],[n])=>{let a=s.slice(e.length+1),r=n.slice(e.length+1);return this.compareRoutes(a,r)});for(let[s,n]of i){let a=s.slice(e.length+1),r=this.matchPath(a,t);if(r!==void 0)return{handler:n,params:r}}return}allowedMethods(e){return["GET","POST","PUT","PATCH","DELETE"].filter((i)=>this.routes.has(`${i} ${e}`))}}class ye{funnyMode;constructor(e=!0){this.funnyMode=e}invalidPath(e){if(this.funnyMode)return`\uD83E\uDDFD Oh, barnacles! "${e}" must start with "/"! \uD83C\uDF4D`;return`Invalid path "${e}". The path must start with "/".`}handlerDidNotReturnResponse(){return this.funnyMode?"[RiserBob] \uD83E\uDDFD Oh, barnacles! Handler did not return a Response! \uD83C\uDF4D":"[RiserBob] Handler did not return a Response."}requestFailed(){return this.funnyMode?"[RiserBob] \uD83D\uDC80\uD83E\uDDFD Barnacles! Request failed!":"[RiserBob] Request failed."}nextCalledMultipleTimes(){return this.funnyMode?"[RiserBob] \uD83E\uDDFD Oh, barnacles! next() called multiple times!":"[RiserBob] next() called multiple times."}duplicateRoute(e){return this.funnyMode?`\uD83C\uDF4D Oh, barnacles! Route "${e}" already lives in Bikini Bottom! \uD83E\uDDFD`:`Route "${e}" is already registered.`}methodNotAllowed(e,t,i){if(!this.funnyMode)return`Method Not Allowed
42
+ Requested Method: ${e}
43
+ Path: ${t}
44
+ Allowed Methods: ${i.join(", ")}`;return`[RiserBob] \uD83D\uDE2D\uD83E\uDDFD Method Not Allowed!
45
+ `+`Requested Method: ${e}
46
+ Path: ${t}
47
+ Allowed Methods: ${i.join(", ")}`}routeNotFound(e,t){if(!this.funnyMode)return`Route Not Found
48
+ Requested Method: ${e}
49
+ Requested Path: ${t}
50
+ The requested route does not exist.`;return`[RiserBob] \uD83E\uDDFD\uD83D\uDE02 Welcome to Bikini Bottom!
51
+ `+`\uD83D\uDD0E Requested Method: ${e}
52
+ `+`\uD83D\uDEE3\uFE0F Requested Path: ${t}
53
+ `+`\uD83E\uDD37 Route not found! Did Patrick register it?
54
+ `+`\uD83C\uDF4D SpongeBob: "I checked my pineapple, but the endpoint isn't there!"
55
+ `+'\uD83E\uDD80 Mr. Krabs: "NO ROUTE, NO MONEY!"'}handlerResponseMissing(e,t,i){if(!this.funnyMode)return`Handler did not return a valid Response
56
+ Method: ${e}
57
+ Path: ${t}
58
+ Expected: Response
59
+ Received: ${i}`;return"[RiserBob] \uD83D\uDE2D\uD83E\uDDFD Oh no! RiserBob is sad! "+`The Handler forgot to return a valid Response! \uD83D\uDC94
60
+ `+`Method: ${e}
61
+ Path: ${t}
62
+ Expected: Response
63
+ Received: ${i}
64
+ `+"\uD83D\uDE22 SpongeBob is crying in Bikini Bottom... \uD83C\uDF4D"}requestHandlingFailed(){if(!this.funnyMode)return"An error occurred while handling the request.";return`[RiserBob] \uD83D\uDE2D\uD83E\uDDFD Oh no! RiserBob is freaking out!
65
+ `+`Something went wrong while handling this request! \uD83D\uDCA5
66
+ `+`SpongeBob: "Who lives in a pineapple under a bug?! \uD83D\uDE31\uD83C\uDF4D"
67
+ `+"Error:"}invalidValidationSchema(e){if(!this.funnyMode)return`Invalid Validation Schema
68
+ Field: ${e}
69
+ "required" and "nullable" cannot be combined.`;return`[RiserBob] \uD83E\uDDFD\uD83C\uDF4D Oh, barnacles! Invalid Validation Schema!
70
+ `+`Field: ${e}
71
+ `+`\uD83D\uDCA5 "required" and "nullable" cannot be combined!
72
+ `+'\uD83E\uDD91 Squidward says: "Fix your Schema already!"'}}class ht{errorMessages;middlewares=[];constructor(e=new ye){this.errorMessages=e}use(e){return this.middlewares.push(e),this}async execute(e,t,i){let s=-1,n=async(a)=>{if(a<=s)throw Error(this.errorMessages.nextCalledMultipleTimes());s=a;let r=this.middlewares[a];if(!r)return i();return r(e,t,()=>n(a+1))};return n(0)}}class q extends Error{status;constructor(e,t){super(t);this.status=e;this.name="HttpError"}}class je{static handle(e){if(e instanceof q)return Response.json({error:e.message},{status:e.status});return console.error("[RiserBob] \uD83E\uDDFD An unexpected error occurred!",e),Response.json({error:"Internal Server Error"},{status:500})}}var _r=(e)=>{if(!e)return!1;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.startsWith("application/")===!0&&t.endsWith("+json")},ps=(e)=>{if(!_r(e))throw new q(415,"Unsupported Media Type")};var ri=10485760,xt=async(e,t=ri)=>{let i=e.headers.get("content-length");if(i!==null){let c=Number(i);if(!Number.isSafeInteger(c)||c<0)throw new q(400,"Invalid Content-Length");if(c>t)throw new q(413,"Content Too Large")}if(!e.body)return new Uint8Array;let s=e.body.getReader(),n=[],a=0;try{while(!0){let{done:c,value:l}=await s.read();if(c)break;if(a+=l.byteLength,a>t)throw await s.cancel().catch(()=>{}),new q(413,"Content Too Large");n.push(l)}}catch(c){throw await s.cancel().catch(()=>{}),c}finally{s.releaseLock()}let r=new Uint8Array(a),o=0;for(let c of n)r.set(c,o),o+=c.byteLength;return r};var h={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,OK:200,Created:201,Accepted:202,NonAuthoritativeInfo:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,IMUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,ContentTooLarge:413,URITooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HTTPVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};function ls(){let e=h.OK,t=new Headers,i=(o)=>{if(!Number.isInteger(o)||o<200||o>599)throw RangeError(`Invalid Fetch Response status: ${o}`)},s=(o)=>o===204||o===205||o===304,n=(o,c=e)=>{if(i(c),s(c))throw TypeError(`Status ${c} cannot have a response body`);return Response.json(o,{status:c,headers:t})},a=(o)=>(i(o),new Response(null,{status:o,headers:t})),r=(o,c="/")=>{let l=new URL(c,"http://localhost");return new Response(null,{status:o,headers:new Headers([...t.entries(),["Location",l.href]])})};return{send(o){let c=new Headers(t);if(!c.has("Content-Type")&&typeof o==="string")c.set("Content-Type","text/plain; charset=utf-8");return new Response(o,{status:e,headers:c})},json:n,status(o){return e=o,this},header(o,c){return t.set(o,c),this},SpongContinue:()=>a(h.Continue),SpongSwitchingProtocols:()=>a(h.SwitchingProtocols),SpongProcessing:()=>a(h.Processing),SpongEarlyHints:()=>a(h.EarlyHints),SpongOK:(o={message:"OK"})=>n(o,h.OK),SpongCreated:(o={message:"Created"})=>n(o,h.Created),SpongAccepted:(o={message:"Accepted"})=>n(o,h.Accepted),SpongNonAuthoritativeInfo:(o={})=>n(o,h.NonAuthoritativeInfo),SpongNoContent:()=>a(h.NoContent),SpongResetContent:()=>a(h.ResetContent),SpongPartialContent:(o={})=>n(o,h.PartialContent),SpongMultiStatus:(o={})=>n(o,h.MultiStatus),SpongAlreadyReported:(o={})=>n(o,h.AlreadyReported),SpongIMUsed:(o={})=>n(o,h.IMUsed),SpongMultipleChoices:(o={})=>n(o,h.MultipleChoices),SpongMovedPermanently:(o)=>r(h.MovedPermanently,o),SpongFound:(o)=>r(h.Found,o),SpongSeeOther:(o)=>r(h.SeeOther,o),SpongNotModified:()=>a(h.NotModified),SpongUseProxy:(o)=>r(h.UseProxy,o),SpongTemporaryRedirect:(o)=>r(h.TemporaryRedirect,o),SpongPermanentRedirect:(o)=>r(h.PermanentRedirect,o),SpongBadRequest:(o={error:"Bad Request"})=>n(o,h.BadRequest),SpongUnauthorized:(o={error:"Unauthorized"})=>n(o,h.Unauthorized),SpongPaymentRequired:(o={})=>n(o,h.PaymentRequired),SpongForbidden:(o={error:"Forbidden"})=>n(o,h.Forbidden),SpongNotFound:(o={error:"Not Found"})=>n(o,h.NotFound),SpongMethodNotAllowed:(o={})=>n(o,h.MethodNotAllowed),SpongNotAcceptable:(o={})=>n(o,h.NotAcceptable),SpongProxyAuthenticationRequired:(o={})=>n(o,h.ProxyAuthenticationRequired),SpongRequestTimeout:(o={})=>n(o,h.RequestTimeout),SpongConflict:(o={})=>n(o,h.Conflict),SpongGone:(o={})=>n(o,h.Gone),SpongLengthRequired:(o={})=>n(o,h.LengthRequired),SpongPreconditionFailed:(o={})=>n(o,h.PreconditionFailed),SpongContentTooLarge:(o={})=>n(o,h.ContentTooLarge),SpongURITooLong:(o={})=>n(o,h.URITooLong),SpongUnsupportedMediaType:(o={})=>n(o,h.UnsupportedMediaType),SpongRangeNotSatisfiable:(o={})=>n(o,h.RangeNotSatisfiable),SpongExpectationFailed:(o={})=>n(o,h.ExpectationFailed),SpongImATeapot:(o={message:"I'm a teapot"})=>n(o,h.ImATeapot),SpongMisdirectedRequest:(o={})=>n(o,h.MisdirectedRequest),SpongUnprocessableContent:(o={})=>n(o,h.UnprocessableContent),SpongLocked:(o={})=>n(o,h.Locked),SpongFailedDependency:(o={})=>n(o,h.FailedDependency),SpongTooEarly:(o={})=>n(o,h.TooEarly),SpongUpgradeRequired:(o={})=>n(o,h.UpgradeRequired),SpongPreconditionRequired:(o={})=>n(o,h.PreconditionRequired),SpongTooManyRequests:(o={})=>n(o,h.TooManyRequests),SpongRequestHeaderFieldsTooLarge:(o={})=>n(o,h.RequestHeaderFieldsTooLarge),SpongUnavailableForLegalReasons:(o={})=>n(o,h.UnavailableForLegalReasons),SpongInternalServerError:(o={error:"Internal Server Error"})=>n(o,h.InternalServerError),SpongNotImplemented:(o={})=>n(o,h.NotImplemented),SpongBadGateway:(o={})=>n(o,h.BadGateway),SpongServiceUnavailable:(o={})=>n(o,h.ServiceUnavailable),SpongGatewayTimeout:(o={})=>n(o,h.GatewayTimeout),SpongHTTPVersionNotSupported:(o={})=>n(o,h.HTTPVersionNotSupported),SpongVariantAlsoNegotiates:(o={})=>n(o,h.VariantAlsoNegotiates),SpongInsufficientStorage:(o={})=>n(o,h.InsufficientStorage),SpongLoopDetected:(o={})=>n(o,h.LoopDetected),SpongNotExtended:(o={})=>n(o,h.NotExtended),SpongNetworkAuthenticationRequired:(o={})=>n(o,h.NetworkAuthenticationRequired)}}var Sr=globalThis.Bun;var us=(e,t,i=3000,s,n)=>{let a=n?n.engine.handler():void 0,r=Sr.serve({port:i,...a&&{idleTimeout:30,websocket:a.websocket},async fetch(o){try{let c=new URL(o.url);if(n&&c.pathname.replace(/\/+$/,"")===n.path.replace(/\/+$/,""))return n.engine.handleRequest(o,r);let l=o.headers.get("origin");if(o.method==="OPTIONS"){let v=new Headers;if(l)v.set("Access-Control-Allow-Origin",l),v.set("Access-Control-Allow-Credentials","true"),v.set("Access-Control-Allow-Methods","GET, POST, PUT, PATCH, DELETE, OPTIONS"),v.set("Access-Control-Allow-Headers","Content-Type, Authorization"),v.set("Access-Control-Max-Age","86400"),v.set("Vary","Origin");return new Response(null,{status:204,headers:v})}let p=e.match(o.method,c.pathname);if(!p){let v=e.allowedMethods(c.pathname);if(v.length>0)return console.error(t.methodNotAllowed(o.method,c.pathname,v)),Response.json({error:"Method Not Allowed"},{status:405,headers:{Allow:v.join(", ")}});throw console.warn(t.routeNotFound(o.method,c.pathname)),new q(404,"Not Found")}let{handler:u,params:x}=p,b=o.headers.get("content-length");if(b!==null&&Number(b)>ri)throw new q(413,"Content Too Large");let m={request:o,method:o.method,url:c,path:c.pathname,params:x,query:c.searchParams,headers:o.headers,formData:async()=>{let v=await xt(o),k=o.headers.get("content-type");if(!k)throw new q(400,"Missing Content-Type");let V=new Response(v.buffer.slice(v.byteOffset,v.byteOffset+v.byteLength),{headers:{"Content-Type":k}});try{return await V.formData()}catch{throw new q(400,"Invalid form data")}},json:async()=>{ps(o.headers.get("content-type"));let v=await xt(o),k=new TextDecoder().decode(v);try{return JSON.parse(k)}catch{throw new q(400,"Invalid JSON body")}},text:async()=>{let v=await xt(o);return new TextDecoder().decode(v)}},d=ls(),f=await u(m,d);if(f instanceof Response)return f;return console.error(t.handlerResponseMissing(o.method,c.pathname,f===void 0?"undefined":typeof f)),je.handle(Error("Handler did not send a response"))}catch(c){return console.error(t.requestHandlingFailed(),c),je.handle(c)}}});return s?.(),r};var Qo=kr(Yo(),1),{Server:Xo,Namespace:xf,Socket:gf}=Qo.default;class Zo{_listeners=new Map;on(e,t){let i=this._listeners.get(e);if(i)i.push(t);else this._listeners.set(e,[t]);return this}once(e,t){let i=(...s)=>{this.off(e,i),t.apply(this,s)};return i.fn=t,this.on(e,i)}off(e,t){if(!e)return this._listeners.clear(),this;if(!t)return this._listeners.delete(e),this;let i=this._listeners.get(e);if(!i)return this;for(let s=0;s<i.length;s++)if(i[s]===t||i[s].fn===t){i.splice(s,1);break}if(i.length===0)this._listeners.delete(e);return this}removeListener(e,t){return this.off(e,t)}emit(e,...t){let i=this._listeners.get(e);if(!i)return!1;if(i.length===1)i[0].apply(this,t);else for(let s of i.slice())s.apply(this,t);return!0}listeners(e){return this._listeners.get(e)||[]}}class Re extends Zo{emitReserved(e,...t){return super.emit(e,...t)}}var er=String.fromCharCode(30),tr=new Map,es=new Map;["open","close","ping","pong","message","upgrade","noop"].forEach((e,t)=>{tr.set(e,""+t),es.set(""+t,e)});var Vu={type:"error",data:"parser error"};function Wu(e){if(Buffer.isBuffer(e))return e;else if(e instanceof ArrayBuffer)return Buffer.from(e);else if(ArrayBuffer.isView(e))return Buffer.from(e.buffer,e.byteOffset,e.byteLength);else throw Error("invalid binary data")}var rt={encodePacket({type:e,data:t},i){if(t instanceof ArrayBuffer||ArrayBuffer.isView(t))return i?t:"b"+Wu(t).toString("base64");else return tr.get(e)+(t||"")},decodePacket(e,t){if(typeof e!=="string")return{type:"message",data:e};let i=e.charAt(0);if(i==="b")return{type:"message",data:Buffer.from(e.substring(1),"base64")};if(!es.has(i))return Vu;let s=es.get(i);return e.length>1?{type:s,data:e.substring(1)}:{type:s}},encodePayload(e){let t=[];for(let i of e)t.push(this.encodePacket(i,!1));return t.join(er)},decodePayload(e,t){let i=e.split(er),s=[];for(let n=0;n<i.length;n++){let a=this.decodePacket(i[n],t);if(s.push(a),a.type==="error")break}return s}};import{debuglog as Ku}from"util";var ir=Ku("engine.io:transport");class Ce extends Re{writable=!1;readyState="open";opts;constructor(e){super();this.opts=e}close(){if(["closing","closed"].includes(this.readyState))return;ir("closing transport"),this.readyState="closing",this.doClose()}onError(e){this.emitReserved("error",new ts(e))}onPacket(e){if(e.type==="close")return ir("received 'close' packet"),this.doClose();this.emitReserved("packet",e)}onClose(){this.readyState="closed",this.emitReserved("close")}}class ts extends Error{type="TransportError"}import{debuglog as Gu}from"util";var I=Gu("engine.io:socket"),Ju=100;class is extends Re{id;readyState="opening";transport;request;opts;upgradeState="not_upgraded";writeBuffer=[];pingIntervalTimer;pingTimeoutTimer;constructor(e,t,i,s){super();this.id=e,this.opts=t,this.transport=i,this.bindTransport(i),this.request=s,this.onOpen()}onOpen(){this.readyState="open",this.sendPacket("open",JSON.stringify({sid:this.id,upgrades:this.transport.upgradesTo,pingInterval:this.opts.pingInterval,pingTimeout:this.opts.pingTimeout,maxPayload:this.opts.maxHttpBufferSize})),this.emitReserved("open"),this.schedulePing()}onPacket(e){if(this.readyState!=="open"){I("packet received with closed socket");return}switch(I(`received packet ${e.type}`),this.emitReserved("packet",e),e.type){case"pong":I("got pong"),clearTimeout(this.pingTimeoutTimer),this.schedulePing(),this.emitReserved("heartbeat");break;case"message":this.emitReserved("data",e.data);break;case"error":default:this.onClose("parse error");break}}onError(e){I(`transport error: ${e.message}`),this.onClose("transport error")}schedulePing(){if(this.pingTimeoutTimer){this.pingIntervalTimer?.refresh();return}this.pingIntervalTimer=setTimeout(()=>{I(`writing ping packet - expecting pong within ${this.opts.pingTimeout} ms`),this.sendPacket("ping"),this.resetPingTimeout()},this.opts.pingInterval)}resetPingTimeout(){clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=setTimeout(()=>{this.onClose("ping timeout")},this.opts.pingTimeout)}bindTransport(e){this.transport=e,this.transport.once("error",(t)=>this.onError(t)),this.transport.on("packet",(t)=>this.onPacket(t)),this.transport.on("drain",()=>this.flush()),this.transport.on("close",()=>this.onClose("transport close"))}_maybeUpgrade(e){if(this.upgradeState==="upgrading")return I("transport has already been trying to upgrade"),e.close();else if(this.upgradeState==="upgraded")return I("transport has already been upgraded"),e.close();I("upgrading existing transport"),this.upgradeState="upgrading";let t=setTimeout(()=>{I("client did not complete upgrade - closing transport"),e.close()},this.opts.upgradeTimeout);e.on("close",()=>{clearInterval(i),e.off()});let i,s=()=>{if(this.transport.name==="polling"&&this.transport.writable)I("writing a noop packet to polling for fast upgrade"),this.transport.send([{type:"noop"}])};e.on("packet",(n)=>{if(n.type==="ping"&&n.data==="probe")I("got probe ping packet, sending pong"),e.send([{type:"pong",data:"probe"}]),s(),i=setInterval(s,Ju),this.emitReserved("upgrading",e);else if(n.type==="upgrade"&&this.readyState!=="closed")I("got upgrade packet - upgrading"),this.upgradeState="upgraded",clearTimeout(t),clearInterval(i),e.off(),this.closeTransport(),this.bindTransport(e),this.emitReserved("upgrade",e),this.flush();else I("invalid upgrade packet"),clearTimeout(t),e.close()})}onClose(e){if(this.readyState==="closed")return;I(`socket closed due to ${e}`),this.readyState="closed",clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.closeTransport(),this.emitReserved("close",e)}write(e){return this.sendPacket("message",e),this}sendPacket(e,t){if(["closing","closed"].includes(this.readyState))return;I(`sending packet ${e} (${t})`);let i={type:e,data:t};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),this.flush()}flush(){if(!(this.readyState!=="closed"&&this.transport.writable&&this.writeBuffer.length>0))return;I(`[socket] flushing buffer with ${this.writeBuffer.length} packet(s) to transport`),this.emitReserved("flush",this.writeBuffer);let t=this.writeBuffer;this.writeBuffer=[],this.transport.send(t),this.emitReserved("drain")}close(){if(this.readyState!=="open")return;this.readyState="closing";let e=()=>{this.closeTransport(),this.onClose("forced close")};if(this.writeBuffer.length)I("buffer not empty, waiting for the drain event"),this.once("drain",e);else e()}closeTransport(){this.transport.off(),this.transport.close()}}import{debuglog as Yu}from"util";var Ae=Yu("engine.io:polling");class ss extends Ce{pollingPromise;get name(){return"polling"}get upgradesTo(){return["websocket"]}onRequest(e,t){if(e.method==="GET")return this.onPollRequest(e,t);else if(e.method==="POST")return this.onDataRequest(e,t);return Promise.resolve(new Response(null,{status:400,headers:t}))}onPollRequest(e,t){if(this.pollingPromise)return Ae("request overlap"),this.onError("overlap from client"),Promise.resolve(new Response(null,{status:400,headers:t}));return Ae("new polling request"),e.signal.addEventListener("abort",()=>{this.onError("polling request aborted")}),new Promise((i,s)=>{this.pollingPromise={resolve:i,reject:s,responseHeaders:t},Ae("transport is now writable"),this.writable=!0,this.emitReserved("drain")})}async onDataRequest(e,t){Ae("new data request"),e.signal.addEventListener("abort",()=>{this.onError("data request aborted")});let i=await e.text();if(i.length>this.opts.maxHttpBufferSize)return this.onError("payload too large"),Promise.resolve(new Response(null,{status:413,headers:t}));let s=rt.decodePayload(i);Ae(`decoded ${s.length} packet(s)`);for(let n of s)this.onPacket(n);return Promise.resolve(new Response("ok",{status:200,headers:t}))}send(e){this.writable=!1,this.write(rt.encodePayload(e))}write(e){if(Ae(`writing ${e}`),!this.pollingPromise)return;let t=this.pollingPromise.responseHeaders;t.set("Content-Type","text/plain; charset=UTF-8"),this.pollingPromise.resolve(new Response(e,{status:200,headers:t})),this.pollingPromise=void 0}doClose(){if(this.writable)Ae("transport writable - closing right away"),this.send([{type:this.readyState==="closing"?"close":"noop"}]);this.onClose()}}import{debuglog as Qu}from"util";var ns=Qu("engine.io:websocket");class ii extends Ce{socket;get name(){return"websocket"}get upgradesTo(){return[]}send(e){for(let t of e){let i=rt.encodePacket(t,!0);if(this.writable&&this.socket?.readyState===WebSocket.OPEN)this.socket.send(i)}}doClose(){this.socket?.close()}onOpen(e){ns("on open"),this.socket=e,this.writable=!0}onMessage(e){ns("on message"),this.onPacket(rt.decodePacket(e))}onCloseEvent(e,t){ns("on close"),this.onClose()}}function sr(e,t,i){if(Xu(t,e,i),id(t,e),td(t,e),i.method==="OPTIONS")Zu(t,e),ed(t,e,i),sd(t,e)}function as(e){return Array.isArray(e)?e.join(","):e}function nr(e,t){if(Array.isArray(e)){for(let i=0;i<e.length;i++)if(nr(e[i],t))return!0;return!1}else if(typeof e==="string")return e===t;else if(e instanceof RegExp)return e.test(t);else return!!e}function Xu(e,t,i){let s=i.headers.get("origin"),n=e.origin;if(!n||n==="*")t.set("Access-Control-Allow-Origin","*");else if(typeof n==="string")t.set("Access-Control-Allow-Origin",n),t.append("Vary","Origin");else{let a=nr(n,s);t.set("Access-Control-Allow-Origin",a?s:"false"),t.append("Vary","Origin")}}function Zu(e,t){if(e.methods)t.set("Access-Control-Allow-Methods",as(e.methods))}function ed(e,t,i){if(e.allowedHeaders){t.set("Access-Control-Allow-Headers",as(e.allowedHeaders));return}let s=i.headers.get("access-control-request-headers");if(s)t.append("Vary","Access-Control-Request-Headers"),t.set("Access-Control-Allow-Headers",s)}function td(e,t){if(e.exposedHeaders)t.set("Access-Control-Expose-Headers",as(e.exposedHeaders))}function id(e,t){if(e.credentials)t.set("Access-Control-Allow-Credentials","true")}function sd(e,t){if(e.maxAge)t.set("Access-Control-Max-Age",e.maxAge.toString())}import{randomBytes as nd}from"crypto";function ar(){return nd(15).toString("base64url")}import{debuglog as ad}from"util";var Q=ad("engine.io"),od=["polling","websocket"],D;(function(e){e[e.UNKNOWN_TRANSPORT=0]="UNKNOWN_TRANSPORT",e[e.UNKNOWN_SID=1]="UNKNOWN_SID",e[e.BAD_HANDSHAKE_METHOD=2]="BAD_HANDSHAKE_METHOD",e[e.BAD_REQUEST=3]="BAD_REQUEST",e[e.FORBIDDEN=4]="FORBIDDEN",e[e.UNSUPPORTED_PROTOCOL_VERSION=5]="UNSUPPORTED_PROTOCOL_VERSION"})(D||(D={}));var or=new Map([[D.UNKNOWN_TRANSPORT,"Transport unknown"],[D.UNKNOWN_SID,"Session ID unknown"],[D.BAD_HANDSHAKE_METHOD,"Bad handshake method"],[D.BAD_REQUEST,"Bad request"],[D.FORBIDDEN,"Forbidden"],[D.UNSUPPORTED_PROTOCOL_VERSION,"Unsupported protocol version"]]);class si extends Re{opts;clients=new Map;constructor(e={}){super();this.opts=Object.assign({path:"/engine.io/",pingTimeout:20000,pingInterval:25000,upgradeTimeout:1e4,maxHttpBufferSize:1e6},e)}async handleRequest(e,t){let i=new URL(e.url);Q(`handling ${e.method} ${e.url}`);let s=new Headers;if(this.opts.cors){if(sr(s,this.opts.cors,e),e.method==="OPTIONS")return new Response(null,{status:204,headers:s})}if(this.opts.editResponseHeaders)await this.opts.editResponseHeaders(s,e,t);try{await this.verify(e,i)}catch(a){let{code:r,context:o}=a,c=or.get(r);this.emitReserved("connection_error",{req:e,code:r,message:c,context:o});let l=JSON.stringify({code:r,message:c});return s.set("Content-Type","application/json"),new Response(l,{status:400,headers:s})}if(this.opts.allowRequest)try{await this.opts.allowRequest(e,t)}catch(a){this.emitReserved("connection_error",{req:e,code:D.FORBIDDEN,message:or.get(D.FORBIDDEN),context:{message:a}});let r=JSON.stringify({code:D.FORBIDDEN,message:a});return s.set("Content-Type","application/json"),new Response(r,{status:403,headers:s})}let n=i.searchParams.get("sid");if(n){let a=this.clients.get(n);if(e.headers.has("upgrade")){let r=new ii(this.opts),o=t.upgrade(e,{headers:s,data:{transport:r}});if(Q(`upgrade was successful: ${o}`),!o)return new Response(null,{status:500});return a._maybeUpgrade(r),new Response(null)}return Q("setting new request for existing socket"),a.transport.onRequest(e,s)}else return this.handshake(e,t,i,s)}onWebSocketOpen(e){Q("on ws open"),e.data.transport.onOpen(e)}onWebSocketMessage(e,t){Q("on ws message"),e.data.transport.onMessage(t)}onWebSocketClose(e,t,i){Q("on ws close"),e.data.transport.onCloseEvent(t,i)}verify(e,t){let i=t.searchParams.get("transport")||"";if(!od.includes(i))return Q(`unknown transport "${i}"`),Promise.reject({code:D.UNKNOWN_TRANSPORT,context:{transport:i}});let s=t.searchParams.get("sid");if(s){let n=this.clients.get(s);if(!n)return Q(`unknown client with sid ${s}`),Promise.reject({code:D.UNKNOWN_SID,context:{sid:s}});let a=n.transport.name;if(a==="websocket")return Q("unexpected transport without upgrade"),Promise.reject({code:D.BAD_REQUEST,context:{name:"TRANSPORT_MISMATCH",transport:i,previousTransport:a}})}else{if(e.method!=="GET")return Promise.reject({code:D.BAD_HANDSHAKE_METHOD,context:{method:e.method}});let n=t.searchParams.get("EIO")==="4"?4:3;if(n===3)return Promise.reject({code:D.UNSUPPORTED_PROTOCOL_VERSION,context:{protocol:n}})}return Promise.resolve()}async handshake(e,t,i,s){let n=ar();if(this.opts.editHandshakeHeaders)await this.opts.editHandshakeHeaders(s,e,t);let a=e.headers.has("upgrade"),r;if(a){if(r=new ii(this.opts),!t.upgrade(e,{headers:s,data:{transport:r}}))return new Response(null,{status:500})}else r=new ss(this.opts);Q(`new socket ${n}`);let o=new is(n,this.opts,r,{url:e.url,headers:Object.fromEntries(e.headers.entries()),_query:Object.fromEntries(i.searchParams.entries()),connection:{encrypted:["https","wss"].includes(i.protocol)}});if(this.clients.set(n,o),o.once("close",(l)=>{Q(`socket ${n} closed due to ${l}`),this.clients.delete(n)}),a)return this.emitReserved("connection",o,e,t),new Response(null);let c=r.onRequest(e,s);return this.emitReserved("connection",o,e,t),c}close(){Q("closing all open clients"),this.clients.forEach((e)=>e.close())}handler(){let e=Math.ceil(2*this.opts.pingInterval/1000);return{fetch:(t,i)=>{if(new URL(t.url).pathname===this.opts.path)return this.handleRequest(t,i);else return new Response(null,{status:404})},websocket:{open:(t)=>{this.onWebSocketOpen(t)},message:(t,i)=>{this.onWebSocketMessage(t,i)},close:(t,i,s)=>{this.onWebSocketClose(t,i,s)},maxPayloadLength:this.opts.maxHttpBufferSize},idleTimeout:e,maxRequestBodySize:this.opts.maxHttpBufferSize}}}class rr{router;middlewares=[];errorMessages;socketIO;constructor(e={}){this.errorMessages=new ye(e.funnyMode??!0),this.router=new oi(this.errorMessages)}register(e,t,i,...s){if(!t.startsWith("/"))throw Error(this.errorMessages.invalidPath(t));let n=new ht;for(let r of this.middlewares)n.use(r);for(let r of s)n.use(r);let a=async(r,o)=>n.execute(r,o,async()=>{let c=await i(r,o);if(c instanceof Response)return c;throw console.error(this.errorMessages.handlerDidNotReturnResponse()),new q(500,"Handler did not send a response")});return this.router.register(e,t,a),this}spongGet(e,t,...i){return this.register("GET",e,t,...i)}spongPost(e,t,...i){return this.register("POST",e,t,...i)}spongPut(e,t,...i){return this.register("PUT",e,t,...i)}spongPatch(e,t,...i){return this.register("PATCH",e,t,...i)}spongDelete(e,t,...i){return this.register("DELETE",e,t,...i)}spongHead(e,t,...i){return this.register("HEAD",e,t,...i)}spongOptions(e,t,...i){return this.register("OPTIONS",e,t,...i)}spongUse(e){return this.middlewares.push(e),this}spongSocketIO(e={}){if(this.socketIO)return this.socketIO.io;let t=e.path??"/socket.io/",i=new si({path:t}),s=new Xo({...e,path:t});return s.bind(i),this.socketIO={io:s,engine:i,path:t},s}spongListen(e=4000,t){return us(this.router,this.errorMessages,e,t,this.socketIO)}}import{createHmac as rd,timingSafeEqual as cd}from"crypto";var pd=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,ld=/^[\u0021-\u003A\u003C-\u007E]*$/,ud=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,dd=/^[\u0020-\u003A\u003D-\u007E]*$/,md=/^[!#$&'()*+\-.\/0-9:<=>?@A-Z[\]\^_`a-z{|}~]*$/,fd=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function hd(e,t){let i=new fd,s=e.length;if(s<2)return i;let n=t?.decode||bd,a=0;do{let r=vd(e,a,s);if(r===s)break;let o=gd(e,a,s);if(r>o){a=e.lastIndexOf(";",r-1)+1;continue}let c=cr(e,a,r);if(i[c]===void 0)i[c]=n(cr(e,r+1,o));a=o+1}while(a<s);return i}function xd(e,t){let i=t?.encode||yd;if(!pd.test(e.name))throw TypeError(`argument name is invalid: ${e.name}`);let s=e.value==null?"":i(e.value);if(!ld.test(s))throw TypeError(`argument val is invalid: ${e.value}`);let n=e.name+"="+s;if(e.maxAge!==void 0){if(!Number.isInteger(e.maxAge))throw TypeError(`option maxAge is invalid: ${e.maxAge}`);n+="; Max-Age="+e.maxAge}if(e.domain){if(!ud.test(e.domain))throw TypeError(`option domain is invalid: ${e.domain}`);n+="; Domain="+e.domain}if(e.path){if(!dd.test(e.path))throw TypeError(`option path is invalid: ${e.path}`);n+="; Path="+e.path}if(e.expires){if(!Number.isFinite(e.expires.valueOf()))throw TypeError(`option expires is invalid: ${e.expires}`);n+="; Expires="+e.expires.toUTCString()}if(e.httpOnly)n+="; HttpOnly";if(e.secure)n+="; Secure";if(e.partitioned)n+="; Partitioned";if(e.priority)switch(typeof e.priority==="string"?e.priority.toLowerCase():void 0){case"low":n+="; Priority=Low";break;case"medium":n+="; Priority=Medium";break;case"high":n+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${e.priority}`)}if(e.sameSite)switch(typeof e.sameSite==="string"?e.sameSite.toLowerCase():e.sameSite){case!0:case"strict":n+="; SameSite=Strict";break;case"lax":n+="; SameSite=Lax";break;case"none":n+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${e.sameSite}`)}return n}function gd(e,t,i){let s=e.indexOf(";",t);return s===-1?i:s}function vd(e,t,i){let s=e.indexOf("=",t);return s===-1?i:s}function cr(e,t,i){if(t===i)return"";let s=t,n=i;do{let a=e.charCodeAt(s);if(a!==32&&a!==9)break}while(++s<n);while(n>s){let a=e.charCodeAt(n-1);if(a!==32&&a!==9)break;n--}return e.slice(s,n)}function bd(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch(t){return e}}function yd(e){return md.test(e)?e:encodeURIComponent(e)}class pe extends Error{code;constructor(e,t,i){super(t,i);this.code=e,this.name="CookieError"}}var wd=Object.freeze({path:"/",httpOnly:!0,secure:!0,sameSite:"lax"}),pr=4096,lr=34560000,kd=16384,ur=32,_d=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Sd=/^\/[\x20-\x3A\x3C-\x7E]*$/,dr="[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?",Ed=new RegExp(`^\\.?${dr}(?:\\.${dr})*$`,"i"),Td=new Set(["lax","strict","none"]),Rd=new Set(["low","medium","high"]);function os(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function mr(e,t,i){return rd("sha256",i).update(`${e}=${t}`).digest("base64url")}class ni{cookies=new Map;pending=new Map;secrets;defaults;headerRejected;constructor(e,t={}){let i=t.secrets??[];for(let a of i)if(typeof a!=="string"||a.length<ur)throw new pe("WEAK_SECRET",`Cookie secrets must be strings of at least ${ur} characters.`);this.secrets=[...i],this.defaults=os(t.defaults??{}),this.resolveOptions("probe",{});let s=t.maxHeaderBytes??kd,n=!1;if(typeof e==="string"&&e!=="")if(Buffer.byteLength(e,"utf8")>s)n=!0;else this.load(e);this.headerRejected=n}static fromRequest(e,t){return new ni(e.headers.get("cookie"),t)}get(e){return this.cookies.get(e)}has(e){return this.cookies.has(e)}names(){return[...this.cookies.keys()]}getAll(){return Object.fromEntries(this.cookies)}set(e,t,i={}){let s=this.resolveOptions(e,i),n=this.serialize(e,t,s);if(this.record(e,s,n),this.isExpired(s))this.cookies.delete(e);else this.cookies.set(e,t);return this}setSigned(e,t,i={}){let s=this.secrets[0];if(s===void 0)throw new pe("SECRETS_REQUIRED","Signed cookies need at least one secret in CookieManagerOptions.secrets.");if(typeof t!=="string")throw new pe("INVALID_VALUE","Cookie value must be a string.");return this.set(e,`${t}.${mr(e,t,s)}`,i)}getSigned(e){let t=this.cookies.get(e);if(t===void 0)return;let i=t.lastIndexOf(".");if(i===-1)return;let s=t.slice(0,i),n=Buffer.from(t.slice(i+1),"utf8"),a=!1;for(let r of this.secrets){let o=Buffer.from(mr(e,s,r),"utf8");if(n.length===o.length&&cd(n,o))a=!0}return a?s:void 0}delete(e,t={}){let i=this.resolveOptions(e,{...os(t),expires:new Date(0),maxAge:0}),s=this.serialize(e,"",i);return this.record(e,i,s),this.cookies.delete(e),this}getSetCookieHeaders(){return[...this.pending.values()]}applyTo(e){let t=this.getSetCookieHeaders();if(t.length===0)return e;try{for(let i of t)e.headers.append("Set-Cookie",i);return e}catch{let i=new Response(e.body,{status:e.status,statusText:e.statusText,headers:new Headers(e.headers)});for(let s of t)i.headers.append("Set-Cookie",s);return i}}load(e){let t;try{t=hd(e)}catch{return}for(let[i,s]of Object.entries(t))if(s!==void 0)this.cookies.set(i,s)}resolveOptions(e,t){if(typeof e!=="string"||!_d.test(e))throw new pe("INVALID_NAME",`Invalid cookie name: ${JSON.stringify(e)}.`);let i={...wd,...this.defaults,...os(t)},s=(a)=>{throw new pe("INVALID_OPTION",`Cookie "${e}": ${a}`)};if(i.maxAge!==void 0){if(!Number.isSafeInteger(i.maxAge)||i.maxAge<0)s("maxAge must be a non-negative integer (seconds).");i.maxAge=Math.min(i.maxAge,lr)}if(i.expires!==void 0){if(!(i.expires instanceof Date)||Number.isNaN(i.expires.getTime()))s("expires must be a valid Date.");let a=Date.now()+lr*1000;if(i.expires.getTime()>a)i.expires=new Date(a)}if(i.path!==void 0&&!Sd.test(i.path))s('path must start with "/" and not contain ";" or control characters.');if(i.domain!==void 0&&(i.domain.length>253||!Ed.test(i.domain)))s("domain is not a valid host name.");if(i.priority!==void 0&&!Rd.has(i.priority))s('priority must be "low", "medium" or "high".');if(typeof i.sameSite==="string"&&!Td.has(i.sameSite))s('sameSite must be "lax", "strict" or "none".');let n=e.startsWith("__Host-");if((n||e.startsWith("__Secure-")||i.sameSite==="none"||i.partitioned===!0)&&i.secure!==!0)s("this cookie requires the Secure attribute (__Host-/__Secure- prefix, SameSite=None or Partitioned).");if(n){if(i.domain!==void 0)s("__Host- cookies cannot set a domain.");if(i.path!=="/")s('__Host- cookies must use path "/".')}return i}serialize(e,t,i){if(typeof t!=="string")throw new pe("INVALID_VALUE","Cookie value must be a string.");let s;try{s=xd({name:e,value:t,...i})}catch(n){throw new pe("SERIALIZATION_FAILED",`Cookie "${e}" could not be serialized.`,{cause:n})}if(Buffer.byteLength(s,"utf8")>pr)throw new pe("COOKIE_TOO_LARGE",`Cookie "${e}" is larger than ${pr} bytes.`);return s}record(e,t,i){let s=[e,t.domain?.toLowerCase()??"",t.path??"/",t.partitioned===!0?"partitioned":""].join("\x00");this.pending.delete(s),this.pending.set(s,i)}isExpired(e){return e.maxAge===0||e.expires!==void 0&&e.expires.getTime()<=Date.now()}}class fr{verifyToken;mode;cookieName;constructor(e,t={mode:"both"}){this.verifyToken=e;this.mode=t.mode,this.cookieName=t.mode==="cookie"||t.mode==="both"?t.cookieName??"token":"token"}getToken(e){if(this.mode==="bearer"||this.mode==="both"){let t=e.headers.get("authorization");if(t){let i=t.match(/^Bearer\s+(\S+)$/i);if(!i)return null;return i[1]??null}if(this.mode==="bearer")return null}if(this.mode==="cookie"||this.mode==="both")return ni.fromRequest(e.request).get(this.cookieName)??null;return null}middleware=async(e,t,i)=>{let s=this.getToken(e);if(!s)return t.SpongUnauthorized({success:!1,message:"Authentication token is missing or invalid."});let n;try{n=await this.verifyToken(s)}catch(a){return console.error("[RiserBob] Token verification failed:",a),je.handle(a)}if(!n)return t.SpongUnauthorized({success:!1,message:"Token is invalid or expired."});return e.user=n,e.auth={token:s},i()}}var Cd=["GET","POST","PUT","PATCH","DELETE"],Ad=["Content-Type","Authorization"],Od=(e)=>{let{origin:t,credentials:i=!1,methods:s=Cd,allowedHeaders:n=Ad,exposedHeaders:a=[],maxAge:r=86400}=e;if(t==="*"&&i)throw TypeError('[RiserBob] CORS cannot use "*" with credentials enabled.');if(!Array.isArray(s)||s.length===0)throw TypeError("[RiserBob] CORS methods must contain at least one method.");if(!Array.isArray(n))throw TypeError("[RiserBob] CORS allowedHeaders must be an array.");if(!Array.isArray(a))throw TypeError("[RiserBob] CORS exposedHeaders must be an array.");if(!Number.isInteger(r)||r<0)throw TypeError("[RiserBob] CORS maxAge must be a non-negative integer.");let o=new Set(Array.isArray(t)?t:[]),c=s.join(", "),l=n.join(", "),p=a.join(", ");return async(u,x,b)=>{let m=u.request.headers.get("origin"),d=new Headers;if(t==="*"?!0:m!==null&&o.has(m)||typeof t==="string"&&t!=="*"&&m===t){if(d.set("Access-Control-Allow-Origin",t==="*"?"*":m),i)d.set("Access-Control-Allow-Credentials","true");if(d.set("Access-Control-Allow-Methods",c),n.length>0)d.set("Access-Control-Allow-Headers",l);if(a.length>0)d.set("Access-Control-Expose-Headers",p);if(d.set("Access-Control-Max-Age",String(r)),t!=="*")d.set("Vary","Origin")}if(u.method==="OPTIONS")return new Response(null,{status:204,headers:d});let v=await b(),k=new Headers(v.headers);for(let[V,oe]of d)if(V.toLowerCase()==="vary"){let ct=k.get("Vary"),F=ct?ct.split(",").map((ee)=>ee.trim()):[];if(!F.some((ee)=>ee.toLowerCase()==="origin"))F.push("Origin");k.set("Vary",F.join(", "))}else k.set(V,oe);return new Response(v.body,{status:v.status,statusText:v.statusText,headers:k})}};var Pd={requestFailed:()=>"[RiserBob] \uD83D\uDC80\uD83E\uDDFD Barnacles! Request failed!"},jd=(e)=>async(t,i,s)=>{let n=performance.now(),a=500;try{let r=await s();return a=r.status,r}catch(r){throw console.error(e.requestFailed(),r),r}finally{let r=(performance.now()-n).toFixed(2),o=new Date().toISOString();console.log(`[RiserBob] ${o} | ${t.method} ${t.path} | ${a} | ${r}ms`)}},qd=jd(Pd);function Nd(e){if(e!==e.trim()||/\s/.test(e))return"invalid";let t;try{t=new URL(e)}catch{return"invalid"}if(t.protocol!=="http:"&&t.protocol!=="https:")return"protocol";if(!/^https?:\/\/[^/\\?#@]/i.test(e)||t.hostname==="")return"invalid";return"ok"}var Id=new Set(["url","enum","required","nullable","string","number","boolean","email","confirmed","array","min","max","minLength","maxLength","minItems","maxItems"]);class hr{static errorMessages=new ye;static configure(e){this.errorMessages=e}static parseSchema(e){let t={};for(let[i,s]of Object.entries(e)){if(!Array.isArray(s))throw TypeError(`Invalid validation rules for "${i}"`);t[i]=s.map((a)=>{if(typeof a!=="string")throw TypeError(`Invalid validation rule for "${i}"`);let r=a.indexOf(":"),o=r===-1?a:a.slice(0,r);if(!Id.has(o))throw TypeError(`Unknown validation rule: ${a}`);if(o==="enum"){if(r===-1)throw TypeError(`Rule "enum" requires options for "${i}" (e.g. "enum:active,pending")`);let u=a.slice(r+1).split(",").map((x)=>x.trim());if(u.some((x)=>x===""))throw TypeError(`Invalid enum rule for "${i}": empty option in "${a}"`);if(new Set(u).size!==u.length)throw TypeError(`Invalid enum rule for "${i}": duplicate option in "${a}"`);return{name:o,options:u}}if(!["min","max","minLength","maxLength","minItems","maxItems"].includes(o)){if(r!==-1)throw TypeError(`Rule "${o}" does not accept a limit`);return{name:o}}if(r===-1)throw TypeError(`Rule "${o}" requires a limit`);let l=a.slice(r+1);if(!/^\d+(?:\.\d+)?$/.test(l))throw TypeError(`Invalid validation limit: ${a}`);let p=Number(l);if(!Number.isFinite(p))throw TypeError(`Invalid validation limit: ${a}`);if((o.endsWith("Length")||o==="minItems"||o==="maxItems")&&!Number.isInteger(p))throw TypeError(`Rule "${o}" requires an integer limit`);return{name:o,limit:p}});let n=t[i].map((a)=>a.name);if(n.includes("required")&&n.includes("nullable"))throw console.error(this.errorMessages.invalidValidationSchema(i)),TypeError(`[RiserBob] Invalid rules for field "${i}".`)}return t}static validate(e,t){if(e===null||typeof e!=="object"||Array.isArray(e))throw TypeError("Validation data must be a plain object");let i=this.parseSchema(t),s={},n=(a,r)=>{(s[a]??=[]).push(r)};for(let[a,r]of Object.entries(i)){let o=e[a],c=r.map((m)=>m.name),l=c.includes("required"),p=c.includes("nullable"),u=o===void 0||o===null||typeof o==="string"&&o.trim()==="";if(l&&u){n(a,`${a} is required`);continue}if(o===void 0)continue;if(o===null&&p)continue;if(typeof o==="string"&&o.trim()===""&&!l)continue;let x=!1;if(c.includes("string")&&typeof o!=="string")n(a,`${a} must be a string`),x=!0;if(c.includes("number")&&(typeof o!=="number"||!Number.isFinite(o)))n(a,`${a} must be a number`),x=!0;if(c.includes("boolean")&&typeof o!=="boolean")n(a,`${a} must be a boolean`),x=!0;if(c.includes("array")&&!Array.isArray(o))n(a,`${a} must be an array`),x=!0;if(x)continue;if(c.includes("email")&&(typeof o!=="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o)))n(a,`${a} must be a valid email`);if(c.includes("url"))if(typeof o!=="string")n(a,`${a} must be a string`);else{let m=Nd(o);if(m==="invalid")n(a,`${a} must be a valid URL`);else if(m==="protocol")n(a,`${a} URL must use http or https`)}let b=r.find((m)=>m.name==="enum");if(b?.options!==void 0){if(typeof o!=="string"||!b.options.includes(o))n(a,`${a} must be one of: ${b.options.join(", ")}`)}if(c.includes("confirmed")&&o!==e[`${a}Confirmation`])n(a,`${a} confirmation does not match`);for(let m of r){let{name:d,limit:f}=m;if(f===void 0)continue;if(d==="min"||d==="max")if(typeof o==="number"){if(d==="min"&&o<f)n(a,`${a} must be at least ${f}`);if(d==="max"&&o>f)n(a,`${a} may not be greater than ${f}`)}else if(typeof o==="string"){if(d==="min"&&o.length<f)n(a,`${a} must be at least ${f} characters`);if(d==="max"&&o.length>f)n(a,`${a} may not exceed ${f} characters`)}else n(a,`${a} must be a string or number for ${d}`);if(d==="minLength"){if(typeof o!=="string")n(a,`${a} must be a string`);else if(o.length<f)n(a,`${a} must be at least ${f} characters`)}if(d==="maxLength"){if(typeof o!=="string")n(a,`${a} must be a string`);else if(o.length>f)n(a,`${a} may not exceed ${f} characters`)}if(d==="minItems"||d==="maxItems"){if(f===void 0)continue;if(!Array.isArray(o)){n(a,`${a} must be an array`);continue}if(d==="minItems"&&o.length<f)n(a,`${a} must contain at least ${f} items`);if(d==="maxItems"&&o.length>f)n(a,`${a} may not contain more than ${f} items`);continue}}}if(Object.keys(s).length>0)return{valid:!1,errors:s};return{valid:!0,data:e,errors:{}}}}export{fr as AuthMiddleware,q as HttpError,ht as MiddlewarePipeline,rr as RiserBob,hr as Validator,Od as corsMiddleware,qd as loggerMiddleware};