diff --git a/.github/actions/next-integration-stat/package.json b/.github/actions/next-integration-stat/package.json index d412478aed0e5..9a8c5f9e7500f 100644 --- a/.github/actions/next-integration-stat/package.json +++ b/.github/actions/next-integration-stat/package.json @@ -22,7 +22,7 @@ }, "engines": { "node": ">=18.17.0", - "pnpm": "8.14.2" + "pnpm": "8.15.1" }, - "packageManager": "pnpm@8.14.2" + "packageManager": "pnpm@8.15.1" } diff --git a/.github/actions/next-repo-info/dist/prs/index.mjs b/.github/actions/next-repo-info/dist/prs/index.mjs index d12b65df8c151..5d3e492c53399 100644 --- a/.github/actions/next-repo-info/dist/prs/index.mjs +++ b/.github/actions/next-repo-info/dist/prs/index.mjs @@ -14,4 +14,4 @@ e.exports=s(6450)},588:(e,t,s)=>{ */ var r=s(3182);var o=s(1017).extname;var A=/^\s*([^;\s]*)(?:;|\s|$)/;var n=/^text\//i;t.charset=charset;t.charsets={lookup:charset};t.contentType=contentType;t.extension=extension;t.extensions=Object.create(null);t.lookup=lookup;t.types=Object.create(null);populateMaps(t.extensions,t.types);function charset(e){if(!e||typeof e!=="string"){return false}var t=A.exec(e);var s=t&&r[t[1].toLowerCase()];if(s&&s.charset){return s.charset}if(t&&n.test(t[1])){return"UTF-8"}return false}function contentType(e){if(!e||typeof e!=="string"){return false}var s=e.indexOf("/")===-1?t.lookup(e):e;if(!s){return false}if(s.indexOf("charset")===-1){var r=t.charset(s);if(r)s+="; charset="+r.toLowerCase()}return s}function extension(e){if(!e||typeof e!=="string"){return false}var s=A.exec(e);var r=s&&t.extensions[s[1].toLowerCase()];if(!r||!r.length){return false}return r[0]}function lookup(e){if(!e||typeof e!=="string"){return false}var s=o("x."+e).toLowerCase().substr(1);if(!s){return false}return t.types[s]||false}function populateMaps(e,t){var s=["nginx","apache",undefined,"iana"];Object.keys(r).forEach((function forEachMimeType(o){var A=r[o];var n=A.extensions;if(!n||!n.length){return}e[o]=n;for(var i=0;il||c===l&&t[a].substr(0,12)==="application/")){continue}}t[a]=o}}))}},3069:(e,t,s)=>{var r=s(7212);e.exports=r(once);e.exports.strict=r(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(e){var f=function(){if(f.called)return f.value;f.called=true;return f.value=e.apply(this,arguments)};f.called=false;return f}function onceStrict(e){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=e.apply(this,arguments)};var t=e.name||"Function wrapped with `once`";f.onceError=t+" shouldn't be called more than once";f.called=false;return f}},7574:e=>{e.exports=(e,t)=>{t=t||(()=>{});return e.then((e=>new Promise((e=>{e(t())})).then((()=>e))),(e=>new Promise((e=>{e(t())})).then((()=>{throw e}))))}},5062:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});const r=s(2171);const o=s(2013);const A=s(8663);const empty=()=>{};const n=new o.TimeoutError;class PQueue extends r{constructor(e){var t,s,r,o;super();this._intervalCount=0;this._intervalEnd=0;this._pendingCount=0;this._resolveEmpty=empty;this._resolveIdle=empty;e=Object.assign({carryoverConcurrencyCount:false,intervalCap:Infinity,interval:0,concurrency:Infinity,autoStart:true,queueClass:A.default},e);if(!(typeof e.intervalCap==="number"&&e.intervalCap>=1)){throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(s=(t=e.intervalCap)===null||t===void 0?void 0:t.toString())!==null&&s!==void 0?s:""}\` (${typeof e.intervalCap})`)}if(e.interval===undefined||!(Number.isFinite(e.interval)&&e.interval>=0)){throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(r=e.interval)===null||r===void 0?void 0:r.toString())!==null&&o!==void 0?o:""}\` (${typeof e.interval})`)}this._carryoverConcurrencyCount=e.carryoverConcurrencyCount;this._isIntervalIgnored=e.intervalCap===Infinity||e.interval===0;this._intervalCap=e.intervalCap;this._interval=e.interval;this._queue=new e.queueClass;this._queueClass=e.queueClass;this.concurrency=e.concurrency;this._timeout=e.timeout;this._throwOnTimeout=e.throwOnTimeout===true;this._isPaused=e.autoStart===false}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()}),t)}return true}}return false}_tryToStartAnother(){if(this._queue.size===0){if(this._intervalId){clearInterval(this._intervalId)}this._intervalId=undefined;this._resolvePromises();return false}if(!this._isPaused){const e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){const t=this._queue.dequeue();if(!t){return false}this.emit("active");t();if(e){this._initializeIntervalIfNeeded()}return true}}return false}_initializeIntervalIfNeeded(){if(this._isIntervalIgnored||this._intervalId!==undefined){return}this._intervalId=setInterval((()=>{this._onInterval()}),this._interval);this._intervalEnd=Date.now()+this._interval}_onInterval(){if(this._intervalCount===0&&this._pendingCount===0&&this._intervalId){clearInterval(this._intervalId);this._intervalId=undefined}this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0;this._processQueue()}_processQueue(){while(this._tryToStartAnother()){}}get concurrency(){return this._concurrency}set concurrency(e){if(!(typeof e==="number"&&e>=1)){throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`)}this._concurrency=e;this._processQueue()}async add(e,t={}){return new Promise(((s,r)=>{const run=async()=>{this._pendingCount++;this._intervalCount++;try{const A=this._timeout===undefined&&t.timeout===undefined?e():o.default(Promise.resolve(e()),t.timeout===undefined?this._timeout:t.timeout,(()=>{if(t.throwOnTimeout===undefined?this._throwOnTimeout:t.throwOnTimeout){r(n)}return undefined}));s(await A)}catch(e){r(e)}this._next()};this._queue.enqueue(run,t);this._tryToStartAnother();this.emit("add")}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){if(!this._isPaused){return this}this._isPaused=false;this._processQueue();return this}pause(){this._isPaused=true}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size===0){return}return new Promise((e=>{const t=this._resolveEmpty;this._resolveEmpty=()=>{t();e()}}))}async onIdle(){if(this._pendingCount===0&&this._queue.size===0){return}return new Promise((e=>{const t=this._resolveIdle;this._resolveIdle=()=>{t();e()}}))}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}}t["default"]=PQueue},7904:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function lowerBound(e,t,s){let r=0;let o=e.length;while(o>0){const A=o/2|0;let n=r+A;if(s(e[n],t)<=0){r=++n;o-=A+1}else{o=A}}return r}t["default"]=lowerBound},8663:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});const r=s(7904);class PriorityQueue{constructor(){this._queue=[]}enqueue(e,t){t=Object.assign({priority:0},t);const s={priority:t.priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority){this._queue.push(s);return}const o=r.default(this._queue,s,((e,t)=>t.priority-e.priority));this._queue.splice(o,0,s)}dequeue(){const e=this._queue.shift();return e===null||e===void 0?void 0:e.run}filter(e){return this._queue.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this._queue.length}}t["default"]=PriorityQueue},9005:(e,t,s)=>{const r=s(5560);const o=["Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed"];class AbortError extends Error{constructor(e){super();if(e instanceof Error){this.originalError=e;({message:e}=e)}else{this.originalError=new Error(e);this.originalError.stack=this.stack}this.name="AbortError";this.message=e}}const decorateErrorWithCounts=(e,t,s)=>{const r=s.retries-(t-1);e.attemptNumber=t;e.retriesLeft=r;return e};const isNetworkError=e=>o.includes(e);const pRetry=(e,t)=>new Promise(((s,o)=>{t={onFailedAttempt:()=>{},retries:10,...t};const A=r.operation(t);A.attempt((async r=>{try{s(await e(r))}catch(e){if(!(e instanceof Error)){o(new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`));return}if(e instanceof AbortError){A.stop();o(e.originalError)}else if(e instanceof TypeError&&!isNetworkError(e.message)){A.stop();o(e)}else{decorateErrorWithCounts(e,r,t);try{await t.onFailedAttempt(e)}catch(e){o(e);return}if(!A.retry(e)){o(A.mainError())}}}}))}));e.exports=pRetry;e.exports["default"]=pRetry;e.exports.AbortError=AbortError},2013:(e,t,s)=>{const r=s(7574);class TimeoutError extends Error{constructor(e){super(e);this.name="TimeoutError"}}const pTimeout=(e,t,s)=>new Promise(((o,A)=>{if(typeof t!=="number"||t<0){throw new TypeError("Expected `milliseconds` to be a positive number")}if(t===Infinity){o(e);return}const n=setTimeout((()=>{if(typeof s==="function"){try{o(s())}catch(e){A(e)}return}const r=typeof s==="string"?s:`Promise timed out after ${t} milliseconds`;const n=s instanceof Error?s:new TimeoutError(r);if(typeof e.cancel==="function"){e.cancel()}A(n)}),t);r(e.then(o,A),(()=>{clearTimeout(n)}))}));e.exports=pTimeout;e.exports["default"]=pTimeout;e.exports.TimeoutError=TimeoutError},490:(e,t,s)=>{var r=s(7310).parse;var o={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};var A=String.prototype.endsWith||function(e){return e.length<=this.length&&this.indexOf(e,this.length-e.length)!==-1};function getProxyForUrl(e){var t=typeof e==="string"?r(e):e||{};var s=t.protocol;var A=t.host;var n=t.port;if(typeof A!=="string"||!A||typeof s!=="string"){return""}s=s.split(":",1)[0];A=A.replace(/:\d*$/,"");n=parseInt(n)||o[s]||0;if(!shouldProxy(A,n)){return""}var i=getEnv("npm_config_"+s+"_proxy")||getEnv(s+"_proxy")||getEnv("npm_config_proxy")||getEnv("all_proxy");if(i&&i.indexOf("://")===-1){i=s+"://"+i}return i}function shouldProxy(e,t){var s=(getEnv("npm_config_no_proxy")||getEnv("no_proxy")).toLowerCase();if(!s){return true}if(s==="*"){return false}return s.split(/[,\s]/).every((function(s){if(!s){return true}var r=s.match(/^(.+):(\d+)$/);var o=r?r[1]:s;var n=r?parseInt(r[2]):0;if(n&&n!==t){return true}if(!/^[.*]/.test(o)){return e!==o}if(o.charAt(0)==="*"){o=o.slice(1)}return!A.call(e,o)}))}function getEnv(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}t.getProxyForUrl=getProxyForUrl},5560:(e,t,s)=>{e.exports=s(5312)},5312:(e,t,s)=>{var r=s(9689);t.operation=function(e){var s=t.timeouts(e);return new r(s,{forever:e&&(e.forever||e.retries===Infinity),unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};t.timeouts=function(e){if(e instanceof Array){return[].concat(e)}var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:Infinity,randomize:false};for(var s in e){t[s]=e[s]}if(t.minTimeout>t.maxTimeout){throw new Error("minTimeout is greater than maxTimeout")}var r=[];for(var o=0;o{function RetryOperation(e,t){if(typeof t==="boolean"){t={forever:t}}this._originalTimeouts=JSON.parse(JSON.stringify(e));this._timeouts=e;this._options=t||{};this._maxRetryTime=t&&t.maxRetryTime||Infinity;this._fn=null;this._errors=[];this._attempts=1;this._operationTimeout=null;this._operationTimeoutCb=null;this._timeout=null;this._operationStart=null;this._timer=null;if(this._options.forever){this._cachedTimeouts=this._timeouts.slice(0)}}e.exports=RetryOperation;RetryOperation.prototype.reset=function(){this._attempts=1;this._timeouts=this._originalTimeouts.slice(0)};RetryOperation.prototype.stop=function(){if(this._timeout){clearTimeout(this._timeout)}if(this._timer){clearTimeout(this._timer)}this._timeouts=[];this._cachedTimeouts=null};RetryOperation.prototype.retry=function(e){if(this._timeout){clearTimeout(this._timeout)}if(!e){return false}var t=(new Date).getTime();if(e&&t-this._operationStart>=this._maxRetryTime){this._errors.push(e);this._errors.unshift(new Error("RetryOperation timeout occurred"));return false}this._errors.push(e);var s=this._timeouts.shift();if(s===undefined){if(this._cachedTimeouts){this._errors.splice(0,this._errors.length-1);s=this._cachedTimeouts.slice(-1)}else{return false}}var r=this;this._timer=setTimeout((function(){r._attempts++;if(r._operationTimeoutCb){r._timeout=setTimeout((function(){r._operationTimeoutCb(r._attempts)}),r._operationTimeout);if(r._options.unref){r._timeout.unref()}}r._fn(r._attempts)}),s);if(this._options.unref){this._timer.unref()}return true};RetryOperation.prototype.attempt=function(e,t){this._fn=e;if(t){if(t.timeout){this._operationTimeout=t.timeout}if(t.cb){this._operationTimeoutCb=t.cb}}var s=this;if(this._operationTimeoutCb){this._timeout=setTimeout((function(){s._operationTimeoutCb()}),s._operationTimeout)}this._operationStart=(new Date).getTime();this._fn(this._attempts)};RetryOperation.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated");this.attempt(e)};RetryOperation.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated");this.attempt(e)};RetryOperation.prototype.start=RetryOperation.prototype.try;RetryOperation.prototype.errors=function(){return this._errors};RetryOperation.prototype.attempts=function(){return this._attempts};RetryOperation.prototype.mainError=function(){if(this._errors.length===0){return null}var e={};var t=null;var s=0;for(var r=0;r=s){t=o;s=n}}return t}},8578:(e,t,s)=>{e.exports=s(2805)},2805:(e,t,s)=>{var r=s(1808);var o=s(4404);var A=s(3685);var n=s(5687);var i=s(2361);var a=s(9491);var c=s(3837);t.httpOverHttp=httpOverHttp;t.httpsOverHttp=httpsOverHttp;t.httpOverHttps=httpOverHttps;t.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var t=new TunnelingAgent(e);t.request=A.request;return t}function httpsOverHttp(e){var t=new TunnelingAgent(e);t.request=A.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function httpOverHttps(e){var t=new TunnelingAgent(e);t.request=n.request;return t}function httpsOverHttps(e){var t=new TunnelingAgent(e);t.request=n.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function TunnelingAgent(e){var t=this;t.options=e||{};t.proxyOptions=t.options.proxy||{};t.maxSockets=t.options.maxSockets||A.Agent.defaultMaxSockets;t.requests=[];t.sockets=[];t.on("free",(function onFree(e,s,r,o){var A=toOptions(s,r,o);for(var n=0,i=t.requests.length;n=this.maxSockets){o.requests.push(A);return}o.createSocket(A,(function(t){t.on("free",onFree);t.on("close",onCloseOrRemove);t.on("agentRemove",onCloseOrRemove);e.onSocket(t);function onFree(){o.emit("free",t,A)}function onCloseOrRemove(e){o.removeSocket(t);t.removeListener("free",onFree);t.removeListener("close",onCloseOrRemove);t.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,t){var s=this;var r={};s.sockets.push(r);var o=mergeOptions({},s.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){o.localAddress=e.localAddress}if(o.proxyAuth){o.headers=o.headers||{};o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")}l("making CONNECT request");var A=s.request(o);A.useChunkedEncodingByDefault=false;A.once("response",onResponse);A.once("upgrade",onUpgrade);A.once("connect",onConnect);A.once("error",onError);A.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,t,s){process.nextTick((function(){onConnect(e,t,s)}))}function onConnect(o,n,i){A.removeAllListeners();n.removeAllListeners();if(o.statusCode!==200){l("tunneling socket could not be established, statusCode=%d",o.statusCode);n.destroy();var a=new Error("tunneling socket could not be established, "+"statusCode="+o.statusCode);a.code="ECONNRESET";e.request.emit("error",a);s.removeSocket(r);return}if(i.length>0){l("got illegal response body from proxy");n.destroy();var a=new Error("got illegal response body from proxy");a.code="ECONNRESET";e.request.emit("error",a);s.removeSocket(r);return}l("tunneling connection has established");s.sockets[s.sockets.indexOf(r)]=n;return t(n)}function onError(t){A.removeAllListeners();l("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var o=new Error("tunneling socket could not be established, "+"cause="+t.message);o.code="ECONNRESET";e.request.emit("error",o);s.removeSocket(r)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var t=this.sockets.indexOf(e);if(t===-1){return}this.sockets.splice(t,1);var s=this.requests.shift();if(s){this.createSocket(s,(function(e){s.request.onSocket(e)}))}};function createSecureSocket(e,t){var s=this;TunnelingAgent.prototype.createSocket.call(s,e,(function(r){var A=e.request.getHeader("host");var n=mergeOptions({},s.options,{socket:r,servername:A?A.replace(/:.*$/,""):e.host});var i=o.connect(0,n);s.sockets[s.sockets.indexOf(r)]=i;t(i)}))}function toOptions(e,t,s){if(typeof e==="string"){return{host:e,port:t,localAddress:s}}return e}function mergeOptions(e){for(var t=1,s=arguments.length;t{const r=s(1735);const o=s(8648);const A=s(2366);const n=s(780);const i=s(6318);const a=s(8840);const c=s(7497);const{InvalidArgumentError:l}=A;const u=s(6499);const p=s(9218);const g=s(1287);const d=s(6004);const h=s(7220);const E=s(2703);const C=s(9498);const Q=s(8984);const{getGlobalDispatcher:m,setGlobalDispatcher:B}=s(2899);const I=s(253);const b=s(292);const y=s(3167);let w;try{s(6113);w=true}catch{w=false}Object.assign(o.prototype,u);e.exports.Dispatcher=o;e.exports.Client=r;e.exports.Pool=n;e.exports.BalancedPool=i;e.exports.Agent=a;e.exports.ProxyAgent=C;e.exports.RetryHandler=Q;e.exports.DecoratorHandler=I;e.exports.RedirectHandler=b;e.exports.createRedirectInterceptor=y;e.exports.buildConnector=p;e.exports.errors=A;function makeDispatcher(e){return(t,s,r)=>{if(typeof s==="function"){r=s;s=null}if(!t||typeof t!=="string"&&typeof t!=="object"&&!(t instanceof URL)){throw new l("invalid url")}if(s!=null&&typeof s!=="object"){throw new l("invalid opts")}if(s&&s.path!=null){if(typeof s.path!=="string"){throw new l("invalid opts.path")}let e=s.path;if(!s.path.startsWith("/")){e=`/${e}`}t=new URL(c.parseOrigin(t).origin+e)}else{if(!s){s=typeof t==="object"?t:{}}t=c.parseURL(t)}const{agent:o,dispatcher:A=m()}=s;if(o){throw new l("unsupported opts.agent. Did you mean opts.client?")}return e.call(A,{...s,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:s.method||(s.body?"PUT":"GET")},r)}}e.exports.setGlobalDispatcher=B;e.exports.getGlobalDispatcher=m;if(c.nodeMajor>16||c.nodeMajor===16&&c.nodeMinor>=8){let t=null;e.exports.fetch=async function fetch(e){if(!t){t=s(8802).fetch}try{return await t(...arguments)}catch(e){if(typeof e==="object"){Error.captureStackTrace(e,this)}throw e}};e.exports.Headers=s(1855).Headers;e.exports.Response=s(3950).Response;e.exports.Request=s(6453).Request;e.exports.FormData=s(9425).FormData;e.exports.File=s(5506).File;e.exports.FileReader=s(929).FileReader;const{setGlobalOrigin:r,getGlobalOrigin:o}=s(7011);e.exports.setGlobalOrigin=r;e.exports.getGlobalOrigin=o;const{CacheStorage:A}=s(4082);const{kConstruct:n}=s(6648);e.exports.caches=new A(n)}if(c.nodeMajor>=16){const{deleteCookie:t,getCookies:r,getSetCookies:o,setCookie:A}=s(9738);e.exports.deleteCookie=t;e.exports.getCookies=r;e.exports.getSetCookies=o;e.exports.setCookie=A;const{parseMIMEType:n,serializeAMimeType:i}=s(5958);e.exports.parseMIMEType=n;e.exports.serializeAMimeType=i}if(c.nodeMajor>=18&&w){const{WebSocket:t}=s(1986);e.exports.WebSocket=t}e.exports.request=makeDispatcher(u.request);e.exports.stream=makeDispatcher(u.stream);e.exports.pipeline=makeDispatcher(u.pipeline);e.exports.connect=makeDispatcher(u.connect);e.exports.upgrade=makeDispatcher(u.upgrade);e.exports.MockClient=g;e.exports.MockPool=h;e.exports.MockAgent=d;e.exports.mockErrors=E},8840:(e,t,s)=>{const{InvalidArgumentError:r}=s(2366);const{kClients:o,kRunning:A,kClose:n,kDestroy:i,kDispatch:a,kInterceptors:c}=s(3932);const l=s(8757);const u=s(780);const p=s(1735);const g=s(7497);const d=s(3167);const{WeakRef:h,FinalizationRegistry:E}=s(5285)();const C=Symbol("onConnect");const Q=Symbol("onDisconnect");const m=Symbol("onConnectionError");const B=Symbol("maxRedirections");const I=Symbol("onDrain");const b=Symbol("factory");const y=Symbol("finalizer");const w=Symbol("options");function defaultFactory(e,t){return t&&t.connections===1?new p(e,t):new u(e,t)}class Agent extends l{constructor({factory:e=defaultFactory,maxRedirections:t=0,connect:s,...A}={}){super();if(typeof e!=="function"){throw new r("factory must be a function.")}if(s!=null&&typeof s!=="function"&&typeof s!=="object"){throw new r("connect must be a function or an object")}if(!Number.isInteger(t)||t<0){throw new r("maxRedirections must be a positive number")}if(s&&typeof s!=="function"){s={...s}}this[c]=A.interceptors&&A.interceptors.Agent&&Array.isArray(A.interceptors.Agent)?A.interceptors.Agent:[d({maxRedirections:t})];this[w]={...g.deepClone(A),connect:s};this[w].interceptors=A.interceptors?{...A.interceptors}:undefined;this[B]=t;this[b]=e;this[o]=new Map;this[y]=new E((e=>{const t=this[o].get(e);if(t!==undefined&&t.deref()===undefined){this[o].delete(e)}}));const n=this;this[I]=(e,t)=>{n.emit("drain",e,[n,...t])};this[C]=(e,t)=>{n.emit("connect",e,[n,...t])};this[Q]=(e,t,s)=>{n.emit("disconnect",e,[n,...t],s)};this[m]=(e,t,s)=>{n.emit("connectionError",e,[n,...t],s)}}get[A](){let e=0;for(const t of this[o].values()){const s=t.deref();if(s){e+=s[A]}}return e}[a](e,t){let s;if(e.origin&&(typeof e.origin==="string"||e.origin instanceof URL)){s=String(e.origin)}else{throw new r("opts.origin must be a non-empty string or URL.")}const A=this[o].get(s);let n=A?A.deref():null;if(!n){n=this[b](e.origin,this[w]).on("drain",this[I]).on("connect",this[C]).on("disconnect",this[Q]).on("connectionError",this[m]);this[o].set(s,new h(n));this[y].register(n,s)}return n.dispatch(e,t)}async[n](){const e=[];for(const t of this[o].values()){const s=t.deref();if(s){e.push(s.close())}}await Promise.all(e)}async[i](e){const t=[];for(const s of this[o].values()){const r=s.deref();if(r){t.push(r.destroy(e))}}await Promise.all(t)}}e.exports=Agent},8949:(e,t,s)=>{const{addAbortListener:r}=s(7497);const{RequestAbortedError:o}=s(2366);const A=Symbol("kListener");const n=Symbol("kSignal");function abort(e){if(e.abort){e.abort()}else{e.onError(new o)}}function addSignal(e,t){e[n]=null;e[A]=null;if(!t){return}if(t.aborted){abort(e);return}e[n]=t;e[A]=()=>{abort(e)};r(e[n],e[A])}function removeSignal(e){if(!e[n]){return}if("removeEventListener"in e[n]){e[n].removeEventListener("abort",e[A])}else{e[n].removeListener("abort",e[A])}e[n]=null;e[A]=null}e.exports={addSignal:addSignal,removeSignal:removeSignal}},6589:(e,t,s)=>{const{AsyncResource:r}=s(852);const{InvalidArgumentError:o,RequestAbortedError:A,SocketError:n}=s(2366);const i=s(7497);const{addSignal:a,removeSignal:c}=s(8949);class ConnectHandler extends r{constructor(e,t){if(!e||typeof e!=="object"){throw new o("invalid opts")}if(typeof t!=="function"){throw new o("invalid callback")}const{signal:s,opaque:r,responseHeaders:A}=e;if(s&&typeof s.on!=="function"&&typeof s.addEventListener!=="function"){throw new o("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=r||null;this.responseHeaders=A||null;this.callback=t;this.abort=null;a(this,s)}onConnect(e,t){if(!this.callback){throw new A}this.abort=e;this.context=t}onHeaders(){throw new n("bad connect",null)}onUpgrade(e,t,s){const{callback:r,opaque:o,context:A}=this;c(this);this.callback=null;let n=t;if(n!=null){n=this.responseHeaders==="raw"?i.parseRawHeaders(t):i.parseHeaders(t)}this.runInAsyncScope(r,null,null,{statusCode:e,headers:n,socket:s,opaque:o,context:A})}onError(e){const{callback:t,opaque:s}=this;c(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:s})}))}}}function connect(e,t){if(t===undefined){return new Promise(((t,s)=>{connect.call(this,e,((e,r)=>e?s(e):t(r)))}))}try{const s=new ConnectHandler(e,t);this.dispatch({...e,method:"CONNECT"},s)}catch(s){if(typeof t!=="function"){throw s}const r=e&&e.opaque;queueMicrotask((()=>t(s,{opaque:r})))}}e.exports=connect},6970:(e,t,s)=>{const{Readable:r,Duplex:o,PassThrough:A}=s(2781);const{InvalidArgumentError:n,InvalidReturnValueError:i,RequestAbortedError:a}=s(2366);const c=s(7497);const{AsyncResource:l}=s(852);const{addSignal:u,removeSignal:p}=s(8949);const g=s(9491);const d=Symbol("resume");class PipelineRequest extends r{constructor(){super({autoDestroy:true});this[d]=null}_read(){const{[d]:e}=this;if(e){this[d]=null;e()}}_destroy(e,t){this._read();t(e)}}class PipelineResponse extends r{constructor(e){super({autoDestroy:true});this[d]=e}_read(){this[d]()}_destroy(e,t){if(!e&&!this._readableState.endEmitted){e=new a}t(e)}}class PipelineHandler extends l{constructor(e,t){if(!e||typeof e!=="object"){throw new n("invalid opts")}if(typeof t!=="function"){throw new n("invalid handler")}const{signal:s,method:r,opaque:A,onInfo:i,responseHeaders:l}=e;if(s&&typeof s.on!=="function"&&typeof s.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}if(r==="CONNECT"){throw new n("invalid method")}if(i&&typeof i!=="function"){throw new n("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=A||null;this.responseHeaders=l||null;this.handler=t;this.abort=null;this.context=null;this.onInfo=i||null;this.req=(new PipelineRequest).on("error",c.nop);this.ret=new o({readableObjectMode:e.objectMode,autoDestroy:true,read:()=>{const{body:e}=this;if(e&&e.resume){e.resume()}},write:(e,t,s)=>{const{req:r}=this;if(r.push(e,t)||r._readableState.destroyed){s()}else{r[d]=s}},destroy:(e,t)=>{const{body:s,req:r,res:o,ret:A,abort:n}=this;if(!e&&!A._readableState.endEmitted){e=new a}if(n&&e){n()}c.destroy(s,e);c.destroy(r,e);c.destroy(o,e);p(this);t(e)}}).on("prefinish",(()=>{const{req:e}=this;e.push(null)}));this.res=null;u(this,s)}onConnect(e,t){const{ret:s,res:r}=this;g(!r,"pipeline cannot be retried");if(s.destroyed){throw new a}this.abort=e;this.context=t}onHeaders(e,t,s){const{opaque:r,handler:o,context:A}=this;if(e<200){if(this.onInfo){const s=this.responseHeaders==="raw"?c.parseRawHeaders(t):c.parseHeaders(t);this.onInfo({statusCode:e,headers:s})}return}this.res=new PipelineResponse(s);let n;try{this.handler=null;const s=this.responseHeaders==="raw"?c.parseRawHeaders(t):c.parseHeaders(t);n=this.runInAsyncScope(o,null,{statusCode:e,headers:s,opaque:r,body:this.res,context:A})}catch(e){this.res.on("error",c.nop);throw e}if(!n||typeof n.on!=="function"){throw new i("expected Readable")}n.on("data",(e=>{const{ret:t,body:s}=this;if(!t.push(e)&&s.pause){s.pause()}})).on("error",(e=>{const{ret:t}=this;c.destroy(t,e)})).on("end",(()=>{const{ret:e}=this;e.push(null)})).on("close",(()=>{const{ret:e}=this;if(!e._readableState.ended){c.destroy(e,new a)}}));this.body=n}onData(e){const{res:t}=this;return t.push(e)}onComplete(e){const{res:t}=this;t.push(null)}onError(e){const{ret:t}=this;this.handler=null;c.destroy(t,e)}}function pipeline(e,t){try{const s=new PipelineHandler(e,t);this.dispatch({...e,body:s.req},s);return s.ret}catch(e){return(new A).destroy(e)}}e.exports=pipeline},8859:(e,t,s)=>{const r=s(2086);const{InvalidArgumentError:o,RequestAbortedError:A}=s(2366);const n=s(7497);const{getResolveErrorBodyCallback:i}=s(6017);const{AsyncResource:a}=s(852);const{addSignal:c,removeSignal:l}=s(8949);class RequestHandler extends a{constructor(e,t){if(!e||typeof e!=="object"){throw new o("invalid opts")}const{signal:s,method:r,opaque:A,body:i,onInfo:a,responseHeaders:l,throwOnError:u,highWaterMark:p}=e;try{if(typeof t!=="function"){throw new o("invalid callback")}if(p&&(typeof p!=="number"||p<0)){throw new o("invalid highWaterMark")}if(s&&typeof s.on!=="function"&&typeof s.addEventListener!=="function"){throw new o("signal must be an EventEmitter or EventTarget")}if(r==="CONNECT"){throw new o("invalid method")}if(a&&typeof a!=="function"){throw new o("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(e){if(n.isStream(i)){n.destroy(i.on("error",n.nop),e)}throw e}this.responseHeaders=l||null;this.opaque=A||null;this.callback=t;this.res=null;this.abort=null;this.body=i;this.trailers={};this.context=null;this.onInfo=a||null;this.throwOnError=u;this.highWaterMark=p;if(n.isStream(i)){i.on("error",(e=>{this.onError(e)}))}c(this,s)}onConnect(e,t){if(!this.callback){throw new A}this.abort=e;this.context=t}onHeaders(e,t,s,o){const{callback:A,opaque:a,abort:c,context:l,responseHeaders:u,highWaterMark:p}=this;const g=u==="raw"?n.parseRawHeaders(t):n.parseHeaders(t);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:g})}return}const d=u==="raw"?n.parseHeaders(t):g;const h=d["content-type"];const E=new r({resume:s,abort:c,contentType:h,highWaterMark:p});this.callback=null;this.res=E;if(A!==null){if(this.throwOnError&&e>=400){this.runInAsyncScope(i,null,{callback:A,body:E,contentType:h,statusCode:e,statusMessage:o,headers:g})}else{this.runInAsyncScope(A,null,null,{statusCode:e,headers:g,trailers:this.trailers,opaque:a,body:E,context:l})}}}onData(e){const{res:t}=this;return t.push(e)}onComplete(e){const{res:t}=this;l(this);n.parseHeaders(e,this.trailers);t.push(null)}onError(e){const{res:t,callback:s,body:r,opaque:o}=this;l(this);if(s){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(s,null,e,{opaque:o})}))}if(t){this.res=null;queueMicrotask((()=>{n.destroy(t,e)}))}if(r){this.body=null;n.destroy(r,e)}}}function request(e,t){if(t===undefined){return new Promise(((t,s)=>{request.call(this,e,((e,r)=>e?s(e):t(r)))}))}try{this.dispatch(e,new RequestHandler(e,t))}catch(s){if(typeof t!=="function"){throw s}const r=e&&e.opaque;queueMicrotask((()=>t(s,{opaque:r})))}}e.exports=request;e.exports.RequestHandler=RequestHandler},4336:(e,t,s)=>{const{finished:r,PassThrough:o}=s(2781);const{InvalidArgumentError:A,InvalidReturnValueError:n,RequestAbortedError:i}=s(2366);const a=s(7497);const{getResolveErrorBodyCallback:c}=s(6017);const{AsyncResource:l}=s(852);const{addSignal:u,removeSignal:p}=s(8949);class StreamHandler extends l{constructor(e,t,s){if(!e||typeof e!=="object"){throw new A("invalid opts")}const{signal:r,method:o,opaque:n,body:i,onInfo:c,responseHeaders:l,throwOnError:p}=e;try{if(typeof s!=="function"){throw new A("invalid callback")}if(typeof t!=="function"){throw new A("invalid factory")}if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new A("signal must be an EventEmitter or EventTarget")}if(o==="CONNECT"){throw new A("invalid method")}if(c&&typeof c!=="function"){throw new A("invalid onInfo callback")}super("UNDICI_STREAM")}catch(e){if(a.isStream(i)){a.destroy(i.on("error",a.nop),e)}throw e}this.responseHeaders=l||null;this.opaque=n||null;this.factory=t;this.callback=s;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=i;this.onInfo=c||null;this.throwOnError=p||false;if(a.isStream(i)){i.on("error",(e=>{this.onError(e)}))}u(this,r)}onConnect(e,t){if(!this.callback){throw new i}this.abort=e;this.context=t}onHeaders(e,t,s,A){const{factory:i,opaque:l,context:u,callback:p,responseHeaders:g}=this;const d=g==="raw"?a.parseRawHeaders(t):a.parseHeaders(t);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:d})}return}this.factory=null;let h;if(this.throwOnError&&e>=400){const s=g==="raw"?a.parseHeaders(t):d;const r=s["content-type"];h=new o;this.callback=null;this.runInAsyncScope(c,null,{callback:p,body:h,contentType:r,statusCode:e,statusMessage:A,headers:d})}else{if(i===null){return}h=this.runInAsyncScope(i,null,{statusCode:e,headers:d,opaque:l,context:u});if(!h||typeof h.write!=="function"||typeof h.end!=="function"||typeof h.on!=="function"){throw new n("expected Writable")}r(h,{readable:false},(e=>{const{callback:t,res:s,opaque:r,trailers:o,abort:A}=this;this.res=null;if(e||!s.readable){a.destroy(s,e)}this.callback=null;this.runInAsyncScope(t,null,e||null,{opaque:r,trailers:o});if(e){A()}}))}h.on("drain",s);this.res=h;const E=h.writableNeedDrain!==undefined?h.writableNeedDrain:h._writableState&&h._writableState.needDrain;return E!==true}onData(e){const{res:t}=this;return t?t.write(e):true}onComplete(e){const{res:t}=this;p(this);if(!t){return}this.trailers=a.parseHeaders(e);t.end()}onError(e){const{res:t,callback:s,opaque:r,body:o}=this;p(this);this.factory=null;if(t){this.res=null;a.destroy(t,e)}else if(s){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(s,null,e,{opaque:r})}))}if(o){this.body=null;a.destroy(o,e)}}}function stream(e,t,s){if(s===undefined){return new Promise(((s,r)=>{stream.call(this,e,t,((e,t)=>e?r(e):s(t)))}))}try{this.dispatch(e,new StreamHandler(e,t,s))}catch(t){if(typeof s!=="function"){throw t}const r=e&&e.opaque;queueMicrotask((()=>s(t,{opaque:r})))}}e.exports=stream},6458:(e,t,s)=>{const{InvalidArgumentError:r,RequestAbortedError:o,SocketError:A}=s(2366);const{AsyncResource:n}=s(852);const i=s(7497);const{addSignal:a,removeSignal:c}=s(8949);const l=s(9491);class UpgradeHandler extends n{constructor(e,t){if(!e||typeof e!=="object"){throw new r("invalid opts")}if(typeof t!=="function"){throw new r("invalid callback")}const{signal:s,opaque:o,responseHeaders:A}=e;if(s&&typeof s.on!=="function"&&typeof s.addEventListener!=="function"){throw new r("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders=A||null;this.opaque=o||null;this.callback=t;this.abort=null;this.context=null;a(this,s)}onConnect(e,t){if(!this.callback){throw new o}this.abort=e;this.context=null}onHeaders(){throw new A("bad upgrade",null)}onUpgrade(e,t,s){const{callback:r,opaque:o,context:A}=this;l.strictEqual(e,101);c(this);this.callback=null;const n=this.responseHeaders==="raw"?i.parseRawHeaders(t):i.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:s,opaque:o,context:A})}onError(e){const{callback:t,opaque:s}=this;c(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:s})}))}}}function upgrade(e,t){if(t===undefined){return new Promise(((t,s)=>{upgrade.call(this,e,((e,r)=>e?s(e):t(r)))}))}try{const s=new UpgradeHandler(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},s)}catch(s){if(typeof t!=="function"){throw s}const r=e&&e.opaque;queueMicrotask((()=>t(s,{opaque:r})))}}e.exports=upgrade},6499:(e,t,s)=>{e.exports.request=s(8859);e.exports.stream=s(4336);e.exports.pipeline=s(6970);e.exports.upgrade=s(6458);e.exports.connect=s(6589)},2086:(e,t,s)=>{const r=s(9491);const{Readable:o}=s(2781);const{RequestAbortedError:A,NotSupportedError:n,InvalidArgumentError:i}=s(2366);const a=s(7497);const{ReadableStreamFrom:c,toUSVString:l}=s(7497);let u;const p=Symbol("kConsume");const g=Symbol("kReading");const d=Symbol("kBody");const h=Symbol("abort");const E=Symbol("kContentType");const noop=()=>{};e.exports=class BodyReadable extends o{constructor({resume:e,abort:t,contentType:s="",highWaterMark:r=64*1024}){super({autoDestroy:true,read:e,highWaterMark:r});this._readableState.dataEmitted=false;this[h]=t;this[p]=null;this[d]=null;this[E]=s;this[g]=false}destroy(e){if(this.destroyed){return this}if(!e&&!this._readableState.endEmitted){e=new A}if(e){this[h]()}return super.destroy(e)}emit(e,...t){if(e==="data"){this._readableState.dataEmitted=true}else if(e==="error"){this._readableState.errorEmitted=true}return super.emit(e,...t)}on(e,...t){if(e==="data"||e==="readable"){this[g]=true}return super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){const s=super.off(e,...t);if(e==="data"||e==="readable"){this[g]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return s}removeListener(e,...t){return this.off(e,...t)}push(e){if(this[p]&&e!==null&&this.readableLength===0){consumePush(this[p],e);return this[g]?super.push(e):true}return super.push(e)}async text(){return consume(this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new n}get bodyUsed(){return a.isDisturbed(this)}get body(){if(!this[d]){this[d]=c(this);if(this[p]){this[d].getReader();r(this[d].locked)}}return this[d]}dump(e){let t=e&&Number.isFinite(e.limit)?e.limit:262144;const s=e&&e.signal;if(s){try{if(typeof s!=="object"||!("aborted"in s)){throw new i("signal must be an AbortSignal")}a.throwIfAborted(s)}catch(e){return Promise.reject(e)}}if(this.closed){return Promise.resolve(null)}return new Promise(((e,r)=>{const o=s?a.addAbortListener(s,(()=>{this.destroy()})):noop;this.on("close",(function(){o();if(s&&s.aborted){r(s.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"}))}else{e(null)}})).on("error",noop).on("data",(function(e){t-=e.length;if(t<=0){this.destroy()}})).resume()}))}};function isLocked(e){return e[d]&&e[d].locked===true||e[p]}function isUnusable(e){return a.isDisturbed(e)||isLocked(e)}async function consume(e,t){if(isUnusable(e)){throw new TypeError("unusable")}r(!e[p]);return new Promise(((s,r)=>{e[p]={type:t,stream:e,resolve:s,reject:r,length:0,body:[]};e.on("error",(function(e){consumeFinish(this[p],e)})).on("close",(function(){if(this[p].body!==null){consumeFinish(this[p],new A)}}));process.nextTick(consumeStart,e[p])}))}function consumeStart(e){if(e.body===null){return}const{_readableState:t}=e.stream;for(const s of t.buffer){consumePush(e,s)}if(t.endEmitted){consumeEnd(this[p])}else{e.stream.on("end",(function(){consumeEnd(this[p])}))}e.stream.resume();while(e.stream.read()!=null){}}function consumeEnd(e){const{type:t,body:r,resolve:o,stream:A,length:n}=e;try{if(t==="text"){o(l(Buffer.concat(r)))}else if(t==="json"){o(JSON.parse(Buffer.concat(r)))}else if(t==="arrayBuffer"){const e=new Uint8Array(n);let t=0;for(const s of r){e.set(s,t);t+=s.byteLength}o(e.buffer)}else if(t==="blob"){if(!u){u=s(4300).Blob}o(new u(r,{type:A[E]}))}consumeFinish(e)}catch(e){A.destroy(e)}}function consumePush(e,t){e.length+=t.length;e.body.push(t)}function consumeFinish(e,t){if(e.body===null){return}if(t){e.reject(t)}else{e.resolve()}e.type=null;e.stream=null;e.resolve=null;e.reject=null;e.length=0;e.body=null}},6017:(e,t,s)=>{const r=s(9491);const{ResponseStatusCodeError:o}=s(2366);const{toUSVString:A}=s(7497);async function getResolveErrorBodyCallback({callback:e,body:t,contentType:s,statusCode:n,statusMessage:i,headers:a}){r(t);let c=[];let l=0;for await(const e of t){c.push(e);l+=e.length;if(l>128*1024){c=null;break}}if(n===204||!s||!c){process.nextTick(e,new o(`Response status code ${n}${i?`: ${i}`:""}`,n,a));return}try{if(s.startsWith("application/json")){const t=JSON.parse(A(Buffer.concat(c)));process.nextTick(e,new o(`Response status code ${n}${i?`: ${i}`:""}`,n,a,t));return}if(s.startsWith("text/")){const t=A(Buffer.concat(c));process.nextTick(e,new o(`Response status code ${n}${i?`: ${i}`:""}`,n,a,t));return}}catch(e){}process.nextTick(e,new o(`Response status code ${n}${i?`: ${i}`:""}`,n,a))}e.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},6318:(e,t,s)=>{const{BalancedPoolMissingUpstreamError:r,InvalidArgumentError:o}=s(2366);const{PoolBase:A,kClients:n,kNeedDrain:i,kAddClient:a,kRemoveClient:c,kGetDispatcher:l}=s(4414);const u=s(780);const{kUrl:p,kInterceptors:g}=s(3932);const{parseOrigin:d}=s(7497);const h=Symbol("factory");const E=Symbol("options");const C=Symbol("kGreatestCommonDivisor");const Q=Symbol("kCurrentWeight");const m=Symbol("kIndex");const B=Symbol("kWeight");const I=Symbol("kMaxWeightPerServer");const b=Symbol("kErrorPenalty");function getGreatestCommonDivisor(e,t){if(t===0)return e;return getGreatestCommonDivisor(t,e%t)}function defaultFactory(e,t){return new u(e,t)}class BalancedPool extends A{constructor(e=[],{factory:t=defaultFactory,...s}={}){super();this[E]=s;this[m]=-1;this[Q]=0;this[I]=this[E].maxWeightPerServer||100;this[b]=this[E].errorPenalty||15;if(!Array.isArray(e)){e=[e]}if(typeof t!=="function"){throw new o("factory must be a function.")}this[g]=s.interceptors&&s.interceptors.BalancedPool&&Array.isArray(s.interceptors.BalancedPool)?s.interceptors.BalancedPool:[];this[h]=t;for(const t of e){this.addUpstream(t)}this._updateBalancedPoolStats()}addUpstream(e){const t=d(e).origin;if(this[n].find((e=>e[p].origin===t&&e.closed!==true&&e.destroyed!==true))){return this}const s=this[h](t,Object.assign({},this[E]));this[a](s);s.on("connect",(()=>{s[B]=Math.min(this[I],s[B]+this[b])}));s.on("connectionError",(()=>{s[B]=Math.max(1,s[B]-this[b]);this._updateBalancedPoolStats()}));s.on("disconnect",((...e)=>{const t=e[2];if(t&&t.code==="UND_ERR_SOCKET"){s[B]=Math.max(1,s[B]-this[b]);this._updateBalancedPoolStats()}}));for(const e of this[n]){e[B]=this[I]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[C]=this[n].map((e=>e[B])).reduce(getGreatestCommonDivisor,0)}removeUpstream(e){const t=d(e).origin;const s=this[n].find((e=>e[p].origin===t&&e.closed!==true&&e.destroyed!==true));if(s){this[c](s)}return this}get upstreams(){return this[n].filter((e=>e.closed!==true&&e.destroyed!==true)).map((e=>e[p].origin))}[l](){if(this[n].length===0){throw new r}const e=this[n].find((e=>!e[i]&&e.closed!==true&&e.destroyed!==true));if(!e){return}const t=this[n].map((e=>e[i])).reduce(((e,t)=>e&&t),true);if(t){return}let s=0;let o=this[n].findIndex((e=>!e[i]));while(s++this[n][o][B]&&!e[i]){o=this[m]}if(this[m]===0){this[Q]=this[Q]-this[C];if(this[Q]<=0){this[Q]=this[I]}}if(e[B]>=this[Q]&&!e[i]){return e}}this[Q]=this[n][o][B];this[m]=o;return this[n][o]}}e.exports=BalancedPool},2028:(e,t,s)=>{const{kConstruct:r}=s(6648);const{urlEquals:o,fieldValues:A}=s(3651);const{kEnumerableProperty:n,isDisturbed:i}=s(7497);const{kHeadersList:a}=s(3932);const{webidl:c}=s(9111);const{Response:l,cloneResponse:u}=s(3950);const{Request:p}=s(6453);const{kState:g,kHeaders:d,kGuard:h,kRealm:E}=s(5376);const{fetching:C}=s(8802);const{urlIsHttpHttpsScheme:Q,createDeferredPromise:m,readAllBytes:B}=s(5496);const I=s(9491);const{getGlobalDispatcher:b}=s(2899);class Cache{#e;constructor(){if(arguments[0]!==r){c.illegalConstructor()}this.#e=arguments[1]}async match(e,t={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.match"});e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);const s=await this.matchAll(e,t);if(s.length===0){return}return s[0]}async matchAll(e=undefined,t={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);let s=null;if(e!==undefined){if(e instanceof p){s=e[g];if(s.method!=="GET"&&!t.ignoreMethod){return[]}}else if(typeof e==="string"){s=new p(e)[g]}}const r=[];if(e===undefined){for(const e of this.#e){r.push(e[1])}}else{const e=this.#t(s,t);for(const t of e){r.push(t[1])}}const o=[];for(const e of r){const t=new l(e.body?.source??null);const s=t[g].body;t[g]=e;t[g].body=s;t[d][a]=e.headersList;t[d][h]="immutable";o.push(t)}return Object.freeze(o)}async add(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.add"});e=c.converters.RequestInfo(e);const t=[e];const s=this.addAll(t);return await s}async addAll(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});e=c.converters["sequence"](e);const t=[];const s=[];for(const t of e){if(typeof t==="string"){continue}const e=t[g];if(!Q(e.url)||e.method!=="GET"){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const r=[];for(const o of e){const e=new p(o)[g];if(!Q(e.url)){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}e.initiator="fetch";e.destination="subresource";s.push(e);const n=m();r.push(C({request:e,dispatcher:b(),processResponse(e){if(e.type==="error"||e.status===206||e.status<200||e.status>299){n.reject(c.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(e.headersList.contains("vary")){const t=A(e.headersList.get("vary"));for(const e of t){if(e==="*"){n.reject(c.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const e of r){e.abort()}return}}}},processResponseEndOfBody(e){if(e.aborted){n.reject(new DOMException("aborted","AbortError"));return}n.resolve(e)}}));t.push(n.promise)}const o=Promise.all(t);const n=await o;const i=[];let a=0;for(const e of n){const t={type:"put",request:s[a],response:e};i.push(t);a++}const l=m();let u=null;try{this.#s(i)}catch(e){u=e}queueMicrotask((()=>{if(u===null){l.resolve(undefined)}else{l.reject(u)}}));return l.promise}async put(e,t){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,2,{header:"Cache.put"});e=c.converters.RequestInfo(e);t=c.converters.Response(t);let s=null;if(e instanceof p){s=e[g]}else{s=new p(e)[g]}if(!Q(s.url)||s.method!=="GET"){throw c.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"})}const r=t[g];if(r.status===206){throw c.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(r.headersList.contains("vary")){const e=A(r.headersList.get("vary"));for(const t of e){if(t==="*"){throw c.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(r.body&&(i(r.body.stream)||r.body.stream.locked)){throw c.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const o=u(r);const n=m();if(r.body!=null){const e=r.body.stream;const t=e.getReader();B(t).then(n.resolve,n.reject)}else{n.resolve(undefined)}const a=[];const l={type:"put",request:s,response:o};a.push(l);const d=await n.promise;if(o.body!=null){o.body.source=d}const h=m();let E=null;try{this.#s(a)}catch(e){E=e}queueMicrotask((()=>{if(E===null){h.resolve()}else{h.reject(E)}}));return h.promise}async delete(e,t={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.delete"});e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);let s=null;if(e instanceof p){s=e[g];if(s.method!=="GET"&&!t.ignoreMethod){return false}}else{I(typeof e==="string");s=new p(e)[g]}const r=[];const o={type:"delete",request:s,options:t};r.push(o);const A=m();let n=null;let i;try{i=this.#s(r)}catch(e){n=e}queueMicrotask((()=>{if(n===null){A.resolve(!!i?.length)}else{A.reject(n)}}));return A.promise}async keys(e=undefined,t={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);let s=null;if(e!==undefined){if(e instanceof p){s=e[g];if(s.method!=="GET"&&!t.ignoreMethod){return[]}}else if(typeof e==="string"){s=new p(e)[g]}}const r=m();const o=[];if(e===undefined){for(const e of this.#e){o.push(e[0])}}else{const e=this.#t(s,t);for(const t of e){o.push(t[0])}}queueMicrotask((()=>{const e=[];for(const t of o){const s=new p("https://a");s[g]=t;s[d][a]=t.headersList;s[d][h]="immutable";s[E]=t.client;e.push(s)}r.resolve(Object.freeze(e))}));return r.promise}#s(e){const t=this.#e;const s=[...t];const r=[];const o=[];try{for(const s of e){if(s.type!=="delete"&&s.type!=="put"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'})}if(s.type==="delete"&&s.response!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"})}if(this.#t(s.request,s.options,r).length){throw new DOMException("???","InvalidStateError")}let e;if(s.type==="delete"){e=this.#t(s.request,s.options);if(e.length===0){return[]}for(const s of e){const e=t.indexOf(s);I(e!==-1);t.splice(e,1)}}else if(s.type==="put"){if(s.response==null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"})}const o=s.request;if(!Q(o.url)){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(o.method!=="GET"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(s.options!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"})}e=this.#t(s.request);for(const s of e){const e=t.indexOf(s);I(e!==-1);t.splice(e,1)}t.push([s.request,s.response]);r.push([s.request,s.response])}o.push([s.request,s.response])}return o}catch(e){this.#e.length=0;this.#e=s;throw e}}#t(e,t,s){const r=[];const o=s??this.#e;for(const s of o){const[o,A]=s;if(this.#r(e,o,A,t)){r.push(s)}}return r}#r(e,t,s=null,r){const n=new URL(e.url);const i=new URL(t.url);if(r?.ignoreSearch){i.search="";n.search=""}if(!o(n,i,true)){return false}if(s==null||r?.ignoreVary||!s.headersList.contains("vary")){return true}const a=A(s.headersList.get("vary"));for(const s of a){if(s==="*"){return false}const r=t.headersList.get(s);const o=e.headersList.get(s);if(r!==o){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:n,matchAll:n,add:n,addAll:n,put:n,delete:n,keys:n});const y=[{key:"ignoreSearch",converter:c.converters.boolean,defaultValue:false},{key:"ignoreMethod",converter:c.converters.boolean,defaultValue:false},{key:"ignoreVary",converter:c.converters.boolean,defaultValue:false}];c.converters.CacheQueryOptions=c.dictionaryConverter(y);c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...y,{key:"cacheName",converter:c.converters.DOMString}]);c.converters.Response=c.interfaceConverter(l);c.converters["sequence"]=c.sequenceConverter(c.converters.RequestInfo);e.exports={Cache:Cache}},4082:(e,t,s)=>{const{kConstruct:r}=s(6648);const{Cache:o}=s(2028);const{webidl:A}=s(9111);const{kEnumerableProperty:n}=s(7497);class CacheStorage{#o=new Map;constructor(){if(arguments[0]!==r){A.illegalConstructor()}}async match(e,t={}){A.brandCheck(this,CacheStorage);A.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});e=A.converters.RequestInfo(e);t=A.converters.MultiCacheQueryOptions(t);if(t.cacheName!=null){if(this.#o.has(t.cacheName)){const s=this.#o.get(t.cacheName);const A=new o(r,s);return await A.match(e,t)}}else{for(const s of this.#o.values()){const A=new o(r,s);const n=await A.match(e,t);if(n!==undefined){return n}}}}async has(e){A.brandCheck(this,CacheStorage);A.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});e=A.converters.DOMString(e);return this.#o.has(e)}async open(e){A.brandCheck(this,CacheStorage);A.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});e=A.converters.DOMString(e);if(this.#o.has(e)){const t=this.#o.get(e);return new o(r,t)}const t=[];this.#o.set(e,t);return new o(r,t)}async delete(e){A.brandCheck(this,CacheStorage);A.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});e=A.converters.DOMString(e);return this.#o.delete(e)}async keys(){A.brandCheck(this,CacheStorage);const e=this.#o.keys();return[...e]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:n,has:n,open:n,delete:n,keys:n});e.exports={CacheStorage:CacheStorage}},6648:(e,t,s)=>{e.exports={kConstruct:s(3932).kConstruct}},3651:(e,t,s)=>{const r=s(9491);const{URLSerializer:o}=s(5958);const{isValidHeaderName:A}=s(5496);function urlEquals(e,t,s=false){const r=o(e,s);const A=o(t,s);return r===A}function fieldValues(e){r(e!==null);const t=[];for(let s of e.split(",")){s=s.trim();if(!s.length){continue}else if(!A(s)){continue}t.push(s)}return t}e.exports={urlEquals:urlEquals,fieldValues:fieldValues}},1735:(e,t,s)=>{const r=s(9491);const o=s(1808);const A=s(3685);const{pipeline:n}=s(2781);const i=s(7497);const a=s(2882);const c=s(2896);const l=s(8757);const{RequestContentLengthMismatchError:u,ResponseContentLengthMismatchError:p,InvalidArgumentError:g,RequestAbortedError:d,HeadersTimeoutError:h,HeadersOverflowError:E,SocketError:C,InformationalError:Q,BodyTimeoutError:m,HTTPParserError:B,ResponseExceededMaxSizeError:I,ClientDestroyedError:b}=s(2366);const y=s(9218);const{kUrl:w,kReset:v,kServerName:R,kClient:k,kBusy:D,kParser:x,kConnect:F,kBlocking:S,kResuming:T,kRunning:U,kPending:N,kSize:L,kWriting:_,kQueue:M,kConnected:G,kConnecting:O,kNeedDrain:P,kNoRef:H,kKeepAliveDefaultTimeout:Y,kHostHeader:J,kPendingIdx:q,kRunningIdx:V,kError:W,kPipelining:j,kSocket:z,kKeepAliveTimeoutValue:K,kMaxHeadersSize:X,kKeepAliveMaxTimeout:Z,kKeepAliveTimeoutThreshold:$,kHeadersTimeout:ee,kBodyTimeout:te,kStrictContentLength:se,kConnector:re,kMaxRedirections:oe,kMaxRequests:Ae,kCounter:ne,kClose:ie,kDestroy:ae,kDispatch:ce,kInterceptors:le,kLocalAddress:ue,kMaxResponseSize:pe,kHTTPConnVersion:ge,kHost:de,kHTTP2Session:he,kHTTP2SessionState:Ee,kHTTP2BuildRequest:fe,kHTTP2CopyHeaders:Ce,kHTTP1BuildRequest:Qe}=s(3932);let me;try{me=s(5158)}catch{me={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:Be,HTTP2_HEADER_METHOD:Ie,HTTP2_HEADER_PATH:be,HTTP2_HEADER_SCHEME:ye,HTTP2_HEADER_CONTENT_LENGTH:we,HTTP2_HEADER_EXPECT:ve,HTTP2_HEADER_STATUS:Re}}=me;let ke=false;const De=Buffer[Symbol.species];const xe=Symbol("kClosedResolve");const Fe={};try{const e=s(7643);Fe.sendHeaders=e.channel("undici:client:sendHeaders");Fe.beforeConnect=e.channel("undici:client:beforeConnect");Fe.connectError=e.channel("undici:client:connectError");Fe.connected=e.channel("undici:client:connected")}catch{Fe.sendHeaders={hasSubscribers:false};Fe.beforeConnect={hasSubscribers:false};Fe.connectError={hasSubscribers:false};Fe.connected={hasSubscribers:false}}class Client extends l{constructor(e,{interceptors:t,maxHeaderSize:s,headersTimeout:r,socketTimeout:n,requestTimeout:a,connectTimeout:c,bodyTimeout:l,idleTimeout:u,keepAlive:p,keepAliveTimeout:d,maxKeepAliveTimeout:h,keepAliveMaxTimeout:E,keepAliveTimeoutThreshold:C,socketPath:Q,pipelining:m,tls:B,strictContentLength:I,maxCachedSessions:b,maxRedirections:v,connect:k,maxRequestsPerClient:D,localAddress:x,maxResponseSize:F,autoSelectFamily:S,autoSelectFamilyAttemptTimeout:U,allowH2:N,maxConcurrentStreams:L}={}){super();if(p!==undefined){throw new g("unsupported keepAlive, use pipelining=0 instead")}if(n!==undefined){throw new g("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(a!==undefined){throw new g("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(u!==undefined){throw new g("unsupported idleTimeout, use keepAliveTimeout instead")}if(h!==undefined){throw new g("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(s!=null&&!Number.isFinite(s)){throw new g("invalid maxHeaderSize")}if(Q!=null&&typeof Q!=="string"){throw new g("invalid socketPath")}if(c!=null&&(!Number.isFinite(c)||c<0)){throw new g("invalid connectTimeout")}if(d!=null&&(!Number.isFinite(d)||d<=0)){throw new g("invalid keepAliveTimeout")}if(E!=null&&(!Number.isFinite(E)||E<=0)){throw new g("invalid keepAliveMaxTimeout")}if(C!=null&&!Number.isFinite(C)){throw new g("invalid keepAliveTimeoutThreshold")}if(r!=null&&(!Number.isInteger(r)||r<0)){throw new g("headersTimeout must be a positive integer or zero")}if(l!=null&&(!Number.isInteger(l)||l<0)){throw new g("bodyTimeout must be a positive integer or zero")}if(k!=null&&typeof k!=="function"&&typeof k!=="object"){throw new g("connect must be a function or an object")}if(v!=null&&(!Number.isInteger(v)||v<0)){throw new g("maxRedirections must be a positive number")}if(D!=null&&(!Number.isInteger(D)||D<0)){throw new g("maxRequestsPerClient must be a positive number")}if(x!=null&&(typeof x!=="string"||o.isIP(x)===0)){throw new g("localAddress must be valid string IP address")}if(F!=null&&(!Number.isInteger(F)||F<-1)){throw new g("maxResponseSize must be a positive number")}if(U!=null&&(!Number.isInteger(U)||U<-1)){throw new g("autoSelectFamilyAttemptTimeout must be a positive number")}if(N!=null&&typeof N!=="boolean"){throw new g("allowH2 must be a valid boolean value")}if(L!=null&&(typeof L!=="number"||L<1)){throw new g("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof k!=="function"){k=y({...B,maxCachedSessions:b,allowH2:N,socketPath:Q,timeout:c,...i.nodeHasAutoSelectFamily&&S?{autoSelectFamily:S,autoSelectFamilyAttemptTimeout:U}:undefined,...k})}this[le]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[Te({maxRedirections:v})];this[w]=i.parseOrigin(e);this[re]=k;this[z]=null;this[j]=m!=null?m:1;this[X]=s||A.maxHeaderSize;this[Y]=d==null?4e3:d;this[Z]=E==null?6e5:E;this[$]=C==null?1e3:C;this[K]=this[Y];this[R]=null;this[ue]=x!=null?x:null;this[T]=0;this[P]=0;this[J]=`host: ${this[w].hostname}${this[w].port?`:${this[w].port}`:""}\r\n`;this[te]=l!=null?l:3e5;this[ee]=r!=null?r:3e5;this[se]=I==null?true:I;this[oe]=v;this[Ae]=D;this[xe]=null;this[pe]=F>-1?F:-1;this[ge]="h1";this[he]=null;this[Ee]=!N?null:{openStreams:0,maxConcurrentStreams:L!=null?L:100};this[de]=`${this[w].hostname}${this[w].port?`:${this[w].port}`:""}`;this[M]=[];this[V]=0;this[q]=0}get pipelining(){return this[j]}set pipelining(e){this[j]=e;resume(this,true)}get[N](){return this[M].length-this[q]}get[U](){return this[q]-this[V]}get[L](){return this[M].length-this[V]}get[G](){return!!this[z]&&!this[O]&&!this[z].destroyed}get[D](){const e=this[z];return e&&(e[v]||e[_]||e[S])||this[L]>=(this[j]||1)||this[N]>0}[F](e){connect(this);this.once("connect",e)}[ce](e,t){const s=e.origin||this[w].origin;const r=this[ge]==="h2"?c[fe](s,e,t):c[Qe](s,e,t);this[M].push(r);if(this[T]){}else if(i.bodyLength(r.body)==null&&i.isIterable(r.body)){this[T]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[T]&&this[P]!==2&&this[D]){this[P]=2}return this[P]<2}async[ie](){return new Promise((e=>{if(!this[L]){e(null)}else{this[xe]=e}}))}async[ae](e){return new Promise((t=>{const s=this[M].splice(this[q]);for(let t=0;t{if(this[xe]){this[xe]();this[xe]=null}t()};if(this[he]!=null){i.destroy(this[he],e);this[he]=null;this[Ee]=null}if(!this[z]){queueMicrotask(callback)}else{i.destroy(this[z].on("close",callback),e)}resume(this)}))}}function onHttp2SessionError(e){r(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[z][W]=e;onError(this[k],e)}function onHttp2FrameError(e,t,s){const r=new Q(`HTTP/2: "frameError" received - type ${e}, code ${t}`);if(s===0){this[z][W]=r;onError(this[k],r)}}function onHttp2SessionEnd(){i.destroy(this,new C("other side closed"));i.destroy(this[z],new C("other side closed"))}function onHTTP2GoAway(e){const t=this[k];const s=new Q(`HTTP/2: "GOAWAY" frame received with code ${e}`);t[z]=null;t[he]=null;if(t.destroyed){r(this[N]===0);const e=t[M].splice(t[V]);for(let t=0;t0){const e=t[M][t[V]];t[M][t[V]++]=null;errorRequest(t,e,s)}t[q]=t[V];r(t[U]===0);t.emit("disconnect",t[w],[t],s);resume(t)}const Se=s(5749);const Te=s(3167);const Ue=Buffer.alloc(0);async function lazyllhttp(){const e=process.env.JEST_WORKER_ID?s(9827):undefined;let t;try{t=await WebAssembly.compile(Buffer.from(s(7785),"base64"))}catch(r){t=await WebAssembly.compile(Buffer.from(e||s(9827),"base64"))}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(e,t,s)=>0,wasm_on_status:(e,t,s)=>{r.strictEqual(_e.ptr,e);const o=t-Oe+Me.byteOffset;return _e.onStatus(new De(Me.buffer,o,s))||0},wasm_on_message_begin:e=>{r.strictEqual(_e.ptr,e);return _e.onMessageBegin()||0},wasm_on_header_field:(e,t,s)=>{r.strictEqual(_e.ptr,e);const o=t-Oe+Me.byteOffset;return _e.onHeaderField(new De(Me.buffer,o,s))||0},wasm_on_header_value:(e,t,s)=>{r.strictEqual(_e.ptr,e);const o=t-Oe+Me.byteOffset;return _e.onHeaderValue(new De(Me.buffer,o,s))||0},wasm_on_headers_complete:(e,t,s,o)=>{r.strictEqual(_e.ptr,e);return _e.onHeadersComplete(t,Boolean(s),Boolean(o))||0},wasm_on_body:(e,t,s)=>{r.strictEqual(_e.ptr,e);const o=t-Oe+Me.byteOffset;return _e.onBody(new De(Me.buffer,o,s))||0},wasm_on_message_complete:e=>{r.strictEqual(_e.ptr,e);return _e.onMessageComplete()||0}}})}let Ne=null;let Le=lazyllhttp();Le.catch();let _e=null;let Me=null;let Ge=0;let Oe=null;const Pe=1;const He=2;const Ye=3;class Parser{constructor(e,t,{exports:s}){r(Number.isFinite(e[X])&&e[X]>0);this.llhttp=s;this.ptr=this.llhttp.llhttp_alloc(Se.TYPE.RESPONSE);this.client=e;this.socket=t;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode=null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=e[X];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=e[pe]}setTimeout(e,t){this.timeoutType=t;if(e!==this.timeoutValue){a.clearTimeout(this.timeout);if(e){this.timeout=a.setTimeout(onParserTimeout,e,this);if(this.timeout.unref){this.timeout.unref()}}else{this.timeout=null}this.timeoutValue=e}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}}resume(){if(this.socket.destroyed||!this.paused){return}r(this.ptr!=null);r(_e==null);this.llhttp.llhttp_resume(this.ptr);r(this.timeoutType===He);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||Ue);this.readMore()}readMore(){while(!this.paused&&this.ptr){const e=this.socket.read();if(e===null){break}this.execute(e)}}execute(e){r(this.ptr!=null);r(_e==null);r(!this.paused);const{socket:t,llhttp:s}=this;if(e.length>Ge){if(Oe){s.free(Oe)}Ge=Math.ceil(e.length/4096)*4096;Oe=s.malloc(Ge)}new Uint8Array(s.memory.buffer,Oe,Ge).set(e);try{let r;try{Me=e;_e=this;r=s.llhttp_execute(this.ptr,Oe,e.length)}catch(e){throw e}finally{_e=null;Me=null}const o=s.llhttp_get_error_pos(this.ptr)-Oe;if(r===Se.ERROR.PAUSED_UPGRADE){this.onUpgrade(e.slice(o))}else if(r===Se.ERROR.PAUSED){this.paused=true;t.unshift(e.slice(o))}else if(r!==Se.ERROR.OK){const t=s.llhttp_get_error_reason(this.ptr);let A="";if(t){const e=new Uint8Array(s.memory.buffer,t).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(s.memory.buffer,t,e).toString()+")"}throw new B(A,Se.ERROR[r],e.slice(o))}}catch(e){i.destroy(t,e)}}destroy(){r(this.ptr!=null);r(_e==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;a.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.paused=false}onStatus(e){this.statusText=e.toString()}onMessageBegin(){const{socket:e,client:t}=this;if(e.destroyed){return-1}const s=t[M][t[V]];if(!s){return-1}}onHeaderField(e){const t=this.headers.length;if((t&1)===0){this.headers.push(e)}else{this.headers[t-1]=Buffer.concat([this.headers[t-1],e])}this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;if((t&1)===1){this.headers.push(e);t+=1}else{this.headers[t-1]=Buffer.concat([this.headers[t-1],e])}const s=this.headers[t-2];if(s.length===10&&s.toString().toLowerCase()==="keep-alive"){this.keepAlive+=e.toString()}else if(s.length===10&&s.toString().toLowerCase()==="connection"){this.connection+=e.toString()}else if(s.length===14&&s.toString().toLowerCase()==="content-length"){this.contentLength+=e.toString()}this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e;if(this.headersSize>=this.headersMaxSize){i.destroy(this.socket,new E)}}onUpgrade(e){const{upgrade:t,client:s,socket:o,headers:A,statusCode:n}=this;r(t);const a=s[M][s[V]];r(a);r(!o.destroyed);r(o===s[z]);r(!this.paused);r(a.upgrade||a.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;r(this.headers.length%2===0);this.headers=[];this.headersSize=0;o.unshift(e);o[x].destroy();o[x]=null;o[k]=null;o[W]=null;o.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);s[z]=null;s[M][s[V]++]=null;s.emit("disconnect",s[w],[s],new Q("upgrade"));try{a.onUpgrade(n,A,o)}catch(e){i.destroy(o,e)}resume(s)}onHeadersComplete(e,t,s){const{client:o,socket:A,headers:n,statusText:a}=this;if(A.destroyed){return-1}const c=o[M][o[V]];if(!c){return-1}r(!this.upgrade);r(this.statusCode<200);if(e===100){i.destroy(A,new C("bad response",i.getSocketInfo(A)));return-1}if(t&&!c.upgrade){i.destroy(A,new C("bad upgrade",i.getSocketInfo(A)));return-1}r.strictEqual(this.timeoutType,Pe);this.statusCode=e;this.shouldKeepAlive=s||c.method==="HEAD"&&!A[v]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const e=c.bodyTimeout!=null?c.bodyTimeout:o[te];this.setTimeout(e,He)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(c.method==="CONNECT"){r(o[U]===1);this.upgrade=true;return 2}if(t){r(o[U]===1);this.upgrade=true;return 2}r(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&o[j]){const e=this.keepAlive?i.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){const t=Math.min(e-o[$],o[Z]);if(t<=0){A[v]=true}else{o[K]=t}}else{o[K]=o[Y]}}else{A[v]=true}const l=c.onHeaders(e,n,this.resume,a)===false;if(c.aborted){return-1}if(c.method==="HEAD"){return 1}if(e<200){return 1}if(A[S]){A[S]=false;resume(o)}return l?Se.ERROR.PAUSED:0}onBody(e){const{client:t,socket:s,statusCode:o,maxResponseSize:A}=this;if(s.destroyed){return-1}const n=t[M][t[V]];r(n);r.strictEqual(this.timeoutType,He);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}r(o>=200);if(A>-1&&this.bytesRead+e.length>A){i.destroy(s,new I);return-1}this.bytesRead+=e.length;if(n.onData(e)===false){return Se.ERROR.PAUSED}}onMessageComplete(){const{client:e,socket:t,statusCode:s,upgrade:o,headers:A,contentLength:n,bytesRead:a,shouldKeepAlive:c}=this;if(t.destroyed&&(!s||c)){return-1}if(o){return}const l=e[M][e[V]];r(l);r(s>=100);this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";r(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(s<200){return}if(l.method!=="HEAD"&&n&&a!==parseInt(n,10)){i.destroy(t,new p);return-1}l.onComplete(A);e[M][e[V]++]=null;if(t[_]){r.strictEqual(e[U],0);i.destroy(t,new Q("reset"));return Se.ERROR.PAUSED}else if(!c){i.destroy(t,new Q("reset"));return Se.ERROR.PAUSED}else if(t[v]&&e[U]===0){i.destroy(t,new Q("reset"));return Se.ERROR.PAUSED}else if(e[j]===1){setImmediate(resume,e)}else{resume(e)}}}function onParserTimeout(e){const{socket:t,timeoutType:s,client:o}=e;if(s===Pe){if(!t[_]||t.writableNeedDrain||o[U]>1){r(!e.paused,"cannot be paused while waiting for headers");i.destroy(t,new h)}}else if(s===He){if(!e.paused){i.destroy(t,new m)}}else if(s===Ye){r(o[U]===0&&o[K]);i.destroy(t,new Q("socket idle timeout"))}}function onSocketReadable(){const{[x]:e}=this;if(e){e.readMore()}}function onSocketError(e){const{[k]:t,[x]:s}=this;r(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(t[ge]!=="h2"){if(e.code==="ECONNRESET"&&s.statusCode&&!s.shouldKeepAlive){s.onMessageComplete();return}}this[W]=e;onError(this[k],e)}function onError(e,t){if(e[U]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){r(e[q]===e[V]);const s=e[M].splice(e[V]);for(let r=0;r0&&s.code!=="UND_ERR_INFO"){const t=e[M][e[V]];e[M][e[V]++]=null;errorRequest(e,t,s)}e[q]=e[V];r(e[U]===0);e.emit("disconnect",e[w],[e],s);resume(e)}async function connect(e){r(!e[O]);r(!e[z]);let{host:t,hostname:s,protocol:A,port:n}=e[w];if(s[0]==="["){const e=s.indexOf("]");r(e!==-1);const t=s.substring(1,e);r(o.isIP(t));s=t}e[O]=true;if(Fe.beforeConnect.hasSubscribers){Fe.beforeConnect.publish({connectParams:{host:t,hostname:s,protocol:A,port:n,servername:e[R],localAddress:e[ue]},connector:e[re]})}try{const o=await new Promise(((r,o)=>{e[re]({host:t,hostname:s,protocol:A,port:n,servername:e[R],localAddress:e[ue]},((e,t)=>{if(e){o(e)}else{r(t)}}))}));if(e.destroyed){i.destroy(o.on("error",(()=>{})),new b);return}e[O]=false;r(o);const a=o.alpnProtocol==="h2";if(a){if(!ke){ke=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const t=me.connect(e[w],{createConnection:()=>o,peerMaxConcurrentStreams:e[Ee].maxConcurrentStreams});e[ge]="h2";t[k]=e;t[z]=o;t.on("error",onHttp2SessionError);t.on("frameError",onHttp2FrameError);t.on("end",onHttp2SessionEnd);t.on("goaway",onHTTP2GoAway);t.on("close",onSocketClose);t.unref();e[he]=t;o[he]=t}else{if(!Ne){Ne=await Le;Le=null}o[H]=false;o[_]=false;o[v]=false;o[S]=false;o[x]=new Parser(e,o,Ne)}o[ne]=0;o[Ae]=e[Ae];o[k]=e;o[W]=null;o.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);e[z]=o;if(Fe.connected.hasSubscribers){Fe.connected.publish({connectParams:{host:t,hostname:s,protocol:A,port:n,servername:e[R],localAddress:e[ue]},connector:e[re],socket:o})}e.emit("connect",e[w],[e])}catch(o){if(e.destroyed){return}e[O]=false;if(Fe.connectError.hasSubscribers){Fe.connectError.publish({connectParams:{host:t,hostname:s,protocol:A,port:n,servername:e[R],localAddress:e[ue]},connector:e[re],error:o})}if(o.code==="ERR_TLS_CERT_ALTNAME_INVALID"){r(e[U]===0);while(e[N]>0&&e[M][e[q]].servername===e[R]){const t=e[M][e[q]++];errorRequest(e,t,o)}}else{onError(e,o)}e.emit("connectionError",e[w],[e],o)}resume(e)}function emitDrain(e){e[P]=0;e.emit("drain",e[w],[e])}function resume(e,t){if(e[T]===2){return}e[T]=2;_resume(e,t);e[T]=0;if(e[V]>256){e[M].splice(0,e[V]);e[q]-=e[V];e[V]=0}}function _resume(e,t){while(true){if(e.destroyed){r(e[N]===0);return}if(e[xe]&&!e[L]){e[xe]();e[xe]=null;return}const s=e[z];if(s&&!s.destroyed&&s.alpnProtocol!=="h2"){if(e[L]===0){if(!s[H]&&s.unref){s.unref();s[H]=true}}else if(s[H]&&s.ref){s.ref();s[H]=false}if(e[L]===0){if(s[x].timeoutType!==Ye){s[x].setTimeout(e[K],Ye)}}else if(e[U]>0&&s[x].statusCode<200){if(s[x].timeoutType!==Pe){const t=e[M][e[V]];const r=t.headersTimeout!=null?t.headersTimeout:e[ee];s[x].setTimeout(r,Pe)}}}if(e[D]){e[P]=2}else if(e[P]===2){if(t){e[P]=1;process.nextTick(emitDrain,e)}else{emitDrain(e)}continue}if(e[N]===0){return}if(e[U]>=(e[j]||1)){return}const o=e[M][e[q]];if(e[w].protocol==="https:"&&e[R]!==o.servername){if(e[U]>0){return}e[R]=o.servername;if(s&&s.servername!==o.servername){i.destroy(s,new Q("servername changed"));return}}if(e[O]){return}if(!s&&!e[he]){connect(e);return}if(s.destroyed||s[_]||s[v]||s[S]){return}if(e[U]>0&&!o.idempotent){return}if(e[U]>0&&(o.upgrade||o.method==="CONNECT")){return}if(e[U]>0&&i.bodyLength(o.body)!==0&&(i.isStream(o.body)||i.isAsyncIterable(o.body))){return}if(!o.aborted&&write(e,o)){e[q]++}else{e[M].splice(e[q],1)}}}function shouldSendContentLength(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function write(e,t){if(e[ge]==="h2"){writeH2(e,e[he],t);return}const{body:s,method:o,path:A,host:n,upgrade:a,headers:c,blocking:l,reset:p}=t;const g=o==="PUT"||o==="POST"||o==="PATCH";if(s&&typeof s.read==="function"){s.read(0)}const h=i.bodyLength(s);let E=h;if(E===null){E=t.contentLength}if(E===0&&!g){E=null}if(shouldSendContentLength(o)&&E>0&&t.contentLength!==null&&t.contentLength!==E){if(e[se]){errorRequest(e,t,new u);return false}process.emitWarning(new u)}const C=e[z];try{t.onConnect((s=>{if(t.aborted||t.completed){return}errorRequest(e,t,s||new d);i.destroy(C,new Q("aborted"))}))}catch(s){errorRequest(e,t,s)}if(t.aborted){return false}if(o==="HEAD"){C[v]=true}if(a||o==="CONNECT"){C[v]=true}if(p!=null){C[v]=p}if(e[Ae]&&C[ne]++>=e[Ae]){C[v]=true}if(l){C[S]=true}let m=`${o} ${A} HTTP/1.1\r\n`;if(typeof n==="string"){m+=`host: ${n}\r\n`}else{m+=e[J]}if(a){m+=`connection: upgrade\r\nupgrade: ${a}\r\n`}else if(e[j]&&!C[v]){m+="connection: keep-alive\r\n"}else{m+="connection: close\r\n"}if(c){m+=c}if(Fe.sendHeaders.hasSubscribers){Fe.sendHeaders.publish({request:t,headers:m,socket:C})}if(!s||h===0){if(E===0){C.write(`${m}content-length: 0\r\n\r\n`,"latin1")}else{r(E===null,"no body must not have content length");C.write(`${m}\r\n`,"latin1")}t.onRequestSent()}else if(i.isBuffer(s)){r(E===s.byteLength,"buffer body must have content length");C.cork();C.write(`${m}content-length: ${E}\r\n\r\n`,"latin1");C.write(s);C.uncork();t.onBodySent(s);t.onRequestSent();if(!g){C[v]=true}}else if(i.isBlobLike(s)){if(typeof s.stream==="function"){writeIterable({body:s.stream(),client:e,request:t,socket:C,contentLength:E,header:m,expectsPayload:g})}else{writeBlob({body:s,client:e,request:t,socket:C,contentLength:E,header:m,expectsPayload:g})}}else if(i.isStream(s)){writeStream({body:s,client:e,request:t,socket:C,contentLength:E,header:m,expectsPayload:g})}else if(i.isIterable(s)){writeIterable({body:s,client:e,request:t,socket:C,contentLength:E,header:m,expectsPayload:g})}else{r(false)}return true}function writeH2(e,t,s){const{body:o,method:A,path:n,host:a,upgrade:l,expectContinue:p,signal:g,headers:h}=s;let E;if(typeof h==="string")E=c[Ce](h.trim());else E=h;if(l){errorRequest(e,s,new Error("Upgrade not supported for H2"));return false}try{s.onConnect((t=>{if(s.aborted||s.completed){return}errorRequest(e,s,t||new d)}))}catch(t){errorRequest(e,s,t)}if(s.aborted){return false}let C;const m=e[Ee];E[Be]=a||e[de];E[Ie]=A;if(A==="CONNECT"){t.ref();C=t.request(E,{endStream:false,signal:g});if(C.id&&!C.pending){s.onUpgrade(null,null,C);++m.openStreams}else{C.once("ready",(()=>{s.onUpgrade(null,null,C);++m.openStreams}))}C.once("close",(()=>{m.openStreams-=1;if(m.openStreams===0)t.unref()}));return true}E[be]=n;E[ye]="https";const B=A==="PUT"||A==="POST"||A==="PATCH";if(o&&typeof o.read==="function"){o.read(0)}let I=i.bodyLength(o);if(I==null){I=s.contentLength}if(I===0||!B){I=null}if(shouldSendContentLength(A)&&I>0&&s.contentLength!=null&&s.contentLength!==I){if(e[se]){errorRequest(e,s,new u);return false}process.emitWarning(new u)}if(I!=null){r(o,"no body must not have content length");E[we]=`${I}`}t.ref();const b=A==="GET"||A==="HEAD";if(p){E[ve]="100-continue";C=t.request(E,{endStream:b,signal:g});C.once("continue",writeBodyH2)}else{C=t.request(E,{endStream:b,signal:g});writeBodyH2()}++m.openStreams;C.once("response",(e=>{const{[Re]:t,...r}=e;if(s.onHeaders(Number(t),r,C.resume.bind(C),"")===false){C.pause()}}));C.once("end",(()=>{s.onComplete([])}));C.on("data",(e=>{if(s.onData(e)===false){C.pause()}}));C.once("close",(()=>{m.openStreams-=1;if(m.openStreams===0){t.unref()}}));C.once("error",(function(t){if(e[he]&&!e[he].destroyed&&!this.closed&&!this.destroyed){m.streams-=1;i.destroy(C,t)}}));C.once("frameError",((t,r)=>{const o=new Q(`HTTP/2: "frameError" received - type ${t}, code ${r}`);errorRequest(e,s,o);if(e[he]&&!e[he].destroyed&&!this.closed&&!this.destroyed){m.streams-=1;i.destroy(C,o)}}));return true;function writeBodyH2(){if(!o){s.onRequestSent()}else if(i.isBuffer(o)){r(I===o.byteLength,"buffer body must have content length");C.cork();C.write(o);C.uncork();C.end();s.onBodySent(o);s.onRequestSent()}else if(i.isBlobLike(o)){if(typeof o.stream==="function"){writeIterable({client:e,request:s,contentLength:I,h2stream:C,expectsPayload:B,body:o.stream(),socket:e[z],header:""})}else{writeBlob({body:o,client:e,request:s,contentLength:I,expectsPayload:B,h2stream:C,header:"",socket:e[z]})}}else if(i.isStream(o)){writeStream({body:o,client:e,request:s,contentLength:I,expectsPayload:B,socket:e[z],h2stream:C,header:""})}else if(i.isIterable(o)){writeIterable({body:o,client:e,request:s,contentLength:I,expectsPayload:B,header:"",h2stream:C,socket:e[z]})}else{r(false)}}}function writeStream({h2stream:e,body:t,client:s,request:o,socket:A,contentLength:a,header:c,expectsPayload:l}){r(a!==0||s[U]===0,"stream body cannot be pipelined");if(s[ge]==="h2"){const g=n(t,e,(s=>{if(s){i.destroy(t,s);i.destroy(e,s)}else{o.onRequestSent()}}));g.on("data",onPipeData);g.once("end",(()=>{g.removeListener("data",onPipeData);i.destroy(g)}));function onPipeData(e){o.onBodySent(e)}return}let u=false;const p=new AsyncWriter({socket:A,request:o,contentLength:a,client:s,expectsPayload:l,header:c});const onData=function(e){if(u){return}try{if(!p.write(e)&&this.pause){this.pause()}}catch(e){i.destroy(this,e)}};const onDrain=function(){if(u){return}if(t.resume){t.resume()}};const onAbort=function(){if(u){return}const e=new d;queueMicrotask((()=>onFinished(e)))};const onFinished=function(e){if(u){return}u=true;r(A.destroyed||A[_]&&s[U]<=1);A.off("drain",onDrain).off("error",onFinished);t.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!e){try{p.end()}catch(t){e=t}}p.destroy(e);if(e&&(e.code!=="UND_ERR_INFO"||e.message!=="reset")){i.destroy(t,e)}else{i.destroy(t)}};t.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(t.resume){t.resume()}A.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:e,body:t,client:s,request:o,socket:A,contentLength:n,header:a,expectsPayload:c}){r(n===t.size,"blob body must have content length");const l=s[ge]==="h2";try{if(n!=null&&n!==t.size){throw new u}const r=Buffer.from(await t.arrayBuffer());if(l){e.cork();e.write(r);e.uncork()}else{A.cork();A.write(`${a}content-length: ${n}\r\n\r\n`,"latin1");A.write(r);A.uncork()}o.onBodySent(r);o.onRequestSent();if(!c){A[v]=true}resume(s)}catch(t){i.destroy(l?e:A,t)}}async function writeIterable({h2stream:e,body:t,client:s,request:o,socket:A,contentLength:n,header:i,expectsPayload:a}){r(n!==0||s[U]===0,"iterator body cannot be pipelined");let c=null;function onDrain(){if(c){const e=c;c=null;e()}}const waitForDrain=()=>new Promise(((e,t)=>{r(c===null);if(A[W]){t(A[W])}else{c=e}}));if(s[ge]==="h2"){e.on("close",onDrain).on("drain",onDrain);try{for await(const s of t){if(A[W]){throw A[W]}const t=e.write(s);o.onBodySent(s);if(!t){await waitForDrain()}}}catch(t){e.destroy(t)}finally{o.onRequestSent();e.end();e.off("close",onDrain).off("drain",onDrain)}return}A.on("close",onDrain).on("drain",onDrain);const l=new AsyncWriter({socket:A,request:o,contentLength:n,client:s,expectsPayload:a,header:i});try{for await(const e of t){if(A[W]){throw A[W]}if(!l.write(e)){await waitForDrain()}}l.end()}catch(e){l.destroy(e)}finally{A.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:e,request:t,contentLength:s,client:r,expectsPayload:o,header:A}){this.socket=e;this.request=t;this.contentLength=s;this.client=r;this.bytesWritten=0;this.expectsPayload=o;this.header=A;e[_]=true}write(e){const{socket:t,request:s,contentLength:r,client:o,bytesWritten:A,expectsPayload:n,header:i}=this;if(t[W]){throw t[W]}if(t.destroyed){return false}const a=Buffer.byteLength(e);if(!a){return true}if(r!==null&&A+a>r){if(o[se]){throw new u}process.emitWarning(new u)}t.cork();if(A===0){if(!n){t[v]=true}if(r===null){t.write(`${i}transfer-encoding: chunked\r\n`,"latin1")}else{t.write(`${i}content-length: ${r}\r\n\r\n`,"latin1")}}if(r===null){t.write(`\r\n${a.toString(16)}\r\n`,"latin1")}this.bytesWritten+=a;const c=t.write(e);t.uncork();s.onBodySent(e);if(!c){if(t[x].timeout&&t[x].timeoutType===Pe){if(t[x].timeout.refresh){t[x].timeout.refresh()}}}return c}end(){const{socket:e,contentLength:t,client:s,bytesWritten:r,expectsPayload:o,header:A,request:n}=this;n.onRequestSent();e[_]=false;if(e[W]){throw e[W]}if(e.destroyed){return}if(r===0){if(o){e.write(`${A}content-length: 0\r\n\r\n`,"latin1")}else{e.write(`${A}\r\n`,"latin1")}}else if(t===null){e.write("\r\n0\r\n\r\n","latin1")}if(t!==null&&r!==t){if(s[se]){throw new u}else{process.emitWarning(new u)}}if(e[x].timeout&&e[x].timeoutType===Pe){if(e[x].timeout.refresh){e[x].timeout.refresh()}}resume(s)}destroy(e){const{socket:t,client:s}=this;t[_]=false;if(e){r(s[U]<=1,"pipeline should only contain this request");i.destroy(t,e)}}}function errorRequest(e,t,s){try{t.onError(s);r(t.aborted)}catch(s){e.emit("error",s)}}e.exports=Client},5285:(e,t,s)=>{const{kConnected:r,kSize:o}=s(3932);class CompatWeakRef{constructor(e){this.value=e}deref(){return this.value[r]===0&&this.value[o]===0?undefined:this.value}}class CompatFinalizer{constructor(e){this.finalizer=e}register(e,t){if(e.on){e.on("disconnect",(()=>{if(e[r]===0&&e[o]===0){this.finalizer(t)}}))}}}e.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},3598:e=>{const t=1024;const s=4096;e.exports={maxAttributeValueSize:t,maxNameValuePairSize:s}},9738:(e,t,s)=>{const{parseSetCookie:r}=s(8367);const{stringify:o,getHeadersList:A}=s(7576);const{webidl:n}=s(9111);const{Headers:i}=s(1855);function getCookies(e){n.argumentLengthCheck(arguments,1,{header:"getCookies"});n.brandCheck(e,i,{strict:false});const t=e.get("cookie");const s={};if(!t){return s}for(const e of t.split(";")){const[t,...r]=e.split("=");s[t.trim()]=r.join("=")}return s}function deleteCookie(e,t,s){n.argumentLengthCheck(arguments,2,{header:"deleteCookie"});n.brandCheck(e,i,{strict:false});t=n.converters.DOMString(t);s=n.converters.DeleteCookieAttributes(s);setCookie(e,{name:t,value:"",expires:new Date(0),...s})}function getSetCookies(e){n.argumentLengthCheck(arguments,1,{header:"getSetCookies"});n.brandCheck(e,i,{strict:false});const t=A(e).cookies;if(!t){return[]}return t.map((e=>r(Array.isArray(e)?e[1]:e)))}function setCookie(e,t){n.argumentLengthCheck(arguments,2,{header:"setCookie"});n.brandCheck(e,i,{strict:false});t=n.converters.Cookie(t);const s=o(t);if(s){e.append("Set-Cookie",o(t))}}n.converters.DeleteCookieAttributes=n.dictionaryConverter([{converter:n.nullableConverter(n.converters.DOMString),key:"path",defaultValue:null},{converter:n.nullableConverter(n.converters.DOMString),key:"domain",defaultValue:null}]);n.converters.Cookie=n.dictionaryConverter([{converter:n.converters.DOMString,key:"name"},{converter:n.converters.DOMString,key:"value"},{converter:n.nullableConverter((e=>{if(typeof e==="number"){return n.converters["unsigned long long"](e)}return new Date(e)})),key:"expires",defaultValue:null},{converter:n.nullableConverter(n.converters["long long"]),key:"maxAge",defaultValue:null},{converter:n.nullableConverter(n.converters.DOMString),key:"domain",defaultValue:null},{converter:n.nullableConverter(n.converters.DOMString),key:"path",defaultValue:null},{converter:n.nullableConverter(n.converters.boolean),key:"secure",defaultValue:null},{converter:n.nullableConverter(n.converters.boolean),key:"httpOnly",defaultValue:null},{converter:n.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:n.sequenceConverter(n.converters.DOMString),key:"unparsed",defaultValue:[]}]);e.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},8367:(e,t,s)=>{const{maxNameValuePairSize:r,maxAttributeValueSize:o}=s(3598);const{isCTLExcludingHtab:A}=s(7576);const{collectASequenceOfCodePointsFast:n}=s(5958);const i=s(9491);function parseSetCookie(e){if(A(e)){return null}let t="";let s="";let o="";let i="";if(e.includes(";")){const r={position:0};t=n(";",e,r);s=e.slice(r.position)}else{t=e}if(!t.includes("=")){i=t}else{const e={position:0};o=n("=",t,e);i=t.slice(e.position+1)}o=o.trim();i=i.trim();if(o.length+i.length>r){return null}return{name:o,value:i,...parseUnparsedAttributes(s)}}function parseUnparsedAttributes(e,t={}){if(e.length===0){return t}i(e[0]===";");e=e.slice(1);let s="";if(e.includes(";")){s=n(";",e,{position:0});e=e.slice(s.length)}else{s=e;e=""}let r="";let A="";if(s.includes("=")){const e={position:0};r=n("=",s,e);A=s.slice(e.position+1)}else{r=s}r=r.trim();A=A.trim();if(A.length>o){return parseUnparsedAttributes(e,t)}const a=r.toLowerCase();if(a==="expires"){const e=new Date(A);t.expires=e}else if(a==="max-age"){const s=A.charCodeAt(0);if((s<48||s>57)&&A[0]!=="-"){return parseUnparsedAttributes(e,t)}if(!/^\d+$/.test(A)){return parseUnparsedAttributes(e,t)}const r=Number(A);t.maxAge=r}else if(a==="domain"){let e=A;if(e[0]==="."){e=e.slice(1)}e=e.toLowerCase();t.domain=e}else if(a==="path"){let e="";if(A.length===0||A[0]!=="/"){e="/"}else{e=A}t.path=e}else if(a==="secure"){t.secure=true}else if(a==="httponly"){t.httpOnly=true}else if(a==="samesite"){let e="Default";const s=A.toLowerCase();if(s.includes("none")){e="None"}if(s.includes("strict")){e="Strict"}if(s.includes("lax")){e="Lax"}t.sameSite=e}else{t.unparsed??=[];t.unparsed.push(`${r}=${A}`)}return parseUnparsedAttributes(e,t)}e.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},7576:(e,t,s)=>{const r=s(9491);const{kHeadersList:o}=s(3932);function isCTLExcludingHtab(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e>=0||e<=8||(e>=10||e<=31)||e===127){return false}}}function validateCookieName(e){for(const t of e){const e=t.charCodeAt(0);if(e<=32||e>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(e){for(const t of e){const e=t.charCodeAt(0);if(e<33||e===34||e===44||e===59||e===92||e>126){throw new Error("Invalid header value")}}}function validateCookiePath(e){for(const t of e){const e=t.charCodeAt(0);if(e<33||t===";"){throw new Error("Invalid cookie path")}}}function validateCookieDomain(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-")){throw new Error("Invalid cookie domain")}}function toIMFDate(e){if(typeof e==="number"){e=new Date(e)}const t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const r=t[e.getUTCDay()];const o=e.getUTCDate().toString().padStart(2,"0");const A=s[e.getUTCMonth()];const n=e.getUTCFullYear();const i=e.getUTCHours().toString().padStart(2,"0");const a=e.getUTCMinutes().toString().padStart(2,"0");const c=e.getUTCSeconds().toString().padStart(2,"0");return`${r}, ${o} ${A} ${n} ${i}:${a}:${c} GMT`}function validateCookieMaxAge(e){if(e<0){throw new Error("Invalid cookie max-age")}}function stringify(e){if(e.name.length===0){return null}validateCookieName(e.name);validateCookieValue(e.value);const t=[`${e.name}=${e.value}`];if(e.name.startsWith("__Secure-")){e.secure=true}if(e.name.startsWith("__Host-")){e.secure=true;e.domain=null;e.path="/"}if(e.secure){t.push("Secure")}if(e.httpOnly){t.push("HttpOnly")}if(typeof e.maxAge==="number"){validateCookieMaxAge(e.maxAge);t.push(`Max-Age=${e.maxAge}`)}if(e.domain){validateCookieDomain(e.domain);t.push(`Domain=${e.domain}`)}if(e.path){validateCookiePath(e.path);t.push(`Path=${e.path}`)}if(e.expires&&e.expires.toString()!=="Invalid Date"){t.push(`Expires=${toIMFDate(e.expires)}`)}if(e.sameSite){t.push(`SameSite=${e.sameSite}`)}for(const s of e.unparsed){if(!s.includes("=")){throw new Error("Invalid unparsed")}const[e,...r]=s.split("=");t.push(`${e.trim()}=${r.join("=")}`)}return t.join("; ")}let A;function getHeadersList(e){if(e[o]){return e[o]}if(!A){A=Object.getOwnPropertySymbols(e).find((e=>e.description==="headers list"));r(A,"Headers cannot be parsed")}const t=e[A];r(t);return t}e.exports={isCTLExcludingHtab:isCTLExcludingHtab,stringify:stringify,getHeadersList:getHeadersList}},9218:(e,t,s)=>{const r=s(1808);const o=s(9491);const A=s(7497);const{InvalidArgumentError:n,ConnectTimeoutError:i}=s(2366);let a;let c;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){c=class WeakSessionCache{constructor(e){this._maxCachedSessions=e;this._sessionCache=new Map;this._sessionRegistry=new global.FinalizationRegistry((e=>{if(this._sessionCache.size=this._maxCachedSessions){const{value:e}=this._sessionCache.keys().next();this._sessionCache.delete(e)}this._sessionCache.set(e,t)}}}function buildConnector({allowH2:e,maxCachedSessions:t,socketPath:i,timeout:l,...u}){if(t!=null&&(!Number.isInteger(t)||t<0)){throw new n("maxCachedSessions must be a positive integer or zero")}const p={path:i,...u};const g=new c(t==null?100:t);l=l==null?1e4:l;e=e!=null?e:false;return function connect({hostname:t,host:n,protocol:i,port:c,servername:u,localAddress:d,httpSocket:h},E){let C;if(i==="https:"){if(!a){a=s(4404)}u=u||p.servername||A.getServerName(n)||null;const r=u||t;const i=g.get(r)||null;o(r);C=a.connect({highWaterMark:16384,...p,servername:u,session:i,localAddress:d,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:h,port:c||443,host:t});C.on("session",(function(e){g.set(r,e)}))}else{o(!h,"httpSocket can only be sent on TLS update");C=r.connect({highWaterMark:64*1024,...p,localAddress:d,port:c||80,host:t})}if(p.keepAlive==null||p.keepAlive){const e=p.keepAliveInitialDelay===undefined?6e4:p.keepAliveInitialDelay;C.setKeepAlive(true,e)}const Q=setupTimeout((()=>onConnectTimeout(C)),l);C.setNoDelay(true).once(i==="https:"?"secureConnect":"connect",(function(){Q();if(E){const e=E;E=null;e(null,this)}})).on("error",(function(e){Q();if(E){const t=E;E=null;t(e)}}));return C}}function setupTimeout(e,t){if(!t){return()=>{}}let s=null;let r=null;const o=setTimeout((()=>{s=setImmediate((()=>{if(process.platform==="win32"){r=setImmediate((()=>e()))}else{e()}}))}),t);return()=>{clearTimeout(o);clearImmediate(s);clearImmediate(r)}}function onConnectTimeout(e){A.destroy(e,new i)}e.exports=buildConnector},2366:e=>{class UndiciError extends Error{constructor(e){super(e);this.name="UndiciError";this.code="UND_ERR"}}class ConnectTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ConnectTimeoutError);this.name="ConnectTimeoutError";this.message=e||"Connect Timeout Error";this.code="UND_ERR_CONNECT_TIMEOUT"}}class HeadersTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersTimeoutError);this.name="HeadersTimeoutError";this.message=e||"Headers Timeout Error";this.code="UND_ERR_HEADERS_TIMEOUT"}}class HeadersOverflowError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersOverflowError);this.name="HeadersOverflowError";this.message=e||"Headers Overflow Error";this.code="UND_ERR_HEADERS_OVERFLOW"}}class BodyTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,BodyTimeoutError);this.name="BodyTimeoutError";this.message=e||"Body Timeout Error";this.code="UND_ERR_BODY_TIMEOUT"}}class ResponseStatusCodeError extends UndiciError{constructor(e,t,s,r){super(e);Error.captureStackTrace(this,ResponseStatusCodeError);this.name="ResponseStatusCodeError";this.message=e||"Response Status Code Error";this.code="UND_ERR_RESPONSE_STATUS_CODE";this.body=r;this.status=t;this.statusCode=t;this.headers=s}}class InvalidArgumentError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidArgumentError);this.name="InvalidArgumentError";this.message=e||"Invalid Argument Error";this.code="UND_ERR_INVALID_ARG"}}class InvalidReturnValueError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidReturnValueError);this.name="InvalidReturnValueError";this.message=e||"Invalid Return Value Error";this.code="UND_ERR_INVALID_RETURN_VALUE"}}class RequestAbortedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestAbortedError);this.name="AbortError";this.message=e||"Request aborted";this.code="UND_ERR_ABORTED"}}class InformationalError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InformationalError);this.name="InformationalError";this.message=e||"Request information";this.code="UND_ERR_INFO"}}class RequestContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestContentLengthMismatchError);this.name="RequestContentLengthMismatchError";this.message=e||"Request body length does not match content-length header";this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}}class ResponseContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseContentLengthMismatchError);this.name="ResponseContentLengthMismatchError";this.message=e||"Response body length does not match content-length header";this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}}class ClientDestroyedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientDestroyedError);this.name="ClientDestroyedError";this.message=e||"The client is destroyed";this.code="UND_ERR_DESTROYED"}}class ClientClosedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientClosedError);this.name="ClientClosedError";this.message=e||"The client is closed";this.code="UND_ERR_CLOSED"}}class SocketError extends UndiciError{constructor(e,t){super(e);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=e||"Socket error";this.code="UND_ERR_SOCKET";this.socket=t}}class NotSupportedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="NotSupportedError";this.message=e||"Not supported error";this.code="UND_ERR_NOT_SUPPORTED"}}class BalancedPoolMissingUpstreamError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="MissingUpstreamError";this.message=e||"No upstream has been added to the BalancedPool";this.code="UND_ERR_BPL_MISSING_UPSTREAM"}}class HTTPParserError extends Error{constructor(e,t,s){super(e);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=t?`HPE_${t}`:undefined;this.data=s?s.toString():undefined}}class ResponseExceededMaxSizeError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseExceededMaxSizeError);this.name="ResponseExceededMaxSizeError";this.message=e||"Response content exceeded max size";this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}}class RequestRetryError extends UndiciError{constructor(e,t,{headers:s,data:r}){super(e);Error.captureStackTrace(this,RequestRetryError);this.name="RequestRetryError";this.message=e||"Request retry error";this.code="UND_ERR_REQ_RETRY";this.statusCode=t;this.data=r;this.headers=s}}e.exports={HTTPParserError:HTTPParserError,UndiciError:UndiciError,HeadersTimeoutError:HeadersTimeoutError,HeadersOverflowError:HeadersOverflowError,BodyTimeoutError:BodyTimeoutError,RequestContentLengthMismatchError:RequestContentLengthMismatchError,ConnectTimeoutError:ConnectTimeoutError,ResponseStatusCodeError:ResponseStatusCodeError,InvalidArgumentError:InvalidArgumentError,InvalidReturnValueError:InvalidReturnValueError,RequestAbortedError:RequestAbortedError,ClientDestroyedError:ClientDestroyedError,ClientClosedError:ClientClosedError,InformationalError:InformationalError,SocketError:SocketError,NotSupportedError:NotSupportedError,ResponseContentLengthMismatchError:ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError:BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError:ResponseExceededMaxSizeError,RequestRetryError:RequestRetryError}},2896:(e,t,s)=>{const{InvalidArgumentError:r,NotSupportedError:o}=s(2366);const A=s(9491);const{kHTTP2BuildRequest:n,kHTTP2CopyHeaders:i,kHTTP1BuildRequest:a}=s(3932);const c=s(7497);const l=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const u=/[^\t\x20-\x7e\x80-\xff]/;const p=/[^\u0021-\u00ff]/;const g=Symbol("handler");const d={};let h;try{const e=s(7643);d.create=e.channel("undici:request:create");d.bodySent=e.channel("undici:request:bodySent");d.headers=e.channel("undici:request:headers");d.trailers=e.channel("undici:request:trailers");d.error=e.channel("undici:request:error")}catch{d.create={hasSubscribers:false};d.bodySent={hasSubscribers:false};d.headers={hasSubscribers:false};d.trailers={hasSubscribers:false};d.error={hasSubscribers:false}}class Request{constructor(e,{path:t,method:o,body:A,headers:n,query:i,idempotent:a,blocking:u,upgrade:E,headersTimeout:C,bodyTimeout:Q,reset:m,throwOnError:B,expectContinue:I},b){if(typeof t!=="string"){throw new r("path must be a string")}else if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&o!=="CONNECT"){throw new r("path must be an absolute URL or start with a slash")}else if(p.exec(t)!==null){throw new r("invalid request path")}if(typeof o!=="string"){throw new r("method must be a string")}else if(l.exec(o)===null){throw new r("invalid request method")}if(E&&typeof E!=="string"){throw new r("upgrade must be a string")}if(C!=null&&(!Number.isFinite(C)||C<0)){throw new r("invalid headersTimeout")}if(Q!=null&&(!Number.isFinite(Q)||Q<0)){throw new r("invalid bodyTimeout")}if(m!=null&&typeof m!=="boolean"){throw new r("invalid reset")}if(I!=null&&typeof I!=="boolean"){throw new r("invalid expectContinue")}this.headersTimeout=C;this.bodyTimeout=Q;this.throwOnError=B===true;this.method=o;this.abort=null;if(A==null){this.body=null}else if(c.isStream(A)){this.body=A;const e=this.body._readableState;if(!e||!e.autoDestroy){this.endHandler=function autoDestroy(){c.destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=e=>{if(this.abort){this.abort(e)}else{this.error=e}};this.body.on("error",this.errorHandler)}else if(c.isBuffer(A)){this.body=A.byteLength?A:null}else if(ArrayBuffer.isView(A)){this.body=A.buffer.byteLength?Buffer.from(A.buffer,A.byteOffset,A.byteLength):null}else if(A instanceof ArrayBuffer){this.body=A.byteLength?Buffer.from(A):null}else if(typeof A==="string"){this.body=A.length?Buffer.from(A):null}else if(c.isFormDataLike(A)||c.isIterable(A)||c.isBlobLike(A)){this.body=A}else{throw new r("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=E||null;this.path=i?c.buildURL(t,i):t;this.origin=e;this.idempotent=a==null?o==="HEAD"||o==="GET":a;this.blocking=u==null?false:u;this.reset=m==null?null:m;this.host=null;this.contentLength=null;this.contentType=null;this.headers="";this.expectContinue=I!=null?I:false;if(Array.isArray(n)){if(n.length%2!==0){throw new r("headers array must be even")}for(let e=0;e{e.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}},7497:(e,t,s)=>{const r=s(9491);const{kDestroyed:o,kBodyUsed:A}=s(3932);const{IncomingMessage:n}=s(3685);const i=s(2781);const a=s(1808);const{InvalidArgumentError:c}=s(2366);const{Blob:l}=s(4300);const u=s(3837);const{stringify:p}=s(3477);const[g,d]=process.versions.node.split(".").map((e=>Number(e)));function nop(){}function isStream(e){return e&&typeof e==="object"&&typeof e.pipe==="function"&&typeof e.on==="function"}function isBlobLike(e){return l&&e instanceof l||e&&typeof e==="object"&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function buildURL(e,t){if(e.includes("?")||e.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const s=p(t);if(s){e+="?"+s}return e}function parseURL(e){if(typeof e==="string"){e=new URL(e);if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return e}if(!e||typeof e!=="object"){throw new c("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port))){throw new c("Invalid URL: port must be a valid integer or a string representation of an integer.")}if(e.path!=null&&typeof e.path!=="string"){throw new c("Invalid URL path: the path must be a string or null/undefined.")}if(e.pathname!=null&&typeof e.pathname!=="string"){throw new c("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(e.hostname!=null&&typeof e.hostname!=="string"){throw new c("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(e.origin!=null&&typeof e.origin!=="string"){throw new c("Invalid URL origin: the origin must be a string or null/undefined.")}const t=e.port!=null?e.port:e.protocol==="https:"?443:80;let s=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`;let r=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;if(s.endsWith("/")){s=s.substring(0,s.length-1)}if(r&&!r.startsWith("/")){r=`/${r}`}e=new URL(s+r)}return e}function parseOrigin(e){e=parseURL(e);if(e.pathname!=="/"||e.search||e.hash){throw new c("invalid url")}return e}function getHostname(e){if(e[0]==="["){const t=e.indexOf("]");r(t!==-1);return e.substring(1,t)}const t=e.indexOf(":");if(t===-1)return e;return e.substring(0,t)}function getServerName(e){if(!e){return null}r.strictEqual(typeof e,"string");const t=getHostname(e);if(a.isIP(t)){return""}return t}function deepClone(e){return JSON.parse(JSON.stringify(e))}function isAsyncIterable(e){return!!(e!=null&&typeof e[Symbol.asyncIterator]==="function")}function isIterable(e){return!!(e!=null&&(typeof e[Symbol.iterator]==="function"||typeof e[Symbol.asyncIterator]==="function"))}function bodyLength(e){if(e==null){return 0}else if(isStream(e)){const t=e._readableState;return t&&t.objectMode===false&&t.ended===true&&Number.isFinite(t.length)?t.length:null}else if(isBlobLike(e)){return e.size!=null?e.size:null}else if(isBuffer(e)){return e.byteLength}return null}function isDestroyed(e){return!e||!!(e.destroyed||e[o])}function isReadableAborted(e){const t=e&&e._readableState;return isDestroyed(e)&&t&&!t.endEmitted}function destroy(e,t){if(e==null||!isStream(e)||isDestroyed(e)){return}if(typeof e.destroy==="function"){if(Object.getPrototypeOf(e).constructor===n){e.socket=null}e.destroy(t)}else if(t){process.nextTick(((e,t)=>{e.emit("error",t)}),e,t)}if(e.destroyed!==true){e[o]=true}}const h=/timeout=(\d+)/;function parseKeepAliveTimeout(e){const t=e.toString().match(h);return t?parseInt(t[1],10)*1e3:null}function parseHeaders(e,t={}){if(!Array.isArray(e))return e;for(let s=0;se.toString("utf8")))}else{t[r]=e[s+1].toString("utf8")}}else{if(!Array.isArray(o)){o=[o];t[r]=o}o.push(e[s+1].toString("utf8"))}}if("content-length"in t&&"content-disposition"in t){t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")}return t}function parseRawHeaders(e){const t=[];let s=false;let r=-1;for(let o=0;o{e.close()}))}else{const t=Buffer.isBuffer(r)?r:Buffer.from(r);e.enqueue(new Uint8Array(t))}return e.desiredSize>0},async cancel(e){await t.return()}},0)}function isFormDataLike(e){return e&&typeof e==="object"&&typeof e.append==="function"&&typeof e.delete==="function"&&typeof e.get==="function"&&typeof e.getAll==="function"&&typeof e.has==="function"&&typeof e.set==="function"&&e[Symbol.toStringTag]==="FormData"}function throwIfAborted(e){if(!e){return}if(typeof e.throwIfAborted==="function"){e.throwIfAborted()}else{if(e.aborted){const e=new Error("The operation was aborted");e.name="AbortError";throw e}}}function addAbortListener(e,t){if("addEventListener"in e){e.addEventListener("abort",t,{once:true});return()=>e.removeEventListener("abort",t)}e.addListener("abort",t);return()=>e.removeListener("abort",t)}const C=!!String.prototype.toWellFormed;function toUSVString(e){if(C){return`${e}`.toWellFormed()}else if(u.toUSVString){return u.toUSVString(e)}return`${e}`}function parseRangeHeader(e){if(e==null||e==="")return{start:0,end:null,size:null};const t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}const Q=Object.create(null);Q.enumerable=true;e.exports={kEnumerableProperty:Q,nop:nop,isDisturbed:isDisturbed,isErrored:isErrored,isReadable:isReadable,toUSVString:toUSVString,isReadableAborted:isReadableAborted,isBlobLike:isBlobLike,parseOrigin:parseOrigin,parseURL:parseURL,getServerName:getServerName,isStream:isStream,isIterable:isIterable,isAsyncIterable:isAsyncIterable,isDestroyed:isDestroyed,parseRawHeaders:parseRawHeaders,parseHeaders:parseHeaders,parseKeepAliveTimeout:parseKeepAliveTimeout,destroy:destroy,bodyLength:bodyLength,deepClone:deepClone,ReadableStreamFrom:ReadableStreamFrom,isBuffer:isBuffer,validateHandler:validateHandler,getSocketInfo:getSocketInfo,isFormDataLike:isFormDataLike,buildURL:buildURL,throwIfAborted:throwIfAborted,addAbortListener:addAbortListener,parseRangeHeader:parseRangeHeader,nodeMajor:g,nodeMinor:d,nodeHasAutoSelectFamily:g>18||g===18&&d>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}},8757:(e,t,s)=>{const r=s(8648);const{ClientDestroyedError:o,ClientClosedError:A,InvalidArgumentError:n}=s(2366);const{kDestroy:i,kClose:a,kDispatch:c,kInterceptors:l}=s(3932);const u=Symbol("destroyed");const p=Symbol("closed");const g=Symbol("onDestroyed");const d=Symbol("onClosed");const h=Symbol("Intercepted Dispatch");class DispatcherBase extends r{constructor(){super();this[u]=false;this[g]=null;this[p]=false;this[d]=[]}get destroyed(){return this[u]}get closed(){return this[p]}get interceptors(){return this[l]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--){const e=this[l][t];if(typeof e!=="function"){throw new n("interceptor must be an function")}}}this[l]=e}close(e){if(e===undefined){return new Promise(((e,t)=>{this.close(((s,r)=>s?t(s):e(r)))}))}if(typeof e!=="function"){throw new n("invalid callback")}if(this[u]){queueMicrotask((()=>e(new o,null)));return}if(this[p]){if(this[d]){this[d].push(e)}else{queueMicrotask((()=>e(null,null)))}return}this[p]=true;this[d].push(e);const onClosed=()=>{const e=this[d];this[d]=null;for(let t=0;tthis.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(e,t){if(typeof e==="function"){t=e;e=null}if(t===undefined){return new Promise(((t,s)=>{this.destroy(e,((e,r)=>e?s(e):t(r)))}))}if(typeof t!=="function"){throw new n("invalid callback")}if(this[u]){if(this[g]){this[g].push(t)}else{queueMicrotask((()=>t(null,null)))}return}if(!e){e=new o}this[u]=true;this[g]=this[g]||[];this[g].push(t);const onDestroyed=()=>{const e=this[g];this[g]=null;for(let t=0;t{queueMicrotask(onDestroyed)}))}[h](e,t){if(!this[l]||this[l].length===0){this[h]=this[c];return this[c](e,t)}let s=this[c].bind(this);for(let e=this[l].length-1;e>=0;e--){s=this[l][e](s)}this[h]=s;return s(e,t)}dispatch(e,t){if(!t||typeof t!=="object"){throw new n("handler must be an object")}try{if(!e||typeof e!=="object"){throw new n("opts must be an object.")}if(this[u]||this[g]){throw new o}if(this[p]){throw new A}return this[h](e,t)}catch(e){if(typeof t.onError!=="function"){throw new n("invalid onError method")}t.onError(e);return false}}}e.exports=DispatcherBase},8648:(e,t,s)=>{const r=s(2361);class Dispatcher extends r{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}e.exports=Dispatcher},1226:(e,t,s)=>{const r=s(7455);const o=s(7497);const{ReadableStreamFrom:A,isBlobLike:n,isReadableStreamLike:i,readableStreamClose:a,createDeferredPromise:c,fullyReadBody:l}=s(5496);const{FormData:u}=s(9425);const{kState:p}=s(5376);const{webidl:g}=s(9111);const{DOMException:d,structuredClone:h}=s(7533);const{Blob:E,File:C}=s(4300);const{kBodyUsed:Q}=s(3932);const m=s(9491);const{isErrored:B}=s(7497);const{isUint8Array:I,isArrayBuffer:b}=s(9830);const{File:y}=s(5506);const{parseMIMEType:w,serializeAMimeType:v}=s(5958);let R=globalThis.ReadableStream;const k=C??y;const D=new TextEncoder;const x=new TextDecoder;function extractBody(e,t=false){if(!R){R=s(5356).ReadableStream}let r=null;if(e instanceof R){r=e}else if(n(e)){r=e.stream()}else{r=new R({async pull(e){e.enqueue(typeof l==="string"?D.encode(l):l);queueMicrotask((()=>a(e)))},start(){},type:undefined})}m(i(r));let c=null;let l=null;let u=null;let p=null;if(typeof e==="string"){l=e;p="text/plain;charset=UTF-8"}else if(e instanceof URLSearchParams){l=e.toString();p="application/x-www-form-urlencoded;charset=UTF-8"}else if(b(e)){l=new Uint8Array(e.slice())}else if(ArrayBuffer.isView(e)){l=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}else if(o.isFormDataLike(e)){const t=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`;const s=`--${t}\r\nContent-Disposition: form-data` /*! formdata-polyfill. MIT License. Jimmy Wärting */;const escape=e=>e.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=e=>e.replace(/\r?\n|\r/g,"\r\n");const r=[];const o=new Uint8Array([13,10]);u=0;let A=false;for(const[t,n]of e){if(typeof n==="string"){const e=D.encode(s+`; name="${escape(normalizeLinefeeds(t))}"`+`\r\n\r\n${normalizeLinefeeds(n)}\r\n`);r.push(e);u+=e.byteLength}else{const e=D.encode(`${s}; name="${escape(normalizeLinefeeds(t))}"`+(n.name?`; filename="${escape(n.name)}"`:"")+"\r\n"+`Content-Type: ${n.type||"application/octet-stream"}\r\n\r\n`);r.push(e,n,o);if(typeof n.size==="number"){u+=e.byteLength+n.size+o.byteLength}else{A=true}}}const n=D.encode(`--${t}--`);r.push(n);u+=n.byteLength;if(A){u=null}l=e;c=async function*(){for(const e of r){if(e.stream){yield*e.stream()}else{yield e}}};p="multipart/form-data; boundary="+t}else if(n(e)){l=e;u=e.size;if(e.type){p=e.type}}else if(typeof e[Symbol.asyncIterator]==="function"){if(t){throw new TypeError("keepalive")}if(o.isDisturbed(e)||e.locked){throw new TypeError("Response body object should not be disturbed or locked")}r=e instanceof R?e:A(e)}if(typeof l==="string"||o.isBuffer(l)){u=Buffer.byteLength(l)}if(c!=null){let t;r=new R({async start(){t=c(e)[Symbol.asyncIterator]()},async pull(e){const{value:s,done:o}=await t.next();if(o){queueMicrotask((()=>{e.close()}))}else{if(!B(r)){e.enqueue(new Uint8Array(s))}}return e.desiredSize>0},async cancel(e){await t.return()},type:undefined})}const g={stream:r,source:l,length:u};return[g,p]}function safelyExtractBody(e,t=false){if(!R){R=s(5356).ReadableStream}if(e instanceof R){m(!o.isDisturbed(e),"The body has already been consumed.");m(!e.locked,"The stream is locked.")}return extractBody(e,t)}function cloneBody(e){const[t,s]=e.stream.tee();const r=h(s,{transfer:[s]});const[,o]=r.tee();e.stream=t;return{stream:o,length:e.length,source:e.source}}async function*consumeBody(e){if(e){if(I(e)){yield e}else{const t=e.stream;if(o.isDisturbed(t)){throw new TypeError("The body has already been consumed.")}if(t.locked){throw new TypeError("The stream is locked.")}t[Q]=true;yield*t}}}function throwIfAborted(e){if(e.aborted){throw new d("The operation was aborted.","AbortError")}}function bodyMixinMethods(e){const t={blob(){return specConsumeBody(this,(e=>{let t=bodyMimeType(this);if(t==="failure"){t=""}else if(t){t=v(t)}return new E([e],{type:t})}),e)},arrayBuffer(){return specConsumeBody(this,(e=>new Uint8Array(e).buffer),e)},text(){return specConsumeBody(this,utf8DecodeBytes,e)},json(){return specConsumeBody(this,parseJSONFromBytes,e)},async formData(){g.brandCheck(this,e);throwIfAborted(this[p]);const t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){const e={};for(const[t,s]of this.headers)e[t.toLowerCase()]=s;const t=new u;let s;try{s=new r({headers:e,preservePath:true})}catch(e){throw new d(`${e}`,"AbortError")}s.on("field",((e,s)=>{t.append(e,s)}));s.on("file",((e,s,r,o,A)=>{const n=[];if(o==="base64"||o.toLowerCase()==="base64"){let o="";s.on("data",(e=>{o+=e.toString().replace(/[\r\n]/gm,"");const t=o.length-o.length%4;n.push(Buffer.from(o.slice(0,t),"base64"));o=o.slice(t)}));s.on("end",(()=>{n.push(Buffer.from(o,"base64"));t.append(e,new k(n,r,{type:A}))}))}else{s.on("data",(e=>{n.push(e)}));s.on("end",(()=>{t.append(e,new k(n,r,{type:A}))}))}}));const o=new Promise(((e,t)=>{s.on("finish",e);s.on("error",(e=>t(new TypeError(e))))}));if(this.body!==null)for await(const e of consumeBody(this[p].body))s.write(e);s.end();await o;return t}else if(/application\/x-www-form-urlencoded/.test(t)){let e;try{let t="";const s=new TextDecoder("utf-8",{ignoreBOM:true});for await(const e of consumeBody(this[p].body)){if(!I(e)){throw new TypeError("Expected Uint8Array chunk")}t+=s.decode(e,{stream:true})}t+=s.decode();e=new URLSearchParams(t)}catch(e){throw Object.assign(new TypeError,{cause:e})}const t=new u;for(const[s,r]of e){t.append(s,r)}return t}else{await Promise.resolve();throwIfAborted(this[p]);throw g.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}};return t}function mixinBody(e){Object.assign(e.prototype,bodyMixinMethods(e))}async function specConsumeBody(e,t,s){g.brandCheck(e,s);throwIfAborted(e[p]);if(bodyUnusable(e[p].body)){throw new TypeError("Body is unusable")}const r=c();const errorSteps=e=>r.reject(e);const successSteps=e=>{try{r.resolve(t(e))}catch(e){errorSteps(e)}};if(e[p].body==null){successSteps(new Uint8Array);return r.promise}await l(e[p].body,successSteps,errorSteps);return r.promise}function bodyUnusable(e){return e!=null&&(e.stream.locked||o.isDisturbed(e.stream))}function utf8DecodeBytes(e){if(e.length===0){return""}if(e[0]===239&&e[1]===187&&e[2]===191){e=e.subarray(3)}const t=x.decode(e);return t}function parseJSONFromBytes(e){return JSON.parse(utf8DecodeBytes(e))}function bodyMimeType(e){const{headersList:t}=e[p];const s=t.get("content-type");if(s===null){return"failure"}return w(s)}e.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},7533:(e,t,s)=>{const{MessageChannel:r,receiveMessageOnPort:o}=s(1267);const A=["GET","HEAD","POST"];const n=new Set(A);const i=[101,204,205,304];const a=[301,302,303,307,308];const c=new Set(a);const l=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"];const u=new Set(l);const p=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const g=new Set(p);const d=["follow","manual","error"];const h=["GET","HEAD","OPTIONS","TRACE"];const E=new Set(h);const C=["navigate","same-origin","no-cors","cors"];const Q=["omit","same-origin","include"];const m=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const B=["content-encoding","content-language","content-location","content-type","content-length"];const I=["half"];const b=["CONNECT","TRACE","TRACK"];const y=new Set(b);const w=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const v=new Set(w);const R=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})();let k;const D=globalThis.structuredClone??function structuredClone(e,t=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!k){k=new r}k.port1.unref();k.port2.unref();k.port1.postMessage(e,t?.transfer);return o(k.port2).message};e.exports={DOMException:R,structuredClone:D,subresource:w,forbiddenMethods:b,requestBodyHeader:B,referrerPolicy:p,requestRedirect:d,requestMode:C,requestCredentials:Q,requestCache:m,redirectStatus:a,corsSafeListedMethods:A,nullBodyStatus:i,safeMethods:h,badPorts:l,requestDuplex:I,subresourceSet:v,badPortsSet:u,redirectStatusSet:c,corsSafeListedMethodsSet:n,safeMethodsSet:E,forbiddenMethodsSet:y,referrerPolicySet:g}},5958:(e,t,s)=>{const r=s(9491);const{atob:o}=s(4300);const{isomorphicDecode:A}=s(5496);const n=new TextEncoder;const i=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const a=/(\u000A|\u000D|\u0009|\u0020)/;const c=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(e){r(e.protocol==="data:");let t=URLSerializer(e,true);t=t.slice(5);const s={position:0};let o=collectASequenceOfCodePointsFast(",",t,s);const n=o.length;o=removeASCIIWhitespace(o,true,true);if(s.position>=t.length){return"failure"}s.position++;const i=t.slice(n+1);let a=stringPercentDecode(i);if(/;(\u0020){0,}base64$/i.test(o)){const e=A(a);a=forgivingBase64(e);if(a==="failure"){return"failure"}o=o.slice(0,-6);o=o.replace(/(\u0020)+$/,"");o=o.slice(0,-1)}if(o.startsWith(";")){o="text/plain"+o}let c=parseMIMEType(o);if(c==="failure"){c=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:c,body:a}}function URLSerializer(e,t=false){if(!t){return e.href}const s=e.href;const r=e.hash.length;return r===0?s:s.substring(0,s.length-r)}function collectASequenceOfCodePoints(e,t,s){let r="";while(s.positione.length){return"failure"}t.position++;let r=collectASequenceOfCodePointsFast(";",e,t);r=removeHTTPWhitespace(r,false,true);if(r.length===0||!i.test(r)){return"failure"}const o=s.toLowerCase();const A=r.toLowerCase();const n={type:o,subtype:A,parameters:new Map,essence:`${o}/${A}`};while(t.positiona.test(e)),e,t);let s=collectASequenceOfCodePoints((e=>e!==";"&&e!=="="),e,t);s=s.toLowerCase();if(t.positione.length){break}let r=null;if(e[t.position]==='"'){r=collectAnHTTPQuotedString(e,t,true);collectASequenceOfCodePointsFast(";",e,t)}else{r=collectASequenceOfCodePointsFast(";",e,t);r=removeHTTPWhitespace(r,false,true);if(r.length===0){continue}}if(s.length!==0&&i.test(s)&&(r.length===0||c.test(r))&&!n.parameters.has(s)){n.parameters.set(s,r)}}return n}function forgivingBase64(e){e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,"");if(e.length%4===0){e=e.replace(/=?=$/,"")}if(e.length%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(e)){return"failure"}const t=o(e);const s=new Uint8Array(t.length);for(let e=0;ee!=='"'&&e!=="\\"),e,t);if(t.position>=e.length){break}const s=e[t.position];t.position++;if(s==="\\"){if(t.position>=e.length){A+="\\";break}A+=e[t.position];t.position++}else{r(s==='"');break}}if(s){return A}return e.slice(o,t.position)}function serializeAMimeType(e){r(e!=="failure");const{parameters:t,essence:s}=e;let o=s;for(let[e,s]of t.entries()){o+=";";o+=e;o+="=";if(!i.test(s)){s=s.replace(/(\\|")/g,"\\$1");s='"'+s;s+='"'}o+=s}return o}function isHTTPWhiteSpace(e){return e==="\r"||e==="\n"||e==="\t"||e===" "}function removeHTTPWhitespace(e,t=true,s=true){let r=0;let o=e.length-1;if(t){for(;r0&&isHTTPWhiteSpace(e[o]);o--);}return e.slice(r,o+1)}function isASCIIWhitespace(e){return e==="\r"||e==="\n"||e==="\t"||e==="\f"||e===" "}function removeASCIIWhitespace(e,t=true,s=true){let r=0;let o=e.length-1;if(t){for(;r0&&isASCIIWhitespace(e[o]);o--);}return e.slice(r,o+1)}e.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},5506:(e,t,s)=>{const{Blob:r,File:o}=s(4300);const{types:A}=s(3837);const{kState:n}=s(5376);const{isBlobLike:i}=s(5496);const{webidl:a}=s(9111);const{parseMIMEType:c,serializeAMimeType:l}=s(5958);const{kEnumerableProperty:u}=s(7497);const p=new TextEncoder;class File extends r{constructor(e,t,s={}){a.argumentLengthCheck(arguments,2,{header:"File constructor"});e=a.converters["sequence"](e);t=a.converters.USVString(t);s=a.converters.FilePropertyBag(s);const r=t;let o=s.type;let A;e:{if(o){o=c(o);if(o==="failure"){o="";break e}o=l(o).toLowerCase()}A=s.lastModified}super(processBlobParts(e,s),{type:o});this[n]={name:r,lastModified:A,type:o}}get name(){a.brandCheck(this,File);return this[n].name}get lastModified(){a.brandCheck(this,File);return this[n].lastModified}get type(){a.brandCheck(this,File);return this[n].type}}class FileLike{constructor(e,t,s={}){const r=t;const o=s.type;const A=s.lastModified??Date.now();this[n]={blobLike:e,name:r,type:o,lastModified:A}}stream(...e){a.brandCheck(this,FileLike);return this[n].blobLike.stream(...e)}arrayBuffer(...e){a.brandCheck(this,FileLike);return this[n].blobLike.arrayBuffer(...e)}slice(...e){a.brandCheck(this,FileLike);return this[n].blobLike.slice(...e)}text(...e){a.brandCheck(this,FileLike);return this[n].blobLike.text(...e)}get size(){a.brandCheck(this,FileLike);return this[n].blobLike.size}get type(){a.brandCheck(this,FileLike);return this[n].blobLike.type}get name(){a.brandCheck(this,FileLike);return this[n].name}get lastModified(){a.brandCheck(this,FileLike);return this[n].lastModified}get[Symbol.toStringTag](){return"File"}}Object.defineProperties(File.prototype,{[Symbol.toStringTag]:{value:"File",configurable:true},name:u,lastModified:u});a.converters.Blob=a.interfaceConverter(r);a.converters.BlobPart=function(e,t){if(a.util.Type(e)==="Object"){if(i(e)){return a.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||A.isAnyArrayBuffer(e)){return a.converters.BufferSource(e,t)}}return a.converters.USVString(e,t)};a.converters["sequence"]=a.sequenceConverter(a.converters.BlobPart);a.converters.FilePropertyBag=a.dictionaryConverter([{key:"lastModified",converter:a.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:a.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>{e=a.converters.DOMString(e);e=e.toLowerCase();if(e!=="native"){e="transparent"}return e},defaultValue:"transparent"}]);function processBlobParts(e,t){const s=[];for(const r of e){if(typeof r==="string"){let e=r;if(t.endings==="native"){e=convertLineEndingsNative(e)}s.push(p.encode(e))}else if(A.isAnyArrayBuffer(r)||A.isTypedArray(r)){if(!r.buffer){s.push(new Uint8Array(r))}else{s.push(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}}else if(i(r)){s.push(r)}}return s}function convertLineEndingsNative(e){let t="\n";if(process.platform==="win32"){t="\r\n"}return e.replace(/\r?\n/g,t)}function isFileLike(e){return o&&e instanceof o||e instanceof File||e&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&e[Symbol.toStringTag]==="File"}e.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},9425:(e,t,s)=>{const{isBlobLike:r,toUSVString:o,makeIterator:A}=s(5496);const{kState:n}=s(5376);const{File:i,FileLike:a,isFileLike:c}=s(5506);const{webidl:l}=s(9111);const{Blob:u,File:p}=s(4300);const g=p??i;class FormData{constructor(e){if(e!==undefined){throw l.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[n]=[]}append(e,t,s=undefined){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!r(t)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}e=l.converters.USVString(e);t=r(t)?l.converters.Blob(t,{strict:false}):l.converters.USVString(t);s=arguments.length===3?l.converters.USVString(s):undefined;const o=makeEntry(e,t,s);this[n].push(o)}delete(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.delete"});e=l.converters.USVString(e);this[n]=this[n].filter((t=>t.name!==e))}get(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.get"});e=l.converters.USVString(e);const t=this[n].findIndex((t=>t.name===e));if(t===-1){return null}return this[n][t].value}getAll(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});e=l.converters.USVString(e);return this[n].filter((t=>t.name===e)).map((e=>e.value))}has(e){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.has"});e=l.converters.USVString(e);return this[n].findIndex((t=>t.name===e))!==-1}set(e,t,s=undefined){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!r(t)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}e=l.converters.USVString(e);t=r(t)?l.converters.Blob(t,{strict:false}):l.converters.USVString(t);s=arguments.length===3?o(s):undefined;const A=makeEntry(e,t,s);const i=this[n].findIndex((t=>t.name===e));if(i!==-1){this[n]=[...this[n].slice(0,i),A,...this[n].slice(i+1).filter((t=>t.name!==e))]}else{this[n].push(A)}}entries(){l.brandCheck(this,FormData);return A((()=>this[n].map((e=>[e.name,e.value]))),"FormData","key+value")}keys(){l.brandCheck(this,FormData);return A((()=>this[n].map((e=>[e.name,e.value]))),"FormData","key")}values(){l.brandCheck(this,FormData);return A((()=>this[n].map((e=>[e.name,e.value]))),"FormData","value")}forEach(e,t=globalThis){l.brandCheck(this,FormData);l.argumentLengthCheck(arguments,1,{header:"FormData.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.")}for(const[s,r]of this){e.apply(t,[r,s,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(e,t,s){e=Buffer.from(e).toString("utf8");if(typeof t==="string"){t=Buffer.from(t).toString("utf8")}else{if(!c(t)){t=t instanceof u?new g([t],"blob",{type:t.type}):new a(t,"blob",{type:t.type})}if(s!==undefined){const e={type:t.type,lastModified:t.lastModified};t=p&&t instanceof p||t instanceof i?new g([t],s,e):new a(t,s,e)}}return{name:e,value:t}}e.exports={FormData:FormData}},7011:e=>{const t=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[t]}function setGlobalOrigin(e){if(e===undefined){Object.defineProperty(globalThis,t,{value:undefined,writable:true,enumerable:false,configurable:false});return}const s=new URL(e);if(s.protocol!=="http:"&&s.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${s.protocol}`)}Object.defineProperty(globalThis,t,{value:s,writable:true,enumerable:false,configurable:false})}e.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},1855:(e,t,s)=>{const{kHeadersList:r,kConstruct:o}=s(3932);const{kGuard:A}=s(5376);const{kEnumerableProperty:n}=s(7497);const{makeIterator:i,isValidHeaderName:a,isValidHeaderValue:c}=s(5496);const{webidl:l}=s(9111);const u=s(9491);const p=Symbol("headers map");const g=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(e){return e===10||e===13||e===9||e===32}function headerValueNormalize(e){let t=0;let s=e.length;while(s>t&&isHTTPWhiteSpaceCharCode(e.charCodeAt(s-1)))--s;while(s>t&&isHTTPWhiteSpaceCharCode(e.charCodeAt(t)))++t;return t===0&&s===e.length?e:e.substring(t,s)}function fill(e,t){if(Array.isArray(t)){for(let s=0;s>","record"]})}}function appendHeader(e,t,s){s=headerValueNormalize(s);if(!a(t)){throw l.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"})}else if(!c(s)){throw l.errors.invalidArgument({prefix:"Headers.append",value:s,type:"header value"})}if(e[A]==="immutable"){throw new TypeError("immutable")}else if(e[A]==="request-no-cors"){}return e[r].append(t,s)}class HeadersList{cookies=null;constructor(e){if(e instanceof HeadersList){this[p]=new Map(e[p]);this[g]=e[g];this.cookies=e.cookies===null?null:[...e.cookies]}else{this[p]=new Map(e);this[g]=null}}contains(e){e=e.toLowerCase();return this[p].has(e)}clear(){this[p].clear();this[g]=null;this.cookies=null}append(e,t){this[g]=null;const s=e.toLowerCase();const r=this[p].get(s);if(r){const e=s==="cookie"?"; ":", ";this[p].set(s,{name:r.name,value:`${r.value}${e}${t}`})}else{this[p].set(s,{name:e,value:t})}if(s==="set-cookie"){this.cookies??=[];this.cookies.push(t)}}set(e,t){this[g]=null;const s=e.toLowerCase();if(s==="set-cookie"){this.cookies=[t]}this[p].set(s,{name:e,value:t})}delete(e){this[g]=null;e=e.toLowerCase();if(e==="set-cookie"){this.cookies=null}this[p].delete(e)}get(e){const t=this[p].get(e.toLowerCase());return t===undefined?null:t.value}*[Symbol.iterator](){for(const[e,{value:t}]of this[p]){yield[e,t]}}get entries(){const e={};if(this[p].size){for(const{name:t,value:s}of this[p].values()){e[t]=s}}return e}}class Headers{constructor(e=undefined){if(e===o){return}this[r]=new HeadersList;this[A]="none";if(e!==undefined){e=l.converters.HeadersInit(e);fill(this,e)}}append(e,t){l.brandCheck(this,Headers);l.argumentLengthCheck(arguments,2,{header:"Headers.append"});e=l.converters.ByteString(e);t=l.converters.ByteString(t);return appendHeader(this,e,t)}delete(e){l.brandCheck(this,Headers);l.argumentLengthCheck(arguments,1,{header:"Headers.delete"});e=l.converters.ByteString(e);if(!a(e)){throw l.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"})}if(this[A]==="immutable"){throw new TypeError("immutable")}else if(this[A]==="request-no-cors"){}if(!this[r].contains(e)){return}this[r].delete(e)}get(e){l.brandCheck(this,Headers);l.argumentLengthCheck(arguments,1,{header:"Headers.get"});e=l.converters.ByteString(e);if(!a(e)){throw l.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"})}return this[r].get(e)}has(e){l.brandCheck(this,Headers);l.argumentLengthCheck(arguments,1,{header:"Headers.has"});e=l.converters.ByteString(e);if(!a(e)){throw l.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"})}return this[r].contains(e)}set(e,t){l.brandCheck(this,Headers);l.argumentLengthCheck(arguments,2,{header:"Headers.set"});e=l.converters.ByteString(e);t=l.converters.ByteString(t);t=headerValueNormalize(t);if(!a(e)){throw l.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"})}else if(!c(t)){throw l.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}if(this[A]==="immutable"){throw new TypeError("immutable")}else if(this[A]==="request-no-cors"){}this[r].set(e,t)}getSetCookie(){l.brandCheck(this,Headers);const e=this[r].cookies;if(e){return[...e]}return[]}get[g](){if(this[r][g]){return this[r][g]}const e=[];const t=[...this[r]].sort(((e,t)=>e[0]e),"Headers","key")}return i((()=>[...this[g].values()]),"Headers","key")}values(){l.brandCheck(this,Headers);if(this[A]==="immutable"){const e=this[g];return i((()=>e),"Headers","value")}return i((()=>[...this[g].values()]),"Headers","value")}entries(){l.brandCheck(this,Headers);if(this[A]==="immutable"){const e=this[g];return i((()=>e),"Headers","key+value")}return i((()=>[...this[g].values()]),"Headers","key+value")}forEach(e,t=globalThis){l.brandCheck(this,Headers);l.argumentLengthCheck(arguments,1,{header:"Headers.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.")}for(const[s,r]of this){e.apply(t,[r,s,this])}}[Symbol.for("nodejs.util.inspect.custom")](){l.brandCheck(this,Headers);return this[r]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:n,delete:n,get:n,has:n,set:n,getSetCookie:n,keys:n,values:n,entries:n,forEach:n,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true}});l.converters.HeadersInit=function(e){if(l.util.Type(e)==="Object"){if(e[Symbol.iterator]){return l.converters["sequence>"](e)}return l.converters["record"](e)}throw l.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};e.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},8802:(e,t,s)=>{const{Response:r,makeNetworkError:o,makeAppropriateNetworkError:A,filterResponse:n,makeResponse:i}=s(3950);const{Headers:a}=s(1855);const{Request:c,makeRequest:l}=s(6453);const u=s(9796);const{bytesMatch:p,makePolicyContainer:g,clonePolicyContainer:d,requestBadPort:h,TAOCheck:E,appendRequestOriginHeader:C,responseLocationURL:Q,requestCurrentURL:m,setRequestReferrerPolicyOnRedirect:B,tryUpgradeRequestToAPotentiallyTrustworthyURL:I,createOpaqueTimingInfo:b,appendFetchMetadata:y,corsCheck:w,crossOriginResourcePolicyCheck:v,determineRequestsReferrer:R,coarsenedSharedCurrentTime:k,createDeferredPromise:D,isBlobLike:x,sameOrigin:F,isCancelled:S,isAborted:T,isErrorLike:U,fullyReadBody:N,readableStreamClose:L,isomorphicEncode:_,urlIsLocal:M,urlIsHttpHttpsScheme:G,urlHasHttpsScheme:O}=s(5496);const{kState:P,kHeaders:H,kGuard:Y,kRealm:J}=s(5376);const q=s(9491);const{safelyExtractBody:V}=s(1226);const{redirectStatusSet:W,nullBodyStatus:j,safeMethodsSet:z,requestBodyHeader:K,subresourceSet:X,DOMException:Z}=s(7533);const{kHeadersList:$}=s(3932);const ee=s(2361);const{Readable:te,pipeline:se}=s(2781);const{addAbortListener:re,isErrored:oe,isReadable:Ae,nodeMajor:ne,nodeMinor:ie}=s(7497);const{dataURLProcessor:ae,serializeAMimeType:ce}=s(5958);const{TransformStream:le}=s(5356);const{getGlobalDispatcher:ue}=s(2899);const{webidl:pe}=s(9111);const{STATUS_CODES:ge}=s(3685);const de=["GET","HEAD"];let he;let Ee=globalThis.ReadableStream;class Fetch extends ee{constructor(e){super();this.dispatcher=e;this.connection=null;this.dump=false;this.state="ongoing";this.setMaxListeners(21)}terminate(e){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(e);this.emit("terminated",e)}abort(e){if(this.state!=="ongoing"){return}this.state="aborted";if(!e){e=new Z("The operation was aborted.","AbortError")}this.serializedAbortReason=e;this.connection?.destroy(e);this.emit("terminated",e)}}function fetch(e,t={}){pe.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const s=D();let o;try{o=new c(e,t)}catch(e){s.reject(e);return s.promise}const A=o[P];if(o.signal.aborted){abortFetch(s,A,null,o.signal.reason);return s.promise}const n=A.client.globalObject;if(n?.constructor?.name==="ServiceWorkerGlobalScope"){A.serviceWorkers="none"}let i=null;const a=null;let l=false;let u=null;re(o.signal,(()=>{l=true;q(u!=null);u.abort(o.signal.reason);abortFetch(s,A,i,o.signal.reason)}));const handleFetchDone=e=>finalizeAndReportTiming(e,"fetch");const processResponse=e=>{if(l){return Promise.resolve()}if(e.aborted){abortFetch(s,A,i,u.serializedAbortReason);return Promise.resolve()}if(e.type==="error"){s.reject(Object.assign(new TypeError("fetch failed"),{cause:e.error}));return Promise.resolve()}i=new r;i[P]=e;i[J]=a;i[H][$]=e.headersList;i[H][Y]="immutable";i[H][J]=a;s.resolve(i)};u=fetching({request:A,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:t.dispatcher??ue()});return s.promise}function finalizeAndReportTiming(e,t="other"){if(e.type==="error"&&e.aborted){return}if(!e.urlList?.length){return}const s=e.urlList[0];let r=e.timingInfo;let o=e.cacheState;if(!G(s)){return}if(r===null){return}if(!e.timingAllowPassed){r=b({startTime:r.startTime});o=""}r.endTime=k();e.timingInfo=r;markResourceTiming(r,s,t,globalThis,o)}function markResourceTiming(e,t,s,r,o){if(ne>18||ne===18&&ie>=2){performance.markResourceTiming(e,t.href,s,r,o)}}function abortFetch(e,t,s,r){if(!r){r=new Z("The operation was aborted.","AbortError")}e.reject(r);if(t.body!=null&&Ae(t.body?.stream)){t.body.stream.cancel(r).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}if(s==null){return}const o=s[P];if(o.body!=null&&Ae(o.body?.stream)){o.body.stream.cancel(r).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}}function fetching({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:s,processResponse:r,processResponseEndOfBody:o,processResponseConsumeBody:A,useParallelQueue:n=false,dispatcher:i}){let a=null;let c=false;if(e.client!=null){a=e.client.globalObject;c=e.client.crossOriginIsolatedCapability}const l=k(c);const u=b({startTime:l});const p={controller:new Fetch(i),request:e,timingInfo:u,processRequestBodyChunkLength:t,processRequestEndOfBody:s,processResponse:r,processResponseConsumeBody:A,processResponseEndOfBody:o,taskDestination:a,crossOriginIsolatedCapability:c};q(!e.body||e.body.stream);if(e.window==="client"){e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"}if(e.origin==="client"){e.origin=e.client?.origin}if(e.policyContainer==="client"){if(e.client!=null){e.policyContainer=d(e.client.policyContainer)}else{e.policyContainer=g()}}if(!e.headersList.contains("accept")){const t="*/*";e.headersList.append("accept",t)}if(!e.headersList.contains("accept-language")){e.headersList.append("accept-language","*")}if(e.priority===null){}if(X.has(e.destination)){}mainFetch(p).catch((e=>{p.controller.terminate(e)}));return p.controller}async function mainFetch(e,t=false){const s=e.request;let r=null;if(s.localURLsOnly&&!M(m(s))){r=o("local URLs only")}I(s);if(h(s)==="blocked"){r=o("bad port")}if(s.referrerPolicy===""){s.referrerPolicy=s.policyContainer.referrerPolicy}if(s.referrer!=="no-referrer"){s.referrer=R(s)}if(r===null){r=await(async()=>{const t=m(s);if(F(t,s.url)&&s.responseTainting==="basic"||t.protocol==="data:"||(s.mode==="navigate"||s.mode==="websocket")){s.responseTainting="basic";return await schemeFetch(e)}if(s.mode==="same-origin"){return o('request mode cannot be "same-origin"')}if(s.mode==="no-cors"){if(s.redirect!=="follow"){return o('redirect mode cannot be "follow" for "no-cors" request')}s.responseTainting="opaque";return await schemeFetch(e)}if(!G(m(s))){return o("URL scheme must be a HTTP(S) scheme")}s.responseTainting="cors";return await httpFetch(e)})()}if(t){return r}if(r.status!==0&&!r.internalResponse){if(s.responseTainting==="cors"){}if(s.responseTainting==="basic"){r=n(r,"basic")}else if(s.responseTainting==="cors"){r=n(r,"cors")}else if(s.responseTainting==="opaque"){r=n(r,"opaque")}else{q(false)}}let A=r.status===0?r:r.internalResponse;if(A.urlList.length===0){A.urlList.push(...s.urlList)}if(!s.timingAllowFailed){r.timingAllowPassed=true}if(r.type==="opaque"&&A.status===206&&A.rangeRequested&&!s.headers.contains("range")){r=A=o()}if(r.status!==0&&(s.method==="HEAD"||s.method==="CONNECT"||j.includes(A.status))){A.body=null;e.controller.dump=true}if(s.integrity){const processBodyError=t=>fetchFinale(e,o(t));if(s.responseTainting==="opaque"||r.body==null){processBodyError(r.error);return}const processBody=t=>{if(!p(t,s.integrity)){processBodyError("integrity mismatch");return}r.body=V(t)[0];fetchFinale(e,r)};await N(r.body,processBody,processBodyError)}else{fetchFinale(e,r)}}function schemeFetch(e){if(S(e)&&e.request.redirectCount===0){return Promise.resolve(A(e))}const{request:t}=e;const{protocol:r}=m(t);switch(r){case"about:":{return Promise.resolve(o("about scheme is not supported"))}case"blob:":{if(!he){he=s(4300).resolveObjectURL}const e=m(t);if(e.search.length!==0){return Promise.resolve(o("NetworkError when attempting to fetch resource."))}const r=he(e.toString());if(t.method!=="GET"||!x(r)){return Promise.resolve(o("invalid method"))}const A=V(r);const n=A[0];const a=_(`${n.length}`);const c=A[1]??"";const l=i({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:a}],["content-type",{name:"Content-Type",value:c}]]});l.body=n;return Promise.resolve(l)}case"data:":{const e=m(t);const s=ae(e);if(s==="failure"){return Promise.resolve(o("failed to fetch the data URL"))}const r=ce(s.mimeType);return Promise.resolve(i({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:r}]],body:V(s.body)[0]}))}case"file:":{return Promise.resolve(o("not implemented... yet..."))}case"http:":case"https:":{return httpFetch(e).catch((e=>o(e)))}default:{return Promise.resolve(o("unknown scheme"))}}}function finalizeResponse(e,t){e.request.done=true;if(e.processResponseDone!=null){queueMicrotask((()=>e.processResponseDone(t)))}}function fetchFinale(e,t){if(t.type==="error"){t.urlList=[e.request.urlList[0]];t.timingInfo=b({startTime:e.timingInfo.startTime})}const processResponseEndOfBody=()=>{e.request.done=true;if(e.processResponseEndOfBody!=null){queueMicrotask((()=>e.processResponseEndOfBody(t)))}};if(e.processResponse!=null){queueMicrotask((()=>e.processResponse(t)))}if(t.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(e,t)=>{t.enqueue(e)};const e=new le({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(e)}}if(e.processResponseConsumeBody!=null){const processBody=s=>e.processResponseConsumeBody(t,s);const processBodyError=s=>e.processResponseConsumeBody(t,s);if(t.body==null){queueMicrotask((()=>processBody(null)))}else{return N(t.body,processBody,processBodyError)}return Promise.resolve()}}async function httpFetch(e){const t=e.request;let s=null;let r=null;const A=e.timingInfo;if(t.serviceWorkers==="all"){}if(s===null){if(t.redirect==="follow"){t.serviceWorkers="none"}r=s=await httpNetworkOrCacheFetch(e);if(t.responseTainting==="cors"&&w(t,s)==="failure"){return o("cors failure")}if(E(t,s)==="failure"){t.timingAllowFailed=true}}if((t.responseTainting==="opaque"||s.type==="opaque")&&v(t.origin,t.client,t.destination,r)==="blocked"){return o("blocked")}if(W.has(r.status)){if(t.redirect!=="manual"){e.controller.connection.destroy()}if(t.redirect==="error"){s=o("unexpected redirect")}else if(t.redirect==="manual"){s=r}else if(t.redirect==="follow"){s=await httpRedirectFetch(e,s)}else{q(false)}}s.timingInfo=A;return s}function httpRedirectFetch(e,t){const s=e.request;const r=t.internalResponse?t.internalResponse:t;let A;try{A=Q(r,m(s).hash);if(A==null){return t}}catch(e){return Promise.resolve(o(e))}if(!G(A)){return Promise.resolve(o("URL scheme must be a HTTP(S) scheme"))}if(s.redirectCount===20){return Promise.resolve(o("redirect count exceeded"))}s.redirectCount+=1;if(s.mode==="cors"&&(A.username||A.password)&&!F(s,A)){return Promise.resolve(o('cross origin not allowed for request mode "cors"'))}if(s.responseTainting==="cors"&&(A.username||A.password)){return Promise.resolve(o('URL cannot contain credentials for request mode "cors"'))}if(r.status!==303&&s.body!=null&&s.body.source==null){return Promise.resolve(o())}if([301,302].includes(r.status)&&s.method==="POST"||r.status===303&&!de.includes(s.method)){s.method="GET";s.body=null;for(const e of K){s.headersList.delete(e)}}if(!F(m(s),A)){s.headersList.delete("authorization");s.headersList.delete("cookie");s.headersList.delete("host")}if(s.body!=null){q(s.body.source!=null);s.body=V(s.body.source)[0]}const n=e.timingInfo;n.redirectEndTime=n.postRedirectStartTime=k(e.crossOriginIsolatedCapability);if(n.redirectStartTime===0){n.redirectStartTime=n.startTime}s.urlList.push(A);B(s,r);return mainFetch(e,true)}async function httpNetworkOrCacheFetch(e,t=false,s=false){const r=e.request;let n=null;let i=null;let a=null;const c=null;const u=false;if(r.window==="no-window"&&r.redirect==="error"){n=e;i=r}else{i=l(r);n={...e};n.request=i}const p=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic";const g=i.body?i.body.length:null;let d=null;if(i.body==null&&["POST","PUT"].includes(i.method)){d="0"}if(g!=null){d=_(`${g}`)}if(d!=null){i.headersList.append("content-length",d)}if(g!=null&&i.keepalive){}if(i.referrer instanceof URL){i.headersList.append("referer",_(i.referrer.href))}C(i);y(i);if(!i.headersList.contains("user-agent")){i.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))){i.cache="no-store"}if(i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")){i.headersList.append("cache-control","max-age=0")}if(i.cache==="no-store"||i.cache==="reload"){if(!i.headersList.contains("pragma")){i.headersList.append("pragma","no-cache")}if(!i.headersList.contains("cache-control")){i.headersList.append("cache-control","no-cache")}}if(i.headersList.contains("range")){i.headersList.append("accept-encoding","identity")}if(!i.headersList.contains("accept-encoding")){if(O(m(i))){i.headersList.append("accept-encoding","br, gzip, deflate")}else{i.headersList.append("accept-encoding","gzip, deflate")}}i.headersList.delete("host");if(p){}if(c==null){i.cache="no-store"}if(i.mode!=="no-store"&&i.mode!=="reload"){}if(a==null){if(i.mode==="only-if-cached"){return o("only if cached")}const e=await httpNetworkFetch(n,p,s);if(!z.has(i.method)&&e.status>=200&&e.status<=399){}if(u&&e.status===304){}if(a==null){a=e}}a.urlList=[...i.urlList];if(i.headersList.contains("range")){a.rangeRequested=true}a.requestIncludesCredentials=p;if(a.status===407){if(r.window==="no-window"){return o()}if(S(e)){return A(e)}return o("proxy authentication required")}if(a.status===421&&!s&&(r.body==null||r.body.source!=null)){if(S(e)){return A(e)}e.controller.connection.destroy();a=await httpNetworkOrCacheFetch(e,t,true)}if(t){}return a}async function httpNetworkFetch(e,t=false,r=false){q(!e.controller.connection||e.controller.connection.destroyed);e.controller.connection={abort:null,destroyed:false,destroy(e){if(!this.destroyed){this.destroyed=true;this.abort?.(e??new Z("The operation was aborted.","AbortError"))}}};const n=e.request;let c=null;const l=e.timingInfo;const p=null;if(p==null){n.cache="no-store"}const g=r?"yes":"no";if(n.mode==="websocket"){}else{}let d=null;if(n.body==null&&e.processRequestEndOfBody){queueMicrotask((()=>e.processRequestEndOfBody()))}else if(n.body!=null){const processBodyChunk=async function*(t){if(S(e)){return}yield t;e.processRequestBodyChunkLength?.(t.byteLength)};const processEndOfBody=()=>{if(S(e)){return}if(e.processRequestEndOfBody){e.processRequestEndOfBody()}};const processBodyError=t=>{if(S(e)){return}if(t.name==="AbortError"){e.controller.abort()}else{e.controller.terminate(t)}};d=async function*(){try{for await(const e of n.body.stream){yield*processBodyChunk(e)}processEndOfBody()}catch(e){processBodyError(e)}}()}try{const{body:t,status:s,statusText:r,headersList:o,socket:A}=await dispatch({body:d});if(A){c=i({status:s,statusText:r,headersList:o,socket:A})}else{const A=t[Symbol.asyncIterator]();e.controller.next=()=>A.next();c=i({status:s,statusText:r,headersList:o})}}catch(t){if(t.name==="AbortError"){e.controller.connection.destroy();return A(e,t)}return o(t)}const pullAlgorithm=()=>{e.controller.resume()};const cancelAlgorithm=t=>{e.controller.abort(t)};if(!Ee){Ee=s(5356).ReadableStream}const h=new Ee({async start(t){e.controller.controller=t},async pull(e){await pullAlgorithm(e)},async cancel(e){await cancelAlgorithm(e)}},{highWaterMark:0,size(){return 1}});c.body={stream:h};e.controller.on("terminated",onAborted);e.controller.resume=async()=>{while(true){let t;let s;try{const{done:s,value:r}=await e.controller.next();if(T(e)){break}t=s?undefined:r}catch(r){if(e.controller.ended&&!l.encodedBodySize){t=undefined}else{t=r;s=true}}if(t===undefined){L(e.controller.controller);finalizeResponse(e,c);return}l.decodedBodySize+=t?.byteLength??0;if(s){e.controller.terminate(t);return}e.controller.controller.enqueue(new Uint8Array(t));if(oe(h)){e.controller.terminate();return}if(!e.controller.controller.desiredSize){return}}};function onAborted(t){if(T(e)){c.aborted=true;if(Ae(h)){e.controller.controller.error(e.controller.serializedAbortReason)}}else{if(Ae(h)){e.controller.controller.error(new TypeError("terminated",{cause:U(t)?t:undefined}))}}e.controller.connection.destroy()}return c;async function dispatch({body:t}){const s=m(n);const r=e.controller.dispatcher;return new Promise(((o,A)=>r.dispatch({path:s.pathname+s.search,origin:s.origin,method:n.method,body:e.controller.dispatcher.isMockActive?n.body&&(n.body.source||n.body.stream):t,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(t){const{connection:s}=e.controller;if(s.destroyed){t(new Z("The operation was aborted.","AbortError"))}else{e.controller.on("terminated",t);this.abort=s.abort=t}},onHeaders(e,t,s,r){if(e<200){return}let A=[];let i="";const c=new a;if(Array.isArray(t)){for(let e=0;ee.trim()))}else if(s.toLowerCase()==="location"){i=r}c[$].append(s,r)}}else{const e=Object.keys(t);for(const s of e){const e=t[s];if(s.toLowerCase()==="content-encoding"){A=e.toLowerCase().split(",").map((e=>e.trim())).reverse()}else if(s.toLowerCase()==="location"){i=e}c[$].append(s,e)}}this.body=new te({read:s});const l=[];const p=n.redirect==="follow"&&i&&W.has(e);if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!j.includes(e)&&!p){for(const e of A){if(e==="x-gzip"||e==="gzip"){l.push(u.createGunzip({flush:u.constants.Z_SYNC_FLUSH,finishFlush:u.constants.Z_SYNC_FLUSH}))}else if(e==="deflate"){l.push(u.createInflate())}else if(e==="br"){l.push(u.createBrotliDecompress())}else{l.length=0;break}}}o({status:e,statusText:r,headersList:c[$],body:l.length?se(this.body,...l,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(t){if(e.controller.dump){return}const s=t;l.encodedBodySize+=s.byteLength;return this.body.push(s)},onComplete(){if(this.abort){e.controller.off("terminated",this.abort)}e.controller.ended=true;this.body.push(null)},onError(t){if(this.abort){e.controller.off("terminated",this.abort)}this.body?.destroy(t);e.controller.terminate(t);A(t)},onUpgrade(e,t,s){if(e!==101){return}const r=new a;for(let e=0;e{const{extractBody:r,mixinBody:o,cloneBody:A}=s(1226);const{Headers:n,fill:i,HeadersList:a}=s(1855);const{FinalizationRegistry:c}=s(5285)();const l=s(7497);const{isValidHTTPToken:u,sameOrigin:p,normalizeMethod:g,makePolicyContainer:d,normalizeMethodRecord:h}=s(5496);const{forbiddenMethodsSet:E,corsSafeListedMethodsSet:C,referrerPolicy:Q,requestRedirect:m,requestMode:B,requestCredentials:I,requestCache:b,requestDuplex:y}=s(7533);const{kEnumerableProperty:w}=l;const{kHeaders:v,kSignal:R,kState:k,kGuard:D,kRealm:x}=s(5376);const{webidl:F}=s(9111);const{getGlobalOrigin:S}=s(7011);const{URLSerializer:T}=s(5958);const{kHeadersList:U,kConstruct:N}=s(3932);const L=s(9491);const{getMaxListeners:_,setMaxListeners:M,getEventListeners:G,defaultMaxListeners:O}=s(2361);let P=globalThis.TransformStream;const H=Symbol("abortController");const Y=new c((({signal:e,abort:t})=>{e.removeEventListener("abort",t)}));class Request{constructor(e,t={}){if(e===N){return}F.argumentLengthCheck(arguments,1,{header:"Request constructor"});e=F.converters.RequestInfo(e);t=F.converters.RequestInit(t);this[x]={settingsObject:{baseUrl:S(),get origin(){return this.baseUrl?.origin},policyContainer:d()}};let o=null;let A=null;const c=this[x].settingsObject.baseUrl;let Q=null;if(typeof e==="string"){let t;try{t=new URL(e,c)}catch(t){throw new TypeError("Failed to parse URL from "+e,{cause:t})}if(t.username||t.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e)}o=makeRequest({urlList:[t]});A="cors"}else{L(e instanceof Request);o=e[k];Q=e[R]}const m=this[x].settingsObject.origin;let B="client";if(o.window?.constructor?.name==="EnvironmentSettingsObject"&&p(o.window,m)){B=o.window}if(t.window!=null){throw new TypeError(`'window' option '${B}' must be null`)}if("window"in t){B="no-window"}o=makeRequest({method:o.method,headersList:o.headersList,unsafeRequest:o.unsafeRequest,client:this[x].settingsObject,window:B,priority:o.priority,origin:o.origin,referrer:o.referrer,referrerPolicy:o.referrerPolicy,mode:o.mode,credentials:o.credentials,cache:o.cache,redirect:o.redirect,integrity:o.integrity,keepalive:o.keepalive,reloadNavigation:o.reloadNavigation,historyNavigation:o.historyNavigation,urlList:[...o.urlList]});const I=Object.keys(t).length!==0;if(I){if(o.mode==="navigate"){o.mode="same-origin"}o.reloadNavigation=false;o.historyNavigation=false;o.origin="client";o.referrer="client";o.referrerPolicy="";o.url=o.urlList[o.urlList.length-1];o.urlList=[o.url]}if(t.referrer!==undefined){const e=t.referrer;if(e===""){o.referrer="no-referrer"}else{let t;try{t=new URL(e,c)}catch(t){throw new TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}if(t.protocol==="about:"&&t.hostname==="client"||m&&!p(t,this[x].settingsObject.baseUrl)){o.referrer="client"}else{o.referrer=t}}}if(t.referrerPolicy!==undefined){o.referrerPolicy=t.referrerPolicy}let b;if(t.mode!==undefined){b=t.mode}else{b=A}if(b==="navigate"){throw F.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(b!=null){o.mode=b}if(t.credentials!==undefined){o.credentials=t.credentials}if(t.cache!==undefined){o.cache=t.cache}if(o.cache==="only-if-cached"&&o.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(t.redirect!==undefined){o.redirect=t.redirect}if(t.integrity!=null){o.integrity=String(t.integrity)}if(t.keepalive!==undefined){o.keepalive=Boolean(t.keepalive)}if(t.method!==undefined){let e=t.method;if(!u(e)){throw new TypeError(`'${e}' is not a valid HTTP method.`)}if(E.has(e.toUpperCase())){throw new TypeError(`'${e}' HTTP method is unsupported.`)}e=h[e]??g(e);o.method=e}if(t.signal!==undefined){Q=t.signal}this[k]=o;const y=new AbortController;this[R]=y.signal;this[R][x]=this[x];if(Q!=null){if(!Q||typeof Q.aborted!=="boolean"||typeof Q.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(Q.aborted){y.abort(Q.reason)}else{this[H]=y;const e=new WeakRef(y);const abort=function(){const t=e.deref();if(t!==undefined){t.abort(this.reason)}};try{if(typeof _==="function"&&_(Q)===O){M(100,Q)}else if(G(Q,"abort").length>=O){M(100,Q)}}catch{}l.addAbortListener(Q,abort);Y.register(y,{signal:Q,abort:abort})}}this[v]=new n(N);this[v][U]=o.headersList;this[v][D]="request";this[v][x]=this[x];if(b==="no-cors"){if(!C.has(o.method)){throw new TypeError(`'${o.method} is unsupported in no-cors mode.`)}this[v][D]="request-no-cors"}if(I){const e=this[v][U];const s=t.headers!==undefined?t.headers:new a(e);e.clear();if(s instanceof a){for(const[t,r]of s){e.append(t,r)}e.cookies=s.cookies}else{i(this[v],s)}}const w=e instanceof Request?e[k].body:null;if((t.body!=null||w!=null)&&(o.method==="GET"||o.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let T=null;if(t.body!=null){const[e,s]=r(t.body,o.keepalive);T=e;if(s&&!this[v][U].contains("content-type")){this[v].append("content-type",s)}}const J=T??w;if(J!=null&&J.source==null){if(T!=null&&t.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(o.mode!=="same-origin"&&o.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}o.useCORSPreflightFlag=true}let q=J;if(T==null&&w!=null){if(l.isDisturbed(w.stream)||w.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!P){P=s(5356).TransformStream}const e=new P;w.stream.pipeThrough(e);q={source:w.source,length:w.length,stream:e.readable}}this[k].body=q}get method(){F.brandCheck(this,Request);return this[k].method}get url(){F.brandCheck(this,Request);return T(this[k].url)}get headers(){F.brandCheck(this,Request);return this[v]}get destination(){F.brandCheck(this,Request);return this[k].destination}get referrer(){F.brandCheck(this,Request);if(this[k].referrer==="no-referrer"){return""}if(this[k].referrer==="client"){return"about:client"}return this[k].referrer.toString()}get referrerPolicy(){F.brandCheck(this,Request);return this[k].referrerPolicy}get mode(){F.brandCheck(this,Request);return this[k].mode}get credentials(){return this[k].credentials}get cache(){F.brandCheck(this,Request);return this[k].cache}get redirect(){F.brandCheck(this,Request);return this[k].redirect}get integrity(){F.brandCheck(this,Request);return this[k].integrity}get keepalive(){F.brandCheck(this,Request);return this[k].keepalive}get isReloadNavigation(){F.brandCheck(this,Request);return this[k].reloadNavigation}get isHistoryNavigation(){F.brandCheck(this,Request);return this[k].historyNavigation}get signal(){F.brandCheck(this,Request);return this[R]}get body(){F.brandCheck(this,Request);return this[k].body?this[k].body.stream:null}get bodyUsed(){F.brandCheck(this,Request);return!!this[k].body&&l.isDisturbed(this[k].body.stream)}get duplex(){F.brandCheck(this,Request);return"half"}clone(){F.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const e=cloneRequest(this[k]);const t=new Request(N);t[k]=e;t[x]=this[x];t[v]=new n(N);t[v][U]=e.headersList;t[v][D]=this[v][D];t[v][x]=this[v][x];const s=new AbortController;if(this.signal.aborted){s.abort(this.signal.reason)}else{l.addAbortListener(this.signal,(()=>{s.abort(this.signal.reason)}))}t[R]=s.signal;return t}}o(Request);function makeRequest(e){const t={method:"GET",localURLsOnly:false,unsafeRequest:false,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:false,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:false,credentials:"same-origin",useCredentials:false,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:false,historyNavigation:false,userActivation:false,taintedOrigin:false,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:false,done:false,timingAllowFailed:false,...e,headersList:e.headersList?new a(e.headersList):new a};t.url=t.urlList[0];return t}function cloneRequest(e){const t=makeRequest({...e,body:null});if(e.body!=null){t.body=A(e.body)}return t}Object.defineProperties(Request.prototype,{method:w,url:w,headers:w,redirect:w,clone:w,signal:w,duplex:w,destination:w,body:w,bodyUsed:w,isHistoryNavigation:w,isReloadNavigation:w,keepalive:w,integrity:w,cache:w,credentials:w,attribute:w,referrerPolicy:w,referrer:w,mode:w,[Symbol.toStringTag]:{value:"Request",configurable:true}});F.converters.Request=F.interfaceConverter(Request);F.converters.RequestInfo=function(e){if(typeof e==="string"){return F.converters.USVString(e)}if(e instanceof Request){return F.converters.Request(e)}return F.converters.USVString(e)};F.converters.AbortSignal=F.interfaceConverter(AbortSignal);F.converters.RequestInit=F.dictionaryConverter([{key:"method",converter:F.converters.ByteString},{key:"headers",converter:F.converters.HeadersInit},{key:"body",converter:F.nullableConverter(F.converters.BodyInit)},{key:"referrer",converter:F.converters.USVString},{key:"referrerPolicy",converter:F.converters.DOMString,allowedValues:Q},{key:"mode",converter:F.converters.DOMString,allowedValues:B},{key:"credentials",converter:F.converters.DOMString,allowedValues:I},{key:"cache",converter:F.converters.DOMString,allowedValues:b},{key:"redirect",converter:F.converters.DOMString,allowedValues:m},{key:"integrity",converter:F.converters.DOMString},{key:"keepalive",converter:F.converters.boolean},{key:"signal",converter:F.nullableConverter((e=>F.converters.AbortSignal(e,{strict:false})))},{key:"window",converter:F.converters.any},{key:"duplex",converter:F.converters.DOMString,allowedValues:y}]);e.exports={Request:Request,makeRequest:makeRequest}},3950:(e,t,s)=>{const{Headers:r,HeadersList:o,fill:A}=s(1855);const{extractBody:n,cloneBody:i,mixinBody:a}=s(1226);const c=s(7497);const{kEnumerableProperty:l}=c;const{isValidReasonPhrase:u,isCancelled:p,isAborted:g,isBlobLike:d,serializeJavascriptValueToJSONString:h,isErrorLike:E,isomorphicEncode:C}=s(5496);const{redirectStatusSet:Q,nullBodyStatus:m,DOMException:B}=s(7533);const{kState:I,kHeaders:b,kGuard:y,kRealm:w}=s(5376);const{webidl:v}=s(9111);const{FormData:R}=s(9425);const{getGlobalOrigin:k}=s(7011);const{URLSerializer:D}=s(5958);const{kHeadersList:x,kConstruct:F}=s(3932);const S=s(9491);const{types:T}=s(3837);const U=globalThis.ReadableStream||s(5356).ReadableStream;const N=new TextEncoder("utf-8");class Response{static error(){const e={settingsObject:{}};const t=new Response;t[I]=makeNetworkError();t[w]=e;t[b][x]=t[I].headersList;t[b][y]="immutable";t[b][w]=e;return t}static json(e,t={}){v.argumentLengthCheck(arguments,1,{header:"Response.json"});if(t!==null){t=v.converters.ResponseInit(t)}const s=N.encode(h(e));const r=n(s);const o={settingsObject:{}};const A=new Response;A[w]=o;A[b][y]="response";A[b][w]=o;initializeResponse(A,t,{body:r[0],type:"application/json"});return A}static redirect(e,t=302){const s={settingsObject:{}};v.argumentLengthCheck(arguments,1,{header:"Response.redirect"});e=v.converters.USVString(e);t=v.converters["unsigned short"](t);let r;try{r=new URL(e,k())}catch(t){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:t})}if(!Q.has(t)){throw new RangeError("Invalid status code "+t)}const o=new Response;o[w]=s;o[b][y]="immutable";o[b][w]=s;o[I].status=t;const A=C(D(r));o[I].headersList.append("location",A);return o}constructor(e=null,t={}){if(e!==null){e=v.converters.BodyInit(e)}t=v.converters.ResponseInit(t);this[w]={settingsObject:{}};this[I]=makeResponse({});this[b]=new r(F);this[b][y]="response";this[b][x]=this[I].headersList;this[b][w]=this[w];let s=null;if(e!=null){const[t,r]=n(e);s={body:t,type:r}}initializeResponse(this,t,s)}get type(){v.brandCheck(this,Response);return this[I].type}get url(){v.brandCheck(this,Response);const e=this[I].urlList;const t=e[e.length-1]??null;if(t===null){return""}return D(t,true)}get redirected(){v.brandCheck(this,Response);return this[I].urlList.length>1}get status(){v.brandCheck(this,Response);return this[I].status}get ok(){v.brandCheck(this,Response);return this[I].status>=200&&this[I].status<=299}get statusText(){v.brandCheck(this,Response);return this[I].statusText}get headers(){v.brandCheck(this,Response);return this[b]}get body(){v.brandCheck(this,Response);return this[I].body?this[I].body.stream:null}get bodyUsed(){v.brandCheck(this,Response);return!!this[I].body&&c.isDisturbed(this[I].body.stream)}clone(){v.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw v.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const e=cloneResponse(this[I]);const t=new Response;t[I]=e;t[w]=this[w];t[b][x]=e.headersList;t[b][y]=this[b][y];t[b][w]=this[b][w];return t}}a(Response);Object.defineProperties(Response.prototype,{type:l,url:l,status:l,ok:l,redirected:l,statusText:l,headers:l,clone:l,body:l,bodyUsed:l,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object.defineProperties(Response,{json:l,redirect:l,error:l});function cloneResponse(e){if(e.internalResponse){return filterResponse(cloneResponse(e.internalResponse),e.type)}const t=makeResponse({...e,body:null});if(e.body!=null){t.body=i(e.body)}return t}function makeResponse(e){return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new o(e.headersList):new o,urlList:e.urlList?[...e.urlList]:[]}}function makeNetworkError(e){const t=E(e);return makeResponse({type:"error",status:0,error:t?e:new Error(e?String(e):e),aborted:e&&e.name==="AbortError"})}function makeFilteredResponse(e,t){t={internalResponse:e,...t};return new Proxy(e,{get(e,s){return s in t?t[s]:e[s]},set(e,s,r){S(!(s in t));e[s]=r;return true}})}function filterResponse(e,t){if(t==="basic"){return makeFilteredResponse(e,{type:"basic",headersList:e.headersList})}else if(t==="cors"){return makeFilteredResponse(e,{type:"cors",headersList:e.headersList})}else if(t==="opaque"){return makeFilteredResponse(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(t==="opaqueredirect"){return makeFilteredResponse(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{S(false)}}function makeAppropriateNetworkError(e,t=null){S(p(e));return g(e)?makeNetworkError(Object.assign(new B("The operation was aborted.","AbortError"),{cause:t})):makeNetworkError(Object.assign(new B("Request was cancelled."),{cause:t}))}function initializeResponse(e,t,s){if(t.status!==null&&(t.status<200||t.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in t&&t.statusText!=null){if(!u(String(t.statusText))){throw new TypeError("Invalid statusText")}}if("status"in t&&t.status!=null){e[I].status=t.status}if("statusText"in t&&t.statusText!=null){e[I].statusText=t.statusText}if("headers"in t&&t.headers!=null){A(e[b],t.headers)}if(s){if(m.includes(e.status)){throw v.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status})}e[I].body=s.body;if(s.type!=null&&!e[I].headersList.contains("Content-Type")){e[I].headersList.append("content-type",s.type)}}}v.converters.ReadableStream=v.interfaceConverter(U);v.converters.FormData=v.interfaceConverter(R);v.converters.URLSearchParams=v.interfaceConverter(URLSearchParams);v.converters.XMLHttpRequestBodyInit=function(e){if(typeof e==="string"){return v.converters.USVString(e)}if(d(e)){return v.converters.Blob(e,{strict:false})}if(T.isArrayBuffer(e)||T.isTypedArray(e)||T.isDataView(e)){return v.converters.BufferSource(e)}if(c.isFormDataLike(e)){return v.converters.FormData(e,{strict:false})}if(e instanceof URLSearchParams){return v.converters.URLSearchParams(e)}return v.converters.DOMString(e)};v.converters.BodyInit=function(e){if(e instanceof U){return v.converters.ReadableStream(e)}if(e?.[Symbol.asyncIterator]){return e}return v.converters.XMLHttpRequestBodyInit(e)};v.converters.ResponseInit=v.dictionaryConverter([{key:"status",converter:v.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:v.converters.ByteString,defaultValue:""},{key:"headers",converter:v.converters.HeadersInit}]);e.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},5376:e=>{e.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},5496:(e,t,s)=>{const{redirectStatusSet:r,referrerPolicySet:o,badPortsSet:A}=s(7533);const{getGlobalOrigin:n}=s(7011);const{performance:i}=s(4074);const{isBlobLike:a,toUSVString:c,ReadableStreamFrom:l}=s(7497);const u=s(9491);const{isUint8Array:p}=s(9830);let g;try{g=s(6113)}catch{}function responseURL(e){const t=e.urlList;const s=t.length;return s===0?null:t[s-1].toString()}function responseLocationURL(e,t){if(!r.has(e.status)){return null}let s=e.headersList.get("location");if(s!==null&&isValidHeaderValue(s)){s=new URL(s,responseURL(e))}if(s&&!s.hash){s.hash=t}return s}function requestCurrentURL(e){return e.urlList[e.urlList.length-1]}function requestBadPort(e){const t=requestCurrentURL(e);if(urlIsHttpHttpsScheme(t)&&A.has(t.port)){return"blocked"}return"allowed"}function isErrorLike(e){return e instanceof Error||(e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException")}function isValidReasonPhrase(e){for(let t=0;t=32&&s<=126||s>=128&&s<=255)){return false}}return true}function isTokenCharCode(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return false;default:return e>=33&&e<=126}}function isValidHTTPToken(e){if(e.length===0){return false}for(let t=0;t0){for(let e=r.length;e!==0;e--){const t=r[e-1].trim();if(o.has(t)){A=t;break}}}if(A!==""){e.referrerPolicy=A}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(e){let t=null;t=e.mode;e.headersList.set("sec-fetch-mode",t)}function appendRequestOriginHeader(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket"){if(t){e.headersList.append("origin",t)}}else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(e.origin&&urlHasHttpsScheme(e.origin)&&!urlHasHttpsScheme(requestCurrentURL(e))){t=null}break;case"same-origin":if(!sameOrigin(e,requestCurrentURL(e))){t=null}break;default:}if(t){e.headersList.append("origin",t)}}}function coarsenedSharedCurrentTime(e){return i.now()}function createOpaqueTimingInfo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(e){return{referrerPolicy:e.referrerPolicy}}function determineRequestsReferrer(e){const t=e.referrerPolicy;u(t);let s=null;if(e.referrer==="client"){const e=n();if(!e||e.origin==="null"){return"no-referrer"}s=new URL(e)}else if(e.referrer instanceof URL){s=e.referrer}let r=stripURLForReferrer(s);const o=stripURLForReferrer(s,true);if(r.toString().length>4096){r=o}const A=sameOrigin(e,r);const i=isURLPotentiallyTrustworthy(r)&&!isURLPotentiallyTrustworthy(e.url);switch(t){case"origin":return o!=null?o:stripURLForReferrer(s,true);case"unsafe-url":return r;case"same-origin":return A?o:"no-referrer";case"origin-when-cross-origin":return A?r:o;case"strict-origin-when-cross-origin":{const t=requestCurrentURL(e);if(sameOrigin(r,t)){return r}if(isURLPotentiallyTrustworthy(r)&&!isURLPotentiallyTrustworthy(t)){return"no-referrer"}return o}case"strict-origin":case"no-referrer-when-downgrade":default:return i?"no-referrer":o}}function stripURLForReferrer(e,t){u(e instanceof URL);if(e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"){return"no-referrer"}e.username="";e.password="";e.hash="";if(t){e.pathname="";e.search=""}return e}function isURLPotentiallyTrustworthy(e){if(!(e instanceof URL)){return false}if(e.href==="about:blank"||e.href==="about:srcdoc"){return true}if(e.protocol==="data:")return true;if(e.protocol==="file:")return true;return isOriginPotentiallyTrustworthy(e.origin);function isOriginPotentiallyTrustworthy(e){if(e==null||e==="null")return false;const t=new URL(e);if(t.protocol==="https:"||t.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(t.hostname)||(t.hostname==="localhost"||t.hostname.includes("localhost."))||t.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(e,t){if(g===undefined){return true}const s=parseMetadata(t);if(s==="no metadata"){return true}if(s.length===0){return true}const r=s.sort(((e,t)=>t.algo.localeCompare(e.algo)));const o=r[0].algo;const A=r.filter((e=>e.algo===o));for(const t of A){const s=t.algo;let r=t.hash;if(r.endsWith("==")){r=r.slice(0,-2)}let o=g.createHash(s).update(e).digest("base64");if(o.endsWith("==")){o=o.slice(0,-2)}if(o===r){return true}let A=g.createHash(s).update(e).digest("base64url");if(A.endsWith("==")){A=A.slice(0,-2)}if(A===r){return true}}return false}const d=/((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function parseMetadata(e){const t=[];let s=true;const r=g.getHashes();for(const o of e.split(" ")){s=false;const e=d.exec(o);if(e===null||e.groups===undefined){continue}const A=e.groups.algo;if(r.includes(A.toLowerCase())){t.push(e.groups)}}if(s===true){return"no metadata"}return t}function tryUpgradeRequestToAPotentiallyTrustworthyURL(e){}function sameOrigin(e,t){if(e.origin===t.origin&&e.origin==="null"){return true}if(e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port){return true}return false}function createDeferredPromise(){let e;let t;const s=new Promise(((s,r)=>{e=s;t=r}));return{promise:s,resolve:e,reject:t}}function isAborted(e){return e.controller.state==="aborted"}function isCancelled(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}const h={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(h,null);function normalizeMethod(e){return h[e.toLowerCase()]??e}function serializeJavascriptValueToJSONString(e){const t=JSON.stringify(e);if(t===undefined){throw new TypeError("Value is not JSON serializable")}u(typeof t==="string");return t}const E=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(e,t,s){const r={index:0,kind:s,target:e};const o={next(){if(Object.getPrototypeOf(this)!==o){throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`)}const{index:e,kind:s,target:A}=r;const n=A();const i=n.length;if(e>=i){return{value:undefined,done:true}}const a=n[e];r.index=e+1;return iteratorResult(a,s)},[Symbol.toStringTag]:`${t} Iterator`};Object.setPrototypeOf(o,E);return Object.setPrototypeOf({},o)}function iteratorResult(e,t){let s;switch(t){case"key":{s=e[0];break}case"value":{s=e[1];break}case"key+value":{s=e;break}}return{value:s,done:false}}async function fullyReadBody(e,t,s){const r=t;const o=s;let A;try{A=e.stream.getReader()}catch(e){o(e);return}try{const e=await readAllBytes(A);r(e)}catch(e){o(e)}}let C=globalThis.ReadableStream;function isReadableStreamLike(e){if(!C){C=s(5356).ReadableStream}return e instanceof C||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee==="function"}const Q=65535;function isomorphicDecode(e){if(e.lengthe+String.fromCharCode(t)),"")}function readableStreamClose(e){try{e.close()}catch(e){if(!e.message.includes("Controller is already closed")){throw e}}}function isomorphicEncode(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));e.exports={isAborted:isAborted,isCancelled:isCancelled,createDeferredPromise:createDeferredPromise,ReadableStreamFrom:l,toUSVString:c,tryUpgradeRequestToAPotentiallyTrustworthyURL:tryUpgradeRequestToAPotentiallyTrustworthyURL,coarsenedSharedCurrentTime:coarsenedSharedCurrentTime,determineRequestsReferrer:determineRequestsReferrer,makePolicyContainer:makePolicyContainer,clonePolicyContainer:clonePolicyContainer,appendFetchMetadata:appendFetchMetadata,appendRequestOriginHeader:appendRequestOriginHeader,TAOCheck:TAOCheck,corsCheck:corsCheck,crossOriginResourcePolicyCheck:crossOriginResourcePolicyCheck,createOpaqueTimingInfo:createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect:setRequestReferrerPolicyOnRedirect,isValidHTTPToken:isValidHTTPToken,requestBadPort:requestBadPort,requestCurrentURL:requestCurrentURL,responseURL:responseURL,responseLocationURL:responseLocationURL,isBlobLike:a,isURLPotentiallyTrustworthy:isURLPotentiallyTrustworthy,isValidReasonPhrase:isValidReasonPhrase,sameOrigin:sameOrigin,normalizeMethod:normalizeMethod,serializeJavascriptValueToJSONString:serializeJavascriptValueToJSONString,makeIterator:makeIterator,isValidHeaderName:isValidHeaderName,isValidHeaderValue:isValidHeaderValue,hasOwn:m,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes,normalizeMethodRecord:h}},9111:(e,t,s)=>{const{types:r}=s(3837);const{hasOwn:o,toUSVString:A}=s(5496);const n={};n.converters={};n.util={};n.errors={};n.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};n.errors.conversionFailed=function(e){const t=e.types.length===1?"":" one of";const s=`${e.argument} could not be converted to`+`${t}: ${e.types.join(", ")}.`;return n.errors.exception({header:e.prefix,message:s})};n.errors.invalidArgument=function(e){return n.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};n.brandCheck=function(e,t,s=undefined){if(s?.strict!==false&&!(e instanceof t)){throw new TypeError("Illegal invocation")}else{return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]}};n.argumentLengthCheck=function({length:e},t,s){if(eo){throw n.errors.exception({header:"Integer conversion",message:`Value must be between ${A}-${o}, got ${i}.`})}return i}if(!Number.isNaN(i)&&r.clamp===true){i=Math.min(Math.max(i,A),o);if(Math.floor(i)%2===0){i=Math.floor(i)}else{i=Math.ceil(i)}return i}if(Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY){return 0}i=n.util.IntegerPart(i);i=i%Math.pow(2,t);if(s==="signed"&&i>=Math.pow(2,t)-1){return i-Math.pow(2,t)}return i};n.util.IntegerPart=function(e){const t=Math.floor(Math.abs(e));if(e<0){return-1*t}return t};n.sequenceConverter=function(e){return t=>{if(n.util.Type(t)!=="Object"){throw n.errors.exception({header:"Sequence",message:`Value of type ${n.util.Type(t)} is not an Object.`})}const s=t?.[Symbol.iterator]?.();const r=[];if(s===undefined||typeof s.next!=="function"){throw n.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:t,value:o}=s.next();if(t){break}r.push(e(o))}return r}};n.recordConverter=function(e,t){return s=>{if(n.util.Type(s)!=="Object"){throw n.errors.exception({header:"Record",message:`Value of type ${n.util.Type(s)} is not an Object.`})}const o={};if(!r.isProxy(s)){const r=Object.keys(s);for(const A of r){const r=e(A);const n=t(s[A]);o[r]=n}return o}const A=Reflect.ownKeys(s);for(const r of A){const A=Reflect.getOwnPropertyDescriptor(s,r);if(A?.enumerable){const A=e(r);const n=t(s[r]);o[A]=n}}return o}};n.interfaceConverter=function(e){return(t,s={})=>{if(s.strict!==false&&!(t instanceof e)){throw n.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`})}return t}};n.dictionaryConverter=function(e){return t=>{const s=n.util.Type(t);const r={};if(s==="Null"||s==="Undefined"){return r}else if(s!=="Object"){throw n.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`})}for(const s of e){const{key:e,defaultValue:A,required:i,converter:a}=s;if(i===true){if(!o(t,e)){throw n.errors.exception({header:"Dictionary",message:`Missing required key "${e}".`})}}let c=t[e];const l=o(s,"defaultValue");if(l&&c!==null){c=c??A}if(i||l||c!==undefined){c=a(c);if(s.allowedValues&&!s.allowedValues.includes(c)){throw n.errors.exception({header:"Dictionary",message:`${c} is not an accepted type. Expected one of ${s.allowedValues.join(", ")}.`})}r[e]=c}}return r}};n.nullableConverter=function(e){return t=>{if(t===null){return t}return e(t)}};n.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString){return""}if(typeof e==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(e)};n.converters.ByteString=function(e){const t=n.converters.DOMString(e);for(let e=0;e255){throw new TypeError("Cannot convert argument to a ByteString because the character at "+`index ${e} has a value of ${t.charCodeAt(e)} which is greater than 255.`)}}return t};n.converters.USVString=A;n.converters.boolean=function(e){const t=Boolean(e);return t};n.converters.any=function(e){return e};n.converters["long long"]=function(e){const t=n.util.ConvertToInt(e,64,"signed");return t};n.converters["unsigned long long"]=function(e){const t=n.util.ConvertToInt(e,64,"unsigned");return t};n.converters["unsigned long"]=function(e){const t=n.util.ConvertToInt(e,32,"unsigned");return t};n.converters["unsigned short"]=function(e,t){const s=n.util.ConvertToInt(e,16,"unsigned",t);return s};n.converters.ArrayBuffer=function(e,t={}){if(n.util.Type(e)!=="Object"||!r.isAnyArrayBuffer(e)){throw n.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]})}if(t.allowShared===false&&r.isSharedArrayBuffer(e)){throw n.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};n.converters.TypedArray=function(e,t,s={}){if(n.util.Type(e)!=="Object"||!r.isTypedArray(e)||e.constructor.name!==t.name){throw n.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]})}if(s.allowShared===false&&r.isSharedArrayBuffer(e.buffer)){throw n.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};n.converters.DataView=function(e,t={}){if(n.util.Type(e)!=="Object"||!r.isDataView(e)){throw n.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(t.allowShared===false&&r.isSharedArrayBuffer(e.buffer)){throw n.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};n.converters.BufferSource=function(e,t={}){if(r.isAnyArrayBuffer(e)){return n.converters.ArrayBuffer(e,t)}if(r.isTypedArray(e)){return n.converters.TypedArray(e,e.constructor)}if(r.isDataView(e)){return n.converters.DataView(e,t)}throw new TypeError(`Could not convert ${e} to a BufferSource.`)};n.converters["sequence"]=n.sequenceConverter(n.converters.ByteString);n.converters["sequence>"]=n.sequenceConverter(n.converters["sequence"]);n.converters["record"]=n.recordConverter(n.converters.ByteString,n.converters.ByteString);e.exports={webidl:n}},3532:e=>{function getEncoding(e){if(!e){return"failure"}switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}e.exports={getEncoding:getEncoding}},929:(e,t,s)=>{const{staticPropertyDescriptors:r,readOperation:o,fireAProgressEvent:A}=s(4157);const{kState:n,kError:i,kResult:a,kEvents:c,kAborted:l}=s(9103);const{webidl:u}=s(9111);const{kEnumerableProperty:p}=s(7497);class FileReader extends EventTarget{constructor(){super();this[n]="empty";this[a]=null;this[i]=null;this[c]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});e=u.converters.Blob(e,{strict:false});o(this,e,"ArrayBuffer")}readAsBinaryString(e){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});e=u.converters.Blob(e,{strict:false});o(this,e,"BinaryString")}readAsText(e,t=undefined){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});e=u.converters.Blob(e,{strict:false});if(t!==undefined){t=u.converters.DOMString(t)}o(this,e,"Text",t)}readAsDataURL(e){u.brandCheck(this,FileReader);u.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});e=u.converters.Blob(e,{strict:false});o(this,e,"DataURL")}abort(){if(this[n]==="empty"||this[n]==="done"){this[a]=null;return}if(this[n]==="loading"){this[n]="done";this[a]=null}this[l]=true;A("abort",this);if(this[n]!=="loading"){A("loadend",this)}}get readyState(){u.brandCheck(this,FileReader);switch(this[n]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){u.brandCheck(this,FileReader);return this[a]}get error(){u.brandCheck(this,FileReader);return this[i]}get onloadend(){u.brandCheck(this,FileReader);return this[c].loadend}set onloadend(e){u.brandCheck(this,FileReader);if(this[c].loadend){this.removeEventListener("loadend",this[c].loadend)}if(typeof e==="function"){this[c].loadend=e;this.addEventListener("loadend",e)}else{this[c].loadend=null}}get onerror(){u.brandCheck(this,FileReader);return this[c].error}set onerror(e){u.brandCheck(this,FileReader);if(this[c].error){this.removeEventListener("error",this[c].error)}if(typeof e==="function"){this[c].error=e;this.addEventListener("error",e)}else{this[c].error=null}}get onloadstart(){u.brandCheck(this,FileReader);return this[c].loadstart}set onloadstart(e){u.brandCheck(this,FileReader);if(this[c].loadstart){this.removeEventListener("loadstart",this[c].loadstart)}if(typeof e==="function"){this[c].loadstart=e;this.addEventListener("loadstart",e)}else{this[c].loadstart=null}}get onprogress(){u.brandCheck(this,FileReader);return this[c].progress}set onprogress(e){u.brandCheck(this,FileReader);if(this[c].progress){this.removeEventListener("progress",this[c].progress)}if(typeof e==="function"){this[c].progress=e;this.addEventListener("progress",e)}else{this[c].progress=null}}get onload(){u.brandCheck(this,FileReader);return this[c].load}set onload(e){u.brandCheck(this,FileReader);if(this[c].load){this.removeEventListener("load",this[c].load)}if(typeof e==="function"){this[c].load=e;this.addEventListener("load",e)}else{this[c].load=null}}get onabort(){u.brandCheck(this,FileReader);return this[c].abort}set onabort(e){u.brandCheck(this,FileReader);if(this[c].abort){this.removeEventListener("abort",this[c].abort)}if(typeof e==="function"){this[c].abort=e;this.addEventListener("abort",e)}else{this[c].abort=null}}}FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:r,LOADING:r,DONE:r,readAsArrayBuffer:p,readAsBinaryString:p,readAsText:p,readAsDataURL:p,abort:p,readyState:p,result:p,error:p,onloadstart:p,onprogress:p,onload:p,onabort:p,onerror:p,onloadend:p,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties(FileReader,{EMPTY:r,LOADING:r,DONE:r});e.exports={FileReader:FileReader}},9094:(e,t,s)=>{const{webidl:r}=s(9111);const o=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(e,t={}){e=r.converters.DOMString(e);t=r.converters.ProgressEventInit(t??{});super(e,t);this[o]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){r.brandCheck(this,ProgressEvent);return this[o].lengthComputable}get loaded(){r.brandCheck(this,ProgressEvent);return this[o].loaded}get total(){r.brandCheck(this,ProgressEvent);return this[o].total}}r.converters.ProgressEventInit=r.dictionaryConverter([{key:"lengthComputable",converter:r.converters.boolean,defaultValue:false},{key:"loaded",converter:r.converters["unsigned long long"],defaultValue:0},{key:"total",converter:r.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:r.converters.boolean,defaultValue:false},{key:"cancelable",converter:r.converters.boolean,defaultValue:false},{key:"composed",converter:r.converters.boolean,defaultValue:false}]);e.exports={ProgressEvent:ProgressEvent}},9103:e=>{e.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}},4157:(e,t,s)=>{const{kState:r,kError:o,kResult:A,kAborted:n,kLastProgressEventFired:i}=s(9103);const{ProgressEvent:a}=s(9094);const{getEncoding:c}=s(3532);const{DOMException:l}=s(7533);const{serializeAMimeType:u,parseMIMEType:p}=s(5958);const{types:g}=s(3837);const{StringDecoder:d}=s(1576);const{btoa:h}=s(4300);const E={enumerable:true,writable:false,configurable:false};function readOperation(e,t,s,a){if(e[r]==="loading"){throw new l("Invalid state","InvalidStateError")}e[r]="loading";e[A]=null;e[o]=null;const c=t.stream();const u=c.getReader();const p=[];let d=u.read();let h=true;(async()=>{while(!e[n]){try{const{done:c,value:l}=await d;if(h&&!e[n]){queueMicrotask((()=>{fireAProgressEvent("loadstart",e)}))}h=false;if(!c&&g.isUint8Array(l)){p.push(l);if((e[i]===undefined||Date.now()-e[i]>=50)&&!e[n]){e[i]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",e)}))}d=u.read()}else if(c){queueMicrotask((()=>{e[r]="done";try{const r=packageData(p,s,t.type,a);if(e[n]){return}e[A]=r;fireAProgressEvent("load",e)}catch(t){e[o]=t;fireAProgressEvent("error",e)}if(e[r]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}catch(t){if(e[n]){return}queueMicrotask((()=>{e[r]="done";e[o]=t;fireAProgressEvent("error",e);if(e[r]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}})()}function fireAProgressEvent(e,t){const s=new a(e,{bubbles:false,cancelable:false});t.dispatchEvent(s)}function packageData(e,t,s,r){switch(t){case"DataURL":{let t="data:";const r=p(s||"application/octet-stream");if(r!=="failure"){t+=u(r)}t+=";base64,";const o=new d("latin1");for(const s of e){t+=h(o.write(s))}t+=h(o.end());return t}case"Text":{let t="failure";if(r){t=c(r)}if(t==="failure"&&s){const e=p(s);if(e!=="failure"){t=c(e.parameters.get("charset"))}}if(t==="failure"){t="UTF-8"}return decode(e,t)}case"ArrayBuffer":{const t=combineByteSequences(e);return t.buffer}case"BinaryString":{let t="";const s=new d("latin1");for(const r of e){t+=s.write(r)}t+=s.end();return t}}}function decode(e,t){const s=combineByteSequences(e);const r=BOMSniffing(s);let o=0;if(r!==null){t=r;o=r==="UTF-8"?3:2}const A=s.slice(o);return new TextDecoder(t).decode(A)}function BOMSniffing(e){const[t,s,r]=e;if(t===239&&s===187&&r===191){return"UTF-8"}else if(t===254&&s===255){return"UTF-16BE"}else if(t===255&&s===254){return"UTF-16LE"}return null}function combineByteSequences(e){const t=e.reduce(((e,t)=>e+t.byteLength),0);let s=0;return e.reduce(((e,t)=>{e.set(t,s);s+=t.byteLength;return e}),new Uint8Array(t))}e.exports={staticPropertyDescriptors:E,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},2899:(e,t,s)=>{const r=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:o}=s(2366);const A=s(8840);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new A)}function setGlobalDispatcher(e){if(!e||typeof e.dispatch!=="function"){throw new o("Argument agent must implement Agent")}Object.defineProperty(globalThis,r,{value:e,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[r]}e.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},253:e=>{e.exports=class DecoratorHandler{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}},292:(e,t,s)=>{const r=s(7497);const{kBodyUsed:o}=s(3932);const A=s(9491);const{InvalidArgumentError:n}=s(2366);const i=s(2361);const a=[300,301,302,303,307,308];const c=Symbol("body");class BodyAsyncIterable{constructor(e){this[c]=e;this[o]=false}async*[Symbol.asyncIterator](){A(!this[o],"disturbed");this[o]=true;yield*this[c]}}class RedirectHandler{constructor(e,t,s,a){if(t!=null&&(!Number.isInteger(t)||t<0)){throw new n("maxRedirections must be a positive number")}r.validateHandler(a,s.method,s.upgrade);this.dispatch=e;this.location=null;this.abort=null;this.opts={...s,maxRedirections:0};this.maxRedirections=t;this.handler=a;this.history=[];if(r.isStream(this.opts.body)){if(r.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){A(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[o]=false;i.prototype.on.call(this.opts.body,"data",(function(){this[o]=true}))}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&r.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(e){this.abort=e;this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,s){this.handler.onUpgrade(e,t,s)}onError(e){this.handler.onError(e)}onHeaders(e,t,s,o){this.location=this.history.length>=this.maxRedirections||r.isDisturbed(this.opts.body)?null:parseLocation(e,t);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(e,t,s,o)}const{origin:A,pathname:n,search:i}=r.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const a=i?`${n}${i}`:n;this.opts.headers=cleanRequestHeaders(this.opts.headers,e===303,this.opts.origin!==A);this.opts.path=a;this.opts.origin=A;this.opts.maxRedirections=0;this.opts.query=null;if(e===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(e){if(this.location){}else{return this.handler.onData(e)}}onComplete(e){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(e)}}onBodySent(e){if(this.handler.onBodySent){this.handler.onBodySent(e)}}}function parseLocation(e,t){if(a.indexOf(e)===-1){return null}for(let e=0;e{const r=s(9491);const{kRetryHandlerDefaultRetry:o}=s(3932);const{RequestRetryError:A}=s(2366);const{isDisturbed:n,parseHeaders:i,parseRangeHeader:a}=s(7497);function calculateRetryAfterHeader(e){const t=Date.now();const s=new Date(e).getTime()-t;return s}class RetryHandler{constructor(e,t){const{retryOptions:s,...r}=e;const{retry:A,maxRetries:n,maxTimeout:i,minTimeout:a,timeoutFactor:c,methods:l,errorCodes:u,retryAfter:p,statusCodes:g}=s??{};this.dispatch=t.dispatch;this.handler=t.handler;this.opts=r;this.abort=null;this.aborted=false;this.retryOpts={retry:A??RetryHandler[o],retryAfter:p??true,maxTimeout:i??30*1e3,timeout:a??500,timeoutFactor:c??2,maxRetries:n??5,methods:l??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:g??[500,502,503,504,429],errorCodes:u??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]};this.retryCount=0;this.start=0;this.end=null;this.etag=null;this.resume=null;this.handler.onConnect((e=>{this.aborted=true;if(this.abort){this.abort(e)}else{this.reason=e}}))}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(e,t,s){if(this.handler.onUpgrade){this.handler.onUpgrade(e,t,s)}}onConnect(e){if(this.aborted){e(this.reason)}else{this.abort=e}}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[o](e,{state:t,opts:s},r){const{statusCode:o,code:A,headers:n}=e;const{method:i,retryOptions:a}=s;const{maxRetries:c,timeout:l,maxTimeout:u,timeoutFactor:p,statusCodes:g,errorCodes:d,methods:h}=a;let{counter:E,currentTimeout:C}=t;C=C!=null&&C>0?C:l;if(A&&A!=="UND_ERR_REQ_RETRY"&&A!=="UND_ERR_SOCKET"&&!d.includes(A)){r(e);return}if(Array.isArray(h)&&!h.includes(i)){r(e);return}if(o!=null&&Array.isArray(g)&&!g.includes(o)){r(e);return}if(E>c){r(e);return}let Q=n!=null&&n["retry-after"];if(Q){Q=Number(Q);Q=isNaN(Q)?calculateRetryAfterHeader(Q):Q*1e3}const m=Q>0?Math.min(Q,u):Math.min(C*p**E,u);t.currentTimeout=m;setTimeout((()=>r(null)),m)}onHeaders(e,t,s,o){const n=i(t);this.retryCount+=1;if(e>=300){this.abort(new A("Request failed",e,{headers:n,count:this.retryCount}));return false}if(this.resume!=null){this.resume=null;if(e!==206){return true}const t=a(n["content-range"]);if(!t){this.abort(new A("Content-Range mismatch",e,{headers:n,count:this.retryCount}));return false}if(this.etag!=null&&this.etag!==n.etag){this.abort(new A("ETag mismatch",e,{headers:n,count:this.retryCount}));return false}const{start:o,size:i,end:c=i}=t;r(this.start===o,"content-range mismatch");r(this.end==null||this.end===c,"content-range mismatch");this.resume=s;return true}if(this.end==null){if(e===206){const A=a(n["content-range"]);if(A==null){return this.handler.onHeaders(e,t,s,o)}const{start:i,size:c,end:l=c}=A;r(i!=null&&Number.isFinite(i)&&this.start!==i,"content-range mismatch");r(Number.isFinite(i));r(l!=null&&Number.isFinite(l)&&this.end!==l,"invalid content-length");this.start=i;this.end=l}if(this.end==null){const e=n["content-length"];this.end=e!=null?Number(e):null}r(Number.isFinite(this.start));r(this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=s;this.etag=n.etag!=null?n.etag:null;return this.handler.onHeaders(e,t,s,o)}const c=new A("Request failed",e,{headers:n,count:this.retryCount});this.abort(c);return false}onData(e){this.start+=e.length;return this.handler.onData(e)}onComplete(e){this.retryCount=0;return this.handler.onComplete(e)}onError(e){if(this.aborted||n(this.opts.body)){return this.handler.onError(e)}this.retryOpts.retry(e,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(e){if(e!=null||this.aborted||n(this.opts.body)){return this.handler.onError(e)}if(this.start!==0){this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}}}try{this.dispatch(this.opts,this)}catch(e){this.handler.onError(e)}}}}e.exports=RetryHandler},3167:(e,t,s)=>{const r=s(292);function createRedirectInterceptor({maxRedirections:e}){return t=>function Intercept(s,o){const{maxRedirections:A=e}=s;if(!A){return t(s,o)}const n=new r(t,A,s,o);s={...s,maxRedirections:0};return t(s,n)}}e.exports=createRedirectInterceptor},5749:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t.SPECIAL_HEADERS=t.HEADER_STATE=t.MINOR=t.MAJOR=t.CONNECTION_TOKEN_CHARS=t.HEADER_CHARS=t.TOKEN=t.STRICT_TOKEN=t.HEX=t.URL_CHAR=t.STRICT_URL_CHAR=t.USERINFO_CHARS=t.MARK=t.ALPHANUM=t.NUM=t.HEX_MAP=t.NUM_MAP=t.ALPHA=t.FINISH=t.H_METHOD_MAP=t.METHOD_MAP=t.METHODS_RTSP=t.METHODS_ICE=t.METHODS_HTTP=t.METHODS=t.LENIENT_FLAGS=t.FLAGS=t.TYPE=t.ERROR=void 0;const r=s(4778);var o;(function(e){e[e["OK"]=0]="OK";e[e["INTERNAL"]=1]="INTERNAL";e[e["STRICT"]=2]="STRICT";e[e["LF_EXPECTED"]=3]="LF_EXPECTED";e[e["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";e[e["CLOSED_CONNECTION"]=5]="CLOSED_CONNECTION";e[e["INVALID_METHOD"]=6]="INVALID_METHOD";e[e["INVALID_URL"]=7]="INVALID_URL";e[e["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";e[e["INVALID_VERSION"]=9]="INVALID_VERSION";e[e["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";e[e["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";e[e["INVALID_CHUNK_SIZE"]=12]="INVALID_CHUNK_SIZE";e[e["INVALID_STATUS"]=13]="INVALID_STATUS";e[e["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";e[e["INVALID_TRANSFER_ENCODING"]=15]="INVALID_TRANSFER_ENCODING";e[e["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";e[e["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";e[e["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLETE";e[e["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";e[e["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";e[e["PAUSED"]=21]="PAUSED";e[e["PAUSED_UPGRADE"]=22]="PAUSED_UPGRADE";e[e["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";e[e["USER"]=24]="USER"})(o=t.ERROR||(t.ERROR={}));var A;(function(e){e[e["BOTH"]=0]="BOTH";e[e["REQUEST"]=1]="REQUEST";e[e["RESPONSE"]=2]="RESPONSE"})(A=t.TYPE||(t.TYPE={}));var n;(function(e){e[e["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";e[e["CHUNKED"]=8]="CHUNKED";e[e["UPGRADE"]=16]="UPGRADE";e[e["CONTENT_LENGTH"]=32]="CONTENT_LENGTH";e[e["SKIPBODY"]=64]="SKIPBODY";e[e["TRAILING"]=128]="TRAILING";e[e["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(n=t.FLAGS||(t.FLAGS={}));var i;(function(e){e[e["HEADERS"]=1]="HEADERS";e[e["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";e[e["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(i=t.LENIENT_FLAGS||(t.LENIENT_FLAGS={}));var a;(function(e){e[e["DELETE"]=0]="DELETE";e[e["GET"]=1]="GET";e[e["HEAD"]=2]="HEAD";e[e["POST"]=3]="POST";e[e["PUT"]=4]="PUT";e[e["CONNECT"]=5]="CONNECT";e[e["OPTIONS"]=6]="OPTIONS";e[e["TRACE"]=7]="TRACE";e[e["COPY"]=8]="COPY";e[e["LOCK"]=9]="LOCK";e[e["MKCOL"]=10]="MKCOL";e[e["MOVE"]=11]="MOVE";e[e["PROPFIND"]=12]="PROPFIND";e[e["PROPPATCH"]=13]="PROPPATCH";e[e["SEARCH"]=14]="SEARCH";e[e["UNLOCK"]=15]="UNLOCK";e[e["BIND"]=16]="BIND";e[e["REBIND"]=17]="REBIND";e[e["UNBIND"]=18]="UNBIND";e[e["ACL"]=19]="ACL";e[e["REPORT"]=20]="REPORT";e[e["MKACTIVITY"]=21]="MKACTIVITY";e[e["CHECKOUT"]=22]="CHECKOUT";e[e["MERGE"]=23]="MERGE";e[e["M-SEARCH"]=24]="M-SEARCH";e[e["NOTIFY"]=25]="NOTIFY";e[e["SUBSCRIBE"]=26]="SUBSCRIBE";e[e["UNSUBSCRIBE"]=27]="UNSUBSCRIBE";e[e["PATCH"]=28]="PATCH";e[e["PURGE"]=29]="PURGE";e[e["MKCALENDAR"]=30]="MKCALENDAR";e[e["LINK"]=31]="LINK";e[e["UNLINK"]=32]="UNLINK";e[e["SOURCE"]=33]="SOURCE";e[e["PRI"]=34]="PRI";e[e["DESCRIBE"]=35]="DESCRIBE";e[e["ANNOUNCE"]=36]="ANNOUNCE";e[e["SETUP"]=37]="SETUP";e[e["PLAY"]=38]="PLAY";e[e["PAUSE"]=39]="PAUSE";e[e["TEARDOWN"]=40]="TEARDOWN";e[e["GET_PARAMETER"]=41]="GET_PARAMETER";e[e["SET_PARAMETER"]=42]="SET_PARAMETER";e[e["REDIRECT"]=43]="REDIRECT";e[e["RECORD"]=44]="RECORD";e[e["FLUSH"]=45]="FLUSH"})(a=t.METHODS||(t.METHODS={}));t.METHODS_HTTP=[a.DELETE,a.GET,a.HEAD,a.POST,a.PUT,a.CONNECT,a.OPTIONS,a.TRACE,a.COPY,a.LOCK,a.MKCOL,a.MOVE,a.PROPFIND,a.PROPPATCH,a.SEARCH,a.UNLOCK,a.BIND,a.REBIND,a.UNBIND,a.ACL,a.REPORT,a.MKACTIVITY,a.CHECKOUT,a.MERGE,a["M-SEARCH"],a.NOTIFY,a.SUBSCRIBE,a.UNSUBSCRIBE,a.PATCH,a.PURGE,a.MKCALENDAR,a.LINK,a.UNLINK,a.PRI,a.SOURCE];t.METHODS_ICE=[a.SOURCE];t.METHODS_RTSP=[a.OPTIONS,a.DESCRIBE,a.ANNOUNCE,a.SETUP,a.PLAY,a.PAUSE,a.TEARDOWN,a.GET_PARAMETER,a.SET_PARAMETER,a.REDIRECT,a.RECORD,a.FLUSH,a.GET,a.POST];t.METHOD_MAP=r.enumToMap(a);t.H_METHOD_MAP={};Object.keys(t.METHOD_MAP).forEach((e=>{if(/^H/.test(e)){t.H_METHOD_MAP[e]=t.METHOD_MAP[e]}}));var c;(function(e){e[e["SAFE"]=0]="SAFE";e[e["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";e[e["UNSAFE"]=2]="UNSAFE"})(c=t.FINISH||(t.FINISH={}));t.ALPHA=[];for(let e="A".charCodeAt(0);e<="Z".charCodeAt(0);e++){t.ALPHA.push(String.fromCharCode(e));t.ALPHA.push(String.fromCharCode(e+32))}t.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};t.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};t.NUM=["0","1","2","3","4","5","6","7","8","9"];t.ALPHANUM=t.ALPHA.concat(t.NUM);t.MARK=["-","_",".","!","~","*","'","(",")"];t.USERINFO_CHARS=t.ALPHANUM.concat(t.MARK).concat(["%",";",":","&","=","+","$",","]);t.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(t.ALPHANUM);t.URL_CHAR=t.STRICT_URL_CHAR.concat(["\t","\f"]);for(let e=128;e<=255;e++){t.URL_CHAR.push(e)}t.HEX=t.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);t.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(t.ALPHANUM);t.TOKEN=t.STRICT_TOKEN.concat([" "]);t.HEADER_CHARS=["\t"];for(let e=32;e<=255;e++){if(e!==127){t.HEADER_CHARS.push(e)}}t.CONNECTION_TOKEN_CHARS=t.HEADER_CHARS.filter((e=>e!==44));t.MAJOR=t.NUM_MAP;t.MINOR=t.MAJOR;var l;(function(e){e[e["GENERAL"]=0]="GENERAL";e[e["CONNECTION"]=1]="CONNECTION";e[e["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";e[e["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";e[e["UPGRADE"]=4]="UPGRADE";e[e["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";e[e["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(l=t.HEADER_STATE||(t.HEADER_STATE={}));t.SPECIAL_HEADERS={connection:l.CONNECTION,"content-length":l.CONTENT_LENGTH,"proxy-connection":l.CONNECTION,"transfer-encoding":l.TRANSFER_ENCODING,upgrade:l.UPGRADE}},9827:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},7785:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},4778:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.enumToMap=void 0;function enumToMap(e){const t={};Object.keys(e).forEach((s=>{const r=e[s];if(typeof r==="number"){t[s]=r}}));return t}t.enumToMap=enumToMap},6004:(e,t,s)=>{const{kClients:r}=s(3932);const o=s(8840);const{kAgent:A,kMockAgentSet:n,kMockAgentGet:i,kDispatches:a,kIsMockActive:c,kNetConnect:l,kGetNetConnect:u,kOptions:p,kFactory:g}=s(4745);const d=s(1287);const h=s(7220);const{matchValue:E,buildMockOptions:C}=s(9700);const{InvalidArgumentError:Q,UndiciError:m}=s(2366);const B=s(8648);const I=s(5024);const b=s(5464);class FakeWeakRef{constructor(e){this.value=e}deref(){return this.value}}class MockAgent extends B{constructor(e){super(e);this[l]=true;this[c]=true;if(e&&e.agent&&typeof e.agent.dispatch!=="function"){throw new Q("Argument opts.agent must implement Agent")}const t=e&&e.agent?e.agent:new o(e);this[A]=t;this[r]=t[r];this[p]=C(e)}get(e){let t=this[i](e);if(!t){t=this[g](e);this[n](e,t)}return t}dispatch(e,t){this.get(e.origin);return this[A].dispatch(e,t)}async close(){await this[A].close();this[r].clear()}deactivate(){this[c]=false}activate(){this[c]=true}enableNetConnect(e){if(typeof e==="string"||typeof e==="function"||e instanceof RegExp){if(Array.isArray(this[l])){this[l].push(e)}else{this[l]=[e]}}else if(typeof e==="undefined"){this[l]=true}else{throw new Q("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[l]=false}get isMockActive(){return this[c]}[n](e,t){this[r].set(e,new FakeWeakRef(t))}[g](e){const t=Object.assign({agent:this},this[p]);return this[p]&&this[p].connections===1?new d(e,t):new h(e,t)}[i](e){const t=this[r].get(e);if(t){return t.deref()}if(typeof e!=="string"){const t=this[g]("http://localhost:9999");this[n](e,t);return t}for(const[t,s]of Array.from(this[r])){const r=s.deref();if(r&&typeof t!=="string"&&E(t,e)){const t=this[g](e);this[n](e,t);t[a]=r[a];return t}}}[u](){return this[l]}pendingInterceptors(){const e=this[r];return Array.from(e.entries()).flatMap((([e,t])=>t.deref()[a].map((t=>({...t,origin:e}))))).filter((({pending:e})=>e))}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new b}={}){const t=this.pendingInterceptors();if(t.length===0){return}const s=new I("interceptor","interceptors").pluralize(t.length);throw new m(`\n${s.count} ${s.noun} ${s.is} pending:\n\n${e.format(t)}\n`.trim())}}e.exports=MockAgent},1287:(e,t,s)=>{const{promisify:r}=s(3837);const o=s(1735);const{buildMockDispatch:A}=s(9700);const{kDispatches:n,kMockAgent:i,kClose:a,kOriginalClose:c,kOrigin:l,kOriginalDispatch:u,kConnected:p}=s(4745);const{MockInterceptor:g}=s(7857);const d=s(3932);const{InvalidArgumentError:h}=s(2366);class MockClient extends o{constructor(e,t){super(e,t);if(!t||!t.agent||typeof t.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[i]=t.agent;this[l]=e;this[n]=[];this[p]=1;this[u]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=A.call(this);this.close=this[a]}get[d.kConnected](){return this[p]}intercept(e){return new g(e,this[n])}async[a](){await r(this[c])();this[p]=0;this[i][d.kClients].delete(this[l])}}e.exports=MockClient},2703:(e,t,s)=>{const{UndiciError:r}=s(2366);class MockNotMatchedError extends r{constructor(e){super(e);Error.captureStackTrace(this,MockNotMatchedError);this.name="MockNotMatchedError";this.message=e||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}}e.exports={MockNotMatchedError:MockNotMatchedError}},7857:(e,t,s)=>{const{getResponseData:r,buildKey:o,addMockDispatch:A}=s(9700);const{kDispatches:n,kDispatchKey:i,kDefaultHeaders:a,kDefaultTrailers:c,kContentLength:l,kMockDispatch:u}=s(4745);const{InvalidArgumentError:p}=s(2366);const{buildURL:g}=s(7497);class MockScope{constructor(e){this[u]=e}delay(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new p("waitInMs must be a valid integer > 0")}this[u].delay=e;return this}persist(){this[u].persist=true;return this}times(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new p("repeatTimes must be a valid integer > 0")}this[u].times=e;return this}}class MockInterceptor{constructor(e,t){if(typeof e!=="object"){throw new p("opts must be an object")}if(typeof e.path==="undefined"){throw new p("opts.path must be defined")}if(typeof e.method==="undefined"){e.method="GET"}if(typeof e.path==="string"){if(e.query){e.path=g(e.path,e.query)}else{const t=new URL(e.path,"data://");e.path=t.pathname+t.search}}if(typeof e.method==="string"){e.method=e.method.toUpperCase()}this[i]=o(e);this[n]=t;this[a]={};this[c]={};this[l]=false}createMockScopeDispatchData(e,t,s={}){const o=r(t);const A=this[l]?{"content-length":o.length}:{};const n={...this[a],...A,...s.headers};const i={...this[c],...s.trailers};return{statusCode:e,data:t,headers:n,trailers:i}}validateReplyParameters(e,t,s){if(typeof e==="undefined"){throw new p("statusCode must be defined")}if(typeof t==="undefined"){throw new p("data must be defined")}if(typeof s!=="object"){throw new p("responseOptions must be an object")}}reply(e){if(typeof e==="function"){const wrappedDefaultsCallback=t=>{const s=e(t);if(typeof s!=="object"){throw new p("reply options callback must return an object")}const{statusCode:r,data:o="",responseOptions:A={}}=s;this.validateReplyParameters(r,o,A);return{...this.createMockScopeDispatchData(r,o,A)}};const t=A(this[n],this[i],wrappedDefaultsCallback);return new MockScope(t)}const[t,s="",r={}]=[...arguments];this.validateReplyParameters(t,s,r);const o=this.createMockScopeDispatchData(t,s,r);const a=A(this[n],this[i],o);return new MockScope(a)}replyWithError(e){if(typeof e==="undefined"){throw new p("error must be defined")}const t=A(this[n],this[i],{error:e});return new MockScope(t)}defaultReplyHeaders(e){if(typeof e==="undefined"){throw new p("headers must be defined")}this[a]=e;return this}defaultReplyTrailers(e){if(typeof e==="undefined"){throw new p("trailers must be defined")}this[c]=e;return this}replyContentLength(){this[l]=true;return this}}e.exports.MockInterceptor=MockInterceptor;e.exports.MockScope=MockScope},7220:(e,t,s)=>{const{promisify:r}=s(3837);const o=s(780);const{buildMockDispatch:A}=s(9700);const{kDispatches:n,kMockAgent:i,kClose:a,kOriginalClose:c,kOrigin:l,kOriginalDispatch:u,kConnected:p}=s(4745);const{MockInterceptor:g}=s(7857);const d=s(3932);const{InvalidArgumentError:h}=s(2366);class MockPool extends o{constructor(e,t){super(e,t);if(!t||!t.agent||typeof t.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[i]=t.agent;this[l]=e;this[n]=[];this[p]=1;this[u]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=A.call(this);this.close=this[a]}get[d.kConnected](){return this[p]}intercept(e){return new g(e,this[n])}async[a](){await r(this[c])();this[p]=0;this[i][d.kClients].delete(this[l])}}e.exports=MockPool},4745:e=>{e.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}},9700:(e,t,s)=>{const{MockNotMatchedError:r}=s(2703);const{kDispatches:o,kMockAgent:A,kOriginalDispatch:n,kOrigin:i,kGetNetConnect:a}=s(4745);const{buildURL:c,nop:l}=s(7497);const{STATUS_CODES:u}=s(3685);const{types:{isPromise:p}}=s(3837);function matchValue(e,t){if(typeof e==="string"){return e===t}if(e instanceof RegExp){return e.test(t)}if(typeof e==="function"){return e(t)===true}return false}function lowerCaseEntries(e){return Object.fromEntries(Object.entries(e).map((([e,t])=>[e.toLocaleLowerCase(),t])))}function getHeaderByName(e,t){if(Array.isArray(e)){for(let s=0;s!e)).filter((({path:e})=>matchValue(safeUrl(e),o)));if(A.length===0){throw new r(`Mock dispatch not matched for path '${o}'`)}A=A.filter((({method:e})=>matchValue(e,t.method)));if(A.length===0){throw new r(`Mock dispatch not matched for method '${t.method}'`)}A=A.filter((({body:e})=>typeof e!=="undefined"?matchValue(e,t.body):true));if(A.length===0){throw new r(`Mock dispatch not matched for body '${t.body}'`)}A=A.filter((e=>matchHeaders(e,t.headers)));if(A.length===0){throw new r(`Mock dispatch not matched for headers '${typeof t.headers==="object"?JSON.stringify(t.headers):t.headers}'`)}return A[0]}function addMockDispatch(e,t,s){const r={timesInvoked:0,times:1,persist:false,consumed:false};const o=typeof s==="function"?{callback:s}:{...s};const A={...r,...t,pending:true,data:{error:null,...o}};e.push(A);return A}function deleteMockDispatch(e,t){const s=e.findIndex((e=>{if(!e.consumed){return false}return matchKey(e,t)}));if(s!==-1){e.splice(s,1)}}function buildKey(e){const{path:t,method:s,body:r,headers:o,query:A}=e;return{path:t,method:s,body:r,headers:o,query:A}}function generateKeyValues(e){return Object.entries(e).reduce(((e,[t,s])=>[...e,Buffer.from(`${t}`),Array.isArray(s)?s.map((e=>Buffer.from(`${e}`))):Buffer.from(`${s}`)]),[])}function getStatusText(e){return u[e]||"unknown"}async function getResponse(e){const t=[];for await(const s of e){t.push(s)}return Buffer.concat(t).toString("utf8")}function mockDispatch(e,t){const s=buildKey(e);const r=getMockDispatch(this[o],s);r.timesInvoked++;if(r.data.callback){r.data={...r.data,...r.data.callback(e)}}const{data:{statusCode:A,data:n,headers:i,trailers:a,error:c},delay:u,persist:g}=r;const{timesInvoked:d,times:h}=r;r.consumed=!g&&d>=h;r.pending=d0){setTimeout((()=>{handleReply(this[o])}),u)}else{handleReply(this[o])}function handleReply(r,o=n){const c=Array.isArray(e.headers)?buildHeadersFromArray(e.headers):e.headers;const u=typeof o==="function"?o({...e,headers:c}):o;if(p(u)){u.then((e=>handleReply(r,e)));return}const g=getResponseData(u);const d=generateKeyValues(i);const h=generateKeyValues(a);t.abort=l;t.onHeaders(A,d,resume,getStatusText(A));t.onData(Buffer.from(g));t.onComplete(h);deleteMockDispatch(r,s)}function resume(){}return true}function buildMockDispatch(){const e=this[A];const t=this[i];const s=this[n];return function dispatch(o,A){if(e.isMockActive){try{mockDispatch.call(this,o,A)}catch(n){if(n instanceof r){const i=e[a]();if(i===false){throw new r(`${n.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`)}if(checkNetConnect(i,t)){s.call(this,o,A)}else{throw new r(`${n.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}}else{throw n}}}else{s.call(this,o,A)}}}function checkNetConnect(e,t){const s=new URL(t);if(e===true){return true}else if(Array.isArray(e)&&e.some((e=>matchValue(e,s.host)))){return true}return false}function buildMockOptions(e){if(e){const{agent:t,...s}=e;return s}}e.exports={getResponseData:getResponseData,getMockDispatch:getMockDispatch,addMockDispatch:addMockDispatch,deleteMockDispatch:deleteMockDispatch,buildKey:buildKey,generateKeyValues:generateKeyValues,matchValue:matchValue,getResponse:getResponse,getStatusText:getStatusText,mockDispatch:mockDispatch,buildMockDispatch:buildMockDispatch,checkNetConnect:checkNetConnect,buildMockOptions:buildMockOptions,getHeaderByName:getHeaderByName}},5464:(e,t,s)=>{const{Transform:r}=s(2781);const{Console:o}=s(6206);e.exports=class PendingInterceptorsFormatter{constructor({disableColors:e}={}){this.transform=new r({transform(e,t,s){s(null,e)}});this.logger=new o({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){const t=e.map((({method:e,path:t,data:{statusCode:s},persist:r,times:o,timesInvoked:A,origin:n})=>({Method:e,Origin:n,Path:t,"Status code":s,Persistent:r?"✅":"❌",Invocations:A,Remaining:r?Infinity:o-A})));this.logger.table(t);return this.transform.read().toString()}}},5024:e=>{const t={pronoun:"it",is:"is",was:"was",this:"this"};const s={pronoun:"they",is:"are",was:"were",this:"these"};e.exports=class Pluralizer{constructor(e,t){this.singular=e;this.plural=t}pluralize(e){const r=e===1;const o=r?t:s;const A=r?this.singular:this.plural;return{...o,count:e,noun:A}}}},4629:e=>{const t=2048;const s=t-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(t);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&s)===this.bottom}push(e){this.list[this.top]=e;this.top=this.top+1&s}shift(){const e=this.list[this.bottom];if(e===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&s;return e}}e.exports=class FixedQueue{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(e){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(e)}shift(){const e=this.tail;const t=e.shift();if(e.isEmpty()&&e.next!==null){this.tail=e.next}return t}}},4414:(e,t,s)=>{const r=s(8757);const o=s(4629);const{kConnected:A,kSize:n,kRunning:i,kPending:a,kQueued:c,kBusy:l,kFree:u,kUrl:p,kClose:g,kDestroy:d,kDispatch:h}=s(3932);const E=s(47);const C=Symbol("clients");const Q=Symbol("needDrain");const m=Symbol("queue");const B=Symbol("closed resolve");const I=Symbol("onDrain");const b=Symbol("onConnect");const y=Symbol("onDisconnect");const w=Symbol("onConnectionError");const v=Symbol("get dispatcher");const R=Symbol("add client");const k=Symbol("remove client");const D=Symbol("stats");class PoolBase extends r{constructor(){super();this[m]=new o;this[C]=[];this[c]=0;const e=this;this[I]=function onDrain(t,s){const r=e[m];let o=false;while(!o){const t=r.shift();if(!t){break}e[c]--;o=!this.dispatch(t.opts,t.handler)}this[Q]=o;if(!this[Q]&&e[Q]){e[Q]=false;e.emit("drain",t,[e,...s])}if(e[B]&&r.isEmpty()){Promise.all(e[C].map((e=>e.close()))).then(e[B])}};this[b]=(t,s)=>{e.emit("connect",t,[e,...s])};this[y]=(t,s,r)=>{e.emit("disconnect",t,[e,...s],r)};this[w]=(t,s,r)=>{e.emit("connectionError",t,[e,...s],r)};this[D]=new E(this)}get[l](){return this[Q]}get[A](){return this[C].filter((e=>e[A])).length}get[u](){return this[C].filter((e=>e[A]&&!e[Q])).length}get[a](){let e=this[c];for(const{[a]:t}of this[C]){e+=t}return e}get[i](){let e=0;for(const{[i]:t}of this[C]){e+=t}return e}get[n](){let e=this[c];for(const{[n]:t}of this[C]){e+=t}return e}get stats(){return this[D]}async[g](){if(this[m].isEmpty()){return Promise.all(this[C].map((e=>e.close())))}else{return new Promise((e=>{this[B]=e}))}}async[d](e){while(true){const t=this[m].shift();if(!t){break}t.handler.onError(e)}return Promise.all(this[C].map((t=>t.destroy(e))))}[h](e,t){const s=this[v]();if(!s){this[Q]=true;this[m].push({opts:e,handler:t});this[c]++}else if(!s.dispatch(e,t)){s[Q]=true;this[Q]=!this[v]()}return!this[Q]}[R](e){e.on("drain",this[I]).on("connect",this[b]).on("disconnect",this[y]).on("connectionError",this[w]);this[C].push(e);if(this[Q]){process.nextTick((()=>{if(this[Q]){this[I](e[p],[this,e])}}))}return this}[k](e){e.close((()=>{const t=this[C].indexOf(e);if(t!==-1){this[C].splice(t,1)}}));this[Q]=this[C].some((e=>!e[Q]&&e.closed!==true&&e.destroyed!==true))}}e.exports={PoolBase:PoolBase,kClients:C,kNeedDrain:Q,kAddClient:R,kRemoveClient:k,kGetDispatcher:v}},47:(e,t,s)=>{const{kFree:r,kConnected:o,kPending:A,kQueued:n,kRunning:i,kSize:a}=s(3932);const c=Symbol("pool");class PoolStats{constructor(e){this[c]=e}get connected(){return this[c][o]}get free(){return this[c][r]}get pending(){return this[c][A]}get queued(){return this[c][n]}get running(){return this[c][i]}get size(){return this[c][a]}}e.exports=PoolStats},780:(e,t,s)=>{const{PoolBase:r,kClients:o,kNeedDrain:A,kAddClient:n,kGetDispatcher:i}=s(4414);const a=s(1735);const{InvalidArgumentError:c}=s(2366);const l=s(7497);const{kUrl:u,kInterceptors:p}=s(3932);const g=s(9218);const d=Symbol("options");const h=Symbol("connections");const E=Symbol("factory");function defaultFactory(e,t){return new a(e,t)}class Pool extends r{constructor(e,{connections:t,factory:s=defaultFactory,connect:r,connectTimeout:o,tls:A,maxCachedSessions:n,socketPath:i,autoSelectFamily:a,autoSelectFamilyAttemptTimeout:C,allowH2:Q,...m}={}){super();if(t!=null&&(!Number.isFinite(t)||t<0)){throw new c("invalid connections")}if(typeof s!=="function"){throw new c("factory must be a function.")}if(r!=null&&typeof r!=="function"&&typeof r!=="object"){throw new c("connect must be a function or an object")}if(typeof r!=="function"){r=g({...A,maxCachedSessions:n,allowH2:Q,socketPath:i,timeout:o,...l.nodeHasAutoSelectFamily&&a?{autoSelectFamily:a,autoSelectFamilyAttemptTimeout:C}:undefined,...r})}this[p]=m.interceptors&&m.interceptors.Pool&&Array.isArray(m.interceptors.Pool)?m.interceptors.Pool:[];this[h]=t||null;this[u]=l.parseOrigin(e);this[d]={...l.deepClone(m),connect:r,allowH2:Q};this[d].interceptors=m.interceptors?{...m.interceptors}:undefined;this[E]=s}[i](){let e=this[o].find((e=>!e[A]));if(e){return e}if(!this[h]||this[o].length{const{kProxy:r,kClose:o,kDestroy:A,kInterceptors:n}=s(3932);const{URL:i}=s(7310);const a=s(8840);const c=s(780);const l=s(8757);const{InvalidArgumentError:u,RequestAbortedError:p}=s(2366);const g=s(9218);const d=Symbol("proxy agent");const h=Symbol("proxy client");const E=Symbol("proxy headers");const C=Symbol("request tls settings");const Q=Symbol("proxy tls settings");const m=Symbol("connect endpoint function");function defaultProtocolPort(e){return e==="https:"?443:80}function buildProxyOptions(e){if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new u("Proxy opts.uri is mandatory")}return{uri:e.uri,protocol:e.protocol||"https"}}function defaultFactory(e,t){return new c(e,t)}class ProxyAgent extends l{constructor(e){super(e);this[r]=buildProxyOptions(e);this[d]=new a(e);this[n]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[];if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new u("Proxy opts.uri is mandatory")}const{clientFactory:t=defaultFactory}=e;if(typeof t!=="function"){throw new u("Proxy opts.clientFactory must be a function.")}this[C]=e.requestTls;this[Q]=e.proxyTls;this[E]=e.headers||{};const s=new i(e.uri);const{origin:o,port:A,host:c,username:l,password:B}=s;if(e.auth&&e.token){throw new u("opts.auth cannot be used in combination with opts.token")}else if(e.auth){this[E]["proxy-authorization"]=`Basic ${e.auth}`}else if(e.token){this[E]["proxy-authorization"]=e.token}else if(l&&B){this[E]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(l)}:${decodeURIComponent(B)}`).toString("base64")}`}const I=g({...e.proxyTls});this[m]=g({...e.requestTls});this[h]=t(s,{connect:I});this[d]=new a({...e,connect:async(e,t)=>{let s=e.host;if(!e.port){s+=`:${defaultProtocolPort(e.protocol)}`}try{const{socket:r,statusCode:n}=await this[h].connect({origin:o,port:A,path:s,signal:e.signal,headers:{...this[E],host:c}});if(n!==200){r.on("error",(()=>{})).destroy();t(new p(`Proxy response (${n}) !== 200 when HTTP Tunneling`))}if(e.protocol!=="https:"){t(null,r);return}let i;if(this[C]){i=this[C].servername}else{i=e.servername}this[m]({...e,servername:i,httpSocket:r},t)}catch(e){t(e)}}})}dispatch(e,t){const{host:s}=new i(e.origin);const r=buildHeaders(e.headers);throwIfProxyAuthIsSent(r);return this[d].dispatch({...e,headers:{...r,host:s}},t)}async[o](){await this[d].close();await this[h].close()}async[A](){await this[d].destroy();await this[h].destroy()}}function buildHeaders(e){if(Array.isArray(e)){const t={};for(let s=0;se.toLowerCase()==="proxy-authorization"));if(t){throw new u("Proxy-Authorization should be sent in ProxyAgent constructor")}}e.exports=ProxyAgent},2882:e=>{let t=Date.now();let s;const r=[];function onTimeout(){t=Date.now();let e=r.length;let s=0;while(s0&&t>=o.state){o.state=-1;o.callback(o.opaque)}if(o.state===-1){o.state=-2;if(s!==e-1){r[s]=r.pop()}else{r.pop()}e-=1}else{s+=1}}if(r.length>0){refreshTimeout()}}function refreshTimeout(){if(s&&s.refresh){s.refresh()}else{clearTimeout(s);s=setTimeout(onTimeout,1e3);if(s.unref){s.unref()}}}class Timeout{constructor(e,t,s){this.callback=e;this.delay=t;this.opaque=s;this.state=-2;this.refresh()}refresh(){if(this.state===-2){r.push(this);if(!s||r.length===1){refreshTimeout()}}this.state=0}clear(){this.state=-1}}e.exports={setTimeout(e,t,s){return t<1e3?setTimeout(e,t,s):new Timeout(e,t,s)},clearTimeout(e){if(e instanceof Timeout){e.clear()}else{clearTimeout(e)}}}},250:(e,t,s)=>{const r=s(7643);const{uid:o,states:A}=s(6487);const{kReadyState:n,kSentClose:i,kByteParser:a,kReceivedClose:c}=s(7380);const{fireEvent:l,failWebsocketConnection:u}=s(5714);const{CloseEvent:p}=s(1879);const{makeRequest:g}=s(6453);const{fetching:d}=s(8802);const{Headers:h}=s(1855);const{getGlobalDispatcher:E}=s(2899);const{kHeadersList:C}=s(3932);const Q={};Q.open=r.channel("undici:websocket:open");Q.close=r.channel("undici:websocket:close");Q.socketError=r.channel("undici:websocket:socket_error");let m;try{m=s(6113)}catch{}function establishWebSocketConnection(e,t,s,r,A){const n=e;n.protocol=e.protocol==="ws:"?"http:":"https:";const i=g({urlList:[n],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(A.headers){const e=new h(A.headers)[C];i.headersList=e}const a=m.randomBytes(16).toString("base64");i.headersList.append("sec-websocket-key",a);i.headersList.append("sec-websocket-version","13");for(const e of t){i.headersList.append("sec-websocket-protocol",e)}const c="";const l=d({request:i,useParallelQueue:true,dispatcher:A.dispatcher??E(),processResponse(e){if(e.type==="error"||e.status!==101){u(s,"Received network error or non-101 status code.");return}if(t.length!==0&&!e.headersList.get("Sec-WebSocket-Protocol")){u(s,"Server did not respond with sent protocols.");return}if(e.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){u(s,'Server did not set Upgrade header to "websocket".');return}if(e.headersList.get("Connection")?.toLowerCase()!=="upgrade"){u(s,'Server did not set Connection header to "upgrade".');return}const A=e.headersList.get("Sec-WebSocket-Accept");const n=m.createHash("sha1").update(a+o).digest("base64");if(A!==n){u(s,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const l=e.headersList.get("Sec-WebSocket-Extensions");if(l!==null&&l!==c){u(s,"Received different permessage-deflate than the one set.");return}const p=e.headersList.get("Sec-WebSocket-Protocol");if(p!==null&&p!==i.headersList.get("Sec-WebSocket-Protocol")){u(s,"Protocol was not set in the opening handshake.");return}e.socket.on("data",onSocketData);e.socket.on("close",onSocketClose);e.socket.on("error",onSocketError);if(Q.open.hasSubscribers){Q.open.publish({address:e.socket.address(),protocol:p,extensions:l})}r(e)}});return l}function onSocketData(e){if(!this.ws[a].write(e)){this.pause()}}function onSocketClose(){const{ws:e}=this;const t=e[i]&&e[c];let s=1005;let r="";const o=e[a].closingInfo;if(o){s=o.code??1005;r=o.reason}else if(!e[i]){s=1006}e[n]=A.CLOSED;l("close",e,p,{wasClean:t,code:s,reason:r});if(Q.close.hasSubscribers){Q.close.publish({websocket:e,code:s,reason:r})}}function onSocketError(e){const{ws:t}=this;t[n]=A.CLOSING;if(Q.socketError.hasSubscribers){Q.socketError.publish(e)}this.destroy()}e.exports={establishWebSocketConnection:establishWebSocketConnection}},6487:e=>{const t="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const s={enumerable:true,writable:false,configurable:false};const r={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const o={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const A=2**16-1;const n={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const i=Buffer.allocUnsafe(0);e.exports={uid:t,staticPropertyDescriptors:s,states:r,opcodes:o,maxUnsigned16Bit:A,parserStates:n,emptyBuffer:i}},1879:(e,t,s)=>{const{webidl:r}=s(9111);const{kEnumerableProperty:o}=s(7497);const{MessagePort:A}=s(1267);class MessageEvent extends Event{#A;constructor(e,t={}){r.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});e=r.converters.DOMString(e);t=r.converters.MessageEventInit(t);super(e,t);this.#A=t}get data(){r.brandCheck(this,MessageEvent);return this.#A.data}get origin(){r.brandCheck(this,MessageEvent);return this.#A.origin}get lastEventId(){r.brandCheck(this,MessageEvent);return this.#A.lastEventId}get source(){r.brandCheck(this,MessageEvent);return this.#A.source}get ports(){r.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#A.ports)){Object.freeze(this.#A.ports)}return this.#A.ports}initMessageEvent(e,t=false,s=false,o=null,A="",n="",i=null,a=[]){r.brandCheck(this,MessageEvent);r.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(e,{bubbles:t,cancelable:s,data:o,origin:A,lastEventId:n,source:i,ports:a})}}class CloseEvent extends Event{#A;constructor(e,t={}){r.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});e=r.converters.DOMString(e);t=r.converters.CloseEventInit(t);super(e,t);this.#A=t}get wasClean(){r.brandCheck(this,CloseEvent);return this.#A.wasClean}get code(){r.brandCheck(this,CloseEvent);return this.#A.code}get reason(){r.brandCheck(this,CloseEvent);return this.#A.reason}}class ErrorEvent extends Event{#A;constructor(e,t){r.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(e,t);e=r.converters.DOMString(e);t=r.converters.ErrorEventInit(t??{});this.#A=t}get message(){r.brandCheck(this,ErrorEvent);return this.#A.message}get filename(){r.brandCheck(this,ErrorEvent);return this.#A.filename}get lineno(){r.brandCheck(this,ErrorEvent);return this.#A.lineno}get colno(){r.brandCheck(this,ErrorEvent);return this.#A.colno}get error(){r.brandCheck(this,ErrorEvent);return this.#A.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:o,origin:o,lastEventId:o,source:o,ports:o,initMessageEvent:o});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:o,code:o,wasClean:o});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:o,filename:o,lineno:o,colno:o,error:o});r.converters.MessagePort=r.interfaceConverter(A);r.converters["sequence"]=r.sequenceConverter(r.converters.MessagePort);const n=[{key:"bubbles",converter:r.converters.boolean,defaultValue:false},{key:"cancelable",converter:r.converters.boolean,defaultValue:false},{key:"composed",converter:r.converters.boolean,defaultValue:false}];r.converters.MessageEventInit=r.dictionaryConverter([...n,{key:"data",converter:r.converters.any,defaultValue:null},{key:"origin",converter:r.converters.USVString,defaultValue:""},{key:"lastEventId",converter:r.converters.DOMString,defaultValue:""},{key:"source",converter:r.nullableConverter(r.converters.MessagePort),defaultValue:null},{key:"ports",converter:r.converters["sequence"],get defaultValue(){return[]}}]);r.converters.CloseEventInit=r.dictionaryConverter([...n,{key:"wasClean",converter:r.converters.boolean,defaultValue:false},{key:"code",converter:r.converters["unsigned short"],defaultValue:0},{key:"reason",converter:r.converters.USVString,defaultValue:""}]);r.converters.ErrorEventInit=r.dictionaryConverter([...n,{key:"message",converter:r.converters.DOMString,defaultValue:""},{key:"filename",converter:r.converters.USVString,defaultValue:""},{key:"lineno",converter:r.converters["unsigned long"],defaultValue:0},{key:"colno",converter:r.converters["unsigned long"],defaultValue:0},{key:"error",converter:r.converters.any}]);e.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},6771:(e,t,s)=>{const{maxUnsigned16Bit:r}=s(6487);let o;try{o=s(6113)}catch{}class WebsocketFrameSend{constructor(e){this.frameData=e;this.maskKey=o.randomBytes(4)}createFrame(e){const t=this.frameData?.byteLength??0;let s=t;let o=6;if(t>r){o+=8;s=127}else if(t>125){o+=2;s=126}const A=Buffer.allocUnsafe(t+o);A[0]=A[1]=0;A[0]|=128;A[0]=(A[0]&240)+e; -/*! ws. MIT License. Einar Otto Stangvik */A[o-4]=this.maskKey[0];A[o-3]=this.maskKey[1];A[o-2]=this.maskKey[2];A[o-1]=this.maskKey[3];A[1]=s;if(s===126){A.writeUInt16BE(t,2)}else if(s===127){A[2]=A[3]=0;A.writeUIntBE(t,4,6)}A[1]|=128;for(let e=0;e{const{Writable:r}=s(2781);const o=s(7643);const{parserStates:A,opcodes:n,states:i,emptyBuffer:a}=s(6487);const{kReadyState:c,kSentClose:l,kResponse:u,kReceivedClose:p}=s(7380);const{isValidStatusCode:g,failWebsocketConnection:d,websocketMessageReceived:h}=s(5714);const{WebsocketFrameSend:E}=s(6771);const C={};C.ping=o.channel("undici:websocket:ping");C.pong=o.channel("undici:websocket:pong");class ByteParser extends r{#n=[];#i=0;#a=A.INFO;#c={};#l=[];constructor(e){super();this.ws=e}_write(e,t,s){this.#n.push(e);this.#i+=e.length;this.run(s)}run(e){while(true){if(this.#a===A.INFO){if(this.#i<2){return e()}const t=this.consume(2);this.#c.fin=(t[0]&128)!==0;this.#c.opcode=t[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==n.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==n.BINARY&&this.#c.opcode!==n.TEXT){d(this.ws,"Invalid frame type was fragmented.");return}const s=t[1]&127;if(s<=125){this.#c.payloadLength=s;this.#a=A.READ_DATA}else if(s===126){this.#a=A.PAYLOADLENGTH_16}else if(s===127){this.#a=A.PAYLOADLENGTH_64}if(this.#c.fragmented&&s>125){d(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===n.PING||this.#c.opcode===n.PONG||this.#c.opcode===n.CLOSE)&&s>125){d(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===n.CLOSE){if(s===1){d(this.ws,"Received close frame with a 1-byte body.");return}const e=this.consume(s);this.#c.closeInfo=this.parseCloseBody(false,e);if(!this.ws[l]){const e=Buffer.allocUnsafe(2);e.writeUInt16BE(this.#c.closeInfo.code,0);const t=new E(e);this.ws[u].socket.write(t.createFrame(n.CLOSE),(e=>{if(!e){this.ws[l]=true}}))}this.ws[c]=i.CLOSING;this.ws[p]=true;this.end();return}else if(this.#c.opcode===n.PING){const t=this.consume(s);if(!this.ws[p]){const e=new E(t);this.ws[u].socket.write(e.createFrame(n.PONG));if(C.ping.hasSubscribers){C.ping.publish({payload:t})}}this.#a=A.INFO;if(this.#i>0){continue}else{e();return}}else if(this.#c.opcode===n.PONG){const t=this.consume(s);if(C.pong.hasSubscribers){C.pong.publish({payload:t})}if(this.#i>0){continue}else{e();return}}}else if(this.#a===A.PAYLOADLENGTH_16){if(this.#i<2){return e()}const t=this.consume(2);this.#c.payloadLength=t.readUInt16BE(0);this.#a=A.READ_DATA}else if(this.#a===A.PAYLOADLENGTH_64){if(this.#i<8){return e()}const t=this.consume(8);const s=t.readUInt32BE(0);if(s>2**31-1){d(this.ws,"Received payload length > 2^31 bytes.");return}const r=t.readUInt32BE(4);this.#c.payloadLength=(s<<8)+r;this.#a=A.READ_DATA}else if(this.#a===A.READ_DATA){if(this.#i=this.#c.payloadLength){const e=this.consume(this.#c.payloadLength);this.#l.push(e);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===n.CONTINUATION){const e=Buffer.concat(this.#l);h(this.ws,this.#c.originalOpcode,e);this.#c={};this.#l.length=0}this.#a=A.INFO}}if(this.#i>0){continue}else{e();break}}}consume(e){if(e>this.#i){return null}else if(e===0){return a}if(this.#n[0].length===e){this.#i-=this.#n[0].length;return this.#n.shift()}const t=Buffer.allocUnsafe(e);let s=0;while(s!==e){const r=this.#n[0];const{length:o}=r;if(o+s===e){t.set(this.#n.shift(),s);break}else if(o+s>e){t.set(r.subarray(0,e-s),s);this.#n[0]=r.subarray(e-s);break}else{t.set(this.#n.shift(),s);s+=r.length}}this.#i-=e;return t}parseCloseBody(e,t){let s;if(t.length>=2){s=t.readUInt16BE(0)}if(e){if(!g(s)){return null}return{code:s}}let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191){r=r.subarray(3)}if(s!==undefined&&!g(s)){return null}try{r=new TextDecoder("utf-8",{fatal:true}).decode(r)}catch{return null}return{code:s,reason:r}}get closingInfo(){return this.#c.closeInfo}}e.exports={ByteParser:ByteParser}},7380:e=>{e.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},5714:(e,t,s)=>{const{kReadyState:r,kController:o,kResponse:A,kBinaryType:n,kWebSocketURL:i}=s(7380);const{states:a,opcodes:c}=s(6487);const{MessageEvent:l,ErrorEvent:u}=s(1879);function isEstablished(e){return e[r]===a.OPEN}function isClosing(e){return e[r]===a.CLOSING}function isClosed(e){return e[r]===a.CLOSED}function fireEvent(e,t,s=Event,r){const o=new s(e,r);t.dispatchEvent(o)}function websocketMessageReceived(e,t,s){if(e[r]!==a.OPEN){return}let o;if(t===c.TEXT){try{o=new TextDecoder("utf-8",{fatal:true}).decode(s)}catch{failWebsocketConnection(e,"Received invalid UTF-8 in text frame.");return}}else if(t===c.BINARY){if(e[n]==="blob"){o=new Blob([s])}else{o=new Uint8Array(s).buffer}}fireEvent("message",e,l,{origin:e[i].origin,data:o})}function isValidSubprotocol(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e<33||e>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||e===32||e===9){return false}}return true}function isValidStatusCode(e){if(e>=1e3&&e<1015){return e!==1004&&e!==1005&&e!==1006}return e>=3e3&&e<=4999}function failWebsocketConnection(e,t){const{[o]:s,[A]:r}=e;s.abort();if(r?.socket&&!r.socket.destroyed){r.socket.destroy()}if(t){fireEvent("error",e,u,{error:new Error(t)})}}e.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},1986:(e,t,s)=>{const{webidl:r}=s(9111);const{DOMException:o}=s(7533);const{URLSerializer:A}=s(5958);const{getGlobalOrigin:n}=s(7011);const{staticPropertyDescriptors:i,states:a,opcodes:c,emptyBuffer:l}=s(6487);const{kWebSocketURL:u,kReadyState:p,kController:g,kBinaryType:d,kResponse:h,kSentClose:E,kByteParser:C}=s(7380);const{isEstablished:Q,isClosing:m,isValidSubprotocol:B,failWebsocketConnection:I,fireEvent:b}=s(5714);const{establishWebSocketConnection:y}=s(250);const{WebsocketFrameSend:w}=s(6771);const{ByteParser:v}=s(5379);const{kEnumerableProperty:R,isBlobLike:k}=s(7497);const{getGlobalDispatcher:D}=s(2899);const{types:x}=s(3837);let F=false;class WebSocket extends EventTarget{#u={open:null,error:null,close:null,message:null};#p=0;#g="";#d="";constructor(e,t=[]){super();r.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!F){F=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const s=r.converters["DOMString or sequence or WebSocketInit"](t);e=r.converters.USVString(e);t=s.protocols;const A=n();let i;try{i=new URL(e,A)}catch(e){throw new o(e,"SyntaxError")}if(i.protocol==="http:"){i.protocol="ws:"}else if(i.protocol==="https:"){i.protocol="wss:"}if(i.protocol!=="ws:"&&i.protocol!=="wss:"){throw new o(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError")}if(i.hash||i.href.endsWith("#")){throw new o("Got fragment","SyntaxError")}if(typeof t==="string"){t=[t]}if(t.length!==new Set(t.map((e=>e.toLowerCase()))).size){throw new o("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(t.length>0&&!t.every((e=>B(e)))){throw new o("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[u]=new URL(i.href);this[g]=y(i,t,this,(e=>this.#h(e)),s);this[p]=WebSocket.CONNECTING;this[d]="blob"}close(e=undefined,t=undefined){r.brandCheck(this,WebSocket);if(e!==undefined){e=r.converters["unsigned short"](e,{clamp:true})}if(t!==undefined){t=r.converters.USVString(t)}if(e!==undefined){if(e!==1e3&&(e<3e3||e>4999)){throw new o("invalid code","InvalidAccessError")}}let s=0;if(t!==undefined){s=Buffer.byteLength(t);if(s>123){throw new o(`Reason must be less than 123 bytes; received ${s}`,"SyntaxError")}}if(this[p]===WebSocket.CLOSING||this[p]===WebSocket.CLOSED){}else if(!Q(this)){I(this,"Connection was closed before it was established.");this[p]=WebSocket.CLOSING}else if(!m(this)){const r=new w;if(e!==undefined&&t===undefined){r.frameData=Buffer.allocUnsafe(2);r.frameData.writeUInt16BE(e,0)}else if(e!==undefined&&t!==undefined){r.frameData=Buffer.allocUnsafe(2+s);r.frameData.writeUInt16BE(e,0);r.frameData.write(t,2,"utf-8")}else{r.frameData=l}const o=this[h].socket;o.write(r.createFrame(c.CLOSE),(e=>{if(!e){this[E]=true}}));this[p]=a.CLOSING}else{this[p]=WebSocket.CLOSING}}send(e){r.brandCheck(this,WebSocket);r.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});e=r.converters.WebSocketSendData(e);if(this[p]===WebSocket.CONNECTING){throw new o("Sent before connected.","InvalidStateError")}if(!Q(this)||m(this)){return}const t=this[h].socket;if(typeof e==="string"){const s=Buffer.from(e);const r=new w(s);const o=r.createFrame(c.TEXT);this.#p+=s.byteLength;t.write(o,(()=>{this.#p-=s.byteLength}))}else if(x.isArrayBuffer(e)){const s=Buffer.from(e);const r=new w(s);const o=r.createFrame(c.BINARY);this.#p+=s.byteLength;t.write(o,(()=>{this.#p-=s.byteLength}))}else if(ArrayBuffer.isView(e)){const s=Buffer.from(e,e.byteOffset,e.byteLength);const r=new w(s);const o=r.createFrame(c.BINARY);this.#p+=s.byteLength;t.write(o,(()=>{this.#p-=s.byteLength}))}else if(k(e)){const s=new w;e.arrayBuffer().then((e=>{const r=Buffer.from(e);s.frameData=r;const o=s.createFrame(c.BINARY);this.#p+=r.byteLength;t.write(o,(()=>{this.#p-=r.byteLength}))}))}}get readyState(){r.brandCheck(this,WebSocket);return this[p]}get bufferedAmount(){r.brandCheck(this,WebSocket);return this.#p}get url(){r.brandCheck(this,WebSocket);return A(this[u])}get extensions(){r.brandCheck(this,WebSocket);return this.#d}get protocol(){r.brandCheck(this,WebSocket);return this.#g}get onopen(){r.brandCheck(this,WebSocket);return this.#u.open}set onopen(e){r.brandCheck(this,WebSocket);if(this.#u.open){this.removeEventListener("open",this.#u.open)}if(typeof e==="function"){this.#u.open=e;this.addEventListener("open",e)}else{this.#u.open=null}}get onerror(){r.brandCheck(this,WebSocket);return this.#u.error}set onerror(e){r.brandCheck(this,WebSocket);if(this.#u.error){this.removeEventListener("error",this.#u.error)}if(typeof e==="function"){this.#u.error=e;this.addEventListener("error",e)}else{this.#u.error=null}}get onclose(){r.brandCheck(this,WebSocket);return this.#u.close}set onclose(e){r.brandCheck(this,WebSocket);if(this.#u.close){this.removeEventListener("close",this.#u.close)}if(typeof e==="function"){this.#u.close=e;this.addEventListener("close",e)}else{this.#u.close=null}}get onmessage(){r.brandCheck(this,WebSocket);return this.#u.message}set onmessage(e){r.brandCheck(this,WebSocket);if(this.#u.message){this.removeEventListener("message",this.#u.message)}if(typeof e==="function"){this.#u.message=e;this.addEventListener("message",e)}else{this.#u.message=null}}get binaryType(){r.brandCheck(this,WebSocket);return this[d]}set binaryType(e){r.brandCheck(this,WebSocket);if(e!=="blob"&&e!=="arraybuffer"){this[d]="blob"}else{this[d]=e}}#h(e){this[h]=e;const t=new v(this);t.on("drain",(function onParserDrain(){this.ws[h].socket.resume()}));e.socket.ws=this;this[C]=t;this[p]=a.OPEN;const s=e.headersList.get("sec-websocket-extensions");if(s!==null){this.#d=s}const r=e.headersList.get("sec-websocket-protocol");if(r!==null){this.#g=r}b("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=a.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=a.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=a.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=a.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i,url:R,readyState:R,bufferedAmount:R,onopen:R,onerror:R,onclose:R,close:R,onmessage:R,binaryType:R,send:R,extensions:R,protocol:R,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i});r.converters["sequence"]=r.sequenceConverter(r.converters.DOMString);r.converters["DOMString or sequence"]=function(e){if(r.util.Type(e)==="Object"&&Symbol.iterator in e){return r.converters["sequence"](e)}return r.converters.DOMString(e)};r.converters.WebSocketInit=r.dictionaryConverter([{key:"protocols",converter:r.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return D()}},{key:"headers",converter:r.nullableConverter(r.converters.HeadersInit)}]);r.converters["DOMString or sequence or WebSocketInit"]=function(e){if(r.util.Type(e)==="Object"&&!(Symbol.iterator in e)){return r.converters.WebSocketInit(e)}return{protocols:r.converters["DOMString or sequence"](e)}};r.converters.WebSocketSendData=function(e){if(r.util.Type(e)==="Object"){if(k(e)){return r.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||x.isAnyArrayBuffer(e)){return r.converters.BufferSource(e)}}return r.converters.USVString(e)};e.exports={WebSocket:WebSocket}},5938:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&"version"in process){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},3872:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return r.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return A.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return u.default}});var r=_interopRequireDefault(s(5596));var o=_interopRequireDefault(s(2427));var A=_interopRequireDefault(s(6007));var n=_interopRequireDefault(s(398));var i=_interopRequireDefault(s(1623));var a=_interopRequireDefault(s(8818));var c=_interopRequireDefault(s(5629));var l=_interopRequireDefault(s(7016));var u=_interopRequireDefault(s(1158));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},3828:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return r.default.createHash("md5").update(e).digest()}var o=md5;t["default"]=o},1623:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s="00000000-0000-0000-0000-000000000000";t["default"]=s},1158:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(5629));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,r.default)(e)){throw TypeError("Invalid UUID")}let t;const s=new Uint8Array(16);s[0]=(t=parseInt(e.slice(0,8),16))>>>24;s[1]=t>>>16&255;s[2]=t>>>8&255;s[3]=t&255;s[4]=(t=parseInt(e.slice(9,13),16))>>>8;s[5]=t&255;s[6]=(t=parseInt(e.slice(14,18),16))>>>8;s[7]=t&255;s[8]=(t=parseInt(e.slice(19,23),16))>>>8;s[9]=t&255;s[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;s[11]=t/4294967296&255;s[12]=t>>>24&255;s[13]=t>>>16&255;s[14]=t>>>8&255;s[15]=t&255;return s}var o=parse;t["default"]=o},3607:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t["default"]=s},1260:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var r=_interopRequireDefault(s(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const o=new Uint8Array(256);let A=o.length;function rng(){if(A>o.length-16){r.default.randomFillSync(o);A=0}return o.slice(A,A+=16)}},7615:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return r.default.createHash("sha1").update(e).digest()}var o=sha1;t["default"]=o},7016:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(5629));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const o=[];for(let e=0;e<256;++e){o.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const s=(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase();if(!(0,r.default)(s)){throw TypeError("Stringified UUID is invalid")}return s}var A=stringify;t["default"]=A},5596:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(1260));var o=_interopRequireDefault(s(7016));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let A;let n;let i=0;let a=0;function v1(e,t,s){let c=t&&s||0;const l=t||new Array(16);e=e||{};let u=e.node||A;let p=e.clockseq!==undefined?e.clockseq:n;if(u==null||p==null){const t=e.random||(e.rng||r.default)();if(u==null){u=A=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(p==null){p=n=(t[6]<<8|t[7])&16383}}let g=e.msecs!==undefined?e.msecs:Date.now();let d=e.nsecs!==undefined?e.nsecs:a+1;const h=g-i+(d-a)/1e4;if(h<0&&e.clockseq===undefined){p=p+1&16383}if((h<0||g>i)&&e.nsecs===undefined){d=0}if(d>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}i=g;a=d;n=p;g+=122192928e5;const E=((g&268435455)*1e4+d)%4294967296;l[c++]=E>>>24&255;l[c++]=E>>>16&255;l[c++]=E>>>8&255;l[c++]=E&255;const C=g/4294967296*1e4&268435455;l[c++]=C>>>8&255;l[c++]=C&255;l[c++]=C>>>24&15|16;l[c++]=C>>>16&255;l[c++]=p>>>8|128;l[c++]=p&255;for(let e=0;e<6;++e){l[c+e]=u[e]}return t||(0,o.default)(l)}var c=v1;t["default"]=c},2427:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6901));var o=_interopRequireDefault(s(3828));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const A=(0,r.default)("v3",48,o.default);var n=A;t["default"]=n},6901:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var r=_interopRequireDefault(s(7016));var o=_interopRequireDefault(s(1158));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let s=0;s{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(1260));var o=_interopRequireDefault(s(7016));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,s){e=e||{};const A=e.random||(e.rng||r.default)();A[6]=A[6]&15|64;A[8]=A[8]&63|128;if(t){s=s||0;for(let e=0;e<16;++e){t[s+e]=A[e]}return t}return(0,o.default)(A)}var A=v4;t["default"]=A},398:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6901));var o=_interopRequireDefault(s(7615));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const A=(0,r.default)("v5",80,o.default);var n=A;t["default"]=n},5629:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(3607));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&r.default.test(e)}var o=validate;t["default"]=o},8818:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(5629));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,r.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var o=version;t["default"]=o},7212:e=>{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var s=0;s{module.exports=eval("require")("debug")},9491:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert")},852:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("async_hooks")},4300:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("buffer")},6206:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("console")},6113:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto")},7643:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("diagnostics_channel")},2361:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("events")},7147:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs")},3685:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("http")},5158:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2")},5687:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("https")},1808:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("net")},5673:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:events")},4492:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream")},7261:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util")},2037:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("os")},1017:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("path")},4074:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("perf_hooks")},3477:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("querystring")},2781:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream")},5356:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream/web")},1576:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("string_decoder")},4404:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls")},7310:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("url")},3837:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("util")},9830:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("util/types")},1267:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("worker_threads")},9796:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib")},1089:(e,t,s)=>{const r=s(4492).Writable;const o=s(7261).inherits;const A=s(9306);const n=s(5575);const i=s(2010);const a=45;const c=Buffer.from("-");const l=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(e){if(!(this instanceof Dicer)){return new Dicer(e)}r.call(this,e);if(!e||!e.headerFirst&&typeof e.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof e.boundary==="string"){this.setBoundary(e.boundary)}else{this._bparser=undefined}this._headerFirst=e.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:e.partHwm};this._pause=false;const t=this;this._hparser=new i(e);this._hparser.on("header",(function(e){t._inHeader=false;t._part.emit("header",e)}))}o(Dicer,r);Dicer.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){const e=this;process.nextTick((function(){e.emit("error",new Error("Unexpected end of multipart data"));if(e._part&&!e._ignoreData){const t=e._isPreamble?"Preamble":"Part";e._part.emit("error",new Error(t+" terminated early due to unexpected end of multipart data"));e._part.push(null);process.nextTick((function(){e._realFinish=true;e.emit("finish");e._realFinish=false}));return}e._realFinish=true;e.emit("finish");e._realFinish=false}))}}else{r.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(e,t,s){if(!this._hparser&&!this._bparser){return s()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new n(this._partOpts);if(this._events.preamble){this.emit("preamble",this._part)}else{this._ignore()}}const t=this._hparser.push(e);if(!this._inHeader&&t!==undefined&&t{const r=s(5673).EventEmitter;const o=s(7261).inherits;const A=s(7845);const n=s(9306);const i=Buffer.from("\r\n\r\n");const a=/\r\n/g;const c=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(e){r.call(this);e=e||{};const t=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=A(e,"maxHeaderPairs",2e3);this.maxHeaderSize=A(e,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new n(i);this.ss.on("info",(function(e,s,r,o){if(s&&!t.maxed){if(t.nread+o-r>=t.maxHeaderSize){o=t.maxHeaderSize-t.nread+r;t.nread=t.maxHeaderSize;t.maxed=true}else{t.nread+=o-r}t.buffer+=s.toString("binary",r,o)}if(e){t._finish()}}))}o(HeaderParser,r);HeaderParser.prototype.push=function(e){const t=this.ss.push(e);if(this.finished){return t}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const e=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",e)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const e=this.buffer.split(a);const t=e.length;let s,r;for(var o=0;o{const r=s(7261).inherits;const o=s(4492).Readable;function PartStream(e){o.call(this,e)}r(PartStream,o);PartStream.prototype._read=function(e){};e.exports=PartStream},9306:(e,t,s)=>{const r=s(5673).EventEmitter;const o=s(7261).inherits;function SBMH(e){if(typeof e==="string"){e=Buffer.from(e)}if(!Buffer.isBuffer(e)){throw new TypeError("The needle has to be a String or a Buffer.")}const t=e.length;if(t===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(t>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(t);this._lookbehind_size=0;this._needle=e;this._bufpos=0;this._lookbehind=Buffer.alloc(t);for(var s=0;s=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const s=this._lookbehind_size+A;if(s>0){this.emit("info",false,this._lookbehind,0,s)}this._lookbehind.copy(this._lookbehind,0,s,this._lookbehind_size-s);this._lookbehind_size-=s;e.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=t;this._bufpos=t;return t}}A+=(A>=0)*this._bufpos;if(e.indexOf(s,A)!==-1){A=e.indexOf(s,A);++this.matches;if(A>0){this.emit("info",true,e,this._bufpos,A)}else{this.emit("info",true)}return this._bufpos=A+r}else{A=t-r}while(A0){this.emit("info",false,e,this._bufpos,A{const r=s(4492).Writable;const{inherits:o}=s(7261);const A=s(1089);const n=s(6541);const i=s(9933);const a=s(8696);function Busboy(e){if(!(this instanceof Busboy)){return new Busboy(e)}if(typeof e!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof e.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof e.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:t,...s}=e;this.opts={autoDestroy:false,...s};r.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(t);this._finished=false}o(Busboy,r);Busboy.prototype.emit=function(e){if(e==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}r.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(e){const t=a(e["content-type"]);const s={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(n.detect.test(t[0])){return new n(this,s)}if(i.detect.test(t[0])){return new i(this,s)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(e,t,s){this._parser.write(e,s)};e.exports=Busboy;e.exports["default"]=Busboy;e.exports.Busboy=Busboy;e.exports.Dicer=A},6541:(e,t,s)=>{const{Readable:r}=s(4492);const{inherits:o}=s(7261);const A=s(1089);const n=s(8696);const i=s(9999);const a=s(1602);const c=s(7845);const l=/^boundary$/i;const u=/^form-data$/i;const p=/^charset$/i;const g=/^filename$/i;const d=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(e,t){let s;let r;const o=this;let h;const E=t.limits;const C=t.isPartAFile||((e,t,s)=>t==="application/octet-stream"||s!==undefined);const Q=t.parsedConType||[];const m=t.defCharset||"utf8";const B=t.preservePath;const I={highWaterMark:t.fileHwm};for(s=0,r=Q.length;sR){o.parser.removeListener("part",onPart);o.parser.on("part",skipPart);e.hitPartsLimit=true;e.emit("partsLimit");return skipPart(t)}if(U){const e=U;e.emit("end");e.removeAllListeners("end")}t.on("header",(function(A){let c;let l;let h;let E;let Q;let R;let k=0;if(A["content-type"]){h=n(A["content-type"][0]);if(h[0]){c=h[0].toLowerCase();for(s=0,r=h.length;sy){const r=y-k+e.length;if(r>0){s.push(e.slice(0,r))}s.truncated=true;s.bytesRead=y;t.removeAllListeners("data");s.emit("limit");return}else if(!s.push(e)){o._pause=true}s.bytesRead=k};N=function(){T=undefined;s.push(null)}}else{if(F===v){if(!e.hitFieldsLimit){e.hitFieldsLimit=true;e.emit("fieldsLimit")}return skipPart(t)}++F;++S;let s="";let r=false;U=t;D=function(e){if((k+=e.length)>b){const o=b-(k-e.length);s+=e.toString("binary",0,o);r=true;t.removeAllListeners("data")}else{s+=e.toString("binary")}};N=function(){U=undefined;if(s.length){s=i(s,"binary",E)}e.emit("field",l,s,false,r,Q,c);--S;checkFinished()}}t._readableState.sync=false;t.on("data",D);t.on("end",N)})).on("error",(function(e){if(T){T.emit("error",e)}}))})).on("error",(function(t){e.emit("error",t)})).on("finish",(function(){N=true;checkFinished()}))}Multipart.prototype.write=function(e,t){const s=this.parser.write(e);if(s&&!this._pause){t()}else{this._needDrain=!s;this._cb=t}};Multipart.prototype.end=function(){const e=this;if(e.parser.writable){e.parser.end()}else if(!e._boy._done){process.nextTick((function(){e._boy._done=true;e._boy.emit("finish")}))}};function skipPart(e){e.resume()}function FileStream(e){r.call(this,e);this.bytesRead=0;this.truncated=false}o(FileStream,r);FileStream.prototype._read=function(e){};e.exports=Multipart},9933:(e,t,s)=>{const r=s(2017);const o=s(9999);const A=s(7845);const n=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(e,t){const s=t.limits;const o=t.parsedConType;this.boy=e;this.fieldSizeLimit=A(s,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=A(s,"fieldNameSize",100);this.fieldsLimit=A(s,"fields",Infinity);let i;for(var a=0,c=o.length;an){this._key+=this.decoder.write(e.toString("binary",n,s))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();n=s+1}else if(r!==undefined){++this._fields;let s;const A=this._keyTrunc;if(r>n){s=this._key+=this.decoder.write(e.toString("binary",n,r))}else{s=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(s.length){this.boy.emit("field",o(s,"binary",this.charset),"",A,false)}n=r+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(A>n){this._key+=this.decoder.write(e.toString("binary",n,A))}n=A;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(nn){this._val+=this.decoder.write(e.toString("binary",n,r))}this.boy.emit("field",o(this._key,"binary",this.charset),o(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();n=r+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(A>n){this._val+=this.decoder.write(e.toString("binary",n,A))}n=A;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(n0){this.boy.emit("field",o(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",o(this._key,"binary",this.charset),o(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};e.exports=UrlEncoded},2017:e=>{const t=/\+/g;const s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(e){e=e.replace(t," ");let r="";let o=0;let A=0;const n=e.length;for(;oA){r+=e.substring(A,o);A=o}this.buffer="";++A}}if(A{e.exports=function basename(e){if(typeof e!=="string"){return""}for(var t=e.length-1;t>=0;--t){switch(e.charCodeAt(t)){case 47:case 92:e=e.slice(t+1);return e===".."||e==="."?"":e}}return e===".."||e==="."?"":e}},9999:function(e){const t=new TextDecoder("utf-8");const s=new Map([["utf-8",t],["utf8",t]]);function getDecoder(e){let t;while(true){switch(e){case"utf-8":case"utf8":return r.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return r.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return r.utf16le;case"base64":return r.base64;default:if(t===undefined){t=true;e=e.toLowerCase();continue}return r.other.bind(e)}}}const r={utf8:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.utf8Slice(0,e.length)},latin1:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){return e}return e.latin1Slice(0,e.length)},utf16le:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.ucs2Slice(0,e.length)},base64:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.base64Slice(0,e.length)},other:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}if(s.has(this.toString())){try{return s.get(this).decode(e)}catch(e){}}return typeof e==="string"?e:e.toString()}};function decodeText(e,t,s){if(e){return getDecoder(s)(e,t)}return e}e.exports=decodeText},7845:e=>{e.exports=function getLimit(e,t,s){if(!e||e[t]===undefined||e[t]===null){return s}if(typeof e[t]!=="number"||isNaN(e[t])){throw new TypeError("Limit "+t+" is not a valid number")}return e[t]}},8696:(e,t,s)=>{const r=s(9999);const o=/%[a-fA-F0-9][a-fA-F0-9]/g;const A={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(e){return A[e]}const n=0;const i=1;const a=2;const c=3;function parseParams(e){const t=[];let s=n;let A="";let l=false;let u=false;let p=0;let g="";const d=e.length;for(var h=0;h{const r=s(4551);const o=s(7310);const A=s(490);const n=s(3685);const i=s(5687);const a=s(3837);const c=s(9712);const l=s(9796);const u=s(2781);const p=s(2361);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}const g=_interopDefaultLegacy(r);const d=_interopDefaultLegacy(o);const h=_interopDefaultLegacy(n);const E=_interopDefaultLegacy(i);const C=_interopDefaultLegacy(a);const Q=_interopDefaultLegacy(c);const m=_interopDefaultLegacy(l);const B=_interopDefaultLegacy(u);const I=_interopDefaultLegacy(p);function bind(e,t){return function wrap(){return e.apply(t,arguments)}}const{toString:b}=Object.prototype;const{getPrototypeOf:y}=Object;const w=(e=>t=>{const s=b.call(t);return e[s]||(e[s]=s.slice(8,-1).toLowerCase())})(Object.create(null));const kindOfTest=e=>{e=e.toLowerCase();return t=>w(t)===e};const typeOfTest=e=>t=>typeof t===e;const{isArray:v}=Array;const R=typeOfTest("undefined");function isBuffer(e){return e!==null&&!R(e)&&e.constructor!==null&&!R(e.constructor)&&x(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const k=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){t=ArrayBuffer.isView(e)}else{t=e&&e.buffer&&k(e.buffer)}return t}const D=typeOfTest("string");const x=typeOfTest("function");const F=typeOfTest("number");const isObject=e=>e!==null&&typeof e==="object";const isBoolean=e=>e===true||e===false;const isPlainObject=e=>{if(w(e)!=="object"){return false}const t=y(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)};const S=kindOfTest("Date");const T=kindOfTest("File");const U=kindOfTest("Blob");const N=kindOfTest("FileList");const isStream=e=>isObject(e)&&x(e.pipe);const isFormData=e=>{let t;return e&&(typeof FormData==="function"&&e instanceof FormData||x(e.append)&&((t=w(e))==="formdata"||t==="object"&&x(e.toString)&&e.toString()==="[object FormData]"))};const L=kindOfTest("URLSearchParams");const trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:s=false}={}){if(e===null||typeof e==="undefined"){return}let r;let o;if(typeof e!=="object"){e=[e]}if(v(e)){for(r=0,o=e.length;r0){o=s[r];if(t===o.toLowerCase()){return o}}return null}const _=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})();const isContextDefined=e=>!R(e)&&e!==_;function merge(){const{caseless:e}=isContextDefined(this)&&this||{};const t={};const assignValue=(s,r)=>{const o=e&&findKey(t,r)||r;if(isPlainObject(t[o])&&isPlainObject(s)){t[o]=merge(t[o],s)}else if(isPlainObject(s)){t[o]=merge({},s)}else if(v(s)){t[o]=s.slice()}else{t[o]=s}};for(let e=0,t=arguments.length;e{forEach(t,((t,r)=>{if(s&&x(t)){e[r]=bind(t,s)}else{e[r]=t}}),{allOwnKeys:r});return e};const stripBOM=e=>{if(e.charCodeAt(0)===65279){e=e.slice(1)}return e};const inherits=(e,t,s,r)=>{e.prototype=Object.create(t.prototype,r);e.prototype.constructor=e;Object.defineProperty(e,"super",{value:t.prototype});s&&Object.assign(e.prototype,s)};const toFlatObject=(e,t,s,r)=>{let o;let A;let n;const i={};t=t||{};if(e==null)return t;do{o=Object.getOwnPropertyNames(e);A=o.length;while(A-- >0){n=o[A];if((!r||r(n,e,t))&&!i[n]){t[n]=e[n];i[n]=true}}e=s!==false&&y(e)}while(e&&(!s||s(e,t))&&e!==Object.prototype);return t};const endsWith=(e,t,s)=>{e=String(e);if(s===undefined||s>e.length){s=e.length}s-=t.length;const r=e.indexOf(t,s);return r!==-1&&r===s};const toArray=e=>{if(!e)return null;if(v(e))return e;let t=e.length;if(!F(t))return null;const s=new Array(t);while(t-- >0){s[t]=e[t]}return s};const M=(e=>t=>e&&t instanceof e)(typeof Uint8Array!=="undefined"&&y(Uint8Array));const forEachEntry=(e,t)=>{const s=e&&e[Symbol.iterator];const r=s.call(e);let o;while((o=r.next())&&!o.done){const s=o.value;t.call(e,s[0],s[1])}};const matchAll=(e,t)=>{let s;const r=[];while((s=e.exec(t))!==null){r.push(s)}return r};const G=kindOfTest("HTMLFormElement");const toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function replacer(e,t,s){return t.toUpperCase()+s}));const O=(({hasOwnProperty:e})=>(t,s)=>e.call(t,s))(Object.prototype);const P=kindOfTest("RegExp");const reduceDescriptors=(e,t)=>{const s=Object.getOwnPropertyDescriptors(e);const r={};forEach(s,((s,o)=>{let A;if((A=t(s,o,e))!==false){r[o]=A||s}}));Object.defineProperties(e,r)};const freezeMethods=e=>{reduceDescriptors(e,((t,s)=>{if(x(e)&&["arguments","caller","callee"].indexOf(s)!==-1){return false}const r=e[s];if(!x(r))return;t.enumerable=false;if("writable"in t){t.writable=false;return}if(!t.set){t.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}}}))};const toObjectSet=(e,t)=>{const s={};const define=e=>{e.forEach((e=>{s[e]=true}))};v(e)?define(e):define(String(e).split(t));return s};const noop=()=>{};const toFiniteNumber=(e,t)=>{e=+e;return Number.isFinite(e)?e:t};const H="abcdefghijklmnopqrstuvwxyz";const Y="0123456789";const J={DIGIT:Y,ALPHA:H,ALPHA_DIGIT:H+H.toUpperCase()+Y};const generateString=(e=16,t=J.ALPHA_DIGIT)=>{let s="";const{length:r}=t;while(e--){s+=t[Math.random()*r|0]}return s};function isSpecCompliantForm(e){return!!(e&&x(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10);const visit=(e,s)=>{if(isObject(e)){if(t.indexOf(e)>=0){return}if(!("toJSON"in e)){t[s]=e;const r=v(e)?[]:{};forEach(e,((e,t)=>{const o=visit(e,s+1);!R(o)&&(r[t]=o)}));t[s]=undefined;return r}}return e};return visit(e,0)};const q=kindOfTest("AsyncFunction");const isThenable=e=>e&&(isObject(e)||x(e))&&x(e.then)&&x(e.catch);const V={isArray:v,isArrayBuffer:k,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:D,isNumber:F,isBoolean:isBoolean,isObject:isObject,isPlainObject:isPlainObject,isUndefined:R,isDate:S,isFile:T,isBlob:U,isRegExp:P,isFunction:x,isStream:isStream,isURLSearchParams:L,isTypedArray:M,isFileList:N,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:w,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,forEachEntry:forEachEntry,matchAll:matchAll,isHTMLForm:G,hasOwnProperty:O,hasOwnProp:O,reduceDescriptors:reduceDescriptors,freezeMethods:freezeMethods,toObjectSet:toObjectSet,toCamelCase:toCamelCase,noop:noop,toFiniteNumber:toFiniteNumber,findKey:findKey,global:_,isContextDefined:isContextDefined,ALPHABET:J,generateString:generateString,isSpecCompliantForm:isSpecCompliantForm,toJSONObject:toJSONObject,isAsyncFn:q,isThenable:isThenable};function AxiosError(e,t,s,r,o){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack}this.message=e;this.name="AxiosError";t&&(this.code=t);s&&(this.config=s);r&&(this.request=r);o&&(this.response=o)}V.inherits(AxiosError,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:V.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const W=AxiosError.prototype;const j={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{j[e]={value:e}}));Object.defineProperties(AxiosError,j);Object.defineProperty(W,"isAxiosError",{value:true});AxiosError.from=(e,t,s,r,o,A)=>{const n=Object.create(W);V.toFlatObject(e,n,(function filter(e){return e!==Error.prototype}),(e=>e!=="isAxiosError"));AxiosError.call(n,e.message,t,s,r,o);n.cause=e;n.name=e.name;A&&Object.assign(n,A);return n};function isVisitable(e){return V.isPlainObject(e)||V.isArray(e)}function removeBrackets(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,s){if(!e)return t;return e.concat(t).map((function each(e,t){e=removeBrackets(e);return!s&&t?"["+e+"]":e})).join(s?".":"")}function isFlatArray(e){return V.isArray(e)&&!e.some(isVisitable)}const z=V.toFlatObject(V,{},null,(function filter(e){return/^is[A-Z]/.test(e)}));function toFormData(e,t,s){if(!V.isObject(e)){throw new TypeError("target must be an object")}t=t||new(g["default"]||FormData);s=V.toFlatObject(s,{metaTokens:true,dots:false,indexes:false},false,(function defined(e,t){return!V.isUndefined(t[e])}));const r=s.metaTokens;const o=s.visitor||defaultVisitor;const A=s.dots;const n=s.indexes;const i=s.Blob||typeof Blob!=="undefined"&&Blob;const a=i&&V.isSpecCompliantForm(t);if(!V.isFunction(o)){throw new TypeError("visitor must be a function")}function convertValue(e){if(e===null)return"";if(V.isDate(e)){return e.toISOString()}if(!a&&V.isBlob(e)){throw new AxiosError("Blob is not supported. Use a Buffer instead.")}if(V.isArrayBuffer(e)||V.isTypedArray(e)){return a&&typeof Blob==="function"?new Blob([e]):Buffer.from(e)}return e}function defaultVisitor(e,s,o){let i=e;if(e&&!o&&typeof e==="object"){if(V.endsWith(s,"{}")){s=r?s:s.slice(0,-2);e=JSON.stringify(e)}else if(V.isArray(e)&&isFlatArray(e)||(V.isFileList(e)||V.endsWith(s,"[]"))&&(i=V.toArray(e))){s=removeBrackets(s);i.forEach((function each(e,r){!(V.isUndefined(e)||e===null)&&t.append(n===true?renderKey([s],r,A):n===null?s:s+"[]",convertValue(e))}));return false}}if(isVisitable(e)){return true}t.append(renderKey(o,s,A),convertValue(e));return false}const c=[];const l=Object.assign(z,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});function build(e,s){if(V.isUndefined(e))return;if(c.indexOf(e)!==-1){throw Error("Circular reference detected in "+s.join("."))}c.push(e);V.forEach(e,(function each(e,r){const A=!(V.isUndefined(e)||e===null)&&o.call(t,e,V.isString(r)?r.trim():r,s,l);if(A===true){build(e,s?s.concat(r):[r])}}));c.pop()}if(!V.isObject(e)){throw new TypeError("data must be an object")}build(e);return t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function replacer(e){return t[e]}))}function AxiosURLSearchParams(e,t){this._pairs=[];e&&toFormData(e,this,t)}const K=AxiosURLSearchParams.prototype;K.append=function append(e,t){this._pairs.push([e,t])};K.toString=function toString(e){const t=e?function(t){return e.call(this,t,encode$1)}:encode$1;return this._pairs.map((function each(e){return t(e[0])+"="+t(e[1])}),"").join("&")};function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,s){if(!t){return e}const r=s&&s.encode||encode;const o=s&&s.serialize;let A;if(o){A=o(t,s)}else{A=V.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,s).toString(r)}if(A){const t=e.indexOf("#");if(t!==-1){e=e.slice(0,t)}e+=(e.indexOf("?")===-1?"?":"&")+A}return e}class InterceptorManager{constructor(){this.handlers=[]}use(e,t,s){this.handlers.push({fulfilled:e,rejected:t,synchronous:s?s.synchronous:false,runWhen:s?s.runWhen:null});return this.handlers.length-1}eject(e){if(this.handlers[e]){this.handlers[e]=null}}clear(){if(this.handlers){this.handlers=[]}}forEach(e){V.forEach(this.handlers,(function forEachHandler(t){if(t!==null){e(t)}}))}}const X=InterceptorManager;const Z={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false};const $=d["default"].URLSearchParams;const ee={isNode:true,classes:{URLSearchParams:$,FormData:g["default"],Blob:typeof Blob!=="undefined"&&Blob||null},protocols:["http","https","file","data"]};const te=typeof window!=="undefined"&&typeof document!=="undefined";const se=(e=>te&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator!=="undefined"&&navigator.product);const re=(()=>typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function")();const oe=Object.freeze({__proto__:null,hasBrowserEnv:te,hasStandardBrowserWebWorkerEnv:re,hasStandardBrowserEnv:se});const Ae={...oe,...ee};function toURLEncodedForm(e,t){return toFormData(e,new Ae.classes.URLSearchParams,Object.assign({visitor:function(e,t,s,r){if(Ae.isNode&&V.isBuffer(e)){this.append(t,e.toString("base64"));return false}return r.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map((e=>e[0]==="[]"?"":e[1]||e[0]))}function arrayToObject(e){const t={};const s=Object.keys(e);let r;const o=s.length;let A;for(r=0;r=e.length;o=!o&&V.isArray(s)?s.length:o;if(n){if(V.hasOwnProp(s,o)){s[o]=[s[o],t]}else{s[o]=t}return!A}if(!s[o]||!V.isObject(s[o])){s[o]=[]}const i=buildPath(e,t,s[o],r);if(i&&V.isArray(s[o])){s[o]=arrayToObject(s[o])}return!A}if(V.isFormData(e)&&V.isFunction(e.entries)){const t={};V.forEachEntry(e,((e,s)=>{buildPath(parsePropPath(e),s,t,0)}));return t}return null}function stringifySafely(e,t,s){if(V.isString(e)){try{(t||JSON.parse)(e);return V.trim(e)}catch(e){if(e.name!=="SyntaxError"){throw e}}}return(s||JSON.stringify)(e)}const ne={transitional:Z,adapter:["xhr","http"],transformRequest:[function transformRequest(e,t){const s=t.getContentType()||"";const r=s.indexOf("application/json")>-1;const o=V.isObject(e);if(o&&V.isHTMLForm(e)){e=new FormData(e)}const A=V.isFormData(e);if(A){return r?JSON.stringify(formDataToJSON(e)):e}if(V.isArrayBuffer(e)||V.isBuffer(e)||V.isStream(e)||V.isFile(e)||V.isBlob(e)){return e}if(V.isArrayBufferView(e)){return e.buffer}if(V.isURLSearchParams(e)){t.setContentType("application/x-www-form-urlencoded;charset=utf-8",false);return e.toString()}let n;if(o){if(s.indexOf("application/x-www-form-urlencoded")>-1){return toURLEncodedForm(e,this.formSerializer).toString()}if((n=V.isFileList(e))||s.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return toFormData(n?{"files[]":e}:e,t&&new t,this.formSerializer)}}if(o||r){t.setContentType("application/json",false);return stringifySafely(e)}return e}],transformResponse:[function transformResponse(e){const t=this.transitional||ne.transitional;const s=t&&t.forcedJSONParsing;const r=this.responseType==="json";if(e&&V.isString(e)&&(s&&!this.responseType||r)){const s=t&&t.silentJSONParsing;const o=!s&&r;try{return JSON.parse(e)}catch(e){if(o){if(e.name==="SyntaxError"){throw AxiosError.from(e,AxiosError.ERR_BAD_RESPONSE,this,null,this.response)}throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ae.classes.FormData,Blob:Ae.classes.Blob},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":undefined}}};V.forEach(["delete","get","head","post","put","patch"],(e=>{ne.headers[e]={}}));const ie=ne;const ae=V.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const parseHeaders=e=>{const t={};let s;let r;let o;e&&e.split("\n").forEach((function parser(e){o=e.indexOf(":");s=e.substring(0,o).trim().toLowerCase();r=e.substring(o+1).trim();if(!s||t[s]&&ae[s]){return}if(s==="set-cookie"){if(t[s]){t[s].push(r)}else{t[s]=[r]}}else{t[s]=t[s]?t[s]+", "+r:r}}));return t};const ce=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){if(e===false||e==null){return e}return V.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const t=Object.create(null);const s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;while(r=s.exec(e)){t[r[1]]=r[2]}return t}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,t,s,r,o){if(V.isFunction(r)){return r.call(this,t,s)}if(o){t=s}if(!V.isString(t))return;if(V.isString(r)){return t.indexOf(r)!==-1}if(V.isRegExp(r)){return r.test(t)}}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,s)=>t.toUpperCase()+s))}function buildAccessors(e,t){const s=V.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+s,{value:function(e,s,o){return this[r].call(this,t,e,s,o)},configurable:true})}))}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,s){const r=this;function setHeader(e,t,s){const o=normalizeHeader(t);if(!o){throw new Error("header name must be a non-empty string")}const A=V.findKey(r,o);if(!A||r[A]===undefined||s===true||s===undefined&&r[A]!==false){r[A||t]=normalizeValue(e)}}const setHeaders=(e,t)=>V.forEach(e,((e,s)=>setHeader(e,s,t)));if(V.isPlainObject(e)||e instanceof this.constructor){setHeaders(e,t)}else if(V.isString(e)&&(e=e.trim())&&!isValidHeaderName(e)){setHeaders(parseHeaders(e),t)}else{e!=null&&setHeader(t,e,s)}return this}get(e,t){e=normalizeHeader(e);if(e){const s=V.findKey(this,e);if(s){const e=this[s];if(!t){return e}if(t===true){return parseTokens(e)}if(V.isFunction(t)){return t.call(this,e,s)}if(V.isRegExp(t)){return t.exec(e)}throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){e=normalizeHeader(e);if(e){const s=V.findKey(this,e);return!!(s&&this[s]!==undefined&&(!t||matchHeaderValue(this,this[s],s,t)))}return false}delete(e,t){const s=this;let r=false;function deleteHeader(e){e=normalizeHeader(e);if(e){const o=V.findKey(s,e);if(o&&(!t||matchHeaderValue(s,s[o],o,t))){delete s[o];r=true}}}if(V.isArray(e)){e.forEach(deleteHeader)}else{deleteHeader(e)}return r}clear(e){const t=Object.keys(this);let s=t.length;let r=false;while(s--){const o=t[s];if(!e||matchHeaderValue(this,this[o],o,e,true)){delete this[o];r=true}}return r}normalize(e){const t=this;const s={};V.forEach(this,((r,o)=>{const A=V.findKey(s,o);if(A){t[A]=normalizeValue(r);delete t[o];return}const n=e?formatHeader(o):String(o).trim();if(n!==o){delete t[o]}t[n]=normalizeValue(r);s[n]=true}));return this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);V.forEach(this,((s,r)=>{s!=null&&s!==false&&(t[r]=e&&V.isArray(s)?s.join(", "):s)}));return t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);t.forEach((e=>s.set(e)));return s}static accessor(e){const t=this[ce]=this[ce]={accessors:{}};const s=t.accessors;const r=this.prototype;function defineAccessor(e){const t=normalizeHeader(e);if(!s[t]){buildAccessors(r,e);s[t]=true}}V.isArray(e)?e.forEach(defineAccessor):defineAccessor(e);return this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(AxiosHeaders.prototype,(({value:e},t)=>{let s=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[s]=e}}}));V.freezeMethods(AxiosHeaders);const le=AxiosHeaders;function transformData(e,t){const s=this||ie;const r=t||s;const o=le.from(r.headers);let A=r.data;V.forEach(e,(function transform(e){A=e.call(s,A,o.normalize(),t?t.status:undefined)}));o.normalize();return A}function isCancel(e){return!!(e&&e.__CANCEL__)}function CanceledError(e,t,s){AxiosError.call(this,e==null?"canceled":e,AxiosError.ERR_CANCELED,t,s);this.name="CanceledError"}V.inherits(CanceledError,AxiosError,{__CANCEL__:true});function settle(e,t,s){const r=s.config.validateStatus;if(!s.status||!r||r(s.status)){e(s)}else{t(new AxiosError("Request failed with status code "+s.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s))}}function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t){if(e&&!isAbsoluteURL(t)){return combineURLs(e,t)}return t}const ue="1.6.7";function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}const pe=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function fromDataURI(e,t,s){const r=s&&s.Blob||Ae.classes.Blob;const o=parseProtocol(e);if(t===undefined&&r){t=true}if(o==="data"){e=o.length?e.slice(o.length+1):e;const s=pe.exec(e);if(!s){throw new AxiosError("Invalid URL",AxiosError.ERR_INVALID_URL)}const A=s[1];const n=s[2];const i=s[3];const a=Buffer.from(decodeURIComponent(i),n?"base64":"utf8");if(t){if(!r){throw new AxiosError("Blob is not supported",AxiosError.ERR_NOT_SUPPORT)}return new r([a],{type:A})}return a}throw new AxiosError("Unsupported protocol "+o,AxiosError.ERR_NOT_SUPPORT)}function throttle(e,t){let s=0;const r=1e3/t;let o=null;return function throttled(t,A){const n=Date.now();if(t||n-s>r){if(o){clearTimeout(o);o=null}s=n;return e.apply(null,A)}if(!o){o=setTimeout((()=>{o=null;s=Date.now();return e.apply(null,A)}),r-(n-s))}}}function speedometer(e,t){e=e||10;const s=new Array(e);const r=new Array(e);let o=0;let A=0;let n;t=t!==undefined?t:1e3;return function push(i){const a=Date.now();const c=r[A];if(!n){n=a}s[o]=i;r[o]=a;let l=A;let u=0;while(l!==o){u+=s[l++];l=l%e}o=(o+1)%e;if(o===A){A=(A+1)%e}if(a-n!V.isUndefined(t[e])));super({readableHighWaterMark:e.chunkSize});const t=this;const s=this[ge]={length:e.length,timeWindow:e.timeWindow,ticksRate:e.ticksRate,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:false,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};const r=speedometer(s.ticksRate*e.samplesCount,s.timeWindow);this.on("newListener",(e=>{if(e==="progress"){if(!s.isCaptured){s.isCaptured=true}}}));let o=0;s.updateProgress=throttle((function throttledHandler(){const e=s.length;const A=s.bytesSeen;const n=A-o;if(!n||t.destroyed)return;const i=r(n);o=A;process.nextTick((()=>{t.emit("progress",{loaded:A,total:e,progress:e?A/e:undefined,bytes:n,rate:i?i:undefined,estimated:i&&e&&A<=e?(e-A)/i:undefined})}))}),s.ticksRate);const onFinish=()=>{s.updateProgress(true)};this.once("end",onFinish);this.once("error",onFinish)}_read(e){const t=this[ge];if(t.onReadCallback){t.onReadCallback()}return super._read(e)}_transform(e,t,s){const r=this;const o=this[ge];const A=o.maxRate;const n=this.readableHighWaterMark;const i=o.timeWindow;const a=1e3/i;const c=A/a;const l=o.minChunkSize!==false?Math.max(o.minChunkSize,c*.01):0;function pushChunk(e,t){const s=Buffer.byteLength(e);o.bytesSeen+=s;o.bytes+=s;if(o.isCaptured){o.updateProgress()}if(r.push(e)){process.nextTick(t)}else{o.onReadCallback=()=>{o.onReadCallback=null;process.nextTick(t)}}}const transformChunk=(e,t)=>{const s=Buffer.byteLength(e);let r=null;let a=n;let u;let p=0;if(A){const e=Date.now();if(!o.ts||(p=e-o.ts)>=i){o.ts=e;u=c-o.bytes;o.bytes=u<0?-u:0;p=0}u=c-o.bytes}if(A){if(u<=0){return setTimeout((()=>{t(null,e)}),i-p)}if(ua&&s-a>l){r=e.subarray(a);e=e.subarray(0,a)}pushChunk(e,r?()=>{process.nextTick(t,null,r)}:t)};transformChunk(e,(function transformNextChunk(e,t){if(e){return s(e)}if(t){transformChunk(t,transformNextChunk)}else{s(null)}}))}setLength(e){this[ge].length=+e;return this}}const de=AxiosTransformStream;const{asyncIterator:he}=Symbol;const readBlob=async function*(e){if(e.stream){yield*e.stream()}else if(e.arrayBuffer){yield await e.arrayBuffer()}else if(e[he]){yield*e[he]()}else{yield e}};const Ee=readBlob;const fe=V.ALPHABET.ALPHA_DIGIT+"-_";const Ce=new a.TextEncoder;const Qe="\r\n";const me=Ce.encode(Qe);const Be=2;class FormDataPart{constructor(e,t){const{escapeName:s}=this.constructor;const r=V.isString(t);let o=`Content-Disposition: form-data; name="${s(e)}"${!r&&t.name?`; filename="${s(t.name)}"`:""}${Qe}`;if(r){t=Ce.encode(String(t).replace(/\r?\n|\r\n?/g,Qe))}else{o+=`Content-Type: ${t.type||"application/octet-stream"}${Qe}`}this.headers=Ce.encode(o+Qe);this.contentLength=r?t.byteLength:t.size;this.size=this.headers.byteLength+this.contentLength+Be;this.name=e;this.value=t}async*encode(){yield this.headers;const{value:e}=this;if(V.isTypedArray(e)){yield e}else{yield*Ee(e)}yield me}static escapeName(e){return String(e).replace(/[\r\n"]/g,(e=>({"\r":"%0D","\n":"%0A",'"':"%22"}[e])))}}const formDataToStream=(e,t,s)=>{const{tag:r="form-data-boundary",size:o=25,boundary:A=r+"-"+V.generateString(o,fe)}=s||{};if(!V.isFormData(e)){throw TypeError("FormData instance required")}if(A.length<1||A.length>70){throw Error("boundary must be 10-70 characters long")}const n=Ce.encode("--"+A+Qe);const i=Ce.encode("--"+A+"--"+Qe+Qe);let a=i.byteLength;const c=Array.from(e.entries()).map((([e,t])=>{const s=new FormDataPart(e,t);a+=s.size;return s}));a+=n.byteLength*c.length;a=V.toFiniteNumber(a);const l={"Content-Type":`multipart/form-data; boundary=${A}`};if(Number.isFinite(a)){l["Content-Length"]=a}t&&t(l);return u.Readable.from(async function*(){for(const e of c){yield n;yield*e.encode()}yield i}())};const Ie=formDataToStream;class ZlibHeaderTransformStream extends B["default"].Transform{__transform(e,t,s){this.push(e);s()}_transform(e,t,s){if(e.length!==0){this._transform=this.__transform;if(e[0]!==120){const e=Buffer.alloc(2);e[0]=120;e[1]=156;this.push(e,t)}}this.__transform(e,t,s)}}const be=ZlibHeaderTransformStream;const callbackify=(e,t)=>V.isAsyncFn(e)?function(...s){const r=s.pop();e.apply(this,s).then((e=>{try{t?r(null,...t(e)):r(null,e)}catch(e){r(e)}}),r)}:e;const ye=callbackify;const we={flush:m["default"].constants.Z_SYNC_FLUSH,finishFlush:m["default"].constants.Z_SYNC_FLUSH};const ve={flush:m["default"].constants.BROTLI_OPERATION_FLUSH,finishFlush:m["default"].constants.BROTLI_OPERATION_FLUSH};const Re=V.isFunction(m["default"].createBrotliDecompress);const{http:ke,https:De}=Q["default"];const xe=/https:?/;const Fe=Ae.protocols.map((e=>e+":"));function dispatchBeforeRedirect(e,t){if(e.beforeRedirects.proxy){e.beforeRedirects.proxy(e)}if(e.beforeRedirects.config){e.beforeRedirects.config(e,t)}}function setProxy(e,t,s){let r=t;if(!r&&r!==false){const e=A.getProxyForUrl(s);if(e){r=new URL(e)}}if(r){if(r.username){r.auth=(r.username||"")+":"+(r.password||"")}if(r.auth){if(r.auth.username||r.auth.password){r.auth=(r.auth.username||"")+":"+(r.auth.password||"")}const t=Buffer.from(r.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+t}e.headers.host=e.hostname+(e.port?":"+e.port:"");const t=r.hostname||r.host;e.hostname=t;e.host=t;e.port=r.port;e.path=s;if(r.protocol){e.protocol=r.protocol.includes(":")?r.protocol:`${r.protocol}:`}}e.beforeRedirects.proxy=function beforeRedirect(e){setProxy(e,t,e.href)}}const Se=typeof process!=="undefined"&&V.kindOf(process)==="process";const wrapAsync=e=>new Promise(((t,s)=>{let r;let o;const done=(e,t)=>{if(o)return;o=true;r&&r(e,t)};const _resolve=e=>{done(e);t(e)};const _reject=e=>{done(e,true);s(e)};e(_resolve,_reject,(e=>r=e)).catch(_reject)}));const resolveFamily=({address:e,family:t})=>{if(!V.isString(e)){throw TypeError("address must be a string")}return{address:e,family:t||(e.indexOf(".")<0?6:4)}};const buildAddressEntry=(e,t)=>resolveFamily(V.isObject(e)?e:{address:e,family:t});const Te=Se&&function httpAdapter(e){return wrapAsync((async function dispatchHttpRequest(t,s,r){let{data:o,lookup:A,family:n}=e;const{responseType:i,responseEncoding:a}=e;const c=e.method.toUpperCase();let l;let u=false;let p;if(A){const e=ye(A,(e=>V.isArray(e)?e:[e]));A=(t,s,r)=>{e(t,s,((e,t,o)=>{if(e){return r(e)}const A=V.isArray(t)?t.map((e=>buildAddressEntry(e))):[buildAddressEntry(t,o)];s.all?r(e,A):r(e,A[0].address,A[0].family)}))}}const g=new I["default"];const onFinished=()=>{if(e.cancelToken){e.cancelToken.unsubscribe(abort)}if(e.signal){e.signal.removeEventListener("abort",abort)}g.removeAllListeners()};r(((e,t)=>{l=true;if(t){u=true;onFinished()}}));function abort(t){g.emit("abort",!t||t.type?new CanceledError(null,e,p):t)}g.once("abort",s);if(e.cancelToken||e.signal){e.cancelToken&&e.cancelToken.subscribe(abort);if(e.signal){e.signal.aborted?abort():e.signal.addEventListener("abort",abort)}}const d=buildFullPath(e.baseURL,e.url);const Q=new URL(d,"http://localhost");const b=Q.protocol||Fe[0];if(b==="data:"){let r;if(c!=="GET"){return settle(t,s,{status:405,statusText:"method not allowed",headers:{},config:e})}try{r=fromDataURI(e.url,i==="blob",{Blob:e.env&&e.env.Blob})}catch(t){throw AxiosError.from(t,AxiosError.ERR_BAD_REQUEST,e)}if(i==="text"){r=r.toString(a);if(!a||a==="utf8"){r=V.stripBOM(r)}}else if(i==="stream"){r=B["default"].Readable.from(r)}return settle(t,s,{data:r,status:200,statusText:"OK",headers:new le,config:e})}if(Fe.indexOf(b)===-1){return s(new AxiosError("Unsupported protocol "+b,AxiosError.ERR_BAD_REQUEST,e))}const y=le.from(e.headers).normalize();y.set("User-Agent","axios/"+ue,false);const w=e.onDownloadProgress;const v=e.onUploadProgress;const R=e.maxRate;let k=undefined;let D=undefined;if(V.isSpecCompliantForm(o)){const e=y.getContentType(/boundary=([-_\w\d]{10,70})/i);o=Ie(o,(e=>{y.set(e)}),{tag:`axios-${ue}-boundary`,boundary:e&&e[1]||undefined})}else if(V.isFormData(o)&&V.isFunction(o.getHeaders)){y.set(o.getHeaders());if(!y.hasContentLength()){try{const e=await C["default"].promisify(o.getLength).call(o);Number.isFinite(e)&&e>=0&&y.setContentLength(e)}catch(e){}}}else if(V.isBlob(o)){o.size&&y.setContentType(o.type||"application/octet-stream");y.setContentLength(o.size||0);o=B["default"].Readable.from(Ee(o))}else if(o&&!V.isStream(o)){if(Buffer.isBuffer(o));else if(V.isArrayBuffer(o)){o=Buffer.from(new Uint8Array(o))}else if(V.isString(o)){o=Buffer.from(o,"utf-8")}else{return s(new AxiosError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",AxiosError.ERR_BAD_REQUEST,e))}y.setContentLength(o.length,false);if(e.maxBodyLength>-1&&o.length>e.maxBodyLength){return s(new AxiosError("Request body larger than maxBodyLength limit",AxiosError.ERR_BAD_REQUEST,e))}}const x=V.toFiniteNumber(y.getContentLength());if(V.isArray(R)){k=R[0];D=R[1]}else{k=D=R}if(o&&(v||k)){if(!V.isStream(o)){o=B["default"].Readable.from(o,{objectMode:false})}o=B["default"].pipeline([o,new de({length:x,maxRate:V.toFiniteNumber(k)})],V.noop);v&&o.on("progress",(e=>{v(Object.assign(e,{upload:true}))}))}let F=undefined;if(e.auth){const t=e.auth.username||"";const s=e.auth.password||"";F=t+":"+s}if(!F&&Q.username){const e=Q.username;const t=Q.password;F=e+":"+t}F&&y.delete("authorization");let S;try{S=buildURL(Q.pathname+Q.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(t){const r=new Error(t.message);r.config=e;r.url=e.url;r.exists=true;return s(r)}y.set("Accept-Encoding","gzip, compress, deflate"+(Re?", br":""),false);const T={path:S,method:c,headers:y.toJSON(),agents:{http:e.httpAgent,https:e.httpsAgent},auth:F,protocol:b,family:n,beforeRedirect:dispatchBeforeRedirect,beforeRedirects:{}};!V.isUndefined(A)&&(T.lookup=A);if(e.socketPath){T.socketPath=e.socketPath}else{T.hostname=Q.hostname;T.port=Q.port;setProxy(T,e.proxy,b+"//"+Q.hostname+(Q.port?":"+Q.port:"")+T.path)}let U;const N=xe.test(T.protocol);T.agent=N?e.httpsAgent:e.httpAgent;if(e.transport){U=e.transport}else if(e.maxRedirects===0){U=N?E["default"]:h["default"]}else{if(e.maxRedirects){T.maxRedirects=e.maxRedirects}if(e.beforeRedirect){T.beforeRedirects.config=e.beforeRedirect}U=N?De:ke}if(e.maxBodyLength>-1){T.maxBodyLength=e.maxBodyLength}else{T.maxBodyLength=Infinity}if(e.insecureHTTPParser){T.insecureHTTPParser=e.insecureHTTPParser}p=U.request(T,(function handleResponse(r){if(p.destroyed)return;const o=[r];const A=+r.headers["content-length"];if(w){const e=new de({length:V.toFiniteNumber(A),maxRate:V.toFiniteNumber(D)});w&&e.on("progress",(e=>{w(Object.assign(e,{download:true}))}));o.push(e)}let n=r;const l=r.req||p;if(e.decompress!==false&&r.headers["content-encoding"]){if(c==="HEAD"||r.statusCode===204){delete r.headers["content-encoding"]}switch((r.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":o.push(m["default"].createUnzip(we));delete r.headers["content-encoding"];break;case"deflate":o.push(new be);o.push(m["default"].createUnzip(we));delete r.headers["content-encoding"];break;case"br":if(Re){o.push(m["default"].createBrotliDecompress(ve));delete r.headers["content-encoding"]}}}n=o.length>1?B["default"].pipeline(o,V.noop):o[0];const d=B["default"].finished(n,(()=>{d();onFinished()}));const h={status:r.statusCode,statusText:r.statusMessage,headers:new le(r.headers),config:e,request:l};if(i==="stream"){h.data=n;settle(t,s,h)}else{const r=[];let o=0;n.on("data",(function handleStreamData(t){r.push(t);o+=t.length;if(e.maxContentLength>-1&&o>e.maxContentLength){u=true;n.destroy();s(new AxiosError("maxContentLength size of "+e.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,e,l))}}));n.on("aborted",(function handlerStreamAborted(){if(u){return}const t=new AxiosError("maxContentLength size of "+e.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,e,l);n.destroy(t);s(t)}));n.on("error",(function handleStreamError(t){if(p.destroyed)return;s(AxiosError.from(t,null,e,l))}));n.on("end",(function handleStreamEnd(){try{let e=r.length===1?r[0]:Buffer.concat(r);if(i!=="arraybuffer"){e=e.toString(a);if(!a||a==="utf8"){e=V.stripBOM(e)}}h.data=e}catch(t){return s(AxiosError.from(t,null,e,h.request,h))}settle(t,s,h)}))}g.once("abort",(e=>{if(!n.destroyed){n.emit("error",e);n.destroy()}}))}));g.once("abort",(e=>{s(e);p.destroy(e)}));p.on("error",(function handleRequestError(t){s(AxiosError.from(t,null,e,p))}));p.on("socket",(function handleRequestSocket(e){e.setKeepAlive(true,1e3*60)}));if(e.timeout){const t=parseInt(e.timeout,10);if(Number.isNaN(t)){s(new AxiosError("error trying to parse `config.timeout` to int",AxiosError.ERR_BAD_OPTION_VALUE,e,p));return}p.setTimeout(t,(function handleRequestTimeout(){if(l)return;let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Z;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}s(new AxiosError(t,r.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,p));abort()}))}if(V.isStream(o)){let t=false;let s=false;o.on("end",(()=>{t=true}));o.once("error",(e=>{s=true;p.destroy(e)}));o.on("close",(()=>{if(!t&&!s){abort(new CanceledError("Request stream has been aborted",e,p))}}));o.pipe(p)}else{p.end(o)}}))};const Ue=Ae.hasStandardBrowserEnv?{write(e,t,s,r,o,A){const n=[e+"="+encodeURIComponent(t)];V.isNumber(s)&&n.push("expires="+new Date(s).toGMTString());V.isString(r)&&n.push("path="+r);V.isString(o)&&n.push("domain="+o);A===true&&n.push("secure");document.cookie=n.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};const Ne=Ae.hasStandardBrowserEnv?function standardBrowserEnv(){const e=/(msie|trident)/i.test(navigator.userAgent);const t=document.createElement("a");let s;function resolveURL(s){let r=s;if(e){t.setAttribute("href",r);r=t.href}t.setAttribute("href",r);return{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}s=resolveURL(window.location.href);return function isURLSameOrigin(e){const t=V.isString(e)?resolveURL(e):e;return t.protocol===s.protocol&&t.host===s.host}}():function nonStandardBrowserEnv(){return function isURLSameOrigin(){return true}}();function progressEventReducer(e,t){let s=0;const r=speedometer(50,250);return o=>{const A=o.loaded;const n=o.lengthComputable?o.total:undefined;const i=A-s;const a=r(i);const c=A<=n;s=A;const l={loaded:A,total:n,progress:n?A/n:undefined,bytes:i,rate:a?a:undefined,estimated:a&&n&&c?(n-A)/a:undefined,event:o};l[t?"download":"upload"]=true;e(l)}}const Le=typeof XMLHttpRequest!=="undefined";const _e=Le&&function(e){return new Promise((function dispatchXhrRequest(t,s){let r=e.data;const o=le.from(e.headers).normalize();let{responseType:A,withXSRFToken:n}=e;let i;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(i)}if(e.signal){e.signal.removeEventListener("abort",i)}}let a;if(V.isFormData(r)){if(Ae.hasStandardBrowserEnv||Ae.hasStandardBrowserWebWorkerEnv){o.setContentType(false)}else if((a=o.getContentType())!==false){const[e,...t]=a?a.split(";").map((e=>e.trim())).filter(Boolean):[];o.setContentType([e||"multipart/form-data",...t].join("; "))}}let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"";const s=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+s))}const l=buildFullPath(e.baseURL,e.url);c.open(e.method.toUpperCase(),buildURL(l,e.params,e.paramsSerializer),true);c.timeout=e.timeout;function onloadend(){if(!c){return}const r=le.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());const o=!A||A==="text"||A==="json"?c.responseText:c.response;const n={data:o,status:c.status,statusText:c.statusText,headers:r,config:e,request:c};settle((function _resolve(e){t(e);done()}),(function _reject(e){s(e);done()}),n);c=null}if("onloadend"in c){c.onloadend=onloadend}else{c.onreadystatechange=function handleLoad(){if(!c||c.readyState!==4){return}if(c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)){return}setTimeout(onloadend)}}c.onabort=function handleAbort(){if(!c){return}s(new AxiosError("Request aborted",AxiosError.ECONNABORTED,e,c));c=null};c.onerror=function handleError(){s(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,c));c=null};c.ontimeout=function handleTimeout(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Z;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}s(new AxiosError(t,r.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,c));c=null};if(Ae.hasStandardBrowserEnv){n&&V.isFunction(n)&&(n=n(e));if(n||n!==false&&Ne(l)){const t=e.xsrfHeaderName&&e.xsrfCookieName&&Ue.read(e.xsrfCookieName);if(t){o.set(e.xsrfHeaderName,t)}}}r===undefined&&o.setContentType(null);if("setRequestHeader"in c){V.forEach(o.toJSON(),(function setRequestHeader(e,t){c.setRequestHeader(t,e)}))}if(!V.isUndefined(e.withCredentials)){c.withCredentials=!!e.withCredentials}if(A&&A!=="json"){c.responseType=e.responseType}if(typeof e.onDownloadProgress==="function"){c.addEventListener("progress",progressEventReducer(e.onDownloadProgress,true))}if(typeof e.onUploadProgress==="function"&&c.upload){c.upload.addEventListener("progress",progressEventReducer(e.onUploadProgress))}if(e.cancelToken||e.signal){i=t=>{if(!c){return}s(!t||t.type?new CanceledError(null,e,c):t);c.abort();c=null};e.cancelToken&&e.cancelToken.subscribe(i);if(e.signal){e.signal.aborted?i():e.signal.addEventListener("abort",i)}}const u=parseProtocol(l);if(u&&Ae.protocols.indexOf(u)===-1){s(new AxiosError("Unsupported protocol "+u+":",AxiosError.ERR_BAD_REQUEST,e));return}c.send(r||null)}))};const Me={http:Te,xhr:_e};V.forEach(Me,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const renderReason=e=>`- ${e}`;const isResolvedHandle=e=>V.isFunction(e)||e===null||e===false;const Ge={getAdapter:e=>{e=V.isArray(e)?e:[e];const{length:t}=e;let s;let r;const o={};for(let A=0;A`adapter ${e} `+(t===false?"is not supported by the environment":"is not available in the build")));let s=t?e.length>1?"since :\n"+e.map(renderReason).join("\n"):" "+renderReason(e[0]):"as no adapter specified";throw new AxiosError(`There is no suitable adapter to dispatch the request `+s,"ERR_NOT_SUPPORT")}return r},adapters:Me};function throwIfCancellationRequested(e){if(e.cancelToken){e.cancelToken.throwIfRequested()}if(e.signal&&e.signal.aborted){throw new CanceledError(null,e)}}function dispatchRequest(e){throwIfCancellationRequested(e);e.headers=le.from(e.headers);e.data=transformData.call(e,e.transformRequest);if(["post","put","patch"].indexOf(e.method)!==-1){e.headers.setContentType("application/x-www-form-urlencoded",false)}const t=Ge.getAdapter(e.adapter||ie.adapter);return t(e).then((function onAdapterResolution(t){throwIfCancellationRequested(e);t.data=transformData.call(e,e.transformResponse,t);t.headers=le.from(t.headers);return t}),(function onAdapterRejection(t){if(!isCancel(t)){throwIfCancellationRequested(e);if(t&&t.response){t.response.data=transformData.call(e,e.transformResponse,t.response);t.response.headers=le.from(t.response.headers)}}return Promise.reject(t)}))}const headersToObject=e=>e instanceof le?e.toJSON():e;function mergeConfig(e,t){t=t||{};const s={};function getMergedValue(e,t,s){if(V.isPlainObject(e)&&V.isPlainObject(t)){return V.merge.call({caseless:s},e,t)}else if(V.isPlainObject(t)){return V.merge({},t)}else if(V.isArray(t)){return t.slice()}return t}function mergeDeepProperties(e,t,s){if(!V.isUndefined(t)){return getMergedValue(e,t,s)}else if(!V.isUndefined(e)){return getMergedValue(undefined,e,s)}}function valueFromConfig2(e,t){if(!V.isUndefined(t)){return getMergedValue(undefined,t)}}function defaultToConfig2(e,t){if(!V.isUndefined(t)){return getMergedValue(undefined,t)}else if(!V.isUndefined(e)){return getMergedValue(undefined,e)}}function mergeDirectKeys(s,r,o){if(o in t){return getMergedValue(s,r)}else if(o in e){return getMergedValue(undefined,s)}}const r={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(e,t)=>mergeDeepProperties(headersToObject(e),headersToObject(t),true)};V.forEach(Object.keys(Object.assign({},e,t)),(function computeConfigValue(o){const A=r[o]||mergeDeepProperties;const n=A(e[o],t[o],o);V.isUndefined(n)&&A!==mergeDirectKeys||(s[o]=n)}));return s}const Oe={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Oe[e]=function validator(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}}));const Pe={};Oe.transitional=function transitional(e,t,s){function formatMessage(e,t){return"[Axios v"+ue+"] Transitional option '"+e+"'"+t+(s?". "+s:"")}return(s,r,o)=>{if(e===false){throw new AxiosError(formatMessage(r," has been removed"+(t?" in "+t:"")),AxiosError.ERR_DEPRECATED)}if(t&&!Pe[r]){Pe[r]=true;console.warn(formatMessage(r," has been deprecated since v"+t+" and will be removed in the near future"))}return e?e(s,r,o):true}};function assertOptions(e,t,s){if(typeof e!=="object"){throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE)}const r=Object.keys(e);let o=r.length;while(o-- >0){const A=r[o];const n=t[A];if(n){const t=e[A];const s=t===undefined||n(t,A,e);if(s!==true){throw new AxiosError("option "+A+" must be "+s,AxiosError.ERR_BAD_OPTION_VALUE)}continue}if(s!==true){throw new AxiosError("Unknown option "+A,AxiosError.ERR_BAD_OPTION)}}}const He={assertOptions:assertOptions,validators:Oe};const Ye=He.validators;class Axios{constructor(e){this.defaults=e;this.interceptors={request:new X,response:new X}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const s=t.stack?t.stack.replace(/^.+\n/,""):"";if(!e.stack){e.stack=s}else if(s&&!String(e.stack).endsWith(s.replace(/^.+\n.+\n/,""))){e.stack+="\n"+s}}throw e}}_request(e,t){if(typeof e==="string"){t=t||{};t.url=e}else{t=e||{}}t=mergeConfig(this.defaults,t);const{transitional:s,paramsSerializer:r,headers:o}=t;if(s!==undefined){He.assertOptions(s,{silentJSONParsing:Ye.transitional(Ye.boolean),forcedJSONParsing:Ye.transitional(Ye.boolean),clarifyTimeoutError:Ye.transitional(Ye.boolean)},false)}if(r!=null){if(V.isFunction(r)){t.paramsSerializer={serialize:r}}else{He.assertOptions(r,{encode:Ye.function,serialize:Ye.function},true)}}t.method=(t.method||this.defaults.method||"get").toLowerCase();let A=o&&V.merge(o.common,o[t.method]);o&&V.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]}));t.headers=le.concat(A,o);const n=[];let i=true;this.interceptors.request.forEach((function unshiftRequestInterceptors(e){if(typeof e.runWhen==="function"&&e.runWhen(t)===false){return}i=i&&e.synchronous;n.unshift(e.fulfilled,e.rejected)}));const a=[];this.interceptors.response.forEach((function pushResponseInterceptors(e){a.push(e.fulfilled,e.rejected)}));let c;let l=0;let u;if(!i){const e=[dispatchRequest.bind(this),undefined];e.unshift.apply(e,n);e.push.apply(e,a);u=e.length;c=Promise.resolve(t);while(l{if(!s._listeners)return;let t=s._listeners.length;while(t-- >0){s._listeners[t](e)}s._listeners=null}));this.promise.then=e=>{let t;const r=new Promise((e=>{s.subscribe(e);t=e})).then(e);r.cancel=function reject(){s.unsubscribe(t)};return r};e((function cancel(e,r,o){if(s.reason){return}s.reason=new CanceledError(e,r,o);t(s.reason)}))}throwIfRequested(){if(this.reason){throw this.reason}}subscribe(e){if(this.reason){e(this.reason);return}if(this._listeners){this._listeners.push(e)}else{this._listeners=[e]}}unsubscribe(e){if(!this._listeners){return}const t=this._listeners.indexOf(e);if(t!==-1){this._listeners.splice(t,1)}}static source(){let e;const t=new CancelToken((function executor(t){e=t}));return{token:t,cancel:e}}}const qe=CancelToken;function spread(e){return function wrap(t){return e.apply(null,t)}}function isAxiosError(e){return V.isObject(e)&&e.isAxiosError===true}const Ve={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation: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,Unused:306,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,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity: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};Object.entries(Ve).forEach((([e,t])=>{Ve[t]=e}));const We=Ve;function createInstance(e){const t=new Je(e);const s=bind(Je.prototype.request,t);V.extend(s,Je.prototype,t,{allOwnKeys:true});V.extend(s,t,null,{allOwnKeys:true});s.create=function create(t){return createInstance(mergeConfig(e,t))};return s}const je=createInstance(ie);je.Axios=Je;je.CanceledError=CanceledError;je.CancelToken=qe;je.isCancel=isCancel;je.VERSION=ue;je.toFormData=toFormData;je.AxiosError=AxiosError;je.Cancel=je.CanceledError;je.all=function all(e){return Promise.all(e)};je.spread=spread;je.isAxiosError=isAxiosError;je.mergeConfig=mergeConfig;je.AxiosHeaders=le;je.formToJSON=e=>formDataToJSON(V.isHTMLForm(e)?new FormData(e):e);je.getAdapter=Ge.getAdapter;je.HttpStatusCode=We;je.default=je;e.exports=je},7117:e=>{e.exports=JSON.parse('{"name":"@slack/web-api","version":"7.0.1","description":"Official library for using the Slack Platform\'s Web API","author":"Slack Technologies, LLC","license":"MIT","keywords":["slack","web-api","bot","client","http","api","proxy","rate-limiting","pagination"],"main":"dist/index.js","types":"./dist/index.d.ts","files":["dist/**/*"],"engines":{"node":">= 18","npm":">= 8.6.0"},"repository":"slackapi/node-slack-sdk","homepage":"https://slack.dev/node-slack-sdk/web-api","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/slackapi/node-slack-sdk/issues"},"scripts":{"prepare":"npm run build","build":"npm run build:clean && tsc","build:clean":"shx rm -rf ./dist ./coverage ./.nyc_output","lint":"eslint --ext .ts src","mocha":"mocha --config .mocharc.json src/*.spec.js","test":"npm run lint && npm run test:unit && npm run test:types && npm run test:integration","test:integration":"npm run build && node test/integration/commonjs-project/index.js && node test/integration/esm-project/index.mjs","test:unit":"npm run build && nyc --reporter=text-summary npm run mocha","test:types":"tsd","ref-docs:model":"api-extractor run","watch":"npx nodemon --watch \'src\' --ext \'ts\' --exec npm run build"},"dependencies":{"@slack/logger":"^4.0.0","@slack/types":"^2.9.0","@types/node":">=18.0.0","axios":"^1.6.5","eventemitter3":"^5.0.1","form-data":"^4.0.0","is-electron":"2.2.2","is-stream":"^2","p-queue":"^6","p-retry":"^4","retry":"^0.13.1"},"devDependencies":{"@microsoft/api-extractor":"^7","@tsconfig/recommended":"^1","@types/chai":"^4","@types/mocha":"^10","@types/sinon":"^17","@typescript-eslint/eslint-plugin":"^6","@typescript-eslint/parser":"^6","busboy":"^1","chai":"^4","eslint":"^8","eslint-config-airbnb-base":"^15","eslint-config-airbnb-typescript":"^17","eslint-plugin-import":"^2","eslint-plugin-import-newlines":"^1.3.4","eslint-plugin-jsdoc":"^48","eslint-plugin-node":"^11","mocha":"^10","nock":"^13","nyc":"^15","shx":"^0.3.2","sinon":"^17","source-map-support":"^0.5.21","ts-node":"^10","tsd":"^0.30.0","typescript":"5.3.3"},"tsd":{"directory":"test/types"}}')},6450:e=>{e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"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":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"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":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"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":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true,"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":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"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":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"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":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"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":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"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":true},"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":false,"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":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"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":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"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":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"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":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"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":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"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":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"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":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"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":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"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":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"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":false,"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":true,"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":true},"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":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"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":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"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":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"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":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"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":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"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":true,"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":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"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":true},"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":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"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":true,"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":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"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":true},"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":true},"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":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"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":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"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":false},"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":false},"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":false},"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":true},"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":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"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":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"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":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"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":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"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":false},"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":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"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":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"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":true},"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":true},"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":true,"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":false,"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":true,"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":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"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":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"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":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"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":false,"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":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"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":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"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":true},"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":false,"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":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"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":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true,"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":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"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":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"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":true},"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":true},"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":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"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":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"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":true,"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":true},"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":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"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":true},"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":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"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":true,"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":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"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":true,"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":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"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":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"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":true,"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":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"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":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"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":true},"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":true,"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":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"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":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"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":false,"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":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"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":false},"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":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"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":true,"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":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"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":false},"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":true,"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":false,"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":false,"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":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"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":true,"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":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"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":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"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":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"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":false,"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":false,"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":false},"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":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"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":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"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":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"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":false,"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":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"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":false},"image/png":{"source":"iana","compressible":false,"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":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"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":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"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":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"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":false},"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":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"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":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"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":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"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":true},"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":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"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":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"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":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"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":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"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":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"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":true,"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":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"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":true,"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":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"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":true,"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":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"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":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"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":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"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":false,"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":true},"x-shader/x-vertex":{"compressible":true}}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e].call(s.exports,s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=new URL(".",import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/)?1:0,-1)+"/";var __webpack_exports__={};(()=>{var e=__nccwpck_require__(7131);var t=__nccwpck_require__(4237);var s=__nccwpck_require__(1738);function generateBlocks(e){const t=[{type:"section",text:{type:"mrkdwn",text:"*A list of the top 15 PRs sorted by most :+1: reactions over the last 90 days.*\n_Note: This :github2: workflow will run every Monday at 1PM UTC (9AM EST)._"}},{type:"divider"}];let s="";e.forEach(((e,t)=>{s+=`${t+1}. [<${e.html_url}|#${e.number}>, :+1: ${e.reactions["+1"]}]: ${e.title}\n`}));t.push({type:"section",text:{type:"mrkdwn",text:s}});return t}async function run(){try{if(!process.env.GITHUB_TOKEN)throw new TypeError("GITHUB_TOKEN not set");if(!process.env.SLACK_TOKEN)throw new TypeError("SLACK_TOKEN not set");const r=(0,e.getOctokit)(process.env.GITHUB_TOKEN);const o=new s.WebClient(process.env.SLACK_TOKEN);const A=new Date;A.setDate(A.getDate()-90);const n=A.toISOString().split("T")[0];const{owner:i,repo:a}=e.context.repo;const{data:c}=await r.rest.search.issuesAndPullRequests({order:"desc",per_page:15,q:`repo:${i}/${a} is:pr is:open created:>=${n}`,sort:"reactions-+1"});if(c.items.length>0){await o.chat.postMessage({blocks:generateBlocks(c.items),channel:"#team-next-js",icon_emoji:":github:",username:"GitHub Notifier"});(0,t.info)(`Posted to Slack!`)}else{(0,t.info)(`No popular PRs`)}}catch(e){(0,t.setFailed)(e)}}run()})(); \ No newline at end of file +/*! ws. MIT License. Einar Otto Stangvik */A[o-4]=this.maskKey[0];A[o-3]=this.maskKey[1];A[o-2]=this.maskKey[2];A[o-1]=this.maskKey[3];A[1]=s;if(s===126){A.writeUInt16BE(t,2)}else if(s===127){A[2]=A[3]=0;A.writeUIntBE(t,4,6)}A[1]|=128;for(let e=0;e{const{Writable:r}=s(2781);const o=s(7643);const{parserStates:A,opcodes:n,states:i,emptyBuffer:a}=s(6487);const{kReadyState:c,kSentClose:l,kResponse:u,kReceivedClose:p}=s(7380);const{isValidStatusCode:g,failWebsocketConnection:d,websocketMessageReceived:h}=s(5714);const{WebsocketFrameSend:E}=s(6771);const C={};C.ping=o.channel("undici:websocket:ping");C.pong=o.channel("undici:websocket:pong");class ByteParser extends r{#n=[];#i=0;#a=A.INFO;#c={};#l=[];constructor(e){super();this.ws=e}_write(e,t,s){this.#n.push(e);this.#i+=e.length;this.run(s)}run(e){while(true){if(this.#a===A.INFO){if(this.#i<2){return e()}const t=this.consume(2);this.#c.fin=(t[0]&128)!==0;this.#c.opcode=t[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==n.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==n.BINARY&&this.#c.opcode!==n.TEXT){d(this.ws,"Invalid frame type was fragmented.");return}const s=t[1]&127;if(s<=125){this.#c.payloadLength=s;this.#a=A.READ_DATA}else if(s===126){this.#a=A.PAYLOADLENGTH_16}else if(s===127){this.#a=A.PAYLOADLENGTH_64}if(this.#c.fragmented&&s>125){d(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===n.PING||this.#c.opcode===n.PONG||this.#c.opcode===n.CLOSE)&&s>125){d(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===n.CLOSE){if(s===1){d(this.ws,"Received close frame with a 1-byte body.");return}const e=this.consume(s);this.#c.closeInfo=this.parseCloseBody(false,e);if(!this.ws[l]){const e=Buffer.allocUnsafe(2);e.writeUInt16BE(this.#c.closeInfo.code,0);const t=new E(e);this.ws[u].socket.write(t.createFrame(n.CLOSE),(e=>{if(!e){this.ws[l]=true}}))}this.ws[c]=i.CLOSING;this.ws[p]=true;this.end();return}else if(this.#c.opcode===n.PING){const t=this.consume(s);if(!this.ws[p]){const e=new E(t);this.ws[u].socket.write(e.createFrame(n.PONG));if(C.ping.hasSubscribers){C.ping.publish({payload:t})}}this.#a=A.INFO;if(this.#i>0){continue}else{e();return}}else if(this.#c.opcode===n.PONG){const t=this.consume(s);if(C.pong.hasSubscribers){C.pong.publish({payload:t})}if(this.#i>0){continue}else{e();return}}}else if(this.#a===A.PAYLOADLENGTH_16){if(this.#i<2){return e()}const t=this.consume(2);this.#c.payloadLength=t.readUInt16BE(0);this.#a=A.READ_DATA}else if(this.#a===A.PAYLOADLENGTH_64){if(this.#i<8){return e()}const t=this.consume(8);const s=t.readUInt32BE(0);if(s>2**31-1){d(this.ws,"Received payload length > 2^31 bytes.");return}const r=t.readUInt32BE(4);this.#c.payloadLength=(s<<8)+r;this.#a=A.READ_DATA}else if(this.#a===A.READ_DATA){if(this.#i=this.#c.payloadLength){const e=this.consume(this.#c.payloadLength);this.#l.push(e);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===n.CONTINUATION){const e=Buffer.concat(this.#l);h(this.ws,this.#c.originalOpcode,e);this.#c={};this.#l.length=0}this.#a=A.INFO}}if(this.#i>0){continue}else{e();break}}}consume(e){if(e>this.#i){return null}else if(e===0){return a}if(this.#n[0].length===e){this.#i-=this.#n[0].length;return this.#n.shift()}const t=Buffer.allocUnsafe(e);let s=0;while(s!==e){const r=this.#n[0];const{length:o}=r;if(o+s===e){t.set(this.#n.shift(),s);break}else if(o+s>e){t.set(r.subarray(0,e-s),s);this.#n[0]=r.subarray(e-s);break}else{t.set(this.#n.shift(),s);s+=r.length}}this.#i-=e;return t}parseCloseBody(e,t){let s;if(t.length>=2){s=t.readUInt16BE(0)}if(e){if(!g(s)){return null}return{code:s}}let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191){r=r.subarray(3)}if(s!==undefined&&!g(s)){return null}try{r=new TextDecoder("utf-8",{fatal:true}).decode(r)}catch{return null}return{code:s,reason:r}}get closingInfo(){return this.#c.closeInfo}}e.exports={ByteParser:ByteParser}},7380:e=>{e.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},5714:(e,t,s)=>{const{kReadyState:r,kController:o,kResponse:A,kBinaryType:n,kWebSocketURL:i}=s(7380);const{states:a,opcodes:c}=s(6487);const{MessageEvent:l,ErrorEvent:u}=s(1879);function isEstablished(e){return e[r]===a.OPEN}function isClosing(e){return e[r]===a.CLOSING}function isClosed(e){return e[r]===a.CLOSED}function fireEvent(e,t,s=Event,r){const o=new s(e,r);t.dispatchEvent(o)}function websocketMessageReceived(e,t,s){if(e[r]!==a.OPEN){return}let o;if(t===c.TEXT){try{o=new TextDecoder("utf-8",{fatal:true}).decode(s)}catch{failWebsocketConnection(e,"Received invalid UTF-8 in text frame.");return}}else if(t===c.BINARY){if(e[n]==="blob"){o=new Blob([s])}else{o=new Uint8Array(s).buffer}}fireEvent("message",e,l,{origin:e[i].origin,data:o})}function isValidSubprotocol(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e<33||e>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||e===32||e===9){return false}}return true}function isValidStatusCode(e){if(e>=1e3&&e<1015){return e!==1004&&e!==1005&&e!==1006}return e>=3e3&&e<=4999}function failWebsocketConnection(e,t){const{[o]:s,[A]:r}=e;s.abort();if(r?.socket&&!r.socket.destroyed){r.socket.destroy()}if(t){fireEvent("error",e,u,{error:new Error(t)})}}e.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},1986:(e,t,s)=>{const{webidl:r}=s(9111);const{DOMException:o}=s(7533);const{URLSerializer:A}=s(5958);const{getGlobalOrigin:n}=s(7011);const{staticPropertyDescriptors:i,states:a,opcodes:c,emptyBuffer:l}=s(6487);const{kWebSocketURL:u,kReadyState:p,kController:g,kBinaryType:d,kResponse:h,kSentClose:E,kByteParser:C}=s(7380);const{isEstablished:Q,isClosing:m,isValidSubprotocol:B,failWebsocketConnection:I,fireEvent:b}=s(5714);const{establishWebSocketConnection:y}=s(250);const{WebsocketFrameSend:w}=s(6771);const{ByteParser:v}=s(5379);const{kEnumerableProperty:R,isBlobLike:k}=s(7497);const{getGlobalDispatcher:D}=s(2899);const{types:x}=s(3837);let F=false;class WebSocket extends EventTarget{#u={open:null,error:null,close:null,message:null};#p=0;#g="";#d="";constructor(e,t=[]){super();r.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!F){F=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const s=r.converters["DOMString or sequence or WebSocketInit"](t);e=r.converters.USVString(e);t=s.protocols;const A=n();let i;try{i=new URL(e,A)}catch(e){throw new o(e,"SyntaxError")}if(i.protocol==="http:"){i.protocol="ws:"}else if(i.protocol==="https:"){i.protocol="wss:"}if(i.protocol!=="ws:"&&i.protocol!=="wss:"){throw new o(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError")}if(i.hash||i.href.endsWith("#")){throw new o("Got fragment","SyntaxError")}if(typeof t==="string"){t=[t]}if(t.length!==new Set(t.map((e=>e.toLowerCase()))).size){throw new o("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(t.length>0&&!t.every((e=>B(e)))){throw new o("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[u]=new URL(i.href);this[g]=y(i,t,this,(e=>this.#h(e)),s);this[p]=WebSocket.CONNECTING;this[d]="blob"}close(e=undefined,t=undefined){r.brandCheck(this,WebSocket);if(e!==undefined){e=r.converters["unsigned short"](e,{clamp:true})}if(t!==undefined){t=r.converters.USVString(t)}if(e!==undefined){if(e!==1e3&&(e<3e3||e>4999)){throw new o("invalid code","InvalidAccessError")}}let s=0;if(t!==undefined){s=Buffer.byteLength(t);if(s>123){throw new o(`Reason must be less than 123 bytes; received ${s}`,"SyntaxError")}}if(this[p]===WebSocket.CLOSING||this[p]===WebSocket.CLOSED){}else if(!Q(this)){I(this,"Connection was closed before it was established.");this[p]=WebSocket.CLOSING}else if(!m(this)){const r=new w;if(e!==undefined&&t===undefined){r.frameData=Buffer.allocUnsafe(2);r.frameData.writeUInt16BE(e,0)}else if(e!==undefined&&t!==undefined){r.frameData=Buffer.allocUnsafe(2+s);r.frameData.writeUInt16BE(e,0);r.frameData.write(t,2,"utf-8")}else{r.frameData=l}const o=this[h].socket;o.write(r.createFrame(c.CLOSE),(e=>{if(!e){this[E]=true}}));this[p]=a.CLOSING}else{this[p]=WebSocket.CLOSING}}send(e){r.brandCheck(this,WebSocket);r.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});e=r.converters.WebSocketSendData(e);if(this[p]===WebSocket.CONNECTING){throw new o("Sent before connected.","InvalidStateError")}if(!Q(this)||m(this)){return}const t=this[h].socket;if(typeof e==="string"){const s=Buffer.from(e);const r=new w(s);const o=r.createFrame(c.TEXT);this.#p+=s.byteLength;t.write(o,(()=>{this.#p-=s.byteLength}))}else if(x.isArrayBuffer(e)){const s=Buffer.from(e);const r=new w(s);const o=r.createFrame(c.BINARY);this.#p+=s.byteLength;t.write(o,(()=>{this.#p-=s.byteLength}))}else if(ArrayBuffer.isView(e)){const s=Buffer.from(e,e.byteOffset,e.byteLength);const r=new w(s);const o=r.createFrame(c.BINARY);this.#p+=s.byteLength;t.write(o,(()=>{this.#p-=s.byteLength}))}else if(k(e)){const s=new w;e.arrayBuffer().then((e=>{const r=Buffer.from(e);s.frameData=r;const o=s.createFrame(c.BINARY);this.#p+=r.byteLength;t.write(o,(()=>{this.#p-=r.byteLength}))}))}}get readyState(){r.brandCheck(this,WebSocket);return this[p]}get bufferedAmount(){r.brandCheck(this,WebSocket);return this.#p}get url(){r.brandCheck(this,WebSocket);return A(this[u])}get extensions(){r.brandCheck(this,WebSocket);return this.#d}get protocol(){r.brandCheck(this,WebSocket);return this.#g}get onopen(){r.brandCheck(this,WebSocket);return this.#u.open}set onopen(e){r.brandCheck(this,WebSocket);if(this.#u.open){this.removeEventListener("open",this.#u.open)}if(typeof e==="function"){this.#u.open=e;this.addEventListener("open",e)}else{this.#u.open=null}}get onerror(){r.brandCheck(this,WebSocket);return this.#u.error}set onerror(e){r.brandCheck(this,WebSocket);if(this.#u.error){this.removeEventListener("error",this.#u.error)}if(typeof e==="function"){this.#u.error=e;this.addEventListener("error",e)}else{this.#u.error=null}}get onclose(){r.brandCheck(this,WebSocket);return this.#u.close}set onclose(e){r.brandCheck(this,WebSocket);if(this.#u.close){this.removeEventListener("close",this.#u.close)}if(typeof e==="function"){this.#u.close=e;this.addEventListener("close",e)}else{this.#u.close=null}}get onmessage(){r.brandCheck(this,WebSocket);return this.#u.message}set onmessage(e){r.brandCheck(this,WebSocket);if(this.#u.message){this.removeEventListener("message",this.#u.message)}if(typeof e==="function"){this.#u.message=e;this.addEventListener("message",e)}else{this.#u.message=null}}get binaryType(){r.brandCheck(this,WebSocket);return this[d]}set binaryType(e){r.brandCheck(this,WebSocket);if(e!=="blob"&&e!=="arraybuffer"){this[d]="blob"}else{this[d]=e}}#h(e){this[h]=e;const t=new v(this);t.on("drain",(function onParserDrain(){this.ws[h].socket.resume()}));e.socket.ws=this;this[C]=t;this[p]=a.OPEN;const s=e.headersList.get("sec-websocket-extensions");if(s!==null){this.#d=s}const r=e.headersList.get("sec-websocket-protocol");if(r!==null){this.#g=r}b("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=a.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=a.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=a.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=a.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i,url:R,readyState:R,bufferedAmount:R,onopen:R,onerror:R,onclose:R,close:R,onmessage:R,binaryType:R,send:R,extensions:R,protocol:R,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i});r.converters["sequence"]=r.sequenceConverter(r.converters.DOMString);r.converters["DOMString or sequence"]=function(e){if(r.util.Type(e)==="Object"&&Symbol.iterator in e){return r.converters["sequence"](e)}return r.converters.DOMString(e)};r.converters.WebSocketInit=r.dictionaryConverter([{key:"protocols",converter:r.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return D()}},{key:"headers",converter:r.nullableConverter(r.converters.HeadersInit)}]);r.converters["DOMString or sequence or WebSocketInit"]=function(e){if(r.util.Type(e)==="Object"&&!(Symbol.iterator in e)){return r.converters.WebSocketInit(e)}return{protocols:r.converters["DOMString or sequence"](e)}};r.converters.WebSocketSendData=function(e){if(r.util.Type(e)==="Object"){if(k(e)){return r.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||x.isAnyArrayBuffer(e)){return r.converters.BufferSource(e)}}return r.converters.USVString(e)};e.exports={WebSocket:WebSocket}},5938:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&"version"in process){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},3872:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return r.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return A.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return u.default}});var r=_interopRequireDefault(s(5596));var o=_interopRequireDefault(s(2427));var A=_interopRequireDefault(s(6007));var n=_interopRequireDefault(s(398));var i=_interopRequireDefault(s(1623));var a=_interopRequireDefault(s(8818));var c=_interopRequireDefault(s(5629));var l=_interopRequireDefault(s(7016));var u=_interopRequireDefault(s(1158));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},3828:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return r.default.createHash("md5").update(e).digest()}var o=md5;t["default"]=o},1623:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s="00000000-0000-0000-0000-000000000000";t["default"]=s},1158:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(5629));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,r.default)(e)){throw TypeError("Invalid UUID")}let t;const s=new Uint8Array(16);s[0]=(t=parseInt(e.slice(0,8),16))>>>24;s[1]=t>>>16&255;s[2]=t>>>8&255;s[3]=t&255;s[4]=(t=parseInt(e.slice(9,13),16))>>>8;s[5]=t&255;s[6]=(t=parseInt(e.slice(14,18),16))>>>8;s[7]=t&255;s[8]=(t=parseInt(e.slice(19,23),16))>>>8;s[9]=t&255;s[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;s[11]=t/4294967296&255;s[12]=t>>>24&255;s[13]=t>>>16&255;s[14]=t>>>8&255;s[15]=t&255;return s}var o=parse;t["default"]=o},3607:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t["default"]=s},1260:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var r=_interopRequireDefault(s(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const o=new Uint8Array(256);let A=o.length;function rng(){if(A>o.length-16){r.default.randomFillSync(o);A=0}return o.slice(A,A+=16)}},7615:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return r.default.createHash("sha1").update(e).digest()}var o=sha1;t["default"]=o},7016:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(5629));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const o=[];for(let e=0;e<256;++e){o.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const s=(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase();if(!(0,r.default)(s)){throw TypeError("Stringified UUID is invalid")}return s}var A=stringify;t["default"]=A},5596:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(1260));var o=_interopRequireDefault(s(7016));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let A;let n;let i=0;let a=0;function v1(e,t,s){let c=t&&s||0;const l=t||new Array(16);e=e||{};let u=e.node||A;let p=e.clockseq!==undefined?e.clockseq:n;if(u==null||p==null){const t=e.random||(e.rng||r.default)();if(u==null){u=A=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(p==null){p=n=(t[6]<<8|t[7])&16383}}let g=e.msecs!==undefined?e.msecs:Date.now();let d=e.nsecs!==undefined?e.nsecs:a+1;const h=g-i+(d-a)/1e4;if(h<0&&e.clockseq===undefined){p=p+1&16383}if((h<0||g>i)&&e.nsecs===undefined){d=0}if(d>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}i=g;a=d;n=p;g+=122192928e5;const E=((g&268435455)*1e4+d)%4294967296;l[c++]=E>>>24&255;l[c++]=E>>>16&255;l[c++]=E>>>8&255;l[c++]=E&255;const C=g/4294967296*1e4&268435455;l[c++]=C>>>8&255;l[c++]=C&255;l[c++]=C>>>24&15|16;l[c++]=C>>>16&255;l[c++]=p>>>8|128;l[c++]=p&255;for(let e=0;e<6;++e){l[c+e]=u[e]}return t||(0,o.default)(l)}var c=v1;t["default"]=c},2427:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6901));var o=_interopRequireDefault(s(3828));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const A=(0,r.default)("v3",48,o.default);var n=A;t["default"]=n},6901:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var r=_interopRequireDefault(s(7016));var o=_interopRequireDefault(s(1158));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let s=0;s{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(1260));var o=_interopRequireDefault(s(7016));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,s){e=e||{};const A=e.random||(e.rng||r.default)();A[6]=A[6]&15|64;A[8]=A[8]&63|128;if(t){s=s||0;for(let e=0;e<16;++e){t[s+e]=A[e]}return t}return(0,o.default)(A)}var A=v4;t["default"]=A},398:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(6901));var o=_interopRequireDefault(s(7615));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const A=(0,r.default)("v5",80,o.default);var n=A;t["default"]=n},5629:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(3607));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&r.default.test(e)}var o=validate;t["default"]=o},8818:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=_interopRequireDefault(s(5629));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,r.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var o=version;t["default"]=o},7212:e=>{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var s=0;s{module.exports=eval("require")("debug")},9491:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert")},852:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("async_hooks")},4300:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("buffer")},6206:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("console")},6113:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto")},7643:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("diagnostics_channel")},2361:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("events")},7147:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs")},3685:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("http")},5158:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2")},5687:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("https")},1808:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("net")},5673:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:events")},4492:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream")},7261:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util")},2037:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("os")},1017:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("path")},4074:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("perf_hooks")},3477:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("querystring")},2781:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream")},5356:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream/web")},1576:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("string_decoder")},4404:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls")},7310:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("url")},3837:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("util")},9830:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("util/types")},1267:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("worker_threads")},9796:e=>{e.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib")},1089:(e,t,s)=>{const r=s(4492).Writable;const o=s(7261).inherits;const A=s(9306);const n=s(5575);const i=s(2010);const a=45;const c=Buffer.from("-");const l=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(e){if(!(this instanceof Dicer)){return new Dicer(e)}r.call(this,e);if(!e||!e.headerFirst&&typeof e.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof e.boundary==="string"){this.setBoundary(e.boundary)}else{this._bparser=undefined}this._headerFirst=e.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:e.partHwm};this._pause=false;const t=this;this._hparser=new i(e);this._hparser.on("header",(function(e){t._inHeader=false;t._part.emit("header",e)}))}o(Dicer,r);Dicer.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){const e=this;process.nextTick((function(){e.emit("error",new Error("Unexpected end of multipart data"));if(e._part&&!e._ignoreData){const t=e._isPreamble?"Preamble":"Part";e._part.emit("error",new Error(t+" terminated early due to unexpected end of multipart data"));e._part.push(null);process.nextTick((function(){e._realFinish=true;e.emit("finish");e._realFinish=false}));return}e._realFinish=true;e.emit("finish");e._realFinish=false}))}}else{r.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(e,t,s){if(!this._hparser&&!this._bparser){return s()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new n(this._partOpts);if(this._events.preamble){this.emit("preamble",this._part)}else{this._ignore()}}const t=this._hparser.push(e);if(!this._inHeader&&t!==undefined&&t{const r=s(5673).EventEmitter;const o=s(7261).inherits;const A=s(7845);const n=s(9306);const i=Buffer.from("\r\n\r\n");const a=/\r\n/g;const c=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(e){r.call(this);e=e||{};const t=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=A(e,"maxHeaderPairs",2e3);this.maxHeaderSize=A(e,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new n(i);this.ss.on("info",(function(e,s,r,o){if(s&&!t.maxed){if(t.nread+o-r>=t.maxHeaderSize){o=t.maxHeaderSize-t.nread+r;t.nread=t.maxHeaderSize;t.maxed=true}else{t.nread+=o-r}t.buffer+=s.toString("binary",r,o)}if(e){t._finish()}}))}o(HeaderParser,r);HeaderParser.prototype.push=function(e){const t=this.ss.push(e);if(this.finished){return t}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const e=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",e)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const e=this.buffer.split(a);const t=e.length;let s,r;for(var o=0;o{const r=s(7261).inherits;const o=s(4492).Readable;function PartStream(e){o.call(this,e)}r(PartStream,o);PartStream.prototype._read=function(e){};e.exports=PartStream},9306:(e,t,s)=>{const r=s(5673).EventEmitter;const o=s(7261).inherits;function SBMH(e){if(typeof e==="string"){e=Buffer.from(e)}if(!Buffer.isBuffer(e)){throw new TypeError("The needle has to be a String or a Buffer.")}const t=e.length;if(t===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(t>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(t);this._lookbehind_size=0;this._needle=e;this._bufpos=0;this._lookbehind=Buffer.alloc(t);for(var s=0;s=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const s=this._lookbehind_size+A;if(s>0){this.emit("info",false,this._lookbehind,0,s)}this._lookbehind.copy(this._lookbehind,0,s,this._lookbehind_size-s);this._lookbehind_size-=s;e.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=t;this._bufpos=t;return t}}A+=(A>=0)*this._bufpos;if(e.indexOf(s,A)!==-1){A=e.indexOf(s,A);++this.matches;if(A>0){this.emit("info",true,e,this._bufpos,A)}else{this.emit("info",true)}return this._bufpos=A+r}else{A=t-r}while(A0){this.emit("info",false,e,this._bufpos,A{const r=s(4492).Writable;const{inherits:o}=s(7261);const A=s(1089);const n=s(6541);const i=s(9933);const a=s(8696);function Busboy(e){if(!(this instanceof Busboy)){return new Busboy(e)}if(typeof e!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof e.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof e.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:t,...s}=e;this.opts={autoDestroy:false,...s};r.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(t);this._finished=false}o(Busboy,r);Busboy.prototype.emit=function(e){if(e==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}r.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(e){const t=a(e["content-type"]);const s={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(n.detect.test(t[0])){return new n(this,s)}if(i.detect.test(t[0])){return new i(this,s)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(e,t,s){this._parser.write(e,s)};e.exports=Busboy;e.exports["default"]=Busboy;e.exports.Busboy=Busboy;e.exports.Dicer=A},6541:(e,t,s)=>{const{Readable:r}=s(4492);const{inherits:o}=s(7261);const A=s(1089);const n=s(8696);const i=s(9999);const a=s(1602);const c=s(7845);const l=/^boundary$/i;const u=/^form-data$/i;const p=/^charset$/i;const g=/^filename$/i;const d=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(e,t){let s;let r;const o=this;let h;const E=t.limits;const C=t.isPartAFile||((e,t,s)=>t==="application/octet-stream"||s!==undefined);const Q=t.parsedConType||[];const m=t.defCharset||"utf8";const B=t.preservePath;const I={highWaterMark:t.fileHwm};for(s=0,r=Q.length;sR){o.parser.removeListener("part",onPart);o.parser.on("part",skipPart);e.hitPartsLimit=true;e.emit("partsLimit");return skipPart(t)}if(U){const e=U;e.emit("end");e.removeAllListeners("end")}t.on("header",(function(A){let c;let l;let h;let E;let Q;let R;let k=0;if(A["content-type"]){h=n(A["content-type"][0]);if(h[0]){c=h[0].toLowerCase();for(s=0,r=h.length;sy){const r=y-k+e.length;if(r>0){s.push(e.slice(0,r))}s.truncated=true;s.bytesRead=y;t.removeAllListeners("data");s.emit("limit");return}else if(!s.push(e)){o._pause=true}s.bytesRead=k};N=function(){T=undefined;s.push(null)}}else{if(F===v){if(!e.hitFieldsLimit){e.hitFieldsLimit=true;e.emit("fieldsLimit")}return skipPart(t)}++F;++S;let s="";let r=false;U=t;D=function(e){if((k+=e.length)>b){const o=b-(k-e.length);s+=e.toString("binary",0,o);r=true;t.removeAllListeners("data")}else{s+=e.toString("binary")}};N=function(){U=undefined;if(s.length){s=i(s,"binary",E)}e.emit("field",l,s,false,r,Q,c);--S;checkFinished()}}t._readableState.sync=false;t.on("data",D);t.on("end",N)})).on("error",(function(e){if(T){T.emit("error",e)}}))})).on("error",(function(t){e.emit("error",t)})).on("finish",(function(){N=true;checkFinished()}))}Multipart.prototype.write=function(e,t){const s=this.parser.write(e);if(s&&!this._pause){t()}else{this._needDrain=!s;this._cb=t}};Multipart.prototype.end=function(){const e=this;if(e.parser.writable){e.parser.end()}else if(!e._boy._done){process.nextTick((function(){e._boy._done=true;e._boy.emit("finish")}))}};function skipPart(e){e.resume()}function FileStream(e){r.call(this,e);this.bytesRead=0;this.truncated=false}o(FileStream,r);FileStream.prototype._read=function(e){};e.exports=Multipart},9933:(e,t,s)=>{const r=s(2017);const o=s(9999);const A=s(7845);const n=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(e,t){const s=t.limits;const o=t.parsedConType;this.boy=e;this.fieldSizeLimit=A(s,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=A(s,"fieldNameSize",100);this.fieldsLimit=A(s,"fields",Infinity);let i;for(var a=0,c=o.length;an){this._key+=this.decoder.write(e.toString("binary",n,s))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();n=s+1}else if(r!==undefined){++this._fields;let s;const A=this._keyTrunc;if(r>n){s=this._key+=this.decoder.write(e.toString("binary",n,r))}else{s=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(s.length){this.boy.emit("field",o(s,"binary",this.charset),"",A,false)}n=r+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(A>n){this._key+=this.decoder.write(e.toString("binary",n,A))}n=A;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(nn){this._val+=this.decoder.write(e.toString("binary",n,r))}this.boy.emit("field",o(this._key,"binary",this.charset),o(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();n=r+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(A>n){this._val+=this.decoder.write(e.toString("binary",n,A))}n=A;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(n0){this.boy.emit("field",o(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",o(this._key,"binary",this.charset),o(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};e.exports=UrlEncoded},2017:e=>{const t=/\+/g;const s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(e){e=e.replace(t," ");let r="";let o=0;let A=0;const n=e.length;for(;oA){r+=e.substring(A,o);A=o}this.buffer="";++A}}if(A{e.exports=function basename(e){if(typeof e!=="string"){return""}for(var t=e.length-1;t>=0;--t){switch(e.charCodeAt(t)){case 47:case 92:e=e.slice(t+1);return e===".."||e==="."?"":e}}return e===".."||e==="."?"":e}},9999:function(e){const t=new TextDecoder("utf-8");const s=new Map([["utf-8",t],["utf8",t]]);function getDecoder(e){let t;while(true){switch(e){case"utf-8":case"utf8":return r.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return r.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return r.utf16le;case"base64":return r.base64;default:if(t===undefined){t=true;e=e.toLowerCase();continue}return r.other.bind(e)}}}const r={utf8:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.utf8Slice(0,e.length)},latin1:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){return e}return e.latin1Slice(0,e.length)},utf16le:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.ucs2Slice(0,e.length)},base64:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.base64Slice(0,e.length)},other:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}if(s.has(this.toString())){try{return s.get(this).decode(e)}catch(e){}}return typeof e==="string"?e:e.toString()}};function decodeText(e,t,s){if(e){return getDecoder(s)(e,t)}return e}e.exports=decodeText},7845:e=>{e.exports=function getLimit(e,t,s){if(!e||e[t]===undefined||e[t]===null){return s}if(typeof e[t]!=="number"||isNaN(e[t])){throw new TypeError("Limit "+t+" is not a valid number")}return e[t]}},8696:(e,t,s)=>{const r=s(9999);const o=/%[a-fA-F0-9][a-fA-F0-9]/g;const A={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(e){return A[e]}const n=0;const i=1;const a=2;const c=3;function parseParams(e){const t=[];let s=n;let A="";let l=false;let u=false;let p=0;let g="";const d=e.length;for(var h=0;h{const r=s(4551);const o=s(7310);const A=s(490);const n=s(3685);const i=s(5687);const a=s(3837);const c=s(9712);const l=s(9796);const u=s(2781);const p=s(2361);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}const g=_interopDefaultLegacy(r);const d=_interopDefaultLegacy(o);const h=_interopDefaultLegacy(n);const E=_interopDefaultLegacy(i);const C=_interopDefaultLegacy(a);const Q=_interopDefaultLegacy(c);const m=_interopDefaultLegacy(l);const B=_interopDefaultLegacy(u);const I=_interopDefaultLegacy(p);function bind(e,t){return function wrap(){return e.apply(t,arguments)}}const{toString:b}=Object.prototype;const{getPrototypeOf:y}=Object;const w=(e=>t=>{const s=b.call(t);return e[s]||(e[s]=s.slice(8,-1).toLowerCase())})(Object.create(null));const kindOfTest=e=>{e=e.toLowerCase();return t=>w(t)===e};const typeOfTest=e=>t=>typeof t===e;const{isArray:v}=Array;const R=typeOfTest("undefined");function isBuffer(e){return e!==null&&!R(e)&&e.constructor!==null&&!R(e.constructor)&&x(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const k=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){t=ArrayBuffer.isView(e)}else{t=e&&e.buffer&&k(e.buffer)}return t}const D=typeOfTest("string");const x=typeOfTest("function");const F=typeOfTest("number");const isObject=e=>e!==null&&typeof e==="object";const isBoolean=e=>e===true||e===false;const isPlainObject=e=>{if(w(e)!=="object"){return false}const t=y(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)};const S=kindOfTest("Date");const T=kindOfTest("File");const U=kindOfTest("Blob");const N=kindOfTest("FileList");const isStream=e=>isObject(e)&&x(e.pipe);const isFormData=e=>{let t;return e&&(typeof FormData==="function"&&e instanceof FormData||x(e.append)&&((t=w(e))==="formdata"||t==="object"&&x(e.toString)&&e.toString()==="[object FormData]"))};const L=kindOfTest("URLSearchParams");const trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:s=false}={}){if(e===null||typeof e==="undefined"){return}let r;let o;if(typeof e!=="object"){e=[e]}if(v(e)){for(r=0,o=e.length;r0){o=s[r];if(t===o.toLowerCase()){return o}}return null}const _=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})();const isContextDefined=e=>!R(e)&&e!==_;function merge(){const{caseless:e}=isContextDefined(this)&&this||{};const t={};const assignValue=(s,r)=>{const o=e&&findKey(t,r)||r;if(isPlainObject(t[o])&&isPlainObject(s)){t[o]=merge(t[o],s)}else if(isPlainObject(s)){t[o]=merge({},s)}else if(v(s)){t[o]=s.slice()}else{t[o]=s}};for(let e=0,t=arguments.length;e{forEach(t,((t,r)=>{if(s&&x(t)){e[r]=bind(t,s)}else{e[r]=t}}),{allOwnKeys:r});return e};const stripBOM=e=>{if(e.charCodeAt(0)===65279){e=e.slice(1)}return e};const inherits=(e,t,s,r)=>{e.prototype=Object.create(t.prototype,r);e.prototype.constructor=e;Object.defineProperty(e,"super",{value:t.prototype});s&&Object.assign(e.prototype,s)};const toFlatObject=(e,t,s,r)=>{let o;let A;let n;const i={};t=t||{};if(e==null)return t;do{o=Object.getOwnPropertyNames(e);A=o.length;while(A-- >0){n=o[A];if((!r||r(n,e,t))&&!i[n]){t[n]=e[n];i[n]=true}}e=s!==false&&y(e)}while(e&&(!s||s(e,t))&&e!==Object.prototype);return t};const endsWith=(e,t,s)=>{e=String(e);if(s===undefined||s>e.length){s=e.length}s-=t.length;const r=e.indexOf(t,s);return r!==-1&&r===s};const toArray=e=>{if(!e)return null;if(v(e))return e;let t=e.length;if(!F(t))return null;const s=new Array(t);while(t-- >0){s[t]=e[t]}return s};const M=(e=>t=>e&&t instanceof e)(typeof Uint8Array!=="undefined"&&y(Uint8Array));const forEachEntry=(e,t)=>{const s=e&&e[Symbol.iterator];const r=s.call(e);let o;while((o=r.next())&&!o.done){const s=o.value;t.call(e,s[0],s[1])}};const matchAll=(e,t)=>{let s;const r=[];while((s=e.exec(t))!==null){r.push(s)}return r};const G=kindOfTest("HTMLFormElement");const toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function replacer(e,t,s){return t.toUpperCase()+s}));const O=(({hasOwnProperty:e})=>(t,s)=>e.call(t,s))(Object.prototype);const P=kindOfTest("RegExp");const reduceDescriptors=(e,t)=>{const s=Object.getOwnPropertyDescriptors(e);const r={};forEach(s,((s,o)=>{let A;if((A=t(s,o,e))!==false){r[o]=A||s}}));Object.defineProperties(e,r)};const freezeMethods=e=>{reduceDescriptors(e,((t,s)=>{if(x(e)&&["arguments","caller","callee"].indexOf(s)!==-1){return false}const r=e[s];if(!x(r))return;t.enumerable=false;if("writable"in t){t.writable=false;return}if(!t.set){t.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}}}))};const toObjectSet=(e,t)=>{const s={};const define=e=>{e.forEach((e=>{s[e]=true}))};v(e)?define(e):define(String(e).split(t));return s};const noop=()=>{};const toFiniteNumber=(e,t)=>{e=+e;return Number.isFinite(e)?e:t};const H="abcdefghijklmnopqrstuvwxyz";const Y="0123456789";const J={DIGIT:Y,ALPHA:H,ALPHA_DIGIT:H+H.toUpperCase()+Y};const generateString=(e=16,t=J.ALPHA_DIGIT)=>{let s="";const{length:r}=t;while(e--){s+=t[Math.random()*r|0]}return s};function isSpecCompliantForm(e){return!!(e&&x(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10);const visit=(e,s)=>{if(isObject(e)){if(t.indexOf(e)>=0){return}if(!("toJSON"in e)){t[s]=e;const r=v(e)?[]:{};forEach(e,((e,t)=>{const o=visit(e,s+1);!R(o)&&(r[t]=o)}));t[s]=undefined;return r}}return e};return visit(e,0)};const q=kindOfTest("AsyncFunction");const isThenable=e=>e&&(isObject(e)||x(e))&&x(e.then)&&x(e.catch);const V={isArray:v,isArrayBuffer:k,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:D,isNumber:F,isBoolean:isBoolean,isObject:isObject,isPlainObject:isPlainObject,isUndefined:R,isDate:S,isFile:T,isBlob:U,isRegExp:P,isFunction:x,isStream:isStream,isURLSearchParams:L,isTypedArray:M,isFileList:N,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:w,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,forEachEntry:forEachEntry,matchAll:matchAll,isHTMLForm:G,hasOwnProperty:O,hasOwnProp:O,reduceDescriptors:reduceDescriptors,freezeMethods:freezeMethods,toObjectSet:toObjectSet,toCamelCase:toCamelCase,noop:noop,toFiniteNumber:toFiniteNumber,findKey:findKey,global:_,isContextDefined:isContextDefined,ALPHABET:J,generateString:generateString,isSpecCompliantForm:isSpecCompliantForm,toJSONObject:toJSONObject,isAsyncFn:q,isThenable:isThenable};function AxiosError(e,t,s,r,o){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack}this.message=e;this.name="AxiosError";t&&(this.code=t);s&&(this.config=s);r&&(this.request=r);o&&(this.response=o)}V.inherits(AxiosError,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:V.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const W=AxiosError.prototype;const j={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{j[e]={value:e}}));Object.defineProperties(AxiosError,j);Object.defineProperty(W,"isAxiosError",{value:true});AxiosError.from=(e,t,s,r,o,A)=>{const n=Object.create(W);V.toFlatObject(e,n,(function filter(e){return e!==Error.prototype}),(e=>e!=="isAxiosError"));AxiosError.call(n,e.message,t,s,r,o);n.cause=e;n.name=e.name;A&&Object.assign(n,A);return n};function isVisitable(e){return V.isPlainObject(e)||V.isArray(e)}function removeBrackets(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,s){if(!e)return t;return e.concat(t).map((function each(e,t){e=removeBrackets(e);return!s&&t?"["+e+"]":e})).join(s?".":"")}function isFlatArray(e){return V.isArray(e)&&!e.some(isVisitable)}const z=V.toFlatObject(V,{},null,(function filter(e){return/^is[A-Z]/.test(e)}));function toFormData(e,t,s){if(!V.isObject(e)){throw new TypeError("target must be an object")}t=t||new(g["default"]||FormData);s=V.toFlatObject(s,{metaTokens:true,dots:false,indexes:false},false,(function defined(e,t){return!V.isUndefined(t[e])}));const r=s.metaTokens;const o=s.visitor||defaultVisitor;const A=s.dots;const n=s.indexes;const i=s.Blob||typeof Blob!=="undefined"&&Blob;const a=i&&V.isSpecCompliantForm(t);if(!V.isFunction(o)){throw new TypeError("visitor must be a function")}function convertValue(e){if(e===null)return"";if(V.isDate(e)){return e.toISOString()}if(!a&&V.isBlob(e)){throw new AxiosError("Blob is not supported. Use a Buffer instead.")}if(V.isArrayBuffer(e)||V.isTypedArray(e)){return a&&typeof Blob==="function"?new Blob([e]):Buffer.from(e)}return e}function defaultVisitor(e,s,o){let i=e;if(e&&!o&&typeof e==="object"){if(V.endsWith(s,"{}")){s=r?s:s.slice(0,-2);e=JSON.stringify(e)}else if(V.isArray(e)&&isFlatArray(e)||(V.isFileList(e)||V.endsWith(s,"[]"))&&(i=V.toArray(e))){s=removeBrackets(s);i.forEach((function each(e,r){!(V.isUndefined(e)||e===null)&&t.append(n===true?renderKey([s],r,A):n===null?s:s+"[]",convertValue(e))}));return false}}if(isVisitable(e)){return true}t.append(renderKey(o,s,A),convertValue(e));return false}const c=[];const l=Object.assign(z,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});function build(e,s){if(V.isUndefined(e))return;if(c.indexOf(e)!==-1){throw Error("Circular reference detected in "+s.join("."))}c.push(e);V.forEach(e,(function each(e,r){const A=!(V.isUndefined(e)||e===null)&&o.call(t,e,V.isString(r)?r.trim():r,s,l);if(A===true){build(e,s?s.concat(r):[r])}}));c.pop()}if(!V.isObject(e)){throw new TypeError("data must be an object")}build(e);return t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function replacer(e){return t[e]}))}function AxiosURLSearchParams(e,t){this._pairs=[];e&&toFormData(e,this,t)}const K=AxiosURLSearchParams.prototype;K.append=function append(e,t){this._pairs.push([e,t])};K.toString=function toString(e){const t=e?function(t){return e.call(this,t,encode$1)}:encode$1;return this._pairs.map((function each(e){return t(e[0])+"="+t(e[1])}),"").join("&")};function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,s){if(!t){return e}const r=s&&s.encode||encode;const o=s&&s.serialize;let A;if(o){A=o(t,s)}else{A=V.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,s).toString(r)}if(A){const t=e.indexOf("#");if(t!==-1){e=e.slice(0,t)}e+=(e.indexOf("?")===-1?"?":"&")+A}return e}class InterceptorManager{constructor(){this.handlers=[]}use(e,t,s){this.handlers.push({fulfilled:e,rejected:t,synchronous:s?s.synchronous:false,runWhen:s?s.runWhen:null});return this.handlers.length-1}eject(e){if(this.handlers[e]){this.handlers[e]=null}}clear(){if(this.handlers){this.handlers=[]}}forEach(e){V.forEach(this.handlers,(function forEachHandler(t){if(t!==null){e(t)}}))}}const X=InterceptorManager;const Z={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false};const $=d["default"].URLSearchParams;const ee={isNode:true,classes:{URLSearchParams:$,FormData:g["default"],Blob:typeof Blob!=="undefined"&&Blob||null},protocols:["http","https","file","data"]};const te=typeof window!=="undefined"&&typeof document!=="undefined";const se=(e=>te&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator!=="undefined"&&navigator.product);const re=(()=>typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function")();const oe=Object.freeze({__proto__:null,hasBrowserEnv:te,hasStandardBrowserWebWorkerEnv:re,hasStandardBrowserEnv:se});const Ae={...oe,...ee};function toURLEncodedForm(e,t){return toFormData(e,new Ae.classes.URLSearchParams,Object.assign({visitor:function(e,t,s,r){if(Ae.isNode&&V.isBuffer(e)){this.append(t,e.toString("base64"));return false}return r.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map((e=>e[0]==="[]"?"":e[1]||e[0]))}function arrayToObject(e){const t={};const s=Object.keys(e);let r;const o=s.length;let A;for(r=0;r=e.length;o=!o&&V.isArray(s)?s.length:o;if(n){if(V.hasOwnProp(s,o)){s[o]=[s[o],t]}else{s[o]=t}return!A}if(!s[o]||!V.isObject(s[o])){s[o]=[]}const i=buildPath(e,t,s[o],r);if(i&&V.isArray(s[o])){s[o]=arrayToObject(s[o])}return!A}if(V.isFormData(e)&&V.isFunction(e.entries)){const t={};V.forEachEntry(e,((e,s)=>{buildPath(parsePropPath(e),s,t,0)}));return t}return null}function stringifySafely(e,t,s){if(V.isString(e)){try{(t||JSON.parse)(e);return V.trim(e)}catch(e){if(e.name!=="SyntaxError"){throw e}}}return(s||JSON.stringify)(e)}const ne={transitional:Z,adapter:["xhr","http"],transformRequest:[function transformRequest(e,t){const s=t.getContentType()||"";const r=s.indexOf("application/json")>-1;const o=V.isObject(e);if(o&&V.isHTMLForm(e)){e=new FormData(e)}const A=V.isFormData(e);if(A){return r?JSON.stringify(formDataToJSON(e)):e}if(V.isArrayBuffer(e)||V.isBuffer(e)||V.isStream(e)||V.isFile(e)||V.isBlob(e)){return e}if(V.isArrayBufferView(e)){return e.buffer}if(V.isURLSearchParams(e)){t.setContentType("application/x-www-form-urlencoded;charset=utf-8",false);return e.toString()}let n;if(o){if(s.indexOf("application/x-www-form-urlencoded")>-1){return toURLEncodedForm(e,this.formSerializer).toString()}if((n=V.isFileList(e))||s.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return toFormData(n?{"files[]":e}:e,t&&new t,this.formSerializer)}}if(o||r){t.setContentType("application/json",false);return stringifySafely(e)}return e}],transformResponse:[function transformResponse(e){const t=this.transitional||ne.transitional;const s=t&&t.forcedJSONParsing;const r=this.responseType==="json";if(e&&V.isString(e)&&(s&&!this.responseType||r)){const s=t&&t.silentJSONParsing;const o=!s&&r;try{return JSON.parse(e)}catch(e){if(o){if(e.name==="SyntaxError"){throw AxiosError.from(e,AxiosError.ERR_BAD_RESPONSE,this,null,this.response)}throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ae.classes.FormData,Blob:Ae.classes.Blob},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":undefined}}};V.forEach(["delete","get","head","post","put","patch"],(e=>{ne.headers[e]={}}));const ie=ne;const ae=V.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const parseHeaders=e=>{const t={};let s;let r;let o;e&&e.split("\n").forEach((function parser(e){o=e.indexOf(":");s=e.substring(0,o).trim().toLowerCase();r=e.substring(o+1).trim();if(!s||t[s]&&ae[s]){return}if(s==="set-cookie"){if(t[s]){t[s].push(r)}else{t[s]=[r]}}else{t[s]=t[s]?t[s]+", "+r:r}}));return t};const ce=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){if(e===false||e==null){return e}return V.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const t=Object.create(null);const s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;while(r=s.exec(e)){t[r[1]]=r[2]}return t}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,t,s,r,o){if(V.isFunction(r)){return r.call(this,t,s)}if(o){t=s}if(!V.isString(t))return;if(V.isString(r)){return t.indexOf(r)!==-1}if(V.isRegExp(r)){return r.test(t)}}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,s)=>t.toUpperCase()+s))}function buildAccessors(e,t){const s=V.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+s,{value:function(e,s,o){return this[r].call(this,t,e,s,o)},configurable:true})}))}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,s){const r=this;function setHeader(e,t,s){const o=normalizeHeader(t);if(!o){throw new Error("header name must be a non-empty string")}const A=V.findKey(r,o);if(!A||r[A]===undefined||s===true||s===undefined&&r[A]!==false){r[A||t]=normalizeValue(e)}}const setHeaders=(e,t)=>V.forEach(e,((e,s)=>setHeader(e,s,t)));if(V.isPlainObject(e)||e instanceof this.constructor){setHeaders(e,t)}else if(V.isString(e)&&(e=e.trim())&&!isValidHeaderName(e)){setHeaders(parseHeaders(e),t)}else{e!=null&&setHeader(t,e,s)}return this}get(e,t){e=normalizeHeader(e);if(e){const s=V.findKey(this,e);if(s){const e=this[s];if(!t){return e}if(t===true){return parseTokens(e)}if(V.isFunction(t)){return t.call(this,e,s)}if(V.isRegExp(t)){return t.exec(e)}throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){e=normalizeHeader(e);if(e){const s=V.findKey(this,e);return!!(s&&this[s]!==undefined&&(!t||matchHeaderValue(this,this[s],s,t)))}return false}delete(e,t){const s=this;let r=false;function deleteHeader(e){e=normalizeHeader(e);if(e){const o=V.findKey(s,e);if(o&&(!t||matchHeaderValue(s,s[o],o,t))){delete s[o];r=true}}}if(V.isArray(e)){e.forEach(deleteHeader)}else{deleteHeader(e)}return r}clear(e){const t=Object.keys(this);let s=t.length;let r=false;while(s--){const o=t[s];if(!e||matchHeaderValue(this,this[o],o,e,true)){delete this[o];r=true}}return r}normalize(e){const t=this;const s={};V.forEach(this,((r,o)=>{const A=V.findKey(s,o);if(A){t[A]=normalizeValue(r);delete t[o];return}const n=e?formatHeader(o):String(o).trim();if(n!==o){delete t[o]}t[n]=normalizeValue(r);s[n]=true}));return this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);V.forEach(this,((s,r)=>{s!=null&&s!==false&&(t[r]=e&&V.isArray(s)?s.join(", "):s)}));return t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);t.forEach((e=>s.set(e)));return s}static accessor(e){const t=this[ce]=this[ce]={accessors:{}};const s=t.accessors;const r=this.prototype;function defineAccessor(e){const t=normalizeHeader(e);if(!s[t]){buildAccessors(r,e);s[t]=true}}V.isArray(e)?e.forEach(defineAccessor):defineAccessor(e);return this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(AxiosHeaders.prototype,(({value:e},t)=>{let s=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[s]=e}}}));V.freezeMethods(AxiosHeaders);const le=AxiosHeaders;function transformData(e,t){const s=this||ie;const r=t||s;const o=le.from(r.headers);let A=r.data;V.forEach(e,(function transform(e){A=e.call(s,A,o.normalize(),t?t.status:undefined)}));o.normalize();return A}function isCancel(e){return!!(e&&e.__CANCEL__)}function CanceledError(e,t,s){AxiosError.call(this,e==null?"canceled":e,AxiosError.ERR_CANCELED,t,s);this.name="CanceledError"}V.inherits(CanceledError,AxiosError,{__CANCEL__:true});function settle(e,t,s){const r=s.config.validateStatus;if(!s.status||!r||r(s.status)){e(s)}else{t(new AxiosError("Request failed with status code "+s.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s))}}function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t){if(e&&!isAbsoluteURL(t)){return combineURLs(e,t)}return t}const ue="1.6.7";function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}const pe=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function fromDataURI(e,t,s){const r=s&&s.Blob||Ae.classes.Blob;const o=parseProtocol(e);if(t===undefined&&r){t=true}if(o==="data"){e=o.length?e.slice(o.length+1):e;const s=pe.exec(e);if(!s){throw new AxiosError("Invalid URL",AxiosError.ERR_INVALID_URL)}const A=s[1];const n=s[2];const i=s[3];const a=Buffer.from(decodeURIComponent(i),n?"base64":"utf8");if(t){if(!r){throw new AxiosError("Blob is not supported",AxiosError.ERR_NOT_SUPPORT)}return new r([a],{type:A})}return a}throw new AxiosError("Unsupported protocol "+o,AxiosError.ERR_NOT_SUPPORT)}function throttle(e,t){let s=0;const r=1e3/t;let o=null;return function throttled(t,A){const n=Date.now();if(t||n-s>r){if(o){clearTimeout(o);o=null}s=n;return e.apply(null,A)}if(!o){o=setTimeout((()=>{o=null;s=Date.now();return e.apply(null,A)}),r-(n-s))}}}function speedometer(e,t){e=e||10;const s=new Array(e);const r=new Array(e);let o=0;let A=0;let n;t=t!==undefined?t:1e3;return function push(i){const a=Date.now();const c=r[A];if(!n){n=a}s[o]=i;r[o]=a;let l=A;let u=0;while(l!==o){u+=s[l++];l=l%e}o=(o+1)%e;if(o===A){A=(A+1)%e}if(a-n!V.isUndefined(t[e])));super({readableHighWaterMark:e.chunkSize});const t=this;const s=this[ge]={length:e.length,timeWindow:e.timeWindow,ticksRate:e.ticksRate,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:false,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};const r=speedometer(s.ticksRate*e.samplesCount,s.timeWindow);this.on("newListener",(e=>{if(e==="progress"){if(!s.isCaptured){s.isCaptured=true}}}));let o=0;s.updateProgress=throttle((function throttledHandler(){const e=s.length;const A=s.bytesSeen;const n=A-o;if(!n||t.destroyed)return;const i=r(n);o=A;process.nextTick((()=>{t.emit("progress",{loaded:A,total:e,progress:e?A/e:undefined,bytes:n,rate:i?i:undefined,estimated:i&&e&&A<=e?(e-A)/i:undefined})}))}),s.ticksRate);const onFinish=()=>{s.updateProgress(true)};this.once("end",onFinish);this.once("error",onFinish)}_read(e){const t=this[ge];if(t.onReadCallback){t.onReadCallback()}return super._read(e)}_transform(e,t,s){const r=this;const o=this[ge];const A=o.maxRate;const n=this.readableHighWaterMark;const i=o.timeWindow;const a=1e3/i;const c=A/a;const l=o.minChunkSize!==false?Math.max(o.minChunkSize,c*.01):0;function pushChunk(e,t){const s=Buffer.byteLength(e);o.bytesSeen+=s;o.bytes+=s;if(o.isCaptured){o.updateProgress()}if(r.push(e)){process.nextTick(t)}else{o.onReadCallback=()=>{o.onReadCallback=null;process.nextTick(t)}}}const transformChunk=(e,t)=>{const s=Buffer.byteLength(e);let r=null;let a=n;let u;let p=0;if(A){const e=Date.now();if(!o.ts||(p=e-o.ts)>=i){o.ts=e;u=c-o.bytes;o.bytes=u<0?-u:0;p=0}u=c-o.bytes}if(A){if(u<=0){return setTimeout((()=>{t(null,e)}),i-p)}if(ua&&s-a>l){r=e.subarray(a);e=e.subarray(0,a)}pushChunk(e,r?()=>{process.nextTick(t,null,r)}:t)};transformChunk(e,(function transformNextChunk(e,t){if(e){return s(e)}if(t){transformChunk(t,transformNextChunk)}else{s(null)}}))}setLength(e){this[ge].length=+e;return this}}const de=AxiosTransformStream;const{asyncIterator:he}=Symbol;const readBlob=async function*(e){if(e.stream){yield*e.stream()}else if(e.arrayBuffer){yield await e.arrayBuffer()}else if(e[he]){yield*e[he]()}else{yield e}};const Ee=readBlob;const fe=V.ALPHABET.ALPHA_DIGIT+"-_";const Ce=new a.TextEncoder;const Qe="\r\n";const me=Ce.encode(Qe);const Be=2;class FormDataPart{constructor(e,t){const{escapeName:s}=this.constructor;const r=V.isString(t);let o=`Content-Disposition: form-data; name="${s(e)}"${!r&&t.name?`; filename="${s(t.name)}"`:""}${Qe}`;if(r){t=Ce.encode(String(t).replace(/\r?\n|\r\n?/g,Qe))}else{o+=`Content-Type: ${t.type||"application/octet-stream"}${Qe}`}this.headers=Ce.encode(o+Qe);this.contentLength=r?t.byteLength:t.size;this.size=this.headers.byteLength+this.contentLength+Be;this.name=e;this.value=t}async*encode(){yield this.headers;const{value:e}=this;if(V.isTypedArray(e)){yield e}else{yield*Ee(e)}yield me}static escapeName(e){return String(e).replace(/[\r\n"]/g,(e=>({"\r":"%0D","\n":"%0A",'"':"%22"}[e])))}}const formDataToStream=(e,t,s)=>{const{tag:r="form-data-boundary",size:o=25,boundary:A=r+"-"+V.generateString(o,fe)}=s||{};if(!V.isFormData(e)){throw TypeError("FormData instance required")}if(A.length<1||A.length>70){throw Error("boundary must be 10-70 characters long")}const n=Ce.encode("--"+A+Qe);const i=Ce.encode("--"+A+"--"+Qe+Qe);let a=i.byteLength;const c=Array.from(e.entries()).map((([e,t])=>{const s=new FormDataPart(e,t);a+=s.size;return s}));a+=n.byteLength*c.length;a=V.toFiniteNumber(a);const l={"Content-Type":`multipart/form-data; boundary=${A}`};if(Number.isFinite(a)){l["Content-Length"]=a}t&&t(l);return u.Readable.from(async function*(){for(const e of c){yield n;yield*e.encode()}yield i}())};const Ie=formDataToStream;class ZlibHeaderTransformStream extends B["default"].Transform{__transform(e,t,s){this.push(e);s()}_transform(e,t,s){if(e.length!==0){this._transform=this.__transform;if(e[0]!==120){const e=Buffer.alloc(2);e[0]=120;e[1]=156;this.push(e,t)}}this.__transform(e,t,s)}}const be=ZlibHeaderTransformStream;const callbackify=(e,t)=>V.isAsyncFn(e)?function(...s){const r=s.pop();e.apply(this,s).then((e=>{try{t?r(null,...t(e)):r(null,e)}catch(e){r(e)}}),r)}:e;const ye=callbackify;const we={flush:m["default"].constants.Z_SYNC_FLUSH,finishFlush:m["default"].constants.Z_SYNC_FLUSH};const ve={flush:m["default"].constants.BROTLI_OPERATION_FLUSH,finishFlush:m["default"].constants.BROTLI_OPERATION_FLUSH};const Re=V.isFunction(m["default"].createBrotliDecompress);const{http:ke,https:De}=Q["default"];const xe=/https:?/;const Fe=Ae.protocols.map((e=>e+":"));function dispatchBeforeRedirect(e,t){if(e.beforeRedirects.proxy){e.beforeRedirects.proxy(e)}if(e.beforeRedirects.config){e.beforeRedirects.config(e,t)}}function setProxy(e,t,s){let r=t;if(!r&&r!==false){const e=A.getProxyForUrl(s);if(e){r=new URL(e)}}if(r){if(r.username){r.auth=(r.username||"")+":"+(r.password||"")}if(r.auth){if(r.auth.username||r.auth.password){r.auth=(r.auth.username||"")+":"+(r.auth.password||"")}const t=Buffer.from(r.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+t}e.headers.host=e.hostname+(e.port?":"+e.port:"");const t=r.hostname||r.host;e.hostname=t;e.host=t;e.port=r.port;e.path=s;if(r.protocol){e.protocol=r.protocol.includes(":")?r.protocol:`${r.protocol}:`}}e.beforeRedirects.proxy=function beforeRedirect(e){setProxy(e,t,e.href)}}const Se=typeof process!=="undefined"&&V.kindOf(process)==="process";const wrapAsync=e=>new Promise(((t,s)=>{let r;let o;const done=(e,t)=>{if(o)return;o=true;r&&r(e,t)};const _resolve=e=>{done(e);t(e)};const _reject=e=>{done(e,true);s(e)};e(_resolve,_reject,(e=>r=e)).catch(_reject)}));const resolveFamily=({address:e,family:t})=>{if(!V.isString(e)){throw TypeError("address must be a string")}return{address:e,family:t||(e.indexOf(".")<0?6:4)}};const buildAddressEntry=(e,t)=>resolveFamily(V.isObject(e)?e:{address:e,family:t});const Te=Se&&function httpAdapter(e){return wrapAsync((async function dispatchHttpRequest(t,s,r){let{data:o,lookup:A,family:n}=e;const{responseType:i,responseEncoding:a}=e;const c=e.method.toUpperCase();let l;let u=false;let p;if(A){const e=ye(A,(e=>V.isArray(e)?e:[e]));A=(t,s,r)=>{e(t,s,((e,t,o)=>{if(e){return r(e)}const A=V.isArray(t)?t.map((e=>buildAddressEntry(e))):[buildAddressEntry(t,o)];s.all?r(e,A):r(e,A[0].address,A[0].family)}))}}const g=new I["default"];const onFinished=()=>{if(e.cancelToken){e.cancelToken.unsubscribe(abort)}if(e.signal){e.signal.removeEventListener("abort",abort)}g.removeAllListeners()};r(((e,t)=>{l=true;if(t){u=true;onFinished()}}));function abort(t){g.emit("abort",!t||t.type?new CanceledError(null,e,p):t)}g.once("abort",s);if(e.cancelToken||e.signal){e.cancelToken&&e.cancelToken.subscribe(abort);if(e.signal){e.signal.aborted?abort():e.signal.addEventListener("abort",abort)}}const d=buildFullPath(e.baseURL,e.url);const Q=new URL(d,"http://localhost");const b=Q.protocol||Fe[0];if(b==="data:"){let r;if(c!=="GET"){return settle(t,s,{status:405,statusText:"method not allowed",headers:{},config:e})}try{r=fromDataURI(e.url,i==="blob",{Blob:e.env&&e.env.Blob})}catch(t){throw AxiosError.from(t,AxiosError.ERR_BAD_REQUEST,e)}if(i==="text"){r=r.toString(a);if(!a||a==="utf8"){r=V.stripBOM(r)}}else if(i==="stream"){r=B["default"].Readable.from(r)}return settle(t,s,{data:r,status:200,statusText:"OK",headers:new le,config:e})}if(Fe.indexOf(b)===-1){return s(new AxiosError("Unsupported protocol "+b,AxiosError.ERR_BAD_REQUEST,e))}const y=le.from(e.headers).normalize();y.set("User-Agent","axios/"+ue,false);const w=e.onDownloadProgress;const v=e.onUploadProgress;const R=e.maxRate;let k=undefined;let D=undefined;if(V.isSpecCompliantForm(o)){const e=y.getContentType(/boundary=([-_\w\d]{10,70})/i);o=Ie(o,(e=>{y.set(e)}),{tag:`axios-${ue}-boundary`,boundary:e&&e[1]||undefined})}else if(V.isFormData(o)&&V.isFunction(o.getHeaders)){y.set(o.getHeaders());if(!y.hasContentLength()){try{const e=await C["default"].promisify(o.getLength).call(o);Number.isFinite(e)&&e>=0&&y.setContentLength(e)}catch(e){}}}else if(V.isBlob(o)){o.size&&y.setContentType(o.type||"application/octet-stream");y.setContentLength(o.size||0);o=B["default"].Readable.from(Ee(o))}else if(o&&!V.isStream(o)){if(Buffer.isBuffer(o));else if(V.isArrayBuffer(o)){o=Buffer.from(new Uint8Array(o))}else if(V.isString(o)){o=Buffer.from(o,"utf-8")}else{return s(new AxiosError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",AxiosError.ERR_BAD_REQUEST,e))}y.setContentLength(o.length,false);if(e.maxBodyLength>-1&&o.length>e.maxBodyLength){return s(new AxiosError("Request body larger than maxBodyLength limit",AxiosError.ERR_BAD_REQUEST,e))}}const x=V.toFiniteNumber(y.getContentLength());if(V.isArray(R)){k=R[0];D=R[1]}else{k=D=R}if(o&&(v||k)){if(!V.isStream(o)){o=B["default"].Readable.from(o,{objectMode:false})}o=B["default"].pipeline([o,new de({length:x,maxRate:V.toFiniteNumber(k)})],V.noop);v&&o.on("progress",(e=>{v(Object.assign(e,{upload:true}))}))}let F=undefined;if(e.auth){const t=e.auth.username||"";const s=e.auth.password||"";F=t+":"+s}if(!F&&Q.username){const e=Q.username;const t=Q.password;F=e+":"+t}F&&y.delete("authorization");let S;try{S=buildURL(Q.pathname+Q.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(t){const r=new Error(t.message);r.config=e;r.url=e.url;r.exists=true;return s(r)}y.set("Accept-Encoding","gzip, compress, deflate"+(Re?", br":""),false);const T={path:S,method:c,headers:y.toJSON(),agents:{http:e.httpAgent,https:e.httpsAgent},auth:F,protocol:b,family:n,beforeRedirect:dispatchBeforeRedirect,beforeRedirects:{}};!V.isUndefined(A)&&(T.lookup=A);if(e.socketPath){T.socketPath=e.socketPath}else{T.hostname=Q.hostname;T.port=Q.port;setProxy(T,e.proxy,b+"//"+Q.hostname+(Q.port?":"+Q.port:"")+T.path)}let U;const N=xe.test(T.protocol);T.agent=N?e.httpsAgent:e.httpAgent;if(e.transport){U=e.transport}else if(e.maxRedirects===0){U=N?E["default"]:h["default"]}else{if(e.maxRedirects){T.maxRedirects=e.maxRedirects}if(e.beforeRedirect){T.beforeRedirects.config=e.beforeRedirect}U=N?De:ke}if(e.maxBodyLength>-1){T.maxBodyLength=e.maxBodyLength}else{T.maxBodyLength=Infinity}if(e.insecureHTTPParser){T.insecureHTTPParser=e.insecureHTTPParser}p=U.request(T,(function handleResponse(r){if(p.destroyed)return;const o=[r];const A=+r.headers["content-length"];if(w){const e=new de({length:V.toFiniteNumber(A),maxRate:V.toFiniteNumber(D)});w&&e.on("progress",(e=>{w(Object.assign(e,{download:true}))}));o.push(e)}let n=r;const l=r.req||p;if(e.decompress!==false&&r.headers["content-encoding"]){if(c==="HEAD"||r.statusCode===204){delete r.headers["content-encoding"]}switch((r.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":o.push(m["default"].createUnzip(we));delete r.headers["content-encoding"];break;case"deflate":o.push(new be);o.push(m["default"].createUnzip(we));delete r.headers["content-encoding"];break;case"br":if(Re){o.push(m["default"].createBrotliDecompress(ve));delete r.headers["content-encoding"]}}}n=o.length>1?B["default"].pipeline(o,V.noop):o[0];const d=B["default"].finished(n,(()=>{d();onFinished()}));const h={status:r.statusCode,statusText:r.statusMessage,headers:new le(r.headers),config:e,request:l};if(i==="stream"){h.data=n;settle(t,s,h)}else{const r=[];let o=0;n.on("data",(function handleStreamData(t){r.push(t);o+=t.length;if(e.maxContentLength>-1&&o>e.maxContentLength){u=true;n.destroy();s(new AxiosError("maxContentLength size of "+e.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,e,l))}}));n.on("aborted",(function handlerStreamAborted(){if(u){return}const t=new AxiosError("maxContentLength size of "+e.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,e,l);n.destroy(t);s(t)}));n.on("error",(function handleStreamError(t){if(p.destroyed)return;s(AxiosError.from(t,null,e,l))}));n.on("end",(function handleStreamEnd(){try{let e=r.length===1?r[0]:Buffer.concat(r);if(i!=="arraybuffer"){e=e.toString(a);if(!a||a==="utf8"){e=V.stripBOM(e)}}h.data=e}catch(t){return s(AxiosError.from(t,null,e,h.request,h))}settle(t,s,h)}))}g.once("abort",(e=>{if(!n.destroyed){n.emit("error",e);n.destroy()}}))}));g.once("abort",(e=>{s(e);p.destroy(e)}));p.on("error",(function handleRequestError(t){s(AxiosError.from(t,null,e,p))}));p.on("socket",(function handleRequestSocket(e){e.setKeepAlive(true,1e3*60)}));if(e.timeout){const t=parseInt(e.timeout,10);if(Number.isNaN(t)){s(new AxiosError("error trying to parse `config.timeout` to int",AxiosError.ERR_BAD_OPTION_VALUE,e,p));return}p.setTimeout(t,(function handleRequestTimeout(){if(l)return;let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Z;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}s(new AxiosError(t,r.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,p));abort()}))}if(V.isStream(o)){let t=false;let s=false;o.on("end",(()=>{t=true}));o.once("error",(e=>{s=true;p.destroy(e)}));o.on("close",(()=>{if(!t&&!s){abort(new CanceledError("Request stream has been aborted",e,p))}}));o.pipe(p)}else{p.end(o)}}))};const Ue=Ae.hasStandardBrowserEnv?{write(e,t,s,r,o,A){const n=[e+"="+encodeURIComponent(t)];V.isNumber(s)&&n.push("expires="+new Date(s).toGMTString());V.isString(r)&&n.push("path="+r);V.isString(o)&&n.push("domain="+o);A===true&&n.push("secure");document.cookie=n.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};const Ne=Ae.hasStandardBrowserEnv?function standardBrowserEnv(){const e=/(msie|trident)/i.test(navigator.userAgent);const t=document.createElement("a");let s;function resolveURL(s){let r=s;if(e){t.setAttribute("href",r);r=t.href}t.setAttribute("href",r);return{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}s=resolveURL(window.location.href);return function isURLSameOrigin(e){const t=V.isString(e)?resolveURL(e):e;return t.protocol===s.protocol&&t.host===s.host}}():function nonStandardBrowserEnv(){return function isURLSameOrigin(){return true}}();function progressEventReducer(e,t){let s=0;const r=speedometer(50,250);return o=>{const A=o.loaded;const n=o.lengthComputable?o.total:undefined;const i=A-s;const a=r(i);const c=A<=n;s=A;const l={loaded:A,total:n,progress:n?A/n:undefined,bytes:i,rate:a?a:undefined,estimated:a&&n&&c?(n-A)/a:undefined,event:o};l[t?"download":"upload"]=true;e(l)}}const Le=typeof XMLHttpRequest!=="undefined";const _e=Le&&function(e){return new Promise((function dispatchXhrRequest(t,s){let r=e.data;const o=le.from(e.headers).normalize();let{responseType:A,withXSRFToken:n}=e;let i;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(i)}if(e.signal){e.signal.removeEventListener("abort",i)}}let a;if(V.isFormData(r)){if(Ae.hasStandardBrowserEnv||Ae.hasStandardBrowserWebWorkerEnv){o.setContentType(false)}else if((a=o.getContentType())!==false){const[e,...t]=a?a.split(";").map((e=>e.trim())).filter(Boolean):[];o.setContentType([e||"multipart/form-data",...t].join("; "))}}let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"";const s=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+s))}const l=buildFullPath(e.baseURL,e.url);c.open(e.method.toUpperCase(),buildURL(l,e.params,e.paramsSerializer),true);c.timeout=e.timeout;function onloadend(){if(!c){return}const r=le.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());const o=!A||A==="text"||A==="json"?c.responseText:c.response;const n={data:o,status:c.status,statusText:c.statusText,headers:r,config:e,request:c};settle((function _resolve(e){t(e);done()}),(function _reject(e){s(e);done()}),n);c=null}if("onloadend"in c){c.onloadend=onloadend}else{c.onreadystatechange=function handleLoad(){if(!c||c.readyState!==4){return}if(c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)){return}setTimeout(onloadend)}}c.onabort=function handleAbort(){if(!c){return}s(new AxiosError("Request aborted",AxiosError.ECONNABORTED,e,c));c=null};c.onerror=function handleError(){s(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,c));c=null};c.ontimeout=function handleTimeout(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Z;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}s(new AxiosError(t,r.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,c));c=null};if(Ae.hasStandardBrowserEnv){n&&V.isFunction(n)&&(n=n(e));if(n||n!==false&&Ne(l)){const t=e.xsrfHeaderName&&e.xsrfCookieName&&Ue.read(e.xsrfCookieName);if(t){o.set(e.xsrfHeaderName,t)}}}r===undefined&&o.setContentType(null);if("setRequestHeader"in c){V.forEach(o.toJSON(),(function setRequestHeader(e,t){c.setRequestHeader(t,e)}))}if(!V.isUndefined(e.withCredentials)){c.withCredentials=!!e.withCredentials}if(A&&A!=="json"){c.responseType=e.responseType}if(typeof e.onDownloadProgress==="function"){c.addEventListener("progress",progressEventReducer(e.onDownloadProgress,true))}if(typeof e.onUploadProgress==="function"&&c.upload){c.upload.addEventListener("progress",progressEventReducer(e.onUploadProgress))}if(e.cancelToken||e.signal){i=t=>{if(!c){return}s(!t||t.type?new CanceledError(null,e,c):t);c.abort();c=null};e.cancelToken&&e.cancelToken.subscribe(i);if(e.signal){e.signal.aborted?i():e.signal.addEventListener("abort",i)}}const u=parseProtocol(l);if(u&&Ae.protocols.indexOf(u)===-1){s(new AxiosError("Unsupported protocol "+u+":",AxiosError.ERR_BAD_REQUEST,e));return}c.send(r||null)}))};const Me={http:Te,xhr:_e};V.forEach(Me,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const renderReason=e=>`- ${e}`;const isResolvedHandle=e=>V.isFunction(e)||e===null||e===false;const Ge={getAdapter:e=>{e=V.isArray(e)?e:[e];const{length:t}=e;let s;let r;const o={};for(let A=0;A`adapter ${e} `+(t===false?"is not supported by the environment":"is not available in the build")));let s=t?e.length>1?"since :\n"+e.map(renderReason).join("\n"):" "+renderReason(e[0]):"as no adapter specified";throw new AxiosError(`There is no suitable adapter to dispatch the request `+s,"ERR_NOT_SUPPORT")}return r},adapters:Me};function throwIfCancellationRequested(e){if(e.cancelToken){e.cancelToken.throwIfRequested()}if(e.signal&&e.signal.aborted){throw new CanceledError(null,e)}}function dispatchRequest(e){throwIfCancellationRequested(e);e.headers=le.from(e.headers);e.data=transformData.call(e,e.transformRequest);if(["post","put","patch"].indexOf(e.method)!==-1){e.headers.setContentType("application/x-www-form-urlencoded",false)}const t=Ge.getAdapter(e.adapter||ie.adapter);return t(e).then((function onAdapterResolution(t){throwIfCancellationRequested(e);t.data=transformData.call(e,e.transformResponse,t);t.headers=le.from(t.headers);return t}),(function onAdapterRejection(t){if(!isCancel(t)){throwIfCancellationRequested(e);if(t&&t.response){t.response.data=transformData.call(e,e.transformResponse,t.response);t.response.headers=le.from(t.response.headers)}}return Promise.reject(t)}))}const headersToObject=e=>e instanceof le?e.toJSON():e;function mergeConfig(e,t){t=t||{};const s={};function getMergedValue(e,t,s){if(V.isPlainObject(e)&&V.isPlainObject(t)){return V.merge.call({caseless:s},e,t)}else if(V.isPlainObject(t)){return V.merge({},t)}else if(V.isArray(t)){return t.slice()}return t}function mergeDeepProperties(e,t,s){if(!V.isUndefined(t)){return getMergedValue(e,t,s)}else if(!V.isUndefined(e)){return getMergedValue(undefined,e,s)}}function valueFromConfig2(e,t){if(!V.isUndefined(t)){return getMergedValue(undefined,t)}}function defaultToConfig2(e,t){if(!V.isUndefined(t)){return getMergedValue(undefined,t)}else if(!V.isUndefined(e)){return getMergedValue(undefined,e)}}function mergeDirectKeys(s,r,o){if(o in t){return getMergedValue(s,r)}else if(o in e){return getMergedValue(undefined,s)}}const r={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(e,t)=>mergeDeepProperties(headersToObject(e),headersToObject(t),true)};V.forEach(Object.keys(Object.assign({},e,t)),(function computeConfigValue(o){const A=r[o]||mergeDeepProperties;const n=A(e[o],t[o],o);V.isUndefined(n)&&A!==mergeDirectKeys||(s[o]=n)}));return s}const Oe={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Oe[e]=function validator(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}}));const Pe={};Oe.transitional=function transitional(e,t,s){function formatMessage(e,t){return"[Axios v"+ue+"] Transitional option '"+e+"'"+t+(s?". "+s:"")}return(s,r,o)=>{if(e===false){throw new AxiosError(formatMessage(r," has been removed"+(t?" in "+t:"")),AxiosError.ERR_DEPRECATED)}if(t&&!Pe[r]){Pe[r]=true;console.warn(formatMessage(r," has been deprecated since v"+t+" and will be removed in the near future"))}return e?e(s,r,o):true}};function assertOptions(e,t,s){if(typeof e!=="object"){throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE)}const r=Object.keys(e);let o=r.length;while(o-- >0){const A=r[o];const n=t[A];if(n){const t=e[A];const s=t===undefined||n(t,A,e);if(s!==true){throw new AxiosError("option "+A+" must be "+s,AxiosError.ERR_BAD_OPTION_VALUE)}continue}if(s!==true){throw new AxiosError("Unknown option "+A,AxiosError.ERR_BAD_OPTION)}}}const He={assertOptions:assertOptions,validators:Oe};const Ye=He.validators;class Axios{constructor(e){this.defaults=e;this.interceptors={request:new X,response:new X}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const s=t.stack?t.stack.replace(/^.+\n/,""):"";if(!e.stack){e.stack=s}else if(s&&!String(e.stack).endsWith(s.replace(/^.+\n.+\n/,""))){e.stack+="\n"+s}}throw e}}_request(e,t){if(typeof e==="string"){t=t||{};t.url=e}else{t=e||{}}t=mergeConfig(this.defaults,t);const{transitional:s,paramsSerializer:r,headers:o}=t;if(s!==undefined){He.assertOptions(s,{silentJSONParsing:Ye.transitional(Ye.boolean),forcedJSONParsing:Ye.transitional(Ye.boolean),clarifyTimeoutError:Ye.transitional(Ye.boolean)},false)}if(r!=null){if(V.isFunction(r)){t.paramsSerializer={serialize:r}}else{He.assertOptions(r,{encode:Ye.function,serialize:Ye.function},true)}}t.method=(t.method||this.defaults.method||"get").toLowerCase();let A=o&&V.merge(o.common,o[t.method]);o&&V.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]}));t.headers=le.concat(A,o);const n=[];let i=true;this.interceptors.request.forEach((function unshiftRequestInterceptors(e){if(typeof e.runWhen==="function"&&e.runWhen(t)===false){return}i=i&&e.synchronous;n.unshift(e.fulfilled,e.rejected)}));const a=[];this.interceptors.response.forEach((function pushResponseInterceptors(e){a.push(e.fulfilled,e.rejected)}));let c;let l=0;let u;if(!i){const e=[dispatchRequest.bind(this),undefined];e.unshift.apply(e,n);e.push.apply(e,a);u=e.length;c=Promise.resolve(t);while(l{if(!s._listeners)return;let t=s._listeners.length;while(t-- >0){s._listeners[t](e)}s._listeners=null}));this.promise.then=e=>{let t;const r=new Promise((e=>{s.subscribe(e);t=e})).then(e);r.cancel=function reject(){s.unsubscribe(t)};return r};e((function cancel(e,r,o){if(s.reason){return}s.reason=new CanceledError(e,r,o);t(s.reason)}))}throwIfRequested(){if(this.reason){throw this.reason}}subscribe(e){if(this.reason){e(this.reason);return}if(this._listeners){this._listeners.push(e)}else{this._listeners=[e]}}unsubscribe(e){if(!this._listeners){return}const t=this._listeners.indexOf(e);if(t!==-1){this._listeners.splice(t,1)}}static source(){let e;const t=new CancelToken((function executor(t){e=t}));return{token:t,cancel:e}}}const qe=CancelToken;function spread(e){return function wrap(t){return e.apply(null,t)}}function isAxiosError(e){return V.isObject(e)&&e.isAxiosError===true}const Ve={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation: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,Unused:306,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,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity: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};Object.entries(Ve).forEach((([e,t])=>{Ve[t]=e}));const We=Ve;function createInstance(e){const t=new Je(e);const s=bind(Je.prototype.request,t);V.extend(s,Je.prototype,t,{allOwnKeys:true});V.extend(s,t,null,{allOwnKeys:true});s.create=function create(t){return createInstance(mergeConfig(e,t))};return s}const je=createInstance(ie);je.Axios=Je;je.CanceledError=CanceledError;je.CancelToken=qe;je.isCancel=isCancel;je.VERSION=ue;je.toFormData=toFormData;je.AxiosError=AxiosError;je.Cancel=je.CanceledError;je.all=function all(e){return Promise.all(e)};je.spread=spread;je.isAxiosError=isAxiosError;je.mergeConfig=mergeConfig;je.AxiosHeaders=le;je.formToJSON=e=>formDataToJSON(V.isHTMLForm(e)?new FormData(e):e);je.getAdapter=Ge.getAdapter;je.HttpStatusCode=We;je.default=je;e.exports=je},7117:e=>{e.exports=JSON.parse('{"name":"@slack/web-api","version":"7.0.1","description":"Official library for using the Slack Platform\'s Web API","author":"Slack Technologies, LLC","license":"MIT","keywords":["slack","web-api","bot","client","http","api","proxy","rate-limiting","pagination"],"main":"dist/index.js","types":"./dist/index.d.ts","files":["dist/**/*"],"engines":{"node":">= 18","npm":">= 8.6.0"},"repository":"slackapi/node-slack-sdk","homepage":"https://slack.dev/node-slack-sdk/web-api","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/slackapi/node-slack-sdk/issues"},"scripts":{"prepare":"npm run build","build":"npm run build:clean && tsc","build:clean":"shx rm -rf ./dist ./coverage ./.nyc_output","lint":"eslint --ext .ts src","mocha":"mocha --config .mocharc.json src/*.spec.js","test":"npm run lint && npm run test:unit && npm run test:types && npm run test:integration","test:integration":"npm run build && node test/integration/commonjs-project/index.js && node test/integration/esm-project/index.mjs","test:unit":"npm run build && nyc --reporter=text-summary npm run mocha","test:types":"tsd","ref-docs:model":"api-extractor run","watch":"npx nodemon --watch \'src\' --ext \'ts\' --exec npm run build"},"dependencies":{"@slack/logger":"^4.0.0","@slack/types":"^2.9.0","@types/node":">=18.0.0","axios":"^1.6.5","eventemitter3":"^5.0.1","form-data":"^4.0.0","is-electron":"2.2.2","is-stream":"^2","p-queue":"^6","p-retry":"^4","retry":"^0.13.1"},"devDependencies":{"@microsoft/api-extractor":"^7","@tsconfig/recommended":"^1","@types/chai":"^4","@types/mocha":"^10","@types/sinon":"^17","@typescript-eslint/eslint-plugin":"^6","@typescript-eslint/parser":"^6","busboy":"^1","chai":"^4","eslint":"^8","eslint-config-airbnb-base":"^15","eslint-config-airbnb-typescript":"^17","eslint-plugin-import":"^2","eslint-plugin-import-newlines":"^1.3.4","eslint-plugin-jsdoc":"^48","eslint-plugin-node":"^11","mocha":"^10","nock":"^13","nyc":"^15","shx":"^0.3.2","sinon":"^17","source-map-support":"^0.5.21","ts-node":"^10","tsd":"^0.30.0","typescript":"5.3.3"},"tsd":{"directory":"test/types"}}')},6450:e=>{e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"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":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"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":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"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":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true,"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":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"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":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"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":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"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":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"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":true},"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":false,"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":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"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":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"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":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"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":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"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":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"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":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"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":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"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":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"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":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"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":false,"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":true,"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":true},"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":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"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":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"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":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"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":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"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":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"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":true,"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":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"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":true},"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":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"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":true,"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":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"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":true},"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":true},"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":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"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":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"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":false},"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":false},"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":false},"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":true},"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":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"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":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"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":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"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":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"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":false},"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":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"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":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"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":true},"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":true},"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":true,"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":false,"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":true,"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":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"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":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"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":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"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":false,"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":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"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":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"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":true},"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":false,"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":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"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":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"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":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"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":true,"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":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"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":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"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":true},"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":true},"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":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"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":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"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":true,"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":true},"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":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"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":true},"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":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"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":true,"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":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"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":true,"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":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"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":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"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":true,"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":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"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":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"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":true},"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":true,"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":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"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":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"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":false,"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":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"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":false},"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":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"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":true,"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":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"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":false},"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":true,"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":false,"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":false,"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":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"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":true,"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":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"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":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"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":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"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":false,"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":false,"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":false},"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":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"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":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"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":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"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":false,"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":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"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":false},"image/png":{"source":"iana","compressible":false,"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":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"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":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"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":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"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":false},"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":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"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":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"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":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"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":true},"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":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"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":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"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":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"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":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"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":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"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":true,"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":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"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":true,"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":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"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":true,"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":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"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":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"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":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"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":false,"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":true},"x-shader/x-vertex":{"compressible":true}}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e].call(s.exports,s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=new URL(".",import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/)?1:0,-1)+"/";var __webpack_exports__={};(()=>{var e=__nccwpck_require__(7131);var t=__nccwpck_require__(4237);var s=__nccwpck_require__(1738);function generateBlocks(e){let t="";let s=0;const r=[{type:"divider"}];e.forEach(((e,r)=>{if(e.reactions["+1"]>1){t+=`${r+1}. [<${e.html_url}|#${e.number}>, :+1: ${e.reactions["+1"]}]: ${e.title}\n`;s++}}));r.unshift({type:"section",text:{type:"mrkdwn",text:`*A list of the top ${s} PRs sorted by most :+1: reactions (> 1) over the last 90 days.*\n_Note: This :github2: workflow will run every Monday at 1PM UTC (9AM EST)._`}});r.push({type:"section",text:{type:"mrkdwn",text:t}});return r}async function run(){try{if(!process.env.GITHUB_TOKEN)throw new TypeError("GITHUB_TOKEN not set");if(!process.env.SLACK_TOKEN)throw new TypeError("SLACK_TOKEN not set");const r=(0,e.getOctokit)(process.env.GITHUB_TOKEN);const o=new s.WebClient(process.env.SLACK_TOKEN);const A=new Date;A.setDate(A.getDate()-90);const n=A.toISOString().split("T")[0];const{owner:i,repo:a}=e.context.repo;const{data:c}=await r.rest.search.issuesAndPullRequests({order:"desc",per_page:15,q:`repo:${i}/${a} is:pr is:open created:>=${n}`,sort:"reactions-+1"});if(c.items.length>0){await o.chat.postMessage({blocks:generateBlocks(c.items),channel:"#team-next-js",icon_emoji:":github:",username:"GitHub Notifier"});(0,t.info)(`Posted to Slack!`)}else{(0,t.info)(`No popular PRs`)}}catch(e){(0,t.setFailed)(e)}}run()})(); \ No newline at end of file diff --git a/.github/actions/next-repo-info/src/popular-prs.mjs b/.github/actions/next-repo-info/src/popular-prs.mjs index 3b0b8e12c047c..a595b603d9679 100644 --- a/.github/actions/next-repo-info/src/popular-prs.mjs +++ b/.github/actions/next-repo-info/src/popular-prs.mjs @@ -4,24 +4,30 @@ import { setFailed, info } from '@actions/core' import { WebClient } from '@slack/web-api' function generateBlocks(prs) { + let text = '' + let count = 0 + const blocks = [ - { - type: 'section', - text: { - type: 'mrkdwn', - text: '*A list of the top 15 PRs sorted by most :+1: reactions over the last 90 days.*\n_Note: This :github2: workflow will run every Monday at 1PM UTC (9AM EST)._', - }, - }, { type: 'divider', }, ] - let text = '' prs.forEach((pr, i) => { - text += `${i + 1}. [<${pr.html_url}|#${pr.number}>, :+1: ${ - pr.reactions['+1'] - }]: ${pr.title}\n` + if (pr.reactions['+1'] > 1) { + text += `${i + 1}. [<${pr.html_url}|#${pr.number}>, :+1: ${ + pr.reactions['+1'] + }]: ${pr.title}\n` + count++ + } + }) + + blocks.unshift({ + type: 'section', + text: { + type: 'mrkdwn', + text: `*A list of the top ${count} PRs sorted by most :+1: reactions (> 1) over the last 90 days.*\n_Note: This :github2: workflow will run every Monday at 1PM UTC (9AM EST)._`, + }, }) blocks.push({ diff --git a/.github/actions/next-stats-action/package.json b/.github/actions/next-stats-action/package.json index f0774ffc93c86..13647e211d489 100644 --- a/.github/actions/next-stats-action/package.json +++ b/.github/actions/next-stats-action/package.json @@ -19,7 +19,7 @@ }, "engines": { "node": ">=18.17.0", - "pnpm": "8.14.2" + "pnpm": "8.15.1" }, - "packageManager": "pnpm@8.14.2" + "packageManager": "pnpm@8.15.1" } diff --git a/.github/actions/upload-turboyet-data/package.json b/.github/actions/upload-turboyet-data/package.json index 2a8ccf4250d66..4ac70d743ca33 100644 --- a/.github/actions/upload-turboyet-data/package.json +++ b/.github/actions/upload-turboyet-data/package.json @@ -13,7 +13,7 @@ }, "engines": { "node": ">=18.17.0", - "pnpm": "8.14.2" + "pnpm": "8.15.1" }, - "packageManager": "pnpm@8.14.2" + "packageManager": "pnpm@8.15.1" } diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index cabb1fc937bfa..e64f992834b99 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -473,6 +473,31 @@ jobs: VERCEL_API_TOKEN: ${{ secrets.VERCEL_API_TOKEN }} DEPLOY_ENVIRONMENT: production + deployTurbopackDocs: + name: Deploy Turbopack docs + runs-on: ubuntu-latest + needs: [build] + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 25 + - name: Install Vercel CLI + run: npm i -g vercel@latest + - name: Install Rust + uses: ./.github/actions/setup-rust + - name: Deploy preview docs + if: ${{ needs.build.outputs.isRelease != 'true' }} + run: ./scripts/deploy-turbopack-docs.sh + env: + VERCEL_API_TOKEN: ${{ secrets.VERCEL_API_TOKEN }} + DEPLOY_ENVIRONMENT: preview + - name: Deploy production docs + if: ${{ needs.build.outputs.isRelease == 'true' }} + run: ./scripts/deploy-turbopack-docs.sh + env: + VERCEL_API_TOKEN: ${{ secrets.VERCEL_API_TOKEN }} + DEPLOY_ENVIRONMENT: production + releaseStats: name: Release Stats runs-on: diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 10146bf177ba0..39ad25d75f8d9 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -138,6 +138,20 @@ jobs: stepName: 'rust-check' secrets: inherit + rust-doc-check: + name: rustdoc check + needs: ['changes', 'build-next'] + if: ${{ needs.changes.outputs.docs-only == 'false' }} + + uses: ./.github/workflows/build_reusable.yml + with: + needsRust: 'yes' + skipInstallBuild: 'yes' + skipNativeBuild: 'yes' + afterBuild: ./scripts/deploy-turbopack-docs.sh + stepName: 'rust-doc-check' + secrets: inherit + test-turbopack-dev: name: test turbopack dev needs: ['changes', 'build-next'] diff --git a/.github/workflows/pull_request_popular.yml b/.github/workflows/pull_request_popular.yml index 316e44ae93fc2..e4adad1e7a577 100644 --- a/.github/workflows/pull_request_popular.yml +++ b/.github/workflows/pull_request_popular.yml @@ -1,4 +1,4 @@ -name: Notify about the top 15 PRs (most reacted) in the last 90 days +name: Notify about the top PRs (most reacted) in the last 90 days on: schedule: @@ -6,7 +6,7 @@ on: workflow_dispatch: jobs: - popular-issues: + popular-prs: if: github.repository_owner == 'vercel' runs-on: ubuntu-latest steps: diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index e8aeddc7f3b93..0a958c47efa97 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -17,7 +17,7 @@ jobs: name: Nissuer runs-on: ubuntu-latest steps: - - uses: balazsorban44/nissuer@1.8.2 + - uses: balazsorban44/nissuer@1.9.2 with: label-area-prefix: 'area:' label-area-section: 'Which area\(s\) are affected\? \(Select all that apply\)(.*)### Additional context' @@ -34,4 +34,4 @@ jobs: reproduction-blocklist: 'github.com/vercel/next.js.*,github.com/\\w*/?$,github.com$' reproduction-link-section: '### Link to the code that reproduces this issue(.*)### To Reproduce' reproduction-invalid-label: 'invalid link' - reproduction-issue-labels: 'template: bug' + reproduction-issue-labels: 'template: bug,' diff --git a/Cargo.lock b/Cargo.lock index dfca0d59c7d1f..0f1d6092f940d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -131,7 +131,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -315,13 +315,13 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "auto-hash-map" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "serde", "smallvec", @@ -445,12 +445,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - [[package]] name = "base16" version = "0.2.1" @@ -521,9 +515,9 @@ dependencies = [ [[package]] name = "binding_macros" -version = "0.63.6" +version = "0.64.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "669cc202d482ad52e374b6a4695cff8869125e2ee070c55792777114093b627b" +checksum = "c1170b86b43d48c750a4161dede3abeacdb5095132d1b8d74bed97129dda8ed6" dependencies = [ "anyhow", "console_error_panic_hook", @@ -614,14 +608,15 @@ dependencies = [ [[package]] name = "browserslist-rs" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2557836820eed97f79071bb3294b2640e71e0bc4301336a210a1b8b4947c15" +checksum = "405bbd46590a441abe5db3e5c8af005aa42e640803fecb51912703e93e4ce8d3" dependencies = [ "ahash 0.8.6", "anyhow", "chrono", "either", + "indexmap 2.2.3", "itertools 0.12.0", "nom", "once_cell", @@ -1237,7 +1232,7 @@ dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "memoffset 0.9.0", + "memoffset", "scopeguard", ] @@ -1269,11 +1264,11 @@ dependencies = [ "bitflags 1.3.2", "crossterm_winapi", "libc", - "mio 0.8.8", + "mio", "parking_lot", "signal-hook", "signal-hook-mio", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1282,7 +1277,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1414,7 +1409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.14.0", + "hashbrown 0.14.3", "lock_api", "once_cell", "parking_lot_core 0.9.8", @@ -1495,6 +1490,37 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + [[package]] name = "dhat" version = "0.3.2" @@ -1534,32 +1560,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - -[[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - [[package]] name = "dotenvs" version = "0.1.0" @@ -1721,23 +1721,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1785,6 +1774,15 @@ dependencies = [ "log", ] +[[package]] +name = "file-id" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6584280525fb2059cba3db2c04abf947a1a29a45ddae89f3870f8281704fafc9" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "filetime" version = "0.2.22" @@ -1860,41 +1858,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" -[[package]] -name = "fsevent" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" -dependencies = [ - "bitflags 1.3.2", - "fsevent-sys", -] - [[package]] name = "fsevent-sys" -version = "2.0.1" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" dependencies = [ "libc", ] -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags 1.3.2", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "funty" version = "2.0.0" @@ -2165,9 +2137,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hdrhistogram" @@ -2471,12 +2443,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.3", "rayon", "serde", ] @@ -2489,9 +2461,9 @@ checksum = "9f2cb48b81b1dc9f39676bf99f5499babfec7cd8fe14307f7b3d747208fb5690" [[package]] name = "inotify" -version = "0.7.1" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" dependencies = [ "bitflags 1.3.2", "inotify-sys", @@ -2538,15 +2510,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipnet" version = "2.7.1" @@ -2628,9 +2591,9 @@ checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] @@ -2651,13 +2614,23 @@ dependencies = [ ] [[package]] -name = "kernel32-sys" -version = "0.2.2" +name = "kqueue" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", ] [[package]] @@ -2824,7 +2797,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ "cfg-if 1.0.0", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2929,9 +2902,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -3027,9 +3000,9 @@ dependencies = [ [[package]] name = "mdxjs" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f1fdfd589b67270763c68ac2ca9ab5203cd96c1b3da2d7a82b72135e07346b" +checksum = "539f014f8de0298191ec2c05cb91b8bab0530be56b268dffedac7944c9c5f36a" dependencies = [ "markdown", "serde", @@ -3060,15 +3033,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.0" @@ -3169,25 +3133,6 @@ dependencies = [ "sys-info", ] -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - [[package]] name = "mio" version = "0.8.8" @@ -3200,35 +3145,11 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - [[package]] name = "modularize_imports" -version = "0.68.2" +version = "0.68.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6458a247b9a21987475d6286e9b8c01fedab1e7be5d8a1a52fad9fa4756cbdd" +checksum = "4b554d4032a7bc4d1546b2962ec3f80efd28a78734e72e3466096b075be1fa8b" dependencies = [ "convert_case 0.5.0", "handlebars", @@ -3356,17 +3277,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "net2" -version = "0.2.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - [[package]] name = "new_debug_unreachable" version = "1.0.4" @@ -3470,7 +3380,7 @@ dependencies = [ "rustc-hash", "serde", "serde_json", - "sha1 0.10.5", + "sha1", "swc_core", "tracing", "turbopack-binding", @@ -3513,7 +3423,7 @@ dependencies = [ [[package]] name = "node-file-trace" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "serde", @@ -3556,25 +3466,40 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a9da8c9922c35a1033d76f7272dfc2e7ee20392083d75aeea6ced23c6266578" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "notify" -version = "4.0.17" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", + "crossbeam-channel", "filetime", - "fsevent", "fsevent-sys", "inotify", + "kqueue", "libc", - "mio 0.6.23", - "mio-extras", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "notify-debouncer-full" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f5dab59c348b9b50cf7f261960a20e389feb2713636399cd9082cd4b536154" +dependencies = [ + "crossbeam-channel", + "file-id", + "log", + "notify", + "parking_lot", "walkdir", - "winapi 0.3.9", ] [[package]] @@ -3584,7 +3509,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3848,7 +3773,7 @@ dependencies = [ "libc", "redox_syscall 0.1.57", "smallvec", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3876,6 +3801,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd" +[[package]] +name = "path-clean" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" + [[package]] name = "pathdiff" version = "0.2.1" @@ -4150,9 +4081,9 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "preset_env_base" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e9bedef66806cb32828719aa5cad298e363ad50d190538db40b5631b89d456" +checksum = "1d99dc6ba4753f07bfbc4dbf3137618d31af2611fcaced7237647075ca687eaa" dependencies = [ "ahash 0.8.6", "anyhow", @@ -4193,7 +4124,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", ] [[package]] @@ -4220,12 +4151,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro2" version = "1.0.66" @@ -4461,9 +4386,9 @@ dependencies = [ [[package]] name = "react_remove_properties" -version = "0.24.1" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568b14c8b37c8641251da1d9c0d13bcedfbca1305a1d9e35efe2a1e68823aab4" +checksum = "bf0fead32ff48fa30c418f296246b26324bbe4ca202b14c960d6010e548b065b" dependencies = [ "serde", "swc_atoms", @@ -4479,15 +4404,6 @@ version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.3.5" @@ -4497,17 +4413,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom", - "redox_syscall 0.2.16", - "thiserror", -] - [[package]] name = "ref-cast" version = "1.0.20" @@ -4593,7 +4498,7 @@ dependencies = [ "bitflags 1.3.2", "libc", "mach", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4604,9 +4509,9 @@ checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca" [[package]] name = "remove_console" -version = "0.25.1" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68bdc1880508309b6f2345501dfc33c4416d8029a9cd70fd7ab1f9649ee81dc" +checksum = "11c42c494edc205de11ab4a29f11f974258c5e0e8a80d8e2df684feb3c9d26d0" dependencies = [ "serde", "swc_atoms", @@ -4694,7 +4599,7 @@ dependencies = [ "spin 0.5.2", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4794,15 +4699,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.3" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ "bitflags 2.4.0", "errno", "libc", - "linux-raw-sys 0.4.5", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", ] [[package]] @@ -4832,6 +4737,19 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +[[package]] +name = "rusty_pool" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ed36cdb20de66d89a17ea04b8883fc7a386f2cf877aaedca5005583ce4876ff" +dependencies = [ + "crossbeam-channel", + "futures", + "futures-channel", + "futures-executor", + "num_cpus", +] + [[package]] name = "ryu" version = "1.0.15" @@ -4919,6 +4837,12 @@ dependencies = [ "libc", ] +[[package]] +name = "self_cell" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba" + [[package]] name = "semver" version = "0.9.0" @@ -5007,7 +4931,7 @@ version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.3", "itoa", "ryu", "serde", @@ -5077,7 +5001,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros", - "time 0.3.30", + "time", ] [[package]] @@ -5104,6 +5028,19 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "serde_yaml" +version = "0.9.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15e0ef66bf939a7c890a0bf6d5a733c70202225f9888a89ed5c62298b019129" +dependencies = [ + "indexmap 2.2.3", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + [[package]] name = "sha-1" version = "0.10.0" @@ -5115,15 +5052,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - [[package]] name = "sha1" version = "0.10.5" @@ -5135,12 +5063,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "sha2" version = "0.10.8" @@ -5160,7 +5082,7 @@ checksum = "970538704756fd0bb4ec8cb89f80674afb661e7c0fe716f9ba5be57717742300" dependencies = [ "const_format", "is_debug", - "time 0.3.30", + "time", "tzdb", ] @@ -5175,23 +5097,14 @@ dependencies = [ [[package]] name = "shared-buffer" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cf61602ee61e2f83dd016b3e6387245291cf728ea071c378b35088125b4d995" +checksum = "f6c99835bad52957e7aa241d3975ed17c1e5f8c92026377d117a606f36b84b16" dependencies = [ "bytes", "memmap2 0.6.2", ] -[[package]] -name = "shellexpand" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" -dependencies = [ - "dirs", -] - [[package]] name = "shlex" version = "1.2.0" @@ -5215,7 +5128,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" dependencies = [ "libc", - "mio 0.8.8", + "mio", "signal-hook", ] @@ -5281,9 +5194,9 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "smallvec" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" dependencies = [ "serde", ] @@ -5312,7 +5225,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5382,16 +5295,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "psm", - "winapi 0.3.9", -] - -[[package]] -name = "standback" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" -dependencies = [ - "version_check", + "winapi", ] [[package]] @@ -5433,55 +5337,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", -] - -[[package]] -name = "stdweb-derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_derive", - "syn 1.0.109", -] - -[[package]] -name = "stdweb-internal-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" -dependencies = [ - "base-x", - "proc-macro2", - "quote", - "serde", - "serde_derive", - "serde_json", - "sha1 0.6.1", - "syn 1.0.109", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - [[package]] name = "string_cache" version = "0.8.7" @@ -5534,9 +5389,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "styled_components" -version = "0.96.3" +version = "0.96.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a0db141a50acf297a815bcd1fe9d958ef56c19aeb36bd12182a7e72567ee499" +checksum = "b88be314a64500e2931dafab22e915dea4365fef357d04e26d6be4105b0a809c" dependencies = [ "Inflector", "once_cell", @@ -5552,9 +5407,9 @@ dependencies = [ [[package]] name = "styled_jsx" -version = "0.73.4" +version = "0.73.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d0bbff046c61205f33bb18b782cb8ca69483d07ca980a476cab2042b816250" +checksum = "633be6a8f8ea8007a2b1fbe80c220193a9a9f603a8023c43f8987864081770f3" dependencies = [ "anyhow", "lightningcss", @@ -5613,15 +5468,15 @@ dependencies = [ [[package]] name = "swc" -version = "0.272.6" +version = "0.273.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267f891db67d4627443f038918e124937709bff5a98be29376441d79452d6af" +checksum = "e9ed398f8ab7a1acf17dec3d795df7ce23738326a871ab4785818bb8df1cc26b" dependencies = [ "anyhow", "base64 0.21.4", "dashmap", "either", - "indexmap 2.0.0", + "indexmap 2.2.3", "jsonc-parser", "lru", "napi", @@ -5679,14 +5534,14 @@ dependencies = [ [[package]] name = "swc_bundler" -version = "0.224.7" +version = "0.225.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5f4fd3f81083ae5a157fa7263dda2ec1b04a972e7da4862a8235e24267ee9ea" +checksum = "26491762e84ae1d0a2e179fe48066072834777a1b12e8e88a7f07c8f92cc0188" dependencies = [ "anyhow", "crc", "dashmap", - "indexmap 2.0.0", + "indexmap 2.2.3", "is-macro", "once_cell", "parking_lot", @@ -5725,9 +5580,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.33.15" +version = "0.33.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3792c10fa5d3e93a705b31f13fdea4a6e68c3c20d4351e84ed1741b7864399cd" +checksum = "095c158fe55b36faeebb4274692643a6d7cdc5b7902e1d5968ddbe52b7de1d1c" dependencies = [ "ahash 0.8.6", "anyhow", @@ -5758,9 +5613,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "0.6.5" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cc48094639d199f8c915b96e52b343aee82cf57f5c628431d2ffe7614daf9b" +checksum = "eebbfcc08363d11cae791e25f504342be79ca8e16bd807a85c71b0a5d97c8c7c" dependencies = [ "anyhow", "base64 0.21.4", @@ -5783,12 +5638,12 @@ dependencies = [ [[package]] name = "swc_config" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c29e3b76a63111ef318f161bc413dfc093f21da1afca9ba5cdd6442b7069d65b" +checksum = "ce837c5eae1cb200a310940de989fd9b3d12ed62d7752bc69b39ef8aa775ec04" dependencies = [ "anyhow", - "indexmap 2.0.0", + "indexmap 2.2.3", "serde", "serde_json", "sourcemap", @@ -5810,9 +5665,9 @@ dependencies = [ [[package]] name = "swc_core" -version = "0.89.6" +version = "0.90.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d3b3ef135a76e7476cfd0af40eacad54e3a743f446a79eba60507bb72a9d34" +checksum = "659de9837eef174a50130e3253bc0711cdbad980d9e941352c45075f3d4caf16" dependencies = [ "binding_macros", "swc", @@ -5851,9 +5706,9 @@ dependencies = [ [[package]] name = "swc_css_ast" -version = "0.140.16" +version = "0.140.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d2251abcf11f599746478404886cbc50479130b7e0da378f15d8b8f0a0d56ab" +checksum = "9b76c897da44202c51ab07f7252e58f3a052e9452f0b1885328e301da708cce2" dependencies = [ "is-macro", "string_enum", @@ -5863,9 +5718,9 @@ dependencies = [ [[package]] name = "swc_css_codegen" -version = "0.151.25" +version = "0.151.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a1b6a92955f14f325e856146e624124d722e6ccb4864e607419609b4ae25347" +checksum = "66c8b7934005032083fd2bccb6331011fd5cb603109a60084a940dd183381e25" dependencies = [ "auto_impl", "bitflags 2.4.0", @@ -5892,9 +5747,9 @@ dependencies = [ [[package]] name = "swc_css_compat" -version = "0.27.26" +version = "0.27.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfc8848fc3a730aebaecf26ccfa16a659c253700570d3f66ffc4f83f77f5350" +checksum = "acc684e2bb086383e96708147cfa8c5145356cf391e5722a34de409d7a2f300e" dependencies = [ "bitflags 2.4.0", "once_cell", @@ -5909,9 +5764,9 @@ dependencies = [ [[package]] name = "swc_css_minifier" -version = "0.116.26" +version = "0.116.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9809f65a7389829c2cafb9f9b9f02fc8a06347f8fcb68cceb7665beba5eb7e11" +checksum = "74888e8f156a087c2aa81e8542d30b5301ea025a1a99e1706e1a8b7f68b9282f" dependencies = [ "serde", "swc_atoms", @@ -5923,9 +5778,9 @@ dependencies = [ [[package]] name = "swc_css_modules" -version = "0.29.28" +version = "0.29.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7882efb7a6a12d0872edd1dfd9397d8f3ba3ba9392413ff385a9b3196035b205" +checksum = "2db84a27aca6bbacef6f61971cd175f6ca42f98f32c70494080fb6d8f962be99" dependencies = [ "rustc-hash", "serde", @@ -5939,9 +5794,9 @@ dependencies = [ [[package]] name = "swc_css_parser" -version = "0.150.24" +version = "0.150.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c370f7a814bc9cd4553cb686373d4a4931d308d2aec05684b9f5ed8662c9479" +checksum = "8749e4b8095a62cd3b92b8a1f134e6223663fa206d9d6acdad1bd37590a96f4c" dependencies = [ "lexical", "serde", @@ -5952,9 +5807,9 @@ dependencies = [ [[package]] name = "swc_css_prefixer" -version = "0.153.28" +version = "0.153.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8eb7b5aee50481d81b93a4ef2eee4985d6c6589f7f2cc78d2f2ff5c44a080a1" +checksum = "fbc040a489255446c6cfbb506677f0ceee0b8241a6c2a6f0eaf6b460c8d19b8d" dependencies = [ "once_cell", "preset_env_base", @@ -5969,9 +5824,9 @@ dependencies = [ [[package]] name = "swc_css_utils" -version = "0.137.16" +version = "0.137.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b71af680ab24a76c54e0cbd9ce99f2d688fa3d7c847220b331e095820a63510" +checksum = "5b3aba20d236330bc9947a030c127417771696457698197eefc5437949ce5455" dependencies = [ "once_cell", "serde", @@ -5984,9 +5839,9 @@ dependencies = [ [[package]] name = "swc_css_visit" -version = "0.139.16" +version = "0.139.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68d6996acce5884e9c9c3b954f54929140068692a006108bfe75a208dc45e0a" +checksum = "0601f86127d76307bdeb763626feea14c355d4ac52b2e43ccb0af8654c203ba5" dependencies = [ "serde", "swc_atoms", @@ -5997,9 +5852,9 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "0.111.1" +version = "0.112.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12b4d0f3b31d293dac16fc13a50f8a282a3bdb658f2a000ffe09b1b638f45c9" +checksum = "852a48a24a2533de88298c6b25355bc68fdee31ac21cb4fb8939b7001715353c" dependencies = [ "bitflags 2.4.0", "bytecheck", @@ -6017,9 +5872,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.147.2" +version = "0.148.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d585ce1ac775bd454058c76db662807ff39fdac56696158482dc0e5d95b7ca0c" +checksum = "d79df3f8c5ed028fce5dc24acb83002c0854f8b9d7e893292aeee394a6b9eaf4" dependencies = [ "memchr", "num-bigint", @@ -6048,9 +5903,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_bugfixes" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b916b9fa1410f907cb9c3120d9ddefe1e94f5365ff207cbbb260fad9037038" +checksum = "39c4b1f0a45fb1a560837afadbe77b547f5b1ca0f62ff52f7ca0d29ad22cb48b" dependencies = [ "swc_atoms", "swc_common", @@ -6065,9 +5920,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_common" -version = "0.3.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5029cf18d05b77221984df0fce21c81e31d36d4ae360f2df94a7cf8817e7528e" +checksum = "55c0734e14443f2d5dfa0f933d4a7ff787a327d38b7cb4f10d4a7ee1fc8862bd" dependencies = [ "swc_common", "swc_ecma_ast", @@ -6078,12 +5933,12 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2015" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6cdbcd73b42e20ad33a9df635ef5fbcf5a24d775790e246ec327cb5ff60227" +checksum = "320036897503534294155cfd7d47bdb583b06dbee95e71ff1d1ad6eef6be5442" dependencies = [ "arrayvec", - "indexmap 2.0.0", + "indexmap 2.2.3", "is-macro", "serde", "serde_derive", @@ -6104,9 +5959,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2016" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6db2e972fc617f2bbfbdf55c4f3e11e20855957253f2096973b4e4061ae97fe" +checksum = "9c0108162d1ab43f33d29faf93760efbda00d9cc96dd654f7f220662ca6d0871" dependencies = [ "swc_atoms", "swc_common", @@ -6121,9 +5976,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2017" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b12acf9671a08d8c89c9abf28c140c00fefe1d4023ba33171e61511e39da763" +checksum = "814460bff11f152184f794ac84309334ccfcad92404c5235412a88027e000c3f" dependencies = [ "serde", "swc_atoms", @@ -6139,9 +5994,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2018" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8287e7473bc0aa3b73ccc211ec640a015f5cc6e4c5ebfff23ada5181861ebf2c" +checksum = "102f94b4677bf34b0890b03a13c59e67c18122d831d4e992c1111ccf48171aab" dependencies = [ "serde", "swc_atoms", @@ -6158,9 +6013,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2019" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ac21edb2916c4d1334dee6223b8c0b858b0368bc40616e301b9dda9665ad5ea" +checksum = "3ac4656b17a8d799620fb0cff099a10cf5d91b1853fc587f8d491e596b995a7a" dependencies = [ "swc_atoms", "swc_common", @@ -6174,9 +6029,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2020" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c002579929769624e6003912d34815343a9c2db4171fc248fbb5c5c2cf179" +checksum = "a30694e7afcfe2fa8feeab04b85003f230b3b5fe605934092d1423f3df0cb319" dependencies = [ "serde", "swc_atoms", @@ -6192,9 +6047,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2021" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21957526c2191ddfe1af17360129d2c900f5a26614b0e479706926d82c2db827" +checksum = "172278873dc92590992024fd2efb6acdb167fe880d01d0d045ef25b548eaa6f5" dependencies = [ "swc_atoms", "swc_common", @@ -6208,9 +6063,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2022" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c882fee687bceff1f2fcc5acca2f8180aad303d31652650ba2c01da501ecc336" +checksum = "43758b14ccc3bcef05b3ebef65853a85ea94b41b52033776b49dd36cf060b72c" dependencies = [ "swc_atoms", "swc_common", @@ -6227,9 +6082,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es3" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9767a20448d7c8ffa4668c0883842f2dc535faeb7e41ea4004896e29a74194" +checksum = "400db8f07b31399f89f6bc306721fbb4a8b1a72a8eb61b2f888b4df2fe2d7b4c" dependencies = [ "swc_common", "swc_ecma_ast", @@ -6242,9 +6097,9 @@ dependencies = [ [[package]] name = "swc_ecma_ext_transforms" -version = "0.112.2" +version = "0.113.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b973ebc8dd2a6e3a351b41da03249f9ba24b61cb0280ebdaf68acf78ad3e9535" +checksum = "a1cca0a61b7d5a9df652eeef387fc551a188fd5d493720048dbbf87ff6bb6a75" dependencies = [ "phf 0.11.2", "swc_atoms", @@ -6256,9 +6111,9 @@ dependencies = [ [[package]] name = "swc_ecma_lints" -version = "0.91.3" +version = "0.92.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb591a1cfa9c40c4437d9b2c1e8fc90678de2b430c0ab5c3327f4b04b53b7bca" +checksum = "b1c5b6ee742fe3f9b2eff18173e7322757fec6008ba510bb58f9d31d1c3bdb13" dependencies = [ "auto_impl", "dashmap", @@ -6276,9 +6131,9 @@ dependencies = [ [[package]] name = "swc_ecma_loader" -version = "0.45.17" +version = "0.45.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452dca827603c1ca73d26549f21af3e4d23241a5bae62ba3ba2ec8d2a8775b3" +checksum = "7c16051bce5421992a1b49350735bf4d110f761fd68ae7098af17a64ad639b8d" dependencies = [ "anyhow", "dashmap", @@ -6286,7 +6141,7 @@ dependencies = [ "normpath", "once_cell", "parking_lot", - "path-clean", + "path-clean 0.1.0", "pathdiff", "serde", "serde_json", @@ -6298,12 +6153,12 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "0.191.7" +version = "0.192.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "609547ba63c64b609984f2089a436e2f94488c3751f8496c42940ce4992efd4b" +checksum = "bacdf661c989479adb95505f8c3898a243fa414d786c0b0bcb6531175e5704f8" dependencies = [ "arrayvec", - "indexmap 2.0.0", + "indexmap 2.2.3", "num-bigint", "num_cpus", "once_cell", @@ -6332,9 +6187,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.142.1" +version = "0.143.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3eedda441af51ca25caebb88837649a40e2a39b763344a53cfedd869740c71" +checksum = "90ff55811ed5de14b05e9a2979bae2bce3c807582f559b4325948463265307d9" dependencies = [ "either", "new_debug_unreachable", @@ -6354,13 +6209,13 @@ dependencies = [ [[package]] name = "swc_ecma_preset_env" -version = "0.205.7" +version = "0.206.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9dd1ed14585df2e8e3f0bfbb8635dee2f1997d7defb7e8a28da3970bd51115" +checksum = "0cb7bf0b7f71571961b4b11825169121b5047b24824616e4ed95e5b8119c457e" dependencies = [ "anyhow", "dashmap", - "indexmap 2.0.0", + "indexmap 2.2.3", "once_cell", "preset_env_base", "rustc-hash", @@ -6379,9 +6234,9 @@ dependencies = [ [[package]] name = "swc_ecma_quote_macros" -version = "0.53.2" +version = "0.54.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24a9f5024cc5dd803acb14e22474c889c982ca19f306bc574704dafc4c1d6fb" +checksum = "6f7dbd0bc30a25ccd16d7b4cdacefa599c81f6372b097ef4684c34c1c1552f0a" dependencies = [ "anyhow", "proc-macro2", @@ -6396,9 +6251,9 @@ dependencies = [ [[package]] name = "swc_ecma_testing" -version = "0.22.17" +version = "0.22.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b73fd79980ad3182437a62dc0413bcd00e6157a7fcf5a64a86fa264ec6672ba" +checksum = "b41fb62ef85a23515889fc99eac156f9afc4eb10c8eaadf70ffee53982b2ab82" dependencies = [ "anyhow", "hex", @@ -6409,9 +6264,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "0.228.7" +version = "0.229.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0076f239ab0c220c792a0cbafa3140ae2e0b58acf1886f7008d59d68de5b78ef" +checksum = "9a35a7b4948bdfa6d0e08e2bbcf6ce1e9849122a2369083b4600bd539a650956" dependencies = [ "swc_atoms", "swc_common", @@ -6429,13 +6284,13 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.136.3" +version = "0.137.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a491da2eaab98914d1f85bd81a35db6432ad0577ae64746bb9e5594cb0b79b47" +checksum = "bfd47dd9ccb73a1f5d8d7eff9518554b752b1733b56503af090e78859abb42dd" dependencies = [ "better_scoped_tls", "bitflags 2.4.0", - "indexmap 2.0.0", + "indexmap 2.2.3", "once_cell", "phf 0.11.2", "rayon", @@ -6453,9 +6308,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.125.3" +version = "0.126.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1022bd4545eb9ae2cb9666a3c2cf84c1cfc0a38ec14fb61bbabf660baf60242f" +checksum = "8ecb31417e0d415d7f0ff026f1e7c909427e386b7d0af9a2a78678507e4d9d79" dependencies = [ "swc_atoms", "swc_common", @@ -6467,12 +6322,12 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_compat" -version = "0.162.4" +version = "0.163.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de609d44d2e0dfec1968cdf3fed6faaa9e6e1b15191a25b7d70109e32a0db1c0" +checksum = "65b871359cbbdcd182d321a8905b0fc9839f2fcdd1fdde5dcd111fae3d85b365" dependencies = [ "arrayvec", - "indexmap 2.0.0", + "indexmap 2.2.3", "is-macro", "num-bigint", "rayon", @@ -6516,16 +6371,16 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_module" -version = "0.179.7" +version = "0.180.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844dc5b311b309d40c56c66edab4874c42e1e03b1b6f5c3284539a6a4e428bd4" +checksum = "fc3b29a2eafaff07a91be08b244bb0c2991e0579e4e7f4f40cdb9b4f828430ab" dependencies = [ "Inflector", "anyhow", "bitflags 2.4.0", - "indexmap 2.0.0", + "indexmap 2.2.3", "is-macro", - "path-clean", + "path-clean 0.1.0", "pathdiff", "regex", "serde", @@ -6543,12 +6398,12 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "0.197.7" +version = "0.198.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445efca981669a08cc8bab2bd9d0420eb688e7086d6a4babc6b670473877a2c2" +checksum = "3920268ac8972b494067d0b7c088964b21d08f5d1f58d7151bd1eb7054a137b0" dependencies = [ "dashmap", - "indexmap 2.0.0", + "indexmap 2.2.3", "once_cell", "petgraph", "rayon", @@ -6568,9 +6423,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_proposal" -version = "0.170.7" +version = "0.171.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e2ffc3af6d736769ab1fff18b3f26c67c66bf0d78c1f15cbcd8575d698b16e6" +checksum = "448c40c2a2b224cb5101cc6cdee81837c281a34f2a2aa6dd18d6d5cd8d492e60" dependencies = [ "either", "rustc-hash", @@ -6588,13 +6443,13 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.182.6" +version = "0.183.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46493a5f10abf9da23e609a7cbe961f99223d2b640d80caa39ce7ede6d75eb3a" +checksum = "ee2394dc3abceada246feeb709b8c4d23392973f49a24fcc59b2ee21737cb6c8" dependencies = [ "base64 0.21.4", "dashmap", - "indexmap 2.0.0", + "indexmap 2.2.3", "once_cell", "rayon", "serde", @@ -6613,9 +6468,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_testing" -version = "0.139.4" +version = "0.140.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72b2f0668158820a71d3fda7d0c644db69dda5206d6b833c2b865a87c3b55af" +checksum = "fbdef550cbff972c2fdad5d7f82e55127d47c0df54295596eb2c80f9cf2685ff" dependencies = [ "ansi_term", "anyhow", @@ -6639,9 +6494,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.187.7" +version = "0.188.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa929a7518e22fba9859e0cd26563cde6bda8fe5a055fffaa26f3696e934ad34" +checksum = "0cff231437173e041e5a3be9b8c782fd297ffcb53ed16d805f853e4a68315c45" dependencies = [ "ryu-js", "serde", @@ -6656,11 +6511,11 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "0.22.2" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9311eb3a2c41c4134b15a69469c096ab715ccdf2eed81f60c91d252514f1bb7f" +checksum = "1ae28fff745a9e581ede62de40f4452064426f137f53192691367439fff48a98" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.3", "rustc-hash", "swc_atoms", "swc_common", @@ -6673,11 +6528,11 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.126.2" +version = "0.127.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f6edc4064cd932c6d267c05f0b161e6aaa4df4f900d5e1db8c92eda8edcc410" +checksum = "4cd185161161dfc65ee0d6f3044c901b766c3abb4efcd0b35c9e76c833724896" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.3", "num_cpus", "once_cell", "rayon", @@ -6692,9 +6547,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.97.1" +version = "0.98.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ecefeec816318f1d449b4bac2e28a4243a167cc16620e15c3c1f2d91085770" +checksum = "cdb71511a816c7c84ddc96e6939389be261caf20858486a5e76948551f110e1f" dependencies = [ "num-bigint", "serde", @@ -6707,9 +6562,9 @@ dependencies = [ [[package]] name = "swc_emotion" -version = "0.72.2" +version = "0.72.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b759380eee487f70b74126ed51fae2273fbfa27fb51165a31a61a5ee3890a20" +checksum = "976cfc9fbfcd2fdeb85b2b7ca10abc789ef17f352d25f9547668cad440319047" dependencies = [ "base64 0.13.1", "byteorder", @@ -6742,9 +6597,9 @@ dependencies = [ [[package]] name = "swc_error_reporters" -version = "0.17.14" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be42e786ee9bda3f72f7d7de791e1d7b49ab7f86ed54fdc5808681ae04406080" +checksum = "87dd7ff934a74cee8f2328c4fdd22113a36358ff390845f565bef1e1cf3b0f90" dependencies = [ "anyhow", "miette", @@ -6755,11 +6610,11 @@ dependencies = [ [[package]] name = "swc_fast_graph" -version = "0.21.15" +version = "0.21.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9c9e567014e157af520f74b1a5bc151fece681136754b80b3fec6b908e26a0" +checksum = "ffd32eda2dd2c725f8d4448d0013c3b5466118e4ff5c30aff2c04f6750f7238b" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.3", "petgraph", "rustc-hash", "swc_common", @@ -6767,9 +6622,9 @@ dependencies = [ [[package]] name = "swc_graph_analyzer" -version = "0.22.17" +version = "0.22.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b95d7a2b5712b1bcd4ccc4757e9028026a775d27ae07aec491bb371bd73b2c0" +checksum = "52ae1172960aa3b0cdbe94a1d5edf3efa9f1199cbd8384f48dedd0c5bdb5d6bd" dependencies = [ "auto_impl", "petgraph", @@ -6791,9 +6646,9 @@ dependencies = [ [[package]] name = "swc_node_comments" -version = "0.20.14" +version = "0.20.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8058148241150b482cbe8f690f1005663994dc22c9f8f9a651c7aeca9263f35" +checksum = "ada6f7dfc9ab0b1b8030b9ae2b132438604a2f6eb2f36f57a1fa3ac958795991" dependencies = [ "dashmap", "swc_atoms", @@ -6827,9 +6682,9 @@ dependencies = [ [[package]] name = "swc_plugin_proxy" -version = "0.40.1" +version = "0.41.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64191ea46b8156c495b77fce87759003d520109535d2fd524fe6d9e4de6238b" +checksum = "e0481ceefd2f896c792692b18043e45b68614ae0266c65d4addbcf7f6c8090d6" dependencies = [ "better_scoped_tls", "rkyv", @@ -6841,9 +6696,9 @@ dependencies = [ [[package]] name = "swc_plugin_runner" -version = "0.105.3" +version = "0.106.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed508e46df4dff6ff79f2ee70f000de143c2bc3f366cd45f35977daa2c843786" +checksum = "3c8d6c8a1b7708f814c743b591c0244e4a39d69bf21efe24f59f7d898e5a5feb" dependencies = [ "anyhow", "enumset", @@ -6865,9 +6720,9 @@ dependencies = [ [[package]] name = "swc_relay" -version = "0.44.2" +version = "0.44.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8be7da204b399ef338858f5d2b690d3bd6335e4a1aa703fe32a76c8802b4608" +checksum = "5a029c55b66fa6a0de9d1e7b5d18862542d2257a43406c0b0a6e5bece10219bd" dependencies = [ "once_cell", "regex", @@ -6883,9 +6738,9 @@ dependencies = [ [[package]] name = "swc_timer" -version = "0.21.16" +version = "0.21.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d15ec9bca22690ba9a373af069e366c9f43e48dd4d328aea6ba138f93ff0276" +checksum = "1247df8abb51666eede165577d93c1476b6aca7ab7bf58e0fff6015fad6fb1b5" dependencies = [ "tracing", ] @@ -6982,6 +6837,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + [[package]] name = "target-lexicon" version = "0.12.6" @@ -6997,7 +6863,7 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "redox_syscall 0.3.5", - "rustix 0.38.3", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -7008,7 +6874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7027,7 +6893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7051,9 +6917,9 @@ dependencies = [ [[package]] name = "testing" -version = "0.35.16" +version = "0.35.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42599f638bd2b48c2892cf330862aca433c86286ae776d75c5074ba3b4935ed8" +checksum = "d90b0f069d03bcee35190a27083f968d93ca6359dcea51ba274a583dc2a3ec56" dependencies = [ "ansi_term", "cargo_metadata", @@ -7142,21 +7008,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "time" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" -dependencies = [ - "const_fn", - "libc", - "standback", - "stdweb", - "time-macros 0.1.1", - "version_check", - "winapi 0.3.9", -] - [[package]] name = "time" version = "0.3.30" @@ -7170,7 +7021,7 @@ dependencies = [ "powerfmt", "serde", "time-core", - "time-macros 0.2.15", + "time-macros", ] [[package]] @@ -7179,16 +7030,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" -[[package]] -name = "time-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" -dependencies = [ - "proc-macro-hack", - "time-macros-impl", -] - [[package]] name = "time-macros" version = "0.2.15" @@ -7198,19 +7039,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "time-macros-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "standback", - "syn 1.0.109", -] - [[package]] name = "tinyvec" version = "1.6.0" @@ -7235,7 +7063,7 @@ dependencies = [ "backtrace", "bytes", "libc", - "mio 0.8.8", + "mio", "num_cpus", "parking_lot", "pin-project-lite", @@ -7343,7 +7171,19 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -7361,7 +7201,20 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.3", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.2.3", "serde", "serde_spanned", "toml_datetime", @@ -7548,7 +7401,7 @@ dependencies = [ "httparse", "log", "rand", - "sha1 0.10.5", + "sha1", "thiserror", "url", "utf-8", @@ -7557,7 +7410,7 @@ dependencies = [ [[package]] name = "turbo-tasks" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-trait", @@ -7589,7 +7442,7 @@ dependencies = [ [[package]] name = "turbo-tasks-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "cargo-lock", @@ -7601,7 +7454,7 @@ dependencies = [ [[package]] name = "turbo-tasks-bytes" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "bytes", @@ -7616,7 +7469,7 @@ dependencies = [ [[package]] name = "turbo-tasks-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "dotenvs", @@ -7630,7 +7483,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fetch" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7647,7 +7500,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fs" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "auto-hash-map", @@ -7662,7 +7515,7 @@ dependencies = [ "indexmap 1.9.3", "jsonc-parser", "mime", - "notify", + "notify-debouncer-full", "parking_lot", "serde", "serde_json", @@ -7678,7 +7531,7 @@ dependencies = [ [[package]] name = "turbo-tasks-hash" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "base16", "hex", @@ -7690,7 +7543,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -7704,7 +7557,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros-shared" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "proc-macro2", "quote", @@ -7714,7 +7567,7 @@ dependencies = [ [[package]] name = "turbo-tasks-malloc" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "mimalloc", ] @@ -7722,7 +7575,7 @@ dependencies = [ [[package]] name = "turbo-tasks-memory" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "auto-hash-map", @@ -7747,7 +7600,7 @@ dependencies = [ [[package]] name = "turbopack" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-recursion", @@ -7779,7 +7632,7 @@ dependencies = [ [[package]] name = "turbopack-binding" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "auto-hash-map", "mdxjs", @@ -7820,7 +7673,7 @@ dependencies = [ [[package]] name = "turbopack-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7845,7 +7698,7 @@ dependencies = [ [[package]] name = "turbopack-cli-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "clap 4.4.2", @@ -7863,7 +7716,7 @@ dependencies = [ [[package]] name = "turbopack-core" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-recursion", @@ -7894,7 +7747,7 @@ dependencies = [ [[package]] name = "turbopack-css" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-trait", @@ -7922,7 +7775,7 @@ dependencies = [ [[package]] name = "turbopack-dev" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7947,7 +7800,7 @@ dependencies = [ [[package]] name = "turbopack-dev-server" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-compression", @@ -7984,7 +7837,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-trait", @@ -8020,7 +7873,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-hmr-protocol" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "serde", "serde_json", @@ -8031,7 +7884,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-plugins" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-trait", @@ -8056,7 +7909,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-runtime" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "indoc", @@ -8073,7 +7926,7 @@ dependencies = [ [[package]] name = "turbopack-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -8089,7 +7942,7 @@ dependencies = [ [[package]] name = "turbopack-image" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "base64 0.21.4", @@ -8109,7 +7962,7 @@ dependencies = [ [[package]] name = "turbopack-json" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "serde", @@ -8124,7 +7977,7 @@ dependencies = [ [[package]] name = "turbopack-mdx" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "mdxjs", @@ -8139,7 +7992,7 @@ dependencies = [ [[package]] name = "turbopack-node" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "async-stream", @@ -8174,7 +8027,7 @@ dependencies = [ [[package]] name = "turbopack-static" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "serde", @@ -8190,7 +8043,7 @@ dependencies = [ [[package]] name = "turbopack-swc-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "swc_core", "turbo-tasks", @@ -8201,7 +8054,7 @@ dependencies = [ [[package]] name = "turbopack-trace-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "crossbeam-channel", @@ -8217,7 +8070,7 @@ dependencies = [ [[package]] name = "turbopack-wasm" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240209.2#d9639a4ad4f0d95de7aa71599c332cd06350b3f5" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240213.4#4025b02d9231f9fc5b25b669ac8ee8c6c00b4544" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -8359,6 +8212,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "unsafe-libyaml" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" + [[package]] name = "untrusted" version = "0.7.1" @@ -8444,7 +8303,7 @@ dependencies = [ "getset", "rustversion", "thiserror", - "time 0.3.30", + "time", ] [[package]] @@ -8471,9 +8330,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "virtual-fs" -version = "0.6.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcd74701f37aea30b90a83c90b92bc3850dedb9448836dbcc0960f993bda423b" +checksum = "49a16a7893a16a31ef442ce86691e7060a19691fb7739387624f3dd07ec4c04b" dependencies = [ "anyhow", "async-trait", @@ -8488,6 +8347,7 @@ dependencies = [ "libc", "pin-project-lite", "replace_with", + "shared-buffer", "slab", "thiserror", "tokio", @@ -8496,17 +8356,42 @@ dependencies = [ ] [[package]] -name = "virtual-net" +name = "virtual-mio" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfac1d64ecfe2d8b295530da2a14af9eb9acccd91d76f3347dee96d745c83661" +checksum = "b9f38a379f14296f9fb93eda42ece4d57b568af417569102c3dcfeb88ab4800f" dependencies = [ "async-trait", "bytes", + "derivative", + "futures", + "mio", + "serde", + "socket2 0.4.9", "thiserror", "tracing", ] +[[package]] +name = "virtual-net" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b66781480898ee7ee62a2bbe2955ce1bb5a90fdc8bfedbdabe3537b177fa3e" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.4", + "bincode", + "bytes", + "derivative", + "futures-util", + "pin-project-lite", + "serde", + "thiserror", + "tracing", + "virtual-mio", +] + [[package]] name = "vlq" version = "0.5.1" @@ -8579,9 +8464,9 @@ dependencies = [ [[package]] name = "wai-bindgen-wasmer" -version = "0.9.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffd9a8124a3e4e664cb79864fd1eaf24521e15bf8d67509af1bc45e8b510475" +checksum = "00f4a7cb5421959864b139870a7ebba26eafc9b46648feda9ac143528e9a8769" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -8660,7 +8545,7 @@ dependencies = [ "next-custom-transforms", "once_cell", "parking_lot_core 0.8.0", - "path-clean", + "path-clean 0.1.0", "serde", "serde-wasm-bindgen", "serde_json", @@ -8673,9 +8558,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -8683,47 +8568,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.32", "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-downcast" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dac026d43bcca6e7ce1c0956ba68f59edf6403e8e930a5d891be72c31a44340" -dependencies = [ - "js-sys", - "once_cell", - "wasm-bindgen", - "wasm-bindgen-downcast-macros", -] - -[[package]] -name = "wasm-bindgen-downcast-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5020cfa87c7cecefef118055d44e3c1fc122c7ec25701d528ee458a0b45f38f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.34" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -8733,9 +8595,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8743,37 +8605,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.32", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "wasm-encoder" -version = "0.31.1" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" +checksum = "1ba64e81215916eaeb48fee292f29401d69235d62d8b8fd92a7b2844ec5ae5f7" dependencies = [ "leb128", ] [[package]] name = "wasmer" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea790bcdfb4e6e9d1e5ddf75b4699aac62b078fcc9f27f44e1748165ceea67bf" +checksum = "5467c7a23f9be04d5691590bea509dbea27e5ba5810d0020bef908456a495f33" dependencies = [ "bytes", "cfg-if 1.0.0", @@ -8784,10 +8646,10 @@ dependencies = [ "rustc-demangle", "serde", "serde-wasm-bindgen", + "shared-buffer", "target-lexicon", "thiserror", "wasm-bindgen", - "wasm-bindgen-downcast", "wasmer-compiler", "wasmer-compiler-cranelift", "wasmer-derive", @@ -8796,14 +8658,14 @@ dependencies = [ "wasmparser 0.83.0", "wasmparser 0.95.0", "wat", - "winapi 0.3.9", + "winapi", ] [[package]] name = "wasmer-cache" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c968d5f47c4eef4597a7315aa9c6b633c285b5c52070722bac58fab75b298f" +checksum = "c1613ff5e7db7645eab2f003411b1e7a12dcf0ff4677f6e7712ba74ebf40b276" dependencies = [ "blake3", "hex", @@ -8813,11 +8675,12 @@ dependencies = [ [[package]] name = "wasmer-compiler" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f093937725e242e5529fed27e08ff836c011a9ecc22e6819fb818c2ac6ff5f88" +checksum = "510ad01a668d774f3a103a7c219bbc0970be93e8f1b27e2fdb48d1f4ccd1deff" dependencies = [ "backtrace", + "bytes", "cfg-if 1.0.0", "enum-iterator 0.7.0", "enumset", @@ -8826,19 +8689,22 @@ dependencies = [ "memmap2 0.5.10", "more-asserts", "region", + "rkyv", + "self_cell", + "shared-buffer", "smallvec", "thiserror", "wasmer-types", "wasmer-vm", "wasmparser 0.95.0", - "winapi 0.3.9", + "winapi", ] [[package]] name = "wasmer-compiler-cranelift" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b27b1670d27158789ebe14e4da3902c72132174884a1c6a3533ce4fd9dd83db" +checksum = "54bf93078990d83960d798de3c5935bddaba771fc2fefb9ed6bab9c0bbdea5c1" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -8855,9 +8721,9 @@ dependencies = [ [[package]] name = "wasmer-derive" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ae8286cba2acb10065a4dac129c7c7f7bcd24acd6538555d96616eea16bc27" +checksum = "1b374fd34d97b1c091d8675f9bc472df52dc6787d139d3762d42c7dc84813a9b" dependencies = [ "proc-macro-error", "proc-macro2", @@ -8865,11 +8731,29 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "wasmer-toml" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d21472954ee9443235ca32522b17fc8f0fe58e2174556266a0d9766db055cc52" +dependencies = [ + "anyhow", + "derive_builder", + "indexmap 2.2.3", + "semver 1.0.18", + "serde", + "serde_cbor", + "serde_json", + "serde_yaml 0.9.29", + "thiserror", + "toml 0.8.2", +] + [[package]] name = "wasmer-types" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918d2f0bb5eaa95a80c06be33f21dee92f40f12cd0982da34490d121a99d244b" +checksum = "0caf1c87937b52aba8e9f920a278e1beda282f7439612c0b48f51a58e7a87bab" dependencies = [ "bytecheck", "enum-iterator 0.7.0", @@ -8884,14 +8768,15 @@ dependencies = [ [[package]] name = "wasmer-vm" -version = "4.0.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e000c2cbd4f9805427af5f3b3446574caf89ab3a1e66c2f3579fbde22b072b" +checksum = "58315c25492bc72a33f47a7d7fb0869a0106fc0164ec051e349a9e1eddba9a01" dependencies = [ "backtrace", "cc", "cfg-if 1.0.0", "corosensei", + "crossbeam-queue", "dashmap", "derivative", "enum-iterator 0.7.0", @@ -8900,20 +8785,20 @@ dependencies = [ "lazy_static", "libc", "mach", - "memoffset 0.8.0", + "memoffset", "more-asserts", "region", "scopeguard", "thiserror", "wasmer-types", - "winapi 0.3.9", + "winapi", ] [[package]] name = "wasmer-wasix" -version = "0.9.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcd089dcd440141b2edf300ddd61c2d67d052baac8d29256c901f607d44d459" +checksum = "a9697b8ffc3a37c193648919018848171de0d75e6e955377893d258431b19d7a" dependencies = [ "anyhow", "async-trait", @@ -8929,6 +8814,7 @@ dependencies = [ "heapless", "hex", "http", + "js-sys", "lazy_static", "libc", "linked_hash_set", @@ -8936,14 +8822,14 @@ dependencies = [ "petgraph", "pin-project", "rand", + "rusty_pool", "semver 1.0.18", "serde", "serde_cbor", "serde_derive", "serde_json", - "serde_yaml", + "serde_yaml 0.8.26", "sha2", - "shellexpand", "tempfile", "term_size", "termios", @@ -8953,23 +8839,27 @@ dependencies = [ "url", "urlencoding", "virtual-fs", + "virtual-mio", "virtual-net", "wai-bindgen-wasmer", "waker-fn", "wasm-bindgen", + "wasm-bindgen-futures", "wasmer", "wasmer-types", "wasmer-wasix-types", + "web-sys", "webc", "weezl", - "winapi 0.3.9", + "winapi", + "xxhash-rust", ] [[package]] name = "wasmer-wasix-types" -version = "0.9.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4a519e8f0b878bb4cd2b1bc733235aa6c331b7b4857dd6e0ac3c9a36d942ae" +checksum = "65ca293eae6e3af6e4fd9fe1c8e096151d4f06cbb405ce5dd65edb779aba42d9" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -8977,7 +8867,8 @@ dependencies = [ "cfg-if 1.0.0", "num_enum", "serde", - "time 0.2.27", + "time", + "tracing", "wai-bindgen-gen-core", "wai-bindgen-gen-rust", "wai-bindgen-gen-rust-wasm", @@ -9010,15 +8901,15 @@ version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dfcdb72d96f01e6c85b6bf20102e7423bdbaad5c337301bab2bbf253d26413c" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.3", "semver 1.0.18", ] [[package]] name = "wast" -version = "62.0.1" +version = "64.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ae06f09dbe377b889fbd620ff8fa21e1d49d1d9d364983c0cdbf9870cb9f1f" +checksum = "a259b226fd6910225aa7baeba82f9d9933b6d00f2ce1b49b80fa4214328237cc" dependencies = [ "leb128", "memchr", @@ -9028,18 +8919,18 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.69" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842e15861d203fb4a96d314b0751cdeaf0f6f8b35e8d81d2953af2af5e44e637" +checksum = "53253d920ab413fca1c7dc2161d601c79b4fdf631d0ba51dd4343bf9b556c3f6" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" dependencies = [ "js-sys", "wasm-bindgen", @@ -9047,28 +8938,34 @@ dependencies = [ [[package]] name = "webc" -version = "5.0.4" +version = "5.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02ba1b6e7ad252e691a86d727aa422fbc5ed95e9bca4ec8547869e9b5779f8f3" +checksum = "973ca5a91b4fb3e4bb37cfebe03ef9364d0aff2765256abefdb7e79dc9188483" dependencies = [ "anyhow", "base64 0.21.4", "byteorder", "bytes", + "flate2", "indexmap 1.9.3", "leb128", "lexical-sort", "once_cell", - "path-clean", + "path-clean 1.0.1", "rand", + "semver 1.0.18", "serde", "serde_cbor", "serde_json", "sha2", "shared-buffer", + "tar", + "tempfile", "thiserror", + "toml 0.7.8", "url", "walkdir", + "wasmer-toml", ] [[package]] @@ -9116,12 +9013,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - [[package]] name = "winapi" version = "0.3.9" @@ -9132,12 +9023,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -9150,7 +9035,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -9214,6 +9099,15 @@ dependencies = [ "windows-targets 0.48.1", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -9244,6 +9138,21 @@ dependencies = [ "windows_x86_64_msvc 0.48.0", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -9256,6 +9165,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.33.0" @@ -9274,6 +9189,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.33.0" @@ -9292,6 +9213,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.33.0" @@ -9310,6 +9237,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.33.0" @@ -9328,6 +9261,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -9340,6 +9279,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.33.0" @@ -9358,6 +9303,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.15" @@ -9373,28 +9324,35 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "wyz" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "tap", ] [[package]] -name = "wyz" -version = "0.5.1" +name = "xattr" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ - "tap", + "libc", + "linux-raw-sys 0.4.13", + "rustix 0.38.31", ] +[[package]] +name = "xxhash-rust" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61" + [[package]] name = "y4m" version = "0.7.0" diff --git a/Cargo.toml b/Cargo.toml index 04ce9f9726974..71f975bc6be36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,18 +30,18 @@ next-core = { path = "packages/next-swc/crates/next-core" } next-custom-transforms = { path = "packages/next-swc/crates/next-custom-transforms" } # SWC crates -swc_core = { version = "0.89.6", features = [ +swc_core = { version = "0.90.7", features = [ "ecma_loader_lru", "ecma_loader_parking_lot", ] } -testing = { version = "0.35.16" } +testing = { version = "0.35.18" } # Turbo crates -turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240209.2" } +turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240213.4" } # [TODO]: need to refactor embed_directory! macro usages, as well as resolving turbo_tasks::function, macros.. -turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240209.2" } +turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240213.4" } # [TODO]: need to refactor embed_directory! macro usage in next-core -turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240209.2" } +turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240213.4" } # General Deps diff --git a/docs/01-getting-started/01-installation.mdx b/docs/01-getting-started/01-installation.mdx index d3ecae63b64ef..7d20232680772 100644 --- a/docs/01-getting-started/01-installation.mdx +++ b/docs/01-getting-started/01-installation.mdx @@ -36,6 +36,8 @@ What import alias would you like configured? @/* After the prompts, `create-next-app` will create a folder with your project name and install the required dependencies. +If you're new to Next.js, see the [project structure](/docs/getting-started/project-structure) docs for an overview of all the possible files and folders in your application. + > **Good to know**: > > - Next.js now ships with [TypeScript](/docs/app/building-your-application/configuring/typescript), [ESLint](/docs/app/building-your-application/configuring/eslint), and [Tailwind CSS](/docs/app/building-your-application/styling/tailwind-css) configuration by default. diff --git a/docs/01-getting-started/02-project-structure.mdx b/docs/01-getting-started/02-project-structure.mdx index 9796a4ad2c4f4..1b0c06c689507 100644 --- a/docs/01-getting-started/02-project-structure.mdx +++ b/docs/01-getting-started/02-project-structure.mdx @@ -4,10 +4,22 @@ nav_title: Project Structure description: A list of folders and files conventions in a Next.js project --- -This page provides an overview of the file and folder structure of a Next.js project. It covers top-level files and folders, configuration files, and routing conventions within the `app` and `pages` directories. +This page provides an overview of the project structure of a Next.js application. It covers top-level files and folders, configuration files, and routing conventions within the `app` and `pages` directories. + +Click the file and folder names to learn more about each convention. ## Top-level folders +Top-level folders are used to organize your application's code and static assets. + +Route segments to path segments + | | | | ------------------------------------------------------------------------ | ---------------------------------- | | [`app`](/docs/app/building-your-application/routing) | App Router | @@ -17,6 +29,8 @@ This page provides an overview of the file and folder structure of a Next.js pro ## Top-level files +Top-level files are used to configure your application, manage dependencies, run middleware, integrate monitoring tools, and define environment variables. + | | | | ------------------------------------------------------------------------------------------- | --------------------------------------- | | **Next.js** | | @@ -36,6 +50,8 @@ This page provides an overview of the file and folder structure of a Next.js pro ## `app` Routing Conventions +The following file conventions are used to define routes and handle metadata in the [`app` router](/docs/app). + ### Routing Files | | | | @@ -114,6 +130,8 @@ This page provides an overview of the file and folder structure of a Next.js pro ## `pages` Routing Conventions +The following file conventions are used to define routes in the [`pages` router](/docs/pages). + ### Special Files | | | | diff --git a/docs/02-app/01-building-your-application/01-routing/02-pages-and-layouts.mdx b/docs/02-app/01-building-your-application/01-routing/02-pages-and-layouts.mdx index 0fb33b5afbb84..11e1dec5591b1 100644 --- a/docs/02-app/01-building-your-application/01-routing/02-pages-and-layouts.mdx +++ b/docs/02-app/01-building-your-application/01-routing/02-pages-and-layouts.mdx @@ -5,13 +5,13 @@ description: Create your first page and shared layout with the App Router. > We recommend reading the [Routing Fundamentals](/docs/app/building-your-application/routing) and [Defining Routes](/docs/app/building-your-application/routing/defining-routes) pages before continuing. -The App Router inside Next.js 13 introduced new file conventions to easily create [pages](#pages), [shared layouts](#layouts), and [templates](#templates). This page will guide you through how to use these special files in your Next.js application. +The special files [layout.js](#layouts), [pages.js](#pages), and [template.js](#templates) allow you to create UI for a [route](/docs/app/building-your-application/routing/defining-routes#creating-routes). This page will guide you through how and when to use these special files. ## Pages -A page is UI that is **unique** to a route. You can define pages by exporting a component from a `page.js` file. Use nested folders to [define a route](/docs/app/building-your-application/routing/defining-routes) and a `page.js` file to make the route publicly accessible. +A page is UI that is **unique** to a route. You can define a page by default exporting a component from a `page.js` file. -Create your first page by adding a `page.js` file inside the `app` directory: +For example, to create your `index` page, add the `page.js` file inside the `app` directory: page.js special file **Good to know**: > +> - The `.js`, `.jsx`, or `.tsx` file extensions can be used for Pages. > - A page is always the [leaf](/docs/app/building-your-application/routing#terminology) of the [route subtree](/docs/app/building-your-application/routing#terminology). -> - `.js`, `.jsx`, or `.tsx` file extensions can be used for Pages. > - A `page.js` file is required to make a route segment publicly accessible. -> - Pages are [Server Components](/docs/app/building-your-application/rendering/server-components) by default but can be set to a [Client Component](/docs/app/building-your-application/rendering/client-components). +> - Pages are [Server Components](/docs/app/building-your-application/rendering/server-components) by default, but can be set to a [Client Component](/docs/app/building-your-application/rendering/client-components). > - Pages can fetch data. View the [Data Fetching](/docs/app/building-your-application/data-fetching) section for more information. ## Layouts -A layout is UI that is **shared** between multiple pages. On navigation, layouts preserve state, remain interactive, and do not re-render. Layouts can also be [nested](#nesting-layouts). +A layout is UI that is **shared** between multiple routes. On navigation, layouts preserve state, remain interactive, and do not re-render. Layouts can also be [nested](#nesting-layouts). + +You can define a layout by default exporting a React component from a `layout.js` file. The component should accept a `children` prop that will be populated with a child layout (if it exists) or a page during rendering. -You can define a layout by `default` exporting a React component from a `layout.js` file. The component should accept a `children` prop that will be populated with a child layout (if it exists) or a child page during rendering. +For example, the layout will be shared with the `/dashboard` and `/dashboard/settings` pages: layout.js special file **Good to know**: -> -> - The top-most layout is called the [Root Layout](#root-layout-required). This **required** layout is shared across all pages in an application. Root layouts must contain `html` and `body` tags. -> - Any route segment can optionally define its own [Layout](#nesting-layouts). These layouts will be shared across all pages in that segment. -> - Layouts in a route are **nested** by default. Each parent layout wraps child layouts below it using the React `children` prop. -> - You can use [Route Groups](/docs/app/building-your-application/routing/route-groups) to opt specific route segments in and out of shared layouts. -> - Layouts are [Server Components](/docs/app/building-your-application/rendering/server-components) by default but can be set to a [Client Component](/docs/app/building-your-application/rendering/client-components). -> - Layouts can fetch data. View the [Data Fetching](/docs/app/building-your-application/data-fetching) section for more information. -> - Passing data between a parent layout and its children is not possible. However, you can fetch the same data in a route more than once, and React will [automatically dedupe the requests](/docs/app/building-your-application/caching#request-memoization) without affecting performance. -> - Layouts do not have access to the route segments below itself. To access all route segments, you can use [`useSelectedLayoutSegment`](/docs/app/api-reference/functions/use-selected-layout-segment) or [`useSelectedLayoutSegments`](/docs/app/api-reference/functions/use-selected-layout-segments) in a Client Component. -> - `.js`, `.jsx`, or `.tsx` file extensions can be used for Layouts. -> - A `layout.js` and `page.js` file can be defined in the same folder. The layout will wrap the page. - ### Root Layout (Required) -The root layout is defined at the top level of the `app` directory and applies to all routes. This layout enables you to modify the initial HTML returned from the server. +The root layout is defined at the top level of the `app` directory and applies to all routes. This layout is **required** and must contain `html` and `body` tags, allowing you to modify the initial HTML returned from the server. ```tsx filename="app/layout.tsx" switcher export default function RootLayout({ @@ -128,7 +119,10 @@ export default function RootLayout({ }) { return ( - {children} + + {/* Layout UI */} +
{children}
+ ) } @@ -138,24 +132,20 @@ export default function RootLayout({ export default function RootLayout({ children }) { return ( - {children} + + {/* Layout UI */} +
{children}
+ ) } ``` -> **Good to know**: -> -> - The `app` directory **must** include a root layout. -> - The root layout must define `` and `` tags since Next.js does not automatically create them. -> - You can use the [built-in SEO support](/docs/app/building-your-application/optimizing/metadata) to manage `` HTML elements, for example, the `` element. -> - You can use [route groups](/docs/app/building-your-application/routing/route-groups) to create multiple root layouts. See an [example here](/docs/app/building-your-application/routing/route-groups#creating-multiple-root-layouts). - -> **Migrating from the `pages` directory:** The root layout replaces the [`_app.js`](/docs/pages/building-your-application/routing/custom-app) and [`_document.js`](/docs/pages/building-your-application/routing/custom-document) files. [View the migration guide](/docs/app/building-your-application/upgrading/app-router-migration#migrating-_documentjs-and-_appjs). - ### Nesting Layouts -Layouts defined inside a folder (e.g. `app/dashboard/layout.js`) apply to specific route segments (e.g. `acme.com/dashboard`) and render when those segments are active. By default, layouts in the file hierarchy are **nested**, which means they wrap child layouts via their `children` prop. +By default, layouts in the folder hierarchy are **nested**, which means they wrap child layouts via their `children` prop. You can nest layouts by adding `layout.js` inside specific route segments (folders). + +For example, to create a layout for the `/dashboard` route, add a new `layout.js` file inside the `dashboard` folder: <Image alt="Nested Layout" @@ -181,10 +171,6 @@ export default function DashboardLayout({ children }) { } ``` -> **Good to know**: -> -> - Only the root layout can contain `<html>` and `<body>` tags. - If you were to combine the two layouts above, the root layout (`app/layout.js`) would wrap the dashboard layout (`app/dashboard/layout.js`), which would wrap route segments inside `app/dashboard/*`. The two layouts would be nested as such: @@ -197,7 +183,18 @@ The two layouts would be nested as such: height="1026" /> -You can use [Route Groups](/docs/app/building-your-application/routing/route-groups) to opt specific route segments in and out of shared layouts. +> **Good to know**: + +> - `.js`, `.jsx`, or `.tsx` file extensions can be used for Layouts. +> - Only the root layout can contain `<html>` and `<body>` tags. +> - When a `layout.js` and `page.js` file are defined in the same folder. The layout will wrap the page. +> - Layouts are [Server Components](/docs/app/building-your-application/rendering/server-components) by default but can be set to a [Client Component](/docs/app/building-your-application/rendering/client-components). +> - Layouts can fetch data. View the [Data Fetching](/docs/app/building-your-application/data-fetching) section for more information. +> - Passing data between a parent layout and its children is not possible. However, you can fetch the same data in a route more than once, and React will [automatically dedupe the requests](/docs/app/building-your-application/caching#request-memoization) without affecting performance. +> - Layouts do not have access to the route segments below itself. To access all route segments, you can use [`useSelectedLayoutSegment`](/docs/app/api-reference/functions/use-selected-layout-segment) or [`useSelectedLayoutSegments`](/docs/app/api-reference/functions/use-selected-layout-segments) in a Client Component. +> - You can use [Route Groups](/docs/app/building-your-application/routing/route-groups) to opt specific route segments in and out of shared layouts. +> - You can use [Route Groups](/docs/app/building-your-application/routing/route-groups) to create multiple root layouts. See an [example here](/docs/app/building-your-application/routing/route-groups#creating-multiple-root-layouts). +> - **Migrating from the `pages` directory:** The root layout replaces the [`_app.js`](/docs/pages/building-your-application/routing/custom-app) and [`_document.js`](/docs/pages/building-your-application/routing/custom-document) files. [View the migration guide](/docs/app/building-your-application/upgrading/app-router-migration#migrating-_documentjs-and-_appjs). ## Templates @@ -239,9 +236,9 @@ In terms of nesting, `template.js` is rendered between a layout and its children </Layout> ``` -## Modifying `<head>` +## Metadata -In the `app` directory, you can modify the `<head>` HTML elements such as `title` and `meta` using the [built-in SEO support](/docs/app/building-your-application/optimizing/metadata). +In the `app` directory, you can modify the `<head>` HTML elements such as `title` and `meta` using the [Metadata APIs](/docs/app/building-your-application/optimizing/metadata). Metadata can be defined by exporting a [`metadata` object](/docs/app/api-reference/functions/generate-metadata#the-metadata-object) or [`generateMetadata` function](/docs/app/api-reference/functions/generate-metadata#generatemetadata-function) in a [`layout.js`](/docs/app/api-reference/file-conventions/layout) or [`page.js`](/docs/app/api-reference/file-conventions/page) file. @@ -269,4 +266,4 @@ export default function Page() { > **Good to know**: You should **not** manually add `<head>` tags such as `<title>` and `<meta>` to root layouts. Instead, you should use the [Metadata API](/docs/app/api-reference/functions/generate-metadata) which automatically handles advanced requirements such as streaming and de-duplicating `<head>` elements. -[Learn more about available metadata options in the API reference.](/docs/app/api-reference/functions/generate-metadata) +Learn more about available metadata options in the [API reference](/docs/app/api-reference/functions/generate-metadata) diff --git a/docs/02-app/01-building-your-application/06-optimizing/03-fonts.mdx b/docs/02-app/01-building-your-application/06-optimizing/03-fonts.mdx index 50a56a33c1359..3a6a5f58956f3 100644 --- a/docs/02-app/01-building-your-application/06-optimizing/03-fonts.mdx +++ b/docs/02-app/01-building-your-application/06-optimizing/03-fonts.mdx @@ -13,7 +13,7 @@ related: [**`next/font`**](/docs/app/api-reference/components/font) will automatically optimize your fonts (including custom fonts) and remove external network requests for improved privacy and performance. -> **🎥 Watch:** Learn more about how to use `next/font` → [YouTube (6 minutes)](https://www.youtube.com/watch?v=L8_98i_bMMA). +> **🎥 Watch:** Learn more about using `next/font` → [YouTube (6 minutes)](https://www.youtube.com/watch?v=L8_98i_bMMA). `next/font` includes **built-in automatic self-hosting** for _any_ font file. This means you can optimally load web fonts with zero layout shift, thanks to the underlying CSS `size-adjust` property used. diff --git a/docs/02-app/01-building-your-application/09-authentication/index.mdx b/docs/02-app/01-building-your-application/09-authentication/index.mdx index 20599d0d5680b..d19dfba3d9d74 100644 --- a/docs/02-app/01-building-your-application/09-authentication/index.mdx +++ b/docs/02-app/01-building-your-application/09-authentication/index.mdx @@ -642,6 +642,8 @@ This prevents the need for repeated logins, enhancing both security and user con ### Cookie-Based Sessions +> **🎥 Watch:** Learn more about cookie-based sessions and authentication with Next.js → [YouTube (11 minutes)](https://www.youtube.com/watch?v=DJvM2lSPn6w). + Cookie-based sessions manage user data by storing encrypted session information directly in browser cookies. Upon user login, this encrypted data is stored in the cookie. Each subsequent server request includes this cookie, minimizing the need for repeated server queries and enhancing client-side efficiency. However, this method requires careful encryption to protect sensitive data, as cookies are susceptible to client-side security risks. Encrypting session data in cookies is key to safeguarding user information from unauthorized access. It ensures that even if a cookie is stolen, the data inside remains unreadable. @@ -850,10 +852,10 @@ Here are authentication solutions compatible with Next.js, please refer to the q {/* TODO: Change link to authjs.dev when new documentation is ready */} - [Auth0](https://auth0.com/docs/quickstart/webapp/nextjs/01-login) -- [Auth.js](https://authjs.dev/guides/upgrade-to-v5) - [Clerk](https://clerk.com/docs/quickstarts/nextjs) - [Kinde](https://kinde.com/docs/developer-tools/nextjs-sdk) - [Lucia](https://lucia-auth.com/getting-started/nextjs-app) +- [NextAuth.js](https://authjs.dev/guides/upgrade-to-v5) - [Supabase](https://supabase.com/docs/guides/getting-started/quickstarts/nextjs) - [Stytch](https://stytch.com/docs/guides/quickstarts/nextjs) - [Iron Session](https://github.com/vvo/iron-session) diff --git a/docs/02-app/01-building-your-application/11-upgrading/04-from-vite.mdx b/docs/02-app/01-building-your-application/11-upgrading/04-from-vite.mdx index af0b696f51ade..414c7ad1819a4 100644 --- a/docs/02-app/01-building-your-application/11-upgrading/04-from-vite.mdx +++ b/docs/02-app/01-building-your-application/11-upgrading/04-from-vite.mdx @@ -22,11 +22,15 @@ The previous issue of slow loading times can be somewhat managed with code split ### Network waterfalls -A common cause of poor performance occurs when applications make sequential client-server requests to fetch data. One common pattern for data fetching in an SPA is to initially render a placeholder, and then fetch data after the component has mounted. Unfortunately, this means that a child component that fetches data can't start fetching until the parent component has finished loading its own data. With Next.js, [this issue is resolved](https://github.com/reactjs/rfcs/blob/main/text/0188-server-components.md#no-client-server-waterfalls) by fetching data in Server Components. +A common cause of poor performance occurs when applications make sequential client-server requests to fetch data. One common pattern for data fetching in an SPA is to initially render a placeholder, and then fetch data after the component has mounted. Unfortunately, this means that a child component that fetches data can't start fetching until the parent component has finished loading its own data. + +While fetching data on the client is supported with Next.js, it also gives you the option to shift data fetching to the server, which can eliminate client-server waterfalls. ### Fast and intentional loading states -Thanks to built-in support for [Streaming with Suspense](/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense), with Next.js, you can be more intentional about which parts of your UI you want to load first and in what order without introducing network waterfalls. This enables you to build pages that are faster to load and also eliminate [layout shifts](https://web.dev/cls/). +With built-in support for [streaming through React Suspense](/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense), you can be more intentional about which parts of your UI you want to load first and in what order without introducing network waterfalls. + +This enables you to build pages that are faster to load and eliminate [layout shifts](https://vercel.com/blog/how-core-web-vitals-affect-seo). ### Choose the data fetching strategy @@ -359,47 +363,100 @@ containing `page.tsx` file. 2. **Create a new `page.tsx` file inside the `app/[[...slug]]` directory with the following content:** ```tsx filename="app/[[...slug]]/page.tsx" switcher +import '../../index.css' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return '...' // We'll update this +} +``` + +```jsx filename="app/[[...slug]]/page.js" switcher +import '../../index.css' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return '...' // We'll update this +} +``` + +> **Good to know**: `.js`, `.jsx`, or `.tsx` extensions can be used for Page files. + +This file is a [Server Component](/docs/app/building-your-application/rendering/server-components). When you run `next build`, the file is prerendered into a static asset. It does _not_ require any dynamic code. + +This file imports our global CSS and tells [`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params) we are only going to generate one route, the index route at `/`. + +Now, let's move the rest of our Vite application which will run client-only. + +```tsx filename="app/[[...slug]]/client.tsx" switcher 'use client' +import React from 'react' import dynamic from 'next/dynamic' -import '../../index.css' const App = dynamic(() => import('../../App'), { ssr: false }) -export default function Page() { +export function ClientOnly() { return <App /> } ``` -```jsx filename="app/[[...slug]]/page.js" switcher +```jsx filename="app/[[...slug]]/client.js" switcher 'use client' +import React from 'react' import dynamic from 'next/dynamic' -import '../../index.css' const App = dynamic(() => import('../../App'), { ssr: false }) -export default function Page() { +export function ClientOnly() { return <App /> } ``` -> **Good to know**: `.js`, `.jsx`, or `.tsx` extensions can be used for Page files. +This file is a [Client Component](/docs/app/building-your-application/rendering/client-components), defined by the `'use client'` +directive. Client Components are still [prerendered to HTML](/docs/app/building-your-application/rendering/client-components#how-are-client-components-rendered) on the server before being sent to the client. -This file contains a `<Page>` component which is marked as a -[Client Component](/docs/app/building-your-application/rendering/client-components) by the `'use client'` -directive. Without that directive, the component would have been a -[Server Component](/docs/app/building-your-application/rendering/server-components). - -In Next.js, Client Components are [prerendered to HTML](/docs/app/building-your-application/rendering/client-components#how-are-client-components-rendered) -on the server before being sent to the client, but since we want to first have a purely client-side -application, you need to tell Next.js to disable the prerendering for the `<App>` component by -dynamically importing it with the `ssr` option set to `false`: +Since we want a client-only application to start, we can configure Next.js to disable prerendering from the `App` component down. ```tsx const App = dynamic(() => import('../../App'), { ssr: false }) ``` +Now, update your entrypoint page to use the new component: + +```tsx filename="app/[[...slug]]/page.tsx" switcher +import '../../index.css' +import { ClientOnly } from './client' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return <ClientOnly /> +} +``` + +```jsx filename="app/[[...slug]]/page.js" switcher +import '../../index.css' +import { ClientOnly } from './client' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return <ClientOnly /> +} +``` + ### Step 6: Update Static Image Imports Next.js handles static image imports slightly different from Vite. With Vite, importing an image @@ -426,8 +483,7 @@ styled to `auto`. When not styled to `auto`, the dimension will default to the ` attribute's value, which can cause the image to appear distorted. Keeping the `<img>` tag will reduce the amount of changes in your application and prevent the above -issues. However, you'll still want to later migrate to the `<Image>` component to take advantage of -the automatic optimizations. +issues. You can then optionally later migrate to the `<Image>` component to take advantage of optimizing images by [configuring a loader](/docs/app/building-your-application/optimizing/images#loaders), or moving to the default Next.js server which has automatic image optimization. 1. **Convert absolute import paths for images imported from `/public` into relative imports:** @@ -449,6 +505,8 @@ import logo from '../public/logo.png' <img src={logo.src} /> ``` +Alternatively, you can reference the public URL for the image asset based on the filename. For example, `public/logo.png` will serve the image at `/logo.png` for your application, which would be the `src` value. + > **Warning:** If you're using TypeScript, you might encounter type errors when accessing the `src` > property. You can safely ignore those for now. They will be fixed by the end of this guide. @@ -514,13 +572,10 @@ and add `.next` and `next-env.d.ts` to your `.gitignore`: # ... .next next-env.d.ts +dist ``` -Now run `npm run dev`, and open [`http://localhost:3000`](http://localhost:3000). You should -hopefully see your application now running on Next.js. - -If your application followed a conventional Vite configuration, this is all you would need to do -to have a working version of your application. +Now run `npm run dev`, and open [`http://localhost:3000`](http://localhost:3000). You should see your application now running on Next.js. > **Example:** Check out [this pull request](https://github.com/inngest/vite-to-nextjs/pull/1) for a > working example of a Vite application migrated to Next.js. diff --git a/docs/02-app/01-building-your-application/11-upgrading/05-from-create-react-app.mdx b/docs/02-app/01-building-your-application/11-upgrading/05-from-create-react-app.mdx new file mode 100644 index 0000000000000..04656dc930e06 --- /dev/null +++ b/docs/02-app/01-building-your-application/11-upgrading/05-from-create-react-app.mdx @@ -0,0 +1,576 @@ +--- +title: Migrating from Create React App +description: Learn how to migrate your existing React application from Create React App to Next.js. +--- + +This guide will help you migrate an existing Create React App site to Next.js. + +## Why Switch? + +There are several reasons why you might want to switch from Create React App to Next.js: + +### Slow initial page loading time + +Create React App uses purely client-side React. Client-side only applications, also known as single-page applications (SPAs), often experience slow initial page loading time. This happens due to a couple of reasons: + +1. The browser needs to wait for the React code and your entire application bundle to download and run before your code is able to send requests to load data. +2. Your application code grows with every new feature and dependency you add. + +### No automatic code splitting + +The previous issue of slow loading times can be somewhat managed with code splitting. However, if you try to do code splitting manually, you'll often make performance worse. It's easy to inadvertently introduce network waterfalls when code-splitting manually. Next.js provides automatic code splitting built into its router. + +### Network waterfalls + +A common cause of poor performance occurs when applications make sequential client-server requests to fetch data. One common pattern for data fetching in an SPA is to initially render a placeholder, and then fetch data after the component has mounted. Unfortunately, this means that a child component that fetches data can't start fetching until the parent component has finished loading its own data. + +While fetching data on the client is supported with Next.js, it also gives you the option to shift data fetching to the server, which can eliminate client-server waterfalls. + +### Fast and intentional loading states + +With built-in support for [streaming through React Suspense](/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense), you can be more intentional about which parts of your UI you want to load first and in what order without introducing network waterfalls. + +This enables you to build pages that are faster to load and eliminate [layout shifts](https://vercel.com/blog/how-core-web-vitals-affect-seo). + +### Choose the data fetching strategy + +Depending on your needs, Next.js allows you to choose your data fetching strategy on a page and component basis. You can decide to fetch at build time, at request time on the server, or on the client. For example, you can fetch data from your CMS and render your blog posts at build time, which can then be efficiently cached on a CDN. + +### Middleware + +[Next.js Middleware](/docs/app/building-your-application/routing/middleware) allows you to run code on the server before a request is completed. This is especially useful to avoid having a flash of unauthenticated content when the user visits an authenticated-only page by redirecting the user to a login page. The middleware is also useful for experimentation and [internationalization](/docs/app/building-your-application/routing/internationalization). + +### Built-in Optimizations + +[Images](/docs/app/building-your-application/optimizing/images), [fonts](/docs/app/building-your-application/optimizing/fonts), and [third-party scripts](/docs/app/building-your-application/optimizing/scripts) often have significant impact on an application's performance. Next.js comes with built-in components that automatically optimize those for you. + +## Migration Steps + +Our goal with this migration is to get a working Next.js application as quickly as possible, so that +you can then adopt Next.js features incrementally. To begin with, we'll keep it as a purely +client-side application (SPA) without migrating your existing router. This helps minimize the +chances of encountering issues during the migration process and reduces merge conflicts. + +### Step 1: Install the Next.js Dependency + +The first thing you need to do is to install `next` as a dependency: + +```bash filename="Terminal" +npm install next@latest +``` + +### Step 2: Create the Next.js Configuration File + +Create a `next.config.mjs` at the root of your project. This file will hold your +[Next.js configuration options](/docs/app/api-reference/next-config-js). + +```js filename="next.config.mjs" +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'export', // Outputs a Single-Page Application (SPA). + distDir: './dist', // Changes the build output directory to `./dist/`. +} + +export default nextConfig +``` + +> **Good to know:** You can use either `.js` or `.mjs` for your Next.js configuration file. + +### Step 3: Update TypeScript Configuration + +If you're using TypeScript, you need to update your `tsconfig.json` file with the following changes to make it compatible with Next.js: + +```json filename="tsconfig.json" +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "baseUrl": ".", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "./dist/types/**/*.ts" + ], + "exclude": ["node_modules"] +} +``` + +You can find more information about configuring TypeScript on the +[Next.js docs](/docs/app/building-your-application/configuring/typescript#typescript-plugin). + +### Step 4: Create the Root Layout + +A Next.js [App Router](/docs/app) application must include a +[root layout](/docs/app/building-your-application/routing/pages-and-layouts#root-layout-required) +file, which is a [React Server Component](/docs/app/building-your-application/rendering/server-components) +that will wrap all pages in your application. This file is defined at the top level of the `app` +directory. + +The closest equivalent to the root layout file in a CRA application is the `index.html` file, which contains your `<html>`, `<head>`, and `<body>` tags. + +In this step, you'll convert your `index.html` file into a root layout file: + +1. Create a new `app` directory in your `src` directory. +2. Create a new `layout.tsx` file inside that `app` directory: + +```tsx filename="app/layout.tsx" switcher +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return null +} +``` + +```jsx filename="app/layout.js" switcher +export default function RootLayout({ children }) { + return null +} +``` + +> **Good to know**: `.js`, `.jsx`, or `.tsx` extensions can be used for Layout files. + +3. Copy the content of your `index.html` file into the previously created `<RootLayout>` component while + replacing the `body.div#root` and `body.script` tags with `<div id="root">{children}</div>`: + +```tsx filename="app/layout.tsx" switcher +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + <html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <title>React App + + + +
{children}
+ + + ) +} +``` + +```jsx filename="app/layout.js" switcher +export default function RootLayout({ children }) { + return ( + + + + + + React App + + + +
{children}
+ + + ) +} +``` + +> **Good to know**: We'll ignore the [manifest file](/docs/app/api-reference/file-conventions/metadata), additional iconography other than the favicon, and [testing configuration](/docs/app/building-your-application/testing), but if these are requirements, Next.js also supports these options. + +4. Next.js already includes by default the + [meta charset](https://developer.mozilla.org/docs/Web/HTML/Element/meta#charset) and + [meta viewport](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag) tags, so you + can safely remove those from your ``: + +```tsx filename="app/layout.tsx" switcher +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + + + React App + + + +
{children}
+ + + ) +} +``` + +```jsx filename="app/layout.js" switcher +export default function RootLayout({ children }) { + return ( + + + + React App + + + +
{children}
+ + + ) +} +``` + +5. Any [metadata files](/docs/app/building-your-application/optimizing/metadata#file-based-metadata) + such as `favicon.ico`, `icon.png`, `robots.txt` are automatically added to the application + `` tag as long as you have them placed into the top level of the `app` directory. After + moving + [all supported files](/docs/app/building-your-application/optimizing/metadata#file-based-metadata) + into the `app` directory you can safely delete their `` tags: + +```tsx filename="app/layout.tsx" switcher +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + + React App + + + +
{children}
+ + + ) +} +``` + +```jsx filename="app/layout.js" switcher +export default function RootLayout({ children }) { + return ( + + + React App + + + +
{children}
+ + + ) +} +``` + +6. Finally, Next.js can manage your last `` tags with the + [Metadata API](/docs/app/building-your-application/optimizing/metadata). Move your final metadata + info into an exported + [`metadata` object](/docs/app/api-reference/functions/generate-metadata#metadata-object): + +```tsx filename="app/layout.tsx" switcher +import type { Metadata } from 'next' + +export const metadata: Metadata = { + title: 'React App', + description: 'Web site created with Next.js.', +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + +
{children}
+ + + ) +} +``` + +```jsx filename="app/layout.js" switcher +export const metadata = { + title: 'React App', + description: 'Web site created with Next.js.', +} + +export default function RootLayout({ children }) { + return ( + + +
{children}
+ + + ) +} +``` + +With the above changes, you shifted from declaring everything in your `index.html` to using Next.js' +convention-based approach built into the framework +([Metadata API](/docs/app/building-your-application/optimizing/metadata)). This approach enables you +to more easily improve your SEO and web shareability of your pages. + +### Step 5: Create the Entrypoint Page + +On Next.js you declare an entrypoint for your application by creating a `page.tsx` file. The +closest equivalent of this file on CRA is your `src/index.tsx` file. In this step, you’ll set up the +entrypoint of your application. + +1. **Create a `[[...slug]]` directory in your `app` directory.** + +Since this guide is aiming to first set up our Next.js as an SPA (Single Page Application), +you need your page entrypoint to catch all possible routes of your application. For that, create a +new `[[...slug]]` directory in your `app` directory. + +This directory is what is called an +[optional catch-all route segment](/docs/app/building-your-application/routing/dynamic-routes#optional-catch-all-segments). +Next.js uses a file-system based router where +[directories are used to define routes](/docs/app/building-your-application/routing/defining-routes#creating-routes). +This special directory will make sure that all routes of your application will be directed to its +containing `page.tsx` file. + +2. **Create a new `page.tsx` file inside the `app/[[...slug]]` directory with the following content:** + +```tsx filename="app/[[...slug]]/page.tsx" switcher +import '../../src/index.css' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return '...' // We'll update this +} +``` + +```jsx filename="app/[[...slug]]/page.js" switcher +import '../../src/index.css' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return '...' // We'll update this +} +``` + +> **Good to know**: `.js`, `.jsx`, or `.tsx` extensions can be used for Page files. + +This file is a [Server Component](/docs/app/building-your-application/rendering/server-components). When you run `next build`, the file is prerendered into a static asset. It does _not_ require any dynamic code. + +This file imports our global CSS and tells [`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params) we are only going to generate one route, the index route at `/`. + +Now, let's move the rest of our CRA application which will run client-only. + +```tsx filename="app/[[...slug]]/client.tsx" switcher +'use client' + +import React from 'react' +import dynamic from 'next/dynamic' + +const App = dynamic(() => import('../../src/App'), { ssr: false }) + +export function ClientOnly() { + return +} +``` + +```jsx filename="app/[[...slug]]/client.js" switcher +'use client' + +import React from 'react' +import dynamic from 'next/dynamic' + +const App = dynamic(() => import('../../src/App'), { ssr: false }) + +export function ClientOnly() { + return +} +``` + +This file is a [Client Component](/docs/app/building-your-application/rendering/client-components), defined by the `'use client'` +directive. Client Components are still [prerendered to HTML](/docs/app/building-your-application/rendering/client-components#how-are-client-components-rendered) on the server before being sent to the client. + +Since we want a client-only application to start, we can configure Next.js to disable prerendering from the `App` component down. + +```tsx +const App = dynamic(() => import('../../App'), { ssr: false }) +``` + +Now, update your entrypoint page to use the new component: + +```tsx filename="app/[[...slug]]/page.tsx" switcher +import '../../src/index.css' +import { ClientOnly } from './client' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return +} +``` + +```jsx filename="app/[[...slug]]/page.js" switcher +import '../../src/index.css' +import { ClientOnly } from './client' + +export function generateStaticParams() { + return [{ slug: [''] }] +} + +export default function Page() { + return +} +``` + +### Step 6: Update Static Image Imports + +Next.js handles static image imports slightly different from CRA. With CRA, importing an image +file will return its public URL as a string: + +```tsx filename="App.tsx" +import image from './img.png' + +export default function App() { + return +} +``` + +With Next.js, static image imports return an object. The object can then be used directly with the +Next.js [`` component](/docs/app/api-reference/components/image), or you can use the object's +`src` property with your existing `` tag. + +The `` component has the added benefits of +[automatic image optimization](/docs/app/building-your-application/optimizing/images). The `` +component automatically sets the `width` and `height` attributes of the resulting `` based on +the image's dimensions. This prevents layout shifts when the image loads. However, this can cause +issues if your app contains images with only one of their dimensions being styled without the other +styled to `auto`. When not styled to `auto`, the dimension will default to the `` dimension +attribute's value, which can cause the image to appear distorted. + +Keeping the `` tag will reduce the amount of changes in your application and prevent the above +issues. You can then optionally later migrate to the `` component to take advantage of optimizing images by [configuring a loader](/docs/app/building-your-application/optimizing/images#loaders), or moving to the default Next.js server which has automatic image optimization. + +1. **Convert absolute import paths for images imported from `/public` into relative imports:** + +```tsx +// Before +import logo from '/logo.png' + +// After +import logo from '../public/logo.png' +``` + +2. **Pass the image `src` property instead of the whole image object to your `` tag:** + +```tsx +// Before + + +// After + +``` + +Alternatively, you can reference the public URL for the image asset based on the filename. For example, `public/logo.png` will serve the image at `/logo.png` for your application, which would be the `src` value. + +> **Warning:** If you're using TypeScript, you might encounter type errors when accessing the `src` +> property. You can safely ignore those for now. They will be fixed by the end of this guide. + +### Step 7: Migrate the Environment Variables + +Next.js has support for `.env` +[environment variables](/docs/app/building-your-application/configuring/environment-variables) +similar to CRA. + +The main difference is the prefix used to expose environment variables on the +client-side. Change all environment variables with the `REACT_APP_` prefix to `NEXT_PUBLIC_`. + +### Step 8: Update Scripts in `package.json` + +You should now be able to run your application to test if you successfully migrated to Next.js. But +before that, you need to update your `scripts` in your `package.json` with Next.js related commands, +and add `.next` and `next-env.d.ts` to your `.gitignore`: + +```json filename="package.json" +{ + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + } +} +``` + +```txt filename=".gitignore" +# ... +.next +next-env.d.ts +dist +``` + +Now run `npm run dev`, and open [`http://localhost:3000`](http://localhost:3000). You should see your application now running on Next.js. + +> **Example:** Check out [this repository](https://github.com/vercel/cra-to-next) for a working example of a CRA application migrated to Next.js. + +### Step 9: Clean Up + +You can now clean up your codebase from Create React App related artifacts: + +- Delete `src/index.tsx` +- Delete `public/index.html` +- Delete `reportWebVitals` setup +- Uninstall CRA dependencies (`react-scripts`) + +## Bundler Compatibility + +Create React App and Next.js both default to using webpack for bundling. + +When migrating your CRA application to Next.js, you might have a custom webpack configuration you're looking to migrate. Next.js supports providing a [custom webpack configuration](/docs/app/api-reference/next-config-js/webpack). + +Further, Next.js has support for [Turbopack](/docs/app/api-reference/next-config-js/turbo) through `next dev --turbo` to improve your local dev performance. Turbopack supports some [webpack loaders](/docs/app/api-reference/next-config-js/turbo) as well for compatibility and incremental adoption. + +## Next Steps + +If everything went according to plan, you now have a functioning Next.js application running as a +single-page application. However, you aren't yet taking advantage of most of Next.js' benefits, but +you can now start making incremental changes to reap all the benefits. Here's what you might want to +do next: + +- Migrate from React Router to the [Next.js App Router](/docs/app/building-your-application/routing) to get: + - Automatic code splitting + - [Streaming Server-Rendering](/docs/app/building-your-application/routing/loading-ui-and-streaming) + - [React Server Components](/docs/app/building-your-application/rendering/server-components) +- [Optimize images with the `` component](/docs/app/building-your-application/optimizing/images) +- [Optimize fonts with `next/font`](/docs/app/building-your-application/optimizing/fonts) +- [Optimize third-party scripts with the `` - ) - }, - transform(chunk, controller) { - const scripts = `${startScriptTag}self.__next_f.push(${htmlEscapeJsonString( - JSON.stringify([INLINE_FLIGHT_PAYLOAD_DATA, chunk]) - )})` - - controller.enqueue(scripts) - }, - }) -} - -const flightResponses = new WeakMap< - ReadableStream, - Promise ->() +const flightResponses = new WeakMap, Promise>() +const encoder = new TextEncoder() /** * Render Flight stream. * This is only used for renderToHTML, the Flight response does not need additional wrappers. */ -export function useFlightResponse( - writable: WritableStream, - flightStream: ReadableStream, +export function useFlightStream( + flightStream: BinaryStreamOf, clientReferenceManifest: ClientReferenceManifest, - formState: null | any, nonce?: string -): Promise { +): Promise { const response = flightResponses.get(flightStream) if (response) { @@ -76,8 +40,7 @@ export function useFlightResponse( require('react-server-dom-webpack/client.edge').createFromReadableStream } - const [renderStream, forwardStream] = flightStream.tee() - const res = createFromReadableStream(renderStream, { + const newResponse = createFromReadableStream(flightStream, { ssrManifest: { moduleLoading: clientReferenceManifest.moduleLoading, moduleMap: isEdgeRuntime @@ -86,25 +49,117 @@ export function useFlightResponse( }, nonce, }) - flightResponses.set(flightStream, res) - pipeFlightDataToInlinedStream(forwardStream, writable, nonce, formState) + flightResponses.set(flightStream, newResponse) - return res + return newResponse +} + +/** + * There are times when an SSR render may be finished but the RSC render + * is ongoing and we need to wait for it to complete to make some determination + * about how to handle the render. This function will drain the RSC reader and + * resolve when completed. This will generally require teeing the RSC stream and it + * should be noted that it will cause all the RSC chunks to queue in the underlying + * ReadableStream however given Flight currently is a push stream that doesn't respond + * to backpressure this shouldn't change how much memory is maximally consumed + */ +export async function flightRenderComplete( + flightStream: ReadableStream +): Promise { + const flightReader = flightStream.getReader() + + while (true) { + const { done } = await flightReader.read() + if (done) { + return + } + } } -function pipeFlightDataToInlinedStream( +/** + * Creates a ReadableStream provides inline script tag chunks for writing hydration + * data to the client outside the React render itself. + * + * @param flightStream The RSC render stream + * @param nonce optionally a nonce used during this particular render + * @param formState optionally the formState used with this particular render + * @returns a ReadableStream without the complete property. This signifies a lazy ReadableStream + */ +export function createInlinedDataReadableStream( flightStream: ReadableStream, - writable: WritableStream, nonce: string | undefined, formState: unknown | null -): void { - flightStream - .pipeThrough(createDecodeTransformStream()) - .pipeThrough(createFlightTransformer(nonce, formState)) - .pipeThrough(createEncodeTransformStream()) - .pipeTo(writable) - .catch((err) => { - console.error('Unexpected error while rendering Flight stream', err) - }) +): ReadableStream { + const startScriptTag = nonce + ? `` + ) + ) +} + +function writeFlightDataInstruction( + controller: ReadableStreamDefaultController, + scriptStart: string, + chunkAsString: string +) { + controller.enqueue( + encoder.encode( + `${scriptStart}self.__next_f.push(${htmlEscapeJsonString( + JSON.stringify([INLINE_FLIGHT_PAYLOAD_DATA, chunkAsString]) + )})` + ) + ) } diff --git a/packages/next/src/server/async-storage/static-generation-async-storage-wrapper.ts b/packages/next/src/server/async-storage/static-generation-async-storage-wrapper.ts index bb7765164849f..f87e75a5ea25a 100644 --- a/packages/next/src/server/async-storage/static-generation-async-storage-wrapper.ts +++ b/packages/next/src/server/async-storage/static-generation-async-storage-wrapper.ts @@ -3,6 +3,8 @@ import type { StaticGenerationStore } from '../../client/components/static-gener import type { AsyncLocalStorage } from 'async_hooks' import type { IncrementalCache } from '../lib/incremental-cache' +import { createPrerenderState } from '../../server/app-render/dynamic-rendering' + export type StaticGenerationContext = { urlPathname: string postpone?: (reason: string) => never @@ -65,9 +67,7 @@ export const StaticGenerationAsyncStorageWrapper: AsyncStorageWrapper< const prerenderState: StaticGenerationStore['prerenderState'] = isStaticGeneration && renderOpts.experimental.ppr - ? { - hasDynamic: false, - } + ? createPrerenderState() : null const store: StaticGenerationStore = { diff --git a/packages/next/src/server/dev/hot-reloader-turbopack.ts b/packages/next/src/server/dev/hot-reloader-turbopack.ts new file mode 100644 index 0000000000000..449d8327d8126 --- /dev/null +++ b/packages/next/src/server/dev/hot-reloader-turbopack.ts @@ -0,0 +1,965 @@ +import type { Socket } from 'net' +import type { OutputState } from '../../build/output/store' +import type { + CompilationError, + HMR_ACTION_TYPES, + NextJsHotReloaderInterface, + ReloadPageAction, + SyncAction, + TurbopackConnectedAction, +} from './hot-reloader-types' + +import ws from 'next/dist/compiled/ws' +import { createDefineEnv } from '../../build/swc' +import { join } from 'path' +import * as Log from '../../build/output/log' +import { + getVersionInfo, + matchNextPageBundleRequest, +} from './hot-reloader-webpack' +import { normalizeAppPath } from '../../shared/lib/router/utils/app-paths' +import { store as consoleStore } from '../../build/output/store' +import { getOverlayMiddleware } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware-turbopack' +import { mkdir, writeFile } from 'fs/promises' +import { PageNotFoundError } from '../../shared/lib/utils' +import { HMR_ACTIONS_SENT_TO_BROWSER } from './hot-reloader-types' +import type { Update as TurbopackUpdate } from '../../build/swc' +import { debounce } from '../utils' +import { + deleteAppClientCache, + deleteCache, +} from '../../build/webpack/plugins/nextjs-require-cache-hot-reloader' +import { normalizeMetadataRoute } from '../../lib/metadata/get-metadata-route' +import { + clearModuleContext, + clearAllModuleContexts, +} from '../lib/render-server' +import { denormalizePagePath } from '../../shared/lib/page-path/denormalize-page-path' +import { trace } from '../../trace' +import type { VersionInfo } from './parse-version-info' +import { + getTurbopackJsConfig, + type BuildManifests, + type AppBuildManifests, + type PagesManifests, + type AppPathsManifests, + type MiddlewareManifests, + type ActionManifests, + type FontManifests, + type LoadableManifests, + loadMiddlewareManifest, + writeManifests, + loadBuildManifest, + loadPagesManifest, + loadFontManifest, + type CurrentEntrypoints, + type CurrentIssues, + processIssues, + msToNs, + formatIssue, + renderStyledStringToErrorAnsi, + type GlobalEntrypoints, + type HandleRequireCacheClearing, + type ReadyIds, + type ChangeSubscription, + handleRouteType, +} from './turbopack-utils' +import { + propagateServerField, + type ServerFields, + type SetupOpts, +} from '../lib/router-utils/setup-dev-bundler' + +const wsServer = new ws.Server({ noServer: true }) +const isTestMode = !!( + process.env.NEXT_TEST_MODE || + process.env.__NEXT_TEST_MODE || + process.env.DEBUG +) + +export async function createHotReloaderTurbopack( + opts: SetupOpts, + serverFields: ServerFields, + distDir: string +): Promise { + const { nextConfig, dir } = opts + + const { loadBindings } = + require('../../build/swc') as typeof import('../../build/swc') + + let bindings = await loadBindings() + + // For the debugging purpose, check if createNext or equivalent next instance setup in test cases + // works correctly. Normally `run-test` hides output so only will be visible when `--debug` flag is used. + if (process.env.TURBOPACK && isTestMode) { + require('console').log('Creating turbopack project', { + dir, + testMode: isTestMode, + }) + } + + const hasRewrites = + opts.fsChecker.rewrites.afterFiles.length > 0 || + opts.fsChecker.rewrites.beforeFiles.length > 0 || + opts.fsChecker.rewrites.fallback.length > 0 + + const hotReloaderSpan = trace('hot-reloader', undefined, { + version: process.env.__NEXT_VERSION as string, + }) + // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing + // of the current `next dev` invocation. + hotReloaderSpan.stop() + + const project = await bindings.turbo.createProject({ + projectPath: dir, + rootPath: opts.nextConfig.experimental.outputFileTracingRoot || dir, + nextConfig: opts.nextConfig, + jsConfig: await getTurbopackJsConfig(dir, nextConfig), + watch: true, + env: process.env as Record, + defineEnv: createDefineEnv({ + isTurbopack: true, + allowedRevalidateHeaderKeys: undefined, + clientRouterFilters: undefined, + config: nextConfig, + dev: true, + distDir, + fetchCacheKeyPrefix: undefined, + hasRewrites, + middlewareMatchers: undefined, + previewModeId: undefined, + }), + serverAddr: `127.0.0.1:${opts.port}`, + }) + const entrypointsSubscription = project.entrypointsSubscribe() + const currentEntrypoints: CurrentEntrypoints = new Map() + const changeSubscriptions: Map< + string, + Promise> + > = new Map() + let prevMiddleware: boolean | undefined = undefined + + const globalEntrypoints: GlobalEntrypoints = { + app: undefined, + document: undefined, + error: undefined, + } + let currentEntriesHandlingResolve: ((value?: unknown) => void) | undefined + let currentEntriesHandling = new Promise( + (resolve) => (currentEntriesHandlingResolve = resolve) + ) + const hmrPayloads = new Map() + const turbopackUpdates: TurbopackUpdate[] = [] + + const currentIssues: CurrentIssues = new Map() + const serverPathState = new Map() + + const handleRequireCacheClearing: HandleRequireCacheClearing = ( + id, + result + ) => { + // Figure out if the server files have changed + let hasChange = false + for (const { path, contentHash } of result.serverPaths) { + // We ignore source maps + if (path.endsWith('.map')) continue + const key = `${id}:${path}` + const localHash = serverPathState.get(key) + const globalHash = serverPathState.get(path) + if ( + (localHash && localHash !== contentHash) || + (globalHash && globalHash !== contentHash) + ) { + hasChange = true + serverPathState.set(key, contentHash) + serverPathState.set(path, contentHash) + } else { + if (!localHash) { + serverPathState.set(key, contentHash) + } + if (!globalHash) { + serverPathState.set(path, contentHash) + } + } + } + + if (!hasChange) { + return + } + + const hasAppPaths = result.serverPaths.some(({ path: p }) => + p.startsWith('server/app') + ) + + if (hasAppPaths) { + deleteAppClientCache() + } + + const serverPaths = result.serverPaths.map(({ path: p }) => + join(distDir, p) + ) + + for (const file of serverPaths) { + clearModuleContext(file) + deleteCache(file) + } + + return + } + + const buildingIds = new Set() + const readyIds: ReadyIds = new Set() + + function startBuilding( + id: string, + requestUrl: string | undefined, + forceRebuild: boolean = false + ) { + if (!forceRebuild && readyIds.has(id)) { + return () => {} + } + if (buildingIds.size === 0) { + consoleStore.setState( + { + loading: true, + trigger: id, + url: requestUrl, + } as OutputState, + true + ) + } + buildingIds.add(id) + return function finishBuilding() { + if (buildingIds.size === 0) { + return + } + readyIds.add(id) + buildingIds.delete(id) + if (buildingIds.size === 0) { + consoleStore.setState( + { + loading: false, + } as OutputState, + true + ) + } + } + } + + let hmrEventHappened = false + let hmrHash = 0 + const sendEnqueuedMessages = () => { + for (const [, issueMap] of currentIssues) { + if (issueMap.size > 0) { + // During compilation errors we want to delay the HMR events until errors are fixed + return + } + } + for (const payload of hmrPayloads.values()) { + hotReloader.send(payload) + } + hmrPayloads.clear() + if (turbopackUpdates.length > 0) { + hotReloader.send({ + action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE, + data: turbopackUpdates, + }) + turbopackUpdates.length = 0 + } + } + const sendEnqueuedMessagesDebounce = debounce(sendEnqueuedMessages, 2) + + function sendHmr(id: string, payload: HMR_ACTION_TYPES) { + hmrPayloads.set(`${id}`, payload) + hmrEventHappened = true + sendEnqueuedMessagesDebounce() + } + + function sendTurbopackMessage(payload: TurbopackUpdate) { + turbopackUpdates.push(payload) + hmrEventHappened = true + sendEnqueuedMessagesDebounce() + } + + const buildManifests: BuildManifests = new Map() + const appBuildManifests: AppBuildManifests = new Map() + const pagesManifests: PagesManifests = new Map() + const appPathsManifests: AppPathsManifests = new Map() + const middlewareManifests: MiddlewareManifests = new Map() + const actionManifests: ActionManifests = new Map() + const fontManifests: FontManifests = new Map() + const loadableManifests: LoadableManifests = new Map() + + const clientToHmrSubscription: Map< + ws, + Map> + > = new Map() + + const clients = new Set() + + const changeSubscription: ChangeSubscription = async ( + page, + type, + includeIssues, + endpoint, + makePayload + ) => { + const key = `${page} (${type})` + if (!endpoint || changeSubscriptions.has(key)) return + + const changedPromise = endpoint[`${type}Changed`](includeIssues) + changeSubscriptions.set(key, changedPromise) + const changed = await changedPromise + + for await (const change of changed) { + processIssues(currentIssues, page, change) + const payload = await makePayload(page, change) + if (payload) { + sendHmr(key, payload) + } + } + } + + async function clearChangeSubscription( + page: string, + type: 'server' | 'client' + ) { + const key = `${page} (${type})` + const subscription = await changeSubscriptions.get(key) + if (subscription) { + subscription.return?.() + changeSubscriptions.delete(key) + } + currentIssues.delete(key) + } + + async function subscribeToHmrEvents(id: string, client: ws) { + let mapping = clientToHmrSubscription.get(client) + if (mapping === undefined) { + mapping = new Map() + clientToHmrSubscription.set(client, mapping) + } + if (mapping.has(id)) return + + const subscription = project!.hmrEvents(id) + mapping.set(id, subscription) + + // The subscription will always emit once, which is the initial + // computation. This is not a change, so swallow it. + try { + await subscription.next() + + for await (const data of subscription) { + processIssues(currentIssues, id, data) + if (data.type !== 'issues') { + sendTurbopackMessage(data) + } + } + } catch (e) { + // The client might be using an HMR session from a previous server, tell them + // to fully reload the page to resolve the issue. We can't use + // `hotReloader.send` since that would force very connected client to + // reload, only this client is out of date. + const reloadAction: ReloadPageAction = { + action: HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE, + } + client.send(JSON.stringify(reloadAction)) + client.close() + return + } + } + + function unsubscribeToHmrEvents(id: string, client: ws) { + const mapping = clientToHmrSubscription.get(client) + const subscription = mapping?.get(id) + subscription?.return!() + } + + try { + async function handleEntrypointsSubscription() { + for await (const entrypoints of entrypointsSubscription) { + if (!currentEntriesHandlingResolve) { + currentEntriesHandling = new Promise( + // eslint-disable-next-line no-loop-func + (resolve) => (currentEntriesHandlingResolve = resolve) + ) + } + globalEntrypoints.app = entrypoints.pagesAppEndpoint + globalEntrypoints.document = entrypoints.pagesDocumentEndpoint + globalEntrypoints.error = entrypoints.pagesErrorEndpoint + + currentEntrypoints.clear() + + for (const [pathname, route] of entrypoints.routes) { + switch (route.type) { + case 'page': + case 'page-api': + case 'app-page': + case 'app-route': { + currentEntrypoints.set(pathname, route) + break + } + default: + Log.info(`skipping ${pathname} (${route.type})`) + break + } + } + + for (const [pathname, subscriptionPromise] of changeSubscriptions) { + if (pathname === '') { + // middleware is handled below + continue + } + + if (!currentEntrypoints.has(pathname)) { + const subscription = await subscriptionPromise + subscription.return?.() + changeSubscriptions.delete(pathname) + } + } + + const { middleware, instrumentation } = entrypoints + // We check for explicit true/false, since it's initialized to + // undefined during the first loop (middlewareChanges event is + // unnecessary during the first serve) + if (prevMiddleware === true && !middleware) { + // Went from middleware to no middleware + await clearChangeSubscription('middleware', 'server') + sendHmr('middleware', { + event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES, + }) + } else if (prevMiddleware === false && middleware) { + // Went from no middleware to middleware + sendHmr('middleware', { + event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES, + }) + } + if ( + opts.nextConfig.experimental.instrumentationHook && + instrumentation + ) { + const processInstrumentation = async ( + displayName: string, + name: string, + prop: 'nodeJs' | 'edge' + ) => { + const writtenEndpoint = await instrumentation[prop].writeToDisk() + handleRequireCacheClearing(displayName, writtenEndpoint) + processIssues(currentIssues, name, writtenEndpoint) + } + await processInstrumentation( + 'instrumentation (node.js)', + 'instrumentation.nodeJs', + 'nodeJs' + ) + await processInstrumentation( + 'instrumentation (edge)', + 'instrumentation.edge', + 'edge' + ) + await loadMiddlewareManifest( + distDir, + middlewareManifests, + 'instrumentation', + 'instrumentation' + ) + await writeManifests( + opts.fsChecker.rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + + serverFields.actualInstrumentationHookFile = '/instrumentation' + await propagateServerField( + opts, + 'actualInstrumentationHookFile', + serverFields.actualInstrumentationHookFile + ) + } else { + serverFields.actualInstrumentationHookFile = undefined + await propagateServerField( + opts, + 'actualInstrumentationHookFile', + serverFields.actualInstrumentationHookFile + ) + } + if (middleware) { + const processMiddleware = async () => { + const writtenEndpoint = await middleware.endpoint.writeToDisk() + handleRequireCacheClearing('middleware', writtenEndpoint) + processIssues(currentIssues, 'middleware', writtenEndpoint) + await loadMiddlewareManifest( + distDir, + middlewareManifests, + 'middleware', + 'middleware' + ) + serverFields.middleware = { + match: null as any, + page: '/', + matchers: + middlewareManifests.get('middleware')?.middleware['/'].matchers, + } + } + await processMiddleware() + + changeSubscription( + 'middleware', + 'server', + false, + middleware.endpoint, + async () => { + const finishBuilding = startBuilding( + 'middleware', + undefined, + true + ) + await processMiddleware() + await propagateServerField( + opts, + 'actualMiddlewareFile', + serverFields.actualMiddlewareFile + ) + await propagateServerField( + opts, + 'middleware', + serverFields.middleware + ) + await writeManifests( + opts.fsChecker.rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + + finishBuilding() + return { event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES } + } + ) + prevMiddleware = true + } else { + middlewareManifests.delete('middleware') + serverFields.actualMiddlewareFile = undefined + serverFields.middleware = undefined + prevMiddleware = false + } + await propagateServerField( + opts, + 'actualMiddlewareFile', + serverFields.actualMiddlewareFile + ) + await propagateServerField(opts, 'middleware', serverFields.middleware) + + currentEntriesHandlingResolve!() + currentEntriesHandlingResolve = undefined + } + } + + handleEntrypointsSubscription().catch((err) => { + console.error(err) + process.exit(1) + }) + } catch (e) { + console.error(e) + } + + // Write empty manifests + await mkdir(join(distDir, 'server'), { recursive: true }) + await mkdir(join(distDir, 'static/development'), { recursive: true }) + await writeFile( + join(distDir, 'package.json'), + JSON.stringify( + { + type: 'commonjs', + }, + null, + 2 + ) + ) + await currentEntriesHandling + await writeManifests( + opts.fsChecker.rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + const overlayMiddleware = getOverlayMiddleware(project) + const versionInfo: VersionInfo = await getVersionInfo( + isTestMode || opts.telemetry.isEnabled + ) + + const hotReloader: NextJsHotReloaderInterface = { + turbopackProject: project, + activeWebpackConfigs: undefined, + serverStats: null, + edgeServerStats: null, + async run(req, res, _parsedUrl) { + // intercept page chunks request and ensure them with turbopack + if (req.url?.startsWith('/_next/static/chunks/pages/')) { + const params = matchNextPageBundleRequest(req.url) + + if (params) { + const decodedPagePath = `/${params.path + .map((param: string) => decodeURIComponent(param)) + .join('/')}` + + const denormalizedPagePath = denormalizePagePath(decodedPagePath) + + await hotReloader + .ensurePage({ + page: denormalizedPagePath, + clientOnly: false, + definition: undefined, + url: req.url, + }) + .catch(console.error) + } + } + + await overlayMiddleware(req, res) + + // Request was not finished. + return { finished: undefined } + }, + + // TODO: Figure out if socket type can match the NextJsHotReloaderInterface + onHMR(req, socket: Socket, head) { + wsServer.handleUpgrade(req, socket, head, (client) => { + clients.add(client) + client.on('close', () => clients.delete(client)) + + client.addEventListener('message', ({ data }) => { + const parsedData = JSON.parse( + typeof data !== 'string' ? data.toString() : data + ) + + // Next.js messages + switch (parsedData.event) { + case 'ping': + // Ping doesn't need additional handling in Turbopack. + break + case 'span-end': { + hotReloaderSpan.manualTraceChild( + parsedData.spanName, + msToNs(parsedData.startTime), + msToNs(parsedData.endTime), + parsedData.attributes + ) + break + } + case 'client-hmr-latency': // { id, startTime, endTime, page, updatedModules, isPageHidden } + hotReloaderSpan.manualTraceChild( + parsedData.event, + msToNs(parsedData.startTime), + msToNs(parsedData.endTime), + { + updatedModules: parsedData.updatedModules, + page: parsedData.page, + isPageHidden: parsedData.isPageHidden, + } + ) + break + case 'client-error': // { errorCount, clientId } + case 'client-warning': // { warningCount, clientId } + case 'client-success': // { clientId } + case 'server-component-reload-page': // { clientId } + case 'client-reload-page': // { clientId } + case 'client-removed-page': // { page } + case 'client-full-reload': // { stackTrace, hadRuntimeError } + case 'client-added-page': + // TODO + break + + default: + // Might be a Turbopack message... + if (!parsedData.type) { + throw new Error(`unrecognized HMR message "${data}"`) + } + } + + // Turbopack messages + switch (parsedData.type) { + case 'turbopack-subscribe': + subscribeToHmrEvents(parsedData.path, client) + break + + case 'turbopack-unsubscribe': + unsubscribeToHmrEvents(parsedData.path, client) + break + + default: + if (!parsedData.event) { + throw new Error(`unrecognized Turbopack HMR message "${data}"`) + } + } + }) + + const turbopackConnected: TurbopackConnectedAction = { + action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED, + } + client.send(JSON.stringify(turbopackConnected)) + + const errors = [] + for (const pageIssues of currentIssues.values()) { + for (const issue of pageIssues.values()) { + errors.push({ + message: formatIssue(issue), + }) + } + } + + const sync: SyncAction = { + action: HMR_ACTIONS_SENT_TO_BROWSER.SYNC, + errors, + warnings: [], + hash: '', + versionInfo, + } + + this.send(sync) + }) + }, + + send(action) { + const payload = JSON.stringify(action) + for (const client of clients) { + client.send(payload) + } + }, + + setHmrServerError(_error) { + // Not implemented yet. + }, + clearHmrServerError() { + // Not implemented yet. + }, + async start() {}, + async stop() { + // Not implemented yet. + }, + async getCompilationErrors(page) { + const thisPageIssues = currentIssues.get(page) + if (thisPageIssues !== undefined && thisPageIssues.size > 0) { + // If there is an error related to the requesting page we display it instead of the first error + return [...thisPageIssues.values()].map( + (issue) => new Error(formatIssue(issue)) + ) + } + + // Otherwise, return all errors across pages + const errors = [] + for (const pageIssues of currentIssues.values()) { + for (const issue of pageIssues.values()) { + errors.push(new Error(formatIssue(issue))) + } + } + return errors + }, + async invalidate({ + // .env files or tsconfig/jsconfig change + reloadAfterInvalidation, + }) { + if (reloadAfterInvalidation) { + await clearAllModuleContexts() + this.send({ + action: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + }) + } + }, + async buildFallbackError() { + // Not implemented yet. + }, + async ensurePage({ + page: inputPage, + // Unused parameters + // clientOnly, + // appPaths, + definition, + isApp, + url: requestUrl, + }) { + const page = definition?.pathname ?? inputPage + + if (page === '/_error') { + let finishBuilding = startBuilding(page, requestUrl) + try { + if (globalEntrypoints.app) { + const writtenEndpoint = await globalEntrypoints.app.writeToDisk() + handleRequireCacheClearing('_app', writtenEndpoint) + processIssues(currentIssues, '_app', writtenEndpoint) + } + await loadBuildManifest(distDir, buildManifests, '_app') + await loadPagesManifest(distDir, pagesManifests, '_app') + await loadFontManifest(distDir, fontManifests, '_app') + + if (globalEntrypoints.document) { + const writtenEndpoint = + await globalEntrypoints.document.writeToDisk() + handleRequireCacheClearing('_document', writtenEndpoint) + changeSubscription( + '_document', + 'server', + false, + globalEntrypoints.document, + () => { + return { action: HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE } + } + ) + processIssues(currentIssues, '_document', writtenEndpoint) + } + await loadPagesManifest(distDir, pagesManifests, '_document') + + if (globalEntrypoints.error) { + const writtenEndpoint = await globalEntrypoints.error.writeToDisk() + handleRequireCacheClearing('_error', writtenEndpoint) + processIssues(currentIssues, page, writtenEndpoint) + } + await loadBuildManifest(distDir, buildManifests, '_error') + await loadPagesManifest(distDir, pagesManifests, '_error') + await loadFontManifest(distDir, fontManifests, '_error') + + await writeManifests( + opts.fsChecker.rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + } finally { + finishBuilding() + } + return + } + await currentEntriesHandling + const route = + currentEntrypoints.get(page) ?? + currentEntrypoints.get( + normalizeAppPath( + normalizeMetadataRoute(definition?.page ?? inputPage) + ) + ) + + if (!route) { + // TODO: why is this entry missing in turbopack? + if (page === '/_app') return + if (page === '/_document') return + if (page === '/middleware') return + if (page === '/src/middleware') return + if (page === '/instrumentation') return + if (page === '/src/instrumentation') return + + throw new PageNotFoundError(`route not found ${page}`) + } + + // We don't throw on ensureOpts.isApp === true for page-api + // since this can happen when app pages make + // api requests to page API routes. + if (isApp && route.type === 'page') { + throw new Error(`mis-matched route type: isApp && page for ${page}`) + } + + const finishBuilding = startBuilding(page, requestUrl) + try { + await handleRouteType( + opts.fsChecker.rewrites, + distDir, + globalEntrypoints, + currentIssues, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints, + handleRequireCacheClearing, + changeSubscription, + readyIds, + page, + route + ) + } finally { + finishBuilding() + } + }, + } + + ;(async function () { + for await (const updateMessage of project.updateInfoSubscribe(30)) { + switch (updateMessage.updateType) { + case 'start': { + hotReloader.send({ action: HMR_ACTIONS_SENT_TO_BROWSER.BUILDING }) + break + } + case 'end': { + sendEnqueuedMessages() + + const errors = new Map() + for (const [, issueMap] of currentIssues) { + for (const [key, issue] of issueMap) { + if (errors.has(key)) continue + + const message = formatIssue(issue) + + errors.set(key, { + message, + details: issue.detail + ? renderStyledStringToErrorAnsi(issue.detail) + : undefined, + }) + } + } + + hotReloader.send({ + action: HMR_ACTIONS_SENT_TO_BROWSER.BUILT, + hash: String(++hmrHash), + errors: [...errors.values()], + warnings: [], + }) + + if (hmrEventHappened) { + const time = updateMessage.value.duration + const timeMessage = + time > 2000 ? `${Math.round(time / 100) / 10}s` : `${time}ms` + Log.event(`Compiled in ${timeMessage}`) + hmrEventHappened = false + } + break + } + default: + } + } + })() + + return hotReloader +} diff --git a/packages/next/src/server/dev/turbopack-utils.ts b/packages/next/src/server/dev/turbopack-utils.ts new file mode 100644 index 0000000000000..df50776b570fc --- /dev/null +++ b/packages/next/src/server/dev/turbopack-utils.ts @@ -0,0 +1,1019 @@ +import { pathToRegexp } from 'next/dist/compiled/path-to-regexp' +import type { ActionManifest } from '../../build/webpack/plugins/flight-client-entry-plugin' +import type { NextFontManifest } from '../../build/webpack/plugins/next-font-manifest-plugin' +import { generateRandomActionKeyRaw } from '../app-render/action-encryption-utils' +import type { LoadableManifest } from '../load-components' +import type { + EdgeFunctionDefinition, + MiddlewareManifest, +} from '../../build/webpack/plugins/middleware-plugin' +import type { PagesManifest } from '../../build/webpack/plugins/pages-manifest-plugin' +import type { AppBuildManifest } from '../../build/webpack/plugins/app-build-manifest-plugin' +import type { BuildManifest } from '../get-page-files' +import type { NextConfigComplete } from '../config-shared' +import loadJsConfig from '../../build/load-jsconfig' +import { join, posix } from 'path' +import { readFile, writeFile } from 'fs/promises' +import { + APP_BUILD_MANIFEST, + APP_PATHS_MANIFEST, + BUILD_MANIFEST, + MIDDLEWARE_MANIFEST, + NEXT_FONT_MANIFEST, + PAGES_MANIFEST, + SERVER_REFERENCE_MANIFEST, + REACT_LOADABLE_MANIFEST, + MIDDLEWARE_BUILD_MANIFEST, + INTERCEPTION_ROUTE_REWRITE_MANIFEST, + MIDDLEWARE_REACT_LOADABLE_MANIFEST, +} from '../../shared/lib/constants' +import { writeFileAtomic } from '../../lib/fs/write-atomic' +import { deleteCache } from '../../build/webpack/plugins/nextjs-require-cache-hot-reloader' +import { + normalizeRewritesForBuildManifest, + type ClientBuildManifest, + srcEmptySsgManifest, +} from '../../build/webpack/plugins/build-manifest-plugin' +import type { SetupOpts } from '../lib/router-utils/setup-dev-bundler' +import { isInterceptionRouteRewrite } from '../../lib/generate-interception-routes-rewrites' +import type { + Issue, + Route, + TurbopackResult, + StyledString, + Endpoint, + WrittenEndpoint, +} from '../../build/swc' +import { + MAGIC_IDENTIFIER_REGEX, + decodeMagicIdentifier, +} from '../../shared/lib/magic-identifier' +import { bold, green, magenta, red } from '../../lib/picocolors' +import { + HMR_ACTIONS_SENT_TO_BROWSER, + type HMR_ACTION_TYPES, +} from './hot-reloader-types' + +export interface InstrumentationDefinition { + files: string[] + name: 'instrumentation' +} +export type TurbopackMiddlewareManifest = MiddlewareManifest & { + instrumentation?: InstrumentationDefinition +} + +export function mergeBuildManifests(manifests: Iterable) { + const manifest: Partial & Pick = { + pages: { + '/_app': [], + }, + // Something in next.js depends on these to exist even for app dir rendering + devFiles: [], + ampDevFiles: [], + polyfillFiles: [], + lowPriorityFiles: [ + 'static/development/_ssgManifest.js', + 'static/development/_buildManifest.js', + ], + rootMainFiles: [], + ampFirstPages: [], + } + for (const m of manifests) { + Object.assign(manifest.pages, m.pages) + if (m.rootMainFiles.length) manifest.rootMainFiles = m.rootMainFiles + } + return manifest +} + +export function mergeAppBuildManifests(manifests: Iterable) { + const manifest: AppBuildManifest = { + pages: {}, + } + for (const m of manifests) { + Object.assign(manifest.pages, m.pages) + } + return manifest +} + +export function mergePagesManifests(manifests: Iterable) { + const manifest: PagesManifest = {} + for (const m of manifests) { + Object.assign(manifest, m) + } + return manifest +} + +export function mergeMiddlewareManifests( + manifests: Iterable +): MiddlewareManifest { + const manifest: MiddlewareManifest = { + version: 2, + middleware: {}, + sortedMiddleware: [], + functions: {}, + } + let instrumentation: InstrumentationDefinition | undefined = undefined + for (const m of manifests) { + Object.assign(manifest.functions, m.functions) + Object.assign(manifest.middleware, m.middleware) + if (m.instrumentation) { + instrumentation = m.instrumentation + } + } + const updateFunctionDefinition = ( + fun: EdgeFunctionDefinition + ): EdgeFunctionDefinition => { + return { + ...fun, + files: [...(instrumentation?.files ?? []), ...fun.files], + } + } + for (const key of Object.keys(manifest.middleware)) { + const value = manifest.middleware[key] + manifest.middleware[key] = updateFunctionDefinition(value) + } + for (const key of Object.keys(manifest.functions)) { + const value = manifest.functions[key] + manifest.functions[key] = updateFunctionDefinition(value) + } + for (const fun of Object.values(manifest.functions).concat( + Object.values(manifest.middleware) + )) { + for (const matcher of fun.matchers) { + if (!matcher.regexp) { + matcher.regexp = pathToRegexp(matcher.originalSource, [], { + delimiter: '/', + sensitive: false, + strict: true, + }).source.replaceAll('\\/', '/') + } + } + } + manifest.sortedMiddleware = Object.keys(manifest.middleware) + + return manifest +} + +export async function mergeActionManifests( + manifests: Iterable +) { + type ActionEntries = ActionManifest['edge' | 'node'] + const manifest: ActionManifest = { + node: {}, + edge: {}, + encryptionKey: await generateRandomActionKeyRaw(true), + } + + function mergeActionIds( + actionEntries: ActionEntries, + other: ActionEntries + ): void { + for (const key in other) { + const action = (actionEntries[key] ??= { + workers: {}, + layer: {}, + }) + Object.assign(action.workers, other[key].workers) + Object.assign(action.layer, other[key].layer) + } + } + + for (const m of manifests) { + mergeActionIds(manifest.node, m.node) + mergeActionIds(manifest.edge, m.edge) + } + + return manifest +} + +export function mergeFontManifests(manifests: Iterable) { + const manifest: NextFontManifest = { + app: {}, + appUsingSizeAdjust: false, + pages: {}, + pagesUsingSizeAdjust: false, + } + for (const m of manifests) { + Object.assign(manifest.app, m.app) + Object.assign(manifest.pages, m.pages) + + manifest.appUsingSizeAdjust = + manifest.appUsingSizeAdjust || m.appUsingSizeAdjust + manifest.pagesUsingSizeAdjust = + manifest.pagesUsingSizeAdjust || m.pagesUsingSizeAdjust + } + return manifest +} + +export function mergeLoadableManifests(manifests: Iterable) { + const manifest: LoadableManifest = {} + for (const m of manifests) { + Object.assign(manifest, m) + } + return manifest +} + +export async function getTurbopackJsConfig( + dir: string, + nextConfig: NextConfigComplete +) { + const { jsConfig } = await loadJsConfig(dir, nextConfig) + return jsConfig ?? { compilerOptions: {} } +} + +export async function readPartialManifest( + distDir: string, + name: + | typeof MIDDLEWARE_MANIFEST + | typeof BUILD_MANIFEST + | typeof APP_BUILD_MANIFEST + | typeof PAGES_MANIFEST + | typeof APP_PATHS_MANIFEST + | `${typeof SERVER_REFERENCE_MANIFEST}.json` + | `${typeof NEXT_FONT_MANIFEST}.json` + | typeof REACT_LOADABLE_MANIFEST, + pageName: string, + type: + | 'pages' + | 'app' + | 'app-route' + | 'middleware' + | 'instrumentation' = 'pages' +): Promise { + const manifestPath = posix.join( + distDir, + `server`, + type === 'app-route' ? 'app' : type, + type === 'middleware' || type === 'instrumentation' + ? '' + : pageName === '/' + ? 'index' + : pageName === '/index' || pageName.startsWith('/index/') + ? `/index${pageName}` + : pageName, + type === 'app' ? 'page' : type === 'app-route' ? 'route' : '', + name + ) + return JSON.parse(await readFile(posix.join(manifestPath), 'utf-8')) as T +} + +export type BuildManifests = Map +export type AppBuildManifests = Map +export type PagesManifests = Map +export type AppPathsManifests = Map +export type MiddlewareManifests = Map +export type ActionManifests = Map +export type FontManifests = Map +export type LoadableManifests = Map +export type CurrentEntrypoints = Map + +export async function loadMiddlewareManifest( + distDir: string, + middlewareManifests: MiddlewareManifests, + pageName: string, + type: 'pages' | 'app' | 'app-route' | 'middleware' | 'instrumentation' +): Promise { + middlewareManifests.set( + pageName, + await readPartialManifest(distDir, MIDDLEWARE_MANIFEST, pageName, type) + ) +} + +export async function loadBuildManifest( + distDir: string, + buildManifests: BuildManifests, + pageName: string, + type: 'app' | 'pages' = 'pages' +): Promise { + buildManifests.set( + pageName, + await readPartialManifest(distDir, BUILD_MANIFEST, pageName, type) + ) +} + +async function loadAppBuildManifest( + distDir: string, + appBuildManifests: AppBuildManifests, + pageName: string +): Promise { + appBuildManifests.set( + pageName, + await readPartialManifest(distDir, APP_BUILD_MANIFEST, pageName, 'app') + ) +} + +export async function loadPagesManifest( + distDir: string, + pagesManifests: PagesManifests, + pageName: string +): Promise { + pagesManifests.set( + pageName, + await readPartialManifest(distDir, PAGES_MANIFEST, pageName) + ) +} + +async function loadAppPathManifest( + distDir: string, + appPathsManifests: AppPathsManifests, + pageName: string, + type: 'app' | 'app-route' = 'app' +): Promise { + appPathsManifests.set( + pageName, + await readPartialManifest(distDir, APP_PATHS_MANIFEST, pageName, type) + ) +} + +async function loadActionManifest( + distDir: string, + actionManifests: ActionManifests, + pageName: string +): Promise { + actionManifests.set( + pageName, + await readPartialManifest( + distDir, + `${SERVER_REFERENCE_MANIFEST}.json`, + pageName, + 'app' + ) + ) +} + +export async function loadFontManifest( + distDir: string, + fontManifests: FontManifests, + pageName: string, + type: 'app' | 'pages' = 'pages' +): Promise { + fontManifests.set( + pageName, + await readPartialManifest( + distDir, + `${NEXT_FONT_MANIFEST}.json`, + pageName, + type + ) + ) +} + +async function loadLoadableManifest( + distDir: string, + loadableManifests: LoadableManifests, + pageName: string, + type: 'app' | 'pages' = 'pages' +): Promise { + loadableManifests.set( + pageName, + await readPartialManifest(distDir, REACT_LOADABLE_MANIFEST, pageName, type) + ) +} + +async function writeBuildManifest( + distDir: string, + buildManifests: BuildManifests, + currentEntrypoints: CurrentEntrypoints, + rewrites: SetupOpts['fsChecker']['rewrites'] +): Promise { + const buildManifest = mergeBuildManifests(buildManifests.values()) + const buildManifestPath = join(distDir, BUILD_MANIFEST) + const middlewareBuildManifestPath = join( + distDir, + 'server', + `${MIDDLEWARE_BUILD_MANIFEST}.js` + ) + const interceptionRewriteManifestPath = join( + distDir, + 'server', + `${INTERCEPTION_ROUTE_REWRITE_MANIFEST}.js` + ) + deleteCache(buildManifestPath) + deleteCache(middlewareBuildManifestPath) + deleteCache(interceptionRewriteManifestPath) + await writeFileAtomic( + buildManifestPath, + JSON.stringify(buildManifest, null, 2) + ) + await writeFileAtomic( + middlewareBuildManifestPath, + `self.__BUILD_MANIFEST=${JSON.stringify(buildManifest)};` + ) + + const interceptionRewrites = JSON.stringify( + rewrites.beforeFiles.filter(isInterceptionRouteRewrite) + ) + + await writeFileAtomic( + interceptionRewriteManifestPath, + `self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST=${JSON.stringify( + interceptionRewrites + )};` + ) + + const content: ClientBuildManifest = { + __rewrites: rewrites + ? (normalizeRewritesForBuildManifest(rewrites) as any) + : { afterFiles: [], beforeFiles: [], fallback: [] }, + ...Object.fromEntries( + [...currentEntrypoints.keys()].map((pathname) => [ + pathname, + `static/chunks/pages${pathname === '/' ? '/index' : pathname}.js`, + ]) + ), + sortedPages: [...currentEntrypoints.keys()], + } + const buildManifestJs = `self.__BUILD_MANIFEST = ${JSON.stringify( + content + )};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()` + await writeFileAtomic( + join(distDir, 'static', 'development', '_buildManifest.js'), + buildManifestJs + ) + await writeFileAtomic( + join(distDir, 'static', 'development', '_ssgManifest.js'), + srcEmptySsgManifest + ) +} + +async function writeFallbackBuildManifest( + distDir: string, + buildManifests: BuildManifests +): Promise { + const fallbackBuildManifest = mergeBuildManifests( + [buildManifests.get('_app'), buildManifests.get('_error')].filter( + Boolean + ) as BuildManifest[] + ) + const fallbackBuildManifestPath = join(distDir, `fallback-${BUILD_MANIFEST}`) + deleteCache(fallbackBuildManifestPath) + await writeFileAtomic( + fallbackBuildManifestPath, + JSON.stringify(fallbackBuildManifest, null, 2) + ) +} + +async function writeAppBuildManifest( + distDir: string, + appBuildManifests: AppBuildManifests +): Promise { + const appBuildManifest = mergeAppBuildManifests(appBuildManifests.values()) + const appBuildManifestPath = join(distDir, APP_BUILD_MANIFEST) + deleteCache(appBuildManifestPath) + await writeFileAtomic( + appBuildManifestPath, + JSON.stringify(appBuildManifest, null, 2) + ) +} + +async function writePagesManifest( + distDir: string, + pagesManifests: PagesManifests +): Promise { + const pagesManifest = mergePagesManifests(pagesManifests.values()) + const pagesManifestPath = join(distDir, 'server', PAGES_MANIFEST) + deleteCache(pagesManifestPath) + await writeFileAtomic( + pagesManifestPath, + JSON.stringify(pagesManifest, null, 2) + ) +} + +async function writeAppPathsManifest( + distDir: string, + appPathsManifests: AppPathsManifests +): Promise { + const appPathsManifest = mergePagesManifests(appPathsManifests.values()) + const appPathsManifestPath = join(distDir, 'server', APP_PATHS_MANIFEST) + deleteCache(appPathsManifestPath) + await writeFileAtomic( + appPathsManifestPath, + JSON.stringify(appPathsManifest, null, 2) + ) +} + +async function writeMiddlewareManifest( + distDir: string, + middlewareManifests: MiddlewareManifests +): Promise { + const middlewareManifest = mergeMiddlewareManifests( + middlewareManifests.values() + ) + const middlewareManifestPath = join(distDir, 'server', MIDDLEWARE_MANIFEST) + deleteCache(middlewareManifestPath) + await writeFileAtomic( + middlewareManifestPath, + JSON.stringify(middlewareManifest, null, 2) + ) +} + +async function writeActionManifest( + distDir: string, + actionManifests: ActionManifests +): Promise { + const actionManifest = await mergeActionManifests(actionManifests.values()) + const actionManifestJsonPath = join( + distDir, + 'server', + `${SERVER_REFERENCE_MANIFEST}.json` + ) + const actionManifestJsPath = join( + distDir, + 'server', + `${SERVER_REFERENCE_MANIFEST}.js` + ) + const json = JSON.stringify(actionManifest, null, 2) + deleteCache(actionManifestJsonPath) + deleteCache(actionManifestJsPath) + await writeFile(actionManifestJsonPath, json, 'utf-8') + await writeFile( + actionManifestJsPath, + `self.__RSC_SERVER_MANIFEST=${JSON.stringify(json)}`, + 'utf-8' + ) +} + +async function writeFontManifest( + distDir: string, + fontManifests: FontManifests +): Promise { + const fontManifest = mergeFontManifests(fontManifests.values()) + const json = JSON.stringify(fontManifest, null, 2) + + const fontManifestJsonPath = join( + distDir, + 'server', + `${NEXT_FONT_MANIFEST}.json` + ) + const fontManifestJsPath = join(distDir, 'server', `${NEXT_FONT_MANIFEST}.js`) + deleteCache(fontManifestJsonPath) + deleteCache(fontManifestJsPath) + await writeFileAtomic(fontManifestJsonPath, json) + await writeFileAtomic( + fontManifestJsPath, + `self.__NEXT_FONT_MANIFEST=${JSON.stringify(json)}` + ) +} + +async function writeLoadableManifest( + distDir: string, + loadableManifests: LoadableManifests +): Promise { + const loadableManifest = mergeLoadableManifests(loadableManifests.values()) + const loadableManifestPath = join(distDir, REACT_LOADABLE_MANIFEST) + const middlewareloadableManifestPath = join( + distDir, + 'server', + `${MIDDLEWARE_REACT_LOADABLE_MANIFEST}.js` + ) + + const json = JSON.stringify(loadableManifest, null, 2) + + deleteCache(loadableManifestPath) + deleteCache(middlewareloadableManifestPath) + await writeFileAtomic(loadableManifestPath, json) + await writeFileAtomic( + middlewareloadableManifestPath, + `self.__REACT_LOADABLE_MANIFEST=${JSON.stringify(json)}` + ) +} + +export async function writeManifests( + rewrites: SetupOpts['fsChecker']['rewrites'], + distDir: string, + buildManifests: BuildManifests, + appBuildManifests: AppBuildManifests, + pagesManifests: PagesManifests, + appPathsManifests: AppPathsManifests, + middlewareManifests: MiddlewareManifests, + actionManifests: ActionManifests, + fontManifests: FontManifests, + loadableManifests: LoadableManifests, + currentEntrypoints: CurrentEntrypoints +): Promise { + await writeBuildManifest( + distDir, + buildManifests, + currentEntrypoints, + rewrites + ) + await writeAppBuildManifest(distDir, appBuildManifests) + await writePagesManifest(distDir, pagesManifests) + await writeAppPathsManifest(distDir, appPathsManifests) + await writeMiddlewareManifest(distDir, middlewareManifests) + await writeActionManifest(distDir, actionManifests) + await writeFontManifest(distDir, fontManifests) + await writeLoadableManifest(distDir, loadableManifests) + await writeFallbackBuildManifest(distDir, buildManifests) +} + +class ModuleBuildError extends Error {} + +function issueKey(issue: Issue): string { + return [ + issue.severity, + issue.filePath, + JSON.stringify(issue.title), + JSON.stringify(issue.description), + ].join('-') +} + +export function formatIssue(issue: Issue) { + const { filePath, title, description, source } = issue + let { documentationLink } = issue + let formattedTitle = renderStyledStringToErrorAnsi(title).replace( + /\n/g, + '\n ' + ) + + // TODO: Use error codes to identify these + // TODO: Generalize adapting Turbopack errors to Next.js errors + if (formattedTitle.includes('Module not found')) { + // For compatiblity with webpack + // TODO: include columns in webpack errors. + documentationLink = 'https://nextjs.org/docs/messages/module-not-found' + } + + let formattedFilePath = filePath + .replace('[project]/', './') + .replaceAll('/./', '/') + .replace('\\\\?\\', '') + + let message + + if (source && source.range) { + const { start } = source.range + message = `${formattedFilePath}:${start.line + 1}:${ + start.column + 1 + }\n${formattedTitle}` + } else if (formattedFilePath) { + message = `${formattedFilePath}\n${formattedTitle}` + } else { + message = formattedTitle + } + message += '\n' + + if (source?.range && source.source.content) { + const { start, end } = source.range + const { codeFrameColumns } = require('next/dist/compiled/babel/code-frame') + + message += + codeFrameColumns( + source.source.content, + { + start: { + line: start.line + 1, + column: start.column + 1, + }, + end: { + line: end.line + 1, + column: end.column + 1, + }, + }, + { forceColor: true } + ).trim() + '\n\n' + } + + if (description) { + message += renderStyledStringToErrorAnsi(description) + '\n\n' + } + + // TODO: make it possible to enable this for debugging, but not in tests. + // if (detail) { + // message += renderStyledStringToErrorAnsi(detail) + '\n\n' + // } + + // TODO: Include a trace from the issue. + + if (documentationLink) { + message += documentationLink + '\n\n' + } + + return message +} + +export type CurrentIssues = Map> + +export function processIssues( + currentIssues: CurrentIssues, + name: string, + result: TurbopackResult, + throwIssue = false +) { + const newIssues = new Map() + currentIssues.set(name, newIssues) + + const relevantIssues = new Set() + + for (const issue of result.issues) { + if (issue.severity !== 'error' && issue.severity !== 'fatal') continue + const key = issueKey(issue) + const formatted = formatIssue(issue) + newIssues.set(key, issue) + + // We show errors in node_modules to the console, but don't throw for them + if (/(^|\/)node_modules(\/|$)/.test(issue.filePath)) continue + relevantIssues.add(formatted) + } + + if (relevantIssues.size && throwIssue) { + throw new ModuleBuildError([...relevantIssues].join('\n\n')) + } +} + +export function renderStyledStringToErrorAnsi(string: StyledString): string { + function decodeMagicIdentifiers(str: string): string { + return str.replaceAll(MAGIC_IDENTIFIER_REGEX, (ident) => { + try { + return magenta(`{${decodeMagicIdentifier(ident)}}`) + } catch (e) { + return magenta(`{${ident} (decoding failed: ${e})}`) + } + }) + } + + switch (string.type) { + case 'text': + return decodeMagicIdentifiers(string.value) + case 'strong': + return bold(red(decodeMagicIdentifiers(string.value))) + case 'code': + return green(decodeMagicIdentifiers(string.value)) + case 'line': + return string.value.map(renderStyledStringToErrorAnsi).join('') + case 'stack': + return string.value.map(renderStyledStringToErrorAnsi).join('\n') + default: + throw new Error('Unknown StyledString type', string) + } +} + +const MILLISECONDS_IN_NANOSECOND = 1_000_000 + +export function msToNs(ms: number): bigint { + return BigInt(Math.floor(ms)) * BigInt(MILLISECONDS_IN_NANOSECOND) +} + +export interface GlobalEntrypoints { + app: Endpoint | undefined + document: Endpoint | undefined + error: Endpoint | undefined +} + +export type HandleRequireCacheClearing = ( + id: string, + result: TurbopackResult +) => void + +export type ChangeSubscription = ( + page: string, + type: 'client' | 'server', + includeIssues: boolean, + endpoint: Endpoint | undefined, + makePayload: ( + page: string, + change: TurbopackResult + ) => Promise | HMR_ACTION_TYPES | void +) => Promise + +export type ReadyIds = Set + +export async function handleRouteType( + rewrites: SetupOpts['fsChecker']['rewrites'], + distDir: string, + globalEntrypoints: GlobalEntrypoints, + currentIssues: CurrentIssues, + buildManifests: BuildManifests, + appBuildManifests: AppBuildManifests, + pagesManifests: PagesManifests, + appPathsManifests: AppPathsManifests, + middlewareManifests: MiddlewareManifests, + actionManifests: ActionManifests, + fontManifests: FontManifests, + loadableManifests: LoadableManifests, + currentEntrypoints: CurrentEntrypoints, + handleRequireCacheClearing: HandleRequireCacheClearing | undefined, + changeSubscription: ChangeSubscription | undefined, + readyIds: ReadyIds, + page: string, + route: Route +) { + switch (route.type) { + case 'page': { + try { + if (globalEntrypoints.app) { + const writtenEndpoint = await globalEntrypoints.app.writeToDisk() + handleRequireCacheClearing?.('_app', writtenEndpoint) + processIssues(currentIssues, '_app', writtenEndpoint) + } + await loadBuildManifest(distDir, buildManifests, '_app') + await loadPagesManifest(distDir, pagesManifests, '_app') + + if (globalEntrypoints.document) { + const writtenEndpoint = await globalEntrypoints.document.writeToDisk() + handleRequireCacheClearing?.('_document', writtenEndpoint) + processIssues(currentIssues, '_document', writtenEndpoint) + } + await loadPagesManifest(distDir, pagesManifests, '_document') + + const writtenEndpoint = await route.htmlEndpoint.writeToDisk() + handleRequireCacheClearing?.(page, writtenEndpoint) + + const type = writtenEndpoint?.type + + await loadBuildManifest(distDir, buildManifests, page) + await loadPagesManifest(distDir, pagesManifests, page) + if (type === 'edge') { + await loadMiddlewareManifest( + distDir, + middlewareManifests, + page, + 'pages' + ) + } else { + middlewareManifests.delete(page) + } + await loadFontManifest(distDir, fontManifests, page, 'pages') + await loadLoadableManifest(distDir, loadableManifests, page, 'pages') + + await writeManifests( + rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + + processIssues(currentIssues, page, writtenEndpoint) + } finally { + changeSubscription?.( + page, + 'server', + false, + route.dataEndpoint, + (pageName) => { + // Report the next compilation again + readyIds.delete(page) + return { + event: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ONLY_CHANGES, + pages: [pageName], + } + } + ) + changeSubscription?.(page, 'client', false, route.htmlEndpoint, () => { + return { + event: HMR_ACTIONS_SENT_TO_BROWSER.CLIENT_CHANGES, + } + }) + if (globalEntrypoints.document) { + changeSubscription?.( + '_document', + 'server', + false, + globalEntrypoints.document, + () => { + return { action: HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE } + } + ) + } + } + + break + } + case 'page-api': { + const writtenEndpoint = await route.endpoint.writeToDisk() + handleRequireCacheClearing?.(page, writtenEndpoint) + + const type = writtenEndpoint?.type + + await loadPagesManifest(distDir, pagesManifests, page) + if (type === 'edge') { + await loadMiddlewareManifest( + distDir, + middlewareManifests, + page, + 'pages' + ) + } else { + middlewareManifests.delete(page) + } + await loadLoadableManifest(distDir, loadableManifests, page, 'pages') + + await writeManifests( + rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + + processIssues(currentIssues, page, writtenEndpoint) + + break + } + case 'app-page': { + const writtenEndpoint = await route.htmlEndpoint.writeToDisk() + handleRequireCacheClearing?.(page, writtenEndpoint) + + changeSubscription?.( + page, + 'server', + true, + route.rscEndpoint, + (_page, change) => { + if (change.issues.some((issue) => issue.severity === 'error')) { + // Ignore any updates that has errors + // There will be another update without errors eventually + return + } + // Report the next compilation again + readyIds.delete(page) + return { + action: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + } + } + ) + + const type = writtenEndpoint?.type + + if (type === 'edge') { + await loadMiddlewareManifest(distDir, middlewareManifests, page, 'app') + } else { + middlewareManifests.delete(page) + } + + await loadAppBuildManifest(distDir, appBuildManifests, page) + await loadBuildManifest(distDir, buildManifests, page, 'app') + await loadAppPathManifest(distDir, appPathsManifests, page, 'app') + await loadActionManifest(distDir, actionManifests, page) + await loadFontManifest(distDir, fontManifests, page, 'app') + await writeManifests( + rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + + processIssues(currentIssues, page, writtenEndpoint, true) + + break + } + case 'app-route': { + const writtenEndpoint = await route.endpoint.writeToDisk() + handleRequireCacheClearing?.(page, writtenEndpoint) + + const type = writtenEndpoint?.type + + await loadAppPathManifest(distDir, appPathsManifests, page, 'app-route') + if (type === 'edge') { + await loadMiddlewareManifest( + distDir, + middlewareManifests, + page, + 'app-route' + ) + } else { + middlewareManifests.delete(page) + } + + await writeManifests( + rewrites, + distDir, + buildManifests, + appBuildManifests, + pagesManifests, + appPathsManifests, + middlewareManifests, + actionManifests, + fontManifests, + loadableManifests, + currentEntrypoints + ) + processIssues(currentIssues, page, writtenEndpoint, true) + + break + } + default: { + throw new Error(`unknown route type ${(route as any).type} for ${page}`) + } + } +} diff --git a/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts b/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts index f035e1ba404dc..7f0e45d8e30c3 100644 --- a/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts +++ b/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts @@ -1,36 +1,11 @@ import type { NextConfigComplete } from '../../config-shared' -import type { - Endpoint, - Route, - TurbopackResult, - WrittenEndpoint, - Issue, - StyledString, -} from '../../../build/swc' -import type { Socket } from 'net' import type { FilesystemDynamicRoute } from './filesystem' import type { UnwrapPromise } from '../../../lib/coalesced-function' import type { MiddlewareMatcher } from '../../../build/analysis/get-page-static-info' -import type { OutputState } from '../../../build/output/store' import type { MiddlewareRouteMatch } from '../../../shared/lib/router/utils/middleware-route-matcher' -import type { BuildManifest } from '../../get-page-files' -import type { PagesManifest } from '../../../build/webpack/plugins/pages-manifest-plugin' -import type { AppBuildManifest } from '../../../build/webpack/plugins/app-build-manifest-plugin' import type { PropagateToWorkersField } from './types' -import type { - EdgeFunctionDefinition, - MiddlewareManifest, -} from '../../../build/webpack/plugins/middleware-plugin' -import type { - CompilationError, - HMR_ACTION_TYPES, - NextJsHotReloaderInterface, - ReloadPageAction, - SyncAction, - TurbopackConnectedAction, -} from '../../dev/hot-reloader-types' - -import ws from 'next/dist/compiled/ws' +import type { NextJsHotReloaderInterface } from '../../dev/hot-reloader-types' + import { createDefineEnv } from '../../../build/swc' import fs from 'fs' import url from 'url' @@ -42,10 +17,7 @@ import isError from '../../../lib/is-error' import findUp from 'next/dist/compiled/find-up' import { buildCustomRoute } from './filesystem' import * as Log from '../../../build/output/log' -import HotReloaderWebpack, { - getVersionInfo, - matchNextPageBundleRequest, -} from '../../dev/hot-reloader-webpack' +import HotReloaderWebpack from '../../dev/hot-reloader-webpack' import { setGlobal } from '../../../trace/shared' import type { Telemetry } from '../../../telemetry/storage' import type { IncomingMessage, ServerResponse } from 'http' @@ -68,29 +40,14 @@ import { getRouteMatcher } from '../../../shared/lib/router/utils/route-matcher' import { normalizePathSep } from '../../../shared/lib/page-path/normalize-path-sep' import { createClientRouterFilter } from '../../../lib/create-client-router-filter' import { absolutePathToPage } from '../../../shared/lib/page-path/absolute-path-to-page' -import { - generateInterceptionRoutesRewrites, - isInterceptionRouteRewrite, -} from '../../../lib/generate-interception-routes-rewrites' -import { store as consoleStore } from '../../../build/output/store' +import { generateInterceptionRoutesRewrites } from '../../../lib/generate-interception-routes-rewrites' import { - APP_BUILD_MANIFEST, - APP_PATHS_MANIFEST, - BUILD_MANIFEST, CLIENT_STATIC_FILES_PATH, COMPILER_NAMES, DEV_CLIENT_PAGES_MANIFEST, DEV_MIDDLEWARE_MANIFEST, - MIDDLEWARE_MANIFEST, - NEXT_FONT_MANIFEST, - PAGES_MANIFEST, PHASE_DEVELOPMENT_SERVER, - SERVER_REFERENCE_MANIFEST, - REACT_LOADABLE_MANIFEST, - MIDDLEWARE_REACT_LOADABLE_MANIFEST, - MIDDLEWARE_BUILD_MANIFEST, - INTERCEPTION_ROUTE_REWRITE_MANIFEST, } from '../../../shared/lib/constants' import { getMiddlewareRouteMatcher } from '../../../shared/lib/router/utils/middleware-route-matcher' @@ -108,53 +65,14 @@ import { getSourceById, parseStack, } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware' -import { - getOverlayMiddleware, - createOriginalStackFrame as createOriginalTurboStackFrame, -} from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware-turbopack' -import { mkdir, readFile, writeFile } from 'fs/promises' -import { PageNotFoundError } from '../../../shared/lib/utils' -import { - type ClientBuildManifest, - normalizeRewritesForBuildManifest, - srcEmptySsgManifest, -} from '../../../build/webpack/plugins/build-manifest-plugin' +import { createOriginalStackFrame as createOriginalTurboStackFrame } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware-turbopack' import { devPageFiles } from '../../../build/webpack/plugins/next-types-plugin/shared' import type { LazyRenderServerInstance } from '../router-server' -import { pathToRegexp } from 'next/dist/compiled/path-to-regexp' import { HMR_ACTIONS_SENT_TO_BROWSER } from '../../dev/hot-reloader-types' -import type { Update as TurbopackUpdate } from '../../../build/swc' -import { debounce } from '../../utils' -import { - deleteAppClientCache, - deleteCache, -} from '../../../build/webpack/plugins/nextjs-require-cache-hot-reloader' -import { normalizeMetadataRoute } from '../../../lib/metadata/get-metadata-route' -import { clearModuleContext, clearAllModuleContexts } from '../render-server' -import type { ActionManifest } from '../../../build/webpack/plugins/flight-client-entry-plugin' -import { denormalizePagePath } from '../../../shared/lib/page-path/denormalize-page-path' -import type { LoadableManifest } from '../../load-components' -import { generateRandomActionKeyRaw } from '../../app-render/action-encryption-utils' -import { bold, green, magenta, red } from '../../../lib/picocolors' -import { writeFileAtomic } from '../../../lib/fs/write-atomic' import { PAGE_TYPES } from '../../../lib/page-types' -import { trace } from '../../../trace' -import type { VersionInfo } from '../../dev/parse-version-info' -import type { NextFontManifest } from '../../../build/webpack/plugins/next-font-manifest-plugin' -import { - MAGIC_IDENTIFIER_REGEX, - decodeMagicIdentifier, -} from '../../../shared/lib/magic-identifier' - -const MILLISECONDS_IN_NANOSECOND = 1_000_000 -const wsServer = new ws.Server({ noServer: true }) -const isTestMode = !!( - process.env.NEXT_TEST_MODE || - process.env.__NEXT_TEST_MODE || - process.env.DEBUG -) - -type SetupOpts = { +import { createHotReloaderTurbopack } from '../../dev/hot-reloader-turbopack' + +export type SetupOpts = { renderServer: LazyRenderServerInstance dir: string turbo?: boolean @@ -169,6 +87,23 @@ type SetupOpts = { port: number } +export type ServerFields = { + actualMiddlewareFile?: string | undefined + actualInstrumentationHookFile?: string | undefined + appPathRoutes?: Record + middleware?: + | { + page: string + match: MiddlewareRouteMatch + matchers?: MiddlewareMatcher[] + } + | undefined + hasAppNotFound?: boolean + interceptionRoutes?: ReturnType< + typeof import('./filesystem').buildCustomRoute + >[] +} + async function verifyTypeScript(opts: SetupOpts) { let usingTypeScript = false const verifyResult = await verifyTypeScriptSetup({ @@ -190,6 +125,14 @@ async function verifyTypeScript(opts: SetupOpts) { class ModuleBuildError extends Error {} +export async function propagateServerField( + opts: SetupOpts, + field: PropagateToWorkersField, + args: any +) { + await opts.renderServer?.instance?.propagateServerField(opts.dir, field, args) +} + async function startWatcher(opts: SetupOpts) { const { nextConfig, appDir, pagesDir, dir } = opts const { useFileSystemPublicRoutes } = nextConfig @@ -205,1632 +148,10 @@ async function startWatcher(opts: SetupOpts) { appDir ) - async function propagateServerField( - field: PropagateToWorkersField, - args: any - ) { - await opts.renderServer?.instance?.propagateServerField( - opts.dir, - field, - args - ) - } - - const serverFields: { - actualMiddlewareFile?: string | undefined - actualInstrumentationHookFile?: string | undefined - appPathRoutes?: Record - middleware?: - | { - page: string - match: MiddlewareRouteMatch - matchers?: MiddlewareMatcher[] - } - | undefined - hasAppNotFound?: boolean - interceptionRoutes?: ReturnType< - typeof import('./filesystem').buildCustomRoute - >[] - } = {} - - async function createHotReloaderTurbopack(): Promise { - const { loadBindings } = - require('../../../build/swc') as typeof import('../../../build/swc') - - let bindings = await loadBindings() - - const { jsConfig } = await loadJsConfig(dir, opts.nextConfig) - - // For the debugging purpose, check if createNext or equivalent next instance setup in test cases - // works correctly. Normally `run-test` hides output so only will be visible when `--debug` flag is used. - if (process.env.TURBOPACK && isTestMode) { - require('console').log('Creating turbopack project', { - dir, - testMode: isTestMode, - }) - } - - const hasRewrites = - opts.fsChecker.rewrites.afterFiles.length > 0 || - opts.fsChecker.rewrites.beforeFiles.length > 0 || - opts.fsChecker.rewrites.fallback.length > 0 - - const hotReloaderSpan = trace('hot-reloader', undefined, { - version: process.env.__NEXT_VERSION as string, - }) - // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing - // of the current `next dev` invocation. - hotReloaderSpan.stop() - - const project = await bindings.turbo.createProject({ - projectPath: dir, - rootPath: opts.nextConfig.experimental.outputFileTracingRoot || dir, - nextConfig: opts.nextConfig, - jsConfig: jsConfig ?? { compilerOptions: {} }, - watch: true, - env: process.env as Record, - defineEnv: createDefineEnv({ - isTurbopack: true, - allowedRevalidateHeaderKeys: undefined, - clientRouterFilters: undefined, - config: nextConfig, - dev: true, - distDir, - fetchCacheKeyPrefix: undefined, - hasRewrites, - middlewareMatchers: undefined, - previewModeId: undefined, - }), - serverAddr: `127.0.0.1:${opts.port}`, - }) - const iter = project.entrypointsSubscribe() - const curEntries: Map = new Map() - const changeSubscriptions: Map< - string, - Promise> - > = new Map() - let prevMiddleware: boolean | undefined = undefined - const globalEntries: { - app: Endpoint | undefined - document: Endpoint | undefined - error: Endpoint | undefined - } = { - app: undefined, - document: undefined, - error: undefined, - } - let currentEntriesHandlingResolve: ((value?: unknown) => void) | undefined - let currentEntriesHandling = new Promise( - (resolve) => (currentEntriesHandlingResolve = resolve) - ) - const hmrPayloads = new Map() - const turbopackUpdates: TurbopackUpdate[] = [] - - const issues = new Map>() - - function issueKey(issue: Issue): string { - return [ - issue.severity, - issue.filePath, - JSON.stringify(issue.title), - JSON.stringify(issue.description), - ].join('-') - } - - function formatIssue(issue: Issue) { - const { filePath, title, description, source } = issue - let { documentationLink } = issue - let formattedTitle = renderStyledStringToErrorAnsi(title).replace( - /\n/g, - '\n ' - ) - - // TODO: Use error codes to identify these - // TODO: Generalize adapting Turbopack errors to Next.js errors - if (formattedTitle.includes('Module not found')) { - // For compatiblity with webpack - // TODO: include columns in webpack errors. - documentationLink = 'https://nextjs.org/docs/messages/module-not-found' - } - - let formattedFilePath = filePath - .replace('[project]/', './') - .replaceAll('/./', '/') - .replace('\\\\?\\', '') - - let message - - if (source && source.range) { - const { start } = source.range - message = `${formattedFilePath}:${start.line + 1}:${ - start.column + 1 - }\n${formattedTitle}` - } else if (formattedFilePath) { - message = `${formattedFilePath}\n${formattedTitle}` - } else { - message = formattedTitle - } - message += '\n' - - if (source?.range && source.source.content) { - const { start, end } = source.range - const { - codeFrameColumns, - } = require('next/dist/compiled/babel/code-frame') - - message += - codeFrameColumns( - source.source.content, - { - start: { - line: start.line + 1, - column: start.column + 1, - }, - end: { - line: end.line + 1, - column: end.column + 1, - }, - }, - { forceColor: true } - ).trim() + '\n\n' - } - - if (description) { - message += renderStyledStringToErrorAnsi(description) + '\n\n' - } - - // TODO: make it possible to enable this for debugging, but not in tests. - // if (detail) { - // message += renderStyledStringToErrorAnsi(detail) + '\n\n' - // } - - // TODO: Include a trace from the issue. - - if (documentationLink) { - message += documentationLink + '\n\n' - } - - return message - } - - function processIssues( - name: string, - result: TurbopackResult, - throwIssue = false - ) { - const newIssues = new Map() - issues.set(name, newIssues) - - const relevantIssues = new Set() - - for (const issue of result.issues) { - if (issue.severity !== 'error' && issue.severity !== 'fatal') continue - const key = issueKey(issue) - const formatted = formatIssue(issue) - newIssues.set(key, issue) - - // We show errors in node_modules to the console, but don't throw for them - if (/(^|\/)node_modules(\/|$)/.test(issue.filePath)) continue - relevantIssues.add(formatted) - } - - if (relevantIssues.size && throwIssue) { - throw new ModuleBuildError([...relevantIssues].join('\n\n')) - } - } - - const serverPathState = new Map() - - async function processResult( - id: string, - result: TurbopackResult - ): Promise> { - // Figure out if the server files have changed - let hasChange = false - for (const { path: p, contentHash } of result.serverPaths) { - // We ignore source maps - if (p.endsWith('.map')) continue - let key = `${id}:${p}` - const localHash = serverPathState.get(key) - const globalHash = serverPathState.get(p) - if ( - (localHash && localHash !== contentHash) || - (globalHash && globalHash !== contentHash) - ) { - hasChange = true - serverPathState.set(key, contentHash) - serverPathState.set(p, contentHash) - } else { - if (!localHash) { - serverPathState.set(key, contentHash) - } - if (!globalHash) { - serverPathState.set(p, contentHash) - } - } - } - - if (!hasChange) { - return result - } - - const hasAppPaths = result.serverPaths.some(({ path: p }) => - p.startsWith('server/app') - ) - - if (hasAppPaths) { - deleteAppClientCache() - } - - const serverPaths = result.serverPaths.map(({ path: p }) => - path.join(distDir, p) - ) - - for (const file of serverPaths) { - clearModuleContext(file) - deleteCache(file) - } - - return result - } - - const buildingIds = new Set() - const readyIds = new Set() - - function startBuilding( - id: string, - requestUrl: string | undefined, - forceRebuild: boolean = false - ) { - if (!forceRebuild && readyIds.has(id)) { - return () => {} - } - if (buildingIds.size === 0) { - consoleStore.setState( - { - loading: true, - trigger: id, - url: requestUrl, - } as OutputState, - true - ) - } - buildingIds.add(id) - return function finishBuilding() { - if (buildingIds.size === 0) { - return - } - readyIds.add(id) - buildingIds.delete(id) - if (buildingIds.size === 0) { - consoleStore.setState( - { - loading: false, - } as OutputState, - true - ) - } - } - } - - let hmrEventHappened = false - let hmrHash = 0 - const sendEnqueuedMessages = () => { - for (const [, issueMap] of issues) { - if (issueMap.size > 0) { - // During compilation errors we want to delay the HMR events until errors are fixed - return - } - } - for (const payload of hmrPayloads.values()) { - hotReloader.send(payload) - } - hmrPayloads.clear() - if (turbopackUpdates.length > 0) { - hotReloader.send({ - action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE, - data: turbopackUpdates, - }) - turbopackUpdates.length = 0 - } - } - const sendEnqueuedMessagesDebounce = debounce(sendEnqueuedMessages, 2) - - function sendHmr(key: string, id: string, payload: HMR_ACTION_TYPES) { - hmrPayloads.set(`${key}:${id}`, payload) - hmrEventHappened = true - sendEnqueuedMessagesDebounce() - } - - function sendTurbopackMessage(payload: TurbopackUpdate) { - turbopackUpdates.push(payload) - hmrEventHappened = true - sendEnqueuedMessagesDebounce() - } - - async function loadPartialManifest( - name: string, - pageName: string, - type: - | 'pages' - | 'app' - | 'app-route' - | 'middleware' - | 'instrumentation' = 'pages' - ): Promise { - const manifestPath = path.posix.join( - distDir, - `server`, - type === 'app-route' ? 'app' : type, - type === 'middleware' || type === 'instrumentation' - ? '' - : pageName === '/' - ? 'index' - : pageName === '/index' || pageName.startsWith('/index/') - ? `/index${pageName}` - : pageName, - type === 'app' ? 'page' : type === 'app-route' ? 'route' : '', - name - ) - return JSON.parse( - await readFile(path.posix.join(manifestPath), 'utf-8') - ) as T - } - - type InstrumentationDefinition = { - files: string[] - name: 'instrumentation' - } - type TurbopackMiddlewareManifest = MiddlewareManifest & { - instrumentation?: InstrumentationDefinition - } - - const buildManifests = new Map() - const appBuildManifests = new Map() - const pagesManifests = new Map() - const appPathsManifests = new Map() - const middlewareManifests = new Map() - const actionManifests = new Map() - const fontManifests = new Map() - const loadableManifests = new Map() - const clientToHmrSubscription = new Map< - ws, - Map> - >() - const clients = new Set() - - async function loadMiddlewareManifest( - pageName: string, - type: 'pages' | 'app' | 'app-route' | 'middleware' | 'instrumentation' - ): Promise { - middlewareManifests.set( - pageName, - await loadPartialManifest(MIDDLEWARE_MANIFEST, pageName, type) - ) - } - - async function loadBuildManifest( - pageName: string, - type: 'app' | 'pages' = 'pages' - ): Promise { - buildManifests.set( - pageName, - await loadPartialManifest(BUILD_MANIFEST, pageName, type) - ) - } - - async function loadAppBuildManifest(pageName: string): Promise { - appBuildManifests.set( - pageName, - await loadPartialManifest(APP_BUILD_MANIFEST, pageName, 'app') - ) - } - - async function loadPagesManifest(pageName: string): Promise { - pagesManifests.set( - pageName, - await loadPartialManifest(PAGES_MANIFEST, pageName) - ) - } - - async function loadAppPathManifest( - pageName: string, - type: 'app' | 'app-route' = 'app' - ): Promise { - appPathsManifests.set( - pageName, - await loadPartialManifest(APP_PATHS_MANIFEST, pageName, type) - ) - } - - async function loadActionManifest(pageName: string): Promise { - actionManifests.set( - pageName, - await loadPartialManifest( - `${SERVER_REFERENCE_MANIFEST}.json`, - pageName, - 'app' - ) - ) - } - - async function loadFontManifest( - pageName: string, - type: 'app' | 'pages' = 'pages' - ): Promise { - fontManifests.set( - pageName, - await loadPartialManifest(`${NEXT_FONT_MANIFEST}.json`, pageName, type) - ) - } - - async function loadLoadableManifest( - pageName: string, - type: 'app' | 'pages' = 'pages' - ): Promise { - loadableManifests.set( - pageName, - await loadPartialManifest(REACT_LOADABLE_MANIFEST, pageName, type) - ) - } - - async function changeSubscription( - page: string, - type: 'client' | 'server', - includeIssues: boolean, - endpoint: Endpoint | undefined, - makePayload: ( - page: string, - change: TurbopackResult - ) => Promise | HMR_ACTION_TYPES | void - ) { - const key = `${page} (${type})` - if (!endpoint || changeSubscriptions.has(key)) return - - const changedPromise = endpoint[`${type}Changed`](includeIssues) - changeSubscriptions.set(key, changedPromise) - const changed = await changedPromise - - for await (const change of changed) { - processIssues(page, change) - const payload = await makePayload(page, change) - if (payload) { - sendHmr('endpoint-change', key, payload) - } - } - } - - async function clearChangeSubscription( - page: string, - type: 'server' | 'client' - ) { - const key = `${page} (${type})` - const subscription = await changeSubscriptions.get(key) - if (subscription) { - subscription.return?.() - changeSubscriptions.delete(key) - } - issues.delete(key) - } - - function mergeBuildManifests(manifests: Iterable) { - const manifest: Partial & Pick = { - pages: { - '/_app': [], - }, - // Something in next.js depends on these to exist even for app dir rendering - devFiles: [], - ampDevFiles: [], - polyfillFiles: [], - lowPriorityFiles: [ - 'static/development/_ssgManifest.js', - 'static/development/_buildManifest.js', - ], - rootMainFiles: [], - ampFirstPages: [], - } - for (const m of manifests) { - Object.assign(manifest.pages, m.pages) - if (m.rootMainFiles.length) manifest.rootMainFiles = m.rootMainFiles - } - return manifest - } - - function mergeAppBuildManifests(manifests: Iterable) { - const manifest: AppBuildManifest = { - pages: {}, - } - for (const m of manifests) { - Object.assign(manifest.pages, m.pages) - } - return manifest - } - - function mergePagesManifests(manifests: Iterable) { - const manifest: PagesManifest = {} - for (const m of manifests) { - Object.assign(manifest, m) - } - return manifest - } - - function mergeMiddlewareManifests( - manifests: Iterable - ): MiddlewareManifest { - const manifest: MiddlewareManifest = { - version: 2, - middleware: {}, - sortedMiddleware: [], - functions: {}, - } - let instrumentation: InstrumentationDefinition | undefined = undefined - for (const m of manifests) { - Object.assign(manifest.functions, m.functions) - Object.assign(manifest.middleware, m.middleware) - if (m.instrumentation) { - instrumentation = m.instrumentation - } - } - const updateFunctionDefinition = ( - fun: EdgeFunctionDefinition - ): EdgeFunctionDefinition => { - return { - ...fun, - files: [...(instrumentation?.files ?? []), ...fun.files], - } - } - for (const key of Object.keys(manifest.middleware)) { - const value = manifest.middleware[key] - manifest.middleware[key] = updateFunctionDefinition(value) - } - for (const key of Object.keys(manifest.functions)) { - const value = manifest.functions[key] - manifest.functions[key] = updateFunctionDefinition(value) - } - for (const fun of Object.values(manifest.functions).concat( - Object.values(manifest.middleware) - )) { - for (const matcher of fun.matchers) { - if (!matcher.regexp) { - matcher.regexp = pathToRegexp(matcher.originalSource, [], { - delimiter: '/', - sensitive: false, - strict: true, - }).source.replaceAll('\\/', '/') - } - } - } - manifest.sortedMiddleware = Object.keys(manifest.middleware) - - return manifest - } - - async function mergeActionManifests(manifests: Iterable) { - type ActionEntries = ActionManifest['edge' | 'node'] - const manifest: ActionManifest = { - node: {}, - edge: {}, - encryptionKey: await generateRandomActionKeyRaw(true), - } - - function mergeActionIds( - actionEntries: ActionEntries, - other: ActionEntries - ): void { - for (const key in other) { - const action = (actionEntries[key] ??= { - workers: {}, - layer: {}, - }) - Object.assign(action.workers, other[key].workers) - Object.assign(action.layer, other[key].layer) - } - } - - for (const m of manifests) { - mergeActionIds(manifest.node, m.node) - mergeActionIds(manifest.edge, m.edge) - } - - return manifest - } - - function mergeFontManifests(manifests: Iterable) { - const manifest: NextFontManifest = { - app: {}, - appUsingSizeAdjust: false, - pages: {}, - pagesUsingSizeAdjust: false, - } - for (const m of manifests) { - Object.assign(manifest.app, m.app) - Object.assign(manifest.pages, m.pages) - - manifest.appUsingSizeAdjust = - manifest.appUsingSizeAdjust || m.appUsingSizeAdjust - manifest.pagesUsingSizeAdjust = - manifest.pagesUsingSizeAdjust || m.pagesUsingSizeAdjust - } - return manifest - } - - function mergeLoadableManifests(manifests: Iterable) { - const manifest: LoadableManifest = {} - for (const m of manifests) { - Object.assign(manifest, m) - } - return manifest - } - - async function writeBuildManifest( - rewrites: SetupOpts['fsChecker']['rewrites'] - ): Promise { - const buildManifest = mergeBuildManifests(buildManifests.values()) - const buildManifestPath = path.join(distDir, BUILD_MANIFEST) - const middlewareBuildManifestPath = path.join( - distDir, - 'server', - `${MIDDLEWARE_BUILD_MANIFEST}.js` - ) - const interceptionRewriteManifestPath = path.join( - distDir, - 'server', - `${INTERCEPTION_ROUTE_REWRITE_MANIFEST}.js` - ) - deleteCache(buildManifestPath) - deleteCache(middlewareBuildManifestPath) - deleteCache(interceptionRewriteManifestPath) - await writeFileAtomic( - buildManifestPath, - JSON.stringify(buildManifest, null, 2) - ) - await writeFileAtomic( - middlewareBuildManifestPath, - `self.__BUILD_MANIFEST=${JSON.stringify(buildManifest)};` - ) - - const interceptionRewrites = JSON.stringify( - rewrites.beforeFiles.filter(isInterceptionRouteRewrite) - ) - - await writeFileAtomic( - interceptionRewriteManifestPath, - `self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST=${JSON.stringify( - interceptionRewrites - )};` - ) - - const content: ClientBuildManifest = { - __rewrites: rewrites - ? (normalizeRewritesForBuildManifest(rewrites) as any) - : { afterFiles: [], beforeFiles: [], fallback: [] }, - ...Object.fromEntries( - [...curEntries.keys()].map((pathname) => [ - pathname, - `static/chunks/pages${pathname === '/' ? '/index' : pathname}.js`, - ]) - ), - sortedPages: [...curEntries.keys()], - } - const buildManifestJs = `self.__BUILD_MANIFEST = ${JSON.stringify( - content - )};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()` - await writeFileAtomic( - path.join(distDir, 'static', 'development', '_buildManifest.js'), - buildManifestJs - ) - await writeFileAtomic( - path.join(distDir, 'static', 'development', '_ssgManifest.js'), - srcEmptySsgManifest - ) - } - - async function writeFallbackBuildManifest(): Promise { - const fallbackBuildManifest = mergeBuildManifests( - [buildManifests.get('_app'), buildManifests.get('_error')].filter( - Boolean - ) as BuildManifest[] - ) - const fallbackBuildManifestPath = path.join( - distDir, - `fallback-${BUILD_MANIFEST}` - ) - deleteCache(fallbackBuildManifestPath) - await writeFileAtomic( - fallbackBuildManifestPath, - JSON.stringify(fallbackBuildManifest, null, 2) - ) - } - - async function writeAppBuildManifest(): Promise { - const appBuildManifest = mergeAppBuildManifests( - appBuildManifests.values() - ) - const appBuildManifestPath = path.join(distDir, APP_BUILD_MANIFEST) - deleteCache(appBuildManifestPath) - await writeFileAtomic( - appBuildManifestPath, - JSON.stringify(appBuildManifest, null, 2) - ) - } - - async function writePagesManifest(): Promise { - const pagesManifest = mergePagesManifests(pagesManifests.values()) - const pagesManifestPath = path.join(distDir, 'server', PAGES_MANIFEST) - deleteCache(pagesManifestPath) - await writeFileAtomic( - pagesManifestPath, - JSON.stringify(pagesManifest, null, 2) - ) - } - - async function writeAppPathsManifest(): Promise { - const appPathsManifest = mergePagesManifests(appPathsManifests.values()) - const appPathsManifestPath = path.join( - distDir, - 'server', - APP_PATHS_MANIFEST - ) - deleteCache(appPathsManifestPath) - await writeFileAtomic( - appPathsManifestPath, - JSON.stringify(appPathsManifest, null, 2) - ) - } - - async function writeMiddlewareManifest(): Promise { - const middlewareManifest = mergeMiddlewareManifests( - middlewareManifests.values() - ) - const middlewareManifestPath = path.join( - distDir, - 'server', - MIDDLEWARE_MANIFEST - ) - deleteCache(middlewareManifestPath) - await writeFileAtomic( - middlewareManifestPath, - JSON.stringify(middlewareManifest, null, 2) - ) - } - - async function writeActionManifest(): Promise { - const actionManifest = await mergeActionManifests( - actionManifests.values() - ) - const actionManifestJsonPath = path.join( - distDir, - 'server', - `${SERVER_REFERENCE_MANIFEST}.json` - ) - const actionManifestJsPath = path.join( - distDir, - 'server', - `${SERVER_REFERENCE_MANIFEST}.js` - ) - const json = JSON.stringify(actionManifest, null, 2) - deleteCache(actionManifestJsonPath) - deleteCache(actionManifestJsPath) - await writeFile(actionManifestJsonPath, json, 'utf-8') - await writeFile( - actionManifestJsPath, - `self.__RSC_SERVER_MANIFEST=${JSON.stringify(json)}`, - 'utf-8' - ) - } - - async function writeFontManifest(): Promise { - const fontManifest = mergeFontManifests(fontManifests.values()) - const json = JSON.stringify(fontManifest, null, 2) - - const fontManifestJsonPath = path.join( - distDir, - 'server', - `${NEXT_FONT_MANIFEST}.json` - ) - const fontManifestJsPath = path.join( - distDir, - 'server', - `${NEXT_FONT_MANIFEST}.js` - ) - deleteCache(fontManifestJsonPath) - deleteCache(fontManifestJsPath) - await writeFileAtomic(fontManifestJsonPath, json) - await writeFileAtomic( - fontManifestJsPath, - `self.__NEXT_FONT_MANIFEST=${JSON.stringify(json)}` - ) - } - - async function writeLoadableManifest(): Promise { - const loadableManifest = mergeLoadableManifests( - loadableManifests.values() - ) - const loadableManifestPath = path.join(distDir, REACT_LOADABLE_MANIFEST) - const middlewareloadableManifestPath = path.join( - distDir, - 'server', - `${MIDDLEWARE_REACT_LOADABLE_MANIFEST}.js` - ) - - const json = JSON.stringify(loadableManifest, null, 2) - - deleteCache(loadableManifestPath) - deleteCache(middlewareloadableManifestPath) - await writeFileAtomic(loadableManifestPath, json) - await writeFileAtomic( - middlewareloadableManifestPath, - `self.__REACT_LOADABLE_MANIFEST=${JSON.stringify(json)}` - ) - } - - async function writeManifests(): Promise { - await writeBuildManifest(opts.fsChecker.rewrites) - await writeAppBuildManifest() - await writePagesManifest() - await writeAppPathsManifest() - await writeMiddlewareManifest() - await writeActionManifest() - await writeFontManifest() - await writeLoadableManifest() - await writeFallbackBuildManifest() - } - - async function subscribeToHmrEvents(id: string, client: ws) { - let mapping = clientToHmrSubscription.get(client) - if (mapping === undefined) { - mapping = new Map() - clientToHmrSubscription.set(client, mapping) - } - if (mapping.has(id)) return - - const subscription = project!.hmrEvents(id) - mapping.set(id, subscription) - - // The subscription will always emit once, which is the initial - // computation. This is not a change, so swallow it. - try { - await subscription.next() - - for await (const data of subscription) { - processIssues(id, data) - if (data.type !== 'issues') { - sendTurbopackMessage(data) - } - } - } catch (e) { - // The client might be using an HMR session from a previous server, tell them - // to fully reload the page to resolve the issue. We can't use - // `hotReloader.send` since that would force very connected client to - // reload, only this client is out of date. - const reloadAction: ReloadPageAction = { - action: HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE, - } - client.send(JSON.stringify(reloadAction)) - client.close() - return - } - } - - function unsubscribeToHmrEvents(id: string, client: ws) { - const mapping = clientToHmrSubscription.get(client) - const subscription = mapping?.get(id) - subscription?.return!() - } - - try { - async function handleEntries() { - for await (const entrypoints of iter) { - if (!currentEntriesHandlingResolve) { - currentEntriesHandling = new Promise( - // eslint-disable-next-line no-loop-func - (resolve) => (currentEntriesHandlingResolve = resolve) - ) - } - globalEntries.app = entrypoints.pagesAppEndpoint - globalEntries.document = entrypoints.pagesDocumentEndpoint - globalEntries.error = entrypoints.pagesErrorEndpoint - - curEntries.clear() - - for (const [pathname, route] of entrypoints.routes) { - switch (route.type) { - case 'page': - case 'page-api': - case 'app-page': - case 'app-route': { - curEntries.set(pathname, route) - break - } - default: - Log.info(`skipping ${pathname} (${route.type})`) - break - } - } - - for (const [pathname, subscriptionPromise] of changeSubscriptions) { - if (pathname === '') { - // middleware is handled below - continue - } - - if (!curEntries.has(pathname)) { - const subscription = await subscriptionPromise - subscription.return?.() - changeSubscriptions.delete(pathname) - } - } - - const { middleware, instrumentation } = entrypoints - // We check for explicit true/false, since it's initialized to - // undefined during the first loop (middlewareChanges event is - // unnecessary during the first serve) - if (prevMiddleware === true && !middleware) { - // Went from middleware to no middleware - await clearChangeSubscription('middleware', 'server') - sendHmr('entrypoint-change', 'middleware', { - event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES, - }) - } else if (prevMiddleware === false && middleware) { - // Went from no middleware to middleware - sendHmr('endpoint-change', 'middleware', { - event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES, - }) - } - if ( - opts.nextConfig.experimental.instrumentationHook && - instrumentation - ) { - const processInstrumentation = async ( - displayName: string, - name: string, - prop: 'nodeJs' | 'edge' - ) => { - const writtenEndpoint = await processResult( - displayName, - await instrumentation[prop].writeToDisk() - ) - processIssues(name, writtenEndpoint) - } - await processInstrumentation( - 'instrumentation (node.js)', - 'instrumentation.nodeJs', - 'nodeJs' - ) - await processInstrumentation( - 'instrumentation (edge)', - 'instrumentation.edge', - 'edge' - ) - await loadMiddlewareManifest('instrumentation', 'instrumentation') - await writeManifests() - - serverFields.actualInstrumentationHookFile = '/instrumentation' - await propagateServerField( - 'actualInstrumentationHookFile', - serverFields.actualInstrumentationHookFile - ) - } else { - serverFields.actualInstrumentationHookFile = undefined - await propagateServerField( - 'actualInstrumentationHookFile', - serverFields.actualInstrumentationHookFile - ) - } - if (middleware) { - const processMiddleware = async () => { - const writtenEndpoint = await processResult( - 'middleware', - await middleware.endpoint.writeToDisk() - ) - processIssues('middleware', writtenEndpoint) - await loadMiddlewareManifest('middleware', 'middleware') - serverFields.middleware = { - match: null as any, - page: '/', - matchers: - middlewareManifests.get('middleware')?.middleware['/'] - .matchers, - } - } - await processMiddleware() - - changeSubscription( - 'middleware', - 'server', - false, - middleware.endpoint, - async () => { - const finishBuilding = startBuilding( - 'middleware', - undefined, - true - ) - await processMiddleware() - await propagateServerField( - 'actualMiddlewareFile', - serverFields.actualMiddlewareFile - ) - await propagateServerField( - 'middleware', - serverFields.middleware - ) - await writeManifests() - - finishBuilding() - return { event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES } - } - ) - prevMiddleware = true - } else { - middlewareManifests.delete('middleware') - serverFields.actualMiddlewareFile = undefined - serverFields.middleware = undefined - prevMiddleware = false - } - await propagateServerField( - 'actualMiddlewareFile', - serverFields.actualMiddlewareFile - ) - await propagateServerField('middleware', serverFields.middleware) - - currentEntriesHandlingResolve!() - currentEntriesHandlingResolve = undefined - } - } - - handleEntries().catch((err) => { - console.error(err) - process.exit(1) - }) - } catch (e) { - console.error(e) - } - - // Write empty manifests - await mkdir(path.join(distDir, 'server'), { recursive: true }) - await mkdir(path.join(distDir, 'static/development'), { recursive: true }) - await writeFile( - path.join(distDir, 'package.json'), - JSON.stringify( - { - type: 'commonjs', - }, - null, - 2 - ) - ) - await currentEntriesHandling - await writeManifests() - - const overlayMiddleware = getOverlayMiddleware(project) - let versionInfo: VersionInfo = await getVersionInfo( - true || isTestMode || opts.telemetry.isEnabled - ) - const hotReloader: NextJsHotReloaderInterface = { - turbopackProject: project, - activeWebpackConfigs: undefined, - serverStats: null, - edgeServerStats: null, - async run(req, res, _parsedUrl) { - // intercept page chunks request and ensure them with turbopack - if (req.url?.startsWith('/_next/static/chunks/pages/')) { - const params = matchNextPageBundleRequest(req.url) - - if (params) { - const decodedPagePath = `/${params.path - .map((param: string) => decodeURIComponent(param)) - .join('/')}` - - const denormalizedPagePath = denormalizePagePath(decodedPagePath) - - await hotReloader - .ensurePage({ - page: denormalizedPagePath, - clientOnly: false, - definition: undefined, - url: req.url, - }) - .catch(console.error) - } - } - - await overlayMiddleware(req, res) - - // Request was not finished. - return { finished: undefined } - }, - - // TODO: Figure out if socket type can match the NextJsHotReloaderInterface - onHMR(req, socket: Socket, head) { - wsServer.handleUpgrade(req, socket, head, (client) => { - clients.add(client) - client.on('close', () => clients.delete(client)) - - client.addEventListener('message', ({ data }) => { - const parsedData = JSON.parse( - typeof data !== 'string' ? data.toString() : data - ) - - // Next.js messages - switch (parsedData.event) { - case 'ping': - // Ping doesn't need additional handling in Turbopack. - break - case 'span-end': { - hotReloaderSpan.manualTraceChild( - parsedData.spanName, - msToNs(parsedData.startTime), - msToNs(parsedData.endTime), - parsedData.attributes - ) - break - } - case 'client-hmr-latency': // { id, startTime, endTime, page, updatedModules, isPageHidden } - hotReloaderSpan.manualTraceChild( - parsedData.event, - msToNs(parsedData.startTime), - msToNs(parsedData.endTime), - { - updatedModules: parsedData.updatedModules, - page: parsedData.page, - isPageHidden: parsedData.isPageHidden, - } - ) - break - case 'client-error': // { errorCount, clientId } - case 'client-warning': // { warningCount, clientId } - case 'client-success': // { clientId } - case 'server-component-reload-page': // { clientId } - case 'client-reload-page': // { clientId } - case 'client-removed-page': // { page } - case 'client-full-reload': // { stackTrace, hadRuntimeError } - case 'client-added-page': - // TODO - break - - default: - // Might be a Turbopack message... - if (!parsedData.type) { - throw new Error(`unrecognized HMR message "${data}"`) - } - } - - // Turbopack messages - switch (parsedData.type) { - case 'turbopack-subscribe': - subscribeToHmrEvents(parsedData.path, client) - break - - case 'turbopack-unsubscribe': - unsubscribeToHmrEvents(parsedData.path, client) - break - - default: - if (!parsedData.event) { - throw new Error( - `unrecognized Turbopack HMR message "${data}"` - ) - } - } - }) - - const turbopackConnected: TurbopackConnectedAction = { - action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED, - } - client.send(JSON.stringify(turbopackConnected)) - - const errors = [] - for (const pageIssues of issues.values()) { - for (const issue of pageIssues.values()) { - errors.push({ - message: formatIssue(issue), - }) - } - } - - const sync: SyncAction = { - action: HMR_ACTIONS_SENT_TO_BROWSER.SYNC, - errors, - warnings: [], - hash: '', - versionInfo, - } - - this.send(sync) - }) - }, - - send(action) { - const payload = JSON.stringify(action) - for (const client of clients) { - client.send(payload) - } - }, - - setHmrServerError(_error) { - // Not implemented yet. - }, - clearHmrServerError() { - // Not implemented yet. - }, - async start() { - const enabled = isTestMode || opts.telemetry.isEnabled - const nextVersionInfo = await getVersionInfo(enabled) - if (nextVersionInfo) { - versionInfo = nextVersionInfo - } - }, - async stop() { - // Not implemented yet. - }, - async getCompilationErrors(page) { - const thisPageIssues = issues.get(page) - if (thisPageIssues !== undefined && thisPageIssues.size > 0) { - // If there is an error related to the requesting page we display it instead of the first error - return [...thisPageIssues.values()].map( - (issue) => new Error(formatIssue(issue)) - ) - } - - // Otherwise, return all errors across pages - const errors = [] - for (const pageIssues of issues.values()) { - for (const issue of pageIssues.values()) { - errors.push(new Error(formatIssue(issue))) - } - } - return errors - }, - async invalidate({ - // .env files or tsconfig/jsconfig change - reloadAfterInvalidation, - }) { - if (reloadAfterInvalidation) { - await clearAllModuleContexts() - this.send({ - action: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, - }) - } - }, - async buildFallbackError() { - // Not implemented yet. - }, - async ensurePage({ - page: inputPage, - // Unused parameters - // clientOnly, - // appPaths, - definition, - isApp, - url: requestUrl, - }) { - let page = definition?.pathname ?? inputPage - - if (page === '/_error') { - let finishBuilding = startBuilding(page, requestUrl) - try { - if (globalEntries.app) { - const writtenEndpoint = await processResult( - '_app', - await globalEntries.app.writeToDisk() - ) - processIssues('_app', writtenEndpoint) - } - await loadBuildManifest('_app') - await loadPagesManifest('_app') - await loadFontManifest('_app') - - if (globalEntries.document) { - const writtenEndpoint = await processResult( - '_document', - await globalEntries.document.writeToDisk() - ) - changeSubscription( - '_document', - 'server', - false, - globalEntries.document, - () => { - return { action: HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE } - } - ) - processIssues('_document', writtenEndpoint) - } - await loadPagesManifest('_document') - - if (globalEntries.error) { - const writtenEndpoint = await processResult( - '_error', - await globalEntries.error.writeToDisk() - ) - processIssues(page, writtenEndpoint) - } - await loadBuildManifest('_error') - await loadPagesManifest('_error') - await loadFontManifest('_error') - - await writeManifests() - } finally { - finishBuilding() - } - return - } - await currentEntriesHandling - const route = - curEntries.get(page) ?? - curEntries.get( - normalizeAppPath( - normalizeMetadataRoute(definition?.page ?? inputPage) - ) - ) - - if (!route) { - // TODO: why is this entry missing in turbopack? - if (page === '/_app') return - if (page === '/_document') return - if (page === '/middleware') return - if (page === '/src/middleware') return - if (page === '/instrumentation') return - if (page === '/src/instrumentation') return - - throw new PageNotFoundError(`route not found ${page}`) - } - - let finishBuilding: (() => void) | undefined = undefined - - try { - switch (route.type) { - case 'page': { - if (isApp) { - throw new Error( - `mis-matched route type: isApp && page for ${page}` - ) - } - - finishBuilding = startBuilding(page, requestUrl) - try { - if (globalEntries.app) { - const writtenEndpoint = await processResult( - '_app', - await globalEntries.app.writeToDisk() - ) - processIssues('_app', writtenEndpoint) - } - await loadBuildManifest('_app') - await loadPagesManifest('_app') - - if (globalEntries.document) { - const writtenEndpoint = await processResult( - '_document', - await globalEntries.document.writeToDisk() - ) - processIssues('_document', writtenEndpoint) - } - await loadPagesManifest('_document') - - const writtenEndpoint = await processResult( - page, - await route.htmlEndpoint.writeToDisk() - ) - - const type = writtenEndpoint?.type - - await loadBuildManifest(page) - await loadPagesManifest(page) - if (type === 'edge') { - await loadMiddlewareManifest(page, 'pages') - } else { - middlewareManifests.delete(page) - } - await loadFontManifest(page, 'pages') - await loadLoadableManifest(page, 'pages') - - await writeManifests() - - processIssues(page, writtenEndpoint) - } finally { - changeSubscription( - page, - 'server', - false, - route.dataEndpoint, - (pageName) => { - // Report the next compilation again - readyIds.delete(page) - return { - event: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ONLY_CHANGES, - pages: [pageName], - } - } - ) - changeSubscription( - page, - 'client', - false, - route.htmlEndpoint, - () => { - return { - event: HMR_ACTIONS_SENT_TO_BROWSER.CLIENT_CHANGES, - } - } - ) - if (globalEntries.document) { - changeSubscription( - '_document', - 'server', - false, - globalEntries.document, - () => { - return { action: HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE } - } - ) - } - } - - break - } - case 'page-api': { - // We don't throw on ensureOpts.isApp === true here - // since this can happen when app pages make - // api requests to page API routes. - - finishBuilding = startBuilding(page, requestUrl) - const writtenEndpoint = await processResult( - page, - await route.endpoint.writeToDisk() - ) - - const type = writtenEndpoint?.type - - await loadPagesManifest(page) - if (type === 'edge') { - await loadMiddlewareManifest(page, 'pages') - } else { - middlewareManifests.delete(page) - } - await loadLoadableManifest(page, 'pages') - - await writeManifests() - - processIssues(page, writtenEndpoint) - - break - } - case 'app-page': { - finishBuilding = startBuilding(page, requestUrl) - const writtenEndpoint = await processResult( - page, - await route.htmlEndpoint.writeToDisk() - ) - - changeSubscription( - page, - 'server', - true, - route.rscEndpoint, - (_page, change) => { - if ( - change.issues.some((issue) => issue.severity === 'error') - ) { - // Ignore any updates that has errors - // There will be another update without errors eventually - return - } - // Report the next compilation again - readyIds.delete(page) - return { - action: - HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, - } - } - ) - - const type = writtenEndpoint?.type - - if (type === 'edge') { - await loadMiddlewareManifest(page, 'app') - } else { - middlewareManifests.delete(page) - } - - await loadAppBuildManifest(page) - await loadBuildManifest(page, 'app') - await loadAppPathManifest(page, 'app') - await loadActionManifest(page) - await loadFontManifest(page, 'app') - await writeManifests() - - processIssues(page, writtenEndpoint, true) - - break - } - case 'app-route': { - finishBuilding = startBuilding(page, requestUrl) - const writtenEndpoint = await processResult( - page, - await route.endpoint.writeToDisk() - ) - - const type = writtenEndpoint?.type - - await loadAppPathManifest(page, 'app-route') - if (type === 'edge') { - await loadMiddlewareManifest(page, 'app-route') - } else { - middlewareManifests.delete(page) - } - - await writeManifests() - - processIssues(page, writtenEndpoint, true) - - break - } - default: { - throw new Error( - `unknown route type ${(route as any).type} for ${page}` - ) - } - } - } finally { - if (finishBuilding) finishBuilding() - } - }, - } - - ;(async function () { - for await (const updateMessage of project.updateInfoSubscribe(30)) { - switch (updateMessage.updateType) { - case 'start': { - hotReloader.send({ action: HMR_ACTIONS_SENT_TO_BROWSER.BUILDING }) - break - } - case 'end': { - sendEnqueuedMessages() - - const errors = new Map() - for (const [, issueMap] of issues) { - for (const [key, issue] of issueMap) { - if (errors.has(key)) continue - - const message = formatIssue(issue) - - errors.set(key, { - message, - details: issue.detail - ? renderStyledStringToErrorAnsi(issue.detail) - : undefined, - }) - } - } - - hotReloader.send({ - action: HMR_ACTIONS_SENT_TO_BROWSER.BUILT, - hash: String(++hmrHash), - errors: [...errors.values()], - warnings: [], - }) - - if (hmrEventHappened) { - const time = updateMessage.value.duration - const timeMessage = - time > 2000 ? `${Math.round(time / 100) / 10}s` : `${time}ms` - Log.event(`Compiled in ${timeMessage}`) - hmrEventHappened = false - } - break - } - default: - } - } - })() - - return hotReloader - } + const serverFields: ServerFields = {} const hotReloader: NextJsHotReloaderInterface = opts.turbo - ? await createHotReloaderTurbopack() + ? await createHotReloaderTurbopack(opts, serverFields, distDir) : new HotReloaderWebpack(opts.dir, { appDir, pagesDir, @@ -2031,6 +352,7 @@ async function startWatcher(opts: SetupOpts) { } serverFields.actualMiddlewareFile = rootFile await propagateServerField( + opts, 'actualMiddlewareFile', serverFields.actualMiddlewareFile ) @@ -2045,6 +367,7 @@ async function startWatcher(opts: SetupOpts) { ) { serverFields.actualInstrumentationHookFile = rootFile await propagateServerField( + opts, 'actualInstrumentationHookFile', serverFields.actualInstrumentationHookFile ) @@ -2157,7 +480,7 @@ async function startWatcher(opts: SetupOpts) { hotReloader.setHmrServerError(new Error(errorMessage)) } else if (numConflicting === 0) { hotReloader.clearHmrServerError() - await propagateServerField('reloadMatchers', undefined) + await propagateServerField(opts, 'reloadMatchers', undefined) } } @@ -2201,7 +524,7 @@ async function startWatcher(opts: SetupOpts) { loadEnvConfig(dir, true, Log, true, (envFilePath) => { Log.info(`Reload env: ${envFilePath}`) }) - await propagateServerField('loadEnvConfig', [ + await propagateServerField(opts, 'loadEnvConfig', [ { dev: true, forceReload: true, silent: true }, ]) } @@ -2343,7 +666,11 @@ async function startWatcher(opts: SetupOpts) { serverFields.appPathRoutes = Object.fromEntries( Object.entries(appPaths).map(([k, v]) => [k, v.sort()]) ) - await propagateServerField('appPathRoutes', serverFields.appPathRoutes) + await propagateServerField( + opts, + 'appPathRoutes', + serverFields.appPathRoutes + ) // TODO: pass this to fsChecker/next-dev-server? serverFields.middleware = middlewareMatchers @@ -2354,7 +681,7 @@ async function startWatcher(opts: SetupOpts) { } : undefined - await propagateServerField('middleware', serverFields.middleware) + await propagateServerField(opts, 'middleware', serverFields.middleware) serverFields.hasAppNotFound = hasRootAppNotFound opts.fsChecker.middlewareMatcher = serverFields.middleware?.matchers @@ -2498,7 +825,7 @@ async function startWatcher(opts: SetupOpts) { } finally { // Reload the matchers. The filesystem would have been written to, // and the matchers need to re-scan it to update the router. - await propagateServerField('reloadMatchers', undefined) + await propagateServerField(opts, 'reloadMatchers', undefined) } }) @@ -2706,34 +1033,3 @@ export async function setupDevBundler(opts: SetupOpts) { } export type DevBundler = Awaited> - -function renderStyledStringToErrorAnsi(string: StyledString): string { - function decodeMagicIdentifiers(str: string): string { - return str.replaceAll(MAGIC_IDENTIFIER_REGEX, (ident) => { - try { - return magenta(`{${decodeMagicIdentifier(ident)}}`) - } catch (e) { - return magenta(`{${ident} (decoding failed: ${e})}`) - } - }) - } - - switch (string.type) { - case 'text': - return decodeMagicIdentifiers(string.value) - case 'strong': - return bold(red(decodeMagicIdentifiers(string.value))) - case 'code': - return green(decodeMagicIdentifiers(string.value)) - case 'line': - return string.value.map(renderStyledStringToErrorAnsi).join('') - case 'stack': - return string.value.map(renderStyledStringToErrorAnsi).join('\n') - default: - throw new Error('Unknown StyledString type', string) - } -} - -function msToNs(ms: number): bigint { - return BigInt(Math.floor(ms)) * BigInt(MILLISECONDS_IN_NANOSECOND) -} diff --git a/packages/next/src/server/stream-utils/encode-decode.ts b/packages/next/src/server/stream-utils/encode-decode.ts index a7461a1842202..dfe2c43378ed6 100644 --- a/packages/next/src/server/stream-utils/encode-decode.ts +++ b/packages/next/src/server/stream-utils/encode-decode.ts @@ -8,11 +8,3 @@ export function createDecodeTransformStream(decoder = new TextDecoder()) { }, }) } - -export function createEncodeTransformStream(encoder = new TextEncoder()) { - return new TransformStream({ - transform(chunk, controller) { - return controller.enqueue(encoder.encode(chunk)) - }, - }) -} diff --git a/packages/next/src/server/stream-utils/node-web-streams-helper.ts b/packages/next/src/server/stream-utils/node-web-streams-helper.ts index 3b249ead98dcd..db886e552e4c9 100644 --- a/packages/next/src/server/stream-utils/node-web-streams-helper.ts +++ b/packages/next/src/server/stream-utils/node-web-streams-helper.ts @@ -4,52 +4,64 @@ import { getTracer } from '../lib/trace/tracer' import { AppRenderSpan } from '../lib/trace/constants' import { createDecodeTransformStream } from './encode-decode' import { DetachedPromise } from '../../lib/detached-promise' -import { scheduleImmediate } from '../../lib/scheduler' +import { scheduleImmediate, atLeastOneTask } from '../../lib/scheduler' + +function voidCatch() { + // this catcher is designed to be used with pipeTo where we expect the underlying + // pipe implementation to forward errors but we don't want the pipeTo promise to reject + // and be unhandled +} export type ReactReadableStream = ReadableStream & { allReady?: Promise | undefined } -export function cloneTransformStream(source: TransformStream) { - const sourceReader = source.readable.getReader() - const clone = new TransformStream({ - async start(controller) { - while (true) { - const { done, value } = await sourceReader.read() - if (done) { - break - } - controller.enqueue(value) - } - }, - // skip all piped chunks - transform() {}, - }) - - return clone -} +// We can share the same encoder instance everywhere +// Notably we cannot do the same for TextDecoder because it is stateful +// when handling streaming data +const encoder = new TextEncoder() export function chainStreams( ...streams: ReadableStream[] ): ReadableStream { + // We could encode this invariant in the arguments but current uses of this function pass + // use spread so it would be missed by + if (streams.length === 0) { + throw new Error('Invariant: chainStreams requires at least one stream') + } + + // If we only have 1 stream we fast path it by returning just this stream + if (streams.length === 1) { + return streams[0] + } + const { readable, writable } = new TransformStream() - let promise = Promise.resolve() - for (let i = 0; i < streams.length; ++i) { + // We always initiate pipeTo immediately. We know we have at least 2 streams + // so we need to avoid closing the writable when this one finishes. + let promise = streams[0].pipeTo(writable, { preventClose: true }) + + let i = 1 + for (; i < streams.length - 1; i++) { + const nextStream = streams[i] promise = promise.then(() => - streams[i].pipeTo(writable, { preventClose: i + 1 < streams.length }) + nextStream.pipeTo(writable, { preventClose: true }) ) } + // We can omit the length check because we halted before the last stream and there + // is at least two streams so the lastStream here will always be defined + const lastStream = streams[i] + promise = promise.then(() => lastStream.pipeTo(writable)) + // Catch any errors from the streams and ignore them, they will be handled // by whatever is consuming the readable stream. - promise.catch(() => {}) + promise.catch(voidCatch) return readable } export function streamFromString(str: string): ReadableStream { - const encoder = new TextEncoder() return new ReadableStream({ start(controller) { controller.enqueue(encoder.encode(str)) @@ -81,7 +93,8 @@ export function createBufferedTransformStream(): TransformStream< Uint8Array, Uint8Array > { - let buffer: Uint8Array = new Uint8Array() + let bufferedChunks: Array = [] + let bufferByteLength: number = 0 let pending: DetachedPromise | undefined const flush = (controller: TransformStreamDefaultController) => { @@ -93,8 +106,18 @@ export function createBufferedTransformStream(): TransformStream< scheduleImmediate(() => { try { - controller.enqueue(buffer) - buffer = new Uint8Array() + const chunk = new Uint8Array(bufferByteLength) + let copiedBytes = 0 + for (let i = 0; i < bufferedChunks.length; i++) { + const bufferedChunk = bufferedChunks[i] + chunk.set(bufferedChunk, copiedBytes) + copiedBytes += bufferedChunk.byteLength + } + // We just wrote all the buffered chunks so we need to reset the bufferedChunks array + // and our bufferByteLength to prepare for the next round of buffered chunks + bufferedChunks.length = 0 + bufferByteLength = 0 + controller.enqueue(chunk) } catch { // If an error occurs while enqueuing it can't be due to this // transformers fault. It's likely due to the controller being @@ -109,10 +132,8 @@ export function createBufferedTransformStream(): TransformStream< return new TransformStream({ transform(chunk, controller) { // Combine the previous buffer with the new chunk. - const combined = new Uint8Array(buffer.length + chunk.byteLength) - combined.set(buffer) - combined.set(chunk, buffer.length) - buffer = combined + bufferedChunks.push(chunk) + bufferByteLength += chunk.byteLength // Flush the buffer to the controller. flush(controller) @@ -128,7 +149,6 @@ export function createBufferedTransformStream(): TransformStream< function createInsertedHTMLStream( getServerInsertedHTML: () => Promise ): TransformStream { - const encoder = new TextEncoder() return new TransformStream({ transform: async (chunk, controller) => { const html = await getServerInsertedHTML() @@ -161,11 +181,15 @@ function createHeadInsertionTransformStream( let inserted = false let freezing = false - const encoder = new TextEncoder() const decoder = new TextDecoder() + // We need to track if this transform saw any bytes because if it didn't + // we won't want to insert any server HTML at all + let hasBytes = false + return new TransformStream({ async transform(chunk, controller) { + hasBytes = true // While react is flushing chunks, we don't apply insertions if (freezing) { controller.enqueue(chunk) @@ -199,9 +223,11 @@ function createHeadInsertionTransformStream( }, async flush(controller) { // Check before closing if there's anything remaining to insert. - const insertion = await insert() - if (insertion) { - controller.enqueue(encoder.encode(insertion)) + if (hasBytes) { + const insertion = await insert() + if (insertion) { + controller.enqueue(encoder.encode(insertion)) + } } }, }) @@ -215,8 +241,6 @@ function createDeferredSuffixStream( let flushed = false let pending: DetachedPromise | undefined - const encoder = new TextEncoder() - const flush = (controller: TransformStreamDefaultController) => { const detached = new DetachedPromise() pending = detached @@ -261,10 +285,14 @@ function createDeferredSuffixStream( function createMergedTransformStream( stream: ReadableStream ): TransformStream { - let started = false - let pending: DetachedPromise | null = null + let pull: Promise | null = null + let donePulling = false + + async function startPulling(controller: TransformStreamDefaultController) { + if (pull) { + return + } - const start = (controller: TransformStreamDefaultController) => { const reader = stream.getReader() // NOTE: streaming flush @@ -273,26 +301,25 @@ function createMergedTransformStream( // implementation, e.g. with a specific high-water mark. To ensure it's // the safe timing to pipe the data stream, this extra tick is // necessary. - const detached = new DetachedPromise() - pending = detached - // We use `setTimeout/setImmediate` here to ensure that it's inserted after - // flushing the shell. Note that this implementation might get stale if impl - // details of Fizz change in the future. - scheduleImmediate(async () => { - try { - while (true) { - const { done, value } = await reader.read() - if (done) return + // We don't start reading until we've left the current Task to ensure + // that it's inserted after flushing the shell. Note that this implementation + // might get stale if impl details of Fizz change in the future. + await atLeastOneTask() - controller.enqueue(value) + try { + while (true) { + const { done, value } = await reader.read() + if (done) { + donePulling = true + return } - } catch (err) { - controller.error(err) - } finally { - detached.resolve() + + controller.enqueue(value) } - }) + } catch (err) { + controller.error(err) + } } return new TransformStream({ @@ -300,18 +327,15 @@ function createMergedTransformStream( controller.enqueue(chunk) // Start the streaming if it hasn't already been started yet. - if (started) return - started = true - - start(controller) + if (!pull) { + pull = startPulling(controller) + } }, - flush() { - // If the data stream promise is defined, then return it as its completion - // will be the completion of the stream. - if (!pending) return - if (!started) return - - return pending.promise + flush(controller) { + if (donePulling) { + return + } + return pull || startPulling(controller) }, }) } @@ -326,7 +350,6 @@ function createMoveSuffixStream( ): TransformStream { let foundSuffix = false - const encoder = new TextEncoder() const decoder = new TextDecoder() return new TransformStream({ @@ -371,6 +394,43 @@ function createMoveSuffixStream( }) } +function createStripDocumentClosingTagsTransform(): TransformStream< + Uint8Array, + Uint8Array +> { + const decoder = new TextDecoder() + return new TransformStream({ + transform(chunk, controller) { + // We rely on the assumption that chunks will never break across a code unit. + // This is reasonable because we currently concat all of React's output from a single + // flush into one chunk before streaming it forward which means the chunk will represent + // a single coherent utf-8 string. This is not safe to use if we change our streaming to no + // longer do this large buffered chunk + let originalContent = decoder.decode(chunk) + let content = originalContent + + if ( + content === '' || + content === '' || + content === '' + ) { + // the entire chunk is the closing tags. + return + } else { + // We assume these tags will go at together at the end of the document and that + // they won't appear anywhere else in the document. This is not really a safe assumption + // but until we revamp our streaming infra this is a performant way to string the tags + content = content.replace('', '').replace('', '') + if (content.length !== originalContent.length) { + return controller.enqueue(encoder.encode(content)) + } + } + + controller.enqueue(chunk) + }, + }) +} + export function createRootLayoutValidatorStream( assetPrefix = '', getTree: () => FlightRouterState @@ -378,7 +438,6 @@ export function createRootLayoutValidatorStream( let foundHtml = false let foundBody = false - const encoder = new TextEncoder() const decoder = new TextDecoder() let content = '' @@ -454,7 +513,7 @@ export type ContinueStreamOptions = { /** * Suffix to inject after the buffered data, but before the close tags. */ - suffix: string | undefined + suffix?: string | undefined } export async function continueFizzStream( @@ -515,44 +574,87 @@ export async function continueFizzStream( ]) } -type ContinuePostponedStreamOptions = Pick< - ContinueStreamOptions, - | 'inlinedDataStream' - | 'isStaticGeneration' - | 'getServerInsertedHTML' - | 'serverInsertedHTMLToHead' -> +type ContinueDynamicPrerenderOptions = { + getServerInsertedHTML: () => Promise +} -export async function continuePostponedFizzStream( - renderStream: ReactReadableStream, - { - inlinedDataStream, - isStaticGeneration, - getServerInsertedHTML, - serverInsertedHTMLToHead, - }: ContinuePostponedStreamOptions +export async function continueDynamicPrerender( + prerenderStream: ReadableStream, + { getServerInsertedHTML }: ContinueDynamicPrerenderOptions +) { + return ( + prerenderStream + // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()) + .pipeThrough(createStripDocumentClosingTagsTransform()) + // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) + ) +} + +type ContinueStaticPrerenderOptions = { + inlinedDataStream: ReadableStream + getServerInsertedHTML: () => Promise +} + +export async function continueStaticPrerender( + prerenderStream: ReadableStream, + { inlinedDataStream, getServerInsertedHTML }: ContinueStaticPrerenderOptions ) { const closeTag = '' - // If we're generating static HTML and there's an `allReady` promise on the - // stream, we need to wait for it to resolve before continuing. - if (isStaticGeneration && 'allReady' in renderStream) { - await renderStream.allReady - } + return ( + prerenderStream + // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()) + // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + .pipeThrough(createMergedTransformStream(inlinedDataStream)) + // Close tags should always be deferred to the end + .pipeThrough(createMoveSuffixStream(closeTag)) + ) +} - return chainTransformers(renderStream, [ - // Buffer everything to avoid flushing too frequently - createBufferedTransformStream(), +type ContinueResumeOptions = { + inlinedDataStream: ReadableStream + getServerInsertedHTML: () => Promise +} - // Insert generated tags to head - getServerInsertedHTML && !serverInsertedHTMLToHead - ? createInsertedHTMLStream(getServerInsertedHTML) - : null, +export async function continueDynamicHTMLResume( + renderStream: ReadableStream, + { inlinedDataStream, getServerInsertedHTML }: ContinueResumeOptions +) { + const closeTag = '' - // Insert the inlined data (Flight data, form state, etc.) stream into the HTML - inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null, + return ( + renderStream + // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()) + // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + .pipeThrough(createMergedTransformStream(inlinedDataStream)) + // Close tags should always be deferred to the end + .pipeThrough(createMoveSuffixStream(closeTag)) + ) +} - // Close tags should always be deferred to the end - createMoveSuffixStream(closeTag), - ]) +type ContinueDynamicDataResumeOptions = { + inlinedDataStream: ReadableStream +} + +export async function continueDynamicDataResume( + renderStream: ReadableStream, + { inlinedDataStream }: ContinueDynamicDataResumeOptions +) { + const closeTag = '' + + return ( + renderStream + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + .pipeThrough(createMergedTransformStream(inlinedDataStream)) + // Close tags should always be deferred to the end + .pipeThrough(createMoveSuffixStream(closeTag)) + ) } diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 483d0add265e6..2daa97a886a53 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "14.1.1-canary.45", + "version": "14.1.1-canary.51", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 7ae6c645ce27c..809c830b88e95 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "14.1.1-canary.45", + "version": "14.1.1-canary.51", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/packages/third-parties/package.json b/packages/third-parties/package.json index b87c65f4a320a..81d8bd022ab8c 100644 --- a/packages/third-parties/package.json +++ b/packages/third-parties/package.json @@ -1,6 +1,6 @@ { "name": "@next/third-parties", - "version": "14.1.1-canary.45", + "version": "14.1.1-canary.51", "repository": { "url": "vercel/next.js", "directory": "packages/third-parties" @@ -26,7 +26,7 @@ "third-party-capital": "1.0.20" }, "devDependencies": { - "next": "14.1.1-canary.45", + "next": "14.1.1-canary.51", "outdent": "0.8.0", "prettier": "2.5.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba7a0bbaeae7d..62a942c5eb856 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -750,7 +750,7 @@ importers: packages/eslint-config-next: dependencies: '@next/eslint-plugin-next': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../eslint-plugin-next '@rushstack/eslint-patch': specifier: ^1.3.3 @@ -812,7 +812,7 @@ importers: packages/next: dependencies: '@next/env': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../next-env '@swc/helpers': specifier: 0.5.5 @@ -933,19 +933,19 @@ importers: specifier: 1.2.0 version: 1.2.0 '@next/polyfill-module': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../next-polyfill-module '@next/polyfill-nomodule': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../next-polyfill-nomodule '@next/react-dev-overlay': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../react-dev-overlay '@next/react-refresh-utils': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../react-refresh-utils '@next/swc': - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../next-swc '@opentelemetry/api': specifier: 1.6.0 @@ -1077,8 +1077,8 @@ importers: specifier: 0.26.3 version: 0.26.3 '@vercel/turbopack-ecmascript-runtime': - specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240209.2 - version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240209.2(react-refresh@0.12.0)(webpack@5.90.0)' + specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240213.4 + version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240213.4(react-refresh@0.12.0)(webpack@5.90.0)' acorn: specifier: 8.5.0 version: 8.5.0 @@ -1569,7 +1569,7 @@ importers: version: 1.0.20 devDependencies: next: - specifier: 14.1.1-canary.45 + specifier: 14.1.1-canary.51 version: link:../next outdent: specifier: 0.8.0 @@ -25655,9 +25655,9 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240209.2(react-refresh@0.12.0)(webpack@5.90.0)': - resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240209.2} - id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240209.2' + '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240213.4(react-refresh@0.12.0)(webpack@5.90.0)': + resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240213.4} + id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240213.4' name: '@vercel/turbopack-ecmascript-runtime' version: 0.0.0 dependencies: diff --git a/scripts/deploy-turbopack-docs.sh b/scripts/deploy-turbopack-docs.sh new file mode 100755 index 0000000000000..8135df13ebd17 --- /dev/null +++ b/scripts/deploy-turbopack-docs.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -euo pipefail + + +PROD="" + +if [ -z ${DEPLOY_ENVIRONMENT+x} ]; then + DEPLOY_ENVIRONMENT="" +else + if [ "$DEPLOY_ENVIRONMENT" = "production" ]; then + PROD="--prod" + fi +fi + +RUSTDOCFLAGS="-Z unstable-options --index-page $(pwd)/packages/next-swc/docs/index.md" cargo doc -p turbo-tasks-fs --no-deps + +if [ -z ${VERCEL_API_TOKEN+x} ]; then + echo "VERCEL_API_TOKEN was not providing, skipping..." + exit 0 +fi + + +DOCS_OUTDIR="$(pwd)/target/doc" +PROJECT="turbopack-rust-docs" +echo "Deploying directory $DOCS_OUTDIR as $PROJECT to Vercel..." + +vercel link --cwd $DOCS_OUTDIR --scope vercel --project $PROJECT --token "$VERCEL_API_TOKEN" --yes +vercel deploy --cwd $DOCS_OUTDIR --token "$VERCEL_API_TOKEN" $PROD \ No newline at end of file diff --git a/test/.stats-app/package.json b/test/.stats-app/package.json index e52046e793adc..66392ca2298ec 100644 --- a/test/.stats-app/package.json +++ b/test/.stats-app/package.json @@ -9,7 +9,7 @@ }, "engines": { "node": ">=18.17.0", - "pnpm": "8.14.2" + "pnpm": "8.15.1" }, - "packageManager": "pnpm@8.14.2" + "packageManager": "pnpm@8.15.1" } diff --git a/test/build-turbopack-tests-manifest.js b/test/build-turbopack-tests-manifest.js index 73f51735a2baf..88dc22b8fe441 100644 --- a/test/build-turbopack-tests-manifest.js +++ b/test/build-turbopack-tests-manifest.js @@ -267,6 +267,11 @@ async function updatePassingTests() { status = 'flakey' } + // treat test-level todo as same as pending + if (status === 'todo') { + status = 'pending' + } + const statusArray = fileResults[status] if (!statusArray) { throw new Error(`unexpected status "${status}"`) diff --git a/test/development/acceptance-app/component-stack.test.ts b/test/development/acceptance-app/component-stack.test.ts index 388a7432288d1..a49cc9e502e3a 100644 --- a/test/development/acceptance-app/component-stack.test.ts +++ b/test/development/acceptance-app/component-stack.test.ts @@ -49,7 +49,6 @@ describe('Component Stack in error overlay', () => { ErrorBoundary AppRouter ServerRoot - RSCComponent Root" `) } else { diff --git a/test/e2e/app-dir/next-font/next-font.test.ts b/test/e2e/app-dir/next-font/next-font.test.ts index 682892d3077d9..d8318140ff20f 100644 --- a/test/e2e/app-dir/next-font/next-font.test.ts +++ b/test/e2e/app-dir/next-font/next-font.test.ts @@ -1,6 +1,7 @@ import { createNextDescribe, FileRef } from 'e2e-utils' import { getRedboxSource, hasRedbox } from 'next-test-utils' import { join } from 'path' +import cheerio from 'cheerio' // TODO-APP: due to a current implementation limitation, we don't have proper tree // shaking when across the server/client boundaries (e.g. all referenced client @@ -291,28 +292,30 @@ describe('app dir - next/font', () => { if (!isDev) { describe('preload', () => { it('should preload correctly with server components', async () => { - const $ = await next.render$('/') + const result = await next.fetch('/') + const headers = result.headers + + const html = await result.text() + const $ = cheerio.load(html) // Preconnect expect($('link[rel="preconnect"]').length).toBe(0) + const fontPreloadlinksInHeaders = headers + .get('link') + .split(', ') + .filter((link) => link.match(/as=.*font/)) + expect(fontPreloadlinksInHeaders.length).toBeGreaterThan(2) + for (const link of fontPreloadlinksInHeaders) { + expect(link).toMatch(/<[^>]*?_next[^>]*?\.woff2>/) + expect(link).toMatch(/rel=.*preload/) + expect(link).toMatch(/crossorigin=""/) + } + const items = getAttrs($('link[as="font"]')) - for (const item of items) { - expect(item.as).toBe('font') - expect(item.crossorigin).toBe('') - if (process.env.TURBOPACK) { - expect(item.href).toMatch( - /\/_next\/static\/media\/(.*)-s.p.(.*)\.woff2/ - ) - } else { - expect(item.href).toMatch( - /\/_next\/static\/media\/(.*)-s.p.woff2/ - ) - } - expect(item.rel).toBe('preload') - expect(item.type).toBe('font/woff2') - } + // We expect the font preloads to be in headers exclusively + expect(items.length).toBe(0) }) it('should preload correctly with client components', async () => { diff --git a/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/@slot/foo/page.tsx b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/@slot/foo/page.tsx new file mode 100644 index 0000000000000..e6612e3e0206a --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/@slot/foo/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return
Nested Slot
+} diff --git a/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/@slot/page.tsx b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/@slot/page.tsx new file mode 100644 index 0000000000000..a4650d400d278 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/@slot/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return
Root Slot
+} diff --git a/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/foo/loading.tsx b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/foo/loading.tsx new file mode 100644 index 0000000000000..5c957d63b049e --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/foo/loading.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return
Loading...
+} diff --git a/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/foo/page.tsx b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/foo/page.tsx new file mode 100644 index 0000000000000..e5681f6481d96 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/foo/page.tsx @@ -0,0 +1,7 @@ +// we want to verify that the loading behavior is triggered during Next build, so we opt out of static generation +export const dynamic = 'force-dynamic' + +export default async function TestPage() { + await new Promise((resolve) => setTimeout(resolve, 2000)) + return
Welcome to Foo Page
+} diff --git a/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/layout.tsx b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/layout.tsx new file mode 100644 index 0000000000000..c02e2812ecb63 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/layout.tsx @@ -0,0 +1,23 @@ +import Link from 'next/link' +import { ReactNode } from 'react' + +export default function Layout({ + children, + slot, +}: { + children: ReactNode + slot: ReactNode +}) { + return ( + <> +
+ Home +
+
+ To Loading Page +
+
{slot}
+
{children}
+ + ) +} diff --git a/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/page.tsx b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/page.tsx new file mode 100644 index 0000000000000..481ea5905d182 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-and-interception/app/with-loading/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return
Root Page
+} diff --git a/test/e2e/app-dir/parallel-routes-and-interception/parallel-routes-and-interception.test.ts b/test/e2e/app-dir/parallel-routes-and-interception/parallel-routes-and-interception.test.ts index 7a2ee1de67b8e..74b4e3d584b94 100644 --- a/test/e2e/app-dir/parallel-routes-and-interception/parallel-routes-and-interception.test.ts +++ b/test/e2e/app-dir/parallel-routes-and-interception/parallel-routes-and-interception.test.ts @@ -1,5 +1,5 @@ import { createNextDescribe } from 'e2e-utils' -import { check } from 'next-test-utils' +import { check, retry } from 'next-test-utils' import { outdent } from 'outdent' createNextDescribe( @@ -436,6 +436,29 @@ createNextDescribe( ).toBe('rgb(255, 0, 0)') }) + it('should handle a loading state', async () => { + const browser = await next.browser('/with-loading') + expect(await browser.elementById('slot').text()).toBe('Root Slot') + expect(await browser.elementById('children').text()).toBe('Root Page') + + // should have triggered a loading state + expect( + await browser + .elementByCss('[href="/with-loading/foo"]') + .click() + .waitForElementByCss('#loading-page') + .text() + ).toBe('Loading...') + + // should eventually load the full page + await retry(async () => { + expect(await browser.elementById('slot').text()).toBe('Nested Slot') + expect(await browser.elementById('children').text()).toBe( + 'Welcome to Foo Page' + ) + }) + }) + if (isNextDev) { it('should support parallel routes with no page component', async () => { const browser = await next.browser('/parallel-no-page/foo') diff --git a/test/e2e/app-dir/ppr-errors/ppr-errors.test.ts b/test/e2e/app-dir/ppr-errors/ppr-errors.test.ts index ff136e7e7f069..26623ca69f5a2 100644 --- a/test/e2e/app-dir/ppr-errors/ppr-errors.test.ts +++ b/test/e2e/app-dir/ppr-errors/ppr-errors.test.ts @@ -19,32 +19,9 @@ describe('ppr build errors', () => { expect(stderr).toContain( 'Error occurred prerendering page "/regular-error-suspense-boundary".' ) - }) - - describe('when a postpone call was made but missing postpone data', () => { - it('should fail the build', async () => { - expect(stderr).toContain( - 'Prerendering / needs to partially bail out because something dynamic was used. ' - ) - }) - - it('should fail the build & surface any errors that were thrown by user code', async () => { - // in the case of catching a postpone and throwing a new error, we log the error that the user threw to help with debugging - expect(stderr).toContain( - 'Prerendering /re-throwing-error needs to partially bail out because something dynamic was used. ' - ) - expect(stderr).toContain( - 'The following error was thrown during build, and may help identify the source of the issue:' - ) - expect(stderr).toContain( - 'Error: The original error was caught and rethrown.' - ) - - // the regular pre-render error should not be thrown as well, as we've already logged a more specific error - expect(stderr).not.toContain( - 'Error occurred prerendering page "/re-throwing-error"' - ) - }) + expect(stderr).toContain( + 'Error occurred prerendering page "/re-throwing-error".' + ) }) }) @@ -53,37 +30,9 @@ describe('ppr build errors', () => { expect(stderr).toContain( 'Error occurred prerendering page "/regular-error".' ) - }) - - describe('when a postpone call was made but missing postpone data', () => { - it('should fail the build', async () => { - expect(stderr).toContain( - 'Prerendering /no-suspense-boundary needs to partially bail out because something dynamic was used. ' - ) - - // the regular pre-render error should not be thrown as well, as we've already logged a more specific error - expect(stderr).not.toContain( - 'Error occurred prerendering page "/no-suspense-boundary"' - ) - }) - - it('should fail the build & surface any errors that were thrown by user code', async () => { - // in the case of catching a postpone and throwing a new error, we log the error that the user threw to help with debugging - expect(stderr).toContain( - 'Prerendering /no-suspense-boundary-re-throwing-error needs to partially bail out because something dynamic was used. ' - ) - expect(stderr).toContain( - 'The following error was thrown during build, and may help identify the source of the issue:' - ) - expect(stderr).toContain( - "Error: Throwing a new error from 'no-suspense-boundary-re-throwing-error'" - ) - - // the regular pre-render error should not be thrown as well, as we've already logged a more specific error - expect(stderr).not.toContain( - 'Error occurred prerendering page "/no-suspense-boundary-re-throwing-error"' - ) - }) + expect(stderr).toContain( + 'Error occurred prerendering page "/no-suspense-boundary-re-throwing-error".' + ) }) }) diff --git a/test/e2e/app-dir/ppr-full/app/dynamic-data/force-dynamic/page.jsx b/test/e2e/app-dir/ppr-full/app/dynamic-data/force-dynamic/page.jsx new file mode 100644 index 0000000000000..d58e7bd96aa9e --- /dev/null +++ b/test/e2e/app-dir/ppr-full/app/dynamic-data/force-dynamic/page.jsx @@ -0,0 +1,16 @@ +import { Suspense } from 'react' +import { Optimistic } from '../../../components/optimistic' +import { ServerHtml } from '../../../components/server-html' + +export const dynamic = 'force-dynamic' + +export default ({ searchParams }) => { + return ( + <> + + + + + + ) +} diff --git a/test/e2e/app-dir/ppr-full/app/dynamic-data/force-static/page.jsx b/test/e2e/app-dir/ppr-full/app/dynamic-data/force-static/page.jsx new file mode 100644 index 0000000000000..47f57780e72bb --- /dev/null +++ b/test/e2e/app-dir/ppr-full/app/dynamic-data/force-static/page.jsx @@ -0,0 +1,17 @@ +import { Suspense } from 'react' +import { Optimistic } from '../../../components/optimistic' +import { ServerHtml } from '../../../components/server-html' + +export const dynamic = 'force-static' +export const revalidate = 60 + +export default ({ searchParams }) => { + return ( + <> + + + + + + ) +} diff --git a/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/force-dynamic/page.jsx b/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/force-dynamic/page.jsx new file mode 100644 index 0000000000000..98ec3d0ac1e2d --- /dev/null +++ b/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/force-dynamic/page.jsx @@ -0,0 +1,28 @@ +import { Suspense, unstable_postpone as postpone } from 'react' +import { Optimistic } from '../../../../components/optimistic' +import { ServerHtml } from '../../../../components/server-html' + +export const dynamic = 'force-dynamic' + +export default ({ searchParams }) => { + return ( + <> + + + + + + + + + ) +} + +function IncidentalPostpone() { + // This component will postpone but is not using + // any dynamic APIs so we expect it to simply client render + if (typeof window === 'undefined') { + postpone('incidentally') + } + return
Incidental
+} diff --git a/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/force-static/page.jsx b/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/force-static/page.jsx new file mode 100644 index 0000000000000..4eec05d6e9b4b --- /dev/null +++ b/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/force-static/page.jsx @@ -0,0 +1,28 @@ +import { Suspense, unstable_postpone as postpone } from 'react' +import { Optimistic } from '../../../../components/optimistic' +import { ServerHtml } from '../../../../components/server-html' + +export const dynamic = 'force-static' + +export default ({ searchParams }) => { + return ( + <> + + + + + + + + + ) +} + +function IncidentalPostpone() { + // This component will postpone but is not using + // any dynamic APIs so we expect it to simply client render + if (typeof window === 'undefined') { + postpone('incidentally') + } + return
Incidental
+} diff --git a/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/page.jsx b/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/page.jsx new file mode 100644 index 0000000000000..2a3a3f98a3b7f --- /dev/null +++ b/test/e2e/app-dir/ppr-full/app/dynamic-data/incidental-postpone/page.jsx @@ -0,0 +1,26 @@ +import { Suspense, unstable_postpone as postpone } from 'react' +import { Optimistic } from '../../../components/optimistic' +import { ServerHtml } from '../../../components/server-html' + +export default ({ searchParams }) => { + return ( + <> + + + + + + + + + ) +} + +function IncidentalPostpone() { + // This component will postpone but is not using + // any dynamic APIs so we expect it to simply client render + if (typeof window === 'undefined') { + postpone('incidentally') + } + return
Incidental
+} diff --git a/test/e2e/app-dir/ppr-full/app/dynamic-data/page.jsx b/test/e2e/app-dir/ppr-full/app/dynamic-data/page.jsx new file mode 100644 index 0000000000000..509e2bd384b5f --- /dev/null +++ b/test/e2e/app-dir/ppr-full/app/dynamic-data/page.jsx @@ -0,0 +1,14 @@ +import { Suspense } from 'react' +import { Optimistic } from '../../components/optimistic' +import { ServerHtml } from '../../components/server-html' + +export default ({ searchParams }) => { + return ( + <> + + + + + + ) +} diff --git a/test/e2e/app-dir/ppr-full/components/optimistic.jsx b/test/e2e/app-dir/ppr-full/components/optimistic.jsx new file mode 100644 index 0000000000000..eb954194c9ffc --- /dev/null +++ b/test/e2e/app-dir/ppr-full/components/optimistic.jsx @@ -0,0 +1,7 @@ +export async function Optimistic({ searchParams }) { + try { + return
foo search: {searchParams.foo}
+ } catch (err) { + return
foo search: optimistic
+ } +} diff --git a/test/e2e/app-dir/ppr-full/components/server-html.jsx b/test/e2e/app-dir/ppr-full/components/server-html.jsx new file mode 100644 index 0000000000000..26a1e37c50823 --- /dev/null +++ b/test/e2e/app-dir/ppr-full/components/server-html.jsx @@ -0,0 +1,15 @@ +'use client' + +import { useRef } from 'react' +import { useServerInsertedHTML } from 'next/navigation' + +export function ServerHtml() { + const ref = useRef(0) + useServerInsertedHTML(() => { + console.log('useServerInsertedHTML') + return null + }) + useServerInsertedHTML(() => ( + + )) +} diff --git a/test/e2e/app-dir/ppr-full/ppr-full.test.ts b/test/e2e/app-dir/ppr-full/ppr-full.test.ts index 46e7ca90b7717..78849d2177110 100644 --- a/test/e2e/app-dir/ppr-full/ppr-full.test.ts +++ b/test/e2e/app-dir/ppr-full/ppr-full.test.ts @@ -412,6 +412,162 @@ createNextDescribe( } }) }) + + describe('Dynamic Data pages', () => { + describe('Optimistic UI', () => { + it('should initially render with optimistic UI', async () => { + const $ = await next.render$('/dynamic-data?foo=bar') + + // We defined some server html let's make sure it flushed both in the head + // There may be additional flushes in the body but we want to ensure that + // server html is getting inserted in the shell correctly here + const serverHTML = $('head meta[name="server-html"]') + expect(serverHTML.length).toEqual(1) + expect($(serverHTML[0]).attr('content')).toEqual('0') + + // We expect the server HTML to be the optimistic output + expect($('#foosearch').text()).toEqual('foo search: optimistic') + + // We expect hydration to patch up the render with dynamic data + // from the resume + const browser = await next.browser('/dynamic-data?foo=bar') + try { + await browser.waitForElementByCss('#foosearch') + expect( + await browser.eval( + 'document.getElementById("foosearch").textContent' + ) + ).toEqual('foo search: bar') + } finally { + await browser.close() + } + }) + it('should render entirely statically with force-static', async () => { + const $ = await next.render$('/dynamic-data/force-static?foo=bar') + + // We defined some server html let's make sure it flushed both in the head + // There may be additional flushes in the body but we want to ensure that + // server html is getting inserted in the shell correctly here + const serverHTML = $('head meta[name="server-html"]') + expect(serverHTML.length).toEqual(1) + expect($(serverHTML[0]).attr('content')).toEqual('0') + + // We expect the server HTML to be forced static so no params + // were made available but also nothing threw and was caught for + // optimistic UI + expect($('#foosearch').text()).toEqual('foo search: ') + + // There is no hydration mismatch, we continue to have empty searchParmas + const browser = await next.browser( + '/dynamic-data/force-static?foo=bar' + ) + try { + await browser.waitForElementByCss('#foosearch') + expect( + await browser.eval( + 'document.getElementById("foosearch").textContent' + ) + ).toEqual('foo search: ') + } finally { + await browser.close() + } + }) + it('should render entirely dynamically when force-dynamic', async () => { + const $ = await next.render$('/dynamic-data/force-dynamic?foo=bar') + + // We defined some server html let's make sure it flushed both in the head + // There may be additional flushes in the body but we want to ensure that + // server html is getting inserted in the shell correctly here + const serverHTML = $('head meta[name="server-html"]') + expect(serverHTML.length).toEqual(1) + expect($(serverHTML[0]).attr('content')).toEqual('0') + + // We expect the server HTML to render dynamically + expect($('#foosearch').text()).toEqual('foo search: bar') + }) + }) + + describe('Incidental postpones', () => { + it('should initially render with optimistic UI', async () => { + const $ = await next.render$( + '/dynamic-data/incidental-postpone?foo=bar' + ) + + // We defined some server html let's make sure it flushed both in the head + // There may be additional flushes in the body but we want to ensure that + // server html is getting inserted in the shell correctly here + const serverHTML = $('head meta[name="server-html"]') + expect(serverHTML.length).toEqual(1) + expect($(serverHTML[0]).attr('content')).toEqual('0') + + // We expect the server HTML to be the optimistic output + expect($('#foosearch').text()).toEqual('foo search: optimistic') + + // We expect hydration to patch up the render with dynamic data + // from the resume + const browser = await next.browser( + '/dynamic-data/incidental-postpone?foo=bar' + ) + try { + await browser.waitForElementByCss('#foosearch') + expect( + await browser.eval( + 'document.getElementById("foosearch").textContent' + ) + ).toEqual('foo search: bar') + } finally { + await browser.close() + } + }) + it('should render entirely statically with force-static', async () => { + const $ = await next.render$( + '/dynamic-data/incidental-postpone/force-static?foo=bar' + ) + + // We defined some server html let's make sure it flushed both in the head + // There may be additional flushes in the body but we want to ensure that + // server html is getting inserted in the shell correctly here + const serverHTML = $('head meta[name="server-html"]') + expect(serverHTML.length).toEqual(1) + expect($(serverHTML[0]).attr('content')).toEqual('0') + + // We expect the server HTML to be forced static so no params + // were made available but also nothing threw and was caught for + // optimistic UI + expect($('#foosearch').text()).toEqual('foo search: ') + + // There is no hydration mismatch, we continue to have empty searchParmas + const browser = await next.browser( + '/dynamic-data/incidental-postpone/force-static?foo=bar' + ) + try { + await browser.waitForElementByCss('#foosearch') + expect( + await browser.eval( + 'document.getElementById("foosearch").textContent' + ) + ).toEqual('foo search: ') + } finally { + await browser.close() + } + }) + it('should render entirely dynamically when force-dynamic', async () => { + const $ = await next.render$( + '/dynamic-data/incidental-postpone/force-dynamic?foo=bar' + ) + + // We defined some server html let's make sure it flushed both in the head + // There may be additional flushes in the body but we want to ensure that + // server html is getting inserted in the shell correctly here + const serverHTML = $('head meta[name="server-html"]') + expect(serverHTML.length).toEqual(1) + expect($(serverHTML[0]).attr('content')).toEqual('0') + + // We expect the server HTML to render dynamically + expect($('#foosearch').text()).toEqual('foo search: bar') + }) + }) + }) } } ) diff --git a/test/e2e/app-dir/turbopack-reports/app/layout.tsx b/test/e2e/app-dir/turbopack-reports/app/layout.tsx new file mode 100644 index 0000000000000..e7077399c03ce --- /dev/null +++ b/test/e2e/app-dir/turbopack-reports/app/layout.tsx @@ -0,0 +1,7 @@ +export default function Root({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/e2e/app-dir/turbopack-reports/app/page.tsx b/test/e2e/app-dir/turbopack-reports/app/page.tsx new file mode 100644 index 0000000000000..ff7159d9149fe --- /dev/null +++ b/test/e2e/app-dir/turbopack-reports/app/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return

hello world

+} diff --git a/test/e2e/app-dir/turbopack-reports/app/sqlite-import-5913/page.tsx b/test/e2e/app-dir/turbopack-reports/app/sqlite-import-5913/page.tsx new file mode 100644 index 0000000000000..1ef4e689d05b8 --- /dev/null +++ b/test/e2e/app-dir/turbopack-reports/app/sqlite-import-5913/page.tsx @@ -0,0 +1,6 @@ +import sqlite3 from 'sqlite3' + +export default function Page() { + console.log(sqlite3.READONLY) + return

Hello World

+} diff --git a/test/e2e/app-dir/turbopack-reports/next.config.js b/test/e2e/app-dir/turbopack-reports/next.config.js new file mode 100644 index 0000000000000..807126e4cf0bf --- /dev/null +++ b/test/e2e/app-dir/turbopack-reports/next.config.js @@ -0,0 +1,6 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/test/e2e/app-dir/turbopack-reports/turbopack-reports.test.ts b/test/e2e/app-dir/turbopack-reports/turbopack-reports.test.ts new file mode 100644 index 0000000000000..3b85d652ac121 --- /dev/null +++ b/test/e2e/app-dir/turbopack-reports/turbopack-reports.test.ts @@ -0,0 +1,17 @@ +import { createNextDescribe } from 'e2e-utils' + +createNextDescribe( + 'turbopack-reports', + { + files: __dirname, + dependencies: { + sqlite3: '5.1.7', + }, + }, + ({ next }) => { + it('should render page importing sqlite3', async () => { + const $ = await next.render$('/sqlite-import-5913') + expect($('#message').text()).toBe('Hello World') + }) + } +) diff --git a/test/integration/next-image-new/app-dir/app/fill-warnings/page.js b/test/integration/next-image-new/app-dir/app/fill-warnings/page.js index e24ef4af21209..625cb8f5cbe6a 100644 --- a/test/integration/next-image-new/app-dir/app/fill-warnings/page.js +++ b/test/integration/next-image-new/app-dir/app/fill-warnings/page.js @@ -28,6 +28,12 @@ const Page = () => { > +
+ +
) } diff --git a/test/integration/next-image-new/app-dir/test/index.test.ts b/test/integration/next-image-new/app-dir/test/index.test.ts index ca63f206a9333..037823fd10c7e 100644 --- a/test/integration/next-image-new/app-dir/test/index.test.ts +++ b/test/integration/next-image-new/app-dir/test/index.test.ts @@ -1318,6 +1318,9 @@ function runTests(mode) { expect(warnings).toContain( 'Image with src "/wide.png" has "fill" but is missing "sizes" prop. Please add it to improve page performance. Read more:' ) + expect(warnings).toContain( + 'Image with src "/test.png" has "fill" prop and "sizes" prop of "100vw", but image is not rendered at full viewport width. Please adjust "sizes" to improve page performance. Read more:' + ) }) it('should not log warnings when image unmounts', async () => { browser = await webdriver(appPort, '/should-not-warn-unmount') diff --git a/test/integration/next-image-new/default/pages/fill-warnings.js b/test/integration/next-image-new/default/pages/fill-warnings.js index e24ef4af21209..625cb8f5cbe6a 100644 --- a/test/integration/next-image-new/default/pages/fill-warnings.js +++ b/test/integration/next-image-new/default/pages/fill-warnings.js @@ -28,6 +28,12 @@ const Page = () => { > +
+ +
) } diff --git a/test/integration/next-image-new/default/test/index.test.ts b/test/integration/next-image-new/default/test/index.test.ts index f71a1cd8e658e..0d56881c4ee37 100644 --- a/test/integration/next-image-new/default/test/index.test.ts +++ b/test/integration/next-image-new/default/test/index.test.ts @@ -1319,6 +1319,9 @@ function runTests(mode) { expect(warnings).toContain( 'Image with src "/wide.png" has "fill" but is missing "sizes" prop. Please add it to improve page performance. Read more:' ) + expect(warnings).toContain( + 'Image with src "/test.png" has "fill" prop and "sizes" prop of "100vw", but image is not rendered at full viewport width. Please adjust "sizes" to improve page performance. Read more:' + ) }) it('should not log warnings when image unmounts', async () => { browser = await webdriver(appPort, '/should-not-warn-unmount') diff --git a/test/turbopack-tests-manifest.json b/test/turbopack-tests-manifest.json index 734307ca38720..eb385cb4d15c9 100644 --- a/test/turbopack-tests-manifest.json +++ b/test/turbopack-tests-manifest.json @@ -920,6 +920,7 @@ "test/development/acceptance-app/ReactRefreshLogBox.test.ts": { "passed": [ "ReactRefreshLogBox app turbo Call stack count is correct for client error", + "ReactRefreshLogBox app turbo Call stack count is correct for server error", "ReactRefreshLogBox app turbo Can't resolve @import in CSS file", "ReactRefreshLogBox app turbo Import trace when module not found in layout", "ReactRefreshLogBox app turbo Server component errors should open up in fullscreen", @@ -933,7 +934,6 @@ "ReactRefreshLogBox app turbo unterminated JSX" ], "failed": [ - "ReactRefreshLogBox app turbo Call stack count is correct for server error", "ReactRefreshLogBox app turbo conversion to class component (1)", "ReactRefreshLogBox app turbo css syntax errors" ], @@ -1079,12 +1079,12 @@ "Error recovery app turbo client component can recover from a component error", "Error recovery app turbo displays build error on initial page load", "Error recovery app turbo render error not shown right after syntax error", + "Error recovery app turbo server component can recover from a component error", "Error recovery app turbo server component can recover from syntax error", "Error recovery app turbo syntax > runtime error" ], "failed": [ "Error recovery app turbo client component can recover from syntax error", - "Error recovery app turbo server component can recover from a component error", "Error recovery app turbo stuck error" ], "pending": [ @@ -1178,11 +1178,10 @@ "Error overlay - RSC runtime errors should contain nextjs version check in error overlay", "Error overlay - RSC runtime errors should show runtime errors if invalid client API from node_modules is executed", "Error overlay - RSC runtime errors should show runtime errors if invalid server API from node_modules is executed", - "Error overlay - RSC runtime errors should show source code for jsx errors from server component" - ], - "failed": [ + "Error overlay - RSC runtime errors should show source code for jsx errors from server component", "Error overlay - RSC runtime errors should show the userland code error trace when fetch failed error occurred" ], + "failed": [], "pending": [], "flakey": [], "runtimeError": false @@ -1442,6 +1441,13 @@ "flakey": [], "runtimeError": false }, + "test/development/app-dir/dynamic-error-trace/index.test.ts": { + "passed": ["app dir - dynamic error trace should show the error trace"], + "failed": [], + "pending": [], + "flakey": [], + "runtimeError": false + }, "test/development/app-dir/experimental-lightningcss/experimental-lightningcss.test.ts": { "passed": ["experimental-lightningcss should support css modules"], "failed": [], @@ -1908,18 +1914,18 @@ "middleware - development errors when middleware contains an unhandled rejection logs the error correctly", "middleware - development errors when middleware throws synchronously renders the error correctly and recovers", "middleware - development errors when running invalid dynamic code with eval logs the error correctly", + "middleware - development errors when running invalid dynamic code with eval renders the error correctly and recovers", "middleware - development errors when there is a compilation error after boot renders the error correctly and recovers", "middleware - development errors when there is a compilation error from boot renders the error correctly and recovers", "middleware - development errors when there is an unhandled rejection while loading a dependency does not render the error", "middleware - development errors when there is an unhandled rejection while loading a dependency logs the error correctly", "middleware - development errors when there is an unhandled rejection while loading the module does not render the error", - "middleware - development errors when there is an unhandled rejection while loading the module logs the error correctly" + "middleware - development errors when there is an unhandled rejection while loading the module logs the error correctly", + "middleware - development errors when throwing while loading the module renders the error correctly and recovers" ], "failed": [ "middleware - development errors when middleware throws synchronously logs the error correctly", - "middleware - development errors when running invalid dynamic code with eval renders the error correctly and recovers", - "middleware - development errors when throwing while loading the module logs the error correctly", - "middleware - development errors when throwing while loading the module renders the error correctly and recovers" + "middleware - development errors when throwing while loading the module logs the error correctly" ], "pending": [], "flakey": [ @@ -2539,6 +2545,7 @@ "app dir - external dependency app route should resolve next/server api from external esm package", "app dir - external dependency mixed syntax external modules should handle mixed module in server and client components", "app dir - external dependency mixed syntax external modules should handle mixed module with next/dynamic", + "app dir - external dependency react in external esm packages should support namespace import with ESM packages", "app dir - external dependency react in external esm packages should use the same react in client app", "app dir - external dependency react in external esm packages should use the same react in edge server app", "app dir - external dependency react in external esm packages should use the same react in pages", @@ -3206,6 +3213,60 @@ "flakey": [], "runtimeError": false }, + "test/e2e/app-dir/css-order/css-order.test.ts": { + "passed": [ + "css-order should load correct styles navigating first -> first-client", + "css-order should load correct styles navigating first -> second", + "css-order should load correct styles navigating first -> second-client", + "css-order should load correct styles navigating first -> third", + "css-order should load correct styles navigating first-client -> first", + "css-order should load correct styles navigating first-client -> second", + "css-order should load correct styles navigating first-client -> second-client", + "css-order should load correct styles navigating first-client -> third", + "css-order should load correct styles navigating second -> first", + "css-order should load correct styles navigating second -> first-client", + "css-order should load correct styles navigating second -> second-client", + "css-order should load correct styles navigating second -> third", + "css-order should load correct styles navigating second-client -> first", + "css-order should load correct styles navigating second-client -> first-client", + "css-order should load correct styles navigating second-client -> second", + "css-order should load correct styles navigating second-client -> third", + "css-order should load correct styles navigating third -> first", + "css-order should load correct styles navigating third -> first-client", + "css-order should load correct styles navigating third -> second", + "css-order should load correct styles navigating third -> second-client", + "css-order should load correct styles on first", + "css-order should load correct styles on first-client", + "css-order should load correct styles on second", + "css-order should load correct styles on second-client", + "css-order should load correct styles on third" + ], + "failed": [], + "pending": [ + "css-order should load correct styles navigating back again first -> first-client -> first -> first-client", + "css-order should load correct styles navigating back again first -> second -> first -> second", + "css-order should load correct styles navigating back again first -> second-client -> first -> second-client", + "css-order should load correct styles navigating back again first -> third -> first -> third", + "css-order should load correct styles navigating back again first-client -> first -> first-client -> first", + "css-order should load correct styles navigating back again first-client -> second -> first-client -> second", + "css-order should load correct styles navigating back again first-client -> second-client -> first-client -> second-client", + "css-order should load correct styles navigating back again first-client -> third -> first-client -> third", + "css-order should load correct styles navigating back again second -> first -> second -> first", + "css-order should load correct styles navigating back again second -> first-client -> second -> first-client", + "css-order should load correct styles navigating back again second -> second-client -> second -> second-client", + "css-order should load correct styles navigating back again second -> third -> second -> third", + "css-order should load correct styles navigating back again second-client -> first -> second-client -> first", + "css-order should load correct styles navigating back again second-client -> first-client -> second-client -> first-client", + "css-order should load correct styles navigating back again second-client -> second -> second-client -> second", + "css-order should load correct styles navigating back again second-client -> third -> second-client -> third", + "css-order should load correct styles navigating back again third -> first -> third -> first", + "css-order should load correct styles navigating back again third -> first-client -> third -> first-client", + "css-order should load correct styles navigating back again third -> second -> third -> second", + "css-order should load correct styles navigating back again third -> second-client -> third -> second-client" + ], + "flakey": [], + "runtimeError": false + }, "test/e2e/app-dir/draft-mode/draft-mode.test.ts": { "passed": [ "app dir - draft mode in edge runtime should be disabled from api route handler", @@ -3233,39 +3294,6 @@ "flakey": [], "runtimeError": false }, - "test/e2e/app-dir/css-order/css-order.test.ts": { - "passed": [ - "css-order should load correct styles navigating first -> first-client", - "css-order should load correct styles navigating first -> second-client", - "css-order should load correct styles navigating first -> second", - "css-order should load correct styles navigating first -> third", - "css-order should load correct styles navigating first-client -> first", - "css-order should load correct styles navigating first-client -> second-client", - "css-order should load correct styles navigating first-client -> second", - "css-order should load correct styles navigating first-client -> third", - "css-order should load correct styles navigating second -> first-client", - "css-order should load correct styles navigating second -> first", - "css-order should load correct styles navigating second -> second-client", - "css-order should load correct styles navigating second -> third", - "css-order should load correct styles navigating second-client -> first-client", - "css-order should load correct styles navigating second-client -> first", - "css-order should load correct styles navigating second-client -> second", - "css-order should load correct styles navigating second-client -> third", - "css-order should load correct styles navigating third -> first-client", - "css-order should load correct styles navigating third -> first", - "css-order should load correct styles navigating third -> second-client", - "css-order should load correct styles navigating third -> second", - "css-order should load correct styles on first-client", - "css-order should load correct styles on first", - "css-order should load correct styles on second-client", - "css-order should load correct styles on second", - "css-order should load correct styles on third" - ], - "failed": [], - "pending": [], - "flakey": [], - "runtimeError": false - }, "test/e2e/app-dir/dynamic-data/dynamic-data.test.ts": { "passed": [ "dynamic-data inside cache scope displays redbox when accessing dynamic data inside a cache scope", @@ -3553,7 +3581,8 @@ }, "test/e2e/app-dir/interception-route-prefetch-cache/interception-route-prefetch-cache.test.ts": { "passed": [ - "interception-route-prefetch-cache should render the correct interception when two distinct layouts share the same path structure" + "interception-route-prefetch-cache runtime = edge should render the correct interception when two distinct layouts share the same path structure", + "interception-route-prefetch-cache runtime = nodejs should render the correct interception when two distinct layouts share the same path structure" ], "failed": [], "pending": [], @@ -4555,6 +4584,13 @@ "flakey": [], "runtimeError": false }, + "test/e2e/app-dir/syntax-highlighter-crash/syntax-highlighter-crash.test.ts": { + "passed": ["syntax-highlighter-crash should render the page"], + "failed": [], + "pending": [], + "flakey": [], + "runtimeError": false + }, "test/e2e/app-dir/taint/process-taint.test.ts": { "passed": [ "app dir - taint should error when passing process env to client component" @@ -4600,6 +4636,13 @@ "flakey": [], "runtimeError": false }, + "test/e2e/app-dir/turbopack-reports/turbopack-reports.test.ts": { + "passed": ["turbopack-reports should render page importing sqlite3"], + "failed": [], + "pending": [], + "flakey": [], + "runtimeError": false + }, "test/e2e/app-dir/underscore-ignore-app-paths/underscore-ignore-app-paths.test.ts": { "passed": [ "underscore-ignore-app-paths should not serve app path with underscore", @@ -5023,9 +5066,10 @@ "runtimeError": false }, "test/e2e/fetch-failures-have-good-stack-traces-in-edge-runtime/fetch-failures-have-good-stack-traces-in-edge-runtime.test.ts": { - "passed": [], + "passed": [ + "fetch failures have good stack traces in edge runtime when awaiting `fetch` using an unknown domain, stack traces are preserved" + ], "failed": [ - "fetch failures have good stack traces in edge runtime when awaiting `fetch` using an unknown domain, stack traces are preserved", "fetch failures have good stack traces in edge runtime when returning `fetch` using an unknown domain, stack traces are preserved" ], "pending": [], @@ -7175,6 +7219,13 @@ "flakey": [], "runtimeError": false }, + "test/integration/babel-next-image/babel-next-image.test.js": { + "passed": [], + "failed": [], + "pending": ["babel-next-image should work with babel and next/image"], + "flakey": [], + "runtimeError": false + }, "test/integration/babel/test/index.test.js": { "passed": [], "failed": [], @@ -11683,6 +11734,9 @@ "with contentDispositionType attachment dev support with next.config.js should not allow svg with comma header", "with contentDispositionType attachment dev support with next.config.js should not allow svg with uppercase header", "with contentDispositionType attachment dev support with next.config.js should not allow vector svg", + "with contentDispositionType attachment dev support with next.config.js should not change the color type of a png", + "with contentDispositionType attachment dev support with next.config.js should not have sharp missing warning", + "with contentDispositionType attachment dev support with next.config.js should not have sharp outdated warning", "with contentDispositionType attachment dev support with next.config.js should not resize if requested width is larger than original source image", "with contentDispositionType attachment dev support with next.config.js should resize absolute url from localhost", "with contentDispositionType attachment dev support with next.config.js should resize relative url and new Chrome accept header as avif", @@ -11728,6 +11782,7 @@ "with contentDispositionType attachment Production Mode Server support with next.config.js should fail when width is not in next.config.js", "with contentDispositionType attachment Production Mode Server support with next.config.js should handle concurrent requests", "with contentDispositionType attachment Production Mode Server support with next.config.js should handle non-ascii characters in image url", + "with contentDispositionType attachment Production Mode Server support with next.config.js should have sharp missing warning", "with contentDispositionType attachment Production Mode Server support with next.config.js should maintain animated gif", "with contentDispositionType attachment Production Mode Server support with next.config.js should maintain animated png", "with contentDispositionType attachment Production Mode Server support with next.config.js should maintain animated png 2", @@ -11741,6 +11796,8 @@ "with contentDispositionType attachment Production Mode Server support with next.config.js should not allow svg with comma header", "with contentDispositionType attachment Production Mode Server support with next.config.js should not allow svg with uppercase header", "with contentDispositionType attachment Production Mode Server support with next.config.js should not allow vector svg", + "with contentDispositionType attachment Production Mode Server support with next.config.js should not change the color type of a png", + "with contentDispositionType attachment Production Mode Server support with next.config.js should not have sharp outdated warning", "with contentDispositionType attachment Production Mode Server support with next.config.js should not resize if requested width is larger than original source image", "with contentDispositionType attachment Production Mode Server support with next.config.js should resize absolute url from localhost", "with contentDispositionType attachment Production Mode Server support with next.config.js should resize relative url and new Chrome accept header as avif", @@ -11837,6 +11894,9 @@ "with minimumCacheTTL of 5 sec dev support with next.config.js should not allow svg with comma header", "with minimumCacheTTL of 5 sec dev support with next.config.js should not allow svg with uppercase header", "with minimumCacheTTL of 5 sec dev support with next.config.js should not allow vector svg", + "with minimumCacheTTL of 5 sec dev support with next.config.js should not change the color type of a png", + "with minimumCacheTTL of 5 sec dev support with next.config.js should not have sharp missing warning", + "with minimumCacheTTL of 5 sec dev support with next.config.js should not have sharp outdated warning", "with minimumCacheTTL of 5 sec dev support with next.config.js should not resize if requested width is larger than original source image", "with minimumCacheTTL of 5 sec dev support with next.config.js should resize absolute url from localhost", "with minimumCacheTTL of 5 sec dev support with next.config.js should resize relative url and new Chrome accept header as avif", @@ -11882,6 +11942,7 @@ "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should fail when width is not in next.config.js", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should handle concurrent requests", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should handle non-ascii characters in image url", + "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should have sharp missing warning", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should maintain animated gif", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should maintain animated png", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should maintain animated png 2", @@ -11895,6 +11956,8 @@ "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should not allow svg with comma header", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should not allow svg with uppercase header", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should not allow vector svg", + "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should not change the color type of a png", + "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should not have sharp outdated warning", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should not resize if requested width is larger than original source image", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should resize absolute url from localhost", "with minimumCacheTTL of 5 sec Production Mode Server support with next.config.js should resize relative url and new Chrome accept header as avif", @@ -11914,6 +11977,71 @@ "flakey": [], "runtimeError": false }, + "test/integration/image-optimizer/test/old-sharp.test.ts": { + "passed": [], + "failed": [], + "pending": [ + "with outdated sharp Production Mode Server support with next.config.js should automatically detect image type when content-type is octet-stream", + "with outdated sharp Production Mode Server support with next.config.js should compress avif smaller than webp at q=100", + "with outdated sharp Production Mode Server support with next.config.js should compress avif smaller than webp at q=50", + "with outdated sharp Production Mode Server support with next.config.js should compress avif smaller than webp at q=75", + "with outdated sharp Production Mode Server support with next.config.js should downlevel webp format to jpeg for old Safari", + "with outdated sharp Production Mode Server support with next.config.js should emit blur svg when width is 8 in dev but not prod", + "with outdated sharp Production Mode Server support with next.config.js should emit blur svg when width is less than 8 in dev but not prod", + "with outdated sharp Production Mode Server support with next.config.js should error if the image file does not exist", + "with outdated sharp Production Mode Server support with next.config.js should error if the resource isn't a valid image", + "with outdated sharp Production Mode Server support with next.config.js should fail when domain is not defined in next.config.js", + "with outdated sharp Production Mode Server support with next.config.js should fail when internal url is not an image", + "with outdated sharp Production Mode Server support with next.config.js should fail when q is greater than 100", + "with outdated sharp Production Mode Server support with next.config.js should fail when q is less than 1", + "with outdated sharp Production Mode Server support with next.config.js should fail when q is missing", + "with outdated sharp Production Mode Server support with next.config.js should fail when q is not a number", + "with outdated sharp Production Mode Server support with next.config.js should fail when url fails to load an image", + "with outdated sharp Production Mode Server support with next.config.js should fail when url has file protocol", + "with outdated sharp Production Mode Server support with next.config.js should fail when url has ftp protocol", + "with outdated sharp Production Mode Server support with next.config.js should fail when url is missing", + "with outdated sharp Production Mode Server support with next.config.js should fail when w is 0", + "with outdated sharp Production Mode Server support with next.config.js should fail when w is less than 0", + "with outdated sharp Production Mode Server support with next.config.js should fail when w is missing", + "with outdated sharp Production Mode Server support with next.config.js should fail when w is not a number", + "with outdated sharp Production Mode Server support with next.config.js should fail when width is not in next.config.js", + "with outdated sharp Production Mode Server support with next.config.js should handle concurrent requests", + "with outdated sharp Production Mode Server support with next.config.js should handle custom sharp usage", + "with outdated sharp Production Mode Server support with next.config.js should handle non-ascii characters in image url", + "with outdated sharp Production Mode Server support with next.config.js should have sharp outdated warning", + "with outdated sharp Production Mode Server support with next.config.js should maintain animated gif", + "with outdated sharp Production Mode Server support with next.config.js should maintain animated png", + "with outdated sharp Production Mode Server support with next.config.js should maintain animated png 2", + "with outdated sharp Production Mode Server support with next.config.js should maintain animated webp", + "with outdated sharp Production Mode Server support with next.config.js should maintain bmp", + "with outdated sharp Production Mode Server support with next.config.js should maintain ico format", + "with outdated sharp Production Mode Server support with next.config.js should maintain jpg format for old Safari", + "with outdated sharp Production Mode Server support with next.config.js should maintain png format for old Safari", + "with outdated sharp Production Mode Server support with next.config.js should normalize invalid status codes", + "with outdated sharp Production Mode Server support with next.config.js should not allow svg with application header", + "with outdated sharp Production Mode Server support with next.config.js should not allow svg with comma header", + "with outdated sharp Production Mode Server support with next.config.js should not allow svg with uppercase header", + "with outdated sharp Production Mode Server support with next.config.js should not allow vector svg", + "with outdated sharp Production Mode Server support with next.config.js should not have sharp missing warning", + "with outdated sharp Production Mode Server support with next.config.js should not resize if requested width is larger than original source image", + "with outdated sharp Production Mode Server support with next.config.js should resize absolute url from localhost", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url and new Chrome accept header as avif", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url and old Chrome accept header as webp", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url and png accept header", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url and webp Firefox accept header", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url with invalid accept header as gif", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url with invalid accept header as png", + "with outdated sharp Production Mode Server support with next.config.js should resize relative url with invalid accept header as tiff", + "with outdated sharp Production Mode Server support with next.config.js should return home page", + "with outdated sharp Production Mode Server support with next.config.js should set 304 status without body when etag matches if-none-match", + "with outdated sharp Production Mode Server support with next.config.js should set cache-control to immutable for static images", + "with outdated sharp Production Mode Server support with next.config.js should use cache and stale-while-revalidate when query is the same for external image", + "with outdated sharp Production Mode Server support with next.config.js should use cache and stale-while-revalidate when query is the same for internal image", + "with outdated sharp Production Mode Server support with next.config.js should use cached image file when parameters are the same for animated gif" + ], + "flakey": [], + "runtimeError": false + }, "test/integration/image-optimizer/test/sharp.test.ts": { "passed": [ "with latest sharp dev support w/o next.config.js should downlevel avif format to jpeg for old Safari", @@ -11949,6 +12077,8 @@ "with latest sharp dev support w/o next.config.js should not allow svg with comma header", "with latest sharp dev support w/o next.config.js should not allow svg with uppercase header", "with latest sharp dev support w/o next.config.js should not allow vector svg", + "with latest sharp dev support w/o next.config.js should not have sharp missing warning", + "with latest sharp dev support w/o next.config.js should not have sharp outdated warning", "with latest sharp dev support w/o next.config.js should not resize if requested width is larger than original source image", "with latest sharp dev support w/o next.config.js should resize relative url and old Chrome accept header as webp", "with latest sharp dev support w/o next.config.js should resize relative url and png accept header", @@ -12001,6 +12131,8 @@ "with latest sharp dev support with next.config.js should not allow svg with comma header", "with latest sharp dev support with next.config.js should not allow svg with uppercase header", "with latest sharp dev support with next.config.js should not allow vector svg", + "with latest sharp dev support with next.config.js should not have sharp missing warning", + "with latest sharp dev support with next.config.js should not have sharp outdated warning", "with latest sharp dev support with next.config.js should not resize if requested width is larger than original source image", "with latest sharp dev support with next.config.js should resize absolute url from localhost", "with latest sharp dev support with next.config.js should resize relative url and new Chrome accept header as avif", @@ -12052,6 +12184,8 @@ "with latest sharp Production Mode Server support w/o next.config.js should not allow svg with comma header", "with latest sharp Production Mode Server support w/o next.config.js should not allow svg with uppercase header", "with latest sharp Production Mode Server support w/o next.config.js should not allow vector svg", + "with latest sharp Production Mode Server support w/o next.config.js should not have sharp missing warning", + "with latest sharp Production Mode Server support w/o next.config.js should not have sharp outdated warning", "with latest sharp Production Mode Server support w/o next.config.js should not resize if requested width is larger than original source image", "with latest sharp Production Mode Server support w/o next.config.js should resize relative url and old Chrome accept header as webp", "with latest sharp Production Mode Server support w/o next.config.js should resize relative url and png accept header", @@ -12090,6 +12224,7 @@ "with latest sharp Production Mode Server support with next.config.js should fail when w is not a number", "with latest sharp Production Mode Server support with next.config.js should fail when width is not in next.config.js", "with latest sharp Production Mode Server support with next.config.js should handle concurrent requests", + "with latest sharp Production Mode Server support with next.config.js should handle custom sharp usage", "with latest sharp Production Mode Server support with next.config.js should handle non-ascii characters in image url", "with latest sharp Production Mode Server support with next.config.js should maintain animated gif", "with latest sharp Production Mode Server support with next.config.js should maintain animated png", @@ -12104,6 +12239,8 @@ "with latest sharp Production Mode Server support with next.config.js should not allow svg with comma header", "with latest sharp Production Mode Server support with next.config.js should not allow svg with uppercase header", "with latest sharp Production Mode Server support with next.config.js should not allow vector svg", + "with latest sharp Production Mode Server support with next.config.js should not have sharp missing warning", + "with latest sharp Production Mode Server support with next.config.js should not have sharp outdated warning", "with latest sharp Production Mode Server support with next.config.js should not resize if requested width is larger than original source image", "with latest sharp Production Mode Server support with next.config.js should resize absolute url from localhost", "with latest sharp Production Mode Server support with next.config.js should resize relative url and new Chrome accept header as avif", @@ -14868,13 +15005,6 @@ "flakey": [], "runtimeError": false }, - "test/integration/sharp-api/test/sharp-api.test.ts": { - "passed": [], - "failed": [], - "pending": ["sharp api should handle custom sharp usage"], - "flakey": [], - "runtimeError": false - }, "test/integration/src-dir-support-double-dir/test/index.test.js": { "passed": [ "Dynamic Routing dev mode should render from pages",