diff --git a/.eslintignore b/.eslintignore index dbe921e6605cb..315d281d5686b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -39,3 +39,5 @@ packages/next-bundle-analyzer/index.d.ts examples/with-typescript-graphql/lib/gql/ test/development/basic/hmr/components/parse-error.js packages/next-swc/docs/assets/**/* +test/lib/amp-validator-wasm.js +test/production/pages-dir/production/fixture/amp-validator-wasm.js diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 243795a3a1772..23dbcc36d818d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -41,5 +41,5 @@ Cargo.toml @timneutkens @i Cargo.lock @timneutkens @ijjk @shuding @huozhi @vercel/turbopack /.cargo/config.toml @timneutkens @ijjk @shuding @huozhi @vercel/turbopack /.config/nextest.toml @timneutkens @ijjk @shuding @huozhi @vercel/turbopack -/test/build-turbopack-tests-manifest.js @timneutkens @ijjk @shuding @huozhi @vercel/turbopack -/test/turbopack-tests-manifest.json @timneutkens @ijjk @shuding @huozhi @vercel/turbopack +/test/build-turbopack-dev-tests-manifest.js @timneutkens @ijjk @shuding @huozhi @vercel/turbopack +/test/turbopack-dev-tests-manifest.json @timneutkens @ijjk @shuding @huozhi @vercel/turbopack diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index ab99b7cc78918..7bae97017336c 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,3 +6,6 @@ contact_links: - name: Feature request url: https://github.com/vercel/next.js/discussions/new?category=ideas about: Feature requests should be opened as discussions + - name: Next.js Learn course + url: https://github.com/vercel/next-learn/issues/new + about: Next.js Lean course-related issues should be reported in their respective repository diff --git a/.github/actions/next-repo-info/dist/issues/index.mjs b/.github/actions/next-repo-info/dist/issues/index.mjs index 5dc38faa08357..b4d79a6f88df1 100644 --- a/.github/actions/next-repo-info/dist/issues/index.mjs +++ b/.github/actions/next-repo-info/dist/issues/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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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+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 issues 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:issue 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 issues`)}}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 formattedDate(e){const t=new Date(e);return t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function ninetyDaysAgo(){const e=new Date;e.setDate(e.getDate()-90);return e.toISOString().split("T")[0]}function generateBlocks(e){const t=[{type:"section",text:{type:"mrkdwn",text:"*A list of the top 15 issues sorted by most :+1: reactions over the last 90 days.*\n_Note: This :github2: 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"]}, ${formattedDate(e.created_at)}]: ${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{owner:A,repo:n}=e.context.repo;const{data:i}=await r.rest.search.issuesAndPullRequests({order:"desc",per_page:15,q:`repo:${A}/${n} is:issue is:open created:>=${ninetyDaysAgo()}`,sort:"reactions-+1"});if(i.items.length>0){await o.chat.postMessage({blocks:generateBlocks(i.items),channel:"#team-next-js",icon_emoji:":github:",username:"GitHub Notifier"});(0,t.info)(`Posted to Slack!`)}else{(0,t.info)(`No popular issues`)}}catch(e){(0,t.setFailed)(e)}}run()})(); \ No newline at end of file diff --git a/.github/actions/next-repo-info/dist/prs/index.mjs b/.github/actions/next-repo-info/dist/prs/index.mjs index 5d3e492c53399..9d1d6ed681165 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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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},7785:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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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){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 +/*! 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 formattedDate(e){const t=new Date(e);return t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function ninetyDaysAgo(){const e=new Date;e.setDate(e.getDate()-90);return e.toISOString().split("T")[0]}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"]}, ${formattedDate(e.created_at)}]: ${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: 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{owner:A,repo:n}=e.context.repo;const{data:i}=await r.rest.search.issuesAndPullRequests({order:"desc",per_page:15,q:`repo:${A}/${n} is:pr is:open created:>=${ninetyDaysAgo()}`,sort:"reactions-+1"});if(i.items.length>0){await o.chat.postMessage({blocks:generateBlocks(i.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/lib/util.mjs b/.github/actions/next-repo-info/lib/util.mjs new file mode 100644 index 0000000000000..217dfe153dfec --- /dev/null +++ b/.github/actions/next-repo-info/lib/util.mjs @@ -0,0 +1,17 @@ +// format date to , +export function formattedDate(createdAt) { + const date = new Date(createdAt) + + return date.toLocaleDateString('en-US', { + month: 'short', + day: 'numeric', + year: 'numeric', + }) +} + +// Get the date 90 days ago (YYYY-MM-DD) +export function ninetyDaysAgo() { + const date = new Date() + date.setDate(date.getDate() - 90) + return date.toISOString().split('T')[0] +} diff --git a/.github/actions/next-repo-info/src/popular-issues.mjs b/.github/actions/next-repo-info/src/popular-issues.mjs index 8bb1e6b3f4052..3a329be92d47e 100644 --- a/.github/actions/next-repo-info/src/popular-issues.mjs +++ b/.github/actions/next-repo-info/src/popular-issues.mjs @@ -1,7 +1,8 @@ // @ts-check import { context, getOctokit } from '@actions/github' -import { setFailed, info } from '@actions/core' +import { info, setFailed } from '@actions/core' import { WebClient } from '@slack/web-api' +import { formattedDate, ninetyDaysAgo } from '../lib/util.mjs' function generateBlocks(issues) { const blocks = [ @@ -9,7 +10,7 @@ function generateBlocks(issues) { type: 'section', text: { type: 'mrkdwn', - text: '*A list of the top 15 issues sorted by most :+1: reactions over the last 90 days.*\n_Note: This :github2: workflow will run every Monday at 1PM UTC (9AM EST)._', + text: '*A list of the top 15 issues sorted by most :+1: reactions over the last 90 days.*\n_Note: This :github2: will run every Monday at 1PM UTC (9AM EST)._', }, }, { @@ -18,10 +19,11 @@ function generateBlocks(issues) { ] let text = '' + issues.forEach((issue, i) => { text += `${i + 1}. [<${issue.html_url}|#${issue.number}>, :+1: ${ issue.reactions['+1'] - }]: ${issue.title}\n` + }, ${formattedDate(issue.created_at)}]: ${issue.title}\n` }) blocks.push({ @@ -43,16 +45,11 @@ async function run() { const octoClient = getOctokit(process.env.GITHUB_TOKEN) const slackClient = new WebClient(process.env.SLACK_TOKEN) - // Get the date 90 days ago (YYYY-MM-DD) - const date = new Date() - date.setDate(date.getDate() - 90) - const ninetyDaysAgo = date.toISOString().split('T')[0] - const { owner, repo } = context.repo const { data } = await octoClient.rest.search.issuesAndPullRequests({ order: 'desc', per_page: 15, - q: `repo:${owner}/${repo} is:issue is:open created:>=${ninetyDaysAgo}`, + q: `repo:${owner}/${repo} is:issue is:open created:>=${ninetyDaysAgo()}`, sort: 'reactions-+1', }) diff --git a/.github/actions/next-repo-info/src/popular-prs.mjs b/.github/actions/next-repo-info/src/popular-prs.mjs index a595b603d9679..eeb1da3bafed5 100644 --- a/.github/actions/next-repo-info/src/popular-prs.mjs +++ b/.github/actions/next-repo-info/src/popular-prs.mjs @@ -2,6 +2,7 @@ import { context, getOctokit } from '@actions/github' import { setFailed, info } from '@actions/core' import { WebClient } from '@slack/web-api' +import { formattedDate, ninetyDaysAgo } from '../lib/util.mjs' function generateBlocks(prs) { let text = '' @@ -17,7 +18,7 @@ function generateBlocks(prs) { if (pr.reactions['+1'] > 1) { text += `${i + 1}. [<${pr.html_url}|#${pr.number}>, :+1: ${ pr.reactions['+1'] - }]: ${pr.title}\n` + }, ${formattedDate(pr.created_at)}]: ${pr.title}\n` count++ } }) @@ -26,7 +27,7 @@ function generateBlocks(prs) { 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)._`, + text: `*A list of the top ${count} PRs sorted by most :+1: reactions (> 1) over the last 90 days.*\n_Note: This :github2: will run every Monday at 1PM UTC (9AM EST)._`, }, }) @@ -49,16 +50,11 @@ async function run() { const octoClient = getOctokit(process.env.GITHUB_TOKEN) const slackClient = new WebClient(process.env.SLACK_TOKEN) - // Get the date 90 days ago (YYYY-MM-DD) - const date = new Date() - date.setDate(date.getDate() - 90) - const ninetyDaysAgo = date.toISOString().split('T')[0] - const { owner, repo } = context.repo const { data } = await octoClient.rest.search.issuesAndPullRequests({ order: 'desc', per_page: 15, - q: `repo:${owner}/${repo} is:pr is:open created:>=${ninetyDaysAgo}`, + q: `repo:${owner}/${repo} is:pr is:open created:>=${ninetyDaysAgo()}`, sort: 'reactions-+1', }) diff --git a/.github/actions/next-stats-action/src/prepare/repo-setup.js b/.github/actions/next-stats-action/src/prepare/repo-setup.js index 72196d21cf6dc..81fa2847a8aad 100644 --- a/.github/actions/next-stats-action/src/prepare/repo-setup.js +++ b/.github/actions/next-stats-action/src/prepare/repo-setup.js @@ -208,13 +208,20 @@ module.exports = (actionInfo) => { } } - const { stdout } = await execa('pnpm', ['pack'], { + const options = { cwd: pkgPath, env: { ...process.env, COREPACK_ENABLE_STRICT: '0', }, - }) + } + let execResult + try { + execResult = await execa('pnpm', ['pack'], options) + } catch { + execResult = await execa('pnpm', ['pack'], options) + } + const { stdout } = execResult const packedFileName = stdout.trim() diff --git a/.github/actions/upload-turboyet-data/dist/index.js b/.github/actions/upload-turboyet-data/dist/index.js index c09be9c02027c..b829fd99ce44a 100644 --- a/.github/actions/upload-turboyet-data/dist/index.js +++ b/.github/actions/upload-turboyet-data/dist/index.js @@ -1,25 +1,25 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 194: +/***/ 42: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({value: true})); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2;var c=class extends Error{constructor(n){super(n),this.name="UpstashError"}};var ie=class{constructor(n){this.options={backend:_optionalChain([n, 'access', _2 => _2.options, 'optionalAccess', _3 => _3.backend]),agent:n.agent,responseEncoding:_nullishCoalesce(n.responseEncoding, () => ("base64")),cache:n.cache},this.baseUrl=n.baseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...n.headers},this.options.responseEncoding==="base64"&&(this.headers["Upstash-Encoding"]="base64"),typeof _optionalChain([n, 'optionalAccess', _4 => _4.retry])=="boolean"&&_optionalChain([n, 'optionalAccess', _5 => _5.retry])===!1?this.retry={attempts:1,backoff:()=>0}:this.retry={attempts:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _6 => _6.retry, 'optionalAccess', _7 => _7.retries]), () => (5)),backoff:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _8 => _8.retry, 'optionalAccess', _9 => _9.backoff]), () => ((t=>Math.exp(t)*50)))}}mergeTelemetry(n){function t(o,m,r){return r&&(o[m]?o[m]=[o[m],r].join(","):o[m]=r),o}this.headers=t(this.headers,"Upstash-Telemetry-Runtime",n.runtime),this.headers=t(this.headers,"Upstash-Telemetry-Platform",n.platform),this.headers=t(this.headers,"Upstash-Telemetry-Sdk",n.sdk)}async request(n){let t={cache:this.options.cache,method:"POST",headers:this.headers,body:JSON.stringify(n.body),keepalive:!0,agent:_optionalChain([this, 'access', _10 => _10.options, 'optionalAccess', _11 => _11.agent]),backend:_optionalChain([this, 'access', _12 => _12.options, 'optionalAccess', _13 => _13.backend])},o=null,m=null;for(let a=0;a<=this.retry.attempts;a++)try{o=await fetch([this.baseUrl,..._nullishCoalesce(n.path, () => ([]))].join("/"),t);break}catch(i){m=i,await new Promise(p=>setTimeout(p,this.retry.backoff(a)))}if(!o)throw _nullishCoalesce(m, () => (new Error("Exhausted all retries")));let r=await o.json();if(!o.ok)throw new c(`${r.error}, command was: ${JSON.stringify(n.body)}`);return _optionalChain([this, 'access', _14 => _14.options, 'optionalAccess', _15 => _15.responseEncoding])==="base64"?Array.isArray(r)?r.map(({result:i,error:p})=>({result:re(i),error:p})):{result:re(r.result),error:r.error}:r}};function pe(s){let n="";try{let t=atob(s),o=t.length,m=new Uint8Array(o);for(let r=0;rtypeof t=="string"?pe(t):Array.isArray(t)?t.map(re):t):n=null;break}case"string":{n=s==="OK"?"OK":pe(s);break}default:break}return n}function de(s){let n=Array.isArray(s)?s.map(t=>{try{return de(t)}catch (e3){return t}}):JSON.parse(s);return typeof n=="number"&&n.toString()!==s?s:n}function ce(s){try{return de(s)}catch (e4){return s}}var he=s=>{switch(typeof s){case"string":case"number":case"boolean":return s;default:return JSON.stringify(s)}},e=class{constructor(n,t){this.serialize=he,this.deserialize=typeof _optionalChain([t, 'optionalAccess', _16 => _16.automaticDeserialization])>"u"||t.automaticDeserialization?_nullishCoalesce(_optionalChain([t, 'optionalAccess', _17 => _17.deserialize]), () => (ce)):o=>o,this.command=n.map(o=>this.serialize(o))}async exec(n){let{result:t,error:o}=await n.request({body:this.command});if(o)throw new c(o);if(typeof t>"u")throw new Error("Request did not return a result");return this.deserialize(t)}};var C=class extends e{constructor(n,t){super(["append",...n],t)}};var l=class extends e{constructor([n,t,o],m){let r=["bitcount",n];typeof t=="number"&&r.push(t),typeof o=="number"&&r.push(o),super(r,m)}};var g=class extends e{constructor(n,t){super(["bitop",...n],t)}};var x=class extends e{constructor(n,t){super(["bitpos",...n],t)}};var f=class extends e{constructor([n,t,o],m){super(["COPY",n,t,..._optionalChain([o, 'optionalAccess', _18 => _18.replace])?["REPLACE"]:[]],{...m,deserialize(r){return r>0?"COPIED":"NOT_COPIED"}})}};var y=class extends e{constructor(n){super(["dbsize"],n)}};var b=class extends e{constructor(n,t){super(["decr",...n],t)}};var O=class extends e{constructor(n,t){super(["decrby",...n],t)}};var T=class extends e{constructor(n,t){super(["del",...n],t)}};var w=class extends e{constructor(n,t){super(["echo",...n],t)}};var D=class extends e{constructor([n,t,o],m){super(["eval",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var k=class extends e{constructor([n,t,o],m){super(["evalsha",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var A=class extends e{constructor(n,t){super(["exists",...n],t)}};var S=class extends e{constructor(n,t){super(["expire",...n],t)}};var R=class extends e{constructor(n,t){super(["expireat",...n],t)}};var M=class extends e{constructor(n,t){let o=["flushall"];n&&n.length>0&&n[0].async&&o.push("async"),super(o,t)}};var v=class extends e{constructor([n],t){let o=["flushdb"];_optionalChain([n, 'optionalAccess', _19 => _19.async])&&o.push("async"),super(o,t)}};var E=class extends e{constructor([n,t,...o],m){let r=["geoadd",n];"nx"in t&&t.nx?r.push("nx"):"xx"in t&&t.xx&&r.push("xx"),"ch"in t&&t.ch&&r.push("ch"),"latitude"in t&&t.latitude&&r.push(t.longitude,t.latitude,t.member),r.push(...o.flatMap(({latitude:a,longitude:i,member:p})=>[i,a,p])),super(r,m)}};var z=class extends e{constructor([n,t,o,m="M"],r){super(["GEODIST",n,t,o,m],r)}};var J=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super(["GEOPOS",o,...m],{deserialize:r=>Ce(r),...t})}};function Ce(s){let n=[];for(let t of s)!_optionalChain([t, 'optionalAccess', _20 => _20[0]])||!_optionalChain([t, 'optionalAccess', _21 => _21[1]])||n.push({lng:parseFloat(t[0]),lat:parseFloat(t[1])});return n}var P=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super(["GEOHASH",o,...m],t)}};var I=class extends e{constructor([n,t,o,m,r],a){let i=["GEOSEARCH",n];(t.type==="FROMMEMBER"||t.type==="frommember")&&i.push(t.type,t.member),(t.type==="FROMLONLAT"||t.type==="fromlonlat")&&i.push(t.type,t.coordinate.lon,t.coordinate.lat),(o.type==="BYRADIUS"||o.type==="byradius")&&i.push(o.type,o.radius,o.radiusType),(o.type==="BYBOX"||o.type==="bybox")&&i.push(o.type,o.rect.width,o.rect.height,o.rectType),i.push(m),_optionalChain([r, 'optionalAccess', _22 => _22.count])&&i.push(r.count.limit,...r.count.any?["ANY"]:[]);let p=ae=>!_optionalChain([r, 'optionalAccess', _23 => _23.withCoord])&&!_optionalChain([r, 'optionalAccess', _24 => _24.withDist])&&!_optionalChain([r, 'optionalAccess', _25 => _25.withHash])?ae.map(d=>{try{return{member:JSON.parse(d)}}catch (e5){return{member:d}}}):ae.map(d=>{let ee=1,h={};try{h.member=JSON.parse(d[0])}catch (e6){h.member=d[0]}return r.withDist&&(h.dist=parseFloat(d[ee++])),r.withHash&&(h.hash=d[ee++].toString()),r.withCoord&&(h.coord={long:parseFloat(d[ee][0]),lat:parseFloat(d[ee][1])}),h});super([...i,..._optionalChain([r, 'optionalAccess', _26 => _26.withCoord])?["WITHCOORD"]:[],..._optionalChain([r, 'optionalAccess', _27 => _27.withDist])?["WITHDIST"]:[],..._optionalChain([r, 'optionalAccess', _28 => _28.withHash])?["WITHHASH"]:[]],{...a,deserialize:p})}};var K=class extends e{constructor([n,t,o,m,r,a],i){let p=["GEOSEARCHSTORE",n,t];(o.type==="FROMMEMBER"||o.type==="frommember")&&p.push(o.type,o.member),(o.type==="FROMLONLAT"||o.type==="fromlonlat")&&p.push(o.type,o.coordinate.lon,o.coordinate.lat),(m.type==="BYRADIUS"||m.type==="byradius")&&p.push(m.type,m.radius,m.radiusType),(m.type==="BYBOX"||m.type==="bybox")&&p.push(m.type,m.rect.width,m.rect.height,m.rectType),p.push(r),_optionalChain([a, 'optionalAccess', _29 => _29.count])&&p.push(a.count.limit,...a.count.any?["ANY"]:[]),super([...p,..._optionalChain([a, 'optionalAccess', _30 => _30.storeDist])?["STOREDIST"]:[]],i)}};var L=class extends e{constructor(n,t){super(["get",...n],t)}};var Z=class extends e{constructor(n,t){super(["getbit",...n],t)}};var N=class extends e{constructor(n,t){super(["getdel",...n],t)}};var G=class extends e{constructor(n,t){super(["getrange",...n],t)}};var B=class extends e{constructor(n,t){super(["getset",...n],t)}};var U=class extends e{constructor(n,t){super(["hdel",...n],t)}};var H=class extends e{constructor(n,t){super(["hexists",...n],t)}};var F=class extends e{constructor(n,t){super(["hget",...n],t)}};function le(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{!Number.isNaN(Number(o))&&!Number.isSafeInteger(o)?n[t]=o:n[t]=JSON.parse(o)}catch (e7){n[t]=o}}return n}var q=class extends e{constructor(n,t){super(["hgetall",...n],{deserialize:o=>le(o),...t})}};var $=class extends e{constructor(n,t){super(["hincrby",...n],t)}};var X=class extends e{constructor(n,t){super(["hincrbyfloat",...n],t)}};var j=class extends e{constructor([n],t){super(["hkeys",n],t)}};var Y=class extends e{constructor(n,t){super(["hlen",...n],t)}};function ge(s,n){if(n.length===0||n.every(o=>o===null))return null;let t={};for(let o=0;oge(t,m),...o})}};var V=class extends e{constructor([n,t],o){super(["hmset",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};function xe(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{n[t]=JSON.parse(o)}catch (e9){n[t]=o}}return n}var _=class extends e{constructor(n,t){let o=["hrandfield",n[0]];typeof n[1]=="number"&&o.push(n[1]),n[2]&&o.push("WITHVALUES"),super(o,{deserialize:n[2]?m=>xe(m):_optionalChain([t, 'optionalAccess', _31 => _31.deserialize]),...t})}};var Q=class extends e{constructor([n,t,o],m){let r=["hscan",n,t];_optionalChain([o, 'optionalAccess', _32 => _32.match])&&r.push("match",o.match),typeof _optionalChain([o, 'optionalAccess', _33 => _33.count])=="number"&&r.push("count",o.count),super(r,m)}};var nn=class extends e{constructor([n,t],o){super(["hset",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};var tn=class extends e{constructor(n,t){super(["hsetnx",...n],t)}};var en=class extends e{constructor(n,t){super(["hstrlen",...n],t)}};var on=class extends e{constructor(n,t){super(["hvals",...n],t)}};var sn=class extends e{constructor(n,t){super(["incr",...n],t)}};var mn=class extends e{constructor(n,t){super(["incrby",...n],t)}};var rn=class extends e{constructor(n,t){super(["incrbyfloat",...n],t)}};var an=class extends e{constructor(n,t){super(["JSON.ARRAPPEND",...n],t)}};var pn=class extends e{constructor(n,t){super(["JSON.ARRINDEX",...n],t)}};var dn=class extends e{constructor(n,t){super(["JSON.ARRINSERT",...n],t)}};var cn=class extends e{constructor(n,t){super(["JSON.ARRLEN",n[0],_nullishCoalesce(n[1], () => ("$"))],t)}};var un=class extends e{constructor(n,t){super(["JSON.ARRPOP",...n],t)}};var hn=class extends e{constructor(n,t){let o=_nullishCoalesce(n[1], () => ("$")),m=_nullishCoalesce(n[2], () => (0)),r=_nullishCoalesce(n[3], () => (0));super(["JSON.ARRTRIM",n[0],o,m,r],t)}};var Cn=class extends e{constructor(n,t){super(["JSON.CLEAR",...n],t)}};var ln=class extends e{constructor(n,t){super(["JSON.DEL",...n],t)}};var gn=class extends e{constructor(n,t){super(["JSON.FORGET",...n],t)}};var xn=class extends e{constructor(n,t){let o=["JSON.GET"];typeof n[1]=="string"?o.push(...n):(o.push(n[0]),n[1]&&(n[1].indent&&o.push("INDENT",n[1].indent),n[1].newline&&o.push("NEWLINE",n[1].newline),n[1].space&&o.push("SPACE",n[1].space)),o.push(...n.slice(2))),super(o,t)}};var fn=class extends e{constructor(n,t){super(["JSON.MGET",...n[0],n[1]],t)}};var yn=class extends e{constructor(n,t){super(["JSON.NUMINCRBY",...n],t)}};var bn=class extends e{constructor(n,t){super(["JSON.NUMMULTBY",...n],t)}};var On=class extends e{constructor(n,t){super(["JSON.OBJKEYS",...n],t)}};var Tn=class extends e{constructor(n,t){super(["JSON.OBJLEN",...n],t)}};var wn=class extends e{constructor(n,t){super(["JSON.RESP",...n],t)}};var Dn=class extends e{constructor(n,t){let o=["JSON.SET",n[0],n[1],n[2]];n[3]&&(n[3].nx?o.push("NX"):n[3].xx&&o.push("XX")),super(o,t)}};var kn=class extends e{constructor(n,t){super(["JSON.STRAPPEND",...n],t)}};var An=class extends e{constructor(n,t){super(["JSON.STRLEN",...n],t)}};var Sn=class extends e{constructor(n,t){super(["JSON.TOGGLE",...n],t)}};var Rn=class extends e{constructor(n,t){super(["JSON.TYPE",...n],t)}};var Mn=class extends e{constructor(n,t){super(["keys",...n],t)}};var vn=class extends e{constructor(n,t){super(["lindex",...n],t)}};var En=class extends e{constructor(n,t){super(["linsert",...n],t)}};var zn=class extends e{constructor(n,t){super(["llen",...n],t)}};var Jn=class extends e{constructor(n,t){super(["lmove",...n],t)}};var Pn=class extends e{constructor(n,t){super(["lpop",...n],t)}};var In=class extends e{constructor(n,t){let o=["lpos",n[0],n[1]];typeof _optionalChain([n, 'access', _34 => _34[2], 'optionalAccess', _35 => _35.rank])=="number"&&o.push("rank",n[2].rank),typeof _optionalChain([n, 'access', _36 => _36[2], 'optionalAccess', _37 => _37.count])=="number"&&o.push("count",n[2].count),typeof _optionalChain([n, 'access', _38 => _38[2], 'optionalAccess', _39 => _39.maxLen])=="number"&&o.push("maxLen",n[2].maxLen),super(o,t)}};var Kn=class extends e{constructor(n,t){super(["lpush",...n],t)}};var Ln=class extends e{constructor(n,t){super(["lpushx",...n],t)}};var Zn=class extends e{constructor(n,t){super(["lrange",...n],t)}};var Nn=class extends e{constructor(n,t){super(["lrem",...n],t)}};var Gn=class extends e{constructor(n,t){super(["lset",...n],t)}};var Bn=class extends e{constructor(n,t){super(["ltrim",...n],t)}};var Un=class extends e{constructor(n,t){let o=Array.isArray(n[0])?n[0]:n;super(["mget",...o],t)}};var Hn=class extends e{constructor([n],t){super(["mset",...Object.entries(n).flatMap(([o,m])=>[o,m])],t)}};var Fn=class extends e{constructor([n],t){super(["msetnx",...Object.entries(n).flatMap(o=>o)],t)}};var qn=class extends e{constructor(n,t){super(["persist",...n],t)}};var $n=class extends e{constructor(n,t){super(["pexpire",...n],t)}};var Xn=class extends e{constructor(n,t){super(["pexpireat",...n],t)}};var jn=class extends e{constructor(n,t){let o=["ping"];typeof n<"u"&&typeof n[0]<"u"&&o.push(n[0]),super(o,t)}};var Yn=class extends e{constructor(n,t){super(["psetex",...n],t)}};var Wn=class extends e{constructor(n,t){super(["pttl",...n],t)}};var Vn=class extends e{constructor(n,t){super(["publish",...n],t)}};var _n=class extends e{constructor(n){super(["randomkey"],n)}};var Qn=class extends e{constructor(n,t){super(["rename",...n],t)}};var nt=class extends e{constructor(n,t){super(["renamenx",...n],t)}};var tt=class extends e{constructor(n,t){super(["rpop",...n],t)}};var et=class extends e{constructor(n,t){super(["rpush",...n],t)}};var ot=class extends e{constructor(n,t){super(["rpushx",...n],t)}};var st=class extends e{constructor(n,t){super(["sadd",...n],t)}};var mt=class extends e{constructor([n,t],o){let m=["scan",n];_optionalChain([t, 'optionalAccess', _40 => _40.match])&&m.push("match",t.match),typeof _optionalChain([t, 'optionalAccess', _41 => _41.count])=="number"&&m.push("count",t.count),_optionalChain([t, 'optionalAccess', _42 => _42.type])&&t.type.length>0&&m.push("type",t.type),super(m,o)}};var rt=class extends e{constructor(n,t){super(["scard",...n],t)}};var at=class extends e{constructor(n,t){super(["script","exists",...n],{deserialize:o=>o,...t})}};var it=class extends e{constructor([n],t){let o=["script","flush"];_optionalChain([n, 'optionalAccess', _43 => _43.sync])?o.push("sync"):_optionalChain([n, 'optionalAccess', _44 => _44.async])&&o.push("async"),super(o,t)}};var pt=class extends e{constructor(n,t){super(["script","load",...n],t)}};var dt=class extends e{constructor(n,t){super(["sdiff",...n],t)}};var ct=class extends e{constructor(n,t){super(["sdiffstore",...n],t)}};var ut=class extends e{constructor([n,t,o],m){let r=["set",n,t];o&&("nx"in o&&o.nx?r.push("nx"):"xx"in o&&o.xx&&r.push("xx"),"get"in o&&o.get&&r.push("get"),"ex"in o&&typeof o.ex=="number"?r.push("ex",o.ex):"px"in o&&typeof o.px=="number"?r.push("px",o.px):"exat"in o&&typeof o.exat=="number"?r.push("exat",o.exat):"pxat"in o&&typeof o.pxat=="number"?r.push("pxat",o.pxat):"keepTtl"in o&&o.keepTtl&&r.push("keepTtl")),super(r,m)}};var ht=class extends e{constructor(n,t){super(["setbit",...n],t)}};var Ct=class extends e{constructor(n,t){super(["setex",...n],t)}};var lt=class extends e{constructor(n,t){super(["setnx",...n],t)}};var gt=class extends e{constructor(n,t){super(["setrange",...n],t)}};var xt=class extends e{constructor(n,t){super(["sinter",...n],t)}};var ft=class extends e{constructor(n,t){super(["sinterstore",...n],t)}};var yt=class extends e{constructor(n,t){super(["sismember",...n],t)}};var bt=class extends e{constructor(n,t){super(["smembers",...n],t)}};var Ot=class extends e{constructor(n,t){super(["smismember",n[0],...n[1]],t)}};var Tt=class extends e{constructor(n,t){super(["smove",...n],t)}};var wt=class extends e{constructor([n,t],o){let m=["spop",n];typeof t=="number"&&m.push(t),super(m,o)}};var Dt=class extends e{constructor([n,t],o){let m=["srandmember",n];typeof t=="number"&&m.push(t),super(m,o)}};var kt=class extends e{constructor(n,t){super(["srem",...n],t)}};var At=class extends e{constructor([n,t,o],m){let r=["sscan",n,t];_optionalChain([o, 'optionalAccess', _45 => _45.match])&&r.push("match",o.match),typeof _optionalChain([o, 'optionalAccess', _46 => _46.count])=="number"&&r.push("count",o.count),super(r,m)}};var St=class extends e{constructor(n,t){super(["strlen",...n],t)}};var Rt=class extends e{constructor(n,t){super(["sunion",...n],t)}};var Mt=class extends e{constructor(n,t){super(["sunionstore",...n],t)}};var vt=class extends e{constructor(n){super(["time"],n)}};var Et=class extends e{constructor(n,t){super(["touch",...n],t)}};var zt=class extends e{constructor(n,t){super(["ttl",...n],t)}};var Jt=class extends e{constructor(n,t){super(["type",...n],t)}};var Pt=class extends e{constructor(n,t){super(["unlink",...n],t)}};var oe=class extends e{constructor([n,t,o,m],r){let a=["XADD",n];m&&(m.nomkStream&&a.push("NOMKSTREAM"),m.trim&&(a.push(m.trim.type,m.trim.comparison,m.trim.threshold),typeof m.trim.limit<"u"&&a.push("LIMIT",m.trim.limit))),a.push(t);for(let[i,p]of Object.entries(o))a.push(i,p);super(a,r)}};function fe(s){let n={};for(let t of s)for(;t.length>=2;){let o=t.shift(),m=t.shift();for((o in n)||(n[o]={});m.length>=2;){let r=m.shift(),a=m.shift();try{n[o][r]=JSON.parse(a)}catch (e10){n[o][r]=a}}}return n}var se=class extends e{constructor([n,t,o,m],r){let a=["XRANGE",n,t,o];typeof m=="number"&&a.push("COUNT",m),super(a,{deserialize:i=>fe(i),...r})}};var u=class extends e{constructor([n,t,...o],m){let r=["zadd",n];"nx"in t&&t.nx?r.push("nx"):"xx"in t&&t.xx&&r.push("xx"),"ch"in t&&t.ch&&r.push("ch"),"incr"in t&&t.incr&&r.push("incr"),"score"in t&&"member"in t&&r.push(t.score,t.member),r.push(...o.flatMap(({score:a,member:i})=>[a,i])),super(r,m)}};var It=class extends e{constructor(n,t){super(["zcard",...n],t)}};var Kt=class extends e{constructor(n,t){super(["zcount",...n],t)}};var Lt=class extends e{constructor(n,t){super(["zincrby",...n],t)}};var Zt=class extends e{constructor([n,t,o,m],r){let a=["zinterstore",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&("weights"in m&&m.weights?a.push("weights",...m.weights):"weight"in m&&typeof m.weight=="number"&&a.push("weights",m.weight),"aggregate"in m&&a.push("aggregate",m.aggregate)),super(a,r)}};var Nt=class extends e{constructor(n,t){super(["zlexcount",...n],t)}};var Gt=class extends e{constructor([n,t],o){let m=["zpopmax",n];typeof t=="number"&&m.push(t),super(m,o)}};var Bt=class extends e{constructor([n,t],o){let m=["zpopmin",n];typeof t=="number"&&m.push(t),super(m,o)}};var Ut=class extends e{constructor([n,t,o,m],r){let a=["zrange",n,t,o];_optionalChain([m, 'optionalAccess', _47 => _47.byScore])&&a.push("byscore"),_optionalChain([m, 'optionalAccess', _48 => _48.byLex])&&a.push("bylex"),_optionalChain([m, 'optionalAccess', _49 => _49.rev])&&a.push("rev"),typeof _optionalChain([m, 'optionalAccess', _50 => _50.count])<"u"&&typeof _optionalChain([m, 'optionalAccess', _51 => _51.offset])<"u"&&a.push("limit",m.offset,m.count),_optionalChain([m, 'optionalAccess', _52 => _52.withScores])&&a.push("withscores"),super(a,r)}};var Ht=class extends e{constructor(n,t){super(["zrank",...n],t)}};var Ft=class extends e{constructor(n,t){super(["zrem",...n],t)}};var qt=class extends e{constructor(n,t){super(["zremrangebylex",...n],t)}};var $t=class extends e{constructor(n,t){super(["zremrangebyrank",...n],t)}};var Xt=class extends e{constructor(n,t){super(["zremrangebyscore",...n],t)}};var jt=class extends e{constructor(n,t){super(["zrevrank",...n],t)}};var Yt=class extends e{constructor([n,t,o],m){let r=["zscan",n,t];_optionalChain([o, 'optionalAccess', _53 => _53.match])&&r.push("match",o.match),typeof _optionalChain([o, 'optionalAccess', _54 => _54.count])=="number"&&r.push("count",o.count),super(r,m)}};var Wt=class extends e{constructor(n,t){super(["zscore",...n],t)}};var Vt=class extends e{constructor([n,t,o],m){let r=["zunion",n];Array.isArray(t)?r.push(...t):r.push(t),o&&("weights"in o&&o.weights?r.push("weights",...o.weights):"weight"in o&&typeof o.weight=="number"&&r.push("weights",o.weight),"aggregate"in o&&r.push("aggregate",o.aggregate),_optionalChain([o, 'optionalAccess', _55 => _55.withScores])&&r.push("withscores")),super(r,m)}};var _t=class extends e{constructor([n,t,o,m],r){let a=["zunionstore",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&("weights"in m&&m.weights?a.push("weights",...m.weights):"weight"in m&&typeof m.weight=="number"&&a.push("weights",m.weight),"aggregate"in m&&a.push("aggregate",m.aggregate)),super(a,r)}};var Qt=class extends e{constructor(n,t){super(["zdiffstore",...n],t)}};var ne=class extends e{constructor(n,t){let[o,m]=n;super(["zmscore",o,...m],t)}};var te= (_class =class{constructor(n){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);_class.prototype.__init11.call(this);_class.prototype.__init12.call(this);_class.prototype.__init13.call(this);_class.prototype.__init14.call(this);_class.prototype.__init15.call(this);_class.prototype.__init16.call(this);_class.prototype.__init17.call(this);_class.prototype.__init18.call(this);_class.prototype.__init19.call(this);_class.prototype.__init20.call(this);_class.prototype.__init21.call(this);_class.prototype.__init22.call(this);_class.prototype.__init23.call(this);_class.prototype.__init24.call(this);_class.prototype.__init25.call(this);_class.prototype.__init26.call(this);_class.prototype.__init27.call(this);_class.prototype.__init28.call(this);_class.prototype.__init29.call(this);_class.prototype.__init30.call(this);_class.prototype.__init31.call(this);_class.prototype.__init32.call(this);_class.prototype.__init33.call(this);_class.prototype.__init34.call(this);_class.prototype.__init35.call(this);_class.prototype.__init36.call(this);_class.prototype.__init37.call(this);_class.prototype.__init38.call(this);_class.prototype.__init39.call(this);_class.prototype.__init40.call(this);_class.prototype.__init41.call(this);_class.prototype.__init42.call(this);_class.prototype.__init43.call(this);_class.prototype.__init44.call(this);_class.prototype.__init45.call(this);_class.prototype.__init46.call(this);_class.prototype.__init47.call(this);_class.prototype.__init48.call(this);_class.prototype.__init49.call(this);_class.prototype.__init50.call(this);_class.prototype.__init51.call(this);_class.prototype.__init52.call(this);_class.prototype.__init53.call(this);_class.prototype.__init54.call(this);_class.prototype.__init55.call(this);_class.prototype.__init56.call(this);_class.prototype.__init57.call(this);_class.prototype.__init58.call(this);_class.prototype.__init59.call(this);_class.prototype.__init60.call(this);_class.prototype.__init61.call(this);_class.prototype.__init62.call(this);_class.prototype.__init63.call(this);_class.prototype.__init64.call(this);_class.prototype.__init65.call(this);_class.prototype.__init66.call(this);_class.prototype.__init67.call(this);_class.prototype.__init68.call(this);_class.prototype.__init69.call(this);_class.prototype.__init70.call(this);_class.prototype.__init71.call(this);_class.prototype.__init72.call(this);_class.prototype.__init73.call(this);_class.prototype.__init74.call(this);_class.prototype.__init75.call(this);_class.prototype.__init76.call(this);_class.prototype.__init77.call(this);_class.prototype.__init78.call(this);_class.prototype.__init79.call(this);_class.prototype.__init80.call(this);_class.prototype.__init81.call(this);_class.prototype.__init82.call(this);_class.prototype.__init83.call(this);_class.prototype.__init84.call(this);_class.prototype.__init85.call(this);_class.prototype.__init86.call(this);_class.prototype.__init87.call(this);_class.prototype.__init88.call(this);_class.prototype.__init89.call(this);_class.prototype.__init90.call(this);_class.prototype.__init91.call(this);_class.prototype.__init92.call(this);_class.prototype.__init93.call(this);_class.prototype.__init94.call(this);_class.prototype.__init95.call(this);_class.prototype.__init96.call(this);_class.prototype.__init97.call(this);_class.prototype.__init98.call(this);_class.prototype.__init99.call(this);_class.prototype.__init100.call(this);_class.prototype.__init101.call(this);_class.prototype.__init102.call(this);_class.prototype.__init103.call(this);_class.prototype.__init104.call(this);_class.prototype.__init105.call(this);_class.prototype.__init106.call(this);_class.prototype.__init107.call(this);_class.prototype.__init108.call(this);_class.prototype.__init109.call(this);_class.prototype.__init110.call(this);_class.prototype.__init111.call(this);_class.prototype.__init112.call(this);_class.prototype.__init113.call(this);_class.prototype.__init114.call(this);_class.prototype.__init115.call(this);_class.prototype.__init116.call(this);_class.prototype.__init117.call(this);_class.prototype.__init118.call(this);_class.prototype.__init119.call(this);_class.prototype.__init120.call(this);_class.prototype.__init121.call(this);_class.prototype.__init122.call(this);_class.prototype.__init123.call(this);this.client=n.client,this.commands=[],this.commandOptions=n.commandOptions,this.multiExec=_nullishCoalesce(n.multiExec, () => (!1))}__init() {this.exec=async()=>{if(this.commands.length===0)throw new Error("Pipeline is empty");let n=this.multiExec?["multi-exec"]:["pipeline"];return(await this.client.request({path:n,body:Object.values(this.commands).map(o=>o.command)})).map(({error:o,result:m},r)=>{if(o)throw new c(`Command ${r+1} [ ${this.commands[r].command[0]} ] failed: ${o}`);return this.commands[r].deserialize(m)})}}length(){return this.commands.length}chain(n){return this.commands.push(n),this}__init2() {this.append=(...n)=>this.chain(new C(n,this.commandOptions))}__init3() {this.bitcount=(...n)=>this.chain(new l(n,this.commandOptions))}__init4() {this.bitop=(n,t,o,...m)=>this.chain(new g([n,t,o,...m],this.commandOptions))}__init5() {this.bitpos=(...n)=>this.chain(new x(n,this.commandOptions))}__init6() {this.copy=(...n)=>this.chain(new f(n,this.commandOptions))}__init7() {this.zdiffstore=(...n)=>this.chain(new Qt(n,this.commandOptions))}__init8() {this.dbsize=()=>this.chain(new y(this.commandOptions))}__init9() {this.decr=(...n)=>this.chain(new b(n,this.commandOptions))}__init10() {this.decrby=(...n)=>this.chain(new O(n,this.commandOptions))}__init11() {this.del=(...n)=>this.chain(new T(n,this.commandOptions))}__init12() {this.echo=(...n)=>this.chain(new w(n,this.commandOptions))}__init13() {this.eval=(...n)=>this.chain(new D(n,this.commandOptions))}__init14() {this.evalsha=(...n)=>this.chain(new k(n,this.commandOptions))}__init15() {this.exists=(...n)=>this.chain(new A(n,this.commandOptions))}__init16() {this.expire=(...n)=>this.chain(new S(n,this.commandOptions))}__init17() {this.expireat=(...n)=>this.chain(new R(n,this.commandOptions))}__init18() {this.flushall=n=>this.chain(new M(n,this.commandOptions))}__init19() {this.flushdb=(...n)=>this.chain(new v(n,this.commandOptions))}__init20() {this.get=(...n)=>this.chain(new L(n,this.commandOptions))}__init21() {this.getbit=(...n)=>this.chain(new Z(n,this.commandOptions))}__init22() {this.getdel=(...n)=>this.chain(new N(n,this.commandOptions))}__init23() {this.getrange=(...n)=>this.chain(new G(n,this.commandOptions))}__init24() {this.getset=(n,t)=>this.chain(new B([n,t],this.commandOptions))}__init25() {this.hdel=(...n)=>this.chain(new U(n,this.commandOptions))}__init26() {this.hexists=(...n)=>this.chain(new H(n,this.commandOptions))}__init27() {this.hget=(...n)=>this.chain(new F(n,this.commandOptions))}__init28() {this.hgetall=(...n)=>this.chain(new q(n,this.commandOptions))}__init29() {this.hincrby=(...n)=>this.chain(new $(n,this.commandOptions))}__init30() {this.hincrbyfloat=(...n)=>this.chain(new X(n,this.commandOptions))}__init31() {this.hkeys=(...n)=>this.chain(new j(n,this.commandOptions))}__init32() {this.hlen=(...n)=>this.chain(new Y(n,this.commandOptions))}__init33() {this.hmget=(...n)=>this.chain(new W(n,this.commandOptions))}__init34() {this.hmset=(n,t)=>this.chain(new V([n,t],this.commandOptions))}__init35() {this.hrandfield=(n,t,o)=>this.chain(new _([n,t,o],this.commandOptions))}__init36() {this.hscan=(...n)=>this.chain(new Q(n,this.commandOptions))}__init37() {this.hset=(n,t)=>this.chain(new nn([n,t],this.commandOptions))}__init38() {this.hsetnx=(n,t,o)=>this.chain(new tn([n,t,o],this.commandOptions))}__init39() {this.hstrlen=(...n)=>this.chain(new en(n,this.commandOptions))}__init40() {this.hvals=(...n)=>this.chain(new on(n,this.commandOptions))}__init41() {this.incr=(...n)=>this.chain(new sn(n,this.commandOptions))}__init42() {this.incrby=(...n)=>this.chain(new mn(n,this.commandOptions))}__init43() {this.incrbyfloat=(...n)=>this.chain(new rn(n,this.commandOptions))}__init44() {this.keys=(...n)=>this.chain(new Mn(n,this.commandOptions))}__init45() {this.lindex=(...n)=>this.chain(new vn(n,this.commandOptions))}__init46() {this.linsert=(n,t,o,m)=>this.chain(new En([n,t,o,m],this.commandOptions))}__init47() {this.llen=(...n)=>this.chain(new zn(n,this.commandOptions))}__init48() {this.lmove=(...n)=>this.chain(new Jn(n,this.commandOptions))}__init49() {this.lpop=(...n)=>this.chain(new Pn(n,this.commandOptions))}__init50() {this.lpos=(...n)=>this.chain(new In(n,this.commandOptions))}__init51() {this.lpush=(n,...t)=>this.chain(new Kn([n,...t],this.commandOptions))}__init52() {this.lpushx=(n,...t)=>this.chain(new Ln([n,...t],this.commandOptions))}__init53() {this.lrange=(...n)=>this.chain(new Zn(n,this.commandOptions))}__init54() {this.lrem=(n,t,o)=>this.chain(new Nn([n,t,o],this.commandOptions))}__init55() {this.lset=(n,t,o)=>this.chain(new Gn([n,t,o],this.commandOptions))}__init56() {this.ltrim=(...n)=>this.chain(new Bn(n,this.commandOptions))}__init57() {this.mget=(...n)=>this.chain(new Un(n,this.commandOptions))}__init58() {this.mset=n=>this.chain(new Hn([n],this.commandOptions))}__init59() {this.msetnx=n=>this.chain(new Fn([n],this.commandOptions))}__init60() {this.persist=(...n)=>this.chain(new qn(n,this.commandOptions))}__init61() {this.pexpire=(...n)=>this.chain(new $n(n,this.commandOptions))}__init62() {this.pexpireat=(...n)=>this.chain(new Xn(n,this.commandOptions))}__init63() {this.ping=n=>this.chain(new jn(n,this.commandOptions))}__init64() {this.psetex=(n,t,o)=>this.chain(new Yn([n,t,o],this.commandOptions))}__init65() {this.pttl=(...n)=>this.chain(new Wn(n,this.commandOptions))}__init66() {this.publish=(...n)=>this.chain(new Vn(n,this.commandOptions))}__init67() {this.randomkey=()=>this.chain(new _n(this.commandOptions))}__init68() {this.rename=(...n)=>this.chain(new Qn(n,this.commandOptions))}__init69() {this.renamenx=(...n)=>this.chain(new nt(n,this.commandOptions))}__init70() {this.rpop=(...n)=>this.chain(new tt(n,this.commandOptions))}__init71() {this.rpush=(n,...t)=>this.chain(new et([n,...t],this.commandOptions))}__init72() {this.rpushx=(n,...t)=>this.chain(new ot([n,...t],this.commandOptions))}__init73() {this.sadd=(n,...t)=>this.chain(new st([n,...t],this.commandOptions))}__init74() {this.scan=(...n)=>this.chain(new mt(n,this.commandOptions))}__init75() {this.scard=(...n)=>this.chain(new rt(n,this.commandOptions))}__init76() {this.scriptExists=(...n)=>this.chain(new at(n,this.commandOptions))}__init77() {this.scriptFlush=(...n)=>this.chain(new it(n,this.commandOptions))}__init78() {this.scriptLoad=(...n)=>this.chain(new pt(n,this.commandOptions))}__init79() {this.sdiff=(...n)=>this.chain(new dt(n,this.commandOptions))}__init80() {this.sdiffstore=(...n)=>this.chain(new ct(n,this.commandOptions))}__init81() {this.set=(n,t,o)=>this.chain(new ut([n,t,o],this.commandOptions))}__init82() {this.setbit=(...n)=>this.chain(new ht(n,this.commandOptions))}__init83() {this.setex=(n,t,o)=>this.chain(new Ct([n,t,o],this.commandOptions))}__init84() {this.setnx=(n,t)=>this.chain(new lt([n,t],this.commandOptions))}__init85() {this.setrange=(...n)=>this.chain(new gt(n,this.commandOptions))}__init86() {this.sinter=(...n)=>this.chain(new xt(n,this.commandOptions))}__init87() {this.sinterstore=(...n)=>this.chain(new ft(n,this.commandOptions))}__init88() {this.sismember=(n,t)=>this.chain(new yt([n,t],this.commandOptions))}__init89() {this.smembers=(...n)=>this.chain(new bt(n,this.commandOptions))}__init90() {this.smismember=(n,t)=>this.chain(new Ot([n,t],this.commandOptions))}__init91() {this.smove=(n,t,o)=>this.chain(new Tt([n,t,o],this.commandOptions))}__init92() {this.spop=(...n)=>this.chain(new wt(n,this.commandOptions))}__init93() {this.srandmember=(...n)=>this.chain(new Dt(n,this.commandOptions))}__init94() {this.srem=(n,...t)=>this.chain(new kt([n,...t],this.commandOptions))}__init95() {this.sscan=(...n)=>this.chain(new At(n,this.commandOptions))}__init96() {this.strlen=(...n)=>this.chain(new St(n,this.commandOptions))}__init97() {this.sunion=(...n)=>this.chain(new Rt(n,this.commandOptions))}__init98() {this.sunionstore=(...n)=>this.chain(new Mt(n,this.commandOptions))}__init99() {this.time=()=>this.chain(new vt(this.commandOptions))}__init100() {this.touch=(...n)=>this.chain(new Et(n,this.commandOptions))}__init101() {this.ttl=(...n)=>this.chain(new zt(n,this.commandOptions))}__init102() {this.type=(...n)=>this.chain(new Jt(n,this.commandOptions))}__init103() {this.unlink=(...n)=>this.chain(new Pt(n,this.commandOptions))}__init104() {this.zadd=(...n)=>"score"in n[1]?this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions)):this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions))}__init105() {this.zcard=(...n)=>this.chain(new It(n,this.commandOptions))}__init106() {this.zcount=(...n)=>this.chain(new Kt(n,this.commandOptions))}__init107() {this.zincrby=(n,t,o)=>this.chain(new Lt([n,t,o],this.commandOptions))}__init108() {this.zinterstore=(...n)=>this.chain(new Zt(n,this.commandOptions))}__init109() {this.zlexcount=(...n)=>this.chain(new Nt(n,this.commandOptions))}__init110() {this.zmscore=(...n)=>this.chain(new ne(n,this.commandOptions))}__init111() {this.zpopmax=(...n)=>this.chain(new Gt(n,this.commandOptions))}__init112() {this.zpopmin=(...n)=>this.chain(new Bt(n,this.commandOptions))}__init113() {this.zrange=(...n)=>this.chain(new Ut(n,this.commandOptions))}__init114() {this.zrank=(n,t)=>this.chain(new Ht([n,t],this.commandOptions))}__init115() {this.zrem=(n,...t)=>this.chain(new Ft([n,...t],this.commandOptions))}__init116() {this.zremrangebylex=(...n)=>this.chain(new qt(n,this.commandOptions))}__init117() {this.zremrangebyrank=(...n)=>this.chain(new $t(n,this.commandOptions))}__init118() {this.zremrangebyscore=(...n)=>this.chain(new Xt(n,this.commandOptions))}__init119() {this.zrevrank=(n,t)=>this.chain(new jt([n,t],this.commandOptions))}__init120() {this.zscan=(...n)=>this.chain(new Yt(n,this.commandOptions))}__init121() {this.zscore=(n,t)=>this.chain(new Wt([n,t],this.commandOptions))}__init122() {this.zunionstore=(...n)=>this.chain(new _t(n,this.commandOptions))}__init123() {this.zunion=(...n)=>this.chain(new Vt(n,this.commandOptions))}get json(){return{arrappend:(...n)=>this.chain(new an(n,this.commandOptions)),arrindex:(...n)=>this.chain(new pn(n,this.commandOptions)),arrinsert:(...n)=>this.chain(new dn(n,this.commandOptions)),arrlen:(...n)=>this.chain(new cn(n,this.commandOptions)),arrpop:(...n)=>this.chain(new un(n,this.commandOptions)),arrtrim:(...n)=>this.chain(new hn(n,this.commandOptions)),clear:(...n)=>this.chain(new Cn(n,this.commandOptions)),del:(...n)=>this.chain(new ln(n,this.commandOptions)),forget:(...n)=>this.chain(new gn(n,this.commandOptions)),geoadd:(...n)=>this.chain(new E(n,this.commandOptions)),geodist:(...n)=>this.chain(new z(n,this.commandOptions)),geopos:(...n)=>this.chain(new J(n,this.commandOptions)),geohash:(...n)=>this.chain(new P(n,this.commandOptions)),geosearch:(...n)=>this.chain(new I(n,this.commandOptions)),geosearchstore:(...n)=>this.chain(new K(n,this.commandOptions)),get:(...n)=>this.chain(new xn(n,this.commandOptions)),mget:(...n)=>this.chain(new fn(n,this.commandOptions)),numincrby:(...n)=>this.chain(new yn(n,this.commandOptions)),nummultby:(...n)=>this.chain(new bn(n,this.commandOptions)),objkeys:(...n)=>this.chain(new On(n,this.commandOptions)),objlen:(...n)=>this.chain(new Tn(n,this.commandOptions)),resp:(...n)=>this.chain(new wn(n,this.commandOptions)),set:(...n)=>this.chain(new Dn(n,this.commandOptions)),strappend:(...n)=>this.chain(new kn(n,this.commandOptions)),strlen:(...n)=>this.chain(new An(n,this.commandOptions)),toggle:(...n)=>this.chain(new Sn(n,this.commandOptions)),type:(...n)=>this.chain(new Rn(n,this.commandOptions))}}}, _class);var _enchex = __nccwpck_require__(934); var _enchex2 = _interopRequireDefault(_enchex);var _sha1 = __nccwpck_require__(156); var _sha12 = _interopRequireDefault(_sha1);var me=class{constructor(n,t){this.redis=n,this.sha1=this.digest(t),this.script=t}async eval(n,t){return await this.redis.eval(this.script,n,t)}async evalsha(n,t){return await this.redis.evalsha(this.sha1,n,t)}async exec(n,t){return await this.redis.evalsha(this.sha1,n,t).catch(async m=>{if(m instanceof Error&&m.message.toLowerCase().includes("noscript"))return await this.redis.eval(this.script,n,t);throw m})}digest(n){return _enchex2.default.stringify(_sha12.default.call(void 0, n))}};var ue= (_class2 =class{constructor(n,t){;_class2.prototype.__init124.call(this);_class2.prototype.__init125.call(this);_class2.prototype.__init126.call(this);_class2.prototype.__init127.call(this);_class2.prototype.__init128.call(this);_class2.prototype.__init129.call(this);_class2.prototype.__init130.call(this);_class2.prototype.__init131.call(this);_class2.prototype.__init132.call(this);_class2.prototype.__init133.call(this);_class2.prototype.__init134.call(this);_class2.prototype.__init135.call(this);_class2.prototype.__init136.call(this);_class2.prototype.__init137.call(this);_class2.prototype.__init138.call(this);_class2.prototype.__init139.call(this);_class2.prototype.__init140.call(this);_class2.prototype.__init141.call(this);_class2.prototype.__init142.call(this);_class2.prototype.__init143.call(this);_class2.prototype.__init144.call(this);_class2.prototype.__init145.call(this);_class2.prototype.__init146.call(this);_class2.prototype.__init147.call(this);_class2.prototype.__init148.call(this);_class2.prototype.__init149.call(this);_class2.prototype.__init150.call(this);_class2.prototype.__init151.call(this);_class2.prototype.__init152.call(this);_class2.prototype.__init153.call(this);_class2.prototype.__init154.call(this);_class2.prototype.__init155.call(this);_class2.prototype.__init156.call(this);_class2.prototype.__init157.call(this);_class2.prototype.__init158.call(this);_class2.prototype.__init159.call(this);_class2.prototype.__init160.call(this);_class2.prototype.__init161.call(this);_class2.prototype.__init162.call(this);_class2.prototype.__init163.call(this);_class2.prototype.__init164.call(this);_class2.prototype.__init165.call(this);_class2.prototype.__init166.call(this);_class2.prototype.__init167.call(this);_class2.prototype.__init168.call(this);_class2.prototype.__init169.call(this);_class2.prototype.__init170.call(this);_class2.prototype.__init171.call(this);_class2.prototype.__init172.call(this);_class2.prototype.__init173.call(this);_class2.prototype.__init174.call(this);_class2.prototype.__init175.call(this);_class2.prototype.__init176.call(this);_class2.prototype.__init177.call(this);_class2.prototype.__init178.call(this);_class2.prototype.__init179.call(this);_class2.prototype.__init180.call(this);_class2.prototype.__init181.call(this);_class2.prototype.__init182.call(this);_class2.prototype.__init183.call(this);_class2.prototype.__init184.call(this);_class2.prototype.__init185.call(this);_class2.prototype.__init186.call(this);_class2.prototype.__init187.call(this);_class2.prototype.__init188.call(this);_class2.prototype.__init189.call(this);_class2.prototype.__init190.call(this);_class2.prototype.__init191.call(this);_class2.prototype.__init192.call(this);_class2.prototype.__init193.call(this);_class2.prototype.__init194.call(this);_class2.prototype.__init195.call(this);_class2.prototype.__init196.call(this);_class2.prototype.__init197.call(this);_class2.prototype.__init198.call(this);_class2.prototype.__init199.call(this);_class2.prototype.__init200.call(this);_class2.prototype.__init201.call(this);_class2.prototype.__init202.call(this);_class2.prototype.__init203.call(this);_class2.prototype.__init204.call(this);_class2.prototype.__init205.call(this);_class2.prototype.__init206.call(this);_class2.prototype.__init207.call(this);_class2.prototype.__init208.call(this);_class2.prototype.__init209.call(this);_class2.prototype.__init210.call(this);_class2.prototype.__init211.call(this);_class2.prototype.__init212.call(this);_class2.prototype.__init213.call(this);_class2.prototype.__init214.call(this);_class2.prototype.__init215.call(this);_class2.prototype.__init216.call(this);_class2.prototype.__init217.call(this);_class2.prototype.__init218.call(this);_class2.prototype.__init219.call(this);_class2.prototype.__init220.call(this);_class2.prototype.__init221.call(this);_class2.prototype.__init222.call(this);_class2.prototype.__init223.call(this);_class2.prototype.__init224.call(this);_class2.prototype.__init225.call(this);_class2.prototype.__init226.call(this);_class2.prototype.__init227.call(this);_class2.prototype.__init228.call(this);_class2.prototype.__init229.call(this);_class2.prototype.__init230.call(this);_class2.prototype.__init231.call(this);_class2.prototype.__init232.call(this);_class2.prototype.__init233.call(this);_class2.prototype.__init234.call(this);_class2.prototype.__init235.call(this);_class2.prototype.__init236.call(this);_class2.prototype.__init237.call(this);_class2.prototype.__init238.call(this);_class2.prototype.__init239.call(this);_class2.prototype.__init240.call(this);_class2.prototype.__init241.call(this);_class2.prototype.__init242.call(this);_class2.prototype.__init243.call(this);_class2.prototype.__init244.call(this);_class2.prototype.__init245.call(this);_class2.prototype.__init246.call(this);_class2.prototype.__init247.call(this);_class2.prototype.__init248.call(this);_class2.prototype.__init249.call(this);_class2.prototype.__init250.call(this);_class2.prototype.__init251.call(this);this.client=n,this.opts=t,this.enableTelemetry=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _56 => _56.enableTelemetry]), () => (!0))}get json(){return{arrappend:(...n)=>new an(n,this.opts).exec(this.client),arrindex:(...n)=>new pn(n,this.opts).exec(this.client),arrinsert:(...n)=>new dn(n,this.opts).exec(this.client),arrlen:(...n)=>new cn(n,this.opts).exec(this.client),arrpop:(...n)=>new un(n,this.opts).exec(this.client),arrtrim:(...n)=>new hn(n,this.opts).exec(this.client),clear:(...n)=>new Cn(n,this.opts).exec(this.client),del:(...n)=>new ln(n,this.opts).exec(this.client),forget:(...n)=>new gn(n,this.opts).exec(this.client),geoadd:(...n)=>new E(n,this.opts).exec(this.client),geopos:(...n)=>new J(n,this.opts).exec(this.client),geodist:(...n)=>new z(n,this.opts).exec(this.client),geohash:(...n)=>new P(n,this.opts).exec(this.client),geosearch:(...n)=>new I(n,this.opts).exec(this.client),geosearchstore:(...n)=>new K(n,this.opts).exec(this.client),get:(...n)=>new xn(n,this.opts).exec(this.client),mget:(...n)=>new fn(n,this.opts).exec(this.client),numincrby:(...n)=>new yn(n,this.opts).exec(this.client),nummultby:(...n)=>new bn(n,this.opts).exec(this.client),objkeys:(...n)=>new On(n,this.opts).exec(this.client),objlen:(...n)=>new Tn(n,this.opts).exec(this.client),resp:(...n)=>new wn(n,this.opts).exec(this.client),set:(...n)=>new Dn(n,this.opts).exec(this.client),strappend:(...n)=>new kn(n,this.opts).exec(this.client),strlen:(...n)=>new An(n,this.opts).exec(this.client),toggle:(...n)=>new Sn(n,this.opts).exec(this.client),type:(...n)=>new Rn(n,this.opts).exec(this.client)}}__init124() {this.use=n=>{let t=this.client.request.bind(this.client);this.client.request=o=>n(o,t)}}__init125() {this.addTelemetry=n=>{if(this.enableTelemetry)try{this.client.mergeTelemetry(n)}catch (e12){}}}createScript(n){return new me(this,n)}__init126() {this.pipeline=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!1})}__init127() {this.multi=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!0})}__init128() {this.append=(...n)=>new C(n,this.opts).exec(this.client)}__init129() {this.bitcount=(...n)=>new l(n,this.opts).exec(this.client)}__init130() {this.bitop=(n,t,o,...m)=>new g([n,t,o,...m],this.opts).exec(this.client)}__init131() {this.bitpos=(...n)=>new x(n,this.opts).exec(this.client)}__init132() {this.copy=(...n)=>new f(n,this.opts).exec(this.client)}__init133() {this.dbsize=()=>new y(this.opts).exec(this.client)}__init134() {this.decr=(...n)=>new b(n,this.opts).exec(this.client)}__init135() {this.decrby=(...n)=>new O(n,this.opts).exec(this.client)}__init136() {this.del=(...n)=>new T(n,this.opts).exec(this.client)}__init137() {this.echo=(...n)=>new w(n,this.opts).exec(this.client)}__init138() {this.eval=(...n)=>new D(n,this.opts).exec(this.client)}__init139() {this.evalsha=(...n)=>new k(n,this.opts).exec(this.client)}__init140() {this.exists=(...n)=>new A(n,this.opts).exec(this.client)}__init141() {this.expire=(...n)=>new S(n,this.opts).exec(this.client)}__init142() {this.expireat=(...n)=>new R(n,this.opts).exec(this.client)}__init143() {this.flushall=n=>new M(n,this.opts).exec(this.client)}__init144() {this.flushdb=(...n)=>new v(n,this.opts).exec(this.client)}__init145() {this.get=(...n)=>new L(n,this.opts).exec(this.client)}__init146() {this.getbit=(...n)=>new Z(n,this.opts).exec(this.client)}__init147() {this.getdel=(...n)=>new N(n,this.opts).exec(this.client)}__init148() {this.getrange=(...n)=>new G(n,this.opts).exec(this.client)}__init149() {this.getset=(n,t)=>new B([n,t],this.opts).exec(this.client)}__init150() {this.hdel=(...n)=>new U(n,this.opts).exec(this.client)}__init151() {this.hexists=(...n)=>new H(n,this.opts).exec(this.client)}__init152() {this.hget=(...n)=>new F(n,this.opts).exec(this.client)}__init153() {this.hgetall=(...n)=>new q(n,this.opts).exec(this.client)}__init154() {this.hincrby=(...n)=>new $(n,this.opts).exec(this.client)}__init155() {this.hincrbyfloat=(...n)=>new X(n,this.opts).exec(this.client)}__init156() {this.hkeys=(...n)=>new j(n,this.opts).exec(this.client)}__init157() {this.hlen=(...n)=>new Y(n,this.opts).exec(this.client)}__init158() {this.hmget=(...n)=>new W(n,this.opts).exec(this.client)}__init159() {this.hmset=(n,t)=>new V([n,t],this.opts).exec(this.client)}__init160() {this.hrandfield=(n,t,o)=>new _([n,t,o],this.opts).exec(this.client)}__init161() {this.hscan=(...n)=>new Q(n,this.opts).exec(this.client)}__init162() {this.hset=(n,t)=>new nn([n,t],this.opts).exec(this.client)}__init163() {this.hsetnx=(n,t,o)=>new tn([n,t,o],this.opts).exec(this.client)}__init164() {this.hstrlen=(...n)=>new en(n,this.opts).exec(this.client)}__init165() {this.hvals=(...n)=>new on(n,this.opts).exec(this.client)}__init166() {this.incr=(...n)=>new sn(n,this.opts).exec(this.client)}__init167() {this.incrby=(...n)=>new mn(n,this.opts).exec(this.client)}__init168() {this.incrbyfloat=(...n)=>new rn(n,this.opts).exec(this.client)}__init169() {this.keys=(...n)=>new Mn(n,this.opts).exec(this.client)}__init170() {this.lindex=(...n)=>new vn(n,this.opts).exec(this.client)}__init171() {this.linsert=(n,t,o,m)=>new En([n,t,o,m],this.opts).exec(this.client)}__init172() {this.llen=(...n)=>new zn(n,this.opts).exec(this.client)}__init173() {this.lmove=(...n)=>new Jn(n,this.opts).exec(this.client)}__init174() {this.lpop=(...n)=>new Pn(n,this.opts).exec(this.client)}__init175() {this.lpos=(...n)=>new In(n,this.opts).exec(this.client)}__init176() {this.lpush=(n,...t)=>new Kn([n,...t],this.opts).exec(this.client)}__init177() {this.lpushx=(n,...t)=>new Ln([n,...t],this.opts).exec(this.client)}__init178() {this.lrange=(...n)=>new Zn(n,this.opts).exec(this.client)}__init179() {this.lrem=(n,t,o)=>new Nn([n,t,o],this.opts).exec(this.client)}__init180() {this.lset=(n,t,o)=>new Gn([n,t,o],this.opts).exec(this.client)}__init181() {this.ltrim=(...n)=>new Bn(n,this.opts).exec(this.client)}__init182() {this.mget=(...n)=>new Un(n,this.opts).exec(this.client)}__init183() {this.mset=n=>new Hn([n],this.opts).exec(this.client)}__init184() {this.msetnx=n=>new Fn([n],this.opts).exec(this.client)}__init185() {this.persist=(...n)=>new qn(n,this.opts).exec(this.client)}__init186() {this.pexpire=(...n)=>new $n(n,this.opts).exec(this.client)}__init187() {this.pexpireat=(...n)=>new Xn(n,this.opts).exec(this.client)}__init188() {this.ping=n=>new jn(n,this.opts).exec(this.client)}__init189() {this.psetex=(n,t,o)=>new Yn([n,t,o],this.opts).exec(this.client)}__init190() {this.pttl=(...n)=>new Wn(n,this.opts).exec(this.client)}__init191() {this.publish=(...n)=>new Vn(n,this.opts).exec(this.client)}__init192() {this.randomkey=()=>new _n().exec(this.client)}__init193() {this.rename=(...n)=>new Qn(n,this.opts).exec(this.client)}__init194() {this.renamenx=(...n)=>new nt(n,this.opts).exec(this.client)}__init195() {this.rpop=(...n)=>new tt(n,this.opts).exec(this.client)}__init196() {this.rpush=(n,...t)=>new et([n,...t],this.opts).exec(this.client)}__init197() {this.rpushx=(n,...t)=>new ot([n,...t],this.opts).exec(this.client)}__init198() {this.sadd=(n,...t)=>new st([n,...t],this.opts).exec(this.client)}__init199() {this.scan=(...n)=>new mt(n,this.opts).exec(this.client)}__init200() {this.scard=(...n)=>new rt(n,this.opts).exec(this.client)}__init201() {this.scriptExists=(...n)=>new at(n,this.opts).exec(this.client)}__init202() {this.scriptFlush=(...n)=>new it(n,this.opts).exec(this.client)}__init203() {this.scriptLoad=(...n)=>new pt(n,this.opts).exec(this.client)}__init204() {this.sdiff=(...n)=>new dt(n,this.opts).exec(this.client)}__init205() {this.sdiffstore=(...n)=>new ct(n,this.opts).exec(this.client)}__init206() {this.set=(n,t,o)=>new ut([n,t,o],this.opts).exec(this.client)}__init207() {this.setbit=(...n)=>new ht(n,this.opts).exec(this.client)}__init208() {this.setex=(n,t,o)=>new Ct([n,t,o],this.opts).exec(this.client)}__init209() {this.setnx=(n,t)=>new lt([n,t],this.opts).exec(this.client)}__init210() {this.setrange=(...n)=>new gt(n,this.opts).exec(this.client)}__init211() {this.sinter=(...n)=>new xt(n,this.opts).exec(this.client)}__init212() {this.sinterstore=(...n)=>new ft(n,this.opts).exec(this.client)}__init213() {this.sismember=(n,t)=>new yt([n,t],this.opts).exec(this.client)}__init214() {this.smismember=(n,t)=>new Ot([n,t],this.opts).exec(this.client)}__init215() {this.smembers=(...n)=>new bt(n,this.opts).exec(this.client)}__init216() {this.smove=(n,t,o)=>new Tt([n,t,o],this.opts).exec(this.client)}__init217() {this.spop=(...n)=>new wt(n,this.opts).exec(this.client)}__init218() {this.srandmember=(...n)=>new Dt(n,this.opts).exec(this.client)}__init219() {this.srem=(n,...t)=>new kt([n,...t],this.opts).exec(this.client)}__init220() {this.sscan=(...n)=>new At(n,this.opts).exec(this.client)}__init221() {this.strlen=(...n)=>new St(n,this.opts).exec(this.client)}__init222() {this.sunion=(...n)=>new Rt(n,this.opts).exec(this.client)}__init223() {this.sunionstore=(...n)=>new Mt(n,this.opts).exec(this.client)}__init224() {this.time=()=>new vt().exec(this.client)}__init225() {this.touch=(...n)=>new Et(n,this.opts).exec(this.client)}__init226() {this.ttl=(...n)=>new zt(n,this.opts).exec(this.client)}__init227() {this.type=(...n)=>new Jt(n,this.opts).exec(this.client)}__init228() {this.unlink=(...n)=>new Pt(n,this.opts).exec(this.client)}__init229() {this.xadd=(...n)=>new oe(n,this.opts).exec(this.client)}__init230() {this.xrange=(...n)=>new se(n,this.opts).exec(this.client)}__init231() {this.zadd=(...n)=>"score"in n[1]?new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client):new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client)}__init232() {this.zcard=(...n)=>new It(n,this.opts).exec(this.client)}__init233() {this.zcount=(...n)=>new Kt(n,this.opts).exec(this.client)}__init234() {this.zdiffstore=(...n)=>new Qt(n,this.opts).exec(this.client)}__init235() {this.zincrby=(n,t,o)=>new Lt([n,t,o],this.opts).exec(this.client)}__init236() {this.zinterstore=(...n)=>new Zt(n,this.opts).exec(this.client)}__init237() {this.zlexcount=(...n)=>new Nt(n,this.opts).exec(this.client)}__init238() {this.zmscore=(...n)=>new ne(n,this.opts).exec(this.client)}__init239() {this.zpopmax=(...n)=>new Gt(n,this.opts).exec(this.client)}__init240() {this.zpopmin=(...n)=>new Bt(n,this.opts).exec(this.client)}__init241() {this.zrange=(...n)=>new Ut(n,this.opts).exec(this.client)}__init242() {this.zrank=(n,t)=>new Ht([n,t],this.opts).exec(this.client)}__init243() {this.zrem=(n,...t)=>new Ft([n,...t],this.opts).exec(this.client)}__init244() {this.zremrangebylex=(...n)=>new qt(n,this.opts).exec(this.client)}__init245() {this.zremrangebyrank=(...n)=>new $t(n,this.opts).exec(this.client)}__init246() {this.zremrangebyscore=(...n)=>new Xt(n,this.opts).exec(this.client)}__init247() {this.zrevrank=(n,t)=>new jt([n,t],this.opts).exec(this.client)}__init248() {this.zscan=(...n)=>new Yt(n,this.opts).exec(this.client)}__init249() {this.zscore=(n,t)=>new Wt([n,t],this.opts).exec(this.client)}__init250() {this.zunion=(...n)=>new Vt(n,this.opts).exec(this.client)}__init251() {this.zunionstore=(...n)=>new _t(n,this.opts).exec(this.client)}}, _class2);var cC="v1.24.3";exports.a = ie; exports.b = ue; exports.c = cC; +Object.defineProperty(exports, "__esModule", ({value: true})); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2;var c=class extends Error{constructor(n){super(n),this.name="UpstashError"}};var ie=class{constructor(n){this.options={backend:_optionalChain([n, 'access', _2 => _2.options, 'optionalAccess', _3 => _3.backend]),agent:n.agent,responseEncoding:_nullishCoalesce(n.responseEncoding, () => ("base64")),cache:n.cache},this.baseUrl=n.baseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...n.headers},this.options.responseEncoding==="base64"&&(this.headers["Upstash-Encoding"]="base64"),typeof _optionalChain([n, 'optionalAccess', _4 => _4.retry])=="boolean"&&_optionalChain([n, 'optionalAccess', _5 => _5.retry])===!1?this.retry={attempts:1,backoff:()=>0}:this.retry={attempts:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _6 => _6.retry, 'optionalAccess', _7 => _7.retries]), () => (5)),backoff:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _8 => _8.retry, 'optionalAccess', _9 => _9.backoff]), () => ((t=>Math.exp(t)*50)))}}mergeTelemetry(n){function t(o,m,r){return r&&(o[m]?o[m]=[o[m],r].join(","):o[m]=r),o}this.headers=t(this.headers,"Upstash-Telemetry-Runtime",n.runtime),this.headers=t(this.headers,"Upstash-Telemetry-Platform",n.platform),this.headers=t(this.headers,"Upstash-Telemetry-Sdk",n.sdk)}async request(n){let t={cache:this.options.cache,method:"POST",headers:this.headers,body:JSON.stringify(n.body),keepalive:!0,agent:_optionalChain([this, 'access', _10 => _10.options, 'optionalAccess', _11 => _11.agent]),backend:_optionalChain([this, 'access', _12 => _12.options, 'optionalAccess', _13 => _13.backend])},o=null,m=null;for(let a=0;a<=this.retry.attempts;a++)try{o=await fetch([this.baseUrl,..._nullishCoalesce(n.path, () => ([]))].join("/"),t);break}catch(i){m=i,await new Promise(p=>setTimeout(p,this.retry.backoff(a)))}if(!o)throw _nullishCoalesce(m, () => (new Error("Exhausted all retries")));let r=await o.json();if(!o.ok)throw new c(`${r.error}, command was: ${JSON.stringify(n.body)}`);return _optionalChain([this, 'access', _14 => _14.options, 'optionalAccess', _15 => _15.responseEncoding])==="base64"?Array.isArray(r)?r.map(({result:i,error:p})=>({result:re(i),error:p})):{result:re(r.result),error:r.error}:r}};function pe(s){let n="";try{let t=atob(s),o=t.length,m=new Uint8Array(o);for(let r=0;rtypeof t=="string"?pe(t):Array.isArray(t)?t.map(re):t):n=null;break}case"string":{n=s==="OK"?"OK":pe(s);break}default:break}return n}function de(s){let n=Array.isArray(s)?s.map(t=>{try{return de(t)}catch (e3){return t}}):JSON.parse(s);return typeof n=="number"&&n.toString()!==s?s:n}function ce(s){try{return de(s)}catch (e4){return s}}var he=s=>{switch(typeof s){case"string":case"number":case"boolean":return s;default:return JSON.stringify(s)}},e=class{constructor(n,t){this.serialize=he,this.deserialize=typeof _optionalChain([t, 'optionalAccess', _16 => _16.automaticDeserialization])>"u"||t.automaticDeserialization?_nullishCoalesce(_optionalChain([t, 'optionalAccess', _17 => _17.deserialize]), () => (ce)):o=>o,this.command=n.map(o=>this.serialize(o))}async exec(n){let{result:t,error:o}=await n.request({body:this.command});if(o)throw new c(o);if(typeof t>"u")throw new Error("Request did not return a result");return this.deserialize(t)}};var C=class extends e{constructor(n,t){super(["append",...n],t)}};var l=class extends e{constructor([n,t,o],m){let r=["bitcount",n];typeof t=="number"&&r.push(t),typeof o=="number"&&r.push(o),super(r,m)}};var g=class extends e{constructor(n,t){super(["bitop",...n],t)}};var x=class extends e{constructor(n,t){super(["bitpos",...n],t)}};var f=class extends e{constructor([n,t,o],m){super(["COPY",n,t,..._optionalChain([o, 'optionalAccess', _18 => _18.replace])?["REPLACE"]:[]],{...m,deserialize(r){return r>0?"COPIED":"NOT_COPIED"}})}};var y=class extends e{constructor(n){super(["dbsize"],n)}};var b=class extends e{constructor(n,t){super(["decr",...n],t)}};var O=class extends e{constructor(n,t){super(["decrby",...n],t)}};var T=class extends e{constructor(n,t){super(["del",...n],t)}};var w=class extends e{constructor(n,t){super(["echo",...n],t)}};var D=class extends e{constructor([n,t,o],m){super(["eval",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var k=class extends e{constructor([n,t,o],m){super(["evalsha",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var A=class extends e{constructor(n,t){super(["exists",...n],t)}};var S=class extends e{constructor(n,t){super(["expire",...n],t)}};var R=class extends e{constructor(n,t){super(["expireat",...n],t)}};var M=class extends e{constructor(n,t){let o=["flushall"];n&&n.length>0&&n[0].async&&o.push("async"),super(o,t)}};var v=class extends e{constructor([n],t){let o=["flushdb"];_optionalChain([n, 'optionalAccess', _19 => _19.async])&&o.push("async"),super(o,t)}};var E=class extends e{constructor([n,t,...o],m){let r=["geoadd",n];"nx"in t&&t.nx?r.push("nx"):"xx"in t&&t.xx&&r.push("xx"),"ch"in t&&t.ch&&r.push("ch"),"latitude"in t&&t.latitude&&r.push(t.longitude,t.latitude,t.member),r.push(...o.flatMap(({latitude:a,longitude:i,member:p})=>[i,a,p])),super(r,m)}};var z=class extends e{constructor([n,t,o,m="M"],r){super(["GEODIST",n,t,o,m],r)}};var J=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super(["GEOPOS",o,...m],{deserialize:r=>Ce(r),...t})}};function Ce(s){let n=[];for(let t of s)!_optionalChain([t, 'optionalAccess', _20 => _20[0]])||!_optionalChain([t, 'optionalAccess', _21 => _21[1]])||n.push({lng:parseFloat(t[0]),lat:parseFloat(t[1])});return n}var P=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super(["GEOHASH",o,...m],t)}};var I=class extends e{constructor([n,t,o,m,r],a){let i=["GEOSEARCH",n];(t.type==="FROMMEMBER"||t.type==="frommember")&&i.push(t.type,t.member),(t.type==="FROMLONLAT"||t.type==="fromlonlat")&&i.push(t.type,t.coordinate.lon,t.coordinate.lat),(o.type==="BYRADIUS"||o.type==="byradius")&&i.push(o.type,o.radius,o.radiusType),(o.type==="BYBOX"||o.type==="bybox")&&i.push(o.type,o.rect.width,o.rect.height,o.rectType),i.push(m),_optionalChain([r, 'optionalAccess', _22 => _22.count])&&i.push(r.count.limit,...r.count.any?["ANY"]:[]);let p=ae=>!_optionalChain([r, 'optionalAccess', _23 => _23.withCoord])&&!_optionalChain([r, 'optionalAccess', _24 => _24.withDist])&&!_optionalChain([r, 'optionalAccess', _25 => _25.withHash])?ae.map(d=>{try{return{member:JSON.parse(d)}}catch (e5){return{member:d}}}):ae.map(d=>{let ee=1,h={};try{h.member=JSON.parse(d[0])}catch (e6){h.member=d[0]}return r.withDist&&(h.dist=parseFloat(d[ee++])),r.withHash&&(h.hash=d[ee++].toString()),r.withCoord&&(h.coord={long:parseFloat(d[ee][0]),lat:parseFloat(d[ee][1])}),h});super([...i,..._optionalChain([r, 'optionalAccess', _26 => _26.withCoord])?["WITHCOORD"]:[],..._optionalChain([r, 'optionalAccess', _27 => _27.withDist])?["WITHDIST"]:[],..._optionalChain([r, 'optionalAccess', _28 => _28.withHash])?["WITHHASH"]:[]],{...a,deserialize:p})}};var K=class extends e{constructor([n,t,o,m,r,a],i){let p=["GEOSEARCHSTORE",n,t];(o.type==="FROMMEMBER"||o.type==="frommember")&&p.push(o.type,o.member),(o.type==="FROMLONLAT"||o.type==="fromlonlat")&&p.push(o.type,o.coordinate.lon,o.coordinate.lat),(m.type==="BYRADIUS"||m.type==="byradius")&&p.push(m.type,m.radius,m.radiusType),(m.type==="BYBOX"||m.type==="bybox")&&p.push(m.type,m.rect.width,m.rect.height,m.rectType),p.push(r),_optionalChain([a, 'optionalAccess', _29 => _29.count])&&p.push(a.count.limit,...a.count.any?["ANY"]:[]),super([...p,..._optionalChain([a, 'optionalAccess', _30 => _30.storeDist])?["STOREDIST"]:[]],i)}};var L=class extends e{constructor(n,t){super(["get",...n],t)}};var Z=class extends e{constructor(n,t){super(["getbit",...n],t)}};var N=class extends e{constructor(n,t){super(["getdel",...n],t)}};var G=class extends e{constructor(n,t){super(["getrange",...n],t)}};var B=class extends e{constructor(n,t){super(["getset",...n],t)}};var U=class extends e{constructor(n,t){super(["hdel",...n],t)}};var H=class extends e{constructor(n,t){super(["hexists",...n],t)}};var F=class extends e{constructor(n,t){super(["hget",...n],t)}};function le(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{!Number.isNaN(Number(o))&&!Number.isSafeInteger(o)?n[t]=o:n[t]=JSON.parse(o)}catch (e7){n[t]=o}}return n}var q=class extends e{constructor(n,t){super(["hgetall",...n],{deserialize:o=>le(o),...t})}};var $=class extends e{constructor(n,t){super(["hincrby",...n],t)}};var X=class extends e{constructor(n,t){super(["hincrbyfloat",...n],t)}};var j=class extends e{constructor([n],t){super(["hkeys",n],t)}};var Y=class extends e{constructor(n,t){super(["hlen",...n],t)}};function ge(s,n){if(n.length===0||n.every(o=>o===null))return null;let t={};for(let o=0;oge(t,m),...o})}};var V=class extends e{constructor([n,t],o){super(["hmset",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};function xe(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{n[t]=JSON.parse(o)}catch (e9){n[t]=o}}return n}var _=class extends e{constructor(n,t){let o=["hrandfield",n[0]];typeof n[1]=="number"&&o.push(n[1]),n[2]&&o.push("WITHVALUES"),super(o,{deserialize:n[2]?m=>xe(m):_optionalChain([t, 'optionalAccess', _31 => _31.deserialize]),...t})}};var Q=class extends e{constructor([n,t,o],m){let r=["hscan",n,t];_optionalChain([o, 'optionalAccess', _32 => _32.match])&&r.push("match",o.match),typeof _optionalChain([o, 'optionalAccess', _33 => _33.count])=="number"&&r.push("count",o.count),super(r,m)}};var nn=class extends e{constructor([n,t],o){super(["hset",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};var tn=class extends e{constructor(n,t){super(["hsetnx",...n],t)}};var en=class extends e{constructor(n,t){super(["hstrlen",...n],t)}};var on=class extends e{constructor(n,t){super(["hvals",...n],t)}};var sn=class extends e{constructor(n,t){super(["incr",...n],t)}};var mn=class extends e{constructor(n,t){super(["incrby",...n],t)}};var rn=class extends e{constructor(n,t){super(["incrbyfloat",...n],t)}};var an=class extends e{constructor(n,t){super(["JSON.ARRAPPEND",...n],t)}};var pn=class extends e{constructor(n,t){super(["JSON.ARRINDEX",...n],t)}};var dn=class extends e{constructor(n,t){super(["JSON.ARRINSERT",...n],t)}};var cn=class extends e{constructor(n,t){super(["JSON.ARRLEN",n[0],_nullishCoalesce(n[1], () => ("$"))],t)}};var un=class extends e{constructor(n,t){super(["JSON.ARRPOP",...n],t)}};var hn=class extends e{constructor(n,t){let o=_nullishCoalesce(n[1], () => ("$")),m=_nullishCoalesce(n[2], () => (0)),r=_nullishCoalesce(n[3], () => (0));super(["JSON.ARRTRIM",n[0],o,m,r],t)}};var Cn=class extends e{constructor(n,t){super(["JSON.CLEAR",...n],t)}};var ln=class extends e{constructor(n,t){super(["JSON.DEL",...n],t)}};var gn=class extends e{constructor(n,t){super(["JSON.FORGET",...n],t)}};var xn=class extends e{constructor(n,t){let o=["JSON.GET"];typeof n[1]=="string"?o.push(...n):(o.push(n[0]),n[1]&&(n[1].indent&&o.push("INDENT",n[1].indent),n[1].newline&&o.push("NEWLINE",n[1].newline),n[1].space&&o.push("SPACE",n[1].space)),o.push(...n.slice(2))),super(o,t)}};var fn=class extends e{constructor(n,t){super(["JSON.MGET",...n[0],n[1]],t)}};var yn=class extends e{constructor(n,t){super(["JSON.NUMINCRBY",...n],t)}};var bn=class extends e{constructor(n,t){super(["JSON.NUMMULTBY",...n],t)}};var On=class extends e{constructor(n,t){super(["JSON.OBJKEYS",...n],t)}};var Tn=class extends e{constructor(n,t){super(["JSON.OBJLEN",...n],t)}};var wn=class extends e{constructor(n,t){super(["JSON.RESP",...n],t)}};var Dn=class extends e{constructor(n,t){let o=["JSON.SET",n[0],n[1],n[2]];n[3]&&(n[3].nx?o.push("NX"):n[3].xx&&o.push("XX")),super(o,t)}};var kn=class extends e{constructor(n,t){super(["JSON.STRAPPEND",...n],t)}};var An=class extends e{constructor(n,t){super(["JSON.STRLEN",...n],t)}};var Sn=class extends e{constructor(n,t){super(["JSON.TOGGLE",...n],t)}};var Rn=class extends e{constructor(n,t){super(["JSON.TYPE",...n],t)}};var Mn=class extends e{constructor(n,t){super(["keys",...n],t)}};var vn=class extends e{constructor(n,t){super(["lindex",...n],t)}};var En=class extends e{constructor(n,t){super(["linsert",...n],t)}};var zn=class extends e{constructor(n,t){super(["llen",...n],t)}};var Jn=class extends e{constructor(n,t){super(["lmove",...n],t)}};var Pn=class extends e{constructor(n,t){super(["lpop",...n],t)}};var In=class extends e{constructor(n,t){let o=["lpos",n[0],n[1]];typeof _optionalChain([n, 'access', _34 => _34[2], 'optionalAccess', _35 => _35.rank])=="number"&&o.push("rank",n[2].rank),typeof _optionalChain([n, 'access', _36 => _36[2], 'optionalAccess', _37 => _37.count])=="number"&&o.push("count",n[2].count),typeof _optionalChain([n, 'access', _38 => _38[2], 'optionalAccess', _39 => _39.maxLen])=="number"&&o.push("maxLen",n[2].maxLen),super(o,t)}};var Kn=class extends e{constructor(n,t){super(["lpush",...n],t)}};var Ln=class extends e{constructor(n,t){super(["lpushx",...n],t)}};var Zn=class extends e{constructor(n,t){super(["lrange",...n],t)}};var Nn=class extends e{constructor(n,t){super(["lrem",...n],t)}};var Gn=class extends e{constructor(n,t){super(["lset",...n],t)}};var Bn=class extends e{constructor(n,t){super(["ltrim",...n],t)}};var Un=class extends e{constructor(n,t){let o=Array.isArray(n[0])?n[0]:n;super(["mget",...o],t)}};var Hn=class extends e{constructor([n],t){super(["mset",...Object.entries(n).flatMap(([o,m])=>[o,m])],t)}};var Fn=class extends e{constructor([n],t){super(["msetnx",...Object.entries(n).flatMap(o=>o)],t)}};var qn=class extends e{constructor(n,t){super(["persist",...n],t)}};var $n=class extends e{constructor(n,t){super(["pexpire",...n],t)}};var Xn=class extends e{constructor(n,t){super(["pexpireat",...n],t)}};var jn=class extends e{constructor(n,t){let o=["ping"];typeof n<"u"&&typeof n[0]<"u"&&o.push(n[0]),super(o,t)}};var Yn=class extends e{constructor(n,t){super(["psetex",...n],t)}};var Wn=class extends e{constructor(n,t){super(["pttl",...n],t)}};var Vn=class extends e{constructor(n,t){super(["publish",...n],t)}};var _n=class extends e{constructor(n){super(["randomkey"],n)}};var Qn=class extends e{constructor(n,t){super(["rename",...n],t)}};var nt=class extends e{constructor(n,t){super(["renamenx",...n],t)}};var tt=class extends e{constructor(n,t){super(["rpop",...n],t)}};var et=class extends e{constructor(n,t){super(["rpush",...n],t)}};var ot=class extends e{constructor(n,t){super(["rpushx",...n],t)}};var st=class extends e{constructor(n,t){super(["sadd",...n],t)}};var mt=class extends e{constructor([n,t],o){let m=["scan",n];_optionalChain([t, 'optionalAccess', _40 => _40.match])&&m.push("match",t.match),typeof _optionalChain([t, 'optionalAccess', _41 => _41.count])=="number"&&m.push("count",t.count),_optionalChain([t, 'optionalAccess', _42 => _42.type])&&t.type.length>0&&m.push("type",t.type),super(m,o)}};var rt=class extends e{constructor(n,t){super(["scard",...n],t)}};var at=class extends e{constructor(n,t){super(["script","exists",...n],{deserialize:o=>o,...t})}};var it=class extends e{constructor([n],t){let o=["script","flush"];_optionalChain([n, 'optionalAccess', _43 => _43.sync])?o.push("sync"):_optionalChain([n, 'optionalAccess', _44 => _44.async])&&o.push("async"),super(o,t)}};var pt=class extends e{constructor(n,t){super(["script","load",...n],t)}};var dt=class extends e{constructor(n,t){super(["sdiff",...n],t)}};var ct=class extends e{constructor(n,t){super(["sdiffstore",...n],t)}};var ut=class extends e{constructor([n,t,o],m){let r=["set",n,t];o&&("nx"in o&&o.nx?r.push("nx"):"xx"in o&&o.xx&&r.push("xx"),"get"in o&&o.get&&r.push("get"),"ex"in o&&typeof o.ex=="number"?r.push("ex",o.ex):"px"in o&&typeof o.px=="number"?r.push("px",o.px):"exat"in o&&typeof o.exat=="number"?r.push("exat",o.exat):"pxat"in o&&typeof o.pxat=="number"?r.push("pxat",o.pxat):"keepTtl"in o&&o.keepTtl&&r.push("keepTtl")),super(r,m)}};var ht=class extends e{constructor(n,t){super(["setbit",...n],t)}};var Ct=class extends e{constructor(n,t){super(["setex",...n],t)}};var lt=class extends e{constructor(n,t){super(["setnx",...n],t)}};var gt=class extends e{constructor(n,t){super(["setrange",...n],t)}};var xt=class extends e{constructor(n,t){super(["sinter",...n],t)}};var ft=class extends e{constructor(n,t){super(["sinterstore",...n],t)}};var yt=class extends e{constructor(n,t){super(["sismember",...n],t)}};var bt=class extends e{constructor(n,t){super(["smembers",...n],t)}};var Ot=class extends e{constructor(n,t){super(["smismember",n[0],...n[1]],t)}};var Tt=class extends e{constructor(n,t){super(["smove",...n],t)}};var wt=class extends e{constructor([n,t],o){let m=["spop",n];typeof t=="number"&&m.push(t),super(m,o)}};var Dt=class extends e{constructor([n,t],o){let m=["srandmember",n];typeof t=="number"&&m.push(t),super(m,o)}};var kt=class extends e{constructor(n,t){super(["srem",...n],t)}};var At=class extends e{constructor([n,t,o],m){let r=["sscan",n,t];_optionalChain([o, 'optionalAccess', _45 => _45.match])&&r.push("match",o.match),typeof _optionalChain([o, 'optionalAccess', _46 => _46.count])=="number"&&r.push("count",o.count),super(r,m)}};var St=class extends e{constructor(n,t){super(["strlen",...n],t)}};var Rt=class extends e{constructor(n,t){super(["sunion",...n],t)}};var Mt=class extends e{constructor(n,t){super(["sunionstore",...n],t)}};var vt=class extends e{constructor(n){super(["time"],n)}};var Et=class extends e{constructor(n,t){super(["touch",...n],t)}};var zt=class extends e{constructor(n,t){super(["ttl",...n],t)}};var Jt=class extends e{constructor(n,t){super(["type",...n],t)}};var Pt=class extends e{constructor(n,t){super(["unlink",...n],t)}};var oe=class extends e{constructor([n,t,o,m],r){let a=["XADD",n];m&&(m.nomkStream&&a.push("NOMKSTREAM"),m.trim&&(a.push(m.trim.type,m.trim.comparison,m.trim.threshold),typeof m.trim.limit<"u"&&a.push("LIMIT",m.trim.limit))),a.push(t);for(let[i,p]of Object.entries(o))a.push(i,p);super(a,r)}};function fe(s){let n={};for(let t of s)for(;t.length>=2;){let o=t.shift(),m=t.shift();for((o in n)||(n[o]={});m.length>=2;){let r=m.shift(),a=m.shift();try{n[o][r]=JSON.parse(a)}catch (e10){n[o][r]=a}}}return n}var se=class extends e{constructor([n,t,o,m],r){let a=["XRANGE",n,t,o];typeof m=="number"&&a.push("COUNT",m),super(a,{deserialize:i=>fe(i),...r})}};var u=class extends e{constructor([n,t,...o],m){let r=["zadd",n];"nx"in t&&t.nx?r.push("nx"):"xx"in t&&t.xx&&r.push("xx"),"ch"in t&&t.ch&&r.push("ch"),"incr"in t&&t.incr&&r.push("incr"),"score"in t&&"member"in t&&r.push(t.score,t.member),r.push(...o.flatMap(({score:a,member:i})=>[a,i])),super(r,m)}};var It=class extends e{constructor(n,t){super(["zcard",...n],t)}};var Kt=class extends e{constructor(n,t){super(["zcount",...n],t)}};var Lt=class extends e{constructor(n,t){super(["zincrby",...n],t)}};var Zt=class extends e{constructor([n,t,o,m],r){let a=["zinterstore",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&("weights"in m&&m.weights?a.push("weights",...m.weights):"weight"in m&&typeof m.weight=="number"&&a.push("weights",m.weight),"aggregate"in m&&a.push("aggregate",m.aggregate)),super(a,r)}};var Nt=class extends e{constructor(n,t){super(["zlexcount",...n],t)}};var Gt=class extends e{constructor([n,t],o){let m=["zpopmax",n];typeof t=="number"&&m.push(t),super(m,o)}};var Bt=class extends e{constructor([n,t],o){let m=["zpopmin",n];typeof t=="number"&&m.push(t),super(m,o)}};var Ut=class extends e{constructor([n,t,o,m],r){let a=["zrange",n,t,o];_optionalChain([m, 'optionalAccess', _47 => _47.byScore])&&a.push("byscore"),_optionalChain([m, 'optionalAccess', _48 => _48.byLex])&&a.push("bylex"),_optionalChain([m, 'optionalAccess', _49 => _49.rev])&&a.push("rev"),typeof _optionalChain([m, 'optionalAccess', _50 => _50.count])<"u"&&typeof _optionalChain([m, 'optionalAccess', _51 => _51.offset])<"u"&&a.push("limit",m.offset,m.count),_optionalChain([m, 'optionalAccess', _52 => _52.withScores])&&a.push("withscores"),super(a,r)}};var Ht=class extends e{constructor(n,t){super(["zrank",...n],t)}};var Ft=class extends e{constructor(n,t){super(["zrem",...n],t)}};var qt=class extends e{constructor(n,t){super(["zremrangebylex",...n],t)}};var $t=class extends e{constructor(n,t){super(["zremrangebyrank",...n],t)}};var Xt=class extends e{constructor(n,t){super(["zremrangebyscore",...n],t)}};var jt=class extends e{constructor(n,t){super(["zrevrank",...n],t)}};var Yt=class extends e{constructor([n,t,o],m){let r=["zscan",n,t];_optionalChain([o, 'optionalAccess', _53 => _53.match])&&r.push("match",o.match),typeof _optionalChain([o, 'optionalAccess', _54 => _54.count])=="number"&&r.push("count",o.count),super(r,m)}};var Wt=class extends e{constructor(n,t){super(["zscore",...n],t)}};var Vt=class extends e{constructor([n,t,o],m){let r=["zunion",n];Array.isArray(t)?r.push(...t):r.push(t),o&&("weights"in o&&o.weights?r.push("weights",...o.weights):"weight"in o&&typeof o.weight=="number"&&r.push("weights",o.weight),"aggregate"in o&&r.push("aggregate",o.aggregate),_optionalChain([o, 'optionalAccess', _55 => _55.withScores])&&r.push("withscores")),super(r,m)}};var _t=class extends e{constructor([n,t,o,m],r){let a=["zunionstore",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&("weights"in m&&m.weights?a.push("weights",...m.weights):"weight"in m&&typeof m.weight=="number"&&a.push("weights",m.weight),"aggregate"in m&&a.push("aggregate",m.aggregate)),super(a,r)}};var Qt=class extends e{constructor(n,t){super(["zdiffstore",...n],t)}};var ne=class extends e{constructor(n,t){let[o,m]=n;super(["zmscore",o,...m],t)}};var te= (_class =class{constructor(n){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);_class.prototype.__init11.call(this);_class.prototype.__init12.call(this);_class.prototype.__init13.call(this);_class.prototype.__init14.call(this);_class.prototype.__init15.call(this);_class.prototype.__init16.call(this);_class.prototype.__init17.call(this);_class.prototype.__init18.call(this);_class.prototype.__init19.call(this);_class.prototype.__init20.call(this);_class.prototype.__init21.call(this);_class.prototype.__init22.call(this);_class.prototype.__init23.call(this);_class.prototype.__init24.call(this);_class.prototype.__init25.call(this);_class.prototype.__init26.call(this);_class.prototype.__init27.call(this);_class.prototype.__init28.call(this);_class.prototype.__init29.call(this);_class.prototype.__init30.call(this);_class.prototype.__init31.call(this);_class.prototype.__init32.call(this);_class.prototype.__init33.call(this);_class.prototype.__init34.call(this);_class.prototype.__init35.call(this);_class.prototype.__init36.call(this);_class.prototype.__init37.call(this);_class.prototype.__init38.call(this);_class.prototype.__init39.call(this);_class.prototype.__init40.call(this);_class.prototype.__init41.call(this);_class.prototype.__init42.call(this);_class.prototype.__init43.call(this);_class.prototype.__init44.call(this);_class.prototype.__init45.call(this);_class.prototype.__init46.call(this);_class.prototype.__init47.call(this);_class.prototype.__init48.call(this);_class.prototype.__init49.call(this);_class.prototype.__init50.call(this);_class.prototype.__init51.call(this);_class.prototype.__init52.call(this);_class.prototype.__init53.call(this);_class.prototype.__init54.call(this);_class.prototype.__init55.call(this);_class.prototype.__init56.call(this);_class.prototype.__init57.call(this);_class.prototype.__init58.call(this);_class.prototype.__init59.call(this);_class.prototype.__init60.call(this);_class.prototype.__init61.call(this);_class.prototype.__init62.call(this);_class.prototype.__init63.call(this);_class.prototype.__init64.call(this);_class.prototype.__init65.call(this);_class.prototype.__init66.call(this);_class.prototype.__init67.call(this);_class.prototype.__init68.call(this);_class.prototype.__init69.call(this);_class.prototype.__init70.call(this);_class.prototype.__init71.call(this);_class.prototype.__init72.call(this);_class.prototype.__init73.call(this);_class.prototype.__init74.call(this);_class.prototype.__init75.call(this);_class.prototype.__init76.call(this);_class.prototype.__init77.call(this);_class.prototype.__init78.call(this);_class.prototype.__init79.call(this);_class.prototype.__init80.call(this);_class.prototype.__init81.call(this);_class.prototype.__init82.call(this);_class.prototype.__init83.call(this);_class.prototype.__init84.call(this);_class.prototype.__init85.call(this);_class.prototype.__init86.call(this);_class.prototype.__init87.call(this);_class.prototype.__init88.call(this);_class.prototype.__init89.call(this);_class.prototype.__init90.call(this);_class.prototype.__init91.call(this);_class.prototype.__init92.call(this);_class.prototype.__init93.call(this);_class.prototype.__init94.call(this);_class.prototype.__init95.call(this);_class.prototype.__init96.call(this);_class.prototype.__init97.call(this);_class.prototype.__init98.call(this);_class.prototype.__init99.call(this);_class.prototype.__init100.call(this);_class.prototype.__init101.call(this);_class.prototype.__init102.call(this);_class.prototype.__init103.call(this);_class.prototype.__init104.call(this);_class.prototype.__init105.call(this);_class.prototype.__init106.call(this);_class.prototype.__init107.call(this);_class.prototype.__init108.call(this);_class.prototype.__init109.call(this);_class.prototype.__init110.call(this);_class.prototype.__init111.call(this);_class.prototype.__init112.call(this);_class.prototype.__init113.call(this);_class.prototype.__init114.call(this);_class.prototype.__init115.call(this);_class.prototype.__init116.call(this);_class.prototype.__init117.call(this);_class.prototype.__init118.call(this);_class.prototype.__init119.call(this);_class.prototype.__init120.call(this);_class.prototype.__init121.call(this);_class.prototype.__init122.call(this);_class.prototype.__init123.call(this);this.client=n.client,this.commands=[],this.commandOptions=n.commandOptions,this.multiExec=_nullishCoalesce(n.multiExec, () => (!1))}__init() {this.exec=async()=>{if(this.commands.length===0)throw new Error("Pipeline is empty");let n=this.multiExec?["multi-exec"]:["pipeline"];return(await this.client.request({path:n,body:Object.values(this.commands).map(o=>o.command)})).map(({error:o,result:m},r)=>{if(o)throw new c(`Command ${r+1} [ ${this.commands[r].command[0]} ] failed: ${o}`);return this.commands[r].deserialize(m)})}}length(){return this.commands.length}chain(n){return this.commands.push(n),this}__init2() {this.append=(...n)=>this.chain(new C(n,this.commandOptions))}__init3() {this.bitcount=(...n)=>this.chain(new l(n,this.commandOptions))}__init4() {this.bitop=(n,t,o,...m)=>this.chain(new g([n,t,o,...m],this.commandOptions))}__init5() {this.bitpos=(...n)=>this.chain(new x(n,this.commandOptions))}__init6() {this.copy=(...n)=>this.chain(new f(n,this.commandOptions))}__init7() {this.zdiffstore=(...n)=>this.chain(new Qt(n,this.commandOptions))}__init8() {this.dbsize=()=>this.chain(new y(this.commandOptions))}__init9() {this.decr=(...n)=>this.chain(new b(n,this.commandOptions))}__init10() {this.decrby=(...n)=>this.chain(new O(n,this.commandOptions))}__init11() {this.del=(...n)=>this.chain(new T(n,this.commandOptions))}__init12() {this.echo=(...n)=>this.chain(new w(n,this.commandOptions))}__init13() {this.eval=(...n)=>this.chain(new D(n,this.commandOptions))}__init14() {this.evalsha=(...n)=>this.chain(new k(n,this.commandOptions))}__init15() {this.exists=(...n)=>this.chain(new A(n,this.commandOptions))}__init16() {this.expire=(...n)=>this.chain(new S(n,this.commandOptions))}__init17() {this.expireat=(...n)=>this.chain(new R(n,this.commandOptions))}__init18() {this.flushall=n=>this.chain(new M(n,this.commandOptions))}__init19() {this.flushdb=(...n)=>this.chain(new v(n,this.commandOptions))}__init20() {this.get=(...n)=>this.chain(new L(n,this.commandOptions))}__init21() {this.getbit=(...n)=>this.chain(new Z(n,this.commandOptions))}__init22() {this.getdel=(...n)=>this.chain(new N(n,this.commandOptions))}__init23() {this.getrange=(...n)=>this.chain(new G(n,this.commandOptions))}__init24() {this.getset=(n,t)=>this.chain(new B([n,t],this.commandOptions))}__init25() {this.hdel=(...n)=>this.chain(new U(n,this.commandOptions))}__init26() {this.hexists=(...n)=>this.chain(new H(n,this.commandOptions))}__init27() {this.hget=(...n)=>this.chain(new F(n,this.commandOptions))}__init28() {this.hgetall=(...n)=>this.chain(new q(n,this.commandOptions))}__init29() {this.hincrby=(...n)=>this.chain(new $(n,this.commandOptions))}__init30() {this.hincrbyfloat=(...n)=>this.chain(new X(n,this.commandOptions))}__init31() {this.hkeys=(...n)=>this.chain(new j(n,this.commandOptions))}__init32() {this.hlen=(...n)=>this.chain(new Y(n,this.commandOptions))}__init33() {this.hmget=(...n)=>this.chain(new W(n,this.commandOptions))}__init34() {this.hmset=(n,t)=>this.chain(new V([n,t],this.commandOptions))}__init35() {this.hrandfield=(n,t,o)=>this.chain(new _([n,t,o],this.commandOptions))}__init36() {this.hscan=(...n)=>this.chain(new Q(n,this.commandOptions))}__init37() {this.hset=(n,t)=>this.chain(new nn([n,t],this.commandOptions))}__init38() {this.hsetnx=(n,t,o)=>this.chain(new tn([n,t,o],this.commandOptions))}__init39() {this.hstrlen=(...n)=>this.chain(new en(n,this.commandOptions))}__init40() {this.hvals=(...n)=>this.chain(new on(n,this.commandOptions))}__init41() {this.incr=(...n)=>this.chain(new sn(n,this.commandOptions))}__init42() {this.incrby=(...n)=>this.chain(new mn(n,this.commandOptions))}__init43() {this.incrbyfloat=(...n)=>this.chain(new rn(n,this.commandOptions))}__init44() {this.keys=(...n)=>this.chain(new Mn(n,this.commandOptions))}__init45() {this.lindex=(...n)=>this.chain(new vn(n,this.commandOptions))}__init46() {this.linsert=(n,t,o,m)=>this.chain(new En([n,t,o,m],this.commandOptions))}__init47() {this.llen=(...n)=>this.chain(new zn(n,this.commandOptions))}__init48() {this.lmove=(...n)=>this.chain(new Jn(n,this.commandOptions))}__init49() {this.lpop=(...n)=>this.chain(new Pn(n,this.commandOptions))}__init50() {this.lpos=(...n)=>this.chain(new In(n,this.commandOptions))}__init51() {this.lpush=(n,...t)=>this.chain(new Kn([n,...t],this.commandOptions))}__init52() {this.lpushx=(n,...t)=>this.chain(new Ln([n,...t],this.commandOptions))}__init53() {this.lrange=(...n)=>this.chain(new Zn(n,this.commandOptions))}__init54() {this.lrem=(n,t,o)=>this.chain(new Nn([n,t,o],this.commandOptions))}__init55() {this.lset=(n,t,o)=>this.chain(new Gn([n,t,o],this.commandOptions))}__init56() {this.ltrim=(...n)=>this.chain(new Bn(n,this.commandOptions))}__init57() {this.mget=(...n)=>this.chain(new Un(n,this.commandOptions))}__init58() {this.mset=n=>this.chain(new Hn([n],this.commandOptions))}__init59() {this.msetnx=n=>this.chain(new Fn([n],this.commandOptions))}__init60() {this.persist=(...n)=>this.chain(new qn(n,this.commandOptions))}__init61() {this.pexpire=(...n)=>this.chain(new $n(n,this.commandOptions))}__init62() {this.pexpireat=(...n)=>this.chain(new Xn(n,this.commandOptions))}__init63() {this.ping=n=>this.chain(new jn(n,this.commandOptions))}__init64() {this.psetex=(n,t,o)=>this.chain(new Yn([n,t,o],this.commandOptions))}__init65() {this.pttl=(...n)=>this.chain(new Wn(n,this.commandOptions))}__init66() {this.publish=(...n)=>this.chain(new Vn(n,this.commandOptions))}__init67() {this.randomkey=()=>this.chain(new _n(this.commandOptions))}__init68() {this.rename=(...n)=>this.chain(new Qn(n,this.commandOptions))}__init69() {this.renamenx=(...n)=>this.chain(new nt(n,this.commandOptions))}__init70() {this.rpop=(...n)=>this.chain(new tt(n,this.commandOptions))}__init71() {this.rpush=(n,...t)=>this.chain(new et([n,...t],this.commandOptions))}__init72() {this.rpushx=(n,...t)=>this.chain(new ot([n,...t],this.commandOptions))}__init73() {this.sadd=(n,...t)=>this.chain(new st([n,...t],this.commandOptions))}__init74() {this.scan=(...n)=>this.chain(new mt(n,this.commandOptions))}__init75() {this.scard=(...n)=>this.chain(new rt(n,this.commandOptions))}__init76() {this.scriptExists=(...n)=>this.chain(new at(n,this.commandOptions))}__init77() {this.scriptFlush=(...n)=>this.chain(new it(n,this.commandOptions))}__init78() {this.scriptLoad=(...n)=>this.chain(new pt(n,this.commandOptions))}__init79() {this.sdiff=(...n)=>this.chain(new dt(n,this.commandOptions))}__init80() {this.sdiffstore=(...n)=>this.chain(new ct(n,this.commandOptions))}__init81() {this.set=(n,t,o)=>this.chain(new ut([n,t,o],this.commandOptions))}__init82() {this.setbit=(...n)=>this.chain(new ht(n,this.commandOptions))}__init83() {this.setex=(n,t,o)=>this.chain(new Ct([n,t,o],this.commandOptions))}__init84() {this.setnx=(n,t)=>this.chain(new lt([n,t],this.commandOptions))}__init85() {this.setrange=(...n)=>this.chain(new gt(n,this.commandOptions))}__init86() {this.sinter=(...n)=>this.chain(new xt(n,this.commandOptions))}__init87() {this.sinterstore=(...n)=>this.chain(new ft(n,this.commandOptions))}__init88() {this.sismember=(n,t)=>this.chain(new yt([n,t],this.commandOptions))}__init89() {this.smembers=(...n)=>this.chain(new bt(n,this.commandOptions))}__init90() {this.smismember=(n,t)=>this.chain(new Ot([n,t],this.commandOptions))}__init91() {this.smove=(n,t,o)=>this.chain(new Tt([n,t,o],this.commandOptions))}__init92() {this.spop=(...n)=>this.chain(new wt(n,this.commandOptions))}__init93() {this.srandmember=(...n)=>this.chain(new Dt(n,this.commandOptions))}__init94() {this.srem=(n,...t)=>this.chain(new kt([n,...t],this.commandOptions))}__init95() {this.sscan=(...n)=>this.chain(new At(n,this.commandOptions))}__init96() {this.strlen=(...n)=>this.chain(new St(n,this.commandOptions))}__init97() {this.sunion=(...n)=>this.chain(new Rt(n,this.commandOptions))}__init98() {this.sunionstore=(...n)=>this.chain(new Mt(n,this.commandOptions))}__init99() {this.time=()=>this.chain(new vt(this.commandOptions))}__init100() {this.touch=(...n)=>this.chain(new Et(n,this.commandOptions))}__init101() {this.ttl=(...n)=>this.chain(new zt(n,this.commandOptions))}__init102() {this.type=(...n)=>this.chain(new Jt(n,this.commandOptions))}__init103() {this.unlink=(...n)=>this.chain(new Pt(n,this.commandOptions))}__init104() {this.zadd=(...n)=>"score"in n[1]?this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions)):this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions))}__init105() {this.zcard=(...n)=>this.chain(new It(n,this.commandOptions))}__init106() {this.zcount=(...n)=>this.chain(new Kt(n,this.commandOptions))}__init107() {this.zincrby=(n,t,o)=>this.chain(new Lt([n,t,o],this.commandOptions))}__init108() {this.zinterstore=(...n)=>this.chain(new Zt(n,this.commandOptions))}__init109() {this.zlexcount=(...n)=>this.chain(new Nt(n,this.commandOptions))}__init110() {this.zmscore=(...n)=>this.chain(new ne(n,this.commandOptions))}__init111() {this.zpopmax=(...n)=>this.chain(new Gt(n,this.commandOptions))}__init112() {this.zpopmin=(...n)=>this.chain(new Bt(n,this.commandOptions))}__init113() {this.zrange=(...n)=>this.chain(new Ut(n,this.commandOptions))}__init114() {this.zrank=(n,t)=>this.chain(new Ht([n,t],this.commandOptions))}__init115() {this.zrem=(n,...t)=>this.chain(new Ft([n,...t],this.commandOptions))}__init116() {this.zremrangebylex=(...n)=>this.chain(new qt(n,this.commandOptions))}__init117() {this.zremrangebyrank=(...n)=>this.chain(new $t(n,this.commandOptions))}__init118() {this.zremrangebyscore=(...n)=>this.chain(new Xt(n,this.commandOptions))}__init119() {this.zrevrank=(n,t)=>this.chain(new jt([n,t],this.commandOptions))}__init120() {this.zscan=(...n)=>this.chain(new Yt(n,this.commandOptions))}__init121() {this.zscore=(n,t)=>this.chain(new Wt([n,t],this.commandOptions))}__init122() {this.zunionstore=(...n)=>this.chain(new _t(n,this.commandOptions))}__init123() {this.zunion=(...n)=>this.chain(new Vt(n,this.commandOptions))}get json(){return{arrappend:(...n)=>this.chain(new an(n,this.commandOptions)),arrindex:(...n)=>this.chain(new pn(n,this.commandOptions)),arrinsert:(...n)=>this.chain(new dn(n,this.commandOptions)),arrlen:(...n)=>this.chain(new cn(n,this.commandOptions)),arrpop:(...n)=>this.chain(new un(n,this.commandOptions)),arrtrim:(...n)=>this.chain(new hn(n,this.commandOptions)),clear:(...n)=>this.chain(new Cn(n,this.commandOptions)),del:(...n)=>this.chain(new ln(n,this.commandOptions)),forget:(...n)=>this.chain(new gn(n,this.commandOptions)),geoadd:(...n)=>this.chain(new E(n,this.commandOptions)),geodist:(...n)=>this.chain(new z(n,this.commandOptions)),geopos:(...n)=>this.chain(new J(n,this.commandOptions)),geohash:(...n)=>this.chain(new P(n,this.commandOptions)),geosearch:(...n)=>this.chain(new I(n,this.commandOptions)),geosearchstore:(...n)=>this.chain(new K(n,this.commandOptions)),get:(...n)=>this.chain(new xn(n,this.commandOptions)),mget:(...n)=>this.chain(new fn(n,this.commandOptions)),numincrby:(...n)=>this.chain(new yn(n,this.commandOptions)),nummultby:(...n)=>this.chain(new bn(n,this.commandOptions)),objkeys:(...n)=>this.chain(new On(n,this.commandOptions)),objlen:(...n)=>this.chain(new Tn(n,this.commandOptions)),resp:(...n)=>this.chain(new wn(n,this.commandOptions)),set:(...n)=>this.chain(new Dn(n,this.commandOptions)),strappend:(...n)=>this.chain(new kn(n,this.commandOptions)),strlen:(...n)=>this.chain(new An(n,this.commandOptions)),toggle:(...n)=>this.chain(new Sn(n,this.commandOptions)),type:(...n)=>this.chain(new Rn(n,this.commandOptions))}}}, _class);var _enchex = __nccwpck_require__(680); var _enchex2 = _interopRequireDefault(_enchex);var _sha1 = __nccwpck_require__(595); var _sha12 = _interopRequireDefault(_sha1);var me=class{constructor(n,t){this.redis=n,this.sha1=this.digest(t),this.script=t}async eval(n,t){return await this.redis.eval(this.script,n,t)}async evalsha(n,t){return await this.redis.evalsha(this.sha1,n,t)}async exec(n,t){return await this.redis.evalsha(this.sha1,n,t).catch(async m=>{if(m instanceof Error&&m.message.toLowerCase().includes("noscript"))return await this.redis.eval(this.script,n,t);throw m})}digest(n){return _enchex2.default.stringify(_sha12.default.call(void 0, n))}};var ue= (_class2 =class{constructor(n,t){;_class2.prototype.__init124.call(this);_class2.prototype.__init125.call(this);_class2.prototype.__init126.call(this);_class2.prototype.__init127.call(this);_class2.prototype.__init128.call(this);_class2.prototype.__init129.call(this);_class2.prototype.__init130.call(this);_class2.prototype.__init131.call(this);_class2.prototype.__init132.call(this);_class2.prototype.__init133.call(this);_class2.prototype.__init134.call(this);_class2.prototype.__init135.call(this);_class2.prototype.__init136.call(this);_class2.prototype.__init137.call(this);_class2.prototype.__init138.call(this);_class2.prototype.__init139.call(this);_class2.prototype.__init140.call(this);_class2.prototype.__init141.call(this);_class2.prototype.__init142.call(this);_class2.prototype.__init143.call(this);_class2.prototype.__init144.call(this);_class2.prototype.__init145.call(this);_class2.prototype.__init146.call(this);_class2.prototype.__init147.call(this);_class2.prototype.__init148.call(this);_class2.prototype.__init149.call(this);_class2.prototype.__init150.call(this);_class2.prototype.__init151.call(this);_class2.prototype.__init152.call(this);_class2.prototype.__init153.call(this);_class2.prototype.__init154.call(this);_class2.prototype.__init155.call(this);_class2.prototype.__init156.call(this);_class2.prototype.__init157.call(this);_class2.prototype.__init158.call(this);_class2.prototype.__init159.call(this);_class2.prototype.__init160.call(this);_class2.prototype.__init161.call(this);_class2.prototype.__init162.call(this);_class2.prototype.__init163.call(this);_class2.prototype.__init164.call(this);_class2.prototype.__init165.call(this);_class2.prototype.__init166.call(this);_class2.prototype.__init167.call(this);_class2.prototype.__init168.call(this);_class2.prototype.__init169.call(this);_class2.prototype.__init170.call(this);_class2.prototype.__init171.call(this);_class2.prototype.__init172.call(this);_class2.prototype.__init173.call(this);_class2.prototype.__init174.call(this);_class2.prototype.__init175.call(this);_class2.prototype.__init176.call(this);_class2.prototype.__init177.call(this);_class2.prototype.__init178.call(this);_class2.prototype.__init179.call(this);_class2.prototype.__init180.call(this);_class2.prototype.__init181.call(this);_class2.prototype.__init182.call(this);_class2.prototype.__init183.call(this);_class2.prototype.__init184.call(this);_class2.prototype.__init185.call(this);_class2.prototype.__init186.call(this);_class2.prototype.__init187.call(this);_class2.prototype.__init188.call(this);_class2.prototype.__init189.call(this);_class2.prototype.__init190.call(this);_class2.prototype.__init191.call(this);_class2.prototype.__init192.call(this);_class2.prototype.__init193.call(this);_class2.prototype.__init194.call(this);_class2.prototype.__init195.call(this);_class2.prototype.__init196.call(this);_class2.prototype.__init197.call(this);_class2.prototype.__init198.call(this);_class2.prototype.__init199.call(this);_class2.prototype.__init200.call(this);_class2.prototype.__init201.call(this);_class2.prototype.__init202.call(this);_class2.prototype.__init203.call(this);_class2.prototype.__init204.call(this);_class2.prototype.__init205.call(this);_class2.prototype.__init206.call(this);_class2.prototype.__init207.call(this);_class2.prototype.__init208.call(this);_class2.prototype.__init209.call(this);_class2.prototype.__init210.call(this);_class2.prototype.__init211.call(this);_class2.prototype.__init212.call(this);_class2.prototype.__init213.call(this);_class2.prototype.__init214.call(this);_class2.prototype.__init215.call(this);_class2.prototype.__init216.call(this);_class2.prototype.__init217.call(this);_class2.prototype.__init218.call(this);_class2.prototype.__init219.call(this);_class2.prototype.__init220.call(this);_class2.prototype.__init221.call(this);_class2.prototype.__init222.call(this);_class2.prototype.__init223.call(this);_class2.prototype.__init224.call(this);_class2.prototype.__init225.call(this);_class2.prototype.__init226.call(this);_class2.prototype.__init227.call(this);_class2.prototype.__init228.call(this);_class2.prototype.__init229.call(this);_class2.prototype.__init230.call(this);_class2.prototype.__init231.call(this);_class2.prototype.__init232.call(this);_class2.prototype.__init233.call(this);_class2.prototype.__init234.call(this);_class2.prototype.__init235.call(this);_class2.prototype.__init236.call(this);_class2.prototype.__init237.call(this);_class2.prototype.__init238.call(this);_class2.prototype.__init239.call(this);_class2.prototype.__init240.call(this);_class2.prototype.__init241.call(this);_class2.prototype.__init242.call(this);_class2.prototype.__init243.call(this);_class2.prototype.__init244.call(this);_class2.prototype.__init245.call(this);_class2.prototype.__init246.call(this);_class2.prototype.__init247.call(this);_class2.prototype.__init248.call(this);_class2.prototype.__init249.call(this);_class2.prototype.__init250.call(this);_class2.prototype.__init251.call(this);this.client=n,this.opts=t,this.enableTelemetry=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _56 => _56.enableTelemetry]), () => (!0))}get json(){return{arrappend:(...n)=>new an(n,this.opts).exec(this.client),arrindex:(...n)=>new pn(n,this.opts).exec(this.client),arrinsert:(...n)=>new dn(n,this.opts).exec(this.client),arrlen:(...n)=>new cn(n,this.opts).exec(this.client),arrpop:(...n)=>new un(n,this.opts).exec(this.client),arrtrim:(...n)=>new hn(n,this.opts).exec(this.client),clear:(...n)=>new Cn(n,this.opts).exec(this.client),del:(...n)=>new ln(n,this.opts).exec(this.client),forget:(...n)=>new gn(n,this.opts).exec(this.client),geoadd:(...n)=>new E(n,this.opts).exec(this.client),geopos:(...n)=>new J(n,this.opts).exec(this.client),geodist:(...n)=>new z(n,this.opts).exec(this.client),geohash:(...n)=>new P(n,this.opts).exec(this.client),geosearch:(...n)=>new I(n,this.opts).exec(this.client),geosearchstore:(...n)=>new K(n,this.opts).exec(this.client),get:(...n)=>new xn(n,this.opts).exec(this.client),mget:(...n)=>new fn(n,this.opts).exec(this.client),numincrby:(...n)=>new yn(n,this.opts).exec(this.client),nummultby:(...n)=>new bn(n,this.opts).exec(this.client),objkeys:(...n)=>new On(n,this.opts).exec(this.client),objlen:(...n)=>new Tn(n,this.opts).exec(this.client),resp:(...n)=>new wn(n,this.opts).exec(this.client),set:(...n)=>new Dn(n,this.opts).exec(this.client),strappend:(...n)=>new kn(n,this.opts).exec(this.client),strlen:(...n)=>new An(n,this.opts).exec(this.client),toggle:(...n)=>new Sn(n,this.opts).exec(this.client),type:(...n)=>new Rn(n,this.opts).exec(this.client)}}__init124() {this.use=n=>{let t=this.client.request.bind(this.client);this.client.request=o=>n(o,t)}}__init125() {this.addTelemetry=n=>{if(this.enableTelemetry)try{this.client.mergeTelemetry(n)}catch (e12){}}}createScript(n){return new me(this,n)}__init126() {this.pipeline=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!1})}__init127() {this.multi=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!0})}__init128() {this.append=(...n)=>new C(n,this.opts).exec(this.client)}__init129() {this.bitcount=(...n)=>new l(n,this.opts).exec(this.client)}__init130() {this.bitop=(n,t,o,...m)=>new g([n,t,o,...m],this.opts).exec(this.client)}__init131() {this.bitpos=(...n)=>new x(n,this.opts).exec(this.client)}__init132() {this.copy=(...n)=>new f(n,this.opts).exec(this.client)}__init133() {this.dbsize=()=>new y(this.opts).exec(this.client)}__init134() {this.decr=(...n)=>new b(n,this.opts).exec(this.client)}__init135() {this.decrby=(...n)=>new O(n,this.opts).exec(this.client)}__init136() {this.del=(...n)=>new T(n,this.opts).exec(this.client)}__init137() {this.echo=(...n)=>new w(n,this.opts).exec(this.client)}__init138() {this.eval=(...n)=>new D(n,this.opts).exec(this.client)}__init139() {this.evalsha=(...n)=>new k(n,this.opts).exec(this.client)}__init140() {this.exists=(...n)=>new A(n,this.opts).exec(this.client)}__init141() {this.expire=(...n)=>new S(n,this.opts).exec(this.client)}__init142() {this.expireat=(...n)=>new R(n,this.opts).exec(this.client)}__init143() {this.flushall=n=>new M(n,this.opts).exec(this.client)}__init144() {this.flushdb=(...n)=>new v(n,this.opts).exec(this.client)}__init145() {this.get=(...n)=>new L(n,this.opts).exec(this.client)}__init146() {this.getbit=(...n)=>new Z(n,this.opts).exec(this.client)}__init147() {this.getdel=(...n)=>new N(n,this.opts).exec(this.client)}__init148() {this.getrange=(...n)=>new G(n,this.opts).exec(this.client)}__init149() {this.getset=(n,t)=>new B([n,t],this.opts).exec(this.client)}__init150() {this.hdel=(...n)=>new U(n,this.opts).exec(this.client)}__init151() {this.hexists=(...n)=>new H(n,this.opts).exec(this.client)}__init152() {this.hget=(...n)=>new F(n,this.opts).exec(this.client)}__init153() {this.hgetall=(...n)=>new q(n,this.opts).exec(this.client)}__init154() {this.hincrby=(...n)=>new $(n,this.opts).exec(this.client)}__init155() {this.hincrbyfloat=(...n)=>new X(n,this.opts).exec(this.client)}__init156() {this.hkeys=(...n)=>new j(n,this.opts).exec(this.client)}__init157() {this.hlen=(...n)=>new Y(n,this.opts).exec(this.client)}__init158() {this.hmget=(...n)=>new W(n,this.opts).exec(this.client)}__init159() {this.hmset=(n,t)=>new V([n,t],this.opts).exec(this.client)}__init160() {this.hrandfield=(n,t,o)=>new _([n,t,o],this.opts).exec(this.client)}__init161() {this.hscan=(...n)=>new Q(n,this.opts).exec(this.client)}__init162() {this.hset=(n,t)=>new nn([n,t],this.opts).exec(this.client)}__init163() {this.hsetnx=(n,t,o)=>new tn([n,t,o],this.opts).exec(this.client)}__init164() {this.hstrlen=(...n)=>new en(n,this.opts).exec(this.client)}__init165() {this.hvals=(...n)=>new on(n,this.opts).exec(this.client)}__init166() {this.incr=(...n)=>new sn(n,this.opts).exec(this.client)}__init167() {this.incrby=(...n)=>new mn(n,this.opts).exec(this.client)}__init168() {this.incrbyfloat=(...n)=>new rn(n,this.opts).exec(this.client)}__init169() {this.keys=(...n)=>new Mn(n,this.opts).exec(this.client)}__init170() {this.lindex=(...n)=>new vn(n,this.opts).exec(this.client)}__init171() {this.linsert=(n,t,o,m)=>new En([n,t,o,m],this.opts).exec(this.client)}__init172() {this.llen=(...n)=>new zn(n,this.opts).exec(this.client)}__init173() {this.lmove=(...n)=>new Jn(n,this.opts).exec(this.client)}__init174() {this.lpop=(...n)=>new Pn(n,this.opts).exec(this.client)}__init175() {this.lpos=(...n)=>new In(n,this.opts).exec(this.client)}__init176() {this.lpush=(n,...t)=>new Kn([n,...t],this.opts).exec(this.client)}__init177() {this.lpushx=(n,...t)=>new Ln([n,...t],this.opts).exec(this.client)}__init178() {this.lrange=(...n)=>new Zn(n,this.opts).exec(this.client)}__init179() {this.lrem=(n,t,o)=>new Nn([n,t,o],this.opts).exec(this.client)}__init180() {this.lset=(n,t,o)=>new Gn([n,t,o],this.opts).exec(this.client)}__init181() {this.ltrim=(...n)=>new Bn(n,this.opts).exec(this.client)}__init182() {this.mget=(...n)=>new Un(n,this.opts).exec(this.client)}__init183() {this.mset=n=>new Hn([n],this.opts).exec(this.client)}__init184() {this.msetnx=n=>new Fn([n],this.opts).exec(this.client)}__init185() {this.persist=(...n)=>new qn(n,this.opts).exec(this.client)}__init186() {this.pexpire=(...n)=>new $n(n,this.opts).exec(this.client)}__init187() {this.pexpireat=(...n)=>new Xn(n,this.opts).exec(this.client)}__init188() {this.ping=n=>new jn(n,this.opts).exec(this.client)}__init189() {this.psetex=(n,t,o)=>new Yn([n,t,o],this.opts).exec(this.client)}__init190() {this.pttl=(...n)=>new Wn(n,this.opts).exec(this.client)}__init191() {this.publish=(...n)=>new Vn(n,this.opts).exec(this.client)}__init192() {this.randomkey=()=>new _n().exec(this.client)}__init193() {this.rename=(...n)=>new Qn(n,this.opts).exec(this.client)}__init194() {this.renamenx=(...n)=>new nt(n,this.opts).exec(this.client)}__init195() {this.rpop=(...n)=>new tt(n,this.opts).exec(this.client)}__init196() {this.rpush=(n,...t)=>new et([n,...t],this.opts).exec(this.client)}__init197() {this.rpushx=(n,...t)=>new ot([n,...t],this.opts).exec(this.client)}__init198() {this.sadd=(n,...t)=>new st([n,...t],this.opts).exec(this.client)}__init199() {this.scan=(...n)=>new mt(n,this.opts).exec(this.client)}__init200() {this.scard=(...n)=>new rt(n,this.opts).exec(this.client)}__init201() {this.scriptExists=(...n)=>new at(n,this.opts).exec(this.client)}__init202() {this.scriptFlush=(...n)=>new it(n,this.opts).exec(this.client)}__init203() {this.scriptLoad=(...n)=>new pt(n,this.opts).exec(this.client)}__init204() {this.sdiff=(...n)=>new dt(n,this.opts).exec(this.client)}__init205() {this.sdiffstore=(...n)=>new ct(n,this.opts).exec(this.client)}__init206() {this.set=(n,t,o)=>new ut([n,t,o],this.opts).exec(this.client)}__init207() {this.setbit=(...n)=>new ht(n,this.opts).exec(this.client)}__init208() {this.setex=(n,t,o)=>new Ct([n,t,o],this.opts).exec(this.client)}__init209() {this.setnx=(n,t)=>new lt([n,t],this.opts).exec(this.client)}__init210() {this.setrange=(...n)=>new gt(n,this.opts).exec(this.client)}__init211() {this.sinter=(...n)=>new xt(n,this.opts).exec(this.client)}__init212() {this.sinterstore=(...n)=>new ft(n,this.opts).exec(this.client)}__init213() {this.sismember=(n,t)=>new yt([n,t],this.opts).exec(this.client)}__init214() {this.smismember=(n,t)=>new Ot([n,t],this.opts).exec(this.client)}__init215() {this.smembers=(...n)=>new bt(n,this.opts).exec(this.client)}__init216() {this.smove=(n,t,o)=>new Tt([n,t,o],this.opts).exec(this.client)}__init217() {this.spop=(...n)=>new wt(n,this.opts).exec(this.client)}__init218() {this.srandmember=(...n)=>new Dt(n,this.opts).exec(this.client)}__init219() {this.srem=(n,...t)=>new kt([n,...t],this.opts).exec(this.client)}__init220() {this.sscan=(...n)=>new At(n,this.opts).exec(this.client)}__init221() {this.strlen=(...n)=>new St(n,this.opts).exec(this.client)}__init222() {this.sunion=(...n)=>new Rt(n,this.opts).exec(this.client)}__init223() {this.sunionstore=(...n)=>new Mt(n,this.opts).exec(this.client)}__init224() {this.time=()=>new vt().exec(this.client)}__init225() {this.touch=(...n)=>new Et(n,this.opts).exec(this.client)}__init226() {this.ttl=(...n)=>new zt(n,this.opts).exec(this.client)}__init227() {this.type=(...n)=>new Jt(n,this.opts).exec(this.client)}__init228() {this.unlink=(...n)=>new Pt(n,this.opts).exec(this.client)}__init229() {this.xadd=(...n)=>new oe(n,this.opts).exec(this.client)}__init230() {this.xrange=(...n)=>new se(n,this.opts).exec(this.client)}__init231() {this.zadd=(...n)=>"score"in n[1]?new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client):new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client)}__init232() {this.zcard=(...n)=>new It(n,this.opts).exec(this.client)}__init233() {this.zcount=(...n)=>new Kt(n,this.opts).exec(this.client)}__init234() {this.zdiffstore=(...n)=>new Qt(n,this.opts).exec(this.client)}__init235() {this.zincrby=(n,t,o)=>new Lt([n,t,o],this.opts).exec(this.client)}__init236() {this.zinterstore=(...n)=>new Zt(n,this.opts).exec(this.client)}__init237() {this.zlexcount=(...n)=>new Nt(n,this.opts).exec(this.client)}__init238() {this.zmscore=(...n)=>new ne(n,this.opts).exec(this.client)}__init239() {this.zpopmax=(...n)=>new Gt(n,this.opts).exec(this.client)}__init240() {this.zpopmin=(...n)=>new Bt(n,this.opts).exec(this.client)}__init241() {this.zrange=(...n)=>new Ut(n,this.opts).exec(this.client)}__init242() {this.zrank=(n,t)=>new Ht([n,t],this.opts).exec(this.client)}__init243() {this.zrem=(n,...t)=>new Ft([n,...t],this.opts).exec(this.client)}__init244() {this.zremrangebylex=(...n)=>new qt(n,this.opts).exec(this.client)}__init245() {this.zremrangebyrank=(...n)=>new $t(n,this.opts).exec(this.client)}__init246() {this.zremrangebyscore=(...n)=>new Xt(n,this.opts).exec(this.client)}__init247() {this.zrevrank=(n,t)=>new jt([n,t],this.opts).exec(this.client)}__init248() {this.zscan=(...n)=>new Yt(n,this.opts).exec(this.client)}__init249() {this.zscore=(n,t)=>new Wt([n,t],this.opts).exec(this.client)}__init250() {this.zunion=(...n)=>new Vt(n,this.opts).exec(this.client)}__init251() {this.zunionstore=(...n)=>new _t(n,this.opts).exec(this.client)}}, _class2);var cC="v1.24.3";exports.a = ie; exports.b = ue; exports.c = cC; /***/ }), -/***/ 647: +/***/ 534: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({value: true})); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkJIU2S2DZjs = __nccwpck_require__(194);typeof atob>"u"&&(global.atob=function(n){return Buffer.from(n,"base64").toString("utf-8")});var a=class n extends _chunkJIU2S2DZjs.b{constructor(e){if("request"in e){super(e);return}(e.url.startsWith(" ")||e.url.endsWith(" ")||/\r|\n/.test(e.url))&&console.warn("The redis url contains whitespace or newline, which can cause errors!"),(e.token.startsWith(" ")||e.token.endsWith(" ")||/\r|\n/.test(e.token))&&console.warn("The redis token contains whitespace or newline, which can cause errors!");let t=new (0, _chunkJIU2S2DZjs.a)({baseUrl:e.url,retry:e.retry,headers:{authorization:`Bearer ${e.token}`},agent:e.agent,responseEncoding:e.responseEncoding,cache:e.cache||"no-store"});super(t,{automaticDeserialization:e.automaticDeserialization,enableTelemetry:!process.env.UPSTASH_DISABLE_TELEMETRY}),this.addTelemetry({runtime:typeof EdgeRuntime=="string"?"edge-light":`node@${process.version}`,platform:process.env.VERCEL?"vercel":process.env.AWS_REGION?"aws":"unknown",sdk:`@upstash/redis@${_chunkJIU2S2DZjs.c}`})}static fromEnv(e){if(typeof _optionalChain([process, 'optionalAccess', _ => _.env])>"u")throw new Error('Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from "@upstash/redis/cloudflare" instead');let t=_optionalChain([process, 'optionalAccess', _2 => _2.env, 'access', _3 => _3.UPSTASH_REDIS_REST_URL]);if(!t)throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_URL`");let s=_optionalChain([process, 'optionalAccess', _4 => _4.env, 'access', _5 => _5.UPSTASH_REDIS_REST_TOKEN]);if(!s)throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`");return new n({...e,url:t,token:s})}};exports.Redis = a; +Object.defineProperty(exports, "__esModule", ({value: true})); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkJIU2S2DZjs = __nccwpck_require__(42);typeof atob>"u"&&(global.atob=function(n){return Buffer.from(n,"base64").toString("utf-8")});var a=class n extends _chunkJIU2S2DZjs.b{constructor(e){if("request"in e){super(e);return}(e.url.startsWith(" ")||e.url.endsWith(" ")||/\r|\n/.test(e.url))&&console.warn("The redis url contains whitespace or newline, which can cause errors!"),(e.token.startsWith(" ")||e.token.endsWith(" ")||/\r|\n/.test(e.token))&&console.warn("The redis token contains whitespace or newline, which can cause errors!");let t=new (0, _chunkJIU2S2DZjs.a)({baseUrl:e.url,retry:e.retry,headers:{authorization:`Bearer ${e.token}`},agent:e.agent,responseEncoding:e.responseEncoding,cache:e.cache||"no-store"});super(t,{automaticDeserialization:e.automaticDeserialization,enableTelemetry:!process.env.UPSTASH_DISABLE_TELEMETRY}),this.addTelemetry({runtime:typeof EdgeRuntime=="string"?"edge-light":`node@${process.version}`,platform:process.env.VERCEL?"vercel":process.env.AWS_REGION?"aws":"unknown",sdk:`@upstash/redis@${_chunkJIU2S2DZjs.c}`})}static fromEnv(e){if(typeof _optionalChain([process, 'optionalAccess', _ => _.env])>"u")throw new Error('Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from "@upstash/redis/cloudflare" instead');let t=_optionalChain([process, 'optionalAccess', _2 => _2.env, 'access', _3 => _3.UPSTASH_REDIS_REST_URL]);if(!t)throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_URL`");let s=_optionalChain([process, 'optionalAccess', _4 => _4.env, 'access', _5 => _5.UPSTASH_REDIS_REST_TOKEN]);if(!s)throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`");return new n({...e,url:t,token:s})}};exports.Redis = a; /***/ }), -/***/ 425: +/***/ 786: /***/ (function(module, exports, __nccwpck_require__) { ;(function (root, factory) { @@ -825,13 +825,13 @@ Object.defineProperty(exports, "__esModule", ({value: true})); function _optiona /***/ }), -/***/ 934: +/***/ 680: /***/ (function(module, exports, __nccwpck_require__) { ;(function (root, factory) { if (true) { // CommonJS - module.exports = exports = factory(__nccwpck_require__(425)); + module.exports = exports = factory(__nccwpck_require__(786)); } else {} }(this, function (CryptoJS) { @@ -842,13 +842,13 @@ Object.defineProperty(exports, "__esModule", ({value: true})); function _optiona /***/ }), -/***/ 156: +/***/ 595: /***/ (function(module, exports, __nccwpck_require__) { ;(function (root, factory) { if (true) { // CommonJS - module.exports = exports = factory(__nccwpck_require__(425)); + module.exports = exports = factory(__nccwpck_require__(786)); } else {} }(this, function (CryptoJS) { @@ -1015,12 +1015,12 @@ module.exports = require("path"); /***/ }), -/***/ 709: +/***/ 381: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({value: true}));// src/index.ts -var _redis = __nccwpck_require__(647); +var _redis = __nccwpck_require__(534); var _kv = null; process.env.UPSTASH_DISABLE_TELEMETRY = "1"; var VercelKV = class extends _redis.Redis { @@ -1179,24 +1179,95 @@ var __webpack_exports__ = {}; const fs = __nccwpck_require__(292) const path = __nccwpck_require__(17) -const { createClient } = __nccwpck_require__(709) +const { createClient } = __nccwpck_require__(381) -async function main() { - try { - const file = path.join(process.cwd(), 'test/turbopack-tests-manifest.json') +async function collectExamplesResult(manifestFile) { + const file = path.join(process.cwd(), manifestFile) + const contents = await fs.readFile(file, 'utf-8') + const results = JSON.parse(contents) + + let failingCount = 0 + let passingCount = 0 + + const currentDate = new Date() + const isoString = currentDate.toISOString() + const timestamp = isoString.slice(0, 19).replace('T', ' ') + + for (const isPassing of Object.values(results)) { + if (isPassing) { + passingCount += 1 + } else { + failingCount += 1 + } + } + const status = `${process.env.GITHUB_SHA}\t${timestamp}\t${passingCount}/${ + passingCount + failingCount + }` + + return { + status, + // Uses JSON.stringify to create minified JSON, otherwise whitespace is preserved. + data: JSON.stringify(results), + } +} + +async function collectResults(manifestFile) { + const file = path.join(process.cwd(), manifestFile) + const contents = await fs.readFile(file, 'utf-8') + const results = JSON.parse(contents) + + let passingTests = '' + let failingTests = '' + let passCount = 0 + let failCount = 0 + + const currentDate = new Date() + const isoString = currentDate.toISOString() + const timestamp = isoString.slice(0, 19).replace('T', ' ') + + if (results.version === 2) { + for (const [testFileName, result] of Object.entries(results.suites)) { + let suitePassCount = 0 + let suiteFailCount = 0 + + suitePassCount += result.passed.length + suiteFailCount += result.failed.length + + if (suitePassCount > 0) { + passingTests += `${testFileName}\n` + } + + if (suiteFailCount > 0) { + failingTests += `${testFileName}\n` + } + + for (const passed of result.passed) { + const passedName = passed.replaceAll('`', '\\`') + passingTests += `* ${passedName}\n` + } - let passingTests = '' - let failingTests = '' - let passCount = 0 - let failCount = 0 + for (const passed of result.failed) { + const failedName = passed.replaceAll('`', '\\`') + failingTests += `* ${failedName}\n` + } - const contents = await fs.readFile(file, 'utf-8') - const results = JSON.parse(contents) + passCount += suitePassCount + failCount += suiteFailCount + + if (suitePassCount > 0) { + passingTests += `\n` + } - const currentDate = new Date() - const isoString = currentDate.toISOString() - const timestamp = isoString.slice(0, 19).replace('T', ' ') + if (suiteFailCount > 0) { + failingTests += `\n` + } + } + const testRun = `${process.env.GITHUB_SHA}\t${timestamp}\t${passCount}/${ + passCount + failCount + }` + return { testRun, passingTests, failingTests } + } else { for (const [testFileName, result] of Object.entries(results)) { let suitePassCount = 0 let suiteFailCount = 0 @@ -1233,27 +1304,55 @@ async function main() { failingTests += `\n` } } + const testRun = `${process.env.GITHUB_SHA}\t${timestamp}\t${passCount}/${ + passCount + failCount + }` + + return { testRun, passingTests, failingTests } + } +} + +async function main() { + try { + const developmentResult = await collectResults( + 'test/turbopack-dev-tests-manifest.json' + ) + const productionResult = await collectResults( + 'test/turbopack-build-tests-manifest.json' + ) + const developmentExamplesResult = await collectExamplesResult( + 'test/turbopack-dev-examples-manifest.json' + ) const kv = createClient({ url: process.env.TURBOYET_KV_REST_API_URL, token: process.env.TURBOYET_KV_REST_API_TOKEN, }) - const testRun = `${process.env.GITHUB_SHA}\t${timestamp}\t${passCount}/${ - passCount + failCount - }` + console.log('TEST RESULT DEVELOPMENT') + console.log(developmentResult.testRun) + + console.log('TEST RESULT PRODUCTION') + console.log(productionResult.testRun) - console.log('TEST RESULT') - console.log(testRun) + console.log('EXAMPLES RESULT') + console.log(developmentExamplesResult.status) - await kv.rpush('test-runs', testRun) + await kv.rpush('test-runs', developmentResult.testRun) + await kv.rpush('test-runs-production', productionResult.testRun) + await kv.rpush('examples-runs', developmentExamplesResult.status) console.log('SUCCESSFULLY SAVED RUNS') - await kv.set('passing-tests', passingTests) + await kv.set('passing-tests', developmentResult.passingTests) + await kv.set('passing-tests-production', productionResult.passingTests) console.log('SUCCESSFULLY SAVED PASSING') - await kv.set('failing-tests', failingTests) + await kv.set('failing-tests', developmentResult.failingTests) + await kv.set('failing-tests-production', productionResult.failingTests) console.log('SUCCESSFULLY SAVED FAILING') + + await kv.set('examples-data', developmentExamplesResult.data) + console.log('SUCCESSFULLY SAVED EXAMPLES') } catch (error) { console.log(error) } diff --git a/.github/actions/upload-turboyet-data/dist/index.js.map b/.github/actions/upload-turboyet-data/dist/index.js.map index 504e0786b8bd8..114278d59821a 100644 --- a/.github/actions/upload-turboyet-data/dist/index.js.map +++ b/.github/actions/upload-turboyet-data/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtyBA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["../webpack://upload-turboyet-data-action/./node_modules/@upstash/redis/chunk-JIU2S2DZ.js","../webpack://upload-turboyet-data-action/./node_modules/@upstash/redis/nodejs.js","../webpack://upload-turboyet-data-action/./node_modules/crypto-js/core.js","../webpack://upload-turboyet-data-action/./node_modules/crypto-js/enc-hex.js","../webpack://upload-turboyet-data-action/./node_modules/crypto-js/sha1.js","../webpack://upload-turboyet-data-action/external node-commonjs \"crypto\"","../webpack://upload-turboyet-data-action/external node-commonjs \"fs/promises\"","../webpack://upload-turboyet-data-action/external node-commonjs \"path\"","../webpack://upload-turboyet-data-action/./node_modules/@vercel/kv/dist/index.cjs","../webpack://upload-turboyet-data-action/webpack/bootstrap","../webpack://upload-turboyet-data-action/webpack/runtime/compat","../webpack://upload-turboyet-data-action/./src/main.js"],"sourcesContent":["\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2;var c=class extends Error{constructor(n){super(n),this.name=\"UpstashError\"}};var ie=class{constructor(n){this.options={backend:_optionalChain([n, 'access', _2 => _2.options, 'optionalAccess', _3 => _3.backend]),agent:n.agent,responseEncoding:_nullishCoalesce(n.responseEncoding, () => (\"base64\")),cache:n.cache},this.baseUrl=n.baseUrl.replace(/\\/$/,\"\"),this.headers={\"Content-Type\":\"application/json\",...n.headers},this.options.responseEncoding===\"base64\"&&(this.headers[\"Upstash-Encoding\"]=\"base64\"),typeof _optionalChain([n, 'optionalAccess', _4 => _4.retry])==\"boolean\"&&_optionalChain([n, 'optionalAccess', _5 => _5.retry])===!1?this.retry={attempts:1,backoff:()=>0}:this.retry={attempts:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _6 => _6.retry, 'optionalAccess', _7 => _7.retries]), () => (5)),backoff:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _8 => _8.retry, 'optionalAccess', _9 => _9.backoff]), () => ((t=>Math.exp(t)*50)))}}mergeTelemetry(n){function t(o,m,r){return r&&(o[m]?o[m]=[o[m],r].join(\",\"):o[m]=r),o}this.headers=t(this.headers,\"Upstash-Telemetry-Runtime\",n.runtime),this.headers=t(this.headers,\"Upstash-Telemetry-Platform\",n.platform),this.headers=t(this.headers,\"Upstash-Telemetry-Sdk\",n.sdk)}async request(n){let t={cache:this.options.cache,method:\"POST\",headers:this.headers,body:JSON.stringify(n.body),keepalive:!0,agent:_optionalChain([this, 'access', _10 => _10.options, 'optionalAccess', _11 => _11.agent]),backend:_optionalChain([this, 'access', _12 => _12.options, 'optionalAccess', _13 => _13.backend])},o=null,m=null;for(let a=0;a<=this.retry.attempts;a++)try{o=await fetch([this.baseUrl,..._nullishCoalesce(n.path, () => ([]))].join(\"/\"),t);break}catch(i){m=i,await new Promise(p=>setTimeout(p,this.retry.backoff(a)))}if(!o)throw _nullishCoalesce(m, () => (new Error(\"Exhausted all retries\")));let r=await o.json();if(!o.ok)throw new c(`${r.error}, command was: ${JSON.stringify(n.body)}`);return _optionalChain([this, 'access', _14 => _14.options, 'optionalAccess', _15 => _15.responseEncoding])===\"base64\"?Array.isArray(r)?r.map(({result:i,error:p})=>({result:re(i),error:p})):{result:re(r.result),error:r.error}:r}};function pe(s){let n=\"\";try{let t=atob(s),o=t.length,m=new Uint8Array(o);for(let r=0;rtypeof t==\"string\"?pe(t):Array.isArray(t)?t.map(re):t):n=null;break}case\"string\":{n=s===\"OK\"?\"OK\":pe(s);break}default:break}return n}function de(s){let n=Array.isArray(s)?s.map(t=>{try{return de(t)}catch (e3){return t}}):JSON.parse(s);return typeof n==\"number\"&&n.toString()!==s?s:n}function ce(s){try{return de(s)}catch (e4){return s}}var he=s=>{switch(typeof s){case\"string\":case\"number\":case\"boolean\":return s;default:return JSON.stringify(s)}},e=class{constructor(n,t){this.serialize=he,this.deserialize=typeof _optionalChain([t, 'optionalAccess', _16 => _16.automaticDeserialization])>\"u\"||t.automaticDeserialization?_nullishCoalesce(_optionalChain([t, 'optionalAccess', _17 => _17.deserialize]), () => (ce)):o=>o,this.command=n.map(o=>this.serialize(o))}async exec(n){let{result:t,error:o}=await n.request({body:this.command});if(o)throw new c(o);if(typeof t>\"u\")throw new Error(\"Request did not return a result\");return this.deserialize(t)}};var C=class extends e{constructor(n,t){super([\"append\",...n],t)}};var l=class extends e{constructor([n,t,o],m){let r=[\"bitcount\",n];typeof t==\"number\"&&r.push(t),typeof o==\"number\"&&r.push(o),super(r,m)}};var g=class extends e{constructor(n,t){super([\"bitop\",...n],t)}};var x=class extends e{constructor(n,t){super([\"bitpos\",...n],t)}};var f=class extends e{constructor([n,t,o],m){super([\"COPY\",n,t,..._optionalChain([o, 'optionalAccess', _18 => _18.replace])?[\"REPLACE\"]:[]],{...m,deserialize(r){return r>0?\"COPIED\":\"NOT_COPIED\"}})}};var y=class extends e{constructor(n){super([\"dbsize\"],n)}};var b=class extends e{constructor(n,t){super([\"decr\",...n],t)}};var O=class extends e{constructor(n,t){super([\"decrby\",...n],t)}};var T=class extends e{constructor(n,t){super([\"del\",...n],t)}};var w=class extends e{constructor(n,t){super([\"echo\",...n],t)}};var D=class extends e{constructor([n,t,o],m){super([\"eval\",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var k=class extends e{constructor([n,t,o],m){super([\"evalsha\",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var A=class extends e{constructor(n,t){super([\"exists\",...n],t)}};var S=class extends e{constructor(n,t){super([\"expire\",...n],t)}};var R=class extends e{constructor(n,t){super([\"expireat\",...n],t)}};var M=class extends e{constructor(n,t){let o=[\"flushall\"];n&&n.length>0&&n[0].async&&o.push(\"async\"),super(o,t)}};var v=class extends e{constructor([n],t){let o=[\"flushdb\"];_optionalChain([n, 'optionalAccess', _19 => _19.async])&&o.push(\"async\"),super(o,t)}};var E=class extends e{constructor([n,t,...o],m){let r=[\"geoadd\",n];\"nx\"in t&&t.nx?r.push(\"nx\"):\"xx\"in t&&t.xx&&r.push(\"xx\"),\"ch\"in t&&t.ch&&r.push(\"ch\"),\"latitude\"in t&&t.latitude&&r.push(t.longitude,t.latitude,t.member),r.push(...o.flatMap(({latitude:a,longitude:i,member:p})=>[i,a,p])),super(r,m)}};var z=class extends e{constructor([n,t,o,m=\"M\"],r){super([\"GEODIST\",n,t,o,m],r)}};var J=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super([\"GEOPOS\",o,...m],{deserialize:r=>Ce(r),...t})}};function Ce(s){let n=[];for(let t of s)!_optionalChain([t, 'optionalAccess', _20 => _20[0]])||!_optionalChain([t, 'optionalAccess', _21 => _21[1]])||n.push({lng:parseFloat(t[0]),lat:parseFloat(t[1])});return n}var P=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super([\"GEOHASH\",o,...m],t)}};var I=class extends e{constructor([n,t,o,m,r],a){let i=[\"GEOSEARCH\",n];(t.type===\"FROMMEMBER\"||t.type===\"frommember\")&&i.push(t.type,t.member),(t.type===\"FROMLONLAT\"||t.type===\"fromlonlat\")&&i.push(t.type,t.coordinate.lon,t.coordinate.lat),(o.type===\"BYRADIUS\"||o.type===\"byradius\")&&i.push(o.type,o.radius,o.radiusType),(o.type===\"BYBOX\"||o.type===\"bybox\")&&i.push(o.type,o.rect.width,o.rect.height,o.rectType),i.push(m),_optionalChain([r, 'optionalAccess', _22 => _22.count])&&i.push(r.count.limit,...r.count.any?[\"ANY\"]:[]);let p=ae=>!_optionalChain([r, 'optionalAccess', _23 => _23.withCoord])&&!_optionalChain([r, 'optionalAccess', _24 => _24.withDist])&&!_optionalChain([r, 'optionalAccess', _25 => _25.withHash])?ae.map(d=>{try{return{member:JSON.parse(d)}}catch (e5){return{member:d}}}):ae.map(d=>{let ee=1,h={};try{h.member=JSON.parse(d[0])}catch (e6){h.member=d[0]}return r.withDist&&(h.dist=parseFloat(d[ee++])),r.withHash&&(h.hash=d[ee++].toString()),r.withCoord&&(h.coord={long:parseFloat(d[ee][0]),lat:parseFloat(d[ee][1])}),h});super([...i,..._optionalChain([r, 'optionalAccess', _26 => _26.withCoord])?[\"WITHCOORD\"]:[],..._optionalChain([r, 'optionalAccess', _27 => _27.withDist])?[\"WITHDIST\"]:[],..._optionalChain([r, 'optionalAccess', _28 => _28.withHash])?[\"WITHHASH\"]:[]],{...a,deserialize:p})}};var K=class extends e{constructor([n,t,o,m,r,a],i){let p=[\"GEOSEARCHSTORE\",n,t];(o.type===\"FROMMEMBER\"||o.type===\"frommember\")&&p.push(o.type,o.member),(o.type===\"FROMLONLAT\"||o.type===\"fromlonlat\")&&p.push(o.type,o.coordinate.lon,o.coordinate.lat),(m.type===\"BYRADIUS\"||m.type===\"byradius\")&&p.push(m.type,m.radius,m.radiusType),(m.type===\"BYBOX\"||m.type===\"bybox\")&&p.push(m.type,m.rect.width,m.rect.height,m.rectType),p.push(r),_optionalChain([a, 'optionalAccess', _29 => _29.count])&&p.push(a.count.limit,...a.count.any?[\"ANY\"]:[]),super([...p,..._optionalChain([a, 'optionalAccess', _30 => _30.storeDist])?[\"STOREDIST\"]:[]],i)}};var L=class extends e{constructor(n,t){super([\"get\",...n],t)}};var Z=class extends e{constructor(n,t){super([\"getbit\",...n],t)}};var N=class extends e{constructor(n,t){super([\"getdel\",...n],t)}};var G=class extends e{constructor(n,t){super([\"getrange\",...n],t)}};var B=class extends e{constructor(n,t){super([\"getset\",...n],t)}};var U=class extends e{constructor(n,t){super([\"hdel\",...n],t)}};var H=class extends e{constructor(n,t){super([\"hexists\",...n],t)}};var F=class extends e{constructor(n,t){super([\"hget\",...n],t)}};function le(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{!Number.isNaN(Number(o))&&!Number.isSafeInteger(o)?n[t]=o:n[t]=JSON.parse(o)}catch (e7){n[t]=o}}return n}var q=class extends e{constructor(n,t){super([\"hgetall\",...n],{deserialize:o=>le(o),...t})}};var $=class extends e{constructor(n,t){super([\"hincrby\",...n],t)}};var X=class extends e{constructor(n,t){super([\"hincrbyfloat\",...n],t)}};var j=class extends e{constructor([n],t){super([\"hkeys\",n],t)}};var Y=class extends e{constructor(n,t){super([\"hlen\",...n],t)}};function ge(s,n){if(n.length===0||n.every(o=>o===null))return null;let t={};for(let o=0;oge(t,m),...o})}};var V=class extends e{constructor([n,t],o){super([\"hmset\",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};function xe(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{n[t]=JSON.parse(o)}catch (e9){n[t]=o}}return n}var _=class extends e{constructor(n,t){let o=[\"hrandfield\",n[0]];typeof n[1]==\"number\"&&o.push(n[1]),n[2]&&o.push(\"WITHVALUES\"),super(o,{deserialize:n[2]?m=>xe(m):_optionalChain([t, 'optionalAccess', _31 => _31.deserialize]),...t})}};var Q=class extends e{constructor([n,t,o],m){let r=[\"hscan\",n,t];_optionalChain([o, 'optionalAccess', _32 => _32.match])&&r.push(\"match\",o.match),typeof _optionalChain([o, 'optionalAccess', _33 => _33.count])==\"number\"&&r.push(\"count\",o.count),super(r,m)}};var nn=class extends e{constructor([n,t],o){super([\"hset\",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};var tn=class extends e{constructor(n,t){super([\"hsetnx\",...n],t)}};var en=class extends e{constructor(n,t){super([\"hstrlen\",...n],t)}};var on=class extends e{constructor(n,t){super([\"hvals\",...n],t)}};var sn=class extends e{constructor(n,t){super([\"incr\",...n],t)}};var mn=class extends e{constructor(n,t){super([\"incrby\",...n],t)}};var rn=class extends e{constructor(n,t){super([\"incrbyfloat\",...n],t)}};var an=class extends e{constructor(n,t){super([\"JSON.ARRAPPEND\",...n],t)}};var pn=class extends e{constructor(n,t){super([\"JSON.ARRINDEX\",...n],t)}};var dn=class extends e{constructor(n,t){super([\"JSON.ARRINSERT\",...n],t)}};var cn=class extends e{constructor(n,t){super([\"JSON.ARRLEN\",n[0],_nullishCoalesce(n[1], () => (\"$\"))],t)}};var un=class extends e{constructor(n,t){super([\"JSON.ARRPOP\",...n],t)}};var hn=class extends e{constructor(n,t){let o=_nullishCoalesce(n[1], () => (\"$\")),m=_nullishCoalesce(n[2], () => (0)),r=_nullishCoalesce(n[3], () => (0));super([\"JSON.ARRTRIM\",n[0],o,m,r],t)}};var Cn=class extends e{constructor(n,t){super([\"JSON.CLEAR\",...n],t)}};var ln=class extends e{constructor(n,t){super([\"JSON.DEL\",...n],t)}};var gn=class extends e{constructor(n,t){super([\"JSON.FORGET\",...n],t)}};var xn=class extends e{constructor(n,t){let o=[\"JSON.GET\"];typeof n[1]==\"string\"?o.push(...n):(o.push(n[0]),n[1]&&(n[1].indent&&o.push(\"INDENT\",n[1].indent),n[1].newline&&o.push(\"NEWLINE\",n[1].newline),n[1].space&&o.push(\"SPACE\",n[1].space)),o.push(...n.slice(2))),super(o,t)}};var fn=class extends e{constructor(n,t){super([\"JSON.MGET\",...n[0],n[1]],t)}};var yn=class extends e{constructor(n,t){super([\"JSON.NUMINCRBY\",...n],t)}};var bn=class extends e{constructor(n,t){super([\"JSON.NUMMULTBY\",...n],t)}};var On=class extends e{constructor(n,t){super([\"JSON.OBJKEYS\",...n],t)}};var Tn=class extends e{constructor(n,t){super([\"JSON.OBJLEN\",...n],t)}};var wn=class extends e{constructor(n,t){super([\"JSON.RESP\",...n],t)}};var Dn=class extends e{constructor(n,t){let o=[\"JSON.SET\",n[0],n[1],n[2]];n[3]&&(n[3].nx?o.push(\"NX\"):n[3].xx&&o.push(\"XX\")),super(o,t)}};var kn=class extends e{constructor(n,t){super([\"JSON.STRAPPEND\",...n],t)}};var An=class extends e{constructor(n,t){super([\"JSON.STRLEN\",...n],t)}};var Sn=class extends e{constructor(n,t){super([\"JSON.TOGGLE\",...n],t)}};var Rn=class extends e{constructor(n,t){super([\"JSON.TYPE\",...n],t)}};var Mn=class extends e{constructor(n,t){super([\"keys\",...n],t)}};var vn=class extends e{constructor(n,t){super([\"lindex\",...n],t)}};var En=class extends e{constructor(n,t){super([\"linsert\",...n],t)}};var zn=class extends e{constructor(n,t){super([\"llen\",...n],t)}};var Jn=class extends e{constructor(n,t){super([\"lmove\",...n],t)}};var Pn=class extends e{constructor(n,t){super([\"lpop\",...n],t)}};var In=class extends e{constructor(n,t){let o=[\"lpos\",n[0],n[1]];typeof _optionalChain([n, 'access', _34 => _34[2], 'optionalAccess', _35 => _35.rank])==\"number\"&&o.push(\"rank\",n[2].rank),typeof _optionalChain([n, 'access', _36 => _36[2], 'optionalAccess', _37 => _37.count])==\"number\"&&o.push(\"count\",n[2].count),typeof _optionalChain([n, 'access', _38 => _38[2], 'optionalAccess', _39 => _39.maxLen])==\"number\"&&o.push(\"maxLen\",n[2].maxLen),super(o,t)}};var Kn=class extends e{constructor(n,t){super([\"lpush\",...n],t)}};var Ln=class extends e{constructor(n,t){super([\"lpushx\",...n],t)}};var Zn=class extends e{constructor(n,t){super([\"lrange\",...n],t)}};var Nn=class extends e{constructor(n,t){super([\"lrem\",...n],t)}};var Gn=class extends e{constructor(n,t){super([\"lset\",...n],t)}};var Bn=class extends e{constructor(n,t){super([\"ltrim\",...n],t)}};var Un=class extends e{constructor(n,t){let o=Array.isArray(n[0])?n[0]:n;super([\"mget\",...o],t)}};var Hn=class extends e{constructor([n],t){super([\"mset\",...Object.entries(n).flatMap(([o,m])=>[o,m])],t)}};var Fn=class extends e{constructor([n],t){super([\"msetnx\",...Object.entries(n).flatMap(o=>o)],t)}};var qn=class extends e{constructor(n,t){super([\"persist\",...n],t)}};var $n=class extends e{constructor(n,t){super([\"pexpire\",...n],t)}};var Xn=class extends e{constructor(n,t){super([\"pexpireat\",...n],t)}};var jn=class extends e{constructor(n,t){let o=[\"ping\"];typeof n<\"u\"&&typeof n[0]<\"u\"&&o.push(n[0]),super(o,t)}};var Yn=class extends e{constructor(n,t){super([\"psetex\",...n],t)}};var Wn=class extends e{constructor(n,t){super([\"pttl\",...n],t)}};var Vn=class extends e{constructor(n,t){super([\"publish\",...n],t)}};var _n=class extends e{constructor(n){super([\"randomkey\"],n)}};var Qn=class extends e{constructor(n,t){super([\"rename\",...n],t)}};var nt=class extends e{constructor(n,t){super([\"renamenx\",...n],t)}};var tt=class extends e{constructor(n,t){super([\"rpop\",...n],t)}};var et=class extends e{constructor(n,t){super([\"rpush\",...n],t)}};var ot=class extends e{constructor(n,t){super([\"rpushx\",...n],t)}};var st=class extends e{constructor(n,t){super([\"sadd\",...n],t)}};var mt=class extends e{constructor([n,t],o){let m=[\"scan\",n];_optionalChain([t, 'optionalAccess', _40 => _40.match])&&m.push(\"match\",t.match),typeof _optionalChain([t, 'optionalAccess', _41 => _41.count])==\"number\"&&m.push(\"count\",t.count),_optionalChain([t, 'optionalAccess', _42 => _42.type])&&t.type.length>0&&m.push(\"type\",t.type),super(m,o)}};var rt=class extends e{constructor(n,t){super([\"scard\",...n],t)}};var at=class extends e{constructor(n,t){super([\"script\",\"exists\",...n],{deserialize:o=>o,...t})}};var it=class extends e{constructor([n],t){let o=[\"script\",\"flush\"];_optionalChain([n, 'optionalAccess', _43 => _43.sync])?o.push(\"sync\"):_optionalChain([n, 'optionalAccess', _44 => _44.async])&&o.push(\"async\"),super(o,t)}};var pt=class extends e{constructor(n,t){super([\"script\",\"load\",...n],t)}};var dt=class extends e{constructor(n,t){super([\"sdiff\",...n],t)}};var ct=class extends e{constructor(n,t){super([\"sdiffstore\",...n],t)}};var ut=class extends e{constructor([n,t,o],m){let r=[\"set\",n,t];o&&(\"nx\"in o&&o.nx?r.push(\"nx\"):\"xx\"in o&&o.xx&&r.push(\"xx\"),\"get\"in o&&o.get&&r.push(\"get\"),\"ex\"in o&&typeof o.ex==\"number\"?r.push(\"ex\",o.ex):\"px\"in o&&typeof o.px==\"number\"?r.push(\"px\",o.px):\"exat\"in o&&typeof o.exat==\"number\"?r.push(\"exat\",o.exat):\"pxat\"in o&&typeof o.pxat==\"number\"?r.push(\"pxat\",o.pxat):\"keepTtl\"in o&&o.keepTtl&&r.push(\"keepTtl\")),super(r,m)}};var ht=class extends e{constructor(n,t){super([\"setbit\",...n],t)}};var Ct=class extends e{constructor(n,t){super([\"setex\",...n],t)}};var lt=class extends e{constructor(n,t){super([\"setnx\",...n],t)}};var gt=class extends e{constructor(n,t){super([\"setrange\",...n],t)}};var xt=class extends e{constructor(n,t){super([\"sinter\",...n],t)}};var ft=class extends e{constructor(n,t){super([\"sinterstore\",...n],t)}};var yt=class extends e{constructor(n,t){super([\"sismember\",...n],t)}};var bt=class extends e{constructor(n,t){super([\"smembers\",...n],t)}};var Ot=class extends e{constructor(n,t){super([\"smismember\",n[0],...n[1]],t)}};var Tt=class extends e{constructor(n,t){super([\"smove\",...n],t)}};var wt=class extends e{constructor([n,t],o){let m=[\"spop\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var Dt=class extends e{constructor([n,t],o){let m=[\"srandmember\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var kt=class extends e{constructor(n,t){super([\"srem\",...n],t)}};var At=class extends e{constructor([n,t,o],m){let r=[\"sscan\",n,t];_optionalChain([o, 'optionalAccess', _45 => _45.match])&&r.push(\"match\",o.match),typeof _optionalChain([o, 'optionalAccess', _46 => _46.count])==\"number\"&&r.push(\"count\",o.count),super(r,m)}};var St=class extends e{constructor(n,t){super([\"strlen\",...n],t)}};var Rt=class extends e{constructor(n,t){super([\"sunion\",...n],t)}};var Mt=class extends e{constructor(n,t){super([\"sunionstore\",...n],t)}};var vt=class extends e{constructor(n){super([\"time\"],n)}};var Et=class extends e{constructor(n,t){super([\"touch\",...n],t)}};var zt=class extends e{constructor(n,t){super([\"ttl\",...n],t)}};var Jt=class extends e{constructor(n,t){super([\"type\",...n],t)}};var Pt=class extends e{constructor(n,t){super([\"unlink\",...n],t)}};var oe=class extends e{constructor([n,t,o,m],r){let a=[\"XADD\",n];m&&(m.nomkStream&&a.push(\"NOMKSTREAM\"),m.trim&&(a.push(m.trim.type,m.trim.comparison,m.trim.threshold),typeof m.trim.limit<\"u\"&&a.push(\"LIMIT\",m.trim.limit))),a.push(t);for(let[i,p]of Object.entries(o))a.push(i,p);super(a,r)}};function fe(s){let n={};for(let t of s)for(;t.length>=2;){let o=t.shift(),m=t.shift();for((o in n)||(n[o]={});m.length>=2;){let r=m.shift(),a=m.shift();try{n[o][r]=JSON.parse(a)}catch (e10){n[o][r]=a}}}return n}var se=class extends e{constructor([n,t,o,m],r){let a=[\"XRANGE\",n,t,o];typeof m==\"number\"&&a.push(\"COUNT\",m),super(a,{deserialize:i=>fe(i),...r})}};var u=class extends e{constructor([n,t,...o],m){let r=[\"zadd\",n];\"nx\"in t&&t.nx?r.push(\"nx\"):\"xx\"in t&&t.xx&&r.push(\"xx\"),\"ch\"in t&&t.ch&&r.push(\"ch\"),\"incr\"in t&&t.incr&&r.push(\"incr\"),\"score\"in t&&\"member\"in t&&r.push(t.score,t.member),r.push(...o.flatMap(({score:a,member:i})=>[a,i])),super(r,m)}};var It=class extends e{constructor(n,t){super([\"zcard\",...n],t)}};var Kt=class extends e{constructor(n,t){super([\"zcount\",...n],t)}};var Lt=class extends e{constructor(n,t){super([\"zincrby\",...n],t)}};var Zt=class extends e{constructor([n,t,o,m],r){let a=[\"zinterstore\",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&(\"weights\"in m&&m.weights?a.push(\"weights\",...m.weights):\"weight\"in m&&typeof m.weight==\"number\"&&a.push(\"weights\",m.weight),\"aggregate\"in m&&a.push(\"aggregate\",m.aggregate)),super(a,r)}};var Nt=class extends e{constructor(n,t){super([\"zlexcount\",...n],t)}};var Gt=class extends e{constructor([n,t],o){let m=[\"zpopmax\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var Bt=class extends e{constructor([n,t],o){let m=[\"zpopmin\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var Ut=class extends e{constructor([n,t,o,m],r){let a=[\"zrange\",n,t,o];_optionalChain([m, 'optionalAccess', _47 => _47.byScore])&&a.push(\"byscore\"),_optionalChain([m, 'optionalAccess', _48 => _48.byLex])&&a.push(\"bylex\"),_optionalChain([m, 'optionalAccess', _49 => _49.rev])&&a.push(\"rev\"),typeof _optionalChain([m, 'optionalAccess', _50 => _50.count])<\"u\"&&typeof _optionalChain([m, 'optionalAccess', _51 => _51.offset])<\"u\"&&a.push(\"limit\",m.offset,m.count),_optionalChain([m, 'optionalAccess', _52 => _52.withScores])&&a.push(\"withscores\"),super(a,r)}};var Ht=class extends e{constructor(n,t){super([\"zrank\",...n],t)}};var Ft=class extends e{constructor(n,t){super([\"zrem\",...n],t)}};var qt=class extends e{constructor(n,t){super([\"zremrangebylex\",...n],t)}};var $t=class extends e{constructor(n,t){super([\"zremrangebyrank\",...n],t)}};var Xt=class extends e{constructor(n,t){super([\"zremrangebyscore\",...n],t)}};var jt=class extends e{constructor(n,t){super([\"zrevrank\",...n],t)}};var Yt=class extends e{constructor([n,t,o],m){let r=[\"zscan\",n,t];_optionalChain([o, 'optionalAccess', _53 => _53.match])&&r.push(\"match\",o.match),typeof _optionalChain([o, 'optionalAccess', _54 => _54.count])==\"number\"&&r.push(\"count\",o.count),super(r,m)}};var Wt=class extends e{constructor(n,t){super([\"zscore\",...n],t)}};var Vt=class extends e{constructor([n,t,o],m){let r=[\"zunion\",n];Array.isArray(t)?r.push(...t):r.push(t),o&&(\"weights\"in o&&o.weights?r.push(\"weights\",...o.weights):\"weight\"in o&&typeof o.weight==\"number\"&&r.push(\"weights\",o.weight),\"aggregate\"in o&&r.push(\"aggregate\",o.aggregate),_optionalChain([o, 'optionalAccess', _55 => _55.withScores])&&r.push(\"withscores\")),super(r,m)}};var _t=class extends e{constructor([n,t,o,m],r){let a=[\"zunionstore\",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&(\"weights\"in m&&m.weights?a.push(\"weights\",...m.weights):\"weight\"in m&&typeof m.weight==\"number\"&&a.push(\"weights\",m.weight),\"aggregate\"in m&&a.push(\"aggregate\",m.aggregate)),super(a,r)}};var Qt=class extends e{constructor(n,t){super([\"zdiffstore\",...n],t)}};var ne=class extends e{constructor(n,t){let[o,m]=n;super([\"zmscore\",o,...m],t)}};var te= (_class =class{constructor(n){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);_class.prototype.__init11.call(this);_class.prototype.__init12.call(this);_class.prototype.__init13.call(this);_class.prototype.__init14.call(this);_class.prototype.__init15.call(this);_class.prototype.__init16.call(this);_class.prototype.__init17.call(this);_class.prototype.__init18.call(this);_class.prototype.__init19.call(this);_class.prototype.__init20.call(this);_class.prototype.__init21.call(this);_class.prototype.__init22.call(this);_class.prototype.__init23.call(this);_class.prototype.__init24.call(this);_class.prototype.__init25.call(this);_class.prototype.__init26.call(this);_class.prototype.__init27.call(this);_class.prototype.__init28.call(this);_class.prototype.__init29.call(this);_class.prototype.__init30.call(this);_class.prototype.__init31.call(this);_class.prototype.__init32.call(this);_class.prototype.__init33.call(this);_class.prototype.__init34.call(this);_class.prototype.__init35.call(this);_class.prototype.__init36.call(this);_class.prototype.__init37.call(this);_class.prototype.__init38.call(this);_class.prototype.__init39.call(this);_class.prototype.__init40.call(this);_class.prototype.__init41.call(this);_class.prototype.__init42.call(this);_class.prototype.__init43.call(this);_class.prototype.__init44.call(this);_class.prototype.__init45.call(this);_class.prototype.__init46.call(this);_class.prototype.__init47.call(this);_class.prototype.__init48.call(this);_class.prototype.__init49.call(this);_class.prototype.__init50.call(this);_class.prototype.__init51.call(this);_class.prototype.__init52.call(this);_class.prototype.__init53.call(this);_class.prototype.__init54.call(this);_class.prototype.__init55.call(this);_class.prototype.__init56.call(this);_class.prototype.__init57.call(this);_class.prototype.__init58.call(this);_class.prototype.__init59.call(this);_class.prototype.__init60.call(this);_class.prototype.__init61.call(this);_class.prototype.__init62.call(this);_class.prototype.__init63.call(this);_class.prototype.__init64.call(this);_class.prototype.__init65.call(this);_class.prototype.__init66.call(this);_class.prototype.__init67.call(this);_class.prototype.__init68.call(this);_class.prototype.__init69.call(this);_class.prototype.__init70.call(this);_class.prototype.__init71.call(this);_class.prototype.__init72.call(this);_class.prototype.__init73.call(this);_class.prototype.__init74.call(this);_class.prototype.__init75.call(this);_class.prototype.__init76.call(this);_class.prototype.__init77.call(this);_class.prototype.__init78.call(this);_class.prototype.__init79.call(this);_class.prototype.__init80.call(this);_class.prototype.__init81.call(this);_class.prototype.__init82.call(this);_class.prototype.__init83.call(this);_class.prototype.__init84.call(this);_class.prototype.__init85.call(this);_class.prototype.__init86.call(this);_class.prototype.__init87.call(this);_class.prototype.__init88.call(this);_class.prototype.__init89.call(this);_class.prototype.__init90.call(this);_class.prototype.__init91.call(this);_class.prototype.__init92.call(this);_class.prototype.__init93.call(this);_class.prototype.__init94.call(this);_class.prototype.__init95.call(this);_class.prototype.__init96.call(this);_class.prototype.__init97.call(this);_class.prototype.__init98.call(this);_class.prototype.__init99.call(this);_class.prototype.__init100.call(this);_class.prototype.__init101.call(this);_class.prototype.__init102.call(this);_class.prototype.__init103.call(this);_class.prototype.__init104.call(this);_class.prototype.__init105.call(this);_class.prototype.__init106.call(this);_class.prototype.__init107.call(this);_class.prototype.__init108.call(this);_class.prototype.__init109.call(this);_class.prototype.__init110.call(this);_class.prototype.__init111.call(this);_class.prototype.__init112.call(this);_class.prototype.__init113.call(this);_class.prototype.__init114.call(this);_class.prototype.__init115.call(this);_class.prototype.__init116.call(this);_class.prototype.__init117.call(this);_class.prototype.__init118.call(this);_class.prototype.__init119.call(this);_class.prototype.__init120.call(this);_class.prototype.__init121.call(this);_class.prototype.__init122.call(this);_class.prototype.__init123.call(this);this.client=n.client,this.commands=[],this.commandOptions=n.commandOptions,this.multiExec=_nullishCoalesce(n.multiExec, () => (!1))}__init() {this.exec=async()=>{if(this.commands.length===0)throw new Error(\"Pipeline is empty\");let n=this.multiExec?[\"multi-exec\"]:[\"pipeline\"];return(await this.client.request({path:n,body:Object.values(this.commands).map(o=>o.command)})).map(({error:o,result:m},r)=>{if(o)throw new c(`Command ${r+1} [ ${this.commands[r].command[0]} ] failed: ${o}`);return this.commands[r].deserialize(m)})}}length(){return this.commands.length}chain(n){return this.commands.push(n),this}__init2() {this.append=(...n)=>this.chain(new C(n,this.commandOptions))}__init3() {this.bitcount=(...n)=>this.chain(new l(n,this.commandOptions))}__init4() {this.bitop=(n,t,o,...m)=>this.chain(new g([n,t,o,...m],this.commandOptions))}__init5() {this.bitpos=(...n)=>this.chain(new x(n,this.commandOptions))}__init6() {this.copy=(...n)=>this.chain(new f(n,this.commandOptions))}__init7() {this.zdiffstore=(...n)=>this.chain(new Qt(n,this.commandOptions))}__init8() {this.dbsize=()=>this.chain(new y(this.commandOptions))}__init9() {this.decr=(...n)=>this.chain(new b(n,this.commandOptions))}__init10() {this.decrby=(...n)=>this.chain(new O(n,this.commandOptions))}__init11() {this.del=(...n)=>this.chain(new T(n,this.commandOptions))}__init12() {this.echo=(...n)=>this.chain(new w(n,this.commandOptions))}__init13() {this.eval=(...n)=>this.chain(new D(n,this.commandOptions))}__init14() {this.evalsha=(...n)=>this.chain(new k(n,this.commandOptions))}__init15() {this.exists=(...n)=>this.chain(new A(n,this.commandOptions))}__init16() {this.expire=(...n)=>this.chain(new S(n,this.commandOptions))}__init17() {this.expireat=(...n)=>this.chain(new R(n,this.commandOptions))}__init18() {this.flushall=n=>this.chain(new M(n,this.commandOptions))}__init19() {this.flushdb=(...n)=>this.chain(new v(n,this.commandOptions))}__init20() {this.get=(...n)=>this.chain(new L(n,this.commandOptions))}__init21() {this.getbit=(...n)=>this.chain(new Z(n,this.commandOptions))}__init22() {this.getdel=(...n)=>this.chain(new N(n,this.commandOptions))}__init23() {this.getrange=(...n)=>this.chain(new G(n,this.commandOptions))}__init24() {this.getset=(n,t)=>this.chain(new B([n,t],this.commandOptions))}__init25() {this.hdel=(...n)=>this.chain(new U(n,this.commandOptions))}__init26() {this.hexists=(...n)=>this.chain(new H(n,this.commandOptions))}__init27() {this.hget=(...n)=>this.chain(new F(n,this.commandOptions))}__init28() {this.hgetall=(...n)=>this.chain(new q(n,this.commandOptions))}__init29() {this.hincrby=(...n)=>this.chain(new $(n,this.commandOptions))}__init30() {this.hincrbyfloat=(...n)=>this.chain(new X(n,this.commandOptions))}__init31() {this.hkeys=(...n)=>this.chain(new j(n,this.commandOptions))}__init32() {this.hlen=(...n)=>this.chain(new Y(n,this.commandOptions))}__init33() {this.hmget=(...n)=>this.chain(new W(n,this.commandOptions))}__init34() {this.hmset=(n,t)=>this.chain(new V([n,t],this.commandOptions))}__init35() {this.hrandfield=(n,t,o)=>this.chain(new _([n,t,o],this.commandOptions))}__init36() {this.hscan=(...n)=>this.chain(new Q(n,this.commandOptions))}__init37() {this.hset=(n,t)=>this.chain(new nn([n,t],this.commandOptions))}__init38() {this.hsetnx=(n,t,o)=>this.chain(new tn([n,t,o],this.commandOptions))}__init39() {this.hstrlen=(...n)=>this.chain(new en(n,this.commandOptions))}__init40() {this.hvals=(...n)=>this.chain(new on(n,this.commandOptions))}__init41() {this.incr=(...n)=>this.chain(new sn(n,this.commandOptions))}__init42() {this.incrby=(...n)=>this.chain(new mn(n,this.commandOptions))}__init43() {this.incrbyfloat=(...n)=>this.chain(new rn(n,this.commandOptions))}__init44() {this.keys=(...n)=>this.chain(new Mn(n,this.commandOptions))}__init45() {this.lindex=(...n)=>this.chain(new vn(n,this.commandOptions))}__init46() {this.linsert=(n,t,o,m)=>this.chain(new En([n,t,o,m],this.commandOptions))}__init47() {this.llen=(...n)=>this.chain(new zn(n,this.commandOptions))}__init48() {this.lmove=(...n)=>this.chain(new Jn(n,this.commandOptions))}__init49() {this.lpop=(...n)=>this.chain(new Pn(n,this.commandOptions))}__init50() {this.lpos=(...n)=>this.chain(new In(n,this.commandOptions))}__init51() {this.lpush=(n,...t)=>this.chain(new Kn([n,...t],this.commandOptions))}__init52() {this.lpushx=(n,...t)=>this.chain(new Ln([n,...t],this.commandOptions))}__init53() {this.lrange=(...n)=>this.chain(new Zn(n,this.commandOptions))}__init54() {this.lrem=(n,t,o)=>this.chain(new Nn([n,t,o],this.commandOptions))}__init55() {this.lset=(n,t,o)=>this.chain(new Gn([n,t,o],this.commandOptions))}__init56() {this.ltrim=(...n)=>this.chain(new Bn(n,this.commandOptions))}__init57() {this.mget=(...n)=>this.chain(new Un(n,this.commandOptions))}__init58() {this.mset=n=>this.chain(new Hn([n],this.commandOptions))}__init59() {this.msetnx=n=>this.chain(new Fn([n],this.commandOptions))}__init60() {this.persist=(...n)=>this.chain(new qn(n,this.commandOptions))}__init61() {this.pexpire=(...n)=>this.chain(new $n(n,this.commandOptions))}__init62() {this.pexpireat=(...n)=>this.chain(new Xn(n,this.commandOptions))}__init63() {this.ping=n=>this.chain(new jn(n,this.commandOptions))}__init64() {this.psetex=(n,t,o)=>this.chain(new Yn([n,t,o],this.commandOptions))}__init65() {this.pttl=(...n)=>this.chain(new Wn(n,this.commandOptions))}__init66() {this.publish=(...n)=>this.chain(new Vn(n,this.commandOptions))}__init67() {this.randomkey=()=>this.chain(new _n(this.commandOptions))}__init68() {this.rename=(...n)=>this.chain(new Qn(n,this.commandOptions))}__init69() {this.renamenx=(...n)=>this.chain(new nt(n,this.commandOptions))}__init70() {this.rpop=(...n)=>this.chain(new tt(n,this.commandOptions))}__init71() {this.rpush=(n,...t)=>this.chain(new et([n,...t],this.commandOptions))}__init72() {this.rpushx=(n,...t)=>this.chain(new ot([n,...t],this.commandOptions))}__init73() {this.sadd=(n,...t)=>this.chain(new st([n,...t],this.commandOptions))}__init74() {this.scan=(...n)=>this.chain(new mt(n,this.commandOptions))}__init75() {this.scard=(...n)=>this.chain(new rt(n,this.commandOptions))}__init76() {this.scriptExists=(...n)=>this.chain(new at(n,this.commandOptions))}__init77() {this.scriptFlush=(...n)=>this.chain(new it(n,this.commandOptions))}__init78() {this.scriptLoad=(...n)=>this.chain(new pt(n,this.commandOptions))}__init79() {this.sdiff=(...n)=>this.chain(new dt(n,this.commandOptions))}__init80() {this.sdiffstore=(...n)=>this.chain(new ct(n,this.commandOptions))}__init81() {this.set=(n,t,o)=>this.chain(new ut([n,t,o],this.commandOptions))}__init82() {this.setbit=(...n)=>this.chain(new ht(n,this.commandOptions))}__init83() {this.setex=(n,t,o)=>this.chain(new Ct([n,t,o],this.commandOptions))}__init84() {this.setnx=(n,t)=>this.chain(new lt([n,t],this.commandOptions))}__init85() {this.setrange=(...n)=>this.chain(new gt(n,this.commandOptions))}__init86() {this.sinter=(...n)=>this.chain(new xt(n,this.commandOptions))}__init87() {this.sinterstore=(...n)=>this.chain(new ft(n,this.commandOptions))}__init88() {this.sismember=(n,t)=>this.chain(new yt([n,t],this.commandOptions))}__init89() {this.smembers=(...n)=>this.chain(new bt(n,this.commandOptions))}__init90() {this.smismember=(n,t)=>this.chain(new Ot([n,t],this.commandOptions))}__init91() {this.smove=(n,t,o)=>this.chain(new Tt([n,t,o],this.commandOptions))}__init92() {this.spop=(...n)=>this.chain(new wt(n,this.commandOptions))}__init93() {this.srandmember=(...n)=>this.chain(new Dt(n,this.commandOptions))}__init94() {this.srem=(n,...t)=>this.chain(new kt([n,...t],this.commandOptions))}__init95() {this.sscan=(...n)=>this.chain(new At(n,this.commandOptions))}__init96() {this.strlen=(...n)=>this.chain(new St(n,this.commandOptions))}__init97() {this.sunion=(...n)=>this.chain(new Rt(n,this.commandOptions))}__init98() {this.sunionstore=(...n)=>this.chain(new Mt(n,this.commandOptions))}__init99() {this.time=()=>this.chain(new vt(this.commandOptions))}__init100() {this.touch=(...n)=>this.chain(new Et(n,this.commandOptions))}__init101() {this.ttl=(...n)=>this.chain(new zt(n,this.commandOptions))}__init102() {this.type=(...n)=>this.chain(new Jt(n,this.commandOptions))}__init103() {this.unlink=(...n)=>this.chain(new Pt(n,this.commandOptions))}__init104() {this.zadd=(...n)=>\"score\"in n[1]?this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions)):this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions))}__init105() {this.zcard=(...n)=>this.chain(new It(n,this.commandOptions))}__init106() {this.zcount=(...n)=>this.chain(new Kt(n,this.commandOptions))}__init107() {this.zincrby=(n,t,o)=>this.chain(new Lt([n,t,o],this.commandOptions))}__init108() {this.zinterstore=(...n)=>this.chain(new Zt(n,this.commandOptions))}__init109() {this.zlexcount=(...n)=>this.chain(new Nt(n,this.commandOptions))}__init110() {this.zmscore=(...n)=>this.chain(new ne(n,this.commandOptions))}__init111() {this.zpopmax=(...n)=>this.chain(new Gt(n,this.commandOptions))}__init112() {this.zpopmin=(...n)=>this.chain(new Bt(n,this.commandOptions))}__init113() {this.zrange=(...n)=>this.chain(new Ut(n,this.commandOptions))}__init114() {this.zrank=(n,t)=>this.chain(new Ht([n,t],this.commandOptions))}__init115() {this.zrem=(n,...t)=>this.chain(new Ft([n,...t],this.commandOptions))}__init116() {this.zremrangebylex=(...n)=>this.chain(new qt(n,this.commandOptions))}__init117() {this.zremrangebyrank=(...n)=>this.chain(new $t(n,this.commandOptions))}__init118() {this.zremrangebyscore=(...n)=>this.chain(new Xt(n,this.commandOptions))}__init119() {this.zrevrank=(n,t)=>this.chain(new jt([n,t],this.commandOptions))}__init120() {this.zscan=(...n)=>this.chain(new Yt(n,this.commandOptions))}__init121() {this.zscore=(n,t)=>this.chain(new Wt([n,t],this.commandOptions))}__init122() {this.zunionstore=(...n)=>this.chain(new _t(n,this.commandOptions))}__init123() {this.zunion=(...n)=>this.chain(new Vt(n,this.commandOptions))}get json(){return{arrappend:(...n)=>this.chain(new an(n,this.commandOptions)),arrindex:(...n)=>this.chain(new pn(n,this.commandOptions)),arrinsert:(...n)=>this.chain(new dn(n,this.commandOptions)),arrlen:(...n)=>this.chain(new cn(n,this.commandOptions)),arrpop:(...n)=>this.chain(new un(n,this.commandOptions)),arrtrim:(...n)=>this.chain(new hn(n,this.commandOptions)),clear:(...n)=>this.chain(new Cn(n,this.commandOptions)),del:(...n)=>this.chain(new ln(n,this.commandOptions)),forget:(...n)=>this.chain(new gn(n,this.commandOptions)),geoadd:(...n)=>this.chain(new E(n,this.commandOptions)),geodist:(...n)=>this.chain(new z(n,this.commandOptions)),geopos:(...n)=>this.chain(new J(n,this.commandOptions)),geohash:(...n)=>this.chain(new P(n,this.commandOptions)),geosearch:(...n)=>this.chain(new I(n,this.commandOptions)),geosearchstore:(...n)=>this.chain(new K(n,this.commandOptions)),get:(...n)=>this.chain(new xn(n,this.commandOptions)),mget:(...n)=>this.chain(new fn(n,this.commandOptions)),numincrby:(...n)=>this.chain(new yn(n,this.commandOptions)),nummultby:(...n)=>this.chain(new bn(n,this.commandOptions)),objkeys:(...n)=>this.chain(new On(n,this.commandOptions)),objlen:(...n)=>this.chain(new Tn(n,this.commandOptions)),resp:(...n)=>this.chain(new wn(n,this.commandOptions)),set:(...n)=>this.chain(new Dn(n,this.commandOptions)),strappend:(...n)=>this.chain(new kn(n,this.commandOptions)),strlen:(...n)=>this.chain(new An(n,this.commandOptions)),toggle:(...n)=>this.chain(new Sn(n,this.commandOptions)),type:(...n)=>this.chain(new Rn(n,this.commandOptions))}}}, _class);var _enchex = require('crypto-js/enc-hex'); var _enchex2 = _interopRequireDefault(_enchex);var _sha1 = require('crypto-js/sha1'); var _sha12 = _interopRequireDefault(_sha1);var me=class{constructor(n,t){this.redis=n,this.sha1=this.digest(t),this.script=t}async eval(n,t){return await this.redis.eval(this.script,n,t)}async evalsha(n,t){return await this.redis.evalsha(this.sha1,n,t)}async exec(n,t){return await this.redis.evalsha(this.sha1,n,t).catch(async m=>{if(m instanceof Error&&m.message.toLowerCase().includes(\"noscript\"))return await this.redis.eval(this.script,n,t);throw m})}digest(n){return _enchex2.default.stringify(_sha12.default.call(void 0, n))}};var ue= (_class2 =class{constructor(n,t){;_class2.prototype.__init124.call(this);_class2.prototype.__init125.call(this);_class2.prototype.__init126.call(this);_class2.prototype.__init127.call(this);_class2.prototype.__init128.call(this);_class2.prototype.__init129.call(this);_class2.prototype.__init130.call(this);_class2.prototype.__init131.call(this);_class2.prototype.__init132.call(this);_class2.prototype.__init133.call(this);_class2.prototype.__init134.call(this);_class2.prototype.__init135.call(this);_class2.prototype.__init136.call(this);_class2.prototype.__init137.call(this);_class2.prototype.__init138.call(this);_class2.prototype.__init139.call(this);_class2.prototype.__init140.call(this);_class2.prototype.__init141.call(this);_class2.prototype.__init142.call(this);_class2.prototype.__init143.call(this);_class2.prototype.__init144.call(this);_class2.prototype.__init145.call(this);_class2.prototype.__init146.call(this);_class2.prototype.__init147.call(this);_class2.prototype.__init148.call(this);_class2.prototype.__init149.call(this);_class2.prototype.__init150.call(this);_class2.prototype.__init151.call(this);_class2.prototype.__init152.call(this);_class2.prototype.__init153.call(this);_class2.prototype.__init154.call(this);_class2.prototype.__init155.call(this);_class2.prototype.__init156.call(this);_class2.prototype.__init157.call(this);_class2.prototype.__init158.call(this);_class2.prototype.__init159.call(this);_class2.prototype.__init160.call(this);_class2.prototype.__init161.call(this);_class2.prototype.__init162.call(this);_class2.prototype.__init163.call(this);_class2.prototype.__init164.call(this);_class2.prototype.__init165.call(this);_class2.prototype.__init166.call(this);_class2.prototype.__init167.call(this);_class2.prototype.__init168.call(this);_class2.prototype.__init169.call(this);_class2.prototype.__init170.call(this);_class2.prototype.__init171.call(this);_class2.prototype.__init172.call(this);_class2.prototype.__init173.call(this);_class2.prototype.__init174.call(this);_class2.prototype.__init175.call(this);_class2.prototype.__init176.call(this);_class2.prototype.__init177.call(this);_class2.prototype.__init178.call(this);_class2.prototype.__init179.call(this);_class2.prototype.__init180.call(this);_class2.prototype.__init181.call(this);_class2.prototype.__init182.call(this);_class2.prototype.__init183.call(this);_class2.prototype.__init184.call(this);_class2.prototype.__init185.call(this);_class2.prototype.__init186.call(this);_class2.prototype.__init187.call(this);_class2.prototype.__init188.call(this);_class2.prototype.__init189.call(this);_class2.prototype.__init190.call(this);_class2.prototype.__init191.call(this);_class2.prototype.__init192.call(this);_class2.prototype.__init193.call(this);_class2.prototype.__init194.call(this);_class2.prototype.__init195.call(this);_class2.prototype.__init196.call(this);_class2.prototype.__init197.call(this);_class2.prototype.__init198.call(this);_class2.prototype.__init199.call(this);_class2.prototype.__init200.call(this);_class2.prototype.__init201.call(this);_class2.prototype.__init202.call(this);_class2.prototype.__init203.call(this);_class2.prototype.__init204.call(this);_class2.prototype.__init205.call(this);_class2.prototype.__init206.call(this);_class2.prototype.__init207.call(this);_class2.prototype.__init208.call(this);_class2.prototype.__init209.call(this);_class2.prototype.__init210.call(this);_class2.prototype.__init211.call(this);_class2.prototype.__init212.call(this);_class2.prototype.__init213.call(this);_class2.prototype.__init214.call(this);_class2.prototype.__init215.call(this);_class2.prototype.__init216.call(this);_class2.prototype.__init217.call(this);_class2.prototype.__init218.call(this);_class2.prototype.__init219.call(this);_class2.prototype.__init220.call(this);_class2.prototype.__init221.call(this);_class2.prototype.__init222.call(this);_class2.prototype.__init223.call(this);_class2.prototype.__init224.call(this);_class2.prototype.__init225.call(this);_class2.prototype.__init226.call(this);_class2.prototype.__init227.call(this);_class2.prototype.__init228.call(this);_class2.prototype.__init229.call(this);_class2.prototype.__init230.call(this);_class2.prototype.__init231.call(this);_class2.prototype.__init232.call(this);_class2.prototype.__init233.call(this);_class2.prototype.__init234.call(this);_class2.prototype.__init235.call(this);_class2.prototype.__init236.call(this);_class2.prototype.__init237.call(this);_class2.prototype.__init238.call(this);_class2.prototype.__init239.call(this);_class2.prototype.__init240.call(this);_class2.prototype.__init241.call(this);_class2.prototype.__init242.call(this);_class2.prototype.__init243.call(this);_class2.prototype.__init244.call(this);_class2.prototype.__init245.call(this);_class2.prototype.__init246.call(this);_class2.prototype.__init247.call(this);_class2.prototype.__init248.call(this);_class2.prototype.__init249.call(this);_class2.prototype.__init250.call(this);_class2.prototype.__init251.call(this);this.client=n,this.opts=t,this.enableTelemetry=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _56 => _56.enableTelemetry]), () => (!0))}get json(){return{arrappend:(...n)=>new an(n,this.opts).exec(this.client),arrindex:(...n)=>new pn(n,this.opts).exec(this.client),arrinsert:(...n)=>new dn(n,this.opts).exec(this.client),arrlen:(...n)=>new cn(n,this.opts).exec(this.client),arrpop:(...n)=>new un(n,this.opts).exec(this.client),arrtrim:(...n)=>new hn(n,this.opts).exec(this.client),clear:(...n)=>new Cn(n,this.opts).exec(this.client),del:(...n)=>new ln(n,this.opts).exec(this.client),forget:(...n)=>new gn(n,this.opts).exec(this.client),geoadd:(...n)=>new E(n,this.opts).exec(this.client),geopos:(...n)=>new J(n,this.opts).exec(this.client),geodist:(...n)=>new z(n,this.opts).exec(this.client),geohash:(...n)=>new P(n,this.opts).exec(this.client),geosearch:(...n)=>new I(n,this.opts).exec(this.client),geosearchstore:(...n)=>new K(n,this.opts).exec(this.client),get:(...n)=>new xn(n,this.opts).exec(this.client),mget:(...n)=>new fn(n,this.opts).exec(this.client),numincrby:(...n)=>new yn(n,this.opts).exec(this.client),nummultby:(...n)=>new bn(n,this.opts).exec(this.client),objkeys:(...n)=>new On(n,this.opts).exec(this.client),objlen:(...n)=>new Tn(n,this.opts).exec(this.client),resp:(...n)=>new wn(n,this.opts).exec(this.client),set:(...n)=>new Dn(n,this.opts).exec(this.client),strappend:(...n)=>new kn(n,this.opts).exec(this.client),strlen:(...n)=>new An(n,this.opts).exec(this.client),toggle:(...n)=>new Sn(n,this.opts).exec(this.client),type:(...n)=>new Rn(n,this.opts).exec(this.client)}}__init124() {this.use=n=>{let t=this.client.request.bind(this.client);this.client.request=o=>n(o,t)}}__init125() {this.addTelemetry=n=>{if(this.enableTelemetry)try{this.client.mergeTelemetry(n)}catch (e12){}}}createScript(n){return new me(this,n)}__init126() {this.pipeline=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!1})}__init127() {this.multi=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!0})}__init128() {this.append=(...n)=>new C(n,this.opts).exec(this.client)}__init129() {this.bitcount=(...n)=>new l(n,this.opts).exec(this.client)}__init130() {this.bitop=(n,t,o,...m)=>new g([n,t,o,...m],this.opts).exec(this.client)}__init131() {this.bitpos=(...n)=>new x(n,this.opts).exec(this.client)}__init132() {this.copy=(...n)=>new f(n,this.opts).exec(this.client)}__init133() {this.dbsize=()=>new y(this.opts).exec(this.client)}__init134() {this.decr=(...n)=>new b(n,this.opts).exec(this.client)}__init135() {this.decrby=(...n)=>new O(n,this.opts).exec(this.client)}__init136() {this.del=(...n)=>new T(n,this.opts).exec(this.client)}__init137() {this.echo=(...n)=>new w(n,this.opts).exec(this.client)}__init138() {this.eval=(...n)=>new D(n,this.opts).exec(this.client)}__init139() {this.evalsha=(...n)=>new k(n,this.opts).exec(this.client)}__init140() {this.exists=(...n)=>new A(n,this.opts).exec(this.client)}__init141() {this.expire=(...n)=>new S(n,this.opts).exec(this.client)}__init142() {this.expireat=(...n)=>new R(n,this.opts).exec(this.client)}__init143() {this.flushall=n=>new M(n,this.opts).exec(this.client)}__init144() {this.flushdb=(...n)=>new v(n,this.opts).exec(this.client)}__init145() {this.get=(...n)=>new L(n,this.opts).exec(this.client)}__init146() {this.getbit=(...n)=>new Z(n,this.opts).exec(this.client)}__init147() {this.getdel=(...n)=>new N(n,this.opts).exec(this.client)}__init148() {this.getrange=(...n)=>new G(n,this.opts).exec(this.client)}__init149() {this.getset=(n,t)=>new B([n,t],this.opts).exec(this.client)}__init150() {this.hdel=(...n)=>new U(n,this.opts).exec(this.client)}__init151() {this.hexists=(...n)=>new H(n,this.opts).exec(this.client)}__init152() {this.hget=(...n)=>new F(n,this.opts).exec(this.client)}__init153() {this.hgetall=(...n)=>new q(n,this.opts).exec(this.client)}__init154() {this.hincrby=(...n)=>new $(n,this.opts).exec(this.client)}__init155() {this.hincrbyfloat=(...n)=>new X(n,this.opts).exec(this.client)}__init156() {this.hkeys=(...n)=>new j(n,this.opts).exec(this.client)}__init157() {this.hlen=(...n)=>new Y(n,this.opts).exec(this.client)}__init158() {this.hmget=(...n)=>new W(n,this.opts).exec(this.client)}__init159() {this.hmset=(n,t)=>new V([n,t],this.opts).exec(this.client)}__init160() {this.hrandfield=(n,t,o)=>new _([n,t,o],this.opts).exec(this.client)}__init161() {this.hscan=(...n)=>new Q(n,this.opts).exec(this.client)}__init162() {this.hset=(n,t)=>new nn([n,t],this.opts).exec(this.client)}__init163() {this.hsetnx=(n,t,o)=>new tn([n,t,o],this.opts).exec(this.client)}__init164() {this.hstrlen=(...n)=>new en(n,this.opts).exec(this.client)}__init165() {this.hvals=(...n)=>new on(n,this.opts).exec(this.client)}__init166() {this.incr=(...n)=>new sn(n,this.opts).exec(this.client)}__init167() {this.incrby=(...n)=>new mn(n,this.opts).exec(this.client)}__init168() {this.incrbyfloat=(...n)=>new rn(n,this.opts).exec(this.client)}__init169() {this.keys=(...n)=>new Mn(n,this.opts).exec(this.client)}__init170() {this.lindex=(...n)=>new vn(n,this.opts).exec(this.client)}__init171() {this.linsert=(n,t,o,m)=>new En([n,t,o,m],this.opts).exec(this.client)}__init172() {this.llen=(...n)=>new zn(n,this.opts).exec(this.client)}__init173() {this.lmove=(...n)=>new Jn(n,this.opts).exec(this.client)}__init174() {this.lpop=(...n)=>new Pn(n,this.opts).exec(this.client)}__init175() {this.lpos=(...n)=>new In(n,this.opts).exec(this.client)}__init176() {this.lpush=(n,...t)=>new Kn([n,...t],this.opts).exec(this.client)}__init177() {this.lpushx=(n,...t)=>new Ln([n,...t],this.opts).exec(this.client)}__init178() {this.lrange=(...n)=>new Zn(n,this.opts).exec(this.client)}__init179() {this.lrem=(n,t,o)=>new Nn([n,t,o],this.opts).exec(this.client)}__init180() {this.lset=(n,t,o)=>new Gn([n,t,o],this.opts).exec(this.client)}__init181() {this.ltrim=(...n)=>new Bn(n,this.opts).exec(this.client)}__init182() {this.mget=(...n)=>new Un(n,this.opts).exec(this.client)}__init183() {this.mset=n=>new Hn([n],this.opts).exec(this.client)}__init184() {this.msetnx=n=>new Fn([n],this.opts).exec(this.client)}__init185() {this.persist=(...n)=>new qn(n,this.opts).exec(this.client)}__init186() {this.pexpire=(...n)=>new $n(n,this.opts).exec(this.client)}__init187() {this.pexpireat=(...n)=>new Xn(n,this.opts).exec(this.client)}__init188() {this.ping=n=>new jn(n,this.opts).exec(this.client)}__init189() {this.psetex=(n,t,o)=>new Yn([n,t,o],this.opts).exec(this.client)}__init190() {this.pttl=(...n)=>new Wn(n,this.opts).exec(this.client)}__init191() {this.publish=(...n)=>new Vn(n,this.opts).exec(this.client)}__init192() {this.randomkey=()=>new _n().exec(this.client)}__init193() {this.rename=(...n)=>new Qn(n,this.opts).exec(this.client)}__init194() {this.renamenx=(...n)=>new nt(n,this.opts).exec(this.client)}__init195() {this.rpop=(...n)=>new tt(n,this.opts).exec(this.client)}__init196() {this.rpush=(n,...t)=>new et([n,...t],this.opts).exec(this.client)}__init197() {this.rpushx=(n,...t)=>new ot([n,...t],this.opts).exec(this.client)}__init198() {this.sadd=(n,...t)=>new st([n,...t],this.opts).exec(this.client)}__init199() {this.scan=(...n)=>new mt(n,this.opts).exec(this.client)}__init200() {this.scard=(...n)=>new rt(n,this.opts).exec(this.client)}__init201() {this.scriptExists=(...n)=>new at(n,this.opts).exec(this.client)}__init202() {this.scriptFlush=(...n)=>new it(n,this.opts).exec(this.client)}__init203() {this.scriptLoad=(...n)=>new pt(n,this.opts).exec(this.client)}__init204() {this.sdiff=(...n)=>new dt(n,this.opts).exec(this.client)}__init205() {this.sdiffstore=(...n)=>new ct(n,this.opts).exec(this.client)}__init206() {this.set=(n,t,o)=>new ut([n,t,o],this.opts).exec(this.client)}__init207() {this.setbit=(...n)=>new ht(n,this.opts).exec(this.client)}__init208() {this.setex=(n,t,o)=>new Ct([n,t,o],this.opts).exec(this.client)}__init209() {this.setnx=(n,t)=>new lt([n,t],this.opts).exec(this.client)}__init210() {this.setrange=(...n)=>new gt(n,this.opts).exec(this.client)}__init211() {this.sinter=(...n)=>new xt(n,this.opts).exec(this.client)}__init212() {this.sinterstore=(...n)=>new ft(n,this.opts).exec(this.client)}__init213() {this.sismember=(n,t)=>new yt([n,t],this.opts).exec(this.client)}__init214() {this.smismember=(n,t)=>new Ot([n,t],this.opts).exec(this.client)}__init215() {this.smembers=(...n)=>new bt(n,this.opts).exec(this.client)}__init216() {this.smove=(n,t,o)=>new Tt([n,t,o],this.opts).exec(this.client)}__init217() {this.spop=(...n)=>new wt(n,this.opts).exec(this.client)}__init218() {this.srandmember=(...n)=>new Dt(n,this.opts).exec(this.client)}__init219() {this.srem=(n,...t)=>new kt([n,...t],this.opts).exec(this.client)}__init220() {this.sscan=(...n)=>new At(n,this.opts).exec(this.client)}__init221() {this.strlen=(...n)=>new St(n,this.opts).exec(this.client)}__init222() {this.sunion=(...n)=>new Rt(n,this.opts).exec(this.client)}__init223() {this.sunionstore=(...n)=>new Mt(n,this.opts).exec(this.client)}__init224() {this.time=()=>new vt().exec(this.client)}__init225() {this.touch=(...n)=>new Et(n,this.opts).exec(this.client)}__init226() {this.ttl=(...n)=>new zt(n,this.opts).exec(this.client)}__init227() {this.type=(...n)=>new Jt(n,this.opts).exec(this.client)}__init228() {this.unlink=(...n)=>new Pt(n,this.opts).exec(this.client)}__init229() {this.xadd=(...n)=>new oe(n,this.opts).exec(this.client)}__init230() {this.xrange=(...n)=>new se(n,this.opts).exec(this.client)}__init231() {this.zadd=(...n)=>\"score\"in n[1]?new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client):new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client)}__init232() {this.zcard=(...n)=>new It(n,this.opts).exec(this.client)}__init233() {this.zcount=(...n)=>new Kt(n,this.opts).exec(this.client)}__init234() {this.zdiffstore=(...n)=>new Qt(n,this.opts).exec(this.client)}__init235() {this.zincrby=(n,t,o)=>new Lt([n,t,o],this.opts).exec(this.client)}__init236() {this.zinterstore=(...n)=>new Zt(n,this.opts).exec(this.client)}__init237() {this.zlexcount=(...n)=>new Nt(n,this.opts).exec(this.client)}__init238() {this.zmscore=(...n)=>new ne(n,this.opts).exec(this.client)}__init239() {this.zpopmax=(...n)=>new Gt(n,this.opts).exec(this.client)}__init240() {this.zpopmin=(...n)=>new Bt(n,this.opts).exec(this.client)}__init241() {this.zrange=(...n)=>new Ut(n,this.opts).exec(this.client)}__init242() {this.zrank=(n,t)=>new Ht([n,t],this.opts).exec(this.client)}__init243() {this.zrem=(n,...t)=>new Ft([n,...t],this.opts).exec(this.client)}__init244() {this.zremrangebylex=(...n)=>new qt(n,this.opts).exec(this.client)}__init245() {this.zremrangebyrank=(...n)=>new $t(n,this.opts).exec(this.client)}__init246() {this.zremrangebyscore=(...n)=>new Xt(n,this.opts).exec(this.client)}__init247() {this.zrevrank=(n,t)=>new jt([n,t],this.opts).exec(this.client)}__init248() {this.zscan=(...n)=>new Yt(n,this.opts).exec(this.client)}__init249() {this.zscore=(n,t)=>new Wt([n,t],this.opts).exec(this.client)}__init250() {this.zunion=(...n)=>new Vt(n,this.opts).exec(this.client)}__init251() {this.zunionstore=(...n)=>new _t(n,this.opts).exec(this.client)}}, _class2);var cC=\"v1.24.3\";exports.a = ie; exports.b = ue; exports.c = cC;\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkJIU2S2DZjs = require('./chunk-JIU2S2DZ.js');typeof atob>\"u\"&&(global.atob=function(n){return Buffer.from(n,\"base64\").toString(\"utf-8\")});var a=class n extends _chunkJIU2S2DZjs.b{constructor(e){if(\"request\"in e){super(e);return}(e.url.startsWith(\" \")||e.url.endsWith(\" \")||/\\r|\\n/.test(e.url))&&console.warn(\"The redis url contains whitespace or newline, which can cause errors!\"),(e.token.startsWith(\" \")||e.token.endsWith(\" \")||/\\r|\\n/.test(e.token))&&console.warn(\"The redis token contains whitespace or newline, which can cause errors!\");let t=new (0, _chunkJIU2S2DZjs.a)({baseUrl:e.url,retry:e.retry,headers:{authorization:`Bearer ${e.token}`},agent:e.agent,responseEncoding:e.responseEncoding,cache:e.cache||\"no-store\"});super(t,{automaticDeserialization:e.automaticDeserialization,enableTelemetry:!process.env.UPSTASH_DISABLE_TELEMETRY}),this.addTelemetry({runtime:typeof EdgeRuntime==\"string\"?\"edge-light\":`node@${process.version}`,platform:process.env.VERCEL?\"vercel\":process.env.AWS_REGION?\"aws\":\"unknown\",sdk:`@upstash/redis@${_chunkJIU2S2DZjs.c}`})}static fromEnv(e){if(typeof _optionalChain([process, 'optionalAccess', _ => _.env])>\"u\")throw new Error('Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from \"@upstash/redis/cloudflare\" instead');let t=_optionalChain([process, 'optionalAccess', _2 => _2.env, 'access', _3 => _3.UPSTASH_REDIS_REST_URL]);if(!t)throw new Error(\"Unable to find environment variable: `UPSTASH_REDIS_REST_URL`\");let s=_optionalChain([process, 'optionalAccess', _4 => _4.env, 'access', _5 => _5.UPSTASH_REDIS_REST_TOKEN]);if(!s)throw new Error(\"Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`\");return new n({...e,url:t,token:s})}};exports.Redis = a;\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));","module.exports = require(\"crypto\");","module.exports = require(\"fs/promises\");","module.exports = require(\"path\");","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});// src/index.ts\nvar _redis = require('@upstash/redis');\nvar _kv = null;\nprocess.env.UPSTASH_DISABLE_TELEMETRY = \"1\";\nvar VercelKV = class extends _redis.Redis {\n // This API is based on https://github.com/redis/node-redis#scan-iterator which is not supported in @upstash/redis\n /**\n * Same as `scan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *scanIterator(options) {\n let cursor = 0;\n let keys;\n do {\n [cursor, keys] = await this.scan(cursor, options);\n for (const key of keys) {\n yield key;\n }\n } while (cursor !== 0);\n }\n /**\n * Same as `hscan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *hscanIterator(key, options) {\n let cursor = 0;\n let items;\n do {\n [cursor, items] = await this.hscan(key, cursor, options);\n for (const item of items) {\n yield item;\n }\n } while (cursor !== 0);\n }\n /**\n * Same as `sscan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *sscanIterator(key, options) {\n let cursor = 0;\n let items;\n do {\n [cursor, items] = await this.sscan(key, cursor, options);\n for (const item of items) {\n yield item;\n }\n } while (cursor !== 0);\n }\n /**\n * Same as `zscan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *zscanIterator(key, options) {\n let cursor = 0;\n let items;\n do {\n [cursor, items] = await this.zscan(key, cursor, options);\n for (const item of items) {\n yield item;\n }\n } while (cursor !== 0);\n }\n};\nfunction createClient(config) {\n return new VercelKV(config);\n}\nvar src_default = new Proxy(\n {},\n {\n get(target, prop, receiver) {\n if (prop === \"then\" || prop === \"parse\") {\n return Reflect.get(target, prop, receiver);\n }\n if (!_kv) {\n if (!process.env.KV_REST_API_URL || !process.env.KV_REST_API_TOKEN) {\n throw new Error(\n \"@vercel/kv: Missing required environment variables KV_REST_API_URL and KV_REST_API_TOKEN\"\n );\n }\n console.warn(\n '\\x1B[33m\"The default export has been moved to a named export and it will be removed in version 1, change to import { kv }\\x1B[0m\"'\n );\n _kv = createClient({\n url: process.env.KV_REST_API_URL,\n token: process.env.KV_REST_API_TOKEN\n });\n }\n return Reflect.get(_kv, prop);\n }\n }\n);\nvar kv = new Proxy(\n {},\n {\n get(target, prop) {\n if (!_kv) {\n if (!process.env.KV_REST_API_URL || !process.env.KV_REST_API_TOKEN) {\n throw new Error(\n \"@vercel/kv: Missing required environment variables KV_REST_API_URL and KV_REST_API_TOKEN\"\n );\n }\n _kv = createClient({\n url: process.env.KV_REST_API_URL,\n token: process.env.KV_REST_API_TOKEN\n });\n }\n return Reflect.get(_kv, prop);\n }\n }\n);\n\n\n\n\n\nexports.VercelKV = VercelKV; exports.createClient = createClient; exports.default = src_default; exports.kv = kv;\n//# sourceMappingURL=index.cjs.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","const fs = require('fs/promises')\nconst path = require('path')\n\nconst { createClient } = require('@vercel/kv')\n\nasync function main() {\n try {\n const file = path.join(process.cwd(), 'test/turbopack-tests-manifest.json')\n\n let passingTests = ''\n let failingTests = ''\n let passCount = 0\n let failCount = 0\n\n const contents = await fs.readFile(file, 'utf-8')\n const results = JSON.parse(contents)\n\n const currentDate = new Date()\n const isoString = currentDate.toISOString()\n const timestamp = isoString.slice(0, 19).replace('T', ' ')\n\n for (const [testFileName, result] of Object.entries(results)) {\n let suitePassCount = 0\n let suiteFailCount = 0\n\n suitePassCount += result.passed.length\n suiteFailCount += result.failed.length\n\n if (suitePassCount > 0) {\n passingTests += `${testFileName}\\n`\n }\n\n if (suiteFailCount > 0) {\n failingTests += `${testFileName}\\n`\n }\n\n for (const passed of result.passed) {\n const passedName = passed.replaceAll('`', '\\\\`')\n passingTests += `* ${passedName}\\n`\n }\n\n for (const passed of result.failed) {\n const failedName = passed.replaceAll('`', '\\\\`')\n failingTests += `* ${failedName}\\n`\n }\n\n passCount += suitePassCount\n failCount += suiteFailCount\n\n if (suitePassCount > 0) {\n passingTests += `\\n`\n }\n\n if (suiteFailCount > 0) {\n failingTests += `\\n`\n }\n }\n\n const kv = createClient({\n url: process.env.TURBOYET_KV_REST_API_URL,\n token: process.env.TURBOYET_KV_REST_API_TOKEN,\n })\n\n const testRun = `${process.env.GITHUB_SHA}\\t${timestamp}\\t${passCount}/${\n passCount + failCount\n }`\n\n console.log('TEST RESULT')\n console.log(testRun)\n\n await kv.rpush('test-runs', testRun)\n console.log('SUCCESSFULLY SAVED RUNS')\n\n await kv.set('passing-tests', passingTests)\n console.log('SUCCESSFULLY SAVED PASSING')\n\n await kv.set('failing-tests', failingTests)\n console.log('SUCCESSFULLY SAVED FAILING')\n } catch (error) {\n console.log(error)\n }\n}\n\nmain()\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtyBA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["../webpack://upload-turboyet-data-action/../../node_modules/.pnpm/@upstash+redis@1.24.3/node_modules/@upstash/redis/chunk-JIU2S2DZ.js","../webpack://upload-turboyet-data-action/../../node_modules/.pnpm/@upstash+redis@1.24.3/node_modules/@upstash/redis/nodejs.js","../webpack://upload-turboyet-data-action/../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js","../webpack://upload-turboyet-data-action/../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-hex.js","../webpack://upload-turboyet-data-action/../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js","../webpack://upload-turboyet-data-action/external node-commonjs \"crypto\"","../webpack://upload-turboyet-data-action/external node-commonjs \"fs/promises\"","../webpack://upload-turboyet-data-action/external node-commonjs \"path\"","../webpack://upload-turboyet-data-action/../../node_modules/.pnpm/@vercel+kv@0.2.4/node_modules/@vercel/kv/dist/index.cjs","../webpack://upload-turboyet-data-action/webpack/bootstrap","../webpack://upload-turboyet-data-action/webpack/runtime/compat","../webpack://upload-turboyet-data-action/./src/main.js"],"sourcesContent":["\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2;var c=class extends Error{constructor(n){super(n),this.name=\"UpstashError\"}};var ie=class{constructor(n){this.options={backend:_optionalChain([n, 'access', _2 => _2.options, 'optionalAccess', _3 => _3.backend]),agent:n.agent,responseEncoding:_nullishCoalesce(n.responseEncoding, () => (\"base64\")),cache:n.cache},this.baseUrl=n.baseUrl.replace(/\\/$/,\"\"),this.headers={\"Content-Type\":\"application/json\",...n.headers},this.options.responseEncoding===\"base64\"&&(this.headers[\"Upstash-Encoding\"]=\"base64\"),typeof _optionalChain([n, 'optionalAccess', _4 => _4.retry])==\"boolean\"&&_optionalChain([n, 'optionalAccess', _5 => _5.retry])===!1?this.retry={attempts:1,backoff:()=>0}:this.retry={attempts:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _6 => _6.retry, 'optionalAccess', _7 => _7.retries]), () => (5)),backoff:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _8 => _8.retry, 'optionalAccess', _9 => _9.backoff]), () => ((t=>Math.exp(t)*50)))}}mergeTelemetry(n){function t(o,m,r){return r&&(o[m]?o[m]=[o[m],r].join(\",\"):o[m]=r),o}this.headers=t(this.headers,\"Upstash-Telemetry-Runtime\",n.runtime),this.headers=t(this.headers,\"Upstash-Telemetry-Platform\",n.platform),this.headers=t(this.headers,\"Upstash-Telemetry-Sdk\",n.sdk)}async request(n){let t={cache:this.options.cache,method:\"POST\",headers:this.headers,body:JSON.stringify(n.body),keepalive:!0,agent:_optionalChain([this, 'access', _10 => _10.options, 'optionalAccess', _11 => _11.agent]),backend:_optionalChain([this, 'access', _12 => _12.options, 'optionalAccess', _13 => _13.backend])},o=null,m=null;for(let a=0;a<=this.retry.attempts;a++)try{o=await fetch([this.baseUrl,..._nullishCoalesce(n.path, () => ([]))].join(\"/\"),t);break}catch(i){m=i,await new Promise(p=>setTimeout(p,this.retry.backoff(a)))}if(!o)throw _nullishCoalesce(m, () => (new Error(\"Exhausted all retries\")));let r=await o.json();if(!o.ok)throw new c(`${r.error}, command was: ${JSON.stringify(n.body)}`);return _optionalChain([this, 'access', _14 => _14.options, 'optionalAccess', _15 => _15.responseEncoding])===\"base64\"?Array.isArray(r)?r.map(({result:i,error:p})=>({result:re(i),error:p})):{result:re(r.result),error:r.error}:r}};function pe(s){let n=\"\";try{let t=atob(s),o=t.length,m=new Uint8Array(o);for(let r=0;rtypeof t==\"string\"?pe(t):Array.isArray(t)?t.map(re):t):n=null;break}case\"string\":{n=s===\"OK\"?\"OK\":pe(s);break}default:break}return n}function de(s){let n=Array.isArray(s)?s.map(t=>{try{return de(t)}catch (e3){return t}}):JSON.parse(s);return typeof n==\"number\"&&n.toString()!==s?s:n}function ce(s){try{return de(s)}catch (e4){return s}}var he=s=>{switch(typeof s){case\"string\":case\"number\":case\"boolean\":return s;default:return JSON.stringify(s)}},e=class{constructor(n,t){this.serialize=he,this.deserialize=typeof _optionalChain([t, 'optionalAccess', _16 => _16.automaticDeserialization])>\"u\"||t.automaticDeserialization?_nullishCoalesce(_optionalChain([t, 'optionalAccess', _17 => _17.deserialize]), () => (ce)):o=>o,this.command=n.map(o=>this.serialize(o))}async exec(n){let{result:t,error:o}=await n.request({body:this.command});if(o)throw new c(o);if(typeof t>\"u\")throw new Error(\"Request did not return a result\");return this.deserialize(t)}};var C=class extends e{constructor(n,t){super([\"append\",...n],t)}};var l=class extends e{constructor([n,t,o],m){let r=[\"bitcount\",n];typeof t==\"number\"&&r.push(t),typeof o==\"number\"&&r.push(o),super(r,m)}};var g=class extends e{constructor(n,t){super([\"bitop\",...n],t)}};var x=class extends e{constructor(n,t){super([\"bitpos\",...n],t)}};var f=class extends e{constructor([n,t,o],m){super([\"COPY\",n,t,..._optionalChain([o, 'optionalAccess', _18 => _18.replace])?[\"REPLACE\"]:[]],{...m,deserialize(r){return r>0?\"COPIED\":\"NOT_COPIED\"}})}};var y=class extends e{constructor(n){super([\"dbsize\"],n)}};var b=class extends e{constructor(n,t){super([\"decr\",...n],t)}};var O=class extends e{constructor(n,t){super([\"decrby\",...n],t)}};var T=class extends e{constructor(n,t){super([\"del\",...n],t)}};var w=class extends e{constructor(n,t){super([\"echo\",...n],t)}};var D=class extends e{constructor([n,t,o],m){super([\"eval\",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var k=class extends e{constructor([n,t,o],m){super([\"evalsha\",n,t.length,...t,..._nullishCoalesce(o, () => ([]))],m)}};var A=class extends e{constructor(n,t){super([\"exists\",...n],t)}};var S=class extends e{constructor(n,t){super([\"expire\",...n],t)}};var R=class extends e{constructor(n,t){super([\"expireat\",...n],t)}};var M=class extends e{constructor(n,t){let o=[\"flushall\"];n&&n.length>0&&n[0].async&&o.push(\"async\"),super(o,t)}};var v=class extends e{constructor([n],t){let o=[\"flushdb\"];_optionalChain([n, 'optionalAccess', _19 => _19.async])&&o.push(\"async\"),super(o,t)}};var E=class extends e{constructor([n,t,...o],m){let r=[\"geoadd\",n];\"nx\"in t&&t.nx?r.push(\"nx\"):\"xx\"in t&&t.xx&&r.push(\"xx\"),\"ch\"in t&&t.ch&&r.push(\"ch\"),\"latitude\"in t&&t.latitude&&r.push(t.longitude,t.latitude,t.member),r.push(...o.flatMap(({latitude:a,longitude:i,member:p})=>[i,a,p])),super(r,m)}};var z=class extends e{constructor([n,t,o,m=\"M\"],r){super([\"GEODIST\",n,t,o,m],r)}};var J=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super([\"GEOPOS\",o,...m],{deserialize:r=>Ce(r),...t})}};function Ce(s){let n=[];for(let t of s)!_optionalChain([t, 'optionalAccess', _20 => _20[0]])||!_optionalChain([t, 'optionalAccess', _21 => _21[1]])||n.push({lng:parseFloat(t[0]),lat:parseFloat(t[1])});return n}var P=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super([\"GEOHASH\",o,...m],t)}};var I=class extends e{constructor([n,t,o,m,r],a){let i=[\"GEOSEARCH\",n];(t.type===\"FROMMEMBER\"||t.type===\"frommember\")&&i.push(t.type,t.member),(t.type===\"FROMLONLAT\"||t.type===\"fromlonlat\")&&i.push(t.type,t.coordinate.lon,t.coordinate.lat),(o.type===\"BYRADIUS\"||o.type===\"byradius\")&&i.push(o.type,o.radius,o.radiusType),(o.type===\"BYBOX\"||o.type===\"bybox\")&&i.push(o.type,o.rect.width,o.rect.height,o.rectType),i.push(m),_optionalChain([r, 'optionalAccess', _22 => _22.count])&&i.push(r.count.limit,...r.count.any?[\"ANY\"]:[]);let p=ae=>!_optionalChain([r, 'optionalAccess', _23 => _23.withCoord])&&!_optionalChain([r, 'optionalAccess', _24 => _24.withDist])&&!_optionalChain([r, 'optionalAccess', _25 => _25.withHash])?ae.map(d=>{try{return{member:JSON.parse(d)}}catch (e5){return{member:d}}}):ae.map(d=>{let ee=1,h={};try{h.member=JSON.parse(d[0])}catch (e6){h.member=d[0]}return r.withDist&&(h.dist=parseFloat(d[ee++])),r.withHash&&(h.hash=d[ee++].toString()),r.withCoord&&(h.coord={long:parseFloat(d[ee][0]),lat:parseFloat(d[ee][1])}),h});super([...i,..._optionalChain([r, 'optionalAccess', _26 => _26.withCoord])?[\"WITHCOORD\"]:[],..._optionalChain([r, 'optionalAccess', _27 => _27.withDist])?[\"WITHDIST\"]:[],..._optionalChain([r, 'optionalAccess', _28 => _28.withHash])?[\"WITHHASH\"]:[]],{...a,deserialize:p})}};var K=class extends e{constructor([n,t,o,m,r,a],i){let p=[\"GEOSEARCHSTORE\",n,t];(o.type===\"FROMMEMBER\"||o.type===\"frommember\")&&p.push(o.type,o.member),(o.type===\"FROMLONLAT\"||o.type===\"fromlonlat\")&&p.push(o.type,o.coordinate.lon,o.coordinate.lat),(m.type===\"BYRADIUS\"||m.type===\"byradius\")&&p.push(m.type,m.radius,m.radiusType),(m.type===\"BYBOX\"||m.type===\"bybox\")&&p.push(m.type,m.rect.width,m.rect.height,m.rectType),p.push(r),_optionalChain([a, 'optionalAccess', _29 => _29.count])&&p.push(a.count.limit,...a.count.any?[\"ANY\"]:[]),super([...p,..._optionalChain([a, 'optionalAccess', _30 => _30.storeDist])?[\"STOREDIST\"]:[]],i)}};var L=class extends e{constructor(n,t){super([\"get\",...n],t)}};var Z=class extends e{constructor(n,t){super([\"getbit\",...n],t)}};var N=class extends e{constructor(n,t){super([\"getdel\",...n],t)}};var G=class extends e{constructor(n,t){super([\"getrange\",...n],t)}};var B=class extends e{constructor(n,t){super([\"getset\",...n],t)}};var U=class extends e{constructor(n,t){super([\"hdel\",...n],t)}};var H=class extends e{constructor(n,t){super([\"hexists\",...n],t)}};var F=class extends e{constructor(n,t){super([\"hget\",...n],t)}};function le(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{!Number.isNaN(Number(o))&&!Number.isSafeInteger(o)?n[t]=o:n[t]=JSON.parse(o)}catch (e7){n[t]=o}}return n}var q=class extends e{constructor(n,t){super([\"hgetall\",...n],{deserialize:o=>le(o),...t})}};var $=class extends e{constructor(n,t){super([\"hincrby\",...n],t)}};var X=class extends e{constructor(n,t){super([\"hincrbyfloat\",...n],t)}};var j=class extends e{constructor([n],t){super([\"hkeys\",n],t)}};var Y=class extends e{constructor(n,t){super([\"hlen\",...n],t)}};function ge(s,n){if(n.length===0||n.every(o=>o===null))return null;let t={};for(let o=0;oge(t,m),...o})}};var V=class extends e{constructor([n,t],o){super([\"hmset\",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};function xe(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{n[t]=JSON.parse(o)}catch (e9){n[t]=o}}return n}var _=class extends e{constructor(n,t){let o=[\"hrandfield\",n[0]];typeof n[1]==\"number\"&&o.push(n[1]),n[2]&&o.push(\"WITHVALUES\"),super(o,{deserialize:n[2]?m=>xe(m):_optionalChain([t, 'optionalAccess', _31 => _31.deserialize]),...t})}};var Q=class extends e{constructor([n,t,o],m){let r=[\"hscan\",n,t];_optionalChain([o, 'optionalAccess', _32 => _32.match])&&r.push(\"match\",o.match),typeof _optionalChain([o, 'optionalAccess', _33 => _33.count])==\"number\"&&r.push(\"count\",o.count),super(r,m)}};var nn=class extends e{constructor([n,t],o){super([\"hset\",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};var tn=class extends e{constructor(n,t){super([\"hsetnx\",...n],t)}};var en=class extends e{constructor(n,t){super([\"hstrlen\",...n],t)}};var on=class extends e{constructor(n,t){super([\"hvals\",...n],t)}};var sn=class extends e{constructor(n,t){super([\"incr\",...n],t)}};var mn=class extends e{constructor(n,t){super([\"incrby\",...n],t)}};var rn=class extends e{constructor(n,t){super([\"incrbyfloat\",...n],t)}};var an=class extends e{constructor(n,t){super([\"JSON.ARRAPPEND\",...n],t)}};var pn=class extends e{constructor(n,t){super([\"JSON.ARRINDEX\",...n],t)}};var dn=class extends e{constructor(n,t){super([\"JSON.ARRINSERT\",...n],t)}};var cn=class extends e{constructor(n,t){super([\"JSON.ARRLEN\",n[0],_nullishCoalesce(n[1], () => (\"$\"))],t)}};var un=class extends e{constructor(n,t){super([\"JSON.ARRPOP\",...n],t)}};var hn=class extends e{constructor(n,t){let o=_nullishCoalesce(n[1], () => (\"$\")),m=_nullishCoalesce(n[2], () => (0)),r=_nullishCoalesce(n[3], () => (0));super([\"JSON.ARRTRIM\",n[0],o,m,r],t)}};var Cn=class extends e{constructor(n,t){super([\"JSON.CLEAR\",...n],t)}};var ln=class extends e{constructor(n,t){super([\"JSON.DEL\",...n],t)}};var gn=class extends e{constructor(n,t){super([\"JSON.FORGET\",...n],t)}};var xn=class extends e{constructor(n,t){let o=[\"JSON.GET\"];typeof n[1]==\"string\"?o.push(...n):(o.push(n[0]),n[1]&&(n[1].indent&&o.push(\"INDENT\",n[1].indent),n[1].newline&&o.push(\"NEWLINE\",n[1].newline),n[1].space&&o.push(\"SPACE\",n[1].space)),o.push(...n.slice(2))),super(o,t)}};var fn=class extends e{constructor(n,t){super([\"JSON.MGET\",...n[0],n[1]],t)}};var yn=class extends e{constructor(n,t){super([\"JSON.NUMINCRBY\",...n],t)}};var bn=class extends e{constructor(n,t){super([\"JSON.NUMMULTBY\",...n],t)}};var On=class extends e{constructor(n,t){super([\"JSON.OBJKEYS\",...n],t)}};var Tn=class extends e{constructor(n,t){super([\"JSON.OBJLEN\",...n],t)}};var wn=class extends e{constructor(n,t){super([\"JSON.RESP\",...n],t)}};var Dn=class extends e{constructor(n,t){let o=[\"JSON.SET\",n[0],n[1],n[2]];n[3]&&(n[3].nx?o.push(\"NX\"):n[3].xx&&o.push(\"XX\")),super(o,t)}};var kn=class extends e{constructor(n,t){super([\"JSON.STRAPPEND\",...n],t)}};var An=class extends e{constructor(n,t){super([\"JSON.STRLEN\",...n],t)}};var Sn=class extends e{constructor(n,t){super([\"JSON.TOGGLE\",...n],t)}};var Rn=class extends e{constructor(n,t){super([\"JSON.TYPE\",...n],t)}};var Mn=class extends e{constructor(n,t){super([\"keys\",...n],t)}};var vn=class extends e{constructor(n,t){super([\"lindex\",...n],t)}};var En=class extends e{constructor(n,t){super([\"linsert\",...n],t)}};var zn=class extends e{constructor(n,t){super([\"llen\",...n],t)}};var Jn=class extends e{constructor(n,t){super([\"lmove\",...n],t)}};var Pn=class extends e{constructor(n,t){super([\"lpop\",...n],t)}};var In=class extends e{constructor(n,t){let o=[\"lpos\",n[0],n[1]];typeof _optionalChain([n, 'access', _34 => _34[2], 'optionalAccess', _35 => _35.rank])==\"number\"&&o.push(\"rank\",n[2].rank),typeof _optionalChain([n, 'access', _36 => _36[2], 'optionalAccess', _37 => _37.count])==\"number\"&&o.push(\"count\",n[2].count),typeof _optionalChain([n, 'access', _38 => _38[2], 'optionalAccess', _39 => _39.maxLen])==\"number\"&&o.push(\"maxLen\",n[2].maxLen),super(o,t)}};var Kn=class extends e{constructor(n,t){super([\"lpush\",...n],t)}};var Ln=class extends e{constructor(n,t){super([\"lpushx\",...n],t)}};var Zn=class extends e{constructor(n,t){super([\"lrange\",...n],t)}};var Nn=class extends e{constructor(n,t){super([\"lrem\",...n],t)}};var Gn=class extends e{constructor(n,t){super([\"lset\",...n],t)}};var Bn=class extends e{constructor(n,t){super([\"ltrim\",...n],t)}};var Un=class extends e{constructor(n,t){let o=Array.isArray(n[0])?n[0]:n;super([\"mget\",...o],t)}};var Hn=class extends e{constructor([n],t){super([\"mset\",...Object.entries(n).flatMap(([o,m])=>[o,m])],t)}};var Fn=class extends e{constructor([n],t){super([\"msetnx\",...Object.entries(n).flatMap(o=>o)],t)}};var qn=class extends e{constructor(n,t){super([\"persist\",...n],t)}};var $n=class extends e{constructor(n,t){super([\"pexpire\",...n],t)}};var Xn=class extends e{constructor(n,t){super([\"pexpireat\",...n],t)}};var jn=class extends e{constructor(n,t){let o=[\"ping\"];typeof n<\"u\"&&typeof n[0]<\"u\"&&o.push(n[0]),super(o,t)}};var Yn=class extends e{constructor(n,t){super([\"psetex\",...n],t)}};var Wn=class extends e{constructor(n,t){super([\"pttl\",...n],t)}};var Vn=class extends e{constructor(n,t){super([\"publish\",...n],t)}};var _n=class extends e{constructor(n){super([\"randomkey\"],n)}};var Qn=class extends e{constructor(n,t){super([\"rename\",...n],t)}};var nt=class extends e{constructor(n,t){super([\"renamenx\",...n],t)}};var tt=class extends e{constructor(n,t){super([\"rpop\",...n],t)}};var et=class extends e{constructor(n,t){super([\"rpush\",...n],t)}};var ot=class extends e{constructor(n,t){super([\"rpushx\",...n],t)}};var st=class extends e{constructor(n,t){super([\"sadd\",...n],t)}};var mt=class extends e{constructor([n,t],o){let m=[\"scan\",n];_optionalChain([t, 'optionalAccess', _40 => _40.match])&&m.push(\"match\",t.match),typeof _optionalChain([t, 'optionalAccess', _41 => _41.count])==\"number\"&&m.push(\"count\",t.count),_optionalChain([t, 'optionalAccess', _42 => _42.type])&&t.type.length>0&&m.push(\"type\",t.type),super(m,o)}};var rt=class extends e{constructor(n,t){super([\"scard\",...n],t)}};var at=class extends e{constructor(n,t){super([\"script\",\"exists\",...n],{deserialize:o=>o,...t})}};var it=class extends e{constructor([n],t){let o=[\"script\",\"flush\"];_optionalChain([n, 'optionalAccess', _43 => _43.sync])?o.push(\"sync\"):_optionalChain([n, 'optionalAccess', _44 => _44.async])&&o.push(\"async\"),super(o,t)}};var pt=class extends e{constructor(n,t){super([\"script\",\"load\",...n],t)}};var dt=class extends e{constructor(n,t){super([\"sdiff\",...n],t)}};var ct=class extends e{constructor(n,t){super([\"sdiffstore\",...n],t)}};var ut=class extends e{constructor([n,t,o],m){let r=[\"set\",n,t];o&&(\"nx\"in o&&o.nx?r.push(\"nx\"):\"xx\"in o&&o.xx&&r.push(\"xx\"),\"get\"in o&&o.get&&r.push(\"get\"),\"ex\"in o&&typeof o.ex==\"number\"?r.push(\"ex\",o.ex):\"px\"in o&&typeof o.px==\"number\"?r.push(\"px\",o.px):\"exat\"in o&&typeof o.exat==\"number\"?r.push(\"exat\",o.exat):\"pxat\"in o&&typeof o.pxat==\"number\"?r.push(\"pxat\",o.pxat):\"keepTtl\"in o&&o.keepTtl&&r.push(\"keepTtl\")),super(r,m)}};var ht=class extends e{constructor(n,t){super([\"setbit\",...n],t)}};var Ct=class extends e{constructor(n,t){super([\"setex\",...n],t)}};var lt=class extends e{constructor(n,t){super([\"setnx\",...n],t)}};var gt=class extends e{constructor(n,t){super([\"setrange\",...n],t)}};var xt=class extends e{constructor(n,t){super([\"sinter\",...n],t)}};var ft=class extends e{constructor(n,t){super([\"sinterstore\",...n],t)}};var yt=class extends e{constructor(n,t){super([\"sismember\",...n],t)}};var bt=class extends e{constructor(n,t){super([\"smembers\",...n],t)}};var Ot=class extends e{constructor(n,t){super([\"smismember\",n[0],...n[1]],t)}};var Tt=class extends e{constructor(n,t){super([\"smove\",...n],t)}};var wt=class extends e{constructor([n,t],o){let m=[\"spop\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var Dt=class extends e{constructor([n,t],o){let m=[\"srandmember\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var kt=class extends e{constructor(n,t){super([\"srem\",...n],t)}};var At=class extends e{constructor([n,t,o],m){let r=[\"sscan\",n,t];_optionalChain([o, 'optionalAccess', _45 => _45.match])&&r.push(\"match\",o.match),typeof _optionalChain([o, 'optionalAccess', _46 => _46.count])==\"number\"&&r.push(\"count\",o.count),super(r,m)}};var St=class extends e{constructor(n,t){super([\"strlen\",...n],t)}};var Rt=class extends e{constructor(n,t){super([\"sunion\",...n],t)}};var Mt=class extends e{constructor(n,t){super([\"sunionstore\",...n],t)}};var vt=class extends e{constructor(n){super([\"time\"],n)}};var Et=class extends e{constructor(n,t){super([\"touch\",...n],t)}};var zt=class extends e{constructor(n,t){super([\"ttl\",...n],t)}};var Jt=class extends e{constructor(n,t){super([\"type\",...n],t)}};var Pt=class extends e{constructor(n,t){super([\"unlink\",...n],t)}};var oe=class extends e{constructor([n,t,o,m],r){let a=[\"XADD\",n];m&&(m.nomkStream&&a.push(\"NOMKSTREAM\"),m.trim&&(a.push(m.trim.type,m.trim.comparison,m.trim.threshold),typeof m.trim.limit<\"u\"&&a.push(\"LIMIT\",m.trim.limit))),a.push(t);for(let[i,p]of Object.entries(o))a.push(i,p);super(a,r)}};function fe(s){let n={};for(let t of s)for(;t.length>=2;){let o=t.shift(),m=t.shift();for((o in n)||(n[o]={});m.length>=2;){let r=m.shift(),a=m.shift();try{n[o][r]=JSON.parse(a)}catch (e10){n[o][r]=a}}}return n}var se=class extends e{constructor([n,t,o,m],r){let a=[\"XRANGE\",n,t,o];typeof m==\"number\"&&a.push(\"COUNT\",m),super(a,{deserialize:i=>fe(i),...r})}};var u=class extends e{constructor([n,t,...o],m){let r=[\"zadd\",n];\"nx\"in t&&t.nx?r.push(\"nx\"):\"xx\"in t&&t.xx&&r.push(\"xx\"),\"ch\"in t&&t.ch&&r.push(\"ch\"),\"incr\"in t&&t.incr&&r.push(\"incr\"),\"score\"in t&&\"member\"in t&&r.push(t.score,t.member),r.push(...o.flatMap(({score:a,member:i})=>[a,i])),super(r,m)}};var It=class extends e{constructor(n,t){super([\"zcard\",...n],t)}};var Kt=class extends e{constructor(n,t){super([\"zcount\",...n],t)}};var Lt=class extends e{constructor(n,t){super([\"zincrby\",...n],t)}};var Zt=class extends e{constructor([n,t,o,m],r){let a=[\"zinterstore\",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&(\"weights\"in m&&m.weights?a.push(\"weights\",...m.weights):\"weight\"in m&&typeof m.weight==\"number\"&&a.push(\"weights\",m.weight),\"aggregate\"in m&&a.push(\"aggregate\",m.aggregate)),super(a,r)}};var Nt=class extends e{constructor(n,t){super([\"zlexcount\",...n],t)}};var Gt=class extends e{constructor([n,t],o){let m=[\"zpopmax\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var Bt=class extends e{constructor([n,t],o){let m=[\"zpopmin\",n];typeof t==\"number\"&&m.push(t),super(m,o)}};var Ut=class extends e{constructor([n,t,o,m],r){let a=[\"zrange\",n,t,o];_optionalChain([m, 'optionalAccess', _47 => _47.byScore])&&a.push(\"byscore\"),_optionalChain([m, 'optionalAccess', _48 => _48.byLex])&&a.push(\"bylex\"),_optionalChain([m, 'optionalAccess', _49 => _49.rev])&&a.push(\"rev\"),typeof _optionalChain([m, 'optionalAccess', _50 => _50.count])<\"u\"&&typeof _optionalChain([m, 'optionalAccess', _51 => _51.offset])<\"u\"&&a.push(\"limit\",m.offset,m.count),_optionalChain([m, 'optionalAccess', _52 => _52.withScores])&&a.push(\"withscores\"),super(a,r)}};var Ht=class extends e{constructor(n,t){super([\"zrank\",...n],t)}};var Ft=class extends e{constructor(n,t){super([\"zrem\",...n],t)}};var qt=class extends e{constructor(n,t){super([\"zremrangebylex\",...n],t)}};var $t=class extends e{constructor(n,t){super([\"zremrangebyrank\",...n],t)}};var Xt=class extends e{constructor(n,t){super([\"zremrangebyscore\",...n],t)}};var jt=class extends e{constructor(n,t){super([\"zrevrank\",...n],t)}};var Yt=class extends e{constructor([n,t,o],m){let r=[\"zscan\",n,t];_optionalChain([o, 'optionalAccess', _53 => _53.match])&&r.push(\"match\",o.match),typeof _optionalChain([o, 'optionalAccess', _54 => _54.count])==\"number\"&&r.push(\"count\",o.count),super(r,m)}};var Wt=class extends e{constructor(n,t){super([\"zscore\",...n],t)}};var Vt=class extends e{constructor([n,t,o],m){let r=[\"zunion\",n];Array.isArray(t)?r.push(...t):r.push(t),o&&(\"weights\"in o&&o.weights?r.push(\"weights\",...o.weights):\"weight\"in o&&typeof o.weight==\"number\"&&r.push(\"weights\",o.weight),\"aggregate\"in o&&r.push(\"aggregate\",o.aggregate),_optionalChain([o, 'optionalAccess', _55 => _55.withScores])&&r.push(\"withscores\")),super(r,m)}};var _t=class extends e{constructor([n,t,o,m],r){let a=[\"zunionstore\",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&(\"weights\"in m&&m.weights?a.push(\"weights\",...m.weights):\"weight\"in m&&typeof m.weight==\"number\"&&a.push(\"weights\",m.weight),\"aggregate\"in m&&a.push(\"aggregate\",m.aggregate)),super(a,r)}};var Qt=class extends e{constructor(n,t){super([\"zdiffstore\",...n],t)}};var ne=class extends e{constructor(n,t){let[o,m]=n;super([\"zmscore\",o,...m],t)}};var te= (_class =class{constructor(n){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);_class.prototype.__init11.call(this);_class.prototype.__init12.call(this);_class.prototype.__init13.call(this);_class.prototype.__init14.call(this);_class.prototype.__init15.call(this);_class.prototype.__init16.call(this);_class.prototype.__init17.call(this);_class.prototype.__init18.call(this);_class.prototype.__init19.call(this);_class.prototype.__init20.call(this);_class.prototype.__init21.call(this);_class.prototype.__init22.call(this);_class.prototype.__init23.call(this);_class.prototype.__init24.call(this);_class.prototype.__init25.call(this);_class.prototype.__init26.call(this);_class.prototype.__init27.call(this);_class.prototype.__init28.call(this);_class.prototype.__init29.call(this);_class.prototype.__init30.call(this);_class.prototype.__init31.call(this);_class.prototype.__init32.call(this);_class.prototype.__init33.call(this);_class.prototype.__init34.call(this);_class.prototype.__init35.call(this);_class.prototype.__init36.call(this);_class.prototype.__init37.call(this);_class.prototype.__init38.call(this);_class.prototype.__init39.call(this);_class.prototype.__init40.call(this);_class.prototype.__init41.call(this);_class.prototype.__init42.call(this);_class.prototype.__init43.call(this);_class.prototype.__init44.call(this);_class.prototype.__init45.call(this);_class.prototype.__init46.call(this);_class.prototype.__init47.call(this);_class.prototype.__init48.call(this);_class.prototype.__init49.call(this);_class.prototype.__init50.call(this);_class.prototype.__init51.call(this);_class.prototype.__init52.call(this);_class.prototype.__init53.call(this);_class.prototype.__init54.call(this);_class.prototype.__init55.call(this);_class.prototype.__init56.call(this);_class.prototype.__init57.call(this);_class.prototype.__init58.call(this);_class.prototype.__init59.call(this);_class.prototype.__init60.call(this);_class.prototype.__init61.call(this);_class.prototype.__init62.call(this);_class.prototype.__init63.call(this);_class.prototype.__init64.call(this);_class.prototype.__init65.call(this);_class.prototype.__init66.call(this);_class.prototype.__init67.call(this);_class.prototype.__init68.call(this);_class.prototype.__init69.call(this);_class.prototype.__init70.call(this);_class.prototype.__init71.call(this);_class.prototype.__init72.call(this);_class.prototype.__init73.call(this);_class.prototype.__init74.call(this);_class.prototype.__init75.call(this);_class.prototype.__init76.call(this);_class.prototype.__init77.call(this);_class.prototype.__init78.call(this);_class.prototype.__init79.call(this);_class.prototype.__init80.call(this);_class.prototype.__init81.call(this);_class.prototype.__init82.call(this);_class.prototype.__init83.call(this);_class.prototype.__init84.call(this);_class.prototype.__init85.call(this);_class.prototype.__init86.call(this);_class.prototype.__init87.call(this);_class.prototype.__init88.call(this);_class.prototype.__init89.call(this);_class.prototype.__init90.call(this);_class.prototype.__init91.call(this);_class.prototype.__init92.call(this);_class.prototype.__init93.call(this);_class.prototype.__init94.call(this);_class.prototype.__init95.call(this);_class.prototype.__init96.call(this);_class.prototype.__init97.call(this);_class.prototype.__init98.call(this);_class.prototype.__init99.call(this);_class.prototype.__init100.call(this);_class.prototype.__init101.call(this);_class.prototype.__init102.call(this);_class.prototype.__init103.call(this);_class.prototype.__init104.call(this);_class.prototype.__init105.call(this);_class.prototype.__init106.call(this);_class.prototype.__init107.call(this);_class.prototype.__init108.call(this);_class.prototype.__init109.call(this);_class.prototype.__init110.call(this);_class.prototype.__init111.call(this);_class.prototype.__init112.call(this);_class.prototype.__init113.call(this);_class.prototype.__init114.call(this);_class.prototype.__init115.call(this);_class.prototype.__init116.call(this);_class.prototype.__init117.call(this);_class.prototype.__init118.call(this);_class.prototype.__init119.call(this);_class.prototype.__init120.call(this);_class.prototype.__init121.call(this);_class.prototype.__init122.call(this);_class.prototype.__init123.call(this);this.client=n.client,this.commands=[],this.commandOptions=n.commandOptions,this.multiExec=_nullishCoalesce(n.multiExec, () => (!1))}__init() {this.exec=async()=>{if(this.commands.length===0)throw new Error(\"Pipeline is empty\");let n=this.multiExec?[\"multi-exec\"]:[\"pipeline\"];return(await this.client.request({path:n,body:Object.values(this.commands).map(o=>o.command)})).map(({error:o,result:m},r)=>{if(o)throw new c(`Command ${r+1} [ ${this.commands[r].command[0]} ] failed: ${o}`);return this.commands[r].deserialize(m)})}}length(){return this.commands.length}chain(n){return this.commands.push(n),this}__init2() {this.append=(...n)=>this.chain(new C(n,this.commandOptions))}__init3() {this.bitcount=(...n)=>this.chain(new l(n,this.commandOptions))}__init4() {this.bitop=(n,t,o,...m)=>this.chain(new g([n,t,o,...m],this.commandOptions))}__init5() {this.bitpos=(...n)=>this.chain(new x(n,this.commandOptions))}__init6() {this.copy=(...n)=>this.chain(new f(n,this.commandOptions))}__init7() {this.zdiffstore=(...n)=>this.chain(new Qt(n,this.commandOptions))}__init8() {this.dbsize=()=>this.chain(new y(this.commandOptions))}__init9() {this.decr=(...n)=>this.chain(new b(n,this.commandOptions))}__init10() {this.decrby=(...n)=>this.chain(new O(n,this.commandOptions))}__init11() {this.del=(...n)=>this.chain(new T(n,this.commandOptions))}__init12() {this.echo=(...n)=>this.chain(new w(n,this.commandOptions))}__init13() {this.eval=(...n)=>this.chain(new D(n,this.commandOptions))}__init14() {this.evalsha=(...n)=>this.chain(new k(n,this.commandOptions))}__init15() {this.exists=(...n)=>this.chain(new A(n,this.commandOptions))}__init16() {this.expire=(...n)=>this.chain(new S(n,this.commandOptions))}__init17() {this.expireat=(...n)=>this.chain(new R(n,this.commandOptions))}__init18() {this.flushall=n=>this.chain(new M(n,this.commandOptions))}__init19() {this.flushdb=(...n)=>this.chain(new v(n,this.commandOptions))}__init20() {this.get=(...n)=>this.chain(new L(n,this.commandOptions))}__init21() {this.getbit=(...n)=>this.chain(new Z(n,this.commandOptions))}__init22() {this.getdel=(...n)=>this.chain(new N(n,this.commandOptions))}__init23() {this.getrange=(...n)=>this.chain(new G(n,this.commandOptions))}__init24() {this.getset=(n,t)=>this.chain(new B([n,t],this.commandOptions))}__init25() {this.hdel=(...n)=>this.chain(new U(n,this.commandOptions))}__init26() {this.hexists=(...n)=>this.chain(new H(n,this.commandOptions))}__init27() {this.hget=(...n)=>this.chain(new F(n,this.commandOptions))}__init28() {this.hgetall=(...n)=>this.chain(new q(n,this.commandOptions))}__init29() {this.hincrby=(...n)=>this.chain(new $(n,this.commandOptions))}__init30() {this.hincrbyfloat=(...n)=>this.chain(new X(n,this.commandOptions))}__init31() {this.hkeys=(...n)=>this.chain(new j(n,this.commandOptions))}__init32() {this.hlen=(...n)=>this.chain(new Y(n,this.commandOptions))}__init33() {this.hmget=(...n)=>this.chain(new W(n,this.commandOptions))}__init34() {this.hmset=(n,t)=>this.chain(new V([n,t],this.commandOptions))}__init35() {this.hrandfield=(n,t,o)=>this.chain(new _([n,t,o],this.commandOptions))}__init36() {this.hscan=(...n)=>this.chain(new Q(n,this.commandOptions))}__init37() {this.hset=(n,t)=>this.chain(new nn([n,t],this.commandOptions))}__init38() {this.hsetnx=(n,t,o)=>this.chain(new tn([n,t,o],this.commandOptions))}__init39() {this.hstrlen=(...n)=>this.chain(new en(n,this.commandOptions))}__init40() {this.hvals=(...n)=>this.chain(new on(n,this.commandOptions))}__init41() {this.incr=(...n)=>this.chain(new sn(n,this.commandOptions))}__init42() {this.incrby=(...n)=>this.chain(new mn(n,this.commandOptions))}__init43() {this.incrbyfloat=(...n)=>this.chain(new rn(n,this.commandOptions))}__init44() {this.keys=(...n)=>this.chain(new Mn(n,this.commandOptions))}__init45() {this.lindex=(...n)=>this.chain(new vn(n,this.commandOptions))}__init46() {this.linsert=(n,t,o,m)=>this.chain(new En([n,t,o,m],this.commandOptions))}__init47() {this.llen=(...n)=>this.chain(new zn(n,this.commandOptions))}__init48() {this.lmove=(...n)=>this.chain(new Jn(n,this.commandOptions))}__init49() {this.lpop=(...n)=>this.chain(new Pn(n,this.commandOptions))}__init50() {this.lpos=(...n)=>this.chain(new In(n,this.commandOptions))}__init51() {this.lpush=(n,...t)=>this.chain(new Kn([n,...t],this.commandOptions))}__init52() {this.lpushx=(n,...t)=>this.chain(new Ln([n,...t],this.commandOptions))}__init53() {this.lrange=(...n)=>this.chain(new Zn(n,this.commandOptions))}__init54() {this.lrem=(n,t,o)=>this.chain(new Nn([n,t,o],this.commandOptions))}__init55() {this.lset=(n,t,o)=>this.chain(new Gn([n,t,o],this.commandOptions))}__init56() {this.ltrim=(...n)=>this.chain(new Bn(n,this.commandOptions))}__init57() {this.mget=(...n)=>this.chain(new Un(n,this.commandOptions))}__init58() {this.mset=n=>this.chain(new Hn([n],this.commandOptions))}__init59() {this.msetnx=n=>this.chain(new Fn([n],this.commandOptions))}__init60() {this.persist=(...n)=>this.chain(new qn(n,this.commandOptions))}__init61() {this.pexpire=(...n)=>this.chain(new $n(n,this.commandOptions))}__init62() {this.pexpireat=(...n)=>this.chain(new Xn(n,this.commandOptions))}__init63() {this.ping=n=>this.chain(new jn(n,this.commandOptions))}__init64() {this.psetex=(n,t,o)=>this.chain(new Yn([n,t,o],this.commandOptions))}__init65() {this.pttl=(...n)=>this.chain(new Wn(n,this.commandOptions))}__init66() {this.publish=(...n)=>this.chain(new Vn(n,this.commandOptions))}__init67() {this.randomkey=()=>this.chain(new _n(this.commandOptions))}__init68() {this.rename=(...n)=>this.chain(new Qn(n,this.commandOptions))}__init69() {this.renamenx=(...n)=>this.chain(new nt(n,this.commandOptions))}__init70() {this.rpop=(...n)=>this.chain(new tt(n,this.commandOptions))}__init71() {this.rpush=(n,...t)=>this.chain(new et([n,...t],this.commandOptions))}__init72() {this.rpushx=(n,...t)=>this.chain(new ot([n,...t],this.commandOptions))}__init73() {this.sadd=(n,...t)=>this.chain(new st([n,...t],this.commandOptions))}__init74() {this.scan=(...n)=>this.chain(new mt(n,this.commandOptions))}__init75() {this.scard=(...n)=>this.chain(new rt(n,this.commandOptions))}__init76() {this.scriptExists=(...n)=>this.chain(new at(n,this.commandOptions))}__init77() {this.scriptFlush=(...n)=>this.chain(new it(n,this.commandOptions))}__init78() {this.scriptLoad=(...n)=>this.chain(new pt(n,this.commandOptions))}__init79() {this.sdiff=(...n)=>this.chain(new dt(n,this.commandOptions))}__init80() {this.sdiffstore=(...n)=>this.chain(new ct(n,this.commandOptions))}__init81() {this.set=(n,t,o)=>this.chain(new ut([n,t,o],this.commandOptions))}__init82() {this.setbit=(...n)=>this.chain(new ht(n,this.commandOptions))}__init83() {this.setex=(n,t,o)=>this.chain(new Ct([n,t,o],this.commandOptions))}__init84() {this.setnx=(n,t)=>this.chain(new lt([n,t],this.commandOptions))}__init85() {this.setrange=(...n)=>this.chain(new gt(n,this.commandOptions))}__init86() {this.sinter=(...n)=>this.chain(new xt(n,this.commandOptions))}__init87() {this.sinterstore=(...n)=>this.chain(new ft(n,this.commandOptions))}__init88() {this.sismember=(n,t)=>this.chain(new yt([n,t],this.commandOptions))}__init89() {this.smembers=(...n)=>this.chain(new bt(n,this.commandOptions))}__init90() {this.smismember=(n,t)=>this.chain(new Ot([n,t],this.commandOptions))}__init91() {this.smove=(n,t,o)=>this.chain(new Tt([n,t,o],this.commandOptions))}__init92() {this.spop=(...n)=>this.chain(new wt(n,this.commandOptions))}__init93() {this.srandmember=(...n)=>this.chain(new Dt(n,this.commandOptions))}__init94() {this.srem=(n,...t)=>this.chain(new kt([n,...t],this.commandOptions))}__init95() {this.sscan=(...n)=>this.chain(new At(n,this.commandOptions))}__init96() {this.strlen=(...n)=>this.chain(new St(n,this.commandOptions))}__init97() {this.sunion=(...n)=>this.chain(new Rt(n,this.commandOptions))}__init98() {this.sunionstore=(...n)=>this.chain(new Mt(n,this.commandOptions))}__init99() {this.time=()=>this.chain(new vt(this.commandOptions))}__init100() {this.touch=(...n)=>this.chain(new Et(n,this.commandOptions))}__init101() {this.ttl=(...n)=>this.chain(new zt(n,this.commandOptions))}__init102() {this.type=(...n)=>this.chain(new Jt(n,this.commandOptions))}__init103() {this.unlink=(...n)=>this.chain(new Pt(n,this.commandOptions))}__init104() {this.zadd=(...n)=>\"score\"in n[1]?this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions)):this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions))}__init105() {this.zcard=(...n)=>this.chain(new It(n,this.commandOptions))}__init106() {this.zcount=(...n)=>this.chain(new Kt(n,this.commandOptions))}__init107() {this.zincrby=(n,t,o)=>this.chain(new Lt([n,t,o],this.commandOptions))}__init108() {this.zinterstore=(...n)=>this.chain(new Zt(n,this.commandOptions))}__init109() {this.zlexcount=(...n)=>this.chain(new Nt(n,this.commandOptions))}__init110() {this.zmscore=(...n)=>this.chain(new ne(n,this.commandOptions))}__init111() {this.zpopmax=(...n)=>this.chain(new Gt(n,this.commandOptions))}__init112() {this.zpopmin=(...n)=>this.chain(new Bt(n,this.commandOptions))}__init113() {this.zrange=(...n)=>this.chain(new Ut(n,this.commandOptions))}__init114() {this.zrank=(n,t)=>this.chain(new Ht([n,t],this.commandOptions))}__init115() {this.zrem=(n,...t)=>this.chain(new Ft([n,...t],this.commandOptions))}__init116() {this.zremrangebylex=(...n)=>this.chain(new qt(n,this.commandOptions))}__init117() {this.zremrangebyrank=(...n)=>this.chain(new $t(n,this.commandOptions))}__init118() {this.zremrangebyscore=(...n)=>this.chain(new Xt(n,this.commandOptions))}__init119() {this.zrevrank=(n,t)=>this.chain(new jt([n,t],this.commandOptions))}__init120() {this.zscan=(...n)=>this.chain(new Yt(n,this.commandOptions))}__init121() {this.zscore=(n,t)=>this.chain(new Wt([n,t],this.commandOptions))}__init122() {this.zunionstore=(...n)=>this.chain(new _t(n,this.commandOptions))}__init123() {this.zunion=(...n)=>this.chain(new Vt(n,this.commandOptions))}get json(){return{arrappend:(...n)=>this.chain(new an(n,this.commandOptions)),arrindex:(...n)=>this.chain(new pn(n,this.commandOptions)),arrinsert:(...n)=>this.chain(new dn(n,this.commandOptions)),arrlen:(...n)=>this.chain(new cn(n,this.commandOptions)),arrpop:(...n)=>this.chain(new un(n,this.commandOptions)),arrtrim:(...n)=>this.chain(new hn(n,this.commandOptions)),clear:(...n)=>this.chain(new Cn(n,this.commandOptions)),del:(...n)=>this.chain(new ln(n,this.commandOptions)),forget:(...n)=>this.chain(new gn(n,this.commandOptions)),geoadd:(...n)=>this.chain(new E(n,this.commandOptions)),geodist:(...n)=>this.chain(new z(n,this.commandOptions)),geopos:(...n)=>this.chain(new J(n,this.commandOptions)),geohash:(...n)=>this.chain(new P(n,this.commandOptions)),geosearch:(...n)=>this.chain(new I(n,this.commandOptions)),geosearchstore:(...n)=>this.chain(new K(n,this.commandOptions)),get:(...n)=>this.chain(new xn(n,this.commandOptions)),mget:(...n)=>this.chain(new fn(n,this.commandOptions)),numincrby:(...n)=>this.chain(new yn(n,this.commandOptions)),nummultby:(...n)=>this.chain(new bn(n,this.commandOptions)),objkeys:(...n)=>this.chain(new On(n,this.commandOptions)),objlen:(...n)=>this.chain(new Tn(n,this.commandOptions)),resp:(...n)=>this.chain(new wn(n,this.commandOptions)),set:(...n)=>this.chain(new Dn(n,this.commandOptions)),strappend:(...n)=>this.chain(new kn(n,this.commandOptions)),strlen:(...n)=>this.chain(new An(n,this.commandOptions)),toggle:(...n)=>this.chain(new Sn(n,this.commandOptions)),type:(...n)=>this.chain(new Rn(n,this.commandOptions))}}}, _class);var _enchex = require('crypto-js/enc-hex'); var _enchex2 = _interopRequireDefault(_enchex);var _sha1 = require('crypto-js/sha1'); var _sha12 = _interopRequireDefault(_sha1);var me=class{constructor(n,t){this.redis=n,this.sha1=this.digest(t),this.script=t}async eval(n,t){return await this.redis.eval(this.script,n,t)}async evalsha(n,t){return await this.redis.evalsha(this.sha1,n,t)}async exec(n,t){return await this.redis.evalsha(this.sha1,n,t).catch(async m=>{if(m instanceof Error&&m.message.toLowerCase().includes(\"noscript\"))return await this.redis.eval(this.script,n,t);throw m})}digest(n){return _enchex2.default.stringify(_sha12.default.call(void 0, n))}};var ue= (_class2 =class{constructor(n,t){;_class2.prototype.__init124.call(this);_class2.prototype.__init125.call(this);_class2.prototype.__init126.call(this);_class2.prototype.__init127.call(this);_class2.prototype.__init128.call(this);_class2.prototype.__init129.call(this);_class2.prototype.__init130.call(this);_class2.prototype.__init131.call(this);_class2.prototype.__init132.call(this);_class2.prototype.__init133.call(this);_class2.prototype.__init134.call(this);_class2.prototype.__init135.call(this);_class2.prototype.__init136.call(this);_class2.prototype.__init137.call(this);_class2.prototype.__init138.call(this);_class2.prototype.__init139.call(this);_class2.prototype.__init140.call(this);_class2.prototype.__init141.call(this);_class2.prototype.__init142.call(this);_class2.prototype.__init143.call(this);_class2.prototype.__init144.call(this);_class2.prototype.__init145.call(this);_class2.prototype.__init146.call(this);_class2.prototype.__init147.call(this);_class2.prototype.__init148.call(this);_class2.prototype.__init149.call(this);_class2.prototype.__init150.call(this);_class2.prototype.__init151.call(this);_class2.prototype.__init152.call(this);_class2.prototype.__init153.call(this);_class2.prototype.__init154.call(this);_class2.prototype.__init155.call(this);_class2.prototype.__init156.call(this);_class2.prototype.__init157.call(this);_class2.prototype.__init158.call(this);_class2.prototype.__init159.call(this);_class2.prototype.__init160.call(this);_class2.prototype.__init161.call(this);_class2.prototype.__init162.call(this);_class2.prototype.__init163.call(this);_class2.prototype.__init164.call(this);_class2.prototype.__init165.call(this);_class2.prototype.__init166.call(this);_class2.prototype.__init167.call(this);_class2.prototype.__init168.call(this);_class2.prototype.__init169.call(this);_class2.prototype.__init170.call(this);_class2.prototype.__init171.call(this);_class2.prototype.__init172.call(this);_class2.prototype.__init173.call(this);_class2.prototype.__init174.call(this);_class2.prototype.__init175.call(this);_class2.prototype.__init176.call(this);_class2.prototype.__init177.call(this);_class2.prototype.__init178.call(this);_class2.prototype.__init179.call(this);_class2.prototype.__init180.call(this);_class2.prototype.__init181.call(this);_class2.prototype.__init182.call(this);_class2.prototype.__init183.call(this);_class2.prototype.__init184.call(this);_class2.prototype.__init185.call(this);_class2.prototype.__init186.call(this);_class2.prototype.__init187.call(this);_class2.prototype.__init188.call(this);_class2.prototype.__init189.call(this);_class2.prototype.__init190.call(this);_class2.prototype.__init191.call(this);_class2.prototype.__init192.call(this);_class2.prototype.__init193.call(this);_class2.prototype.__init194.call(this);_class2.prototype.__init195.call(this);_class2.prototype.__init196.call(this);_class2.prototype.__init197.call(this);_class2.prototype.__init198.call(this);_class2.prototype.__init199.call(this);_class2.prototype.__init200.call(this);_class2.prototype.__init201.call(this);_class2.prototype.__init202.call(this);_class2.prototype.__init203.call(this);_class2.prototype.__init204.call(this);_class2.prototype.__init205.call(this);_class2.prototype.__init206.call(this);_class2.prototype.__init207.call(this);_class2.prototype.__init208.call(this);_class2.prototype.__init209.call(this);_class2.prototype.__init210.call(this);_class2.prototype.__init211.call(this);_class2.prototype.__init212.call(this);_class2.prototype.__init213.call(this);_class2.prototype.__init214.call(this);_class2.prototype.__init215.call(this);_class2.prototype.__init216.call(this);_class2.prototype.__init217.call(this);_class2.prototype.__init218.call(this);_class2.prototype.__init219.call(this);_class2.prototype.__init220.call(this);_class2.prototype.__init221.call(this);_class2.prototype.__init222.call(this);_class2.prototype.__init223.call(this);_class2.prototype.__init224.call(this);_class2.prototype.__init225.call(this);_class2.prototype.__init226.call(this);_class2.prototype.__init227.call(this);_class2.prototype.__init228.call(this);_class2.prototype.__init229.call(this);_class2.prototype.__init230.call(this);_class2.prototype.__init231.call(this);_class2.prototype.__init232.call(this);_class2.prototype.__init233.call(this);_class2.prototype.__init234.call(this);_class2.prototype.__init235.call(this);_class2.prototype.__init236.call(this);_class2.prototype.__init237.call(this);_class2.prototype.__init238.call(this);_class2.prototype.__init239.call(this);_class2.prototype.__init240.call(this);_class2.prototype.__init241.call(this);_class2.prototype.__init242.call(this);_class2.prototype.__init243.call(this);_class2.prototype.__init244.call(this);_class2.prototype.__init245.call(this);_class2.prototype.__init246.call(this);_class2.prototype.__init247.call(this);_class2.prototype.__init248.call(this);_class2.prototype.__init249.call(this);_class2.prototype.__init250.call(this);_class2.prototype.__init251.call(this);this.client=n,this.opts=t,this.enableTelemetry=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _56 => _56.enableTelemetry]), () => (!0))}get json(){return{arrappend:(...n)=>new an(n,this.opts).exec(this.client),arrindex:(...n)=>new pn(n,this.opts).exec(this.client),arrinsert:(...n)=>new dn(n,this.opts).exec(this.client),arrlen:(...n)=>new cn(n,this.opts).exec(this.client),arrpop:(...n)=>new un(n,this.opts).exec(this.client),arrtrim:(...n)=>new hn(n,this.opts).exec(this.client),clear:(...n)=>new Cn(n,this.opts).exec(this.client),del:(...n)=>new ln(n,this.opts).exec(this.client),forget:(...n)=>new gn(n,this.opts).exec(this.client),geoadd:(...n)=>new E(n,this.opts).exec(this.client),geopos:(...n)=>new J(n,this.opts).exec(this.client),geodist:(...n)=>new z(n,this.opts).exec(this.client),geohash:(...n)=>new P(n,this.opts).exec(this.client),geosearch:(...n)=>new I(n,this.opts).exec(this.client),geosearchstore:(...n)=>new K(n,this.opts).exec(this.client),get:(...n)=>new xn(n,this.opts).exec(this.client),mget:(...n)=>new fn(n,this.opts).exec(this.client),numincrby:(...n)=>new yn(n,this.opts).exec(this.client),nummultby:(...n)=>new bn(n,this.opts).exec(this.client),objkeys:(...n)=>new On(n,this.opts).exec(this.client),objlen:(...n)=>new Tn(n,this.opts).exec(this.client),resp:(...n)=>new wn(n,this.opts).exec(this.client),set:(...n)=>new Dn(n,this.opts).exec(this.client),strappend:(...n)=>new kn(n,this.opts).exec(this.client),strlen:(...n)=>new An(n,this.opts).exec(this.client),toggle:(...n)=>new Sn(n,this.opts).exec(this.client),type:(...n)=>new Rn(n,this.opts).exec(this.client)}}__init124() {this.use=n=>{let t=this.client.request.bind(this.client);this.client.request=o=>n(o,t)}}__init125() {this.addTelemetry=n=>{if(this.enableTelemetry)try{this.client.mergeTelemetry(n)}catch (e12){}}}createScript(n){return new me(this,n)}__init126() {this.pipeline=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!1})}__init127() {this.multi=()=>new te({client:this.client,commandOptions:this.opts,multiExec:!0})}__init128() {this.append=(...n)=>new C(n,this.opts).exec(this.client)}__init129() {this.bitcount=(...n)=>new l(n,this.opts).exec(this.client)}__init130() {this.bitop=(n,t,o,...m)=>new g([n,t,o,...m],this.opts).exec(this.client)}__init131() {this.bitpos=(...n)=>new x(n,this.opts).exec(this.client)}__init132() {this.copy=(...n)=>new f(n,this.opts).exec(this.client)}__init133() {this.dbsize=()=>new y(this.opts).exec(this.client)}__init134() {this.decr=(...n)=>new b(n,this.opts).exec(this.client)}__init135() {this.decrby=(...n)=>new O(n,this.opts).exec(this.client)}__init136() {this.del=(...n)=>new T(n,this.opts).exec(this.client)}__init137() {this.echo=(...n)=>new w(n,this.opts).exec(this.client)}__init138() {this.eval=(...n)=>new D(n,this.opts).exec(this.client)}__init139() {this.evalsha=(...n)=>new k(n,this.opts).exec(this.client)}__init140() {this.exists=(...n)=>new A(n,this.opts).exec(this.client)}__init141() {this.expire=(...n)=>new S(n,this.opts).exec(this.client)}__init142() {this.expireat=(...n)=>new R(n,this.opts).exec(this.client)}__init143() {this.flushall=n=>new M(n,this.opts).exec(this.client)}__init144() {this.flushdb=(...n)=>new v(n,this.opts).exec(this.client)}__init145() {this.get=(...n)=>new L(n,this.opts).exec(this.client)}__init146() {this.getbit=(...n)=>new Z(n,this.opts).exec(this.client)}__init147() {this.getdel=(...n)=>new N(n,this.opts).exec(this.client)}__init148() {this.getrange=(...n)=>new G(n,this.opts).exec(this.client)}__init149() {this.getset=(n,t)=>new B([n,t],this.opts).exec(this.client)}__init150() {this.hdel=(...n)=>new U(n,this.opts).exec(this.client)}__init151() {this.hexists=(...n)=>new H(n,this.opts).exec(this.client)}__init152() {this.hget=(...n)=>new F(n,this.opts).exec(this.client)}__init153() {this.hgetall=(...n)=>new q(n,this.opts).exec(this.client)}__init154() {this.hincrby=(...n)=>new $(n,this.opts).exec(this.client)}__init155() {this.hincrbyfloat=(...n)=>new X(n,this.opts).exec(this.client)}__init156() {this.hkeys=(...n)=>new j(n,this.opts).exec(this.client)}__init157() {this.hlen=(...n)=>new Y(n,this.opts).exec(this.client)}__init158() {this.hmget=(...n)=>new W(n,this.opts).exec(this.client)}__init159() {this.hmset=(n,t)=>new V([n,t],this.opts).exec(this.client)}__init160() {this.hrandfield=(n,t,o)=>new _([n,t,o],this.opts).exec(this.client)}__init161() {this.hscan=(...n)=>new Q(n,this.opts).exec(this.client)}__init162() {this.hset=(n,t)=>new nn([n,t],this.opts).exec(this.client)}__init163() {this.hsetnx=(n,t,o)=>new tn([n,t,o],this.opts).exec(this.client)}__init164() {this.hstrlen=(...n)=>new en(n,this.opts).exec(this.client)}__init165() {this.hvals=(...n)=>new on(n,this.opts).exec(this.client)}__init166() {this.incr=(...n)=>new sn(n,this.opts).exec(this.client)}__init167() {this.incrby=(...n)=>new mn(n,this.opts).exec(this.client)}__init168() {this.incrbyfloat=(...n)=>new rn(n,this.opts).exec(this.client)}__init169() {this.keys=(...n)=>new Mn(n,this.opts).exec(this.client)}__init170() {this.lindex=(...n)=>new vn(n,this.opts).exec(this.client)}__init171() {this.linsert=(n,t,o,m)=>new En([n,t,o,m],this.opts).exec(this.client)}__init172() {this.llen=(...n)=>new zn(n,this.opts).exec(this.client)}__init173() {this.lmove=(...n)=>new Jn(n,this.opts).exec(this.client)}__init174() {this.lpop=(...n)=>new Pn(n,this.opts).exec(this.client)}__init175() {this.lpos=(...n)=>new In(n,this.opts).exec(this.client)}__init176() {this.lpush=(n,...t)=>new Kn([n,...t],this.opts).exec(this.client)}__init177() {this.lpushx=(n,...t)=>new Ln([n,...t],this.opts).exec(this.client)}__init178() {this.lrange=(...n)=>new Zn(n,this.opts).exec(this.client)}__init179() {this.lrem=(n,t,o)=>new Nn([n,t,o],this.opts).exec(this.client)}__init180() {this.lset=(n,t,o)=>new Gn([n,t,o],this.opts).exec(this.client)}__init181() {this.ltrim=(...n)=>new Bn(n,this.opts).exec(this.client)}__init182() {this.mget=(...n)=>new Un(n,this.opts).exec(this.client)}__init183() {this.mset=n=>new Hn([n],this.opts).exec(this.client)}__init184() {this.msetnx=n=>new Fn([n],this.opts).exec(this.client)}__init185() {this.persist=(...n)=>new qn(n,this.opts).exec(this.client)}__init186() {this.pexpire=(...n)=>new $n(n,this.opts).exec(this.client)}__init187() {this.pexpireat=(...n)=>new Xn(n,this.opts).exec(this.client)}__init188() {this.ping=n=>new jn(n,this.opts).exec(this.client)}__init189() {this.psetex=(n,t,o)=>new Yn([n,t,o],this.opts).exec(this.client)}__init190() {this.pttl=(...n)=>new Wn(n,this.opts).exec(this.client)}__init191() {this.publish=(...n)=>new Vn(n,this.opts).exec(this.client)}__init192() {this.randomkey=()=>new _n().exec(this.client)}__init193() {this.rename=(...n)=>new Qn(n,this.opts).exec(this.client)}__init194() {this.renamenx=(...n)=>new nt(n,this.opts).exec(this.client)}__init195() {this.rpop=(...n)=>new tt(n,this.opts).exec(this.client)}__init196() {this.rpush=(n,...t)=>new et([n,...t],this.opts).exec(this.client)}__init197() {this.rpushx=(n,...t)=>new ot([n,...t],this.opts).exec(this.client)}__init198() {this.sadd=(n,...t)=>new st([n,...t],this.opts).exec(this.client)}__init199() {this.scan=(...n)=>new mt(n,this.opts).exec(this.client)}__init200() {this.scard=(...n)=>new rt(n,this.opts).exec(this.client)}__init201() {this.scriptExists=(...n)=>new at(n,this.opts).exec(this.client)}__init202() {this.scriptFlush=(...n)=>new it(n,this.opts).exec(this.client)}__init203() {this.scriptLoad=(...n)=>new pt(n,this.opts).exec(this.client)}__init204() {this.sdiff=(...n)=>new dt(n,this.opts).exec(this.client)}__init205() {this.sdiffstore=(...n)=>new ct(n,this.opts).exec(this.client)}__init206() {this.set=(n,t,o)=>new ut([n,t,o],this.opts).exec(this.client)}__init207() {this.setbit=(...n)=>new ht(n,this.opts).exec(this.client)}__init208() {this.setex=(n,t,o)=>new Ct([n,t,o],this.opts).exec(this.client)}__init209() {this.setnx=(n,t)=>new lt([n,t],this.opts).exec(this.client)}__init210() {this.setrange=(...n)=>new gt(n,this.opts).exec(this.client)}__init211() {this.sinter=(...n)=>new xt(n,this.opts).exec(this.client)}__init212() {this.sinterstore=(...n)=>new ft(n,this.opts).exec(this.client)}__init213() {this.sismember=(n,t)=>new yt([n,t],this.opts).exec(this.client)}__init214() {this.smismember=(n,t)=>new Ot([n,t],this.opts).exec(this.client)}__init215() {this.smembers=(...n)=>new bt(n,this.opts).exec(this.client)}__init216() {this.smove=(n,t,o)=>new Tt([n,t,o],this.opts).exec(this.client)}__init217() {this.spop=(...n)=>new wt(n,this.opts).exec(this.client)}__init218() {this.srandmember=(...n)=>new Dt(n,this.opts).exec(this.client)}__init219() {this.srem=(n,...t)=>new kt([n,...t],this.opts).exec(this.client)}__init220() {this.sscan=(...n)=>new At(n,this.opts).exec(this.client)}__init221() {this.strlen=(...n)=>new St(n,this.opts).exec(this.client)}__init222() {this.sunion=(...n)=>new Rt(n,this.opts).exec(this.client)}__init223() {this.sunionstore=(...n)=>new Mt(n,this.opts).exec(this.client)}__init224() {this.time=()=>new vt().exec(this.client)}__init225() {this.touch=(...n)=>new Et(n,this.opts).exec(this.client)}__init226() {this.ttl=(...n)=>new zt(n,this.opts).exec(this.client)}__init227() {this.type=(...n)=>new Jt(n,this.opts).exec(this.client)}__init228() {this.unlink=(...n)=>new Pt(n,this.opts).exec(this.client)}__init229() {this.xadd=(...n)=>new oe(n,this.opts).exec(this.client)}__init230() {this.xrange=(...n)=>new se(n,this.opts).exec(this.client)}__init231() {this.zadd=(...n)=>\"score\"in n[1]?new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client):new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client)}__init232() {this.zcard=(...n)=>new It(n,this.opts).exec(this.client)}__init233() {this.zcount=(...n)=>new Kt(n,this.opts).exec(this.client)}__init234() {this.zdiffstore=(...n)=>new Qt(n,this.opts).exec(this.client)}__init235() {this.zincrby=(n,t,o)=>new Lt([n,t,o],this.opts).exec(this.client)}__init236() {this.zinterstore=(...n)=>new Zt(n,this.opts).exec(this.client)}__init237() {this.zlexcount=(...n)=>new Nt(n,this.opts).exec(this.client)}__init238() {this.zmscore=(...n)=>new ne(n,this.opts).exec(this.client)}__init239() {this.zpopmax=(...n)=>new Gt(n,this.opts).exec(this.client)}__init240() {this.zpopmin=(...n)=>new Bt(n,this.opts).exec(this.client)}__init241() {this.zrange=(...n)=>new Ut(n,this.opts).exec(this.client)}__init242() {this.zrank=(n,t)=>new Ht([n,t],this.opts).exec(this.client)}__init243() {this.zrem=(n,...t)=>new Ft([n,...t],this.opts).exec(this.client)}__init244() {this.zremrangebylex=(...n)=>new qt(n,this.opts).exec(this.client)}__init245() {this.zremrangebyrank=(...n)=>new $t(n,this.opts).exec(this.client)}__init246() {this.zremrangebyscore=(...n)=>new Xt(n,this.opts).exec(this.client)}__init247() {this.zrevrank=(n,t)=>new jt([n,t],this.opts).exec(this.client)}__init248() {this.zscan=(...n)=>new Yt(n,this.opts).exec(this.client)}__init249() {this.zscore=(n,t)=>new Wt([n,t],this.opts).exec(this.client)}__init250() {this.zunion=(...n)=>new Vt(n,this.opts).exec(this.client)}__init251() {this.zunionstore=(...n)=>new _t(n,this.opts).exec(this.client)}}, _class2);var cC=\"v1.24.3\";exports.a = ie; exports.b = ue; exports.c = cC;\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkJIU2S2DZjs = require('./chunk-JIU2S2DZ.js');typeof atob>\"u\"&&(global.atob=function(n){return Buffer.from(n,\"base64\").toString(\"utf-8\")});var a=class n extends _chunkJIU2S2DZjs.b{constructor(e){if(\"request\"in e){super(e);return}(e.url.startsWith(\" \")||e.url.endsWith(\" \")||/\\r|\\n/.test(e.url))&&console.warn(\"The redis url contains whitespace or newline, which can cause errors!\"),(e.token.startsWith(\" \")||e.token.endsWith(\" \")||/\\r|\\n/.test(e.token))&&console.warn(\"The redis token contains whitespace or newline, which can cause errors!\");let t=new (0, _chunkJIU2S2DZjs.a)({baseUrl:e.url,retry:e.retry,headers:{authorization:`Bearer ${e.token}`},agent:e.agent,responseEncoding:e.responseEncoding,cache:e.cache||\"no-store\"});super(t,{automaticDeserialization:e.automaticDeserialization,enableTelemetry:!process.env.UPSTASH_DISABLE_TELEMETRY}),this.addTelemetry({runtime:typeof EdgeRuntime==\"string\"?\"edge-light\":`node@${process.version}`,platform:process.env.VERCEL?\"vercel\":process.env.AWS_REGION?\"aws\":\"unknown\",sdk:`@upstash/redis@${_chunkJIU2S2DZjs.c}`})}static fromEnv(e){if(typeof _optionalChain([process, 'optionalAccess', _ => _.env])>\"u\")throw new Error('Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from \"@upstash/redis/cloudflare\" instead');let t=_optionalChain([process, 'optionalAccess', _2 => _2.env, 'access', _3 => _3.UPSTASH_REDIS_REST_URL]);if(!t)throw new Error(\"Unable to find environment variable: `UPSTASH_REDIS_REST_URL`\");let s=_optionalChain([process, 'optionalAccess', _4 => _4.env, 'access', _5 => _5.UPSTASH_REDIS_REST_TOKEN]);if(!s)throw new Error(\"Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`\");return new n({...e,url:t,token:s})}};exports.Redis = a;\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));","module.exports = require(\"crypto\");","module.exports = require(\"fs/promises\");","module.exports = require(\"path\");","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});// src/index.ts\nvar _redis = require('@upstash/redis');\nvar _kv = null;\nprocess.env.UPSTASH_DISABLE_TELEMETRY = \"1\";\nvar VercelKV = class extends _redis.Redis {\n // This API is based on https://github.com/redis/node-redis#scan-iterator which is not supported in @upstash/redis\n /**\n * Same as `scan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *scanIterator(options) {\n let cursor = 0;\n let keys;\n do {\n [cursor, keys] = await this.scan(cursor, options);\n for (const key of keys) {\n yield key;\n }\n } while (cursor !== 0);\n }\n /**\n * Same as `hscan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *hscanIterator(key, options) {\n let cursor = 0;\n let items;\n do {\n [cursor, items] = await this.hscan(key, cursor, options);\n for (const item of items) {\n yield item;\n }\n } while (cursor !== 0);\n }\n /**\n * Same as `sscan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *sscanIterator(key, options) {\n let cursor = 0;\n let items;\n do {\n [cursor, items] = await this.sscan(key, cursor, options);\n for (const item of items) {\n yield item;\n }\n } while (cursor !== 0);\n }\n /**\n * Same as `zscan` but returns an AsyncIterator to allow iteration via `for await`.\n */\n async *zscanIterator(key, options) {\n let cursor = 0;\n let items;\n do {\n [cursor, items] = await this.zscan(key, cursor, options);\n for (const item of items) {\n yield item;\n }\n } while (cursor !== 0);\n }\n};\nfunction createClient(config) {\n return new VercelKV(config);\n}\nvar src_default = new Proxy(\n {},\n {\n get(target, prop, receiver) {\n if (prop === \"then\" || prop === \"parse\") {\n return Reflect.get(target, prop, receiver);\n }\n if (!_kv) {\n if (!process.env.KV_REST_API_URL || !process.env.KV_REST_API_TOKEN) {\n throw new Error(\n \"@vercel/kv: Missing required environment variables KV_REST_API_URL and KV_REST_API_TOKEN\"\n );\n }\n console.warn(\n '\\x1B[33m\"The default export has been moved to a named export and it will be removed in version 1, change to import { kv }\\x1B[0m\"'\n );\n _kv = createClient({\n url: process.env.KV_REST_API_URL,\n token: process.env.KV_REST_API_TOKEN\n });\n }\n return Reflect.get(_kv, prop);\n }\n }\n);\nvar kv = new Proxy(\n {},\n {\n get(target, prop) {\n if (!_kv) {\n if (!process.env.KV_REST_API_URL || !process.env.KV_REST_API_TOKEN) {\n throw new Error(\n \"@vercel/kv: Missing required environment variables KV_REST_API_URL and KV_REST_API_TOKEN\"\n );\n }\n _kv = createClient({\n url: process.env.KV_REST_API_URL,\n token: process.env.KV_REST_API_TOKEN\n });\n }\n return Reflect.get(_kv, prop);\n }\n }\n);\n\n\n\n\n\nexports.VercelKV = VercelKV; exports.createClient = createClient; exports.default = src_default; exports.kv = kv;\n//# sourceMappingURL=index.cjs.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","const fs = require('fs/promises')\nconst path = require('path')\n\nconst { createClient } = require('@vercel/kv')\n\nasync function collectExamplesResult(manifestFile) {\n const file = path.join(process.cwd(), manifestFile)\n const contents = await fs.readFile(file, 'utf-8')\n const results = JSON.parse(contents)\n\n let failingCount = 0\n let passingCount = 0\n\n const currentDate = new Date()\n const isoString = currentDate.toISOString()\n const timestamp = isoString.slice(0, 19).replace('T', ' ')\n\n for (const isPassing of Object.values(results)) {\n if (isPassing) {\n passingCount += 1\n } else {\n failingCount += 1\n }\n }\n const status = `${process.env.GITHUB_SHA}\\t${timestamp}\\t${passingCount}/${\n passingCount + failingCount\n }`\n\n return {\n status,\n // Uses JSON.stringify to create minified JSON, otherwise whitespace is preserved.\n data: JSON.stringify(results),\n }\n}\n\nasync function collectResults(manifestFile) {\n const file = path.join(process.cwd(), manifestFile)\n const contents = await fs.readFile(file, 'utf-8')\n const results = JSON.parse(contents)\n\n let passingTests = ''\n let failingTests = ''\n let passCount = 0\n let failCount = 0\n\n const currentDate = new Date()\n const isoString = currentDate.toISOString()\n const timestamp = isoString.slice(0, 19).replace('T', ' ')\n\n if (results.version === 2) {\n for (const [testFileName, result] of Object.entries(results.suites)) {\n let suitePassCount = 0\n let suiteFailCount = 0\n\n suitePassCount += result.passed.length\n suiteFailCount += result.failed.length\n\n if (suitePassCount > 0) {\n passingTests += `${testFileName}\\n`\n }\n\n if (suiteFailCount > 0) {\n failingTests += `${testFileName}\\n`\n }\n\n for (const passed of result.passed) {\n const passedName = passed.replaceAll('`', '\\\\`')\n passingTests += `* ${passedName}\\n`\n }\n\n for (const passed of result.failed) {\n const failedName = passed.replaceAll('`', '\\\\`')\n failingTests += `* ${failedName}\\n`\n }\n\n passCount += suitePassCount\n failCount += suiteFailCount\n\n if (suitePassCount > 0) {\n passingTests += `\\n`\n }\n\n if (suiteFailCount > 0) {\n failingTests += `\\n`\n }\n }\n\n const testRun = `${process.env.GITHUB_SHA}\\t${timestamp}\\t${passCount}/${\n passCount + failCount\n }`\n return { testRun, passingTests, failingTests }\n } else {\n for (const [testFileName, result] of Object.entries(results)) {\n let suitePassCount = 0\n let suiteFailCount = 0\n\n suitePassCount += result.passed.length\n suiteFailCount += result.failed.length\n\n if (suitePassCount > 0) {\n passingTests += `${testFileName}\\n`\n }\n\n if (suiteFailCount > 0) {\n failingTests += `${testFileName}\\n`\n }\n\n for (const passed of result.passed) {\n const passedName = passed.replaceAll('`', '\\\\`')\n passingTests += `* ${passedName}\\n`\n }\n\n for (const passed of result.failed) {\n const failedName = passed.replaceAll('`', '\\\\`')\n failingTests += `* ${failedName}\\n`\n }\n\n passCount += suitePassCount\n failCount += suiteFailCount\n\n if (suitePassCount > 0) {\n passingTests += `\\n`\n }\n\n if (suiteFailCount > 0) {\n failingTests += `\\n`\n }\n }\n const testRun = `${process.env.GITHUB_SHA}\\t${timestamp}\\t${passCount}/${\n passCount + failCount\n }`\n\n return { testRun, passingTests, failingTests }\n }\n}\n\nasync function main() {\n try {\n const developmentResult = await collectResults(\n 'test/turbopack-dev-tests-manifest.json'\n )\n const productionResult = await collectResults(\n 'test/turbopack-build-tests-manifest.json'\n )\n const developmentExamplesResult = await collectExamplesResult(\n 'test/turbopack-dev-examples-manifest.json'\n )\n\n const kv = createClient({\n url: process.env.TURBOYET_KV_REST_API_URL,\n token: process.env.TURBOYET_KV_REST_API_TOKEN,\n })\n\n console.log('TEST RESULT DEVELOPMENT')\n console.log(developmentResult.testRun)\n\n console.log('TEST RESULT PRODUCTION')\n console.log(productionResult.testRun)\n\n console.log('EXAMPLES RESULT')\n console.log(developmentExamplesResult.status)\n\n await kv.rpush('test-runs', developmentResult.testRun)\n await kv.rpush('test-runs-production', productionResult.testRun)\n await kv.rpush('examples-runs', developmentExamplesResult.status)\n console.log('SUCCESSFULLY SAVED RUNS')\n\n await kv.set('passing-tests', developmentResult.passingTests)\n await kv.set('passing-tests-production', productionResult.passingTests)\n console.log('SUCCESSFULLY SAVED PASSING')\n\n await kv.set('failing-tests', developmentResult.failingTests)\n await kv.set('failing-tests-production', productionResult.failingTests)\n console.log('SUCCESSFULLY SAVED FAILING')\n\n await kv.set('examples-data', developmentExamplesResult.data)\n console.log('SUCCESSFULLY SAVED EXAMPLES')\n } catch (error) {\n console.log(error)\n }\n}\n\nmain()\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/.github/actions/upload-turboyet-data/src/main.js b/.github/actions/upload-turboyet-data/src/main.js index f6171e4c4e767..8b2cd7f898622 100644 --- a/.github/actions/upload-turboyet-data/src/main.js +++ b/.github/actions/upload-turboyet-data/src/main.js @@ -3,22 +3,93 @@ const path = require('path') const { createClient } = require('@vercel/kv') -async function main() { - try { - const file = path.join(process.cwd(), 'test/turbopack-tests-manifest.json') +async function collectExamplesResult(manifestFile) { + const file = path.join(process.cwd(), manifestFile) + const contents = await fs.readFile(file, 'utf-8') + const results = JSON.parse(contents) + + let failingCount = 0 + let passingCount = 0 + + const currentDate = new Date() + const isoString = currentDate.toISOString() + const timestamp = isoString.slice(0, 19).replace('T', ' ') + + for (const isPassing of Object.values(results)) { + if (isPassing) { + passingCount += 1 + } else { + failingCount += 1 + } + } + const status = `${process.env.GITHUB_SHA}\t${timestamp}\t${passingCount}/${ + passingCount + failingCount + }` + + return { + status, + // Uses JSON.stringify to create minified JSON, otherwise whitespace is preserved. + data: JSON.stringify(results), + } +} + +async function collectResults(manifestFile) { + const file = path.join(process.cwd(), manifestFile) + const contents = await fs.readFile(file, 'utf-8') + const results = JSON.parse(contents) + + let passingTests = '' + let failingTests = '' + let passCount = 0 + let failCount = 0 + + const currentDate = new Date() + const isoString = currentDate.toISOString() + const timestamp = isoString.slice(0, 19).replace('T', ' ') + + if (results.version === 2) { + for (const [testFileName, result] of Object.entries(results.suites)) { + let suitePassCount = 0 + let suiteFailCount = 0 + + suitePassCount += result.passed.length + suiteFailCount += result.failed.length - let passingTests = '' - let failingTests = '' - let passCount = 0 - let failCount = 0 + if (suitePassCount > 0) { + passingTests += `${testFileName}\n` + } - const contents = await fs.readFile(file, 'utf-8') - const results = JSON.parse(contents) + if (suiteFailCount > 0) { + failingTests += `${testFileName}\n` + } - const currentDate = new Date() - const isoString = currentDate.toISOString() - const timestamp = isoString.slice(0, 19).replace('T', ' ') + for (const passed of result.passed) { + const passedName = passed.replaceAll('`', '\\`') + passingTests += `* ${passedName}\n` + } + + for (const passed of result.failed) { + const failedName = passed.replaceAll('`', '\\`') + failingTests += `* ${failedName}\n` + } + passCount += suitePassCount + failCount += suiteFailCount + + if (suitePassCount > 0) { + passingTests += `\n` + } + + if (suiteFailCount > 0) { + failingTests += `\n` + } + } + + const testRun = `${process.env.GITHUB_SHA}\t${timestamp}\t${passCount}/${ + passCount + failCount + }` + return { testRun, passingTests, failingTests } + } else { for (const [testFileName, result] of Object.entries(results)) { let suitePassCount = 0 let suiteFailCount = 0 @@ -55,27 +126,55 @@ async function main() { failingTests += `\n` } } + const testRun = `${process.env.GITHUB_SHA}\t${timestamp}\t${passCount}/${ + passCount + failCount + }` + + return { testRun, passingTests, failingTests } + } +} + +async function main() { + try { + const developmentResult = await collectResults( + 'test/turbopack-dev-tests-manifest.json' + ) + const productionResult = await collectResults( + 'test/turbopack-build-tests-manifest.json' + ) + const developmentExamplesResult = await collectExamplesResult( + 'test/turbopack-dev-examples-manifest.json' + ) const kv = createClient({ url: process.env.TURBOYET_KV_REST_API_URL, token: process.env.TURBOYET_KV_REST_API_TOKEN, }) - const testRun = `${process.env.GITHUB_SHA}\t${timestamp}\t${passCount}/${ - passCount + failCount - }` + console.log('TEST RESULT DEVELOPMENT') + console.log(developmentResult.testRun) + + console.log('TEST RESULT PRODUCTION') + console.log(productionResult.testRun) - console.log('TEST RESULT') - console.log(testRun) + console.log('EXAMPLES RESULT') + console.log(developmentExamplesResult.status) - await kv.rpush('test-runs', testRun) + await kv.rpush('test-runs', developmentResult.testRun) + await kv.rpush('test-runs-production', productionResult.testRun) + await kv.rpush('examples-runs', developmentExamplesResult.status) console.log('SUCCESSFULLY SAVED RUNS') - await kv.set('passing-tests', passingTests) + await kv.set('passing-tests', developmentResult.passingTests) + await kv.set('passing-tests-production', productionResult.passingTests) console.log('SUCCESSFULLY SAVED PASSING') - await kv.set('failing-tests', failingTests) + await kv.set('failing-tests', developmentResult.failingTests) + await kv.set('failing-tests-production', productionResult.failingTests) console.log('SUCCESSFULLY SAVED FAILING') + + await kv.set('examples-data', developmentExamplesResult.data) + console.log('SUCCESSFULLY SAVED EXAMPLES') } catch (error) { console.log(error) } diff --git a/.github/labeler.json b/.github/labeler.json index d4188310bdaa8..00adb5f93e245 100644 --- a/.github/labeler.json +++ b/.github/labeler.json @@ -18,6 +18,7 @@ "created-by: Next.js team": [ { "type": "user", "pattern": "acdlite" }, { "type": "user", "pattern": "balazsorban44" }, + { "type": "user", "pattern": "eps1lon" }, { "type": "user", "pattern": "Ethan-Arrowood" }, { "type": "user", "pattern": "feedthejim" }, { "type": "user", "pattern": "gnoff" }, @@ -25,6 +26,7 @@ { "type": "user", "pattern": "ijjk" }, { "type": "user", "pattern": "javivelasco" }, { "type": "user", "pattern": "kikobeats" }, + { "type": "user", "pattern": "lubieowoce" }, { "type": "user", "pattern": "samcx" }, { "type": "user", "pattern": "schniz" }, { "type": "user", "pattern": "sebmarkbage" }, diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 3668499c1f92b..fc396b739845b 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -163,12 +163,12 @@ jobs: group: [1/5, 2/5, 3/5, 4/5, 5/5] uses: ./.github/workflows/build_reusable.yml with: - afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.json" TURBOPACK=1 NEXT_E2E_TEST_TIMEOUT=240000 NEXT_TEST_MODE=dev node run-tests.js --test-pattern '^(test\/(development|e2e))/.*\.test\.(js|jsx|ts|tsx)$' --timings -g ${{ matrix.group }} -c ${TEST_CONCURRENCY} + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-dev-tests-manifest.json" TURBOPACK=1 TURBOPACK_DEV=1 NEXT_E2E_TEST_TIMEOUT=240000 NEXT_TEST_MODE=dev node run-tests.js --test-pattern '^(test\/(development|e2e))/.*\.test\.(js|jsx|ts|tsx)$' --timings -g ${{ matrix.group }} -c ${TEST_CONCURRENCY} stepName: 'test-turbopack-dev-${{ matrix.group }}' secrets: inherit test-turbopack-integration: - name: test turbopack integration + name: test turbopack development integration needs: ['changes', 'build-next'] if: ${{ needs.changes.outputs.docs-only == 'false' }} @@ -179,10 +179,42 @@ jobs: uses: ./.github/workflows/build_reusable.yml with: nodeVersion: 18.17.0 - afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.json" TURBOPACK=1 node run-tests.js --timings -g ${{ matrix.group }} -c ${TEST_CONCURRENCY} --type integration + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-dev-tests-manifest.json" TURBOPACK=1 TURBOPACK_DEV=1 node run-tests.js --timings -g ${{ matrix.group }} -c ${TEST_CONCURRENCY} --type integration stepName: 'test-turbopack-integration-${{ matrix.group }}' secrets: inherit + test-turbopack-production: + name: test turbopack production + needs: ['changes', 'build-next'] + if: ${{ needs.changes.outputs.docs-only == 'false' }} + + strategy: + fail-fast: false + matrix: + group: [1/5, 2/5, 3/5, 4/5, 5/5] + uses: ./.github/workflows/build_reusable.yml + with: + nodeVersion: 18.17.0 + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-build-tests-manifest.json" TURBOPACK=1 TURBOPACK_BUILD=1 NEXT_TEST_MODE=start node run-tests.js --timings -g ${{ matrix.group }} -c ${TEST_CONCURRENCY} --type production + stepName: 'test-turbopack-production-${{ matrix.group }}' + secrets: inherit + + test-turbopack-production-integration: + name: test turbopack production integration + needs: ['changes', 'build-next'] + if: ${{ needs.changes.outputs.docs-only == 'false' }} + + strategy: + fail-fast: false + matrix: + group: [1/5, 2/5, 3/5, 4/5, 5/5] + uses: ./.github/workflows/build_reusable.yml + with: + nodeVersion: 18.17.0 + afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-build-tests-manifest.json" TURBOPACK=1 TURBOPACK_BUILD=1 node run-tests.js --timings -g ${{ matrix.group }} -c ${TEST_CONCURRENCY} --type integration + stepName: 'test-turbopack-production-integration-${{ matrix.group }}' + secrets: inherit + test-next-swc-wasm: name: test next-swc wasm needs: ['changes', 'build-next'] @@ -224,6 +256,30 @@ jobs: secrets: inherit + test-new-tests-dev: + name: Test new tests for flakes (dev) + needs: ['changes', 'build-native', 'build-next'] + if: ${{ needs.changes.outputs.docs-only == 'false' }} + + uses: ./.github/workflows/build_reusable.yml + with: + afterBuild: node scripts/test-new-tests.mjs --dev-mode + stepName: 'test-new-tests-dev' + + secrets: inherit + + test-new-tests-start: + name: Test new tests for flakes (prod) + needs: ['changes', 'build-native', 'build-next'] + if: ${{ needs.changes.outputs.docs-only == 'false' }} + + uses: ./.github/workflows/build_reusable.yml + with: + afterBuild: node scripts/test-new-tests.mjs --prod-mode + stepName: 'test-new-tests-start' + + secrets: inherit + test-dev: name: test dev needs: ['changes', 'build-native', 'build-next'] @@ -300,8 +356,6 @@ jobs: needs: ['changes', 'build-native', 'build-next'] if: ${{ needs.changes.outputs.docs-only == 'false' }} - strategy: - fail-fast: false uses: ./.github/workflows/build_reusable.yml with: nodeVersion: 18.17.0 @@ -339,7 +393,7 @@ jobs: stepName: 'test-ppr-prod-${{ matrix.group }}' secrets: inherit - report-test-results: + report-test-results-to-datadog: needs: [ 'changes', @@ -352,6 +406,8 @@ jobs: 'test-ppr-integration', 'test-turbopack-dev', 'test-turbopack-integration', + 'test-turbopack-production', + 'test-turbopack-production-integration', ] if: ${{ always() && needs.changes.outputs.docs-only == 'false' && !github.event.pull_request.head.repo.fork }} @@ -390,6 +446,7 @@ jobs: 'test-dev', 'test-prod', 'test-integration', + 'test-firefox-safari', 'test-ppr-dev', 'test-ppr-prod', 'test-ppr-integration', @@ -398,6 +455,8 @@ jobs: 'test-next-swc-wasm', 'test-turbopack-dev', 'test-turbopack-integration', + 'test-new-tests-dev', + 'test-new-tests-start', ] if: always() diff --git a/.github/workflows/issue_stale.yml b/.github/workflows/issue_stale.yml index 41f81ade0d18b..162832b8af9ee 100644 --- a/.github/workflows/issue_stale.yml +++ b/.github/workflows/issue_stale.yml @@ -15,7 +15,7 @@ jobs: name: 'Close stale issues with no reproduction' with: repo-token: ${{ secrets.STALE_TOKEN }} - only-labels: 'please add a complete reproduction,please simplify reproduction' + any-of-labels: 'please add a complete reproduction,please simplify reproduction' close-issue-message: 'This issue has been automatically closed because it received no activity for a month and had no reproduction to investigate. If you think it was closed by accident, please leave a comment. If you are running into a similar issue, please open a new issue with a reproduction. Thank you.' days-before-issue-close: 1 days-before-issue-stale: 30 @@ -28,7 +28,7 @@ jobs: name: 'Close issues not verified on canary' with: repo-token: ${{ secrets.STALE_TOKEN }} - only-labels: 'please verify canary' + any-of-labels: 'please verify canary' close-issue-message: "This issue has been automatically closed because it wasn't verified against next@canary. If you think it was closed by accident, please leave a comment. If you are running into a similar issue, please open a new issue with a reproduction. Thank you." days-before-issue-close: 1 days-before-issue-stale: 30 diff --git a/.github/workflows/turbo-daily-integration-test.yml b/.github/workflows/turbo-daily-integration-test.yml deleted file mode 100644 index 9b660b57ed8a6..0000000000000 --- a/.github/workflows/turbo-daily-integration-test.yml +++ /dev/null @@ -1,35 +0,0 @@ -# A workflow to run next.js integration test with turbopack for each day. -# This runs against main branch with latest Next.js release. -name: Daily Next.js integration test with turbopack - -on: - schedule: - - cron: '0 8 * * *' - workflow_dispatch: - inputs: - version: - description: Next.js version, sha, branch to test - type: string - default: 'canary' - -jobs: - # Trigger actual next.js integration tests. - next_js_integration: - name: Execute Next.js integration workflow - if: github.repository_owner == 'vercel' - permissions: - pull-requests: write - uses: ./.github/workflows/nextjs-integration-test.yml - secrets: inherit - with: - diff_base: 'none' - version: ${{ inputs.version || 'canary' }} - - # Upload test results to KV, but only for scheduled runs. - upload_test_results: - name: Upload test results - needs: [next_js_integration] - # if: github.repository_owner == 'vercel' && ${{ github.event_name == 'schedule' }} && always() - if: always() - uses: ./.github/workflows/upload-nextjs-integration-test-results.yml - secrets: inherit diff --git a/.github/workflows/turbopack-nextjs-build-integration-tests.yml b/.github/workflows/turbopack-nextjs-build-integration-tests.yml new file mode 100644 index 0000000000000..3701f1a51c89b --- /dev/null +++ b/.github/workflows/turbopack-nextjs-build-integration-tests.yml @@ -0,0 +1,201 @@ +# Reusable workflow to execute certain version of Next.js integration tests +# with turbopack. +# +# Refer test.yml for how this workflow is being initialized +# - Workflow can specify `inputs.version` to specify which version of next.js to use, otherwise will use latest release version. +name: Turbopack Next.js production integration tests + +on: + schedule: + - cron: '0 6 * * *' + workflow_dispatch: + inputs: + # Allow to specify Next.js version to run integration test against. + # If not specified, will use latest release version including canary. + version: + description: Next.js version, sha, branch to test + type: string + default: 'canary' + # The base of the test results to compare against. If not specified, will try to compare with latest main branch's test results. + diff_base: + type: string + default: 'none' + +# Workflow-common env variables +env: + # Enabling backtrace will makes snapshot tests fail + RUST_BACKTRACE: 0 + NEXT_TELEMETRY_DISABLED: 1 + TEST_CONCURRENCY: 6 + NEXT_JUNIT_TEST_REPORT: 'true' + __INTERNAL_CUSTOM_TURBOPACK_BINDINGS: ${{ github.workspace }}/packages/next-swc/native/next-swc.linux-x64-gnu.node + NEXT_TEST_SKIP_RETRY_MANIFEST: ${{ github.workspace }}/integration-test-data/test-results/main/failed-test-path-list.json + NEXT_TEST_CONTINUE_ON_ERROR: TRUE + NEXT_E2E_TEST_TIMEOUT: 240000 + NEXT_TEST_JOB: 1 + +jobs: + # First, build Next.js to execute across tests. + setup_nextjs: + name: Setup Next.js build + uses: ./.github/workflows/setup-nextjs-build.yml + with: + version: ${{ inputs.version || 'canary' }} + + # Actual test scheduling. These jobs mimic the same jobs in Next.js repo, + # which we do allow some of duplications to make it easier to update if upstream changes. + # Refer build_and_test.yml in the Next.js repo for more details. + test-production: + # This job name is being used in github action to collect test results. Do not change it, or should update + # ./.github/actions/next-integration-stat to match the new name. + name: Next.js integration test (Production) + # Currently it is possible test grouping puts large number of failing tests suites in a single group, + # which ends up job timeouts. Temporarily relieve the timeout until we make progresses on the failing suites. + # ref: https://github.com/vercel/turbo/pull/5668 + # timeout-minutes: 180 + runs-on: + - 'self-hosted' + - 'linux' + - 'x64' + - 'metal' + + needs: [setup_nextjs] + strategy: + fail-fast: false + matrix: + group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + + steps: + - uses: actions/cache/restore@v3 + id: restore-build + with: + path: ./* + key: ${{ inputs.version || 'canary' }}-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt}}-${{ github.run_number }} + fail-on-cache-miss: true + + - name: Enable corepack and install yarn + run: | + corepack enable + corepack prepare --activate yarn@1.22.19 + + - name: Setup playwright + run: | + pnpm playwright install + + - name: Run test/production + run: | + NEXT_TEST_MODE=start TURBOPACK=1 TURBOPACK_BUILD=1 node run-tests.js -g ${{ matrix.group }}/12 -c ${TEST_CONCURRENCY} --type production + # It is currently expected to fail some of next.js integration test, do not fail CI check. + continue-on-error: true + + - name: Upload test report artifacts + uses: actions/upload-artifact@v4 + with: + name: test-reports-start-${{ matrix.group }} + if-no-files-found: 'error' + path: | + test/turbopack-test-junit-report + + test-integration-production: + name: Next.js integration test (Integration) + needs: [setup_nextjs] + runs-on: + - 'self-hosted' + - 'linux' + - 'x64' + - 'metal' + + timeout-minutes: 180 + strategy: + fail-fast: false + matrix: + group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + + steps: + - uses: actions/cache/restore@v3 + id: restore-build + with: + path: ./* + key: ${{ inputs.version || 'canary' }}-${{ github.sha }} + fail-on-cache-miss: true + + - name: Enable corepack and install yarn + run: | + corepack enable + corepack prepare --activate yarn@1.22.19 + + - name: Setup playwright + run: | + pnpm playwright install + + - name: Run test/integration + run: | + TURBOPACK=1 TURBOPACK_BUILD=1 node run-tests.js -g ${{ matrix.group }}/12 -c ${TEST_CONCURRENCY} --type integration + continue-on-error: true + + - name: Upload test report artifacts + uses: actions/upload-artifact@v4 + with: + name: test-reports-build-integration-${{ matrix.group }} + if-no-files-found: 'error' + path: | + test/turbopack-test-junit-report + + # Collect integration test results from execute_tests, + # Store it as github artifact for next step to consume. + collect_nextjs_production_integration_stat: + needs: [test-production, test-integration-production] + name: Next.js integration test production status report + runs-on: + - 'self-hosted' + - 'linux' + - 'x64' + - 'metal' + + if: always() + permissions: + pull-requests: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Collect integration test stat + uses: ./.github/actions/next-integration-stat + with: + diff_base: ${{ inputs.diff_base || 'none' }} + + - name: Store artifacts + uses: actions/upload-artifact@v4 + with: + name: test-results-turbopack-production + path: | + nextjs-test-results.json + failed-test-path-list.json + passed-test-path-list.json + + upload_test_report: + needs: [test-production, test-integration-production] + name: Upload test report to datadog + runs-on: + - 'self-hosted' + - 'linux' + - 'x64' + - 'metal' + + if: ${{ !cancelled() }} + steps: + - name: Download test report artifacts + id: download-test-reports + uses: actions/download-artifact@v4 + with: + pattern: test-reports-* + path: test/reports + merge-multiple: true + + - name: Upload to datadog + env: + DATADOG_API_KEY: ${{ secrets.DATA_DOG_API_KEY }} + DD_ENV: 'ci' + run: | + # We'll tag this to the "Turbopack" datadog service, not "nextjs" + npx @datadog/datadog-ci@2.23.1 junit upload --tags test.type:turbopack-build.daily --service Turbopack-build ./test/reports diff --git a/.github/workflows/nextjs-integration-test.yml b/.github/workflows/turbopack-nextjs-dev-integration-tests.yml similarity index 82% rename from .github/workflows/nextjs-integration-test.yml rename to .github/workflows/turbopack-nextjs-dev-integration-tests.yml index 728d4dcd59918..08d9dc6a82c3c 100644 --- a/.github/workflows/nextjs-integration-test.yml +++ b/.github/workflows/turbopack-nextjs-dev-integration-tests.yml @@ -3,19 +3,23 @@ # # Refer test.yml for how this workflow is being initialized # - Workflow can specify `inputs.version` to specify which version of next.js to use, otherwise will use latest release version. -name: Turbopack Next.js integration test +name: Turbopack Next.js development integration tests on: - workflow_call: + schedule: + - cron: '0 6 * * *' + workflow_dispatch: inputs: # Allow to specify Next.js version to run integration test against. # If not specified, will use latest release version including canary. version: + description: Next.js version, sha, branch to test type: string + default: 'canary' # The base of the test results to compare against. If not specified, will try to compare with latest main branch's test results. diff_base: type: string - default: 'main' + default: 'none' # Workflow-common env variables env: @@ -24,8 +28,6 @@ env: NEXT_TELEMETRY_DISABLED: 1 TEST_CONCURRENCY: 6 NEXT_JUNIT_TEST_REPORT: 'true' - # Turbopack specific customization for the test runner - TURBOPACK: 1 __INTERNAL_CUSTOM_TURBOPACK_BINDINGS: ${{ github.workspace }}/packages/next-swc/native/next-swc.linux-x64-gnu.node NEXT_TEST_SKIP_RETRY_MANIFEST: ${{ github.workspace }}/integration-test-data/test-results/main/failed-test-path-list.json NEXT_TEST_CONTINUE_ON_ERROR: TRUE @@ -38,7 +40,7 @@ jobs: name: Setup Next.js build uses: ./.github/workflows/setup-nextjs-build.yml with: - version: ${{ inputs.version }} + version: ${{ inputs.version || 'canary' }} # Actual test scheduling. These jobs mimic the same jobs in Next.js repo, # which we do allow some of duplications to make it easier to update if upstream changes. @@ -61,14 +63,14 @@ jobs: strategy: fail-fast: false matrix: - group: [1, 2, 3, 4, 5, 6] + group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] steps: - uses: actions/cache/restore@v3 id: restore-build with: path: ./* - key: ${{ inputs.version }}-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt}}-${{ github.run_number }} + key: ${{ inputs.version || 'canary' }}-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt}}-${{ github.run_number }} fail-on-cache-miss: true - name: Enable corepack and install yarn @@ -82,7 +84,7 @@ jobs: - name: Run test/development run: | - NEXT_TEST_MODE=dev TURBOPACK=1 node run-tests.js -g ${{ matrix.group }}/6 -c ${TEST_CONCURRENCY} --type development + NEXT_TEST_MODE=dev TURBOPACK=1 TURBOPACK_DEV=1 node run-tests.js -g ${{ matrix.group }}/12 -c ${TEST_CONCURRENCY} --type development # It is currently expected to fail some of next.js integration test, do not fail CI check. continue-on-error: true @@ -94,7 +96,7 @@ jobs: path: | test/turbopack-test-junit-report - test-integration: + test-integration-development: name: Next.js integration test (Integration) needs: [setup_nextjs] runs-on: @@ -114,7 +116,7 @@ jobs: id: restore-build with: path: ./* - key: ${{ inputs.version }}-${{ github.sha }} + key: ${{ inputs.version || 'canary' }}-${{ github.sha }} fail-on-cache-miss: true - name: Enable corepack and install yarn @@ -128,22 +130,22 @@ jobs: - name: Run test/integration run: | - TURBOPACK=1 node run-tests.js -g ${{ matrix.group }}/12 -c ${TEST_CONCURRENCY} --type integration + TURBOPACK=1 TURBOPACK_DEV=1 node run-tests.js -g ${{ matrix.group }}/12 -c ${TEST_CONCURRENCY} --type integration continue-on-error: true - name: Upload test report artifacts uses: actions/upload-artifact@v4 with: - name: test-reports-integration-${{ matrix.group }} + name: test-reports-dev-integration-${{ matrix.group }} if-no-files-found: 'error' path: | test/turbopack-test-junit-report # Collect integration test results from execute_tests, # Store it as github artifact for next step to consume. - collect_nextjs_integration_stat: - needs: [test-dev, test-integration] - name: Next.js integration test status report + collect_nextjs_development_integration_stat: + needs: [test-dev, test-integration-development] + name: Next.js integration test development status report runs-on: - 'self-hosted' - 'linux' @@ -160,7 +162,7 @@ jobs: - name: Collect integration test stat uses: ./.github/actions/next-integration-stat with: - diff_base: ${{ inputs.diff_base }} + diff_base: ${{ inputs.diff_base || 'none' }} - name: Store artifacts uses: actions/upload-artifact@v4 @@ -172,7 +174,7 @@ jobs: passed-test-path-list.json upload_test_report: - needs: [test-dev, test-integration] + needs: [test-dev, test-integration-development] name: Upload test report to datadog runs-on: - 'self-hosted' @@ -180,7 +182,7 @@ jobs: - 'x64' - 'metal' - if: always() + if: ${{ !cancelled() }} steps: - name: Download test report artifacts id: download-test-reports diff --git a/.github/workflows/turbopack-update-tests-manifest.yml b/.github/workflows/turbopack-update-tests-manifest.yml new file mode 100644 index 0000000000000..550c9776180f4 --- /dev/null +++ b/.github/workflows/turbopack-update-tests-manifest.yml @@ -0,0 +1,76 @@ +# A recurring workflow which updates the passing/failing/skipped integration tests for Turbopack. +name: Update Turbopack test manifest + +on: + schedule: + # Every day at 9AM https://crontab.guru/#0_9_*_*_* + - cron: '0 7 * * *' + workflow_dispatch: + +jobs: + update_dev_manifest: + name: Update and upload Turbopack development test manifest + if: github.repository_owner == 'vercel' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + # Commits made with the default `GITHUB_TOKEN` won't trigger workflows. + # See: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow + token: ${{ secrets.RELEASE_BOT_GITHUB_TOKEN }} + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_LTS_VERSION }} + check-latest: true + + - run: corepack enable + + - name: Install dependencies + shell: bash + run: pnpm i + + - name: Create Pull Request + shell: bash + run: node scripts/automated-update-workflow.js + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN_PULL_REQUESTS }} + BRANCH_NAME: turbopack-manifest + SCRIPT: test/build-turbopack-dev-tests-manifest.js + PR_TITLE: Update Turbopack development test manifest + PR_BODY: This auto-generated PR updates the development integration test manifest used when testing Turbopack. + update_build_manifest: + name: Update and upload Turbopack production test manifest + if: github.repository_owner == 'vercel' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + # Commits made with the default `GITHUB_TOKEN` won't trigger workflows. + # See: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow + token: ${{ secrets.RELEASE_BOT_GITHUB_TOKEN }} + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_LTS_VERSION }} + check-latest: true + + - run: corepack enable + + - name: Install dependencies + shell: bash + run: pnpm i + + - name: Create Pull Request + shell: bash + run: node scripts/automated-update-workflow.js + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN_PULL_REQUESTS }} + BRANCH_NAME: turbopack-manifest + SCRIPT: test/build-turbopack-build-tests-manifest.js + PR_TITLE: Update Turbopack production test manifest + PR_BODY: This auto-generated PR updates the production integration test manifest used when testing Turbopack. diff --git a/.github/workflows/upload-nextjs-integration-test-results.yml b/.github/workflows/turbopack-upload-tests-manifest.yml similarity index 69% rename from .github/workflows/upload-nextjs-integration-test-results.yml rename to .github/workflows/turbopack-upload-tests-manifest.yml index 980b9ac587a43..39eddeb3f8c69 100644 --- a/.github/workflows/upload-nextjs-integration-test-results.yml +++ b/.github/workflows/turbopack-upload-tests-manifest.yml @@ -1,11 +1,17 @@ -# Reusable workflow to upload next.js integration test results to KV for https://areweturboyet.com/ +# Workflow to upload next.js integration test results to KV for https://areweturboyet.com/ # This workflow assumes the `next-integration-test` workflow has been executed # and test reports have been uploaded to the `test-results` artifact. -name: Update next.js integration test results +name: Upload Turbopack tests manifest to areweturboyet.com on: - workflow_call: + schedule: + - cron: '0 8 * * *' workflow_dispatch: + inputs: + version: + description: Next.js version, sha, branch to test + type: string + default: 'canary' jobs: upload_test_results: @@ -27,12 +33,6 @@ jobs: shell: bash run: pnpm i - # Always run build manifest script to get the latest value - - run: | - node ./test/build-turbopack-tests-manifest.js - env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN_PULL_REQUESTS }} - - name: 'Upload results to "Are We Turbo Yet" KV' env: TURBOYET_KV_REST_API_URL: ${{ secrets.TURBOYET_KV_REST_API_URL }} diff --git a/.github/workflows/update-turbopack-test-manifest.yml b/.github/workflows/update-turbopack-test-manifest.yml deleted file mode 100644 index a5e366445a5bd..0000000000000 --- a/.github/workflows/update-turbopack-test-manifest.yml +++ /dev/null @@ -1,43 +0,0 @@ -# A recurring workflow which updates the passing/failing/skipped integration tests for Turbopack. -name: Update Turbopack test manifest - -on: - schedule: - # Every day at 9AM https://crontab.guru/#0_9_*_*_* - - cron: '0 9 * * *' - workflow_dispatch: - -jobs: - update_manifest: - name: Update and upload Turbopack test manifest - if: github.repository_owner == 'vercel' - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - # Commits made with the default `GITHUB_TOKEN` won't trigger workflows. - # See: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow - token: ${{ secrets.RELEASE_BOT_GITHUB_TOKEN }} - - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_LTS_VERSION }} - check-latest: true - - - run: corepack enable - - - name: Install dependencies - shell: bash - run: pnpm i - - - name: Create Pull Request - shell: bash - run: node scripts/automated-update-workflow.js - env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN_PULL_REQUESTS }} - BRANCH_NAME: turbopack-manifest - SCRIPT: test/build-turbopack-tests-manifest.js - PR_TITLE: Update Turbopack test manifest - PR_BODY: This auto-generated PR updates the integration test manifest used when testing Turbopack. diff --git a/.prettierignore b/.prettierignore index 26dae32ab6cd0..d78b968e08f6f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -37,3 +37,5 @@ bench/nested-deps/components/**/* **/convex/_generated/** **/.tina/__generated__/** +test/lib/amp-validator-wasm.js +test/production/pages-dir/production/fixture/amp-validator-wasm.js diff --git a/.prettierignore_staged b/.prettierignore_staged index c49e8598137b3..f1c268594d2f3 100644 --- a/.prettierignore_staged +++ b/.prettierignore_staged @@ -13,3 +13,5 @@ pnpm-lock.yaml .github/actions/needs-triage/index.js .github/actions/*/index.mjs **/convex/_generated/** +test/lib/amp-validator-wasm.js +test/production/pages-dir/production/fixture/amp-validator-wasm.js diff --git a/Cargo.lock b/Cargo.lock index 24857b8ca9299..be046e921688d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -321,7 +321,7 @@ dependencies = [ [[package]] name = "auto-hash-map" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "serde", "smallvec", @@ -492,9 +492,9 @@ dependencies = [ [[package]] name = "binding_macros" -version = "0.64.21" +version = "0.64.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eafb79d33c5a86e79be2a61e4e61b964ba7f088cc71ccc1cf592bdd1e4ce8f6f" +checksum = "bfd8f34cab921542b9dcddd34d65e5ee3953d16d07a643509494ad2d7946cb1a" dependencies = [ "anyhow", "console_error_panic_hook", @@ -3162,11 +3162,13 @@ dependencies = [ name = "next-custom-transforms" version = "0.0.0" dependencies = [ + "anyhow", "chrono", "easy-error", "either", "fxhash", "hex", + "lazy_static", "once_cell", "pathdiff", "preset_env_base", @@ -3217,7 +3219,7 @@ dependencies = [ [[package]] name = "node-file-trace" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "serde", @@ -5165,9 +5167,9 @@ dependencies = [ [[package]] name = "styled_jsx" -version = "0.73.9" +version = "0.73.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243182797daf80d4ebed2f8ea46c787ac0df5609d10bff5d634dace5375c49b0" +checksum = "fb7b2381ed0b1ba760b75671388d45be3196ab8514a6429b4fca05ab9dcfc86c" dependencies = [ "anyhow", "lightningcss", @@ -5177,6 +5179,7 @@ dependencies = [ "swc_common", "swc_css_ast", "swc_css_codegen", + "swc_css_compat", "swc_css_minifier", "swc_css_parser", "swc_css_prefixer", @@ -5226,9 +5229,9 @@ dependencies = [ [[package]] name = "swc" -version = "0.273.21" +version = "0.273.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271c22c41d6232166f69dd16264f44ab7217a5b3ee6c6c428991dae86e577c11" +checksum = "48a68d147a2270bbe2164ee4060d0176590a1035f54d82f7252d16a15e4154a9" dependencies = [ "anyhow", "base64 0.21.4", @@ -5293,9 +5296,9 @@ dependencies = [ [[package]] name = "swc_bundler" -version = "0.225.16" +version = "0.225.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c48267139ec36f4250360c80a400c4efe3a9d82e69c74406a4760bb0f94297" +checksum = "f145a1a7293edce9efa80fe4f92a2cbd821c31d5c3123d04182fc1928613d978" dependencies = [ "anyhow", "crc", @@ -5339,9 +5342,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.33.19" +version = "0.33.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc30ce6695b841f0a9ae01a9ca10ac3922cff559a6253c756a203c4332c62945" +checksum = "317d2fcdbb1bc9ecfd0bfc67468d675a5159a6fd1863abf41c8c5b7b7adcab03" dependencies = [ "ahash 0.8.9", "anyhow", @@ -5372,9 +5375,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da889eaa8f6d019f3b391eebfb395990a0b58b4f4e86f76689f2a14fd8de2239" +checksum = "e14edecfac835e77c88017d016c48dba60e82632ee94eb9565f516ebc7072e6a" dependencies = [ "anyhow", "base64 0.21.4", @@ -5424,9 +5427,9 @@ dependencies = [ [[package]] name = "swc_core" -version = "0.90.22" +version = "0.90.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd79fcc3d20ab7b74794d4155ac12639760e8ec96fed7413624db61f3185e62" +checksum = "354892a17af24956c9ae5479c2bd0a2f9c344aab79e6f2fbd01b7b8eb4e46c2e" dependencies = [ "binding_macros", "swc", @@ -5466,9 +5469,9 @@ dependencies = [ [[package]] name = "swc_css_ast" -version = "0.140.20" +version = "0.140.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f84c34fffb1b9dde1024ad6fa473ff4e1616cf8efc69600bbb83df0bcac2708" +checksum = "a930397de06e2d10d5042d927993af9e09e7824ff84b7d4d7b4a663e7c63e55d" dependencies = [ "is-macro", "string_enum", @@ -5478,9 +5481,9 @@ dependencies = [ [[package]] name = "swc_css_codegen" -version = "0.151.30" +version = "0.151.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f59063897824aac5509c94f26f991b64f91c4cda3679aa6cb3acb421ca634c" +checksum = "9dfdbd0d5eeb7b4cb4193d49aad0c1f1d8561b0533607992505a7c4a11dce4e8" dependencies = [ "auto_impl", "bitflags 2.4.0", @@ -5507,9 +5510,9 @@ dependencies = [ [[package]] name = "swc_css_compat" -version = "0.27.31" +version = "0.27.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9633219ea6d10276555460909afb4d0f8110245a2686a4919d7b721d71255ed9" +checksum = "8c8c4ffbda70abf13435778820470a804619bd1f33e6d11412a7de595ebcfbbb" dependencies = [ "bitflags 2.4.0", "once_cell", @@ -5524,9 +5527,9 @@ dependencies = [ [[package]] name = "swc_css_minifier" -version = "0.116.28" +version = "0.116.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74888e8f156a087c2aa81e8542d30b5301ea025a1a99e1706e1a8b7f68b9282f" +checksum = "dc7000b4de2dfbd04d8f2a1cc99046b8594fd9cd67fc9593f07df5425a508f75" dependencies = [ "serde", "swc_atoms", @@ -5538,9 +5541,9 @@ dependencies = [ [[package]] name = "swc_css_modules" -version = "0.29.33" +version = "0.29.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4665118c8f595da12f102229e07244d14e0c2e75138b0232d739497c87f36cb2" +checksum = "209966e658fb11773a8d14c004554fdc667f6d44128942c47f3d0195cf483613" dependencies = [ "rustc-hash", "serde", @@ -5554,9 +5557,9 @@ dependencies = [ [[package]] name = "swc_css_parser" -version = "0.150.29" +version = "0.150.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab1cb5c7711f052322b47a26a04d064a7dc2fba56839a9249f895618120970d" +checksum = "ecf8cfbef4c0b847829ca1399d762e7e29da3c9fe6593670145fd222252eab6f" dependencies = [ "lexical", "serde", @@ -5567,9 +5570,9 @@ dependencies = [ [[package]] name = "swc_css_prefixer" -version = "0.153.31" +version = "0.153.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc040a489255446c6cfbb506677f0ceee0b8241a6c2a6f0eaf6b460c8d19b8d" +checksum = "25c08c9394e9d314f4d7995653e7ef7bc9563aff1cb736457ed9009e278d72b9" dependencies = [ "once_cell", "preset_env_base", @@ -5584,9 +5587,9 @@ dependencies = [ [[package]] name = "swc_css_utils" -version = "0.137.20" +version = "0.137.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516874bfd2cc1ddc9025d4049d1214127e5b2dcff7d02dcc80f54e359e34b675" +checksum = "3ac61660cd182bbb0fc53ee86f470e8bba6f5b0f1d85e44bf4ff9dfa2c862a12" dependencies = [ "once_cell", "serde", @@ -5599,9 +5602,9 @@ dependencies = [ [[package]] name = "swc_css_visit" -version = "0.139.20" +version = "0.139.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5930573480f409ee39ded5d109781ee68f084c92d1d3c90dc19e04f8988bdb9" +checksum = "d2bc4deb5540e3869f74e09997b2dd9e1d7b3f750ba2c910f88041f8027868c5" dependencies = [ "serde", "swc_atoms", @@ -5612,9 +5615,9 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "0.112.5" +version = "0.112.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "032f528398358da8ff2fe795755602b4a81ffc93430b9830c0e1d5f198d8f48d" +checksum = "70656acd47c91918635f1e8589963428cb3170975b71d786c79fb7a25605f687" dependencies = [ "bitflags 2.4.0", "bytecheck", @@ -5632,9 +5635,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.148.11" +version = "0.148.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d469ef5ec86a90fb2fa3bff474847fc4d16fd98e34254b834aaf2484bfe472" +checksum = "2afcce205914b8451880fc5ef63dae9bac3dc7b71917921ede64f8e7fd8447a1" dependencies = [ "memchr", "num-bigint", @@ -5663,9 +5666,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_bugfixes" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a491b350c33afc7b043f065f060dcfbfe112e40765b3253e03c33d86149fcc" +checksum = "8731bec087336f7ed1cd4d4c082a6f7b7b9072ac5fc6f6379b6f98520a0e8303" dependencies = [ "swc_atoms", "swc_common", @@ -5680,9 +5683,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_common" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30fd7f4e35d1a8e9edc495fdd843993103cf7b230bbd2ee960d402c5ca8e3c7" +checksum = "1b06844b66a86b8f3bad66888500fd8fe1e4ac09612c5ae0946ca3f77b81f6b0" dependencies = [ "swc_common", "swc_ecma_ast", @@ -5693,9 +5696,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2015" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34bd915d417c1dd95811ae7a16588969ccb598e65721f235781396aac158fb33" +checksum = "7646243203205d2409a891b998d4d30b7a4563a57429da1cbeabd03f18e506b2" dependencies = [ "arrayvec", "indexmap 2.2.3", @@ -5719,9 +5722,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2016" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63ca0be7e941e2c6cfcc66e1821d05511c7fa5bed01da2037ab65c0aa3a508bf" +checksum = "c75e868ae64fe2625c8aae1f929bae734500ae336d37731f6d4bdf66b8e3b8d3" dependencies = [ "swc_atoms", "swc_common", @@ -5736,9 +5739,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2017" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a85af431e6b334fbd5d83bebb3fdaaf9f94882c8a3fdb91bb4e5100319109a3" +checksum = "d9335b27e554e21db7cd541bcee1b5a58b5994439d1a2cb1c9188a3a557548d3" dependencies = [ "serde", "swc_atoms", @@ -5754,9 +5757,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2018" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829e6bf821dbe4381d41b51b062b31f0a97c8d80c98b41060e4c80245d260cb5" +checksum = "66be32a60872762335524766f0afca4900699e1fc7ab14d87567e0e9b3d95cc2" dependencies = [ "serde", "swc_atoms", @@ -5773,9 +5776,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2019" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa7a7fd53ffa313ed1d03fa913ddb3db42e2e36609a4d062a2c4cfbfae68d9ac" +checksum = "6a984708b06d662df1c10c2fc06bf98562c6ea3bb93c0e4d5491ee8e61c08e00" dependencies = [ "swc_atoms", "swc_common", @@ -5789,9 +5792,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2020" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b56f42e0fbeabe54dd963a5f2ae861c5375e50084e0b9bd18520e9ee9308b13" +checksum = "c8b310227bbafd12dbe717c1969bf5095e9b6aff563cea3e9ff6e46371971293" dependencies = [ "serde", "swc_atoms", @@ -5807,9 +5810,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2021" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44df74b9fe6604faa8ae7b95fadfa1a783ee0e782caa35992f841a87b3943ee1" +checksum = "ab566642dff583a16b7b188cf9effc6ae603ea2172769f7a3e7fc1aaf41b67b3" dependencies = [ "swc_atoms", "swc_common", @@ -5823,9 +5826,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2022" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12e9090383b12124af70f1f4853e6b1108bfc70b7199282e8577d85a058bd23c" +checksum = "62fcfa41b83014ee338c219c446e4ac7f66620706d871b1234d68f990a26225b" dependencies = [ "swc_atoms", "swc_common", @@ -5842,9 +5845,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es3" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f8eb567e43cd7d5f0816281eac57c505b5da2afe9e73b7e460fe074b924c32" +checksum = "3678f2454374d8aefe0997fa32089dd2c3f06d20ecaa0d1fa30c0d3e9871c79b" dependencies = [ "swc_common", "swc_ecma_ast", @@ -5857,9 +5860,9 @@ dependencies = [ [[package]] name = "swc_ecma_ext_transforms" -version = "0.113.12" +version = "0.113.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78c06ae715d8b8137b9c9b2abc6728d699a7b252ed290bfa8a9a14b5af009f1" +checksum = "71d02e315207f4c6fd0a1a475039b2874392e46a04d1a297c9c66ef0082d9fce" dependencies = [ "phf 0.11.2", "swc_atoms", @@ -5871,9 +5874,9 @@ dependencies = [ [[package]] name = "swc_ecma_lints" -version = "0.92.17" +version = "0.92.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41f1bda71bedf2b63f44d0ac3d9830d717491a4d826e70493778efd0fba0af1" +checksum = "12d3615603b9719f33180080ccada04d0cb6a077d90c958a71d746c7b015c040" dependencies = [ "auto_impl", "dashmap", @@ -5891,9 +5894,9 @@ dependencies = [ [[package]] name = "swc_ecma_loader" -version = "0.45.22" +version = "0.45.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a8e2dfe2062f4c33413639ea1f5c2bd331ce30142b1405cbe025037008b95a" +checksum = "6732100aba9bec438fcff857ab8db5e5d3b64b42a522aec7c388d8c98a36d22a" dependencies = [ "anyhow", "dashmap", @@ -5913,9 +5916,9 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "0.192.17" +version = "0.192.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e390390abcdb1800f6106f7da5b462f5b84db6b4dbf8e46ea3c79cc74947709f" +checksum = "624b38cf23679ab41ca0e47c37f49617275cb15ad7bbaa66a307c42e67ebc1d5" dependencies = [ "arrayvec", "indexmap 2.2.3", @@ -5947,9 +5950,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.143.9" +version = "0.143.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5166745785657b26ff7722fc32fafd77a79b655602f8628da9c79cede921da74" +checksum = "4b919bb9ae5e1c8c54fb109f7e94b4a00185bd255c1238ba823e8102601e2133" dependencies = [ "either", "new_debug_unreachable", @@ -5969,9 +5972,9 @@ dependencies = [ [[package]] name = "swc_ecma_preset_env" -version = "0.206.16" +version = "0.206.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7f79092196efdf7c1a714976a39b684ef2d32d9c4e782d0ddc7a35f5785518" +checksum = "3e30d4cf2d63c2094d22a2778537353ea817f91c42c2e3bafc88cbe064b1f681" dependencies = [ "anyhow", "dashmap", @@ -5994,9 +5997,9 @@ dependencies = [ [[package]] name = "swc_ecma_quote_macros" -version = "0.54.12" +version = "0.54.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6279141a1514e802863022d5b421a6bebe23f37ee01b426fff4958793028bd03" +checksum = "49a0e789f5cced50904847f0fefef0f416156c12f0e0cf8b054f6fba6233023a" dependencies = [ "anyhow", "proc-macro2", @@ -6011,9 +6014,9 @@ dependencies = [ [[package]] name = "swc_ecma_testing" -version = "0.22.21" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5053453e9d7571e80eed154a0567392bc4e8a9021a5336890c301bb17fc6706c" +checksum = "7c5704ef494b1805bc4566ff566b964bc1e9d3fb0f0e046ad6392b09a54de844" dependencies = [ "anyhow", "hex", @@ -6024,9 +6027,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "0.229.16" +version = "0.229.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf8082fa0c3fea4dd28caf11aff67ac778a299a596ecdd5950f24902594e7bc" +checksum = "52b22e7877d623332da5f2a93c204e808091ab2da1c060f794eaea66506fb530" dependencies = [ "swc_atoms", "swc_common", @@ -6044,9 +6047,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.137.15" +version = "0.137.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4867f24a241877838b03304ce42006f8347aec8ed5a0a3e794aa9350fc1a5362" +checksum = "69e9a23d6af398b6efd17bbdad2cfa580102f6c560611f85c63b48f76ffe8f0c" dependencies = [ "better_scoped_tls", "bitflags 2.4.0", @@ -6068,9 +6071,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.126.15" +version = "0.126.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a07bf4a67a816277896fa5841812ff9f74c26f5640d93e70e471a41d168194" +checksum = "47af84e64f0216f110839f5552a615d07ed74b45757927f29482700966ab4e97" dependencies = [ "swc_atoms", "swc_common", @@ -6082,9 +6085,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_compat" -version = "0.163.16" +version = "0.163.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1bc9b8f21a57c5ff07a98c02f152d5888efbac616126bc7d977dfd23cad2d30" +checksum = "895101f18b39009b8d27f231222e6459a0e71151ba0b3ddf934373bf657602b2" dependencies = [ "arrayvec", "indexmap 2.2.3", @@ -6131,9 +6134,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_module" -version = "0.180.16" +version = "0.180.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6437d14baad04975867acf2f6aabc3e628c4c3122403287e2ca2659f0d4e92e8" +checksum = "82c53f9d5e7384e840f78d096f0ed2e8cfd38486adafb282ef8550420cd44890" dependencies = [ "Inflector", "anyhow", @@ -6158,9 +6161,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "0.198.16" +version = "0.198.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a8eb51e53c81afd3563b763fae5ed9e5aaf7fbfaf113ba4fe8bf0b152a71b8a" +checksum = "86789174146707d78c086cee25868624bdfef924bb535ea3fc42f53fa426d4c0" dependencies = [ "dashmap", "indexmap 2.2.3", @@ -6183,9 +6186,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_proposal" -version = "0.171.16" +version = "0.171.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd56ca4bd886a0b53a77697220780e9f83468885de6b86175558165c3233717" +checksum = "278fec72878ab88f63cf797b33091045d29789dfe13c4051ab7ea6731c4b7ffd" dependencies = [ "either", "rustc-hash", @@ -6203,9 +6206,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.183.16" +version = "0.183.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f9649010c5a8d2648c82d8ec1aef90869eb40429d3c107df09b10452be762b3" +checksum = "762dad12edcdca424213354518ce60bc3f03a026f8e1990b11459311cef04c91" dependencies = [ "base64 0.21.4", "dashmap", @@ -6228,9 +6231,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_testing" -version = "0.140.15" +version = "0.140.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2618344ef828120aa9e42f4441849f5c4c66cb171c79ed15daa400469a9f744" +checksum = "e9a51288aebf6894f8643c44ad08ed1d9c81b8bfce47195c13f9ff994b77a946" dependencies = [ "ansi_term", "anyhow", @@ -6254,9 +6257,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.188.16" +version = "0.188.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b474891d125eca576e741735acbf54751292c6384efe1e0f32e1e996d9541" +checksum = "6d6824fcd8d32ab2e90745a408f71548bd081bf4522d32617745ac1ea243de9c" dependencies = [ "ryu-js", "serde", @@ -6271,9 +6274,9 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f913be2dca4c6f3536dc7645359507692cd66158f25b46b475a3ea76e6e4a9ae" +checksum = "21ccc0ff427471b70e48f265854a2e0843ef8429c729009898bea993f300fa77" dependencies = [ "indexmap 2.2.3", "rustc-hash", @@ -6288,9 +6291,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.127.12" +version = "0.127.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e64596696563ec040297fa5bed9e7b041138664f8c61ad48cfd88d2fd79c3b" +checksum = "fc9c6ad70038b770d844fdfc20fd970d66ccebb1edc91804c8a9adaa689d4e39" dependencies = [ "indexmap 2.2.3", "num_cpus", @@ -6307,9 +6310,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.98.6" +version = "0.98.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "889fc0ec3a9b55377e53e3d4ce06678247b635d7136c1e5d3a2c26578e16cd22" +checksum = "93692bdcdbb63db8f5e10fea5d202b5487cb27eb443aec424f4335c88f9864af" dependencies = [ "num-bigint", "serde", @@ -6357,9 +6360,9 @@ dependencies = [ [[package]] name = "swc_error_reporters" -version = "0.17.18" +version = "0.17.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df568fdbcfab1bfc9f9df62113da46cf82626ad2e67e1812bf3b76ca3d800f92" +checksum = "3329e73f159a3d38d4cd5f606a0918eeff39f5bbdbdafd9b6fecb290d2e9a32d" dependencies = [ "anyhow", "miette", @@ -6370,9 +6373,9 @@ dependencies = [ [[package]] name = "swc_fast_graph" -version = "0.21.19" +version = "0.21.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740f846d9450f3dd20b5fbea1db70e4c774493dd10d8bde54c2d2d5fc8ac824d" +checksum = "aa43c68166a88e233f241976dc3291c30471385fd1019d1fa5660ac503520110" dependencies = [ "indexmap 2.2.3", "petgraph", @@ -6382,9 +6385,9 @@ dependencies = [ [[package]] name = "swc_graph_analyzer" -version = "0.22.21" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be3df7f9506c34242a9802ce1406126bbd21a232a99b8782b50ec8e9270352cd" +checksum = "02b66d0e18899b3a69eca103e5b4af2f0c837427aa07a60be1c4ceb4346ea245" dependencies = [ "auto_impl", "petgraph", @@ -6406,9 +6409,9 @@ dependencies = [ [[package]] name = "swc_node_comments" -version = "0.20.18" +version = "0.20.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dcee90f0a9702a4a0c4b11aa811d8e8fa09fbaeb5d5431d5736d20b3f7688b" +checksum = "fd75c635e4b54961c1c8dc693bb16eb70497eb8a2564f303089a9a66e81ed7ae" dependencies = [ "dashmap", "swc_atoms", @@ -6442,9 +6445,9 @@ dependencies = [ [[package]] name = "swc_plugin_proxy" -version = "0.41.5" +version = "0.41.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5488302a4e79ae658b6bacd691385e88836276c81dc7abde31d67f0f2ae7425" +checksum = "012e5996e3fe64805342b6e31a79d826402bbe4eed35be6a9366e54e41f5d75d" dependencies = [ "better_scoped_tls", "rkyv", @@ -6456,9 +6459,9 @@ dependencies = [ [[package]] name = "swc_plugin_runner" -version = "0.106.12" +version = "0.106.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc260043f8a6aca969b390f612c047f09e670603a0e23a0ca21757e95aa9d73" +checksum = "e3fe0f8743615139eed21376c94d8201be331040c8999e9a7c86a43d0ca2ff8b" dependencies = [ "anyhow", "enumset", @@ -6498,9 +6501,9 @@ dependencies = [ [[package]] name = "swc_timer" -version = "0.21.20" +version = "0.21.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b589033a4387ea540b2e9c3e84e45b1e831e7b16dc301f27d4c9cd492099cdee" +checksum = "e75ce0373fd1b75a021073d796201d5af15106857fc0a801e31379e9e04891e9" dependencies = [ "tracing", ] @@ -6676,9 +6679,9 @@ dependencies = [ [[package]] name = "testing" -version = "0.35.20" +version = "0.35.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff8bc163dd91547a6cb0ad5e32c8b19e0f1bc607031c81726d57c56d21609e0" +checksum = "761d1719907168f43b49b438bdb58c41608f4af5eac0995e2a8bb16c522656c5" dependencies = [ "ansi_term", "cargo_metadata", @@ -6806,9 +6809,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ "backtrace", "bytes", @@ -6836,9 +6839,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", @@ -7160,7 +7163,7 @@ dependencies = [ [[package]] name = "turbo-tasks" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-trait", @@ -7192,7 +7195,7 @@ dependencies = [ [[package]] name = "turbo-tasks-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "cargo-lock", @@ -7204,7 +7207,7 @@ dependencies = [ [[package]] name = "turbo-tasks-bytes" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "bytes", @@ -7219,7 +7222,7 @@ dependencies = [ [[package]] name = "turbo-tasks-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "dotenvs", @@ -7233,7 +7236,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fetch" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7250,7 +7253,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fs" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "auto-hash-map", @@ -7282,7 +7285,7 @@ dependencies = [ [[package]] name = "turbo-tasks-hash" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "base16", "hex", @@ -7294,7 +7297,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -7308,7 +7311,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros-shared" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "proc-macro2", "quote", @@ -7318,7 +7321,7 @@ dependencies = [ [[package]] name = "turbo-tasks-malloc" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "mimalloc", ] @@ -7326,7 +7329,7 @@ dependencies = [ [[package]] name = "turbo-tasks-memory" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "auto-hash-map", @@ -7351,7 +7354,7 @@ dependencies = [ [[package]] name = "turbopack" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-recursion", @@ -7384,7 +7387,7 @@ dependencies = [ [[package]] name = "turbopack-binding" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "auto-hash-map", "mdxjs", @@ -7424,7 +7427,7 @@ dependencies = [ [[package]] name = "turbopack-browser" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7450,7 +7453,7 @@ dependencies = [ [[package]] name = "turbopack-cli-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "clap", @@ -7469,7 +7472,7 @@ dependencies = [ [[package]] name = "turbopack-core" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-recursion", @@ -7500,7 +7503,7 @@ dependencies = [ [[package]] name = "turbopack-css" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-trait", @@ -7528,7 +7531,7 @@ dependencies = [ [[package]] name = "turbopack-dev-server" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-compression", @@ -7565,7 +7568,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-trait", @@ -7603,7 +7606,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-hmr-protocol" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "serde", "serde_json", @@ -7614,7 +7617,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-plugins" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-trait", @@ -7639,7 +7642,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-runtime" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "indoc", @@ -7656,7 +7659,7 @@ dependencies = [ [[package]] name = "turbopack-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7672,7 +7675,7 @@ dependencies = [ [[package]] name = "turbopack-image" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "base64 0.21.4", @@ -7692,7 +7695,7 @@ dependencies = [ [[package]] name = "turbopack-json" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "serde", @@ -7707,7 +7710,7 @@ dependencies = [ [[package]] name = "turbopack-mdx" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "mdxjs", @@ -7722,7 +7725,7 @@ dependencies = [ [[package]] name = "turbopack-node" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-stream", @@ -7760,7 +7763,7 @@ dependencies = [ [[package]] name = "turbopack-nodejs" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7784,7 +7787,7 @@ dependencies = [ [[package]] name = "turbopack-resolve" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "async-recursion", @@ -7806,7 +7809,7 @@ dependencies = [ [[package]] name = "turbopack-static" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "serde", @@ -7822,7 +7825,7 @@ dependencies = [ [[package]] name = "turbopack-swc-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "swc_core", "turbo-tasks", @@ -7833,7 +7836,7 @@ dependencies = [ [[package]] name = "turbopack-trace-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "crossbeam-channel", @@ -7849,7 +7852,7 @@ dependencies = [ [[package]] name = "turbopack-wasm" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240315.2#ebce81ac409239ec4c9e98a744d276a5dd80b5a7" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240329.2#85e1e742e9693c8958ec99152d85583152afb1e1" dependencies = [ "anyhow", "indexmap 1.9.3", diff --git a/Cargo.toml b/Cargo.toml index f7d0d9264e8df..1bdf960355feb 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.90.22", features = [ +swc_core = { version = "0.90.24", features = [ "ecma_loader_lru", "ecma_loader_parking_lot", ] } -testing = { version = "0.35.20" } +testing = { version = "0.35.21" } # Turbo crates -turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240315.2" } +turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240329.2" } # [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-240315.2" } +turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240329.2" } # [TODO]: need to refactor embed_directory! macro usage in next-core -turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240315.2" } +turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240329.2" } # General Deps diff --git a/docs/02-app/01-building-your-application/01-routing/03-linking-and-navigating.mdx b/docs/02-app/01-building-your-application/01-routing/03-linking-and-navigating.mdx index 1ca637f499f71..67d48e5065ffd 100644 --- a/docs/02-app/01-building-your-application/01-routing/03-linking-and-navigating.mdx +++ b/docs/02-app/01-building-your-application/01-routing/03-linking-and-navigating.mdx @@ -366,12 +366,9 @@ There are two ways routes are prefetched in Next.js: - **`` component**: Routes are automatically prefetched as they become visible in the user's viewport. Prefetching happens when the page first loads or when it comes into view through scrolling. - **`router.prefetch()`**: The `useRouter` hook can be used to prefetch routes programmatically. -The``'s prefetching behavior is different for static and dynamic routes: +The ``'s default prefetching behavior (i.e. when the `prefetch` prop is left unspecified or set to `null`) is different depending on your usage of [`loading.js`](/docs/app/api-reference/file-conventions/loading). Only the shared layout, down the rendered "tree" of components until the first `loading.js` file, is prefetched and cached for `30s`. This reduces the cost of fetching an entire dynamic route, and it means you can show an [instant loading state](/docs/app/building-your-application/routing/loading-ui-and-streaming#instant-loading-states) for better visual feedback to users. -- [**Static Routes**](/docs/app/building-your-application/rendering/server-components#static-rendering-default): `prefetch` defaults to `true`. The entire route is prefetched and cached. -- [**Dynamic Routes**](/docs/app/building-your-application/rendering/server-components#dynamic-rendering): `prefetch` default to automatic. Only the shared layout, down the rendered "tree" of components until the first `loading.js` file, is prefetched and cached for `30s`. This reduces the cost of fetching an entire dynamic route, and it means you can show an [instant loading state](/docs/app/building-your-application/routing/loading-ui-and-streaming#instant-loading-states) for better visual feedback to users. - -You can disable prefetching by setting the `prefetch` prop to `false`. +You can disable prefetching by setting the `prefetch` prop to `false`. Alternatively, you can prefetch the full page data beyond the loading boundaries by setting the `prefetch` prop to `true`. See the [`` API reference](/docs/app/api-reference/components/link) for more information. diff --git a/docs/02-app/01-building-your-application/01-routing/10-parallel-routes.mdx b/docs/02-app/01-building-your-application/01-routing/10-parallel-routes.mdx index f6c83bb72ad80..8c4c660c581a6 100644 --- a/docs/02-app/01-building-your-application/01-routing/10-parallel-routes.mdx +++ b/docs/02-app/01-building-your-application/01-routing/10-parallel-routes.mdx @@ -64,7 +64,7 @@ export default function Layout({ children, team, analytics }) { } ``` -However, slots are **not** [route segments](/docs/app/building-your-application/routing#route-segments) and do not affect the URL structure. For example, for `/dashboard/@analytics/views`, the URL will be `/dashboard/views` since `@analytics` is a slot. +However, slots are **not** [route segments](/docs/app/building-your-application/routing#route-segments) and do not affect the URL structure. For example, for `/@analytics/views`, the URL will be `/views` since `@analytics` is a slot. > **Good to know**: > @@ -95,7 +95,7 @@ Consider the following folder structure. The `@team` slot has a `/settings` page height="930" /> -When navigating to `/dashboard/settings`, the `@team` slot will render the `/settings` page while maintaining the currently active page for the `@analytics` slot. +When navigating to `/settings`, the `@team` slot will render the `/settings` page while maintaining the currently active page for the `@analytics` slot. On refresh, Next.js will render a `default.js` for `@analytics`. If `default.js` doesn't exist, a `404` is rendered instead. @@ -111,7 +111,7 @@ Both [`useSelectedLayoutSegment`](/docs/app/api-reference/functions/use-selected import { useSelectedLayoutSegment } from 'next/navigation' export default function Layout({ auth }: { auth: React.ReactNode }) { - const loginSegments = useSelectedLayoutSegment('auth') + const loginSegment = useSelectedLayoutSegment('auth') // ... } ``` @@ -122,12 +122,12 @@ export default function Layout({ auth }: { auth: React.ReactNode }) { import { useSelectedLayoutSegment } from 'next/navigation' export default function Layout({ auth }) { - const loginSegments = useSelectedLayoutSegment('auth') + const loginSegment = useSelectedLayoutSegment('auth') // ... } ``` -When a user navigates to `app/@auth/login` (or `/login` in the URL bar), `loginSegments` will be equal to the string `"login"`. +When a user navigates to `app/@auth/login` (or `/login` in the URL bar), `loginSegment` will be equal to the string `"login"`. ## Examples @@ -183,15 +183,15 @@ For example, the `@analytics` slot has two subpages: `/page-views` and `/visitor Within `@analytics`, create a [`layout`](/docs/app/building-your-application/routing/pages-and-layouts) file to share the tabs between the two pages: -```tsx filename="app/dashboard/@analytics/layout.tsx" switcher +```tsx filename="app/@analytics/layout.tsx" switcher import Link from 'next/link' export default function Layout({ children }: { children: React.ReactNode }) { return ( <>
{children}
@@ -199,15 +199,15 @@ export default function Layout({ children }: { children: React.ReactNode }) { } ``` -```jsx filename="app/dashboard/@analytics/layout.js" switcher +```jsx filename="app/@analytics/layout.js" switcher import Link from 'next/link' export default function Layout({ children }: { children: React.ReactNode }) { return ( <>
{children}
diff --git a/docs/02-app/01-building-your-application/01-routing/13-middleware.mdx b/docs/02-app/01-building-your-application/01-routing/13-middleware.mdx index 2091aec5a3e03..3f5979c48cfa8 100644 --- a/docs/02-app/01-building-your-application/01-routing/13-middleware.mdx +++ b/docs/02-app/01-building-your-application/01-routing/13-middleware.mdx @@ -9,10 +9,30 @@ Middleware allows you to run code before a request is completed. Then, based on Middleware runs before cached content and routes are matched. See [Matching Paths](#matching-paths) for more details. +## Use Cases + +Integrating Middleware into your application can lead to significant improvements in performance, security, and user experience. Some common scenarios where Middleware is particularly effective include: + +- Authentication and Authorization: Ensure user identity and check session cookies before granting access to specific pages or API routes. +- Server-Side Redirects: Redirect users at the server level based on certain conditions (e.g., locale, user role). +- Path Rewriting: Support A/B testing, feature rollouts, or legacy paths by dynamically rewriting paths to API routes or pages based on request properties. +- Bot Detection: Protect your resources by detecting and blocking bot traffic. +- Logging and Analytics: Capture and analyze request data for insights before processing by the page or API. +- Feature Flagging: Enable or disable features dynamically for seamless feature rollouts or testing. + +Recognizing situations where middleware may not be the optimal approach is just as crucial. Here are some scenarios to be mindful of: + +- Complex Data Fetching and Manipulation: Middleware is not designed for direct data fetching or manipulation, this should be done within Route Handlers or server-side utilities instead. +- Heavy Computational Tasks: Middleware should be lightweight and respond quickly or it can cause delays in page load. Heavy computational tasks or long-running processes should be done within dedicated Route Handlers. +- Extensive Session Management: While Middleware can manage basic session tasks, extensive session management should be managed by dedicated authentication services or within Route Handlers. +- Direct Database Operations: Performing direct database operations within Middleware is not recommended. Database interactions should done within Route Handlers or server-side utilities. + ## Convention Use the file `middleware.ts` (or `.js`) in the root of your project to define Middleware. For example, at the same level as `pages` or `app`, or inside `src` if applicable. +> **Note**: While only one `middleware.ts` file is supported per project, you can still organize your middleware logic modularly. Break out middleware functionalities into separate `.ts` or `.js` files and import them into your main `middleware.ts` file. This allows for cleaner management of route-specific middleware, aggregated in the `middleware.ts` for centralized control. By enforcing a single middleware file, it simplifies configuration, prevents potential conflicts, and optimizes performance by avoiding multiple middleware layers. + ## Example ```ts filename="middleware.ts" switcher @@ -46,7 +66,7 @@ export const config = { ## Matching Paths -Middleware will be invoked for **every route in your project**. The following is the execution order: +Middleware will be invoked for **every route in your project**. Given this, it's crucial to use matchers to precisely target or exclude specific routes. The following is the execution order: 1. `headers` from `next.config.js` 2. `redirects` from `next.config.js` @@ -97,7 +117,7 @@ export const config = { } ``` -You can also ignore prefetches (from `next/link`) that don't need to go through the Middleware using the `missing` array: +You can also bypass Middleware for certain requests by using the `missing` or `has` arrays, or a combination of both: ```js filename="middleware.js" export const config = { @@ -116,6 +136,20 @@ export const config = { { type: 'header', key: 'purpose', value: 'prefetch' }, ], }, + + { + source: '/((?!api|_next/static|_next/image|favicon.ico).*)', + has: [ + { type: 'header', key: 'next-router-prefetch' }, + { type: 'header', key: 'purpose', value: 'prefetch' }, + ], + }, + + { + source: '/((?!api|_next/static|_next/image|favicon.ico).*)', + has: [{ type: 'header', key: 'x-present' }], + missing: [{ type: 'header', key: 'x-missing', value: 'prefetch' }], + }, ], } ``` diff --git a/docs/02-app/01-building-your-application/02-data-fetching/02-server-actions-and-mutations.mdx b/docs/02-app/01-building-your-application/02-data-fetching/02-server-actions-and-mutations.mdx index 66c89be935b3b..f62589ed66423 100644 --- a/docs/02-app/01-building-your-application/02-data-fetching/02-server-actions-and-mutations.mdx +++ b/docs/02-app/01-building-your-application/02-data-fetching/02-server-actions-and-mutations.mdx @@ -243,7 +243,7 @@ export function SubmitButton() { const { pending } = useFormStatus() return ( - ) @@ -259,7 +259,7 @@ export function SubmitButton() { const { pending } = useFormStatus() return ( - ) diff --git a/docs/02-app/01-building-your-application/03-rendering/01-server-components.mdx b/docs/02-app/01-building-your-application/03-rendering/01-server-components.mdx index 4ea43f7c52cc7..256092ac1fd39 100644 --- a/docs/02-app/01-building-your-application/03-rendering/01-server-components.mdx +++ b/docs/02-app/01-building-your-application/03-rendering/01-server-components.mdx @@ -104,7 +104,7 @@ As a developer, you do not need to choose between static and dynamic rendering a Dynamic functions rely on information that can only be known at request time such as a user's cookies, current requests headers, or the URL's search params. In Next.js, these dynamic functions are: - **[`cookies()`](/docs/app/api-reference/functions/cookies) and [`headers()`](/docs/app/api-reference/functions/headers)**: Using these in a Server Component will opt the whole route into dynamic rendering at request time. -- **[`searchParams`](/docs/app/api-reference/file-conventions/page#searchparams-optional)**: Using the [Pages](/docs/app/api-reference/file-conventions/page) prop will opt the page into dynamic rendering at request time. +- **[`searchParams`](/docs/app/api-reference/file-conventions/page#searchparams-optional)**: Using the `searchParams` prop on a [Page](/docs/app/api-reference/file-conventions/page) will opt the page into dynamic rendering at request time. Using any of these functions will opt the whole route into dynamic rendering at request time. diff --git a/docs/02-app/01-building-your-application/04-caching/index.mdx b/docs/02-app/01-building-your-application/04-caching/index.mdx index 9bdca0e84e968..347d06f008c74 100644 --- a/docs/02-app/01-building-your-application/04-caching/index.mdx +++ b/docs/02-app/01-building-your-application/04-caching/index.mdx @@ -224,6 +224,8 @@ Alternatively, you can also use the [Route Segment Config options](#segment-conf export const dynamic = 'force-dynamic' ``` +> **Note**: Data Cache is currently only available in pages/routes, not middleware. Any fetches done inside of your middleware will be uncached by default. + > **Vercel Data Cache** > > If your Next.js application is deployed to Vercel, we recommend reading the [Vercel Data Cache](https://vercel.com/docs/infrastructure/data-cache) documentation for a better understanding of Vercel specific features. @@ -361,13 +363,11 @@ This results in an improved navigation experience for the user: The cache is stored in the browser's temporary memory. Two factors determine how long the router cache lasts: - **Session**: The cache persists across navigation. However, it's cleared on page refresh. -- **Automatic Invalidation Period**: The cache of an individual segment is automatically invalidated after a specific time. The duration depends on whether the route is [statically](/docs/app/building-your-application/rendering/server-components#static-rendering-default) or [dynamically](/docs/app/building-your-application/rendering/server-components#dynamic-rendering) rendered: - - **Dynamically Rendered**: 30 seconds - - **Statically Rendered**: 5 minutes - -While a page refresh will clear **all** cached segments, the automatic invalidation period only affects the individual segment from the time it was last accessed or created. +- **Automatic Invalidation Period**: The cache of an individual segment is automatically invalidated after a specific time. The duration depends on how the resource was [prefetched](/docs/app/api-reference/components/link#prefetch): + - **Default Prefetching** (`prefetch={null}` or unspecified): 30 seconds + - **Full Prefetching**: (`prefetch={true}` or `router.prefetch`): 5 minutes -By adding `prefetch={true}` or calling `router.prefetch` for a dynamically rendered route, you can opt into caching for 5 minutes. +While a page refresh will clear **all** cached segments, the automatic invalidation period only affects the individual segment from the time it was prefetched. ### Invalidation diff --git a/docs/02-app/01-building-your-application/06-optimizing/10-open-telemetry.mdx b/docs/02-app/01-building-your-application/06-optimizing/10-open-telemetry.mdx index cbc305b7333f7..b8d0444040d76 100644 --- a/docs/02-app/01-building-your-application/06-optimizing/10-open-telemetry.mdx +++ b/docs/02-app/01-building-your-application/06-optimizing/10-open-telemetry.mdx @@ -116,12 +116,12 @@ export async function register() { import { NodeSDK } from '@opentelemetry/sdk-node' import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http' import { Resource } from '@opentelemetry/resources' -import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions' +import { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions' import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-node' const sdk = new NodeSDK({ resource: new Resource({ - [SemanticResourceAttributes.SERVICE_NAME]: 'next-app', + [SEMRESATTRS_SERVICE_NAME]: 'next-app', }), spanProcessor: new SimpleSpanProcessor(new OTLPTraceExporter()), }) @@ -132,12 +132,12 @@ sdk.start() import { NodeSDK } from '@opentelemetry/sdk-node' import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http' import { Resource } from '@opentelemetry/resources' -import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions' +import { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions' import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-node' const sdk = new NodeSDK({ resource: new Resource({ - [SemanticResourceAttributes.SERVICE_NAME]: 'next-app', + [SEMRESATTRS_SERVICE_NAME]: 'next-app', }), spanProcessor: new SimpleSpanProcessor(new OTLPTraceExporter()), }) diff --git a/docs/02-app/01-building-your-application/06-optimizing/12-third-party-libraries.mdx b/docs/02-app/01-building-your-application/06-optimizing/12-third-party-libraries.mdx index 93224009cad61..ab7f5b9ef589e 100644 --- a/docs/02-app/01-building-your-application/06-optimizing/12-third-party-libraries.mdx +++ b/docs/02-app/01-building-your-application/06-optimizing/12-third-party-libraries.mdx @@ -49,8 +49,8 @@ export default function RootLayout({ }) { return ( - {children} + {children} ) } @@ -62,8 +62,8 @@ import { GoogleTagManager } from '@next/third-parties/google' export default function RootLayout({ children }) { return ( - {children} + {children} ) } diff --git a/docs/02-app/01-building-your-application/06-optimizing/13-memory-usage.mdx b/docs/02-app/01-building-your-application/06-optimizing/13-memory-usage.mdx new file mode 100644 index 0000000000000..7c79ad5dc0383 --- /dev/null +++ b/docs/02-app/01-building-your-application/06-optimizing/13-memory-usage.mdx @@ -0,0 +1,89 @@ +--- +title: Memory Usage +description: Optimize memory used by your application in development and production. +--- + +As applications grow and become more feature rich, they can demand more resources when developing locally or creating production builds. + +Let's explore some strategies and techniques to optimize memory and address common memory issues in Next.js. + +## Reduce number of dependencies + +Applications with a large amount of dependencies will use more memory. + +The [Bundle Analyzer](/docs/app/building-your-application/optimizing/bundle-analyzer) can help you investigate large dependencies in your application that may be able to be removed to improve performance and memory usage. + +## Record a heap profile + +To look for memory issues, you can record a heap profile from Node.js and load it in Chrome DevTools to identify potential sources of memory leaks. + +In your terminal, pass the `--heap-prof` flag to Node.js when starting your Next.js build: + +```sh +node --heap-prof node_modules/next/dist/bin/next build +``` + +At the end of the build, a `.heapprofile` file will be created by Node.js. + +In Chrome DevTools, you can open the Memory tab and click on the "Load Profile" button to visualize the file. + +## Analyze a snapshot of the heap + +You can use an inspector tool to analyze the memory usage of the application. + +When running the `next build` or `next dev` command, add `NODE_OPTIONS=--inspect` to the beginning of the command. This will expose the inspector agent on the default port. +If you wish to break before any user code starts, you can pass `--inspect-brk` instead. + +Now, you can use a tool such as Chrome DevTools to connect to the debugging port to record and analyze a snapshot of the heap to see what memory is being retained. + +See [how to recored and analyze heap snapshots](https://developer.chrome.com/docs/devtools/memory-problems/heap-snapshots) for more information. + +## Webpack build worker + +The Webpack build worker allows you to run Webpack compilations inside a separate Node.js worker which will decrease memory usage of your application during builds. + +This option is enabled by default if your application does not have a custom Webpack configuration starting in `v14.1.0`. + +If you are using an older version of Next.js or you have a custom Webpack configuration, you can enable this option by setting `experimental.webpackBuildWorker: true` inside your `next.config.js`. + +> **Good to know**: This feature may not be compatible with all custom Webpack plugins. + +## Disable Webpack cache + +The [Webpack cache](https://webpack.js.org/configuration/cache/) saves generated Webpack modules in memory and/or to disk to improve the speed of builds. This can +help with performance, but it will also increase the memory usage of your application to store the cached data. + +You can disable this behavior by adding a [custom Webpack configuration](/docs/app/api-reference/next-config-js/webpack) to your application: + +```js filename="next.config.mjs" +/** @type {import('next').NextConfig} */ +const nextConfig = { + webpack: ( + config, + { buildId, dev, isServer, defaultLoaders, nextRuntime, webpack } + ) => { + if (cfg.cache && !dev) { + cfg.cache = Object.freeze({ + type: 'memory', + }) + cfg.cache.maxMemoryGenerations = 0 + } + // Important: return the modified config + return config + }, +} + +export default nextConfig +``` + +## Disable source maps + +Generating source maps consumes extra memory during the build process. + +You can disable source map generation by adding `productionBrowserSourceMaps: false` and `experimental.serverSourceMaps: false` to your Next.js configuration. + +> **Good to know**: Some plugins may turn on source maps and may require custom configuration to disable. + +## Edge memory issues + +Next.js `v14.1.3` fixed a memory issue when using the Edge runtime. Please update to this version (or later) to see if it addresses your issue. diff --git a/docs/02-app/01-building-your-application/07-configuring/15-content-security-policy.mdx b/docs/02-app/01-building-your-application/07-configuring/15-content-security-policy.mdx index e332dc2374faa..49efab01e0df1 100644 --- a/docs/02-app/01-building-your-application/07-configuring/15-content-security-policy.mdx +++ b/docs/02-app/01-building-your-application/07-configuring/15-content-security-policy.mdx @@ -51,7 +51,6 @@ export function middleware(request: NextRequest) { base-uri 'self'; form-action 'self'; frame-ancestors 'none'; - block-all-mixed-content; upgrade-insecure-requests; ` // Replace newline characters and spaces @@ -96,7 +95,6 @@ export function middleware(request) { base-uri 'self'; form-action 'self'; frame-ancestors 'none'; - block-all-mixed-content; upgrade-insecure-requests; ` // Replace newline characters and spaces @@ -224,7 +222,6 @@ const cspHeader = ` base-uri 'self'; form-action 'self'; frame-ancestors 'none'; - block-all-mixed-content; upgrade-insecure-requests; ` 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 0e5423109c36d..c65b1f58b33fd 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 @@ -280,8 +280,14 @@ export default function Page() { function LoginButton() { const { pending } = useFormStatus() + const handleClick = (event) => { + if (pending) { + event.preventDefault() + } + } + return ( - ) @@ -310,8 +316,14 @@ export default function Page() { function LoginButton() { const { pending } = useFormStatus() + const handleClick = (event) => { + if (pending) { + event.preventDefault() + } + } + return ( - ) @@ -605,7 +617,7 @@ In Server Components, a common practice is to conditionally render UI elements b **Example:** ```tsx filename="app/dashboard/page.tsx" switcher -export default function Dashboard() { +export default async function Dashboard() { const session = await getSession() const userRole = session?.user?.role // Assuming 'role' is part of the session object diff --git a/docs/02-app/02-api-reference/01-components/image.mdx b/docs/02-app/02-api-reference/01-components/image.mdx index fcbf92354900d..53300becd3580 100644 --- a/docs/02-app/02-api-reference/01-components/image.mdx +++ b/docs/02-app/02-api-reference/01-components/image.mdx @@ -128,6 +128,8 @@ A `loader` is a function returning a URL string for the image, given the followi Here is an example of using a custom loader: + + ```js 'use client' @@ -150,12 +152,34 @@ export default function Page() { } ``` - - > **Good to know**: Using props like `loader`, which accept a function, requires using [Client Components](/docs/app/building-your-application/rendering/client-components) to serialize the provided function. + + +```js +import Image from 'next/image' + +const imageLoader = ({ src, width, quality }) => { + return `https://example.com/${src}?w=${width}&q=${quality || 75}` +} + +export default function Page() { + return ( + Picture of the author + ) +} +``` + + + Alternatively, you can use the [loaderFile](#loaderfile) configuration in `next.config.js` to configure every instance of `next/image` in your application, without passing a prop. ### `fill` @@ -280,12 +304,24 @@ Remember that the required width and height props can interact with your styling ### `onLoadingComplete` + + ```jsx 'use client' console.log(img.naturalWidth)} /> ``` + + + + +```jsx + console.log(img.naturalWidth)} /> +``` + + + > **Warning**: Deprecated since Next.js 14 in favor of [`onLoad`](#onload). A callback function that is invoked once the image is completely loaded and the [placeholder](#placeholder) has been removed. @@ -481,7 +517,9 @@ module.exports = { This must point to a file relative to the root of your Next.js application. The file must export a default function that returns a string, for example: -```js + + +```js filename="my/image/loader.js" 'use client' export default function myImageLoader({ src, width, quality }) { @@ -489,6 +527,18 @@ export default function myImageLoader({ src, width, quality }) { } ``` + + + + +```js filename="my/image/loader.js" +export default function myImageLoader({ src, width, quality }) { + return `https://example.com/${src}?w=${width}&q=${quality || 75}` +} +``` + + + Alternatively, you can use the [`loader` prop](#loader) to configure each instance of `next/image`. Examples: diff --git a/docs/02-app/02-api-reference/01-components/script.mdx b/docs/02-app/02-api-reference/01-components/script.mdx index ae12b73873efd..f5f407c3efebc 100644 --- a/docs/02-app/02-api-reference/01-components/script.mdx +++ b/docs/02-app/02-api-reference/01-components/script.mdx @@ -96,11 +96,13 @@ export default function RootLayout({ }) { return ( - {children} - + {children} {dialog} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@drawer/default.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@drawer/default.tsx new file mode 100644 index 0000000000000..86b9e9a388129 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@drawer/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@drawer/drawer/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@drawer/drawer/page.tsx new file mode 100644 index 0000000000000..e03c9ead85ef6 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@drawer/drawer/page.tsx @@ -0,0 +1,54 @@ +'use client' + +import Link from 'next/link' +import { useRouter } from 'next/navigation' +import { revalidateAction } from '../../@modal/modal/action' + +export default function Page() { + const router = useRouter() + + const handleRevalidateSubmit = async () => { + const result = await revalidateAction() + if (result.success) { + close() + } + } + + const close = () => { + router.back() + } + + return ( +
+

Drawer

+

{Date.now()}

+ + +

Drawer

+
+ + Open modal + +
+ +
+
+
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/default.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/default.tsx new file mode 100644 index 0000000000000..86b9e9a388129 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/modal/action.ts b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/modal/action.ts new file mode 100644 index 0000000000000..3a45e68c6e3e9 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/modal/action.ts @@ -0,0 +1,11 @@ +'use server' + +import { revalidatePath } from 'next/cache' + +export async function revalidateAction() { + console.log('revalidate action') + revalidatePath('/') + return { + success: true, + } +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/modal/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/modal/page.tsx new file mode 100644 index 0000000000000..dd36fae1133cd --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/@modal/modal/page.tsx @@ -0,0 +1,43 @@ +'use client' +import { useRouter } from 'next/navigation' +import { revalidateAction } from './action' + +export default function Page() { + const router = useRouter() + + const handleRevalidateSubmit = async () => { + const result = await revalidateAction() + if (result.success) { + close() + } + } + + const close = () => { + router.back() + } + + return ( +
+
+ + +
+
+ +
+
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/layout.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/layout.tsx new file mode 100644 index 0000000000000..3aa8736a4949f --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/layout.tsx @@ -0,0 +1,19 @@ +export const dynamic = 'force-dynamic' + +export default function Layout({ + children, + modal, + drawer, +}: { + children: React.ReactNode + modal: React.ReactNode + drawer: React.ReactNode +}) { + return ( +
+
{children}
+
{modal}
+
{drawer}
+
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/page.tsx new file mode 100644 index 0000000000000..d79d96d3d0647 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/nested-revalidate/page.tsx @@ -0,0 +1,24 @@ +import Link from 'next/link' + +export default function Home() { + return ( +
+

Nested parallel routes demo.

+

Date.now {Date.now()}

+
+ + Open Drawer + + + Open Modal + +
+
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx index ed113546ee172..b8f647cca09e0 100644 --- a/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx @@ -12,6 +12,7 @@ export default async function Home() { Open Revalidate Modal Open Refresh Modal Open Redirect Modal + Intercepted Detail Page
{randomNumber}

Current Data

diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/@modal/(.)login/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/@modal/(.)login/page.tsx new file mode 100644 index 0000000000000..30496df0e5a61 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/@modal/(.)login/page.tsx @@ -0,0 +1,21 @@ +import { RefreshButton } from '../../../components/RefreshButton' +import { RevalidateButton } from '../../../components/RevalidateButton' + +const getRandom = async () => Math.random() + +export default async function Page() { + const someProp = await getRandom() + + return ( + +
+
+ Modal Page + {someProp} +
+ + +
+
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/@modal/default.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/@modal/default.tsx new file mode 100644 index 0000000000000..86b9e9a388129 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/layout.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/layout.tsx new file mode 100644 index 0000000000000..deb3fac9dc7c2 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/layout.tsx @@ -0,0 +1,19 @@ +import Link from 'next/link' + +export const dynamic = 'force-dynamic' + +export default function Layout({ + children, + modal, +}: { + children: React.ReactNode + modal: React.ReactNode +}) { + return ( +
+
{children}
+
{modal}
+ Go to Other Page +
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/login/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/login/page.tsx new file mode 100644 index 0000000000000..9db108e46c9c7 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/login/page.tsx @@ -0,0 +1,11 @@ +import { RefreshButton } from '../../components/RefreshButton' + +export default function Page() { + return ( + <> + Login Page + + Random Number: {Math.random()} + + ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/other/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/other/page.tsx new file mode 100644 index 0000000000000..f6286742d0ffd --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/other/page.tsx @@ -0,0 +1,13 @@ +import { RefreshButton } from '../../components/RefreshButton' +import { RevalidateButton } from '../../components/RevalidateButton' + +export default function Page() { + return ( +
+
Other Page
+
{Math.random()}
+ + +
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/page.tsx new file mode 100644 index 0000000000000..29284fca03701 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/refreshing/page.tsx @@ -0,0 +1,14 @@ +import Link from 'next/link' + +export default function Home() { + return ( +
+ + + +
+ Random # from Root Page: {Math.random()} +
+
+ ) +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/parallel-routes-revalidation.test.ts b/test/e2e/app-dir/parallel-routes-revalidation/parallel-routes-revalidation.test.ts index f8890a42903fe..e67bcd480d547 100644 --- a/test/e2e/app-dir/parallel-routes-revalidation/parallel-routes-revalidation.test.ts +++ b/test/e2e/app-dir/parallel-routes-revalidation/parallel-routes-revalidation.test.ts @@ -1,5 +1,5 @@ import { createNextDescribe } from 'e2e-utils' -import { check } from 'next-test-utils' +import { check, retry } from 'next-test-utils' createNextDescribe( 'parallel-routes-revalidation', @@ -79,5 +79,254 @@ createNextDescribe( await check(() => browser.hasElementByCssSelector('#redirect'), false) await check(() => browser.elementByCss('body').text(), /Current Data/) }) + + it.each([ + { path: '/detail-page' }, + { path: '/dynamic/foobar', param: 'foobar' }, + { path: '/catchall/foobar', param: 'foobar' }, + ])( + 'should not trigger interception when calling router.refresh() on an intercepted route ($path)', + async (route) => { + const browser = await next.browser(route.path) + + // directly loaded the detail page, so it should not be intercepted. + expect(await browser.elementById('detail-title').text()).toBe( + 'Detail Page (Non-Intercepted)' + ) + const randomNumber = (await browser.elementById('random-number')).text() + + // confirm that if the route contained a dynamic parameter, that it's reflected in the UI + if (route.param) { + expect(await browser.elementById('params').text()).toBe(route.param) + } + + // click the refresh button + await browser.elementByCss('button').click() + + await retry(async () => { + const newRandomNumber = await browser + .elementById('random-number') + .text() + + // we should have received a new random number, indicating the non-intercepted page was refreshed + expect(randomNumber).not.toBe(newRandomNumber) + + // confirm that the page is still not intercepted + expect(await browser.elementById('detail-title').text()).toBe( + 'Detail Page (Non-Intercepted)' + ) + + // confirm the params (if previously present) are still present + if (route.param) { + expect(await browser.elementById('params').text()).toBe(route.param) + } + }) + } + ) + + it('should not trigger full page when calling router.refresh() on an intercepted route', async () => { + const browser = await next.browser('/dynamic') + await browser.elementByCss('a').click() + + // we soft-navigated to the route, so it should be intercepted + expect(await browser.elementById('detail-title').text()).toBe( + 'Detail Page (Intercepted)' + ) + const randomNumber = (await browser.elementById('random-number')).text() + + // confirm the dynamic param is reflected in the UI + expect(await browser.elementById('params').text()).toBe('foobar') + + // click the refresh button + await browser.elementByCss('button').click() + + await retry(async () => { + // confirm that the intercepted page data was refreshed + const newRandomNumber = await browser + .elementById('random-number') + .text() + + // confirm that the page is still intercepted + expect(randomNumber).not.toBe(newRandomNumber) + + expect(await browser.elementById('detail-title').text()).toBe( + 'Detail Page (Intercepted)' + ) + + // confirm the paramsare still present + expect(await browser.elementById('params').text()).toBe('foobar') + }) + }) + + describe.each([ + { basePath: '/refreshing', label: 'regular' }, + { basePath: '/dynamic-refresh/foo', label: 'dynamic' }, + ])('router.refresh ($label)', ({ basePath }) => { + it('should correctly refresh data for the intercepted route and previously active page slot', async () => { + const browser = await next.browser(basePath) + let initialRandomNumber = await browser.elementById('random-number') + + await browser.elementByCss(`[href='${basePath}/login']`).click() + + // interception modal should be visible + let initialModalRandomNumber = await browser + .elementById('modal-random') + .text() + + // trigger a refresh + await browser.elementById('refresh-button').click() + + await retry(async () => { + const newRandomNumber = await browser + .elementById('random-number') + .text() + const newModalRandomNumber = await browser + .elementById('modal-random') + .text() + expect(initialRandomNumber).not.toBe(newRandomNumber) + expect(initialModalRandomNumber).not.toBe(newModalRandomNumber) + + // reset the initial values to be the new values, so that we can verify the revalidate case below. + initialRandomNumber = newRandomNumber + initialModalRandomNumber = newModalRandomNumber + }) + + // trigger a revalidate + await browser.elementById('revalidate-button').click() + + await retry(async () => { + const newRandomNumber = await browser + .elementById('random-number') + .text() + const newModalRandomNumber = await browser + .elementById('modal-random') + .text() + expect(initialRandomNumber).not.toBe(newRandomNumber) + expect(initialModalRandomNumber).not.toBe(newModalRandomNumber) + }) + + // reload the page, triggering which will remove the interception route and show the full page + await browser.refresh() + + const initialLoginPageRandomNumber = await browser + .elementById('login-page-random') + .text() + + // trigger a refresh + await browser.elementById('refresh-button').click() + + await retry(async () => { + const newLoginPageRandomNumber = await browser + .elementById('login-page-random') + .text() + + expect(newLoginPageRandomNumber).not.toBe( + initialLoginPageRandomNumber + ) + }) + }) + + it('should correctly refresh data for previously intercepted modal and active page slot', async () => { + const browser = await next.browser(basePath) + + await browser.elementByCss(`[href='${basePath}/login']`).click() + + // interception modal should be visible + let initialModalRandomNumber = await browser + .elementById('modal-random') + .text() + + await browser.elementByCss(`[href='${basePath}/other']`).click() + // data for the /other page should be visible + + let initialOtherPageRandomNumber = await browser + .elementById('other-page-random') + .text() + + // trigger a refresh + await browser.elementById('refresh-button').click() + + await retry(async () => { + const newModalRandomNumber = await browser + .elementById('modal-random') + .text() + + const newOtherPageRandomNumber = await browser + .elementById('other-page-random') + .text() + expect(initialModalRandomNumber).not.toBe(newModalRandomNumber) + expect(initialOtherPageRandomNumber).not.toBe( + newOtherPageRandomNumber + ) + // reset the initial values to be the new values, so that we can verify the revalidate case below. + initialOtherPageRandomNumber = newOtherPageRandomNumber + initialModalRandomNumber = newModalRandomNumber + }) + + // trigger a revalidate + await browser.elementById('revalidate-button').click() + + await retry(async () => { + const newModalRandomNumber = await browser + .elementById('modal-random') + .text() + + const newOtherPageRandomNumber = await browser + .elementById('other-page-random') + .text() + expect(initialModalRandomNumber).not.toBe(newModalRandomNumber) + expect(initialOtherPageRandomNumber).not.toBe( + newOtherPageRandomNumber + ) + }) + }) + }) + + describe('server action revalidation', () => { + it('handles refreshing when multiple parallel slots are active', async () => { + const browser = await next.browser('/nested-revalidate') + + const currentPageTime = await browser.elementById('page-now').text() + + expect(await browser.hasElementByCssSelector('#modal')).toBe(false) + expect(await browser.hasElementByCssSelector('#drawer')).toBe(false) + + // renders the drawer parallel slot + await browser.elementByCss("[href='/nested-revalidate/drawer']").click() + await browser.waitForElementByCss('#drawer') + + // renders the modal slot + await browser.elementByCss("[href='/nested-revalidate/modal']").click() + await browser.waitForElementByCss('#modal') + + // Both should be visible, despite only one "matching" + expect(await browser.hasElementByCssSelector('#modal')).toBe(true) + expect(await browser.hasElementByCssSelector('#drawer')).toBe(true) + + // grab the current time of the drawer + const currentDrawerTime = await browser.elementById('drawer-now').text() + + // trigger the revalidation action in the modal. + await browser.elementById('modal-submit-button').click() + + await retry(async () => { + // Revalidation should close the modal + expect(await browser.hasElementByCssSelector('#modal')).toBe(false) + + // But the drawer should still be open + expect(await browser.hasElementByCssSelector('#drawer')).toBe(true) + + // And the drawer should have a new time + expect(await browser.elementById('drawer-now').text()).not.toEqual( + currentDrawerTime + ) + + // And the underlying page should have a new time + expect(await browser.elementById('page-now').text()).not.toEqual( + currentPageTime + ) + }) + }) + }) } ) 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 26623ca69f5a2..1815056f31163 100644 --- a/test/e2e/app-dir/ppr-errors/ppr-errors.test.ts +++ b/test/e2e/app-dir/ppr-errors/ppr-errors.test.ts @@ -1,47 +1,50 @@ import { nextBuild } from 'next-test-utils' describe('ppr build errors', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - let stderr: string - let stdout: string + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + let stderr: string + let stdout: string - beforeAll(async () => { - const output = await nextBuild(__dirname, [], { - stderr: true, - stdout: true, + beforeAll(async () => { + const output = await nextBuild(__dirname, [], { + stderr: true, + stdout: true, + }) + stderr = output.stderr + stdout = output.stdout }) - stderr = output.stderr - stdout = output.stdout - }) - describe('within a suspense boundary', () => { - it('should fail the build for uncaught prerender errors', async () => { - expect(stderr).toContain( - 'Error occurred prerendering page "/regular-error-suspense-boundary".' - ) - expect(stderr).toContain( - 'Error occurred prerendering page "/re-throwing-error".' - ) + describe('within a suspense boundary', () => { + it('should fail the build for uncaught prerender errors', async () => { + expect(stderr).toContain( + 'Error occurred prerendering page "/regular-error-suspense-boundary".' + ) + expect(stderr).toContain( + 'Error occurred prerendering page "/re-throwing-error".' + ) + }) }) - }) - describe('outside of a suspense boundary', () => { - it('should fail the build for uncaught errors', async () => { - expect(stderr).toContain( - 'Error occurred prerendering page "/regular-error".' - ) - expect(stderr).toContain( - 'Error occurred prerendering page "/no-suspense-boundary-re-throwing-error".' - ) + describe('outside of a suspense boundary', () => { + it('should fail the build for uncaught errors', async () => { + expect(stderr).toContain( + 'Error occurred prerendering page "/regular-error".' + ) + expect(stderr).toContain( + 'Error occurred prerendering page "/no-suspense-boundary-re-throwing-error".' + ) + }) }) - }) - describe('when a postpone call is caught and logged it should', () => { - it('should include a message telling why', async () => { - expect(stdout).toContain( - 'User land logged error: Route /logging-error needs to bail out of prerendering at this point because it used cookies.' - ) + describe('when a postpone call is caught and logged it should', () => { + it('should include a message telling why', async () => { + expect(stdout).toContain( + 'User land logged error: Route /logging-error needs to bail out of prerendering at this point because it used cookies.' + ) + }) }) - }) - }) + } + ) }) diff --git a/test/e2e/app-dir/ppr/components/dynamic.jsx b/test/e2e/app-dir/ppr/components/dynamic.jsx index 0df734360f274..3e39698f6dd83 100644 --- a/test/e2e/app-dir/ppr/components/dynamic.jsx +++ b/test/e2e/app-dir/ppr/components/dynamic.jsx @@ -8,8 +8,8 @@ export function Dynamic({ fallback }) { let signedIn let active if (dynamic) { - signedIn = cookies().has('session') ? true : false - active = cookies().has('delay') ? true : false + signedIn = cookies().has('session') + active = cookies().has('delay') if (active) { use(new Promise((resolve) => setTimeout(resolve, 1000))) } diff --git a/test/e2e/app-dir/ppr/ppr.test.ts b/test/e2e/app-dir/ppr/ppr.test.ts index a641fcaa621e4..903aae14ad188 100644 --- a/test/e2e/app-dir/ppr/ppr.test.ts +++ b/test/e2e/app-dir/ppr/ppr.test.ts @@ -1,10 +1,13 @@ import { createNextDescribe } from 'e2e-utils' -import { check } from 'next-test-utils' +import { check, findAllTelemetryEvents } from 'next-test-utils' createNextDescribe( 'ppr', { files: __dirname, + env: { + NEXT_TELEMETRY_DEBUG: '1', + }, }, ({ next, isNextDev, isNextStart }) => { it('should indicate the feature is experimental', async () => { @@ -24,6 +27,19 @@ createNextDescribe( expect(next.cliOutput).toContain('◐ /suspense/node/nested/[slug]') }) }) + + describe('telemetry', () => { + it('should send ppr feature usage event', async () => { + const events = findAllTelemetryEvents( + next.cliOutput, + 'NEXT_BUILD_FEATURE_USAGE' + ) + expect(events).toContainEqual({ + featureName: 'experimental/ppr', + invocationCount: 1, + }) + }) + }) } describe.each([ { pathname: '/suspense/node' }, diff --git a/test/e2e/app-dir/revalidate-dynamic/revalidate-dynamic.test.ts b/test/e2e/app-dir/revalidate-dynamic/revalidate-dynamic.test.ts index c084d67a216e9..6554566673e60 100644 --- a/test/e2e/app-dir/revalidate-dynamic/revalidate-dynamic.test.ts +++ b/test/e2e/app-dir/revalidate-dynamic/revalidate-dynamic.test.ts @@ -8,8 +8,8 @@ createNextDescribe( ({ next, isNextStart }) => { if (isNextStart) { it('should correctly mark a route handler that uses revalidateTag as dynamic', async () => { - expect(next.cliOutput).toContain('λ /api/revalidate-path') - expect(next.cliOutput).toContain('λ /api/revalidate-tag') + expect(next.cliOutput).toContain('ƒ /api/revalidate-path') + expect(next.cliOutput).toContain('ƒ /api/revalidate-tag') }) } diff --git a/test/e2e/app-dir/router-autoscroll/router-autoscroll.test.ts b/test/e2e/app-dir/router-autoscroll/router-autoscroll.test.ts index a8ce936a0472e..77c7f2005e738 100644 --- a/test/e2e/app-dir/router-autoscroll/router-autoscroll.test.ts +++ b/test/e2e/app-dir/router-autoscroll/router-autoscroll.test.ts @@ -137,7 +137,7 @@ createNextDescribe( }) // Test hot reloading only in development - ;((global as any).isDev ? it : it.skip)( + ;(isNextDev ? it : it.skip)( 'should not scroll the page when we hot reload', async () => { const browser = await webdriver(next.url, '/10/10000/100/1000/page1') @@ -148,14 +148,18 @@ createNextDescribe( 'app/[layoutPaddingWidth]/[layoutPaddingHeight]/[pageWidth]/[pageHeight]/[param]/page.tsx' await browser.eval(`window.router.refresh()`) - await next.patchFile( - pagePath, - (await next.readFile(pagePath)) + + let originalContent: string + await next.patchFile(pagePath, (content) => { + originalContent = content + return ( + content + ` \\\\ Add this meaningless comment to force refresh ` - ) + ) + }) await waitForScrollToComplete(browser, { x: 0, y: 12000 }) + await next.patchFile(pagePath, originalContent) } ) }) diff --git a/test/e2e/app-dir/scss/dynamic-route-module/dynamic-route-module.test.ts b/test/e2e/app-dir/scss/dynamic-route-module/dynamic-route-module.test.ts index 51bcde3446ccd..64cb05d55fae7 100644 --- a/test/e2e/app-dir/scss/dynamic-route-module/dynamic-route-module.test.ts +++ b/test/e2e/app-dir/scss/dynamic-route-module/dynamic-route-module.test.ts @@ -10,15 +10,13 @@ describe('Dynamic Route CSS Module Usage', () => { sass: '1.54.0', }, }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should apply styles correctly', async () => { - const browser = await next.browser('/post-1') + it('should apply styles correctly', async () => { + const browser = await next.browser('/post-1') - const background = await browser - .elementByCss('#my-div') - .getComputedCss('background-color') + const background = await browser + .elementByCss('#my-div') + .getComputedCss('background-color') - expect(background).toMatch(colorToRgb('red')) - }) + expect(background).toMatch(colorToRgb('red')) }) }) diff --git a/test/e2e/app-dir/scss/npm-import-tilde/next.config.js b/test/e2e/app-dir/scss/npm-import-tilde/next.config.js index 1529da3ff9c0b..c66405fc09a96 100644 --- a/test/e2e/app-dir/scss/npm-import-tilde/next.config.js +++ b/test/e2e/app-dir/scss/npm-import-tilde/next.config.js @@ -2,6 +2,7 @@ module.exports = { experimental: { turbo: { resolveAlias: { + '/*': './*', '~*': '*', }, }, diff --git a/test/e2e/app-dir/scss/npm-import-tilde/styles/base.css b/test/e2e/app-dir/scss/npm-import-tilde/styles/base.css new file mode 100644 index 0000000000000..5f18c300f2af8 --- /dev/null +++ b/test/e2e/app-dir/scss/npm-import-tilde/styles/base.css @@ -0,0 +1,3 @@ +.test { + background: green; +} diff --git a/test/e2e/app-dir/scss/npm-import-tilde/styles/global.scss b/test/e2e/app-dir/scss/npm-import-tilde/styles/global.scss index cd1136ff77a6a..78359aea33fea 100644 --- a/test/e2e/app-dir/scss/npm-import-tilde/styles/global.scss +++ b/test/e2e/app-dir/scss/npm-import-tilde/styles/global.scss @@ -1,4 +1,6 @@ +@use '~/styles/variables' as *; @import '~nprogress/nprogress.css'; +@import '~/styles/base.css'; .test { - background: 'red'; + background: $red; } diff --git a/test/e2e/app-dir/scss/npm-import-tilde/styles/variables.scss b/test/e2e/app-dir/scss/npm-import-tilde/styles/variables.scss new file mode 100644 index 0000000000000..3b1733a3bbd71 --- /dev/null +++ b/test/e2e/app-dir/scss/npm-import-tilde/styles/variables.scss @@ -0,0 +1 @@ +$red: red; diff --git a/test/e2e/app-dir/scss/scss-mixins/app/layout.tsx b/test/e2e/app-dir/scss/scss-mixins/app/layout.tsx new file mode 100644 index 0000000000000..e7077399c03ce --- /dev/null +++ b/test/e2e/app-dir/scss/scss-mixins/app/layout.tsx @@ -0,0 +1,7 @@ +export default function Root({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/e2e/app-dir/scss/scss-mixins/app/page.module.scss b/test/e2e/app-dir/scss/scss-mixins/app/page.module.scss new file mode 100644 index 0000000000000..c40830b9590c5 --- /dev/null +++ b/test/e2e/app-dir/scss/scss-mixins/app/page.module.scss @@ -0,0 +1,7 @@ +@mixin body { + z-index: (100/2); +} + +.data { + @include body; +} diff --git a/test/e2e/app-dir/scss/scss-mixins/app/page.tsx b/test/e2e/app-dir/scss/scss-mixins/app/page.tsx new file mode 100644 index 0000000000000..8a74edf944795 --- /dev/null +++ b/test/e2e/app-dir/scss/scss-mixins/app/page.tsx @@ -0,0 +1,9 @@ +import styles from './page.module.scss' + +export default function Home() { + return ( +

+ Hello World +

+ ) +} diff --git a/test/e2e/app-dir/scss/scss-mixins/next.config.js b/test/e2e/app-dir/scss/scss-mixins/next.config.js new file mode 100644 index 0000000000000..807126e4cf0bf --- /dev/null +++ b/test/e2e/app-dir/scss/scss-mixins/next.config.js @@ -0,0 +1,6 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/test/e2e/app-dir/scss/scss-mixins/scss-mixins.test.ts b/test/e2e/app-dir/scss/scss-mixins/scss-mixins.test.ts new file mode 100644 index 0000000000000..8429346bbc278 --- /dev/null +++ b/test/e2e/app-dir/scss/scss-mixins/scss-mixins.test.ts @@ -0,0 +1,18 @@ +import { nextTestSetup } from 'e2e-utils' + +describe('Scss Mixins', () => { + const { next } = nextTestSetup({ + files: __dirname, + dependencies: { + sass: '1.72.0', + }, + }) + + // Recommended for tests that need a full browser + it('should work using browser', async () => { + const browser = await next.browser('/') + const element = await browser.elementByCss('#the-title') + expect(await element.text()).toBe('Hello World') + expect(await element.getComputedCss('z-index')).toBe('50') + }) +}) diff --git a/test/e2e/app-dir/server-actions-relative-redirect/app/page.tsx b/test/e2e/app-dir/server-actions-relative-redirect/app/page.tsx index 9554dacf790df..6c1681cddbdaf 100644 --- a/test/e2e/app-dir/server-actions-relative-redirect/app/page.tsx +++ b/test/e2e/app-dir/server-actions-relative-redirect/app/page.tsx @@ -9,7 +9,6 @@ export default function Page() {

hello root page

') ) - await browser.waitForElementByCss('#after-change') - // we need to reload the page to trigger getStaticProps - await browser.refresh() - - expect(await hasRedbox(browser)).toBe(true) - const errOverlayContent = await getRedboxHeader(browser) - await next.patchFile(indexPage, origContent) - const errorMsg = /oops from getStaticProps/ - expect(next.cliOutput).toMatch(errorMsg) - expect(errOverlayContent).toMatch(errorMsg) + try { + await browser.waitForElementByCss('#after-change') + // we need to reload the page to trigger getStaticProps + await browser.refresh() + + expect(await hasRedbox(browser)).toBe(true) + const errOverlayContent = await getRedboxHeader(browser) + const errorMsg = /oops from getStaticProps/ + expect(next.cliOutput).toMatch(errorMsg) + expect(errOverlayContent).toMatch(errorMsg) + } finally { + await next.patchFile(indexPage, origContent) + } }) it('should always call getStaticProps without caching in dev', async () => { @@ -2129,18 +2135,11 @@ describe('Prerender', () => { if (!isDev) { it('should handle on-demand revalidate for fallback: blocking', async () => { - const beforeRevalidate = Date.now() const res = await fetchViaHTTP( next.url, '/blocking-fallback/test-manual-1' ) - if (!isDeploy) { - await waitForCacheWrite( - '/blocking-fallback/test-manual-1', - beforeRevalidate - ) - } const html = await res.text() const $ = cheerio.load(html) const initialTime = $('#time').text() @@ -2150,15 +2149,19 @@ describe('Prerender', () => { expect($('p').text()).toMatch(/Post:.*?test-manual-1/) if (!isDeploy) { - const res2 = await fetchViaHTTP( - next.url, - '/blocking-fallback/test-manual-1' - ) - const html2 = await res2.text() - const $2 = cheerio.load(html2) + // we use retry here as the cache might still be + // writing to disk even after the above request has finished + await retry(async () => { + const res2 = await fetchViaHTTP( + next.url, + '/blocking-fallback/test-manual-1' + ) + const html2 = await res2.text() + const $2 = cheerio.load(html2) - expect(res2.headers.get(cacheHeader)).toMatch(/(HIT|STALE)/) - expect(initialTime).toBe($2('#time').text()) + expect(res2.headers.get(cacheHeader)).toMatch(/(HIT|STALE)/) + expect(initialTime).toBe($2('#time').text()) + }) } const res3 = await fetchViaHTTP( @@ -2174,7 +2177,7 @@ describe('Prerender', () => { const revalidateData = await res3.json() expect(revalidateData.revalidated).toBe(true) - await check(async () => { + await retry(async () => { const res4 = await fetchViaHTTP( next.url, '/blocking-fallback/test-manual-1' @@ -2183,8 +2186,7 @@ describe('Prerender', () => { const $4 = cheerio.load(html4) expect($4('#time').text()).not.toBe(initialTime) expect(res4.headers.get(cacheHeader)).toMatch(/(HIT|STALE)/) - return 'success' - }, 'success') + }) }) } diff --git a/test/e2e/switchable-runtime/index.test.ts b/test/e2e/switchable-runtime/index.test.ts index f88ccf1045261..becf353bdc4d1 100644 --- a/test/e2e/switchable-runtime/index.test.ts +++ b/test/e2e/switchable-runtime/index.test.ts @@ -1,12 +1,9 @@ /* eslint-env jest */ import webdriver from 'next-webdriver' -import { join } from 'path' import { createNext, FileRef } from 'e2e-utils' import { NextInstance } from 'test/lib/next-modes/base' import { check, fetchViaHTTP, renderViaHTTP, waitFor } from 'next-test-utils' -import { readJson } from 'fs-extra' - function splitLines(text) { return text .split(/\r?\n/g) @@ -179,40 +176,6 @@ describe('Switchable runtime', () => { response = await fetchViaHTTP(context.appPort, '/api/edge') text = await response.text() expect(text).toMatch(/Returned by Edge API Route .+\/api\/edge/) - - if (!(global as any).isNextDeploy) { - const manifest = await readJson( - join(context.appDir, '.next/server/middleware-manifest.json') - ) - expect(manifest).toMatchObject({ - functions: { - '/api/hello': { - files: expect.arrayContaining([ - 'server/edge-runtime-webpack.js', - 'server/pages/api/hello.js', - ]), - name: 'pages/api/hello', - page: '/api/hello', - matchers: [ - { regexp: '^/api/hello$', originalSource: '/api/hello' }, - ], - wasm: [], - }, - '/api/edge': { - files: expect.arrayContaining([ - 'server/edge-runtime-webpack.js', - 'server/pages/api/edge.js', - ]), - name: 'pages/api/edge', - page: '/api/edge', - matchers: [ - { regexp: '^/api/edge$', originalSource: '/api/edge' }, - ], - wasm: [], - }, - }, - }) - } }) it('should be possible to switch between runtimes in API routes', async () => { @@ -613,42 +576,6 @@ describe('Switchable runtime', () => { response = await fetchViaHTTP(context.appPort, 'rewrite/api/edge') text = await response.text() expect(text).toMatch(/Returned by Edge API Route .+\/api\/edge/) - - if (!(global as any).isNextDeploy) { - const manifest = await readJson( - join(context.appDir, '.next/server/middleware-manifest.json') - ) - expect(manifest).toMatchObject({ - functions: { - '/api/hello': { - files: expect.arrayContaining([ - 'prerender-manifest.js', - 'server/edge-runtime-webpack.js', - 'server/pages/api/hello.js', - ]), - name: 'pages/api/hello', - page: '/api/hello', - matchers: [ - { regexp: '^/api/hello$', originalSource: '/api/hello' }, - ], - wasm: [], - }, - '/api/edge': { - files: expect.arrayContaining([ - 'prerender-manifest.js', - 'server/edge-runtime-webpack.js', - 'server/pages/api/edge.js', - ]), - name: 'pages/api/edge', - page: '/api/edge', - matchers: [ - { regexp: '^/api/edge$', originalSource: '/api/edge' }, - ], - wasm: [], - }, - }, - }) - } }) it.skip('should display correct tree view with page types in terminal', async () => { @@ -658,17 +585,17 @@ describe('Switchable runtime', () => { const expectedOutputLines = splitLines(` ┌ /_app ├ ○ /404 - ├ ℇ /api/hello - ├ λ /api/node - ├ ℇ /edge - ├ ℇ /edge-rsc + ├ ƒ /api/hello + ├ ƒ /api/node + ├ ƒ /edge + ├ ƒ /edge-rsc ├ ○ /node ├ ● /node-rsc ├ ● /node-rsc-isr ├ ● /node-rsc-ssg - ├ λ /node-rsc-ssr + ├ ƒ /node-rsc-ssr ├ ● /node-ssg - ├ λ /node-ssr + ├ ƒ /node-ssr └ ○ /static `) diff --git a/test/e2e/testmode/app/app/rsc-fetch/page.tsx b/test/e2e/testmode/app/app/rsc-fetch/page.tsx index 02fd4255756c6..959954999dcaf 100644 --- a/test/e2e/testmode/app/app/rsc-fetch/page.tsx +++ b/test/e2e/testmode/app/app/rsc-fetch/page.tsx @@ -6,6 +6,8 @@ export async function generateMetadata() { } export default async function Page() { - const text = await (await fetch('https://example.com')).text() + const text = await ( + await fetch('https://next-data-api-endpoint.vercel.app/api/random') + ).text() return
{text}
} diff --git a/test/e2e/testmode/next.config.js b/test/e2e/testmode/next.config.js index 59aa746eb5aae..e2eb44fe184e9 100644 --- a/test/e2e/testmode/next.config.js +++ b/test/e2e/testmode/next.config.js @@ -1,4 +1,8 @@ +/** @type {import('next').NextConfig} */ module.exports = { + experimental: { + testProxy: true, + }, rewrites() { return [ { diff --git a/test/e2e/testmode/testmode.test.ts b/test/e2e/testmode/testmode.test.ts index caf0a948823a0..2ae93d09311b6 100644 --- a/test/e2e/testmode/testmode.test.ts +++ b/test/e2e/testmode/testmode.test.ts @@ -7,9 +7,6 @@ createNextDescribe( files: __dirname, skipDeployment: true, dependencies: require('./package.json').dependencies, - startCommand: (global as any).isNextDev - ? 'yarn next dev --experimental-test-proxy' - : 'yarn next start --experimental-test-proxy', }, ({ next, isNextDev }) => { let proxyServer: Awaited> @@ -19,7 +16,10 @@ createNextDescribe( onFetch: async (testData, request) => { if ( request.method === 'GET' && - request.url === 'https://example.com/' + [ + 'https://example.com/', + 'https://next-data-api-endpoint.vercel.app/api/random', + ].includes(request.url) ) { return new Response(testData) } @@ -48,6 +48,11 @@ createNextDescribe( } describe('app router', () => { + it('should fetch real data when Next-Test-* headers are not present', async () => { + const html = await (await next.fetch('/app/rsc-fetch')).text() + expect(html).not.toContain('
test1
') + }) + it('should handle RSC with fetch in serverless function', async () => { const html = await (await fetchForTest('/app/rsc-fetch')).text() expect(html).toContain('
test1
') diff --git a/test/integration/404-page-app/test/index.test.js b/test/integration/404-page-app/test/index.test.js index 8d0ffa458428d..48ab47a17af7b 100644 --- a/test/integration/404-page-app/test/index.test.js +++ b/test/integration/404-page-app/test/index.test.js @@ -21,68 +21,73 @@ let appPort let app describe('404 Page Support with _app', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + afterAll(() => killApp(app)) - it('should build successfully', async () => { - const { code, stderr, stdout } = await nextBuild(appDir, [], { - stderr: true, - stdout: true, - }) - - expect(code).toBe(0) - expect(stderr).not.toMatch(gip404Err) - expect(stdout).not.toMatch(gip404Err) + it('should build successfully', async () => { + const { code, stderr, stdout } = await nextBuild(appDir, [], { + stderr: true, + stdout: true, + }) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) + expect(code).toBe(0) + expect(stderr).not.toMatch(gip404Err) + expect(stdout).not.toMatch(gip404Err) - it('should not output static 404 if _app has getInitialProps', async () => { - const browser = await webdriver(appPort, '/404') - const isAutoExported = await browser.eval('__NEXT_DATA__.autoExport') - expect(isAutoExported).toBeFalsy() - }) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) - it('specify to use the 404 page still in the routes-manifest', async () => { - const manifest = await fs.readJSON( - join(appDir, '.next/routes-manifest.json') - ) - expect(manifest.pages404).toBe(true) - }) + it('should not output static 404 if _app has getInitialProps', async () => { + const browser = await webdriver(appPort, '/404') + const isAutoExported = await browser.eval('__NEXT_DATA__.autoExport') + expect(isAutoExported).toBeFalsy() + }) - it('should still use 404 page', async () => { - const res = await fetchViaHTTP(appPort, '/abc') - expect(res.status).toBe(404) - const $ = cheerio.load(await res.text()) - expect($('#404-title').text()).toBe('Hi There') - }) - }) + it('specify to use the 404 page still in the routes-manifest', async () => { + const manifest = await fs.readJSON( + join(appDir, '.next/routes-manifest.json') + ) + expect(manifest.pages404).toBe(true) + }) - describe('dev mode', () => { - let stderr = '' - let stdout = '' + it('should still use 404 page', async () => { + const res = await fetchViaHTTP(appPort, '/abc') + expect(res.status).toBe(404) + const $ = cheerio.load(await res.text()) + expect($('#404-title').text()).toBe('Hi There') + }) + } + ) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + let stderr = '' + let stdout = '' - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort, { - onStderr(msg) { - stderr += msg - }, - onStdout(msg) { - stdout += msg - }, + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort, { + onStderr(msg) { + stderr += msg + }, + onStdout(msg) { + stdout += msg + }, + }) }) - }) - afterAll(() => killApp(app)) + afterAll(() => killApp(app)) - it('should not show pages/404 GIP error if _app has GIP', async () => { - const res = await fetchViaHTTP(appPort, '/abc') - expect(res.status).toBe(404) - const $ = cheerio.load(await res.text()) - expect($('#404-title').text()).toBe('Hi There') - expect(stderr).not.toMatch(gip404Err) - expect(stdout).not.toMatch(gip404Err) - }) - }) + it('should not show pages/404 GIP error if _app has GIP', async () => { + const res = await fetchViaHTTP(appPort, '/abc') + expect(res.status).toBe(404) + const $ = cheerio.load(await res.text()) + expect($('#404-title').text()).toBe('Hi There') + expect(stderr).not.toMatch(gip404Err) + expect(stdout).not.toMatch(gip404Err) + }) + } + ) }) diff --git a/test/integration/404-page-custom-error/test/index.test.js b/test/integration/404-page-custom-error/test/index.test.js index 63895d57c2783..cd4d78f7218a0 100644 --- a/test/integration/404-page-custom-error/test/index.test.js +++ b/test/integration/404-page-custom-error/test/index.test.js @@ -51,32 +51,37 @@ const runTests = (mode) => { } describe('Default 404 Page with custom _error', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + afterAll(() => killApp(app)) - it('should build successfully', async () => { - const { code } = await nextBuild(appDir, [], { - stderr: true, - stdout: true, - }) - - expect(code).toBe(0) + it('should build successfully', async () => { + const { code } = await nextBuild(appDir, [], { + stderr: true, + stdout: true, + }) - appPort = await findPort() + expect(code).toBe(0) - app = await nextStart(appDir, appPort) - }) + appPort = await findPort() - runTests('server') - }) + app = await nextStart(appDir, appPort) + }) - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) + runTests('server') + } + ) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests('dev') - }) + runTests('dev') + } + ) }) diff --git a/test/integration/404-page-ssg/test/index.test.js b/test/integration/404-page-ssg/test/index.test.js index 712b4389aaf01..2d682f1e0e191 100644 --- a/test/integration/404-page-ssg/test/index.test.js +++ b/test/integration/404-page-ssg/test/index.test.js @@ -76,57 +76,62 @@ const runTests = (isDev) => { } describe('404 Page Support SSG', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - afterAll(() => killApp(app)) - - it('should build successfully', async () => { - const { - code, - stderr: buildStderr, - stdout: buildStdout, - } = await nextBuild(appDir, [], { - stderr: true, - stdout: true, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + afterAll(() => killApp(app)) + + it('should build successfully', async () => { + const { + code, + stderr: buildStderr, + stdout: buildStdout, + } = await nextBuild(appDir, [], { + stderr: true, + stdout: true, + }) + + expect(code).toBe(0) + expect(buildStderr).not.toMatch(gip404Err) + expect(buildStdout).not.toMatch(gip404Err) + + appPort = await findPort() + stderr = '' + stdout = '' + + app = await nextStart(appDir, appPort, { + onStdout(msg) { + stdout += msg + }, + onStderr(msg) { + stderr += msg + }, + }) + buildId = await fs.readFile(join(appDir, '.next/BUILD_ID'), 'utf8') }) - expect(code).toBe(0) - expect(buildStderr).not.toMatch(gip404Err) - expect(buildStdout).not.toMatch(gip404Err) - - appPort = await findPort() - stderr = '' - stdout = '' - - app = await nextStart(appDir, appPort, { - onStdout(msg) { - stdout += msg - }, - onStderr(msg) { - stderr += msg - }, + runTests() + } + ) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + stderr = '' + stdout = '' + app = await launchApp(appDir, appPort, { + onStdout(msg) { + stdout += msg + }, + onStderr(msg) { + stderr += msg + }, + }) }) - buildId = await fs.readFile(join(appDir, '.next/BUILD_ID'), 'utf8') - }) - - runTests() - }) + afterAll(() => killApp(app)) - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - stderr = '' - stdout = '' - app = await launchApp(appDir, appPort, { - onStdout(msg) { - stdout += msg - }, - onStderr(msg) { - stderr += msg - }, - }) - }) - afterAll(() => killApp(app)) - - runTests(true) - }) + runTests(true) + } + ) }) diff --git a/test/integration/404-page/test/index.test.js b/test/integration/404-page/test/index.test.js index 3c4fa80e2e560..ca76076108567 100644 --- a/test/integration/404-page/test/index.test.js +++ b/test/integration/404-page/test/index.test.js @@ -70,16 +70,19 @@ const runTests = (mode = 'server') => { } describe('404 Page Support', () => { - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests('dev') - }) - describe('dev mode 2', () => { + runTests('dev') + } + ) + describe('development mode 2', () => { it('falls back to _error correctly without pages/404', async () => { await fs.move(pages404, `${pages404}.bak`) appPort = await findPort() @@ -180,135 +183,141 @@ describe('404 Page Support', () => { expect(stderr).toMatch(gip404Err) }) }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - - runTests('server') - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should not cache for custom 404 page with gssp and revalidate disabled', async () => { - await fs.move(pages404, `${pages404}.bak`) - await fs.writeFile( - pages404, - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + + runTests('server') + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should not cache for custom 404 page with gssp and revalidate disabled', async () => { + await fs.move(pages404, `${pages404}.bak`) + await fs.writeFile( + pages404, + ` const page = () => 'custom 404 page' export async function getStaticProps() { return { props: {} } } export default page ` - ) - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - const cache404 = await getCacheHeader(appPort, '/404') - const cacheNext = await getCacheHeader(appPort, '/_next/abc') - await fs.remove(pages404) - await fs.move(`${pages404}.bak`, pages404) - await killApp(app) + ) + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + const cache404 = await getCacheHeader(appPort, '/404') + const cacheNext = await getCacheHeader(appPort, '/_next/abc') + await fs.remove(pages404) + await fs.move(`${pages404}.bak`, pages404) + await killApp(app) - expect(cache404).toBe( - 'private, no-cache, no-store, max-age=0, must-revalidate' - ) - expect(cacheNext).toBe( - 'private, no-cache, no-store, max-age=0, must-revalidate' - ) - }) + expect(cache404).toBe( + 'private, no-cache, no-store, max-age=0, must-revalidate' + ) + expect(cacheNext).toBe( + 'private, no-cache, no-store, max-age=0, must-revalidate' + ) + }) - it('should not cache for custom 404 page with gssp and revalidate enabled', async () => { - await fs.move(pages404, `${pages404}.bak`) - await fs.writeFile( - pages404, - ` + it('should not cache for custom 404 page with gssp and revalidate enabled', async () => { + await fs.move(pages404, `${pages404}.bak`) + await fs.writeFile( + pages404, + ` const page = () => 'custom 404 page' export async function getStaticProps() { return { props: {}, revalidate: 1 } } export default page ` - ) - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - const cache404 = await getCacheHeader(appPort, '/404') - const cacheNext = await getCacheHeader(appPort, '/_next/abc') - await fs.remove(pages404) - await fs.move(`${pages404}.bak`, pages404) - await killApp(app) + ) + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + const cache404 = await getCacheHeader(appPort, '/404') + const cacheNext = await getCacheHeader(appPort, '/_next/abc') + await fs.remove(pages404) + await fs.move(`${pages404}.bak`, pages404) + await killApp(app) - expect(cache404).toBe( - 'private, no-cache, no-store, max-age=0, must-revalidate' - ) - expect(cacheNext).toBe( - 'private, no-cache, no-store, max-age=0, must-revalidate' - ) - }) + expect(cache404).toBe( + 'private, no-cache, no-store, max-age=0, must-revalidate' + ) + expect(cacheNext).toBe( + 'private, no-cache, no-store, max-age=0, must-revalidate' + ) + }) - it('should not cache for custom 404 page without gssp', async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - const cache404 = await getCacheHeader(appPort, '/404') - const cacheNext = await getCacheHeader(appPort, '/_next/abc') - await killApp(app) + it('should not cache for custom 404 page without gssp', async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + const cache404 = await getCacheHeader(appPort, '/404') + const cacheNext = await getCacheHeader(appPort, '/_next/abc') + await killApp(app) - expect(cache404).toBe(null) - expect(cacheNext).toBe('no-cache, no-store, max-age=0, must-revalidate') - }) + expect(cache404).toBe(null) + expect(cacheNext).toBe('no-cache, no-store, max-age=0, must-revalidate') + }) - it('shows error with getInitialProps in pages/404 build', async () => { - await fs.move(pages404, `${pages404}.bak`) - await fs.writeFile( - pages404, - ` + it('shows error with getInitialProps in pages/404 build', async () => { + await fs.move(pages404, `${pages404}.bak`) + await fs.writeFile( + pages404, + ` const page = () => 'custom 404 page' page.getInitialProps = () => ({ a: 'b' }) export default page ` - ) - const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) - await fs.remove(pages404) - await fs.move(`${pages404}.bak`, pages404) + ) + const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) + await fs.remove(pages404) + await fs.move(`${pages404}.bak`, pages404) - expect(stderr).toMatch(gip404Err) - expect(code).toBe(1) - }) + expect(stderr).toMatch(gip404Err) + expect(code).toBe(1) + }) - it('does not show error with getStaticProps in pages/404 build', async () => { - await fs.move(pages404, `${pages404}.bak`) - await fs.writeFile( - pages404, - ` + it('does not show error with getStaticProps in pages/404 build', async () => { + await fs.move(pages404, `${pages404}.bak`) + await fs.writeFile( + pages404, + ` const page = () => 'custom 404 page' export const getStaticProps = () => ({ props: { a: 'b' } }) export default page ` - ) - const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) - await fs.remove(pages404) - await fs.move(`${pages404}.bak`, pages404) + ) + const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) + await fs.remove(pages404) + await fs.move(`${pages404}.bak`, pages404) - expect(stderr).not.toMatch(gip404Err) - expect(code).toBe(0) - }) + expect(stderr).not.toMatch(gip404Err) + expect(code).toBe(0) + }) - it('shows error with getServerSideProps in pages/404 build', async () => { - await fs.move(pages404, `${pages404}.bak`) - await fs.writeFile( - pages404, - ` + it('shows error with getServerSideProps in pages/404 build', async () => { + await fs.move(pages404, `${pages404}.bak`) + await fs.writeFile( + pages404, + ` const page = () => 'custom 404 page' export const getServerSideProps = () => ({ props: { a: 'b' } }) export default page ` - ) - const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) - await fs.remove(pages404) - await fs.move(`${pages404}.bak`, pages404) + ) + const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) + await fs.remove(pages404) + await fs.move(`${pages404}.bak`, pages404) - expect(stderr).toMatch(gip404Err) - expect(code).toBe(1) - }) - }) + expect(stderr).toMatch(gip404Err) + expect(code).toBe(1) + }) + } + ) }) diff --git a/test/integration/500-page/test/gsp-gssp.test.js b/test/integration/500-page/test/gsp-gssp.test.js index ac89b66c051d3..2e65116210fdc 100644 --- a/test/integration/500-page/test/gsp-gssp.test.js +++ b/test/integration/500-page/test/gsp-gssp.test.js @@ -23,221 +23,226 @@ let appPort let app describe('gsp-gssp', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('does not show error with getStaticProps in pages/500 build', async () => { - await fs.move(pages500, `${pages500}.bak`) - await fs.writeFile( - pages500, - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('does not show error with getStaticProps in pages/500 build', async () => { + await fs.move(pages500, `${pages500}.bak`) + await fs.writeFile( + pages500, + ` const page = () => 'custom 500 page' export const getStaticProps = () => ({ props: { a: 'b' } }) export default page ` - ) - await fs.remove(join(appDir, '.next')) - const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) - await fs.remove(pages500) - await fs.move(`${pages500}.bak`, pages500) - - expect(stderr).not.toMatch(gip500Err) - expect(code).toBe(0) - }) - it('shows error with getServerSideProps in pages/500 build', async () => { - await fs.move(pages500, `${pages500}.bak`) - await fs.writeFile( - pages500, - ` + ) + await fs.remove(join(appDir, '.next')) + const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) + await fs.remove(pages500) + await fs.move(`${pages500}.bak`, pages500) + + expect(stderr).not.toMatch(gip500Err) + expect(code).toBe(0) + }) + it('shows error with getServerSideProps in pages/500 build', async () => { + await fs.move(pages500, `${pages500}.bak`) + await fs.writeFile( + pages500, + ` const page = () => 'custom 500 page' export const getServerSideProps = () => ({ props: { a: 'b' } }) export default page ` - ) - await fs.remove(join(appDir, '.next')) - const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) - await fs.remove(pages500) - await fs.move(`${pages500}.bak`, pages500) - - expect(stderr).toMatch(gip500Err) - expect(code).toBe(1) - }) - - it('does build 500 statically with getInitialProps in _app and getStaticProps in pages/500', async () => { - await fs.writeFile( - pagesApp, - ` + ) + await fs.remove(join(appDir, '.next')) + const { stderr, code } = await nextBuild(appDir, [], { stderr: true }) + await fs.remove(pages500) + await fs.move(`${pages500}.bak`, pages500) + + expect(stderr).toMatch(gip500Err) + expect(code).toBe(1) + }) + + it('does build 500 statically with getInitialProps in _app and getStaticProps in pages/500', async () => { + await fs.writeFile( + pagesApp, + ` import App from 'next/app' - + const page = ({ Component, pageProps }) => page.getInitialProps = (ctx) => App.getInitialProps(ctx) export default page ` - ) - await fs.rename(pages500, `${pages500}.bak`) - await fs.writeFile( - pages500, - ` + ) + await fs.rename(pages500, `${pages500}.bak`) + await fs.writeFile( + pages500, + ` const page = () => { console.log('rendered 500') return 'custom 500 page' } export default page - + export const getStaticProps = () => { return { props: {} } } ` - ) - await fs.remove(join(appDir, '.next')) - const { - stderr, - stdout: buildStdout, - code, - } = await nextBuild(appDir, [], { - stderr: true, - stdout: true, - }) - - await fs.remove(pagesApp) - await fs.remove(pages500) - await fs.rename(`${pages500}.bak`, pages500) - - expect(stderr).not.toMatch(gip500Err) - expect(buildStdout).toContain('rendered 500') - expect(code).toBe(0) - expect( - await fs.pathExists(join(appDir, '.next/server/pages/500.html')) - ).toBe(true) - - let appStdout = '' - const appPort = await findPort() - const app = await nextStart(appDir, appPort, { - onStdout(msg) { - appStdout += msg || '' - }, - onStderr(msg) { - appStdout += msg || '' - }, + ) + await fs.remove(join(appDir, '.next')) + const { + stderr, + stdout: buildStdout, + code, + } = await nextBuild(appDir, [], { + stderr: true, + stdout: true, + }) + + await fs.remove(pagesApp) + await fs.remove(pages500) + await fs.rename(`${pages500}.bak`, pages500) + + expect(stderr).not.toMatch(gip500Err) + expect(buildStdout).toContain('rendered 500') + expect(code).toBe(0) + expect( + await fs.pathExists(join(appDir, '.next/server/pages/500.html')) + ).toBe(true) + + let appStdout = '' + const appPort = await findPort() + const app = await nextStart(appDir, appPort, { + onStdout(msg) { + appStdout += msg || '' + }, + onStderr(msg) { + appStdout += msg || '' + }, + }) + + await renderViaHTTP(appPort, '/err') + await killApp(app) + + expect(appStdout).not.toContain('rendered 500') }) - await renderViaHTTP(appPort, '/err') - await killApp(app) - - expect(appStdout).not.toContain('rendered 500') - }) - - it('does not build 500 statically with no pages/500 and getServerSideProps in _error', async () => { - await fs.rename(pages500, `${pages500}.bak`) - await fs.writeFile( - pagesError, - ` + it('does not build 500 statically with no pages/500 and getServerSideProps in _error', async () => { + await fs.rename(pages500, `${pages500}.bak`) + await fs.writeFile( + pagesError, + ` function Error({ statusCode }) { return

Error status: {statusCode}

} - + export const getServerSideProps = ({ req, res, err }) => { console.error('called _error getServerSideProps') - + if (req.url === '/500') { throw new Error('should not export /500') } - + return { props: { statusCode: res && res.statusCode ? res.statusCode : err ? err.statusCode : 404 } } } - + export default Error ` - ) - await fs.remove(join(appDir, '.next')) - const { stderr: buildStderr, code } = await nextBuild(appDir, [], { - stderr: true, - }) - await fs.rename(`${pages500}.bak`, pages500) - await fs.remove(pagesError) - console.log(buildStderr) - expect(buildStderr).not.toMatch(gip500Err) - expect(code).toBe(0) - expect( - await fs.pathExists(join(appDir, '.next/server/pages/500.html')) - ).toBe(false) - - let appStderr = '' - const appPort = await findPort() - const app = await nextStart(appDir, appPort, { - onStderr(msg) { - appStderr += msg || '' - }, + ) + await fs.remove(join(appDir, '.next')) + const { stderr: buildStderr, code } = await nextBuild(appDir, [], { + stderr: true, + }) + await fs.rename(`${pages500}.bak`, pages500) + await fs.remove(pagesError) + console.log(buildStderr) + expect(buildStderr).not.toMatch(gip500Err) + expect(code).toBe(0) + expect( + await fs.pathExists(join(appDir, '.next/server/pages/500.html')) + ).toBe(false) + + let appStderr = '' + const appPort = await findPort() + const app = await nextStart(appDir, appPort, { + onStderr(msg) { + appStderr += msg || '' + }, + }) + + await renderViaHTTP(appPort, '/err') + await killApp(app) + + expect(appStderr).toContain('called _error getServerSideProps') }) - - await renderViaHTTP(appPort, '/err') - await killApp(app) - - expect(appStderr).toContain('called _error getServerSideProps') - }) - }) - - describe('development mode', () => { - it('does not show error with getStaticProps in pages/500 dev', async () => { - await fs.move(pages500, `${pages500}.bak`) - await fs.writeFile( - pages500, - ` + } + ) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it('does not show error with getStaticProps in pages/500 dev', async () => { + await fs.move(pages500, `${pages500}.bak`) + await fs.writeFile( + pages500, + ` const page = () => 'custom 500 page' export const getStaticProps = () => ({ props: { a: 'b' } }) export default page ` - ) - - let stderr = '' - appPort = await findPort() - app = await launchApp(appDir, appPort, { - onStderr(msg) { - stderr += msg || '' - }, - }) - await renderViaHTTP(appPort, '/abc') - await waitFor(1000) + ) - await killApp(app) + let stderr = '' + appPort = await findPort() + app = await launchApp(appDir, appPort, { + onStderr(msg) { + stderr += msg || '' + }, + }) + await renderViaHTTP(appPort, '/abc') + await waitFor(1000) - await fs.remove(pages500) - await fs.move(`${pages500}.bak`, pages500) + await killApp(app) - expect(stderr).not.toMatch(gip500Err) - }) + await fs.remove(pages500) + await fs.move(`${pages500}.bak`, pages500) - it('shows error with getServerSideProps in pages/500 dev', async () => { - await fs.move(pages500, `${pages500}.bak`) - await fs.writeFile( - pages500, - ` + expect(stderr).not.toMatch(gip500Err) + }) + + it('shows error with getServerSideProps in pages/500 dev', async () => { + await fs.move(pages500, `${pages500}.bak`) + await fs.writeFile( + pages500, + ` const page = () => 'custom 500 page' export const getServerSideProps = () => ({ props: { a: 'b' } }) export default page ` - ) - - let stderr = '' - appPort = await findPort() - app = await launchApp(appDir, appPort, { - onStderr(msg) { - stderr += msg || '' - }, - }) - await renderViaHTTP(appPort, '/500') - await waitFor(1000) + ) + + let stderr = '' + appPort = await findPort() + app = await launchApp(appDir, appPort, { + onStderr(msg) { + stderr += msg || '' + }, + }) + await renderViaHTTP(appPort, '/500') + await waitFor(1000) - await killApp(app) + await killApp(app) - await fs.remove(pages500) - await fs.move(`${pages500}.bak`, pages500) + await fs.remove(pages500) + await fs.move(`${pages500}.bak`, pages500) - expect(stderr).toMatch(gip500Err) - }) - }) + expect(stderr).toMatch(gip500Err) + }) + } + ) }) diff --git a/test/integration/500-page/test/index.test.js b/test/integration/500-page/test/index.test.js index 8c8e3aa53f4d3..ccc64bc84b10e 100644 --- a/test/integration/500-page/test/index.test.js +++ b/test/integration/500-page/test/index.test.js @@ -60,16 +60,19 @@ const runTests = (mode = 'server') => { } describe('500 Page Support', () => { - describe('dev mode', () => { - beforeAll(async () => { - await fs.remove(join(appDir, '.next')) - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + await fs.remove(join(appDir, '.next')) + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests('dev') - }) + runTests('dev') + } + ) describe('development mode 2', () => { it('shows error with getInitialProps in pages/500 dev', async () => { await fs.move(pages500, `${pages500}.bak`) @@ -100,18 +103,21 @@ describe('500 Page Support', () => { expect(stderr).toMatch(gip500Err) }) }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await fs.remove(join(appDir, '.next')) - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await fs.remove(join(appDir, '.next')) + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests('server') - }) - ;(process.env.TURBOPACK ? describe.skip : describe)( + runTests('server') + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( 'production mode 2', () => { it('does not build 500 statically with getInitialProps in _app', async () => { @@ -119,7 +125,7 @@ describe('500 Page Support', () => { pagesApp, ` import App from 'next/app' - + const page = ({ Component, pageProps }) => page.getInitialProps = (ctx) => App.getInitialProps(ctx) export default page @@ -233,19 +239,19 @@ describe('500 Page Support', () => { function Error({ statusCode }) { return

Error status: {statusCode}

} - + Error.getInitialProps = ({ req, res, err }) => { console.error('called _error.getInitialProps') - + if (req.url === '/500') { throw new Error('should not export /500') } - + return { statusCode: res && res.statusCode ? res.statusCode : err ? err.statusCode : 404 } } - + export default Error ` ) @@ -284,19 +290,19 @@ describe('500 Page Support', () => { function Error({ statusCode }) { return

Error status: {statusCode}

} - + Error.getInitialProps = ({ req, res, err }) => { console.error('called _error.getInitialProps') - + if (req.url === '/500') { throw new Error('should not export /500') } - + return { statusCode: res && res.statusCode ? res.statusCode : err ? err.statusCode : 404 } } - + export default Error ` ) @@ -306,18 +312,18 @@ describe('500 Page Support', () => { function App({ pageProps, Component }) { return } - + App.getInitialProps = async ({ Component, ctx }) => { // throw _app GIP err here let pageProps = {} - + if (Component.getInitialProps) { pageProps = await Component.getInitialProps(ctx) } - + return { pageProps } } - + export default App ` ) diff --git a/test/integration/absolute-assetprefix/test/index.test.js b/test/integration/absolute-assetprefix/test/index.test.js index d6b1ff4ad39fb..9a376455034cd 100644 --- a/test/integration/absolute-assetprefix/test/index.test.js +++ b/test/integration/absolute-assetprefix/test/index.test.js @@ -19,105 +19,108 @@ let cdnAccessLog = [] const nextConfig = new File(path.resolve(__dirname, '../next.config.js')) describe('absolute assetPrefix with path prefix', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - cdnPort = await findPort() - // lightweight http proxy - cdn = http.createServer((clientReq, clientRes) => { - const proxyPath = clientReq.url.slice('/path-prefix'.length) - cdnAccessLog.push(proxyPath) - const proxyReq = http.request( - { - hostname: 'localhost', - port: appPort, - path: proxyPath, - method: clientReq.method, - headers: clientReq.headers, - }, - (proxyRes) => { - // cdn must be configured to allow requests from this origin - proxyRes.headers[ - 'Access-Control-Allow-Origin' - ] = `http://localhost:${appPort}` - clientRes.writeHead(proxyRes.statusCode, proxyRes.headers) - proxyRes.pipe(clientRes, { end: true }) - } + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + cdnPort = await findPort() + // lightweight http proxy + cdn = http.createServer((clientReq, clientRes) => { + const proxyPath = clientReq.url.slice('/path-prefix'.length) + cdnAccessLog.push(proxyPath) + const proxyReq = http.request( + { + hostname: 'localhost', + port: appPort, + path: proxyPath, + method: clientReq.method, + headers: clientReq.headers, + }, + (proxyRes) => { + // cdn must be configured to allow requests from this origin + proxyRes.headers[ + 'Access-Control-Allow-Origin' + ] = `http://localhost:${appPort}` + clientRes.writeHead(proxyRes.statusCode, proxyRes.headers) + proxyRes.pipe(clientRes, { end: true }) + } + ) + + clientReq.pipe(proxyReq, { end: true }) + }) + await new Promise((resolve) => cdn.listen(cdnPort, resolve)) + nextConfig.replace('__CDN_PORT__', cdnPort) + await nextBuild(appDir) + buildId = await fs.readFile( + path.resolve(__dirname, '../.next/BUILD_ID'), + 'utf8' ) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) - clientReq.pipe(proxyReq, { end: true }) + afterEach(() => { + cdnAccessLog = [] }) - await new Promise((resolve) => cdn.listen(cdnPort, resolve)) - nextConfig.replace('__CDN_PORT__', cdnPort) - await nextBuild(appDir) - buildId = await fs.readFile( - path.resolve(__dirname, '../.next/BUILD_ID'), - 'utf8' - ) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterEach(() => { - cdnAccessLog = [] - }) + afterAll(() => killApp(app)) + afterAll(() => cdn.close()) + afterAll(() => nextConfig.restore()) - afterAll(() => killApp(app)) - afterAll(() => cdn.close()) - afterAll(() => nextConfig.restore()) + it('should not fetch static data from a CDN', async () => { + const browser = await webdriver(appPort, '/') + await browser.waitForElementByCss('#about-link').click() + const prop = await browser.waitForElementByCss('#prop').text() + expect(prop).toBe('hello') + expect(cdnAccessLog).not.toContain(`/_next/data/${buildId}/about.json`) + }) - it('should not fetch static data from a CDN', async () => { - const browser = await webdriver(appPort, '/') - await browser.waitForElementByCss('#about-link').click() - const prop = await browser.waitForElementByCss('#prop').text() - expect(prop).toBe('hello') - expect(cdnAccessLog).not.toContain(`/_next/data/${buildId}/about.json`) - }) + it('should fetch from cache correctly', async () => { + const browser = await webdriver(appPort, '/') + await browser.eval('window.clientSideNavigated = true') + await browser.waitForElementByCss('#about-link').click() + await browser.waitForElementByCss('#prop') + await browser.back() + await browser.waitForElementByCss('#about-link').click() + const prop = await browser.waitForElementByCss('#prop').text() + expect(prop).toBe('hello') + expect(await browser.eval('window.clientSideNavigated')).toBe(true) + expect( + cdnAccessLog.filter( + (path) => path === `/_next/data/${buildId}/about.json` + ) + ).toHaveLength(0) + }) - it('should fetch from cache correctly', async () => { - const browser = await webdriver(appPort, '/') - await browser.eval('window.clientSideNavigated = true') - await browser.waitForElementByCss('#about-link').click() - await browser.waitForElementByCss('#prop') - await browser.back() - await browser.waitForElementByCss('#about-link').click() - const prop = await browser.waitForElementByCss('#prop').text() - expect(prop).toBe('hello') - expect(await browser.eval('window.clientSideNavigated')).toBe(true) - expect( - cdnAccessLog.filter( - (path) => path === `/_next/data/${buildId}/about.json` + it('should work with getStaticPaths prerendered', async () => { + const browser = await webdriver(appPort, '/') + await browser.waitForElementByCss('#gsp-prerender-link').click() + const prop = await browser.waitForElementByCss('#prop').text() + expect(prop).toBe('prerendered') + expect(cdnAccessLog).not.toContain( + `/_next/data/${buildId}/gsp-fallback/prerendered.json` ) - ).toHaveLength(0) - }) - - it('should work with getStaticPaths prerendered', async () => { - const browser = await webdriver(appPort, '/') - await browser.waitForElementByCss('#gsp-prerender-link').click() - const prop = await browser.waitForElementByCss('#prop').text() - expect(prop).toBe('prerendered') - expect(cdnAccessLog).not.toContain( - `/_next/data/${buildId}/gsp-fallback/prerendered.json` - ) - }) + }) - it('should work with getStaticPaths fallback', async () => { - const browser = await webdriver(appPort, '/') - await browser.waitForElementByCss('#gsp-fallback-link').click() - const prop = await browser.waitForElementByCss('#prop').text() - expect(prop).toBe('fallback') - expect(cdnAccessLog).not.toContain( - `/_next/data/${buildId}/gsp-fallback/fallback.json` - ) - }) + it('should work with getStaticPaths fallback', async () => { + const browser = await webdriver(appPort, '/') + await browser.waitForElementByCss('#gsp-fallback-link').click() + const prop = await browser.waitForElementByCss('#prop').text() + expect(prop).toBe('fallback') + expect(cdnAccessLog).not.toContain( + `/_next/data/${buildId}/gsp-fallback/fallback.json` + ) + }) - it('should work with getServerSideProps', async () => { - const browser = await webdriver(appPort, '/') - await browser.waitForElementByCss('#gssp-link').click() - const prop = await browser.waitForElementByCss('#prop').text() - expect(prop).toBe('foo') - expect(cdnAccessLog).not.toContain( - `/_next/data/${buildId}/gssp.json?prop=foo` - ) - }) - }) + it('should work with getServerSideProps', async () => { + const browser = await webdriver(appPort, '/') + await browser.waitForElementByCss('#gssp-link').click() + const prop = await browser.waitForElementByCss('#prop').text() + expect(prop).toBe('foo') + expect(cdnAccessLog).not.toContain( + `/_next/data/${buildId}/gssp.json?prop=foo` + ) + }) + } + ) }) diff --git a/test/integration/amp-export-validation/next.config.js b/test/integration/amp-export-validation/next.config.js index 3ecd770f69aeb..8ac302af031aa 100644 --- a/test/integration/amp-export-validation/next.config.js +++ b/test/integration/amp-export-validation/next.config.js @@ -1,4 +1,9 @@ module.exports = { output: 'export', + experimental: { + amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), + }, + }, // exportPathMap } diff --git a/test/integration/amp-export-validation/test/index.test.js b/test/integration/amp-export-validation/test/index.test.js index 531af66da1ab6..4f2864854616c 100644 --- a/test/integration/amp-export-validation/test/index.test.js +++ b/test/integration/amp-export-validation/test/index.test.js @@ -13,106 +13,113 @@ const nextConfig = new File(join(appDir, 'next.config.js')) let buildOutput describe('AMP Validation on Export', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - const { stdout = '', stderr = '' } = await nextBuild(appDir, [], { - stdout: true, - stderr: true, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + const { stdout = '', stderr = '' } = await nextBuild(appDir, [], { + stdout: true, + stderr: true, + }) + buildOutput = stdout + stderr }) - buildOutput = stdout + stderr - }) - it('should have shown errors during build', async () => { - expect(buildOutput).toMatch( - /error.*The mandatory attribute 'height' is missing in tag 'amp-video'\./ - ) - expect(existsSync(outDir)).toBeFalse() - }) + it('should have shown errors during build', async () => { + expect(buildOutput).toMatch( + /error.*The mandatory attribute 'height' is missing in tag 'amp-video'\./ + ) + expect(existsSync(outDir)).toBeFalse() + }) - // this is now an error instead of a warning - it.skip('shows AMP warning without throwing error', async () => { - nextConfig.replace( - '// exportPathMap', - `exportPathMap: function(defaultMap) { + // this is now an error instead of a warning + it.skip('shows AMP warning without throwing error', async () => { + nextConfig.replace( + '// exportPathMap', + `exportPathMap: function(defaultMap) { return { '/cat': { page: '/cat' }, } },` - ) - - try { - const { stdout, stderr } = await runNextCommand(['export', appDir], { - stdout: true, - stderr: true, - }) - expect(stdout).toMatch( - /error.*The mandatory attribute 'height' is missing in tag 'amp-video'\./ - ) - await expect(access(join(outDir, 'cat.html'))).resolves.toBe(undefined) - await expect(stderr).not.toMatch( - /Found conflicting amp tag "meta" with conflicting prop name="viewport"/ ) - } finally { - nextConfig.restore() - } - }) - // img instead of amp-img no longer shows a warning - it.skip('throws error on AMP error', async () => { - nextConfig.replace( - '// exportPathMap', - `exportPathMap: function(defaultMap) { + try { + const { stdout, stderr } = await runNextCommand(['export', appDir], { + stdout: true, + stderr: true, + }) + expect(stdout).toMatch( + /error.*The mandatory attribute 'height' is missing in tag 'amp-video'\./ + ) + await expect(access(join(outDir, 'cat.html'))).resolves.toBe( + undefined + ) + await expect(stderr).not.toMatch( + /Found conflicting amp tag "meta" with conflicting prop name="viewport"/ + ) + } finally { + nextConfig.restore() + } + }) + + // img instead of amp-img no longer shows a warning + it.skip('throws error on AMP error', async () => { + nextConfig.replace( + '// exportPathMap', + `exportPathMap: function(defaultMap) { return { '/dog': { page: '/dog' }, } },` - ) - - try { - const { stdout, stderr } = await runNextCommand(['export', appDir], { - stdout: true, - stderr: true, - }) - expect(stdout).toMatch( - /error.*The parent tag of tag 'img' is 'div', but it can only be 'i-amphtml-sizer-intrinsic'\./ - ) - await expect(access(join(outDir, 'dog.html'))).resolves.toBe(undefined) - await expect(stderr).not.toMatch( - /Found conflicting amp tag "meta" with conflicting prop name="viewport"/ ) - } finally { - nextConfig.restore() - } - }) - // img instead of amp-img no longer shows a warning - it.skip('shows warning and error when throwing error', async () => { - nextConfig.replace( - '// exportPathMap', - `exportPathMap: function(defaultMap) { + try { + const { stdout, stderr } = await runNextCommand(['export', appDir], { + stdout: true, + stderr: true, + }) + expect(stdout).toMatch( + /error.*The parent tag of tag 'img' is 'div', but it can only be 'i-amphtml-sizer-intrinsic'\./ + ) + await expect(access(join(outDir, 'dog.html'))).resolves.toBe( + undefined + ) + await expect(stderr).not.toMatch( + /Found conflicting amp tag "meta" with conflicting prop name="viewport"/ + ) + } finally { + nextConfig.restore() + } + }) + + // img instead of amp-img no longer shows a warning + it.skip('shows warning and error when throwing error', async () => { + nextConfig.replace( + '// exportPathMap', + `exportPathMap: function(defaultMap) { return { '/dog-cat': { page: '/dog-cat' }, } },` - ) - - try { - const { stdout, stderr } = await runNextCommand(['export', appDir], { - stdout: true, - stderr: true, - }) - expect(stdout).toMatch( - /error.*The parent tag of tag 'img' is 'div', but it can only be 'i-amphtml-sizer-intrinsic'\./ - ) - await expect(access(join(outDir, 'dog-cat.html'))).resolves.toBe( - undefined ) - await expect(stderr).not.toMatch( - /Found conflicting amp tag "meta" with conflicting prop name="viewport"/ - ) - } finally { - nextConfig.restore() - } - }) - }) + + try { + const { stdout, stderr } = await runNextCommand(['export', appDir], { + stdout: true, + stderr: true, + }) + expect(stdout).toMatch( + /error.*The parent tag of tag 'img' is 'div', but it can only be 'i-amphtml-sizer-intrinsic'\./ + ) + await expect(access(join(outDir, 'dog-cat.html'))).resolves.toBe( + undefined + ) + await expect(stderr).not.toMatch( + /Found conflicting amp tag "meta" with conflicting prop name="viewport"/ + ) + } finally { + nextConfig.restore() + } + }) + } + ) }) diff --git a/test/integration/amphtml-custom-optimizer/next.config.js b/test/integration/amphtml-custom-optimizer/next.config.js index 072c5b3965f97..ce0e0a00c1d99 100644 --- a/test/integration/amphtml-custom-optimizer/next.config.js +++ b/test/integration/amphtml-custom-optimizer/next.config.js @@ -1,6 +1,7 @@ module.exports = { experimental: { amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), optimizer: { ampRuntimeVersion: '001515617716922', rtv: true, diff --git a/test/integration/amphtml-custom-optimizer/test/index.test.js b/test/integration/amphtml-custom-optimizer/test/index.test.js index 3c2126676a5fd..e8becde45df95 100644 --- a/test/integration/amphtml-custom-optimizer/test/index.test.js +++ b/test/integration/amphtml-custom-optimizer/test/index.test.js @@ -14,43 +14,46 @@ let appPort const appDir = join(__dirname, '../') describe('AMP Custom Optimizer', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should build and start for static page', async () => { - const { code } = await nextBuild(appDir) - expect(code).toBe(0) - - appPort = await findPort() - app = await nextStart(appDir, appPort) - - const html = await renderViaHTTP(appPort, '/') - await killApp(app) - - expect(html).toContain( - 'amp-twitter width="500" height="500" layout="responsive" data-tweetid="1159145442896166912"' - ) - expect(html).toContain('i-amphtml-version="001515617716922"') - expect(html).toContain( - 'script async src="https://cdn.ampproject.org/rtv/001515617716922/v0.mjs"' - ) - }) - - it('should build and start for dynamic page', async () => { - const { code } = await nextBuild(appDir) - expect(code).toBe(0) - - appPort = await findPort() - app = await nextStart(appDir, appPort) - - const html = await renderViaHTTP(appPort, '/dynamic') - await killApp(app) - - expect(html).toContain( - 'amp-img width="500" height="500" layout="responsive" src="https://amp.dev/static/samples/img/story_dog2_portrait.jpg"' - ) - expect(html).toContain('i-amphtml-version="001515617716922"') - expect(html).toContain( - 'script async src="https://cdn.ampproject.org/rtv/001515617716922/v0.mjs"' - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should build and start for static page', async () => { + const { code } = await nextBuild(appDir) + expect(code).toBe(0) + + appPort = await findPort() + app = await nextStart(appDir, appPort) + + const html = await renderViaHTTP(appPort, '/') + await killApp(app) + + expect(html).toContain( + 'amp-twitter width="500" height="500" layout="responsive" data-tweetid="1159145442896166912"' + ) + expect(html).toContain('i-amphtml-version="001515617716922"') + expect(html).toContain( + 'script async src="https://cdn.ampproject.org/rtv/001515617716922/v0.mjs"' + ) + }) + + it('should build and start for dynamic page', async () => { + const { code } = await nextBuild(appDir) + expect(code).toBe(0) + + appPort = await findPort() + app = await nextStart(appDir, appPort) + + const html = await renderViaHTTP(appPort, '/dynamic') + await killApp(app) + + expect(html).toContain( + 'amp-img width="500" height="500" layout="responsive" src="https://amp.dev/static/samples/img/story_dog2_portrait.jpg"' + ) + expect(html).toContain('i-amphtml-version="001515617716922"') + expect(html).toContain( + 'script async src="https://cdn.ampproject.org/rtv/001515617716922/v0.mjs"' + ) + }) + } + ) }) diff --git a/test/integration/amphtml-custom-validator/next.config.js b/test/integration/amphtml-custom-validator/next.config.js index 56199a29e18a2..4878469462e44 100644 --- a/test/integration/amphtml-custom-validator/next.config.js +++ b/test/integration/amphtml-custom-validator/next.config.js @@ -1,7 +1,7 @@ module.exports = { experimental: { amp: { - validator: 'https://cdn.ampproject.org/v0/validator_wasm.js', + validator: require.resolve('../../lib/amp-validator-wasm.js'), }, }, } diff --git a/test/integration/amphtml-custom-validator/test/index.test.js b/test/integration/amphtml-custom-validator/test/index.test.js index 80e5e3b41591b..ac5d128ab5253 100644 --- a/test/integration/amphtml-custom-validator/test/index.test.js +++ b/test/integration/amphtml-custom-validator/test/index.test.js @@ -18,7 +18,7 @@ const appDir = join(__dirname, '../') ;(process.env.TURBOPACK ? describe.skip : describe)( 'AMP Custom Validator', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)( + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( 'production mode', () => { it('should build and start successfully', async () => { @@ -35,24 +35,26 @@ const appDir = join(__dirname, '../') }) } ) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it('should run in development mode successfully', async () => { + let stderr = '' - describe('development mode', () => { - it('should run in dev mode successfully', async () => { - let stderr = '' - - appPort = await findPort() - app = await launchApp(appDir, appPort, { - onStderr(msg) { - stderr += msg || '' - }, - }) + appPort = await findPort() + app = await launchApp(appDir, appPort, { + onStderr(msg) { + stderr += msg || '' + }, + }) - const html = await renderViaHTTP(appPort, '/') - await killApp(app) + const html = await renderViaHTTP(appPort, '/') + await killApp(app) - expect(stderr).not.toContain('error') - expect(html).toContain('Hello from AMP') - }) - }) + expect(stderr).not.toContain('error') + expect(html).toContain('Hello from AMP') + }) + } + ) } ) diff --git a/test/integration/amphtml-fragment-style/next.config.js b/test/integration/amphtml-fragment-style/next.config.js new file mode 100644 index 0000000000000..4878469462e44 --- /dev/null +++ b/test/integration/amphtml-fragment-style/next.config.js @@ -0,0 +1,7 @@ +module.exports = { + experimental: { + amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), + }, + }, +} diff --git a/test/integration/amphtml-fragment-style/test/index.test.js b/test/integration/amphtml-fragment-style/test/index.test.js index 817ac7655abbc..6807359766a48 100644 --- a/test/integration/amphtml-fragment-style/test/index.test.js +++ b/test/integration/amphtml-fragment-style/test/index.test.js @@ -16,21 +16,24 @@ let appPort let app describe('AMP Fragment Styles', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir, []) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir, []) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) - it('adds styles from fragment in AMP mode correctly', async () => { - const html = await renderViaHTTP(appPort, '/', { amp: 1 }) - await validateAMP(html) - const $ = cheerio.load(html) - const styles = $('style[amp-custom]').text() - expect(styles).toMatch(/background:(.*|)hotpink/) - expect(styles).toMatch(/font-size:(.*|)16\.4px/) - }) - }) + it('adds styles from fragment in AMP mode correctly', async () => { + const html = await renderViaHTTP(appPort, '/', { amp: 1 }) + await validateAMP(html) + const $ = cheerio.load(html) + const styles = $('style[amp-custom]').text() + expect(styles).toMatch(/background:(.*|)hotpink/) + expect(styles).toMatch(/font-size:(.*|)16\.4px/) + }) + } + ) }) diff --git a/test/integration/amphtml-ssg/next.config.js b/test/integration/amphtml-ssg/next.config.js new file mode 100644 index 0000000000000..4878469462e44 --- /dev/null +++ b/test/integration/amphtml-ssg/next.config.js @@ -0,0 +1,7 @@ +module.exports = { + experimental: { + amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), + }, + }, +} diff --git a/test/integration/amphtml-ssg/test/index.test.js b/test/integration/amphtml-ssg/test/index.test.js index 1b11eb772be5c..dbee797d452f1 100644 --- a/test/integration/amphtml-ssg/test/index.test.js +++ b/test/integration/amphtml-ssg/test/index.test.js @@ -99,27 +99,33 @@ const runTests = (isDev = false) => { } describe('AMP SSG Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - // TODO: use browser instead to do checks that now need filesystem access - builtServerPagesDir = join(appDir, '.next', 'server', 'pages') - }) - afterAll(() => killApp(app)) - runTests() - }) - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) - runTests(true) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + // TODO: use browser instead to do checks that now need filesystem access + builtServerPagesDir = join(appDir, '.next', 'server', 'pages') + }) + afterAll(() => killApp(app)) + runTests() + } + ) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) + runTests(true) + } + ) describe('export mode', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)( + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( 'production mode', () => { let buildId diff --git a/test/integration/amphtml/next.config.js b/test/integration/amphtml/next.config.js index 9645154cca885..5547170ca049c 100644 --- a/test/integration/amphtml/next.config.js +++ b/test/integration/amphtml/next.config.js @@ -6,5 +6,10 @@ module.exports = { amp: { canonicalBase: 'http://localhost:1234', }, + experimental: { + amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), + }, + }, // edit here } diff --git a/test/integration/amphtml/test/index.test.js b/test/integration/amphtml/test/index.test.js index b8aacc95345cb..b8f049a358fb3 100644 --- a/test/integration/amphtml/test/index.test.js +++ b/test/integration/amphtml/test/index.test.js @@ -25,225 +25,228 @@ let app const context = {} describe('AMP Usage', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - let output = '' - - beforeAll(async () => { - await rename( - join(appDir, 'pages/invalid-amp.js'), - join(appDir, 'pages/invalid-amp.js.bak') - ) - const result = await nextBuild(appDir, undefined, { - stdout: true, - stderr: true, - }) - - output = stripAnsi(result.stdout + result.stderr) - - appPort = context.appPort = await findPort() - app = await nextStart(appDir, context.appPort) - }) - afterAll(async () => { - await rename( - join(appDir, 'pages/invalid-amp.js.bak'), - join(appDir, 'pages/invalid-amp.js') - ) - return killApp(app) - }) - - it('should have amp optimizer in trace', async () => { - const trace = JSON.parse( - readFileSync(join(appDir, '.next/next-server.js.nft.json'), 'utf8') - ) - expect( - trace.files.some((file) => - file.replace(/\\/g, '/').includes('@ampproject/toolbox-optimizer') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + let output = '' + + beforeAll(async () => { + await rename( + join(appDir, 'pages/invalid-amp.js'), + join(appDir, 'pages/invalid-amp.js.bak') ) - ).toBe(true) - }) + const result = await nextBuild(appDir, undefined, { + stdout: true, + stderr: true, + }) - it('should not contain missing files warning', async () => { - expect(output).toContain('Compiled successfully') - expect(output).not.toContain('Could not find files for') - }) + output = stripAnsi(result.stdout + result.stderr) - describe('With basic usage', () => { - it('should render the page', async () => { - const html = await renderViaHTTP(appPort, '/') - expect(html).toMatch(/Hello World/) + appPort = context.appPort = await findPort() + app = await nextStart(appDir, context.appPort) }) - }) - - describe('With basic AMP usage', () => { - it('should render the page as valid AMP', async () => { - const html = await renderViaHTTP(appPort, '/?amp=1') - await validateAMP(html) - expect(html).toMatch(/Hello World/) - - const $ = cheerio.load(html) - expect($('.abc')).toHaveLength(1) - }) - - it('should render the page without leaving render target', async () => { - const html = await renderViaHTTP(appPort, '/special-chars') - await validateAMP(html) - expect(html).not.toContain('__NEXT_AMP_RENDER_TARGET__') - }) - - it('should not output client pages for AMP only', async () => { - const browser = await webdriver(appPort, '/nav') - await browser.elementByCss('#only-amp-link').click() - - const result = await browser.eval('window.NAV_PAGE_LOADED') - - expect(result).toBeFalsy() + afterAll(async () => { + await rename( + join(appDir, 'pages/invalid-amp.js.bak'), + join(appDir, 'pages/invalid-amp.js') + ) + return killApp(app) }) - it('should not output client pages for AMP only with config exported after declaration', async () => { - const browser = await webdriver(appPort, '/nav') - await browser.elementByCss('#var-before-export-link').click() - - const result = await browser.eval('window.NAV_PAGE_LOADED') - - expect(result).toBeFalsy() + it('should have amp optimizer in trace', async () => { + const trace = JSON.parse( + readFileSync(join(appDir, '.next/next-server.js.nft.json'), 'utf8') + ) + expect( + trace.files.some((file) => + file.replace(/\\/g, '/').includes('@ampproject/toolbox-optimizer') + ) + ).toBe(true) }) - it('should drop custom scripts', async () => { - const html = await renderViaHTTP(appPort, '/custom-scripts') - expect(html).not.toMatch(/src='\/im-not-allowed\.js'/) - expect(html).not.toMatch(/console\.log("I'm not either :p")'/) + it('should not contain missing files warning', async () => { + expect(output).toContain('Compiled successfully') + expect(output).not.toContain('Could not find files for') }) - it('should not drop custom amp scripts', async () => { - const html = await renderViaHTTP(appPort, '/amp-script?amp=1') - await validateAMP(html) + describe('With basic usage', () => { + it('should render the page', async () => { + const html = await renderViaHTTP(appPort, '/') + expect(html).toMatch(/Hello World/) + }) }) - it('should optimize clean', async () => { - const html = await renderViaHTTP(appPort, '/only-amp') - await validateAMP(html) - }) + describe('With basic AMP usage', () => { + it('should render the page as valid AMP', async () => { + const html = await renderViaHTTP(appPort, '/?amp=1') + await validateAMP(html) + expect(html).toMatch(/Hello World/) - it('should auto import extensions', async () => { - const html = await renderViaHTTP(appPort, '/auto-import') - await validateAMP(html) - }) - }) + const $ = cheerio.load(html) + expect($('.abc')).toHaveLength(1) + }) - describe('With AMP context', () => { - it('should render the normal page that uses the AMP hook', async () => { - const html = await renderViaHTTP(appPort, '/use-amp-hook') - expect(html).toMatch(/Hello others/) - expect(html).toMatch(/no AMP for you\.\.\./) - }) + it('should render the page without leaving render target', async () => { + const html = await renderViaHTTP(appPort, '/special-chars') + await validateAMP(html) + expect(html).not.toContain('__NEXT_AMP_RENDER_TARGET__') + }) - it('should render the AMP page that uses the AMP hook', async () => { - const html = await renderViaHTTP(appPort, '/use-amp-hook?amp=1') - await validateAMP(html) - expect(html).toMatch(/Hello AMP/) - expect(html).toMatch(/AMP Power!!!/) - }) + it('should not output client pages for AMP only', async () => { + const browser = await webdriver(appPort, '/nav') + await browser.elementByCss('#only-amp-link').click() - it('should render nested normal page with AMP hook', async () => { - const html = await renderViaHTTP(appPort, '/nested') - expect(html).toMatch(/Hello others/) - }) + const result = await browser.eval('window.NAV_PAGE_LOADED') - it('should render nested AMP page with AMP hook', async () => { - const html = await renderViaHTTP(appPort, '/nested?amp=1') - await validateAMP(html) - expect(html).toMatch(/Hello AMP/) - }) - }) + expect(result).toBeFalsy() + }) - describe('canonical amphtml', () => { - it('should render link rel amphtml', async () => { - const html = await renderViaHTTP(appPort, '/use-amp-hook') - const $ = cheerio.load(html) - expect($('link[rel=amphtml]').first().attr('href')).toBe( - 'http://localhost:1234/use-amp-hook.amp' - ) - }) + it('should not output client pages for AMP only with config exported after declaration', async () => { + const browser = await webdriver(appPort, '/nav') + await browser.elementByCss('#var-before-export-link').click() - it('should render amphtml from provided rel link', async () => { - const html = await renderViaHTTP(appPort, '/use-amp-hook.amp') - await validateAMP(html) - }) + const result = await browser.eval('window.NAV_PAGE_LOADED') - it('should render link rel amphtml with existing query', async () => { - const html = await renderViaHTTP(appPort, '/use-amp-hook?hello=1') - expect(html).not.toMatch(/&amp=1/) - }) + expect(result).toBeFalsy() + }) - it('should render the AMP page that uses the AMP hook', async () => { - const html = await renderViaHTTP(appPort, '/use-amp-hook?amp=1') - const $ = cheerio.load(html) - await validateAMP(html) - expect($('link[rel=canonical]').first().attr('href')).toBe( - 'http://localhost:1234/use-amp-hook' - ) - }) + it('should drop custom scripts', async () => { + const html = await renderViaHTTP(appPort, '/custom-scripts') + expect(html).not.toMatch(/src='\/im-not-allowed\.js'/) + expect(html).not.toMatch(/console\.log("I'm not either :p")'/) + }) - it('should render a canonical regardless of amp-only status (explicit)', async () => { - const html = await renderViaHTTP(appPort, '/only-amp') - const $ = cheerio.load(html) - await validateAMP(html) - expect($('link[rel=canonical]').first().attr('href')).toBe( - 'http://localhost:1234/only-amp' - ) - }) + it('should not drop custom amp scripts', async () => { + const html = await renderViaHTTP(appPort, '/amp-script?amp=1') + await validateAMP(html) + }) - it('should not render amphtml link tag with no AMP page', async () => { - const html = await renderViaHTTP(appPort, '/normal') - const $ = cheerio.load(html) - expect($('link[rel=amphtml]').first().attr('href')).not.toBeTruthy() - }) + it('should optimize clean', async () => { + const html = await renderViaHTTP(appPort, '/only-amp') + await validateAMP(html) + }) - it('should remove conflicting amp tags', async () => { - const html = await renderViaHTTP(appPort, '/conflicting-tag?amp=1') - const $ = cheerio.load(html) - await validateAMP(html) - expect($('meta[name=viewport]').attr('content')).not.toBe( - 'something :p' - ) + it('should auto import extensions', async () => { + const html = await renderViaHTTP(appPort, '/auto-import') + await validateAMP(html) + }) }) - it('should allow manually setting canonical', async () => { - const html = await renderViaHTTP(appPort, '/manual-rels?amp=1') - const $ = cheerio.load(html) - await validateAMP(html) - expect($('link[rel=canonical]').attr('href')).toBe( - '/my-custom-canonical' - ) + describe('With AMP context', () => { + it('should render the normal page that uses the AMP hook', async () => { + const html = await renderViaHTTP(appPort, '/use-amp-hook') + expect(html).toMatch(/Hello others/) + expect(html).toMatch(/no AMP for you\.\.\./) + }) + + it('should render the AMP page that uses the AMP hook', async () => { + const html = await renderViaHTTP(appPort, '/use-amp-hook?amp=1') + await validateAMP(html) + expect(html).toMatch(/Hello AMP/) + expect(html).toMatch(/AMP Power!!!/) + }) + + it('should render nested normal page with AMP hook', async () => { + const html = await renderViaHTTP(appPort, '/nested') + expect(html).toMatch(/Hello others/) + }) + + it('should render nested AMP page with AMP hook', async () => { + const html = await renderViaHTTP(appPort, '/nested?amp=1') + await validateAMP(html) + expect(html).toMatch(/Hello AMP/) + }) }) - it('should allow manually setting amphtml rel', async () => { - const html = await renderViaHTTP(appPort, '/manual-rels') - const $ = cheerio.load(html) - expect($('link[rel=amphtml]').attr('href')).toBe('/my-custom-amphtml') - expect($('link[rel=amphtml]')).toHaveLength(1) + describe('canonical amphtml', () => { + it('should render link rel amphtml', async () => { + const html = await renderViaHTTP(appPort, '/use-amp-hook') + const $ = cheerio.load(html) + expect($('link[rel=amphtml]').first().attr('href')).toBe( + 'http://localhost:1234/use-amp-hook.amp' + ) + }) + + it('should render amphtml from provided rel link', async () => { + const html = await renderViaHTTP(appPort, '/use-amp-hook.amp') + await validateAMP(html) + }) + + it('should render link rel amphtml with existing query', async () => { + const html = await renderViaHTTP(appPort, '/use-amp-hook?hello=1') + expect(html).not.toMatch(/&amp=1/) + }) + + it('should render the AMP page that uses the AMP hook', async () => { + const html = await renderViaHTTP(appPort, '/use-amp-hook?amp=1') + const $ = cheerio.load(html) + await validateAMP(html) + expect($('link[rel=canonical]').first().attr('href')).toBe( + 'http://localhost:1234/use-amp-hook' + ) + }) + + it('should render a canonical regardless of amp-only status (explicit)', async () => { + const html = await renderViaHTTP(appPort, '/only-amp') + const $ = cheerio.load(html) + await validateAMP(html) + expect($('link[rel=canonical]').first().attr('href')).toBe( + 'http://localhost:1234/only-amp' + ) + }) + + it('should not render amphtml link tag with no AMP page', async () => { + const html = await renderViaHTTP(appPort, '/normal') + const $ = cheerio.load(html) + expect($('link[rel=amphtml]').first().attr('href')).not.toBeTruthy() + }) + + it('should remove conflicting amp tags', async () => { + const html = await renderViaHTTP(appPort, '/conflicting-tag?amp=1') + const $ = cheerio.load(html) + await validateAMP(html) + expect($('meta[name=viewport]').attr('content')).not.toBe( + 'something :p' + ) + }) + + it('should allow manually setting canonical', async () => { + const html = await renderViaHTTP(appPort, '/manual-rels?amp=1') + const $ = cheerio.load(html) + await validateAMP(html) + expect($('link[rel=canonical]').attr('href')).toBe( + '/my-custom-canonical' + ) + }) + + it('should allow manually setting amphtml rel', async () => { + const html = await renderViaHTTP(appPort, '/manual-rels') + const $ = cheerio.load(html) + expect($('link[rel=amphtml]').attr('href')).toBe('/my-custom-amphtml') + expect($('link[rel=amphtml]')).toHaveLength(1) + }) }) - }) - describe('combined styles', () => { - it('should combine style tags', async () => { - const html = await renderViaHTTP(appPort, '/styled?amp=1') - const $ = cheerio.load(html) - expect($('style[amp-custom]').first().text()).toMatch( - /div.jsx-[a-zA-Z0-9]{1,}{color:red}span.jsx-[a-zA-Z0-9]{1,}{color:(?:blue|#00f)}body{background-color:green}/ - ) - }) + describe('combined styles', () => { + it('should combine style tags', async () => { + const html = await renderViaHTTP(appPort, '/styled?amp=1') + const $ = cheerio.load(html) + expect($('style[amp-custom]').first().text()).toMatch( + /div.jsx-[a-zA-Z0-9]{1,}{color:red}span.jsx-[a-zA-Z0-9]{1,}{color:(?:blue|#00f)}body{background-color:green}/ + ) + }) - it('should remove sourceMaps from styles', async () => { - const html = await renderViaHTTP(appPort, '/styled?amp=1') - const $ = cheerio.load(html) - const styles = $('style[amp-custom]').first().text() + it('should remove sourceMaps from styles', async () => { + const html = await renderViaHTTP(appPort, '/styled?amp=1') + const $ = cheerio.load(html) + const styles = $('style[amp-custom]').first().text() - expect(styles).not.toMatch(/\/\*@ sourceURL=.*?\*\//) - expect(styles).not.toMatch(/\/\*# sourceMappingURL=.*\*\//) + expect(styles).not.toMatch(/\/\*@ sourceURL=.*?\*\//) + expect(styles).not.toMatch(/\/\*# sourceMappingURL=.*\*\//) + }) }) - }) - }) + } + ) describe('AMP dev no-warn', () => { let dynamicAppPort @@ -269,7 +272,7 @@ describe('AMP Usage', () => { }) }) - describe('AMP dev mode', () => { + describe('AMP development mode', () => { let dynamicAppPort let ampDynamic let output = '' diff --git a/test/integration/api-catch-all/test/index.test.js b/test/integration/api-catch-all/test/index.test.js index 90bc7e3d4ccab..5fa5829a06c92 100644 --- a/test/integration/api-catch-all/test/index.test.js +++ b/test/integration/api-catch-all/test/index.test.js @@ -59,14 +59,17 @@ describe('API routes', () => { runTests() }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests() - }) + runTests() + } + ) }) diff --git a/test/integration/api-support/test/index.test.js b/test/integration/api-support/test/index.test.js index fb27d6103f1b1..dea8e1e5e17f9 100644 --- a/test/integration/api-support/test/index.test.js +++ b/test/integration/api-support/test/index.test.js @@ -547,7 +547,7 @@ function runTests(dev = false) { expect(getPageFileFromPagesManifest(appDir, '/api/users')).toBeTruthy() }) - it('should show warning when the API resolves without ending the request in dev mode', async () => { + it('should show warning when the API resolves without ending the request in development mode', async () => { const controller = new AbortController() setTimeout(() => { controller.abort() @@ -644,15 +644,18 @@ describe('API routes', () => { runTests(true) }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - mode = 'server' - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + mode = 'server' + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests() - }) + runTests() + } + ) }) diff --git a/test/integration/app-dir-export/test/config.test.ts b/test/integration/app-dir-export/test/config.test.ts index 36d5a4a2e513d..a450e982e2a2f 100644 --- a/test/integration/app-dir-export/test/config.test.ts +++ b/test/integration/app-dir-export/test/config.test.ts @@ -11,79 +11,84 @@ import { } from './utils' describe('app dir - with output export (next dev / next build)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should throw when exportPathMap configured', async () => { - nextConfig.replace( - 'trailingSlash: true,', - `trailingSlash: true, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should throw when exportPathMap configured', async () => { + nextConfig.replace( + 'trailingSlash: true,', + `trailingSlash: true, exportPathMap: async function (map) { return map },` - ) - await fs.remove(distDir) - await fs.remove(exportDir) - let result = { code: 0, stderr: '' } - try { - result = await nextBuild(appDir, [], { stderr: true }) - } finally { - nextConfig.restore() - } - expect(result.code).toBe(1) - expect(result.stderr).toContain( - 'The "exportPathMap" configuration cannot be used with the "app" directory. Please use generateStaticParams() instead.' - ) - }) - it('should error when running next export', async () => { - await fs.remove(distDir) - await fs.remove(exportDir) - nextConfig.delete() - try { - await nextBuild(appDir) - expect(await getFiles()).toEqual([]) - let stdout = '' - let stderr = '' - let error = undefined + ) + await fs.remove(distDir) + await fs.remove(exportDir) + let result = { code: 0, stderr: '' } try { - await runNextCommand(['export', appDir], { - onStdout(msg) { - stdout += msg - }, - onStderr(msg) { - stderr += msg - }, - }) - } catch (e) { - error = e + result = await nextBuild(appDir, [], { stderr: true }) + } finally { + nextConfig.restore() } - expect(error).toBeDefined() - expect(stderr).toContain( - `\`next export\` has been removed in favor of 'output: export' in next.config.js` + expect(result.code).toBe(1) + expect(result.stderr).toContain( + 'The "exportPathMap" configuration cannot be used with the "app" directory. Please use generateStaticParams() instead.' ) - expect(stdout).not.toContain('Export successful. Files written to') - expect(await getFiles()).toEqual([]) - } finally { - nextConfig.restore() + }) + it('should error when running next export', async () => { await fs.remove(distDir) await fs.remove(exportDir) - } - }) - it('should correctly emit exported assets to config.distDir', async () => { - const outputDir = join(appDir, 'output') - await fs.remove(distDir) - await fs.remove(outputDir) - nextConfig.replace( - 'trailingSlash: true,', - `trailingSlash: true, - distDir: 'output',` - ) - try { - await nextBuild(appDir) - expect(await getFiles(outputDir)).toEqual(expectedWhenTrailingSlashTrue) - } finally { - nextConfig.restore() + nextConfig.delete() + try { + await nextBuild(appDir) + expect(await getFiles()).toEqual([]) + let stdout = '' + let stderr = '' + let error = undefined + try { + await runNextCommand(['export', appDir], { + onStdout(msg) { + stdout += msg + }, + onStderr(msg) { + stderr += msg + }, + }) + } catch (e) { + error = e + } + expect(error).toBeDefined() + expect(stderr).toContain( + `\`next export\` has been removed in favor of 'output: export' in next.config.js` + ) + expect(stdout).not.toContain('Export successful. Files written to') + expect(await getFiles()).toEqual([]) + } finally { + nextConfig.restore() + await fs.remove(distDir) + await fs.remove(exportDir) + } + }) + it('should correctly emit exported assets to config.distDir', async () => { + const outputDir = join(appDir, 'output') await fs.remove(distDir) await fs.remove(outputDir) - } - }) - }) + nextConfig.replace( + 'trailingSlash: true,', + `trailingSlash: true, + distDir: 'output',` + ) + try { + await nextBuild(appDir) + expect(await getFiles(outputDir)).toEqual( + expectedWhenTrailingSlashTrue + ) + } finally { + nextConfig.restore() + await fs.remove(distDir) + await fs.remove(outputDir) + } + }) + } + ) }) diff --git a/test/integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts b/test/integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts index c5c23a71e5fcd..2e7fb9f90aa59 100644 --- a/test/integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts +++ b/test/integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts @@ -1,25 +1,30 @@ import { runTests } from './utils' describe('app dir - with output export - dynamic missing gsp dev', () => { - describe('development mode', () => { - it('should error when dynamic route is missing generateStaticParams', async () => { - await runTests({ - isDev: true, - dynamicPage: 'undefined', - generateStaticParamsOpt: 'set noop', - expectedErrMsg: - 'Page "/another/[slug]/page" is missing exported function "generateStaticParams()", which is required with "output: export" config.', + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it('should error when dynamic route is missing generateStaticParams', async () => { + await runTests({ + isDev: true, + dynamicPage: 'undefined', + generateStaticParamsOpt: 'set noop', + expectedErrMsg: + 'Page "/another/[slug]/page" is missing exported function "generateStaticParams()", which is required with "output: export" config.', + }) }) - }) - it('should error when client component has generateStaticParams', async () => { - await runTests({ - isDev: true, - dynamicPage: 'undefined', - generateStaticParamsOpt: 'set client', - expectedErrMsg: - 'Page "/another/[slug]/page" cannot use both "use client" and export function "generateStaticParams()".', + it('should error when client component has generateStaticParams', async () => { + const expectedErrMsg = process.env.TURBOPACK_DEV + ? 'Page "test/integration/app-dir-export/app/another/[slug]/page.js" cannot use both "use client" and export function "generateStaticParams()".' + : 'Page "/another/[slug]/page" cannot use both "use client" and export function "generateStaticParams()".' + await runTests({ + isDev: true, + dynamicPage: 'undefined', + generateStaticParamsOpt: 'set client', + expectedErrMsg, + }) }) - }) - }) + } + ) }) diff --git a/test/integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts b/test/integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts index 0bca7526b3e3d..78267dd1e070f 100644 --- a/test/integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts +++ b/test/integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts @@ -1,25 +1,28 @@ import { runTests } from './utils' describe('app dir - with output export - dynamic missing gsp prod', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should error when dynamic route is missing generateStaticParams', async () => { - await runTests({ - isDev: false, - dynamicPage: 'undefined', - generateStaticParamsOpt: 'set noop', - expectedErrMsg: - 'Page "/another/[slug]" is missing "generateStaticParams()" so it cannot be used with "output: export" config.', + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should error when dynamic route is missing generateStaticParams', async () => { + await runTests({ + isDev: false, + dynamicPage: 'undefined', + generateStaticParamsOpt: 'set noop', + expectedErrMsg: + 'Page "/another/[slug]" is missing "generateStaticParams()" so it cannot be used with "output: export" config.', + }) }) - }) - it('should error when client component has generateStaticParams', async () => { - await runTests({ - isDev: false, - dynamicPage: 'undefined', - generateStaticParamsOpt: 'set client', - expectedErrMsg: - 'Page "/another/[slug]/page" cannot use both "use client" and export function "generateStaticParams()".', + it('should error when client component has generateStaticParams', async () => { + await runTests({ + isDev: false, + dynamicPage: 'undefined', + generateStaticParamsOpt: 'set client', + expectedErrMsg: + 'Page "/another/[slug]/page" cannot use both "use client" and export function "generateStaticParams()".', + }) }) - }) - }) + } + ) }) diff --git a/test/integration/app-dir-export/test/dynamicapiroute-dev.test.ts b/test/integration/app-dir-export/test/dynamicapiroute-dev.test.ts index f860cd0021ba4..a0e968e45bd78 100644 --- a/test/integration/app-dir-export/test/dynamicapiroute-dev.test.ts +++ b/test/integration/app-dir-export/test/dynamicapiroute-dev.test.ts @@ -1,21 +1,24 @@ import { runTests } from './utils' describe('app dir - with output export - dynamic api route dev', () => { - describe('development mode', () => { - it.each([ - { dynamicApiRoute: 'undefined' }, - { dynamicApiRoute: "'error'" }, - { dynamicApiRoute: "'force-static'" }, - { - dynamicApiRoute: "'force-dynamic'", - expectedErrMsg: - 'export const dynamic = "force-dynamic" on page "/api/json" cannot be used with "output: export".', - }, - ])( - 'should work in dev with dynamicApiRoute $dynamicApiRoute', - async ({ dynamicApiRoute, expectedErrMsg }) => { - await runTests({ isDev: true, dynamicApiRoute, expectedErrMsg }) - } - ) - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it.each([ + { dynamicApiRoute: 'undefined' }, + { dynamicApiRoute: "'error'" }, + { dynamicApiRoute: "'force-static'" }, + { + dynamicApiRoute: "'force-dynamic'", + expectedErrMsg: + 'export const dynamic = "force-dynamic" on page "/api/json" cannot be used with "output: export".', + }, + ])( + 'should work in dev with dynamicApiRoute $dynamicApiRoute', + async ({ dynamicApiRoute, expectedErrMsg }) => { + await runTests({ isDev: true, dynamicApiRoute, expectedErrMsg }) + } + ) + } + ) }) diff --git a/test/integration/app-dir-export/test/dynamicapiroute-prod.test.ts b/test/integration/app-dir-export/test/dynamicapiroute-prod.test.ts index d3ba2a327cad8..00b9ced8d5657 100644 --- a/test/integration/app-dir-export/test/dynamicapiroute-prod.test.ts +++ b/test/integration/app-dir-export/test/dynamicapiroute-prod.test.ts @@ -1,21 +1,24 @@ import { runTests } from './utils' describe('app dir - with output export - dynamic api route prod', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it.each([ - { dynamicApiRoute: 'undefined' }, - { dynamicApiRoute: "'error'" }, - { dynamicApiRoute: "'force-static'" }, - { - dynamicApiRoute: "'force-dynamic'", - expectedErrMsg: - 'export const dynamic = "force-dynamic" on page "/api/json" cannot be used with "output: export".', - }, - ])( - 'should work in prod with dynamicApiRoute $dynamicApiRoute', - async ({ dynamicApiRoute, expectedErrMsg }) => { - await runTests({ isDev: false, dynamicApiRoute, expectedErrMsg }) - } - ) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it.each([ + { dynamicApiRoute: 'undefined' }, + { dynamicApiRoute: "'error'" }, + { dynamicApiRoute: "'force-static'" }, + { + dynamicApiRoute: "'force-dynamic'", + expectedErrMsg: + 'export const dynamic = "force-dynamic" on page "/api/json" cannot be used with "output: export".', + }, + ])( + 'should work in prod with dynamicApiRoute $dynamicApiRoute', + async ({ dynamicApiRoute, expectedErrMsg }) => { + await runTests({ isDev: false, dynamicApiRoute, expectedErrMsg }) + } + ) + } + ) }) diff --git a/test/integration/app-dir-export/test/dynamicpage-dev.test.ts b/test/integration/app-dir-export/test/dynamicpage-dev.test.ts index 74ea4a7c308c3..0220d9c28e298 100644 --- a/test/integration/app-dir-export/test/dynamicpage-dev.test.ts +++ b/test/integration/app-dir-export/test/dynamicpage-dev.test.ts @@ -1,21 +1,24 @@ import { runTests } from './utils' describe('app dir - with output export - dynamic page dev', () => { - describe('development mode', () => { - it.each([ - { dynamicPage: 'undefined' }, - { dynamicPage: "'error'" }, - { dynamicPage: "'force-static'" }, - { - dynamicPage: "'force-dynamic'", - expectedErrMsg: - 'Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically', - }, - ])( - 'should work in dev with dynamicPage $dynamicPage', - async ({ dynamicPage, expectedErrMsg }) => { - await runTests({ isDev: true, dynamicPage, expectedErrMsg }) - } - ) - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it.each([ + { dynamicPage: 'undefined' }, + { dynamicPage: "'error'" }, + { dynamicPage: "'force-static'" }, + { + dynamicPage: "'force-dynamic'", + expectedErrMsg: + 'Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically', + }, + ])( + 'should work in dev with dynamicPage $dynamicPage', + async ({ dynamicPage, expectedErrMsg }) => { + await runTests({ isDev: true, dynamicPage, expectedErrMsg }) + } + ) + } + ) }) diff --git a/test/integration/app-dir-export/test/dynamicpage-prod.test.ts b/test/integration/app-dir-export/test/dynamicpage-prod.test.ts index 58e507b84e189..4a04638cd42c8 100644 --- a/test/integration/app-dir-export/test/dynamicpage-prod.test.ts +++ b/test/integration/app-dir-export/test/dynamicpage-prod.test.ts @@ -1,21 +1,24 @@ import { runTests } from './utils' describe('app dir - with output export - dynamic api route prod', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it.each([ - { dynamicPage: 'undefined' }, - { dynamicPage: "'error'" }, - { dynamicPage: "'force-static'" }, - { - dynamicPage: "'force-dynamic'", - expectedErrMsg: - 'Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically', - }, - ])( - 'should work in prod with dynamicPage $dynamicPage', - async ({ dynamicPage, expectedErrMsg }) => { - await runTests({ isDev: false, dynamicPage, expectedErrMsg }) - } - ) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it.each([ + { dynamicPage: 'undefined' }, + { dynamicPage: "'error'" }, + { dynamicPage: "'force-static'" }, + { + dynamicPage: "'force-dynamic'", + expectedErrMsg: + 'Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically', + }, + ])( + 'should work in prod with dynamicPage $dynamicPage', + async ({ dynamicPage, expectedErrMsg }) => { + await runTests({ isDev: false, dynamicPage, expectedErrMsg }) + } + ) + } + ) }) diff --git a/test/integration/app-dir-export/test/start.test.ts b/test/integration/app-dir-export/test/start.test.ts index a801470efd70a..21545989c7c3a 100644 --- a/test/integration/app-dir-export/test/start.test.ts +++ b/test/integration/app-dir-export/test/start.test.ts @@ -18,45 +18,54 @@ const nextConfig = new File(join(appDir, 'next.config.js')) let app describe('app dir - with output export (next start)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - afterEach(async () => { - await killApp(app) - nextConfig.restore() - await fs.remove(distDir) - await fs.remove(exportDir) - }) - - it('should error during next start with output export', async () => { - const { code } = await nextBuild(appDir) - expect(code).toBe(0) - const port = await findPort() - let stderr = '' - app = await nextStart(appDir, port, { - onStderr(msg: string) { - stderr += msg || '' - }, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + afterEach(async () => { + await killApp(app) + nextConfig.restore() + await fs.remove(distDir) + await fs.remove(exportDir) }) - await check(() => stderr, /error/i) - expect(stderr).toContain( - '"next start" does not work with "output: export" configuration. Use "npx serve@latest out" instead.' - ) - }) - it('should warn during next start with output standalone', async () => { - nextConfig.replace(`output: 'export'`, `output: 'standalone'`) - const { code } = await nextBuild(appDir) - expect(code).toBe(0) - const port = await findPort() - let stderr = '' - app = await nextStart(appDir, port, { - onStderr(msg: string) { - stderr += msg || '' - }, + it('should error during next start with output export', async () => { + const { code } = await nextBuild(appDir) + expect(code).toBe(0) + const port = await findPort() + let stderr = '' + app = await nextStart(appDir, port, { + onStderr(msg: string) { + stderr += msg || '' + }, + }) + await check(() => stderr, /error/i) + expect(stderr).toContain( + '"next start" does not work with "output: export" configuration. Use "npx serve@latest out" instead.' + ) }) - await check(() => stderr, /⚠/i) - expect(stderr).toContain( - `"next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.` + + // TODO: Move this test to test/production to run in isolation. + ;(process.env.TURBOPACK_BUILD ? it.skip : it)( + 'should warn during next start with output standalone', + async () => { + nextConfig.replace(`output: 'export'`, `output: 'standalone'`) + const { code } = await nextBuild(appDir) + // eslint-disable-next-line jest/no-standalone-expect + expect(code).toBe(0) + const port = await findPort() + let stderr = '' + app = await nextStart(appDir, port, { + onStderr(msg: string) { + stderr += msg || '' + }, + }) + await check(() => stderr, /⚠/i) + // eslint-disable-next-line jest/no-standalone-expect + expect(stderr).toContain( + `"next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.` + ) + } ) - }) - }) + } + ) }) diff --git a/test/integration/app-dir-export/test/trailing-slash-dev.test.ts b/test/integration/app-dir-export/test/trailing-slash-dev.test.ts index e60383fa10078..e0d8c6a3dc0aa 100644 --- a/test/integration/app-dir-export/test/trailing-slash-dev.test.ts +++ b/test/integration/app-dir-export/test/trailing-slash-dev.test.ts @@ -1,12 +1,15 @@ import { runTests } from './utils' describe('app dir - with output export - trailing slash dev', () => { - describe('development mode', () => { - it.each([{ trailingSlash: false }, { trailingSlash: true }])( - "should work in dev with trailingSlash '$trailingSlash'", - async ({ trailingSlash }) => { - await runTests({ isDev: true, trailingSlash }) - } - ) - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it.each([{ trailingSlash: false }, { trailingSlash: true }])( + "should work in dev with trailingSlash '$trailingSlash'", + async ({ trailingSlash }) => { + await runTests({ isDev: true, trailingSlash }) + } + ) + } + ) }) diff --git a/test/integration/app-dir-export/test/trailing-slash-start.test.ts b/test/integration/app-dir-export/test/trailing-slash-start.test.ts index 02e63769ff3d2..fc3964600e7af 100644 --- a/test/integration/app-dir-export/test/trailing-slash-start.test.ts +++ b/test/integration/app-dir-export/test/trailing-slash-start.test.ts @@ -1,12 +1,15 @@ import { runTests } from './utils' describe('app dir - with output export - trailing slash prod', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it.each([{ trailingSlash: false }, { trailingSlash: true }])( - "should work in prod with trailingSlash '$trailingSlash'", - async ({ trailingSlash }) => { - await runTests({ isDev: false, trailingSlash }) - } - ) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it.each([{ trailingSlash: false }, { trailingSlash: true }])( + "should work in prod with trailingSlash '$trailingSlash'", + async ({ trailingSlash }) => { + await runTests({ isDev: false, trailingSlash }) + } + ) + } + ) }) diff --git a/test/integration/app-dir-export/test/utils.ts b/test/integration/app-dir-export/test/utils.ts index 44b698f6ca287..d9f7cdb21ab0b 100644 --- a/test/integration/app-dir-export/test/utils.ts +++ b/test/integration/app-dir-export/test/utils.ts @@ -11,6 +11,7 @@ import { File, findPort, getRedboxHeader, + getRedboxSource, hasRedbox, killApp, launchApp, @@ -154,7 +155,9 @@ export async function runTests({ const url = dynamicPage ? '/another/first' : '/api/json' const browser = await webdriver(port, url) expect(await hasRedbox(browser)).toBe(true) - expect(await getRedboxHeader(browser)).toContain(expectedErrMsg) + const header = await getRedboxHeader(browser) + const source = await getRedboxSource(browser) + expect(`${header}\n${source}`).toContain(expectedErrMsg) } else { await check(() => result.stderr, /error/i) } diff --git a/test/integration/app-document-import-order/test/index.test.js b/test/integration/app-document-import-order/test/index.test.js index b823f2bf3b7dd..f0f597369a835 100644 --- a/test/integration/app-document-import-order/test/index.test.js +++ b/test/integration/app-document-import-order/test/index.test.js @@ -51,46 +51,51 @@ const respectsChunkAttachmentOrder = async () => { } describe('Root components import order', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + + it( + '_app chunks should be attached to de dom before page chunks', + respectsChunkAttachmentOrder + ) + it( + 'root components should be imported in this order _document > _app > page in order to respect side effects', + respectsSideEffects + ) + } + ) +}) +;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { beforeAll(async () => { - await nextBuild(appDir) appPort = await findPort() - app = await nextStart(appDir, appPort) + app = await launchApp(join(__dirname, '../'), appPort) }) + afterAll(() => killApp(app)) - it( - '_app chunks should be attached to de dom before page chunks', - respectsChunkAttachmentOrder - ) it( 'root components should be imported in this order _document > _app > page in order to respect side effects', respectsSideEffects ) - }) -}) - -describe('development mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(join(__dirname, '../'), appPort) - }) - - afterAll(() => killApp(app)) - it( - 'root components should be imported in this order _document > _app > page in order to respect side effects', - respectsSideEffects - ) - - // Test relies on webpack splitChunks overrides. - ;(process.env.TURBOPACK ? describe.skip : describe)( - 'Skipped in Turbopack', - () => { - it( - '_app chunks should be attached to de dom before page chunks', - respectsChunkAttachmentOrder - ) - } - ) -}) + // Test relies on webpack splitChunks overrides. + ;(process.env.TURBOPACK ? describe.skip : describe)( + 'Skipped in Turbopack', + () => { + it( + '_app chunks should be attached to de dom before page chunks', + respectsChunkAttachmentOrder + ) + } + ) + } +) diff --git a/test/integration/app-document-style-fragment/test/index.test.js b/test/integration/app-document-style-fragment/test/index.test.js index 3b81191139ab6..db6a60ef24393 100644 --- a/test/integration/app-document-style-fragment/test/index.test.js +++ b/test/integration/app-document-style-fragment/test/index.test.js @@ -16,27 +16,30 @@ let server let app describe('Custom Document Fragment Styles', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - app = nextServer({ - dir: join(__dirname, '../'), - dev: false, - quiet: true, - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + app = nextServer({ + dir: join(__dirname, '../'), + dev: false, + quiet: true, + }) - server = await startApp(app) - appPort = server.address().port - }) - afterAll(() => stopApp(server)) + server = await startApp(app) + appPort = server.address().port + }) + afterAll(() => stopApp(server)) - it('correctly adds styles from fragment styles key', async () => { - const html = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(html) + it('correctly adds styles from fragment styles key', async () => { + const html = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(html) - const styles = $('style').text() - expect(styles).toMatch(/background:(.*|)hotpink/) - expect(styles).toMatch(/font-size:(.*|)16\.4px/) - }) - }) + const styles = $('style').text() + expect(styles).toMatch(/background:(.*|)hotpink/) + expect(styles).toMatch(/font-size:(.*|)16\.4px/) + }) + } + ) }) diff --git a/test/integration/app-dynamic-error/test/index.test.ts b/test/integration/app-dynamic-error/test/index.test.ts index 1215ef263b3df..6def977333c7a 100644 --- a/test/integration/app-dynamic-error/test/index.test.ts +++ b/test/integration/app-dynamic-error/test/index.test.ts @@ -1,17 +1,20 @@ import { nextBuild } from 'next-test-utils' import { join } from 'path' describe('app-dynamic-error', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('throws an error when prerendering a page with config dynamic error', async () => { - const appDir = join(__dirname, '../../app-dynamic-error') - const { stderr, code } = await nextBuild(appDir, [], { - stderr: true, - stdout: true, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('throws an error when prerendering a page with config dynamic error', async () => { + const appDir = join(__dirname, '../../app-dynamic-error') + const { stderr, code } = await nextBuild(appDir, [], { + stderr: true, + stdout: true, + }) + expect(stderr).toContain( + 'Error occurred prerendering page "/dynamic-error"' + ) + expect(code).toBe(1) }) - expect(stderr).toContain( - 'Error occurred prerendering page "/dynamic-error"' - ) - expect(code).toBe(1) - }) - }) + } + ) }) diff --git a/test/integration/app-tree/test/index.test.js b/test/integration/app-tree/test/index.test.js index d0945d49c8c36..8cc5814e64dd3 100644 --- a/test/integration/app-tree/test/index.test.js +++ b/test/integration/app-tree/test/index.test.js @@ -48,21 +48,27 @@ const runTests = () => { } describe('AppTree', () => { - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) - runTests() - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - runTests() - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) + runTests() + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + runTests() + } + ) }) diff --git a/test/integration/app-types/app-types.test.js b/test/integration/app-types/app-types.test.js index 4cc4ffe5236a2..901423279bbf3 100644 --- a/test/integration/app-types/app-types.test.js +++ b/test/integration/app-types/app-types.test.js @@ -7,103 +7,106 @@ import { nextBuild } from 'next-test-utils' const appDir = __dirname describe('app type checking', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - let stderr, errors - beforeAll(async () => { - stderr = (await nextBuild(appDir, [], { stderr: true })).stderr - - errors = stderr.match( - /===== TS errors =====(.+)===== TS errors =====/s - )?.[1] - }) - - it('should generate route types correctly and report link error', async () => { - // Make sure the d.ts file is generated - const dts = ( - await fs.readFile(path.join(appDir, '.next', 'types', 'link.d.ts')) - ).toString() - expect(dts.includes('`/dashboard/user/')).toBeTruthy() - expect(dts.includes('`/dashboard/another')).toBeTruthy() - - // Check type checking errors - expect(errors).toContain( - 'Type error: "/(newroot)/dashboard/another" is not an existing route. If it is intentional, please type it explicitly with `as Route`.' - ) - - // Make sure all errors were reported and other links passed type checking - const errorLines = [ - ...errors.matchAll( - /\.\/src\/app\/type-checks\/link\/page\.tsx:(\d+):/g - ), - ].map(([, line]) => +line) - - const ST = 17 - const ED = 34 - expect(errorLines).toEqual( - Array.from({ length: ED - ST + 1 }, (_, i) => i + ST) - ) - }) - - it('should generate route types correctly and report router API errors', async () => { - // Make sure all errors were reported and other links passed type checking - const errorLines = [ - ...errors.matchAll( - /\.\/src\/app\/type-checks\/router\/page\.tsx:(\d+):/g - ), - ].map(([, line]) => +line) - - const ST = 11 - const ED = 13 - expect(errorLines).toEqual( - Array.from({ length: ED - ST + 1 }, (_, i) => i + ST) - ) - }) - - it('should type check invalid entry exports', () => { - // Can't export arbitrary things. - expect(errors).toContain(`"foo" is not a valid Page export field.`) - - // Can't export invalid fields. - expect(errors).toMatch( - /Invalid configuration "revalidate":\s+Expected "false | number (>= 0)", got "-1"/ - ) - - // Avoid invalid argument types for exported functions. - expect(errors).toMatch( - /Page "src\/app\/type-checks\/config\/page\.tsx" has an invalid "default" export:\s+Type "{ foo: string; }" is not valid/ - ) - expect(errors).toMatch( - /Page "src\/app\/type-checks\/config\/page\.tsx" has an invalid "generateMetadata" export:\s+Type "{ s: number; }" is not valid/ - ) - expect(errors).toMatch( - /Page "src\/app\/type-checks\/config\/page\.tsx" has an invalid "generateStaticParams" export:\s+Type "string" is not valid/ - ) - - // Avoid invalid return types for exported functions. - expect(errors).toContain( - `"Promise" is not a valid generateStaticParams return type` - ) - - // Can't export arbitrary things. - expect(errors).toContain(`"bar" is not a valid Route export field.`) - - // Can't export invalid fields. - expect(errors).toMatch( - /Invalid configuration "revalidate":\s+Expected "false | number (>= 0)", got "-1"/ - ) - - // Avoid invalid argument types for exported functions. - expect(errors).toMatch( - /Route "src\/app\/type-checks\/route-handlers\/route\.ts" has an invalid "GET" export:\s+Type "boolean" is not a valid type for the function's first argument/ - ) - expect(errors).toMatch( - /Route "src\/app\/type-checks\/route-handlers\/route\.ts" has an invalid "generateStaticParams" export:\s+Type "string" is not valid/ - ) - - // Avoid invalid return types for exported functions. - expect(errors).toContain( - `"Promise" is not a valid generateStaticParams return type` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + let stderr, errors + beforeAll(async () => { + stderr = (await nextBuild(appDir, [], { stderr: true })).stderr + + errors = stderr.match( + /===== TS errors =====(.+)===== TS errors =====/s + )?.[1] + }) + + it('should generate route types correctly and report link error', async () => { + // Make sure the d.ts file is generated + const dts = ( + await fs.readFile(path.join(appDir, '.next', 'types', 'link.d.ts')) + ).toString() + expect(dts.includes('`/dashboard/user/')).toBeTruthy() + expect(dts.includes('`/dashboard/another')).toBeTruthy() + + // Check type checking errors + expect(errors).toContain( + 'Type error: "/(newroot)/dashboard/another" is not an existing route. If it is intentional, please type it explicitly with `as Route`.' + ) + + // Make sure all errors were reported and other links passed type checking + const errorLines = [ + ...errors.matchAll( + /\.\/src\/app\/type-checks\/link\/page\.tsx:(\d+):/g + ), + ].map(([, line]) => +line) + + const ST = 17 + const ED = 34 + expect(errorLines).toEqual( + Array.from({ length: ED - ST + 1 }, (_, i) => i + ST) + ) + }) + + it('should generate route types correctly and report router API errors', async () => { + // Make sure all errors were reported and other links passed type checking + const errorLines = [ + ...errors.matchAll( + /\.\/src\/app\/type-checks\/router\/page\.tsx:(\d+):/g + ), + ].map(([, line]) => +line) + + const ST = 11 + const ED = 13 + expect(errorLines).toEqual( + Array.from({ length: ED - ST + 1 }, (_, i) => i + ST) + ) + }) + + it('should type check invalid entry exports', () => { + // Can't export arbitrary things. + expect(errors).toContain(`"foo" is not a valid Page export field.`) + + // Can't export invalid fields. + expect(errors).toMatch( + /Invalid configuration "revalidate":\s+Expected "false | number (>= 0)", got "-1"/ + ) + + // Avoid invalid argument types for exported functions. + expect(errors).toMatch( + /Page "src\/app\/type-checks\/config\/page\.tsx" has an invalid "default" export:\s+Type "{ foo: string; }" is not valid/ + ) + expect(errors).toMatch( + /Page "src\/app\/type-checks\/config\/page\.tsx" has an invalid "generateMetadata" export:\s+Type "{ s: number; }" is not valid/ + ) + expect(errors).toMatch( + /Page "src\/app\/type-checks\/config\/page\.tsx" has an invalid "generateStaticParams" export:\s+Type "string" is not valid/ + ) + + // Avoid invalid return types for exported functions. + expect(errors).toContain( + `"Promise" is not a valid generateStaticParams return type` + ) + + // Can't export arbitrary things. + expect(errors).toContain(`"bar" is not a valid Route export field.`) + + // Can't export invalid fields. + expect(errors).toMatch( + /Invalid configuration "revalidate":\s+Expected "false | number (>= 0)", got "-1"/ + ) + + // Avoid invalid argument types for exported functions. + expect(errors).toMatch( + /Route "src\/app\/type-checks\/route-handlers\/route\.ts" has an invalid "GET" export:\s+Type "boolean" is not a valid type for the function's first argument/ + ) + expect(errors).toMatch( + /Route "src\/app\/type-checks\/route-handlers\/route\.ts" has an invalid "generateStaticParams" export:\s+Type "string" is not valid/ + ) + + // Avoid invalid return types for exported functions. + expect(errors).toContain( + `"Promise" is not a valid generateStaticParams return type` + ) + }) + } + ) }) diff --git a/test/integration/async-modules/next.config.js b/test/integration/async-modules/next.config.js index 6951c7f67ad59..526583c52816f 100644 --- a/test/integration/async-modules/next.config.js +++ b/test/integration/async-modules/next.config.js @@ -4,4 +4,9 @@ module.exports = { config.experiments.topLevelAwait = true return config }, + experimental: { + amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), + }, + }, } diff --git a/test/integration/async-modules/test/index.test.js b/test/integration/async-modules/test/index.test.js index 4daef2d611e42..705ae47aeb797 100644 --- a/test/integration/async-modules/test/index.test.js +++ b/test/integration/async-modules/test/index.test.js @@ -104,27 +104,33 @@ function runTests(dev = false) { } describe('Async modules', () => { - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - runTests(true) - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) + runTests(true) + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - runTests() - }) + runTests() + } + ) }) diff --git a/test/integration/auto-export-error-bail/test/index.test.js b/test/integration/auto-export-error-bail/test/index.test.js index 515dfb0823eee..f9d8c13369e4d 100644 --- a/test/integration/auto-export-error-bail/test/index.test.js +++ b/test/integration/auto-export-error-bail/test/index.test.js @@ -30,7 +30,10 @@ const runTests = () => { } describe('Auto Export _error bail', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - runTests() - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + runTests() + } + ) }) diff --git a/test/integration/auto-export-query-error/next.config.js b/test/integration/auto-export-query-error/next.config.js index 7a2c05da54d5a..ea7445f0412d8 100644 --- a/test/integration/auto-export-query-error/next.config.js +++ b/test/integration/auto-export-query-error/next.config.js @@ -7,4 +7,9 @@ module.exports = { '/ssr': { page: '/ssr', query: { another: 'one' } }, } }, + experimental: { + amp: { + validator: require.resolve('../../lib/amp-validator-wasm.js'), + }, + }, } diff --git a/test/integration/auto-export-query-error/test/index.test.js b/test/integration/auto-export-query-error/test/index.test.js index 5964ee227fd96..dd10d248c5f81 100644 --- a/test/integration/auto-export-query-error/test/index.test.js +++ b/test/integration/auto-export-query-error/test/index.test.js @@ -21,15 +21,22 @@ const runTests = () => { } describe('Auto Export', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - const { stderr: curStderr, code: curCode } = await nextBuild(appDir, [], { - stderr: true, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + const { stderr: curStderr, code: curCode } = await nextBuild( + appDir, + [], + { + stderr: true, + } + ) + stderr = curStderr + exitCode = curCode }) - stderr = curStderr - exitCode = curCode - }) - runTests() - }) + runTests() + } + ) }) diff --git a/test/integration/auto-export/test/index.test.js b/test/integration/auto-export/test/index.test.js index b1773dcc62ac3..8ae2cc8b8b656 100644 --- a/test/integration/auto-export/test/index.test.js +++ b/test/integration/auto-export/test/index.test.js @@ -57,19 +57,22 @@ const runTests = () => { } describe('Auto Export', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) - afterAll(async () => { - await killApp(app) - }) + afterAll(async () => { + await killApp(app) + }) - runTests() - }) + runTests() + } + ) describe('dev', () => { beforeAll(async () => { diff --git a/test/integration/basepath-root-catch-all/test/index.test.js b/test/integration/basepath-root-catch-all/test/index.test.js index 1e3d0d955fd7e..9fb3801316ebc 100644 --- a/test/integration/basepath-root-catch-all/test/index.test.js +++ b/test/integration/basepath-root-catch-all/test/index.test.js @@ -28,7 +28,7 @@ const runTests = () => { } // Skip as it runs `next build`, seems that is a bug. -;(process.env.TURBOPACK ? describe.skip : describe)('dev mode', () => { +;(process.env.TURBOPACK ? describe.skip : describe)('development mode', () => { beforeAll(async () => { // TODO: This look like a bug, `nextBuild` shouldn't be required here. await nextBuild(appDir) @@ -39,13 +39,16 @@ const runTests = () => { afterAll(() => killApp(app)) runTests() }) -;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - buildId = await fs.readFile(join(appDir, '.next/BUILD_ID'), 'utf8') - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - runTests() -}) +;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + buildId = await fs.readFile(join(appDir, '.next/BUILD_ID'), 'utf8') + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + runTests() + } +) diff --git a/test/integration/bigint/test/index.test.js b/test/integration/bigint/test/index.test.js index cc8ae0ef22437..6924b2779fc8e 100644 --- a/test/integration/bigint/test/index.test.js +++ b/test/integration/bigint/test/index.test.js @@ -33,24 +33,30 @@ const runTests = () => { } describe('bigint API route support', () => { - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests() - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await fs.remove(nextConfig) - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) + runTests() + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await fs.remove(nextConfig) + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) - runTests() - }) + runTests() + } + ) }) diff --git a/test/integration/build-output/fixtures/with-amp/next.config.js b/test/integration/build-output/fixtures/with-amp/next.config.js new file mode 100644 index 0000000000000..f88daabc6583c --- /dev/null +++ b/test/integration/build-output/fixtures/with-amp/next.config.js @@ -0,0 +1,7 @@ +module.exports = { + experimental: { + amp: { + validator: require.resolve('../../../../lib/amp-validator-wasm.js'), + }, + }, +} diff --git a/test/integration/build-output/test/index.test.js b/test/integration/build-output/test/index.test.js index 8ae924fed3bfb..d4fc1e682a3b0 100644 --- a/test/integration/build-output/test/index.test.js +++ b/test/integration/build-output/test/index.test.js @@ -10,300 +10,307 @@ const fixturesDir = join(__dirname, '..', 'fixtures') const nextConfig = new File(join(fixturesDir, 'basic-app/next.config.js')) describe('Build Output', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const configs = [{}, { gzipSize: false }] - - for (const experimental of configs) { - describe(`Basic Application Output (experimental: ${JSON.stringify( - experimental - )})`, () => { - let stdout - const appDir = join(fixturesDir, 'basic-app') - - const hasExperimentalConfig = Object.keys(experimental).length > 0 + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const configs = [{}, { gzipSize: false }] + + for (const experimental of configs) { + describe(`Basic Application Output (experimental: ${JSON.stringify( + experimental + )})`, () => { + let stdout + const appDir = join(fixturesDir, 'basic-app') + + const hasExperimentalConfig = Object.keys(experimental).length > 0 + + beforeAll(async () => { + await remove(join(appDir, '.next')) + if (hasExperimentalConfig) { + nextConfig.write( + `module.exports = { experimental: ${JSON.stringify( + experimental + )} };` + ) + } + ;({ stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) if (hasExperimentalConfig) { - nextConfig.write( - `module.exports = { experimental: ${JSON.stringify( - experimental - )} };` - ) + afterAll(async () => { + nextConfig.delete() + }) } - ;({ stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - if (hasExperimentalConfig) { - afterAll(async () => { - nextConfig.delete() - }) - } - - it('should not include internal pages', async () => { - expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) - expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) - expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) - expect(stdout).toMatch( - / chunks\/framework-[0-9a-z]{16}\.js [ 0-9. ]* kB/ - ) - - expect(stdout).not.toContain(' /_document') - expect(stdout).not.toContain(' /_app') - expect(stdout).not.toContain(' /_error') - expect(stdout).not.toContain('') + it('should not include internal pages', async () => { + expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) + expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) + expect(stdout).toMatch( + / chunks\/framework-[0-9a-z]{16}\.js [ 0-9. ]* kB/ + ) - expect(stdout).toContain('○ /') - }) + expect(stdout).not.toContain(' /_document') + expect(stdout).not.toContain(' /_app') + expect(stdout).not.toContain(' /_error') + expect(stdout).not.toContain('') - // TODO: change format of this test to be more reliable - it.skip('should not deviate from snapshot', async () => { - console.log(stdout) + expect(stdout).toContain('○ /') + }) - if (process.env.NEXT_PRIVATE_SKIP_SIZE_TESTS) { - return - } + // TODO: change format of this test to be more reliable + it.skip('should not deviate from snapshot', async () => { + console.log(stdout) - const parsePageSize = (page) => - stdout.match( - new RegExp(` ${page} .*?((?:\\d|\\.){1,} (?:\\w{1,})) `) - )[1] + if (process.env.NEXT_PRIVATE_SKIP_SIZE_TESTS) { + return + } - const parsePageFirstLoad = (page) => - stdout.match( - new RegExp( - ` ${page} .*?(?:(?:\\d|\\.){1,}) .*? ((?:\\d|\\.){1,} (?:\\w{1,}))` + const parsePageSize = (page) => + stdout.match( + new RegExp(` ${page} .*?((?:\\d|\\.){1,} (?:\\w{1,})) `) + )[1] + + const parsePageFirstLoad = (page) => + stdout.match( + new RegExp( + ` ${page} .*?(?:(?:\\d|\\.){1,}) .*? ((?:\\d|\\.){1,} (?:\\w{1,}))` + ) + )[1] + + const parseSharedSize = (sharedPartName) => { + const matches = stdout.match( + new RegExp( + `${sharedPartName} .*? ((?:\\d|\\.){1,} (?:\\w{1,}))` + ) ) - )[1] - const parseSharedSize = (sharedPartName) => { - const matches = stdout.match( - new RegExp(`${sharedPartName} .*? ((?:\\d|\\.){1,} (?:\\w{1,}))`) - ) + if (!matches) { + throw new Error(`Could not match ${sharedPartName}`) + } - if (!matches) { - throw new Error(`Could not match ${sharedPartName}`) + return matches[1] } - return matches[1] - } - - const indexSize = parsePageSize('/') - const indexFirstLoad = parsePageFirstLoad('/') - - const err404Size = parsePageSize('/404') - const err404FirstLoad = parsePageFirstLoad('/404') - - const sharedByAll = parseSharedSize('shared by all') - const _appSize = parseSharedSize('_app-.*?\\.js') - const webpackSize = parseSharedSize('webpack-.*?\\.js') - const mainSize = parseSharedSize('main-.*?\\.js') - const frameworkSize = parseSharedSize('framework-.*?\\.js') - - for (const size of [ - indexSize, - indexFirstLoad, - err404Size, - err404FirstLoad, - sharedByAll, - _appSize, - webpackSize, - mainSize, - frameworkSize, - ]) { - expect(parseFloat(size)).toBeGreaterThan(0) - } + const indexSize = parsePageSize('/') + const indexFirstLoad = parsePageFirstLoad('/') + + const err404Size = parsePageSize('/404') + const err404FirstLoad = parsePageFirstLoad('/404') + + const sharedByAll = parseSharedSize('shared by all') + const _appSize = parseSharedSize('_app-.*?\\.js') + const webpackSize = parseSharedSize('webpack-.*?\\.js') + const mainSize = parseSharedSize('main-.*?\\.js') + const frameworkSize = parseSharedSize('framework-.*?\\.js') + + for (const size of [ + indexSize, + indexFirstLoad, + err404Size, + err404FirstLoad, + sharedByAll, + _appSize, + webpackSize, + mainSize, + frameworkSize, + ]) { + expect(parseFloat(size)).toBeGreaterThan(0) + } - // const gz = experimental.gzipSize !== false + // const gz = experimental.gzipSize !== false - // expect(parseFloat(indexSize) / 1000).toBeCloseTo( - // gz ? 0.251 : 0.394, - // 2 - // ) - expect(indexSize.endsWith('B')).toBe(true) + // expect(parseFloat(indexSize) / 1000).toBeCloseTo( + // gz ? 0.251 : 0.394, + // 2 + // ) + expect(indexSize.endsWith('B')).toBe(true) - // expect(parseFloat(indexFirstLoad)).toBeCloseTo(gz ? 64 : 196, 1) - expect(indexFirstLoad.endsWith('kB')).toBe(true) + // expect(parseFloat(indexFirstLoad)).toBeCloseTo(gz ? 64 : 196, 1) + expect(indexFirstLoad.endsWith('kB')).toBe(true) - // expect(parseFloat(err404Size)).toBeCloseTo(gz ? 3.17 : 8.51, 1) - expect(err404Size.endsWith('B')).toBe(true) + // expect(parseFloat(err404Size)).toBeCloseTo(gz ? 3.17 : 8.51, 1) + expect(err404Size.endsWith('B')).toBe(true) - // expect(parseFloat(err404FirstLoad)).toBeCloseTo(gz ? 66.9 : 204, 1) - expect(err404FirstLoad.endsWith('kB')).toBe(true) + // expect(parseFloat(err404FirstLoad)).toBeCloseTo(gz ? 66.9 : 204, 1) + expect(err404FirstLoad.endsWith('kB')).toBe(true) - // expect(parseFloat(sharedByAll)).toBeCloseTo(gz ? 63.7 : 196, 1) - expect(sharedByAll.endsWith('kB')).toBe(true) + // expect(parseFloat(sharedByAll)).toBeCloseTo(gz ? 63.7 : 196, 1) + expect(sharedByAll.endsWith('kB')).toBe(true) - // const appSizeValue = _appSize.endsWith('kB') - // ? parseFloat(_appSize) - // : parseFloat(_appSize) / 1000 - // expect(appSizeValue).toBeCloseTo(gz ? 0.799 : 1.63, 1) - expect(_appSize.endsWith('kB') || _appSize.endsWith(' B')).toBe(true) + // const appSizeValue = _appSize.endsWith('kB') + // ? parseFloat(_appSize) + // : parseFloat(_appSize) / 1000 + // expect(appSizeValue).toBeCloseTo(gz ? 0.799 : 1.63, 1) + expect(_appSize.endsWith('kB') || _appSize.endsWith(' B')).toBe( + true + ) - // const webpackSizeValue = webpackSize.endsWith('kB') - // ? parseFloat(webpackSize) - // : parseFloat(webpackSize) / 1000 - // expect(webpackSizeValue).toBeCloseTo(gz ? 0.766 : 1.46, 2) - expect(webpackSize.endsWith('kB') || webpackSize.endsWith(' B')).toBe( - true - ) + // const webpackSizeValue = webpackSize.endsWith('kB') + // ? parseFloat(webpackSize) + // : parseFloat(webpackSize) / 1000 + // expect(webpackSizeValue).toBeCloseTo(gz ? 0.766 : 1.46, 2) + expect( + webpackSize.endsWith('kB') || webpackSize.endsWith(' B') + ).toBe(true) - // expect(parseFloat(mainSize)).toBeCloseTo(gz ? 20.1 : 62.7, 1) - expect(mainSize.endsWith('kB')).toBe(true) + // expect(parseFloat(mainSize)).toBeCloseTo(gz ? 20.1 : 62.7, 1) + expect(mainSize.endsWith('kB')).toBe(true) - // expect(parseFloat(frameworkSize)).toBeCloseTo(gz ? 42.0 : 130, 1) - expect(frameworkSize.endsWith('kB')).toBe(true) - }) + // expect(parseFloat(frameworkSize)).toBeCloseTo(gz ? 42.0 : 130, 1) + expect(frameworkSize.endsWith('kB')).toBe(true) + }) - it('should print duration when rendering or get static props takes long', () => { - const matches = stdout.match( - / \/slow-static\/.+\/.+(?: \(\d+ ms\))?| \[\+\d+ more paths\]/g - ) + it('should print duration when rendering or get static props takes long', () => { + const matches = stdout.match( + / \/slow-static\/.+\/.+(?: \(\d+ ms\))?| \[\+\d+ more paths\]/g + ) - for (const check of [ - // summary - expect.stringMatching( - /\/\[propsDuration\]\/\[renderDuration\] \(\d+ ms\)/ - ), - // ordered by duration, includes duration - expect.stringMatching(/\/2000\/10 \(\d+ ms\)$/), - expect.stringMatching(/\/10\/1000 \(\d+ ms\)$/), - expect.stringMatching(/\/300\/10 \(\d+ ms\)$/), - // max of 7 preview paths - ' [+2 more paths]', - ]) { - // the order isn't guaranteed on the timing tests as while() is being - // used in the render so can block the thread of other renders sharing - // the same worker - expect(matches).toContainEqual(check) - } - }) + for (const check of [ + // summary + expect.stringMatching( + /\/\[propsDuration\]\/\[renderDuration\] \(\d+ ms\)/ + ), + // ordered by duration, includes duration + expect.stringMatching(/\/2000\/10 \(\d+ ms\)$/), + expect.stringMatching(/\/10\/1000 \(\d+ ms\)$/), + expect.stringMatching(/\/300\/10 \(\d+ ms\)$/), + // max of 7 preview paths + ' [+2 more paths]', + ]) { + // the order isn't guaranteed on the timing tests as while() is being + // used in the render so can block the thread of other renders sharing + // the same worker + expect(matches).toContainEqual(check) + } + }) - it('should not emit extracted comments', async () => { - const files = await recursiveReadDir(join(appDir, '.next'), { - pathnameFilter: (f) => /\.txt|\.LICENSE\./.test(f), + it('should not emit extracted comments', async () => { + const files = await recursiveReadDir(join(appDir, '.next'), { + pathnameFilter: (f) => /\.txt|\.LICENSE\./.test(f), + }) + expect(files).toEqual([]) }) - expect(files).toEqual([]) }) - }) - } + } - describe('Custom App Output', () => { - const appDir = join(fixturesDir, 'with-app') + describe('Custom App Output', () => { + const appDir = join(fixturesDir, 'with-app') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - it('should not include custom error', async () => { - const { stdout } = await nextBuild(appDir, [], { - stdout: true, + beforeAll(async () => { + await remove(join(appDir, '.next')) }) - expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) - expect(stdout).toMatch(/\/_app (.* )?\d{1,} B/) - expect(stdout).toMatch(/\+ First Load JS shared by all \s*[0-9.]+ kB/) - expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js \s*[0-9.]+ kB/) - expect(stdout).toMatch( - / chunks\/framework-[0-9a-z]{16}\.js \s*[0-9.]+ kB/ - ) - - expect(stdout).not.toContain(' /_document') - expect(stdout).not.toContain(' /_error') - expect(stdout).not.toContain('') + it('should not include custom error', async () => { + const { stdout } = await nextBuild(appDir, [], { + stdout: true, + }) - expect(stdout).toContain(' /_app') - expect(stdout).toContain('○ /') - }) - }) + expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) + expect(stdout).toMatch(/\/_app (.* )?\d{1,} B/) + expect(stdout).toMatch(/\+ First Load JS shared by all \s*[0-9.]+ kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js \s*[0-9.]+ kB/) + expect(stdout).toMatch( + / chunks\/framework-[0-9a-z]{16}\.js \s*[0-9.]+ kB/ + ) - describe('With AMP Output', () => { - const appDir = join(fixturesDir, 'with-amp') + expect(stdout).not.toContain(' /_document') + expect(stdout).not.toContain(' /_error') + expect(stdout).not.toContain('') - beforeAll(async () => { - await remove(join(appDir, '.next')) + expect(stdout).toContain(' /_app') + expect(stdout).toContain('○ /') + }) }) - it('should not include custom error', async () => { - const { stdout } = await nextBuild(appDir, [], { - stdout: true, - }) + describe('With AMP Output', () => { + const appDir = join(fixturesDir, 'with-amp') - expect(stdout).toMatch(/\/ (.* )?[0-9.]+ B \s*[0-9.]+ kB/) - expect(stdout).toMatch(/\/amp (.* )?AMP/) - expect(stdout).toMatch(/\/hybrid (.* )?[0-9.]+ B/) - expect(stdout).toMatch(/\+ First Load JS shared by all \s*[0-9.]+ kB/) - expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js \s*[0-9.]+ kB/) - expect(stdout).toMatch( - / chunks\/framework-[0-9a-z]{16}\.js \s*[0-9.]+ kB/ - ) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - expect(stdout).not.toContain(' /_document') - expect(stdout).not.toContain(' /_error') - expect(stdout).not.toContain('') + it('should not include custom error', async () => { + const { stdout } = await nextBuild(appDir, [], { + stdout: true, + }) - expect(stdout).toContain('○ /') - }) - }) + expect(stdout).toMatch(/\/ (.* )?[0-9.]+ B \s*[0-9.]+ kB/) + expect(stdout).toMatch(/\/amp (.* )?AMP/) + expect(stdout).toMatch(/\/hybrid (.* )?[0-9.]+ B/) + expect(stdout).toMatch(/\+ First Load JS shared by all \s*[0-9.]+ kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js \s*[0-9.]+ kB/) + expect(stdout).toMatch( + / chunks\/framework-[0-9a-z]{16}\.js \s*[0-9.]+ kB/ + ) - describe('Custom Error Output', () => { - const appDir = join(fixturesDir, 'with-error') + expect(stdout).not.toContain(' /_document') + expect(stdout).not.toContain(' /_error') + expect(stdout).not.toContain('') - beforeAll(async () => { - await remove(join(appDir, '.next')) + expect(stdout).toContain('○ /') + }) }) - it('should not include custom app', async () => { - const { stdout } = await nextBuild(appDir, [], { - stdout: true, + describe('Custom Error Output', () => { + const appDir = join(fixturesDir, 'with-error') + + beforeAll(async () => { + await remove(join(appDir, '.next')) }) - expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) - expect(stdout).toMatch(/λ \/404 (.* )?\d{1,} B/) - expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) - expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) - expect(stdout).toMatch( - / chunks\/framework-[0-9a-z]{16}\.js [ 0-9. ]* kB/ - ) + it('should not include custom app', async () => { + const { stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + + expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) + expect(stdout).toMatch(/ƒ \/404 (.* )?\d{1,} B/) + expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) + expect(stdout).toMatch( + / chunks\/framework-[0-9a-z]{16}\.js [ 0-9. ]* kB/ + ) - expect(stdout).not.toContain(' /_document') - expect(stdout).not.toContain(' /_app') - expect(stdout).not.toContain('') + expect(stdout).not.toContain(' /_document') + expect(stdout).not.toContain(' /_app') + expect(stdout).not.toContain('') - expect(stdout).not.toContain(' /_error') - expect(stdout).toContain('○ /') + expect(stdout).not.toContain(' /_error') + expect(stdout).toContain('○ /') + }) }) - }) - describe('Custom Static Error Output', () => { - const appDir = join(fixturesDir, 'with-error-static') + describe('Custom Static Error Output', () => { + const appDir = join(fixturesDir, 'with-error-static') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should not specify /404 as lambda when static', async () => { - const { stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should not specify /404 as lambda when static', async () => { + const { stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(stdout).toContain('○ /404') + expect(stdout).not.toContain('ƒ /_error') + expect(stdout).not.toContain('') }) - expect(stdout).toContain('○ /404') - expect(stdout).not.toContain('λ /_error') - expect(stdout).not.toContain('') }) - }) - describe('With Parallel Routes', () => { - it('should not have duplicate paths that resolve to the same route', async () => { - const appDir = join(fixturesDir, 'with-parallel-routes') + describe('With Parallel Routes', () => { + it('should not have duplicate paths that resolve to the same route', async () => { + const appDir = join(fixturesDir, 'with-parallel-routes') - const { stdout } = await nextBuild(appDir, [], { - stdout: true, - }) + const { stdout } = await nextBuild(appDir, [], { + stdout: true, + }) - expect(stdout.match(/○ \/root-page /g).length).toBe(1) + expect(stdout.match(/○ \/root-page /g).length).toBe(1) + }) }) - }) - }) + } + ) }) diff --git a/test/integration/build-trace-extra-entries-turbo/test/index.test.js b/test/integration/build-trace-extra-entries-turbo/test/index.test.js index 486560cd3d680..90afadc8bcbb4 100644 --- a/test/integration/build-trace-extra-entries-turbo/test/index.test.js +++ b/test/integration/build-trace-extra-entries-turbo/test/index.test.js @@ -7,88 +7,93 @@ import { nextBuild } from 'next-test-utils' const appDir = join(__dirname, '../app') describe('build trace with extra entries', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should build and trace correctly', async () => { - const result = await nextBuild(appDir, undefined, { - cwd: appDir, - stderr: true, - stdout: true, - }) - console.log(result) - expect(result.code).toBe(0) - - const appTrace = await fs.readJSON( - join(appDir, '.next/server/pages/_app.js.nft.json') - ) - const indexTrace = await fs.readJSON( - join(appDir, '.next/server/pages/index.js.nft.json') - ) - const anotherTrace = await fs.readJSON( - join(appDir, '.next/server/pages/another.js.nft.json') - ) - const imageTrace = await fs.readJSON( - join(appDir, '.next/server/pages/image-import.js.nft.json') - ) - const appDirRoute1Trace = await fs.readJSON( - join(appDir, '.next/server/app/route1/route.js.nft.json') - ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should build and trace correctly', async () => { + const result = await nextBuild(appDir, undefined, { + cwd: appDir, + stderr: true, + stdout: true, + }) + console.log(result) + expect(result.code).toBe(0) - expect( - appDirRoute1Trace.files.some( - (file) => file === '../../../../include-me/hello.txt' + const appTrace = await fs.readJSON( + join(appDir, '.next/server/pages/_app.js.nft.json') + ) + const indexTrace = await fs.readJSON( + join(appDir, '.next/server/pages/index.js.nft.json') + ) + const anotherTrace = await fs.readJSON( + join(appDir, '.next/server/pages/another.js.nft.json') + ) + const imageTrace = await fs.readJSON( + join(appDir, '.next/server/pages/image-import.js.nft.json') ) - ).toBe(true) - expect( - appDirRoute1Trace.files.some( - (file) => file === '../../../../include-me/second.txt' + const appDirRoute1Trace = await fs.readJSON( + join(appDir, '.next/server/app/route1/route.js.nft.json') ) - ).toBe(true) - expect( - appDirRoute1Trace.files.some((file) => file.includes('exclude-me')) - ).toBe(false) - const tracedFiles = [ - ...appTrace.files, - ...indexTrace.files, - ...anotherTrace.files, - ...imageTrace.files, - ] + expect( + appDirRoute1Trace.files.some( + (file) => file === '../../../../include-me/hello.txt' + ) + ).toBe(true) + expect( + appDirRoute1Trace.files.some( + (file) => file === '../../../../include-me/second.txt' + ) + ).toBe(true) + expect( + appDirRoute1Trace.files.some((file) => file.includes('exclude-me')) + ).toBe(false) - expect(tracedFiles.some((file) => file.endsWith('hello.json'))).toBe(true) - expect( - tracedFiles.some((file) => file.includes('some-cms/index.js')) - ).toBe(true) - expect( - tracedFiles.some((file) => file === '../../../include-me/hello.txt') - ).toBe(true) - expect( - tracedFiles.some((file) => file === '../../../include-me/second.txt') - ).toBe(true) - expect(indexTrace.files.some((file) => file.includes('exclude-me'))).toBe( - false - ) + const tracedFiles = [ + ...appTrace.files, + ...indexTrace.files, + ...anotherTrace.files, + ...imageTrace.files, + ] - expect( - tracedFiles.some((file) => - file.includes('nested-structure/constants/package.json') + expect(tracedFiles.some((file) => file.endsWith('hello.json'))).toBe( + true ) - ).toBe(true) - expect( - tracedFiles.some((file) => - file.includes('nested-structure/package.json') - ) - ).toBe(true) - expect( - tracedFiles.some((file) => - file.includes('nested-structure/dist/constants.js') - ) - ).toBe(true) - expect( - tracedFiles.some((file) => file.includes('public/another.jpg')) - ).toBe(true) - expect(tracedFiles.some((file) => file.includes('public/test.jpg'))).toBe( - false - ) - }) - }) + expect( + tracedFiles.some((file) => file.includes('some-cms/index.js')) + ).toBe(true) + expect( + tracedFiles.some((file) => file === '../../../include-me/hello.txt') + ).toBe(true) + expect( + tracedFiles.some((file) => file === '../../../include-me/second.txt') + ).toBe(true) + expect( + indexTrace.files.some((file) => file.includes('exclude-me')) + ).toBe(false) + + expect( + tracedFiles.some((file) => + file.includes('nested-structure/constants/package.json') + ) + ).toBe(true) + expect( + tracedFiles.some((file) => + file.includes('nested-structure/package.json') + ) + ).toBe(true) + expect( + tracedFiles.some((file) => + file.includes('nested-structure/dist/constants.js') + ) + ).toBe(true) + expect( + tracedFiles.some((file) => file.includes('public/another.jpg')) + ).toBe(true) + expect( + tracedFiles.some((file) => file.includes('public/test.jpg')) + ).toBe(false) + }) + } + ) }) diff --git a/test/integration/build-trace-extra-entries/test/index.test.js b/test/integration/build-trace-extra-entries/test/index.test.js index f4e1a7cb7e6dd..e2b3e79c1b524 100644 --- a/test/integration/build-trace-extra-entries/test/index.test.js +++ b/test/integration/build-trace-extra-entries/test/index.test.js @@ -7,115 +7,118 @@ import { nextBuild } from 'next-test-utils' const appDir = join(__dirname, '../app') describe('build trace with extra entries', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should build and trace correctly', async () => { - const result = await nextBuild(appDir, undefined, { - cwd: appDir, - stderr: true, - stdout: true, - }) - console.log(result) - expect(result.code).toBe(0) - - const appTrace = await fs.readJSON( - join(appDir, '.next/server/pages/_app.js.nft.json') - ) - const indexTrace = await fs.readJSON( - join(appDir, '.next/server/pages/index.js.nft.json') - ) - const anotherTrace = await fs.readJSON( - join(appDir, '.next/server/pages/another.js.nft.json') - ) - const imageTrace = await fs.readJSON( - join(appDir, '.next/server/pages/image-import.js.nft.json') - ) - const appDirRoute1Trace = await fs.readJSON( - join(appDir, '.next/server/app/route1/route.js.nft.json') - ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should build and trace correctly', async () => { + const result = await nextBuild(appDir, undefined, { + cwd: appDir, + stderr: true, + stdout: true, + }) + console.log(result) + expect(result.code).toBe(0) - expect( - appDirRoute1Trace.files.some( - (file) => file === '../../../../include-me/hello.txt' + const appTrace = await fs.readJSON( + join(appDir, '.next/server/pages/_app.js.nft.json') ) - ).toBe(true) - expect( - appDirRoute1Trace.files.some( - (file) => file === '../../../../include-me/second.txt' + const indexTrace = await fs.readJSON( + join(appDir, '.next/server/pages/index.js.nft.json') ) - ).toBe(true) - expect( - appDirRoute1Trace.files.some((file) => file.includes('exclude-me')) - ).toBe(false) - - expect(appTrace.files.some((file) => file.endsWith('hello.json'))).toBe( - true - ) - - expect( - indexTrace.files.filter( - (file) => file.includes('chunks') && file.endsWith('.js') - ).length - ).toBeGreaterThan( - anotherTrace.files.filter( - (file) => file.includes('chunks') && file.endsWith('.js') - ).length - ) - - expect( - appTrace.files.some((file) => file.endsWith('lib/get-data.js')) - ).toBe(true) - expect( - indexTrace.files.some((file) => file.endsWith('hello.json')) - ).toBeFalsy() - expect( - indexTrace.files.some((file) => file.endsWith('some-dir')) - ).toBeFalsy() - expect( - indexTrace.files.some((file) => - file.endsWith('.dot-folder/another-file.txt') + const anotherTrace = await fs.readJSON( + join(appDir, '.next/server/pages/another.js.nft.json') ) - ).toBe(true) - expect( - indexTrace.files.some((file) => file.endsWith('some-dir/file.txt')) - ).toBe(true) - expect( - indexTrace.files.some((file) => file.includes('some-cms/index.js')) - ).toBe(true) - expect( - indexTrace.files.some( - (file) => file === '../../../include-me/hello.txt' + const imageTrace = await fs.readJSON( + join(appDir, '.next/server/pages/image-import.js.nft.json') ) - ).toBe(true) - expect( - indexTrace.files.some( - (file) => file === '../../../include-me/second.txt' + const appDirRoute1Trace = await fs.readJSON( + join(appDir, '.next/server/app/route1/route.js.nft.json') ) - ).toBe(true) - expect(indexTrace.files.some((file) => file.includes('exclude-me'))).toBe( - false - ) - expect( - anotherTrace.files.some((file) => - file.includes('nested-structure/constants/package.json') - ) - ).toBe(true) - expect( - anotherTrace.files.some((file) => - file.includes('nested-structure/package.json') + expect( + appDirRoute1Trace.files.some( + (file) => file === '../../../../include-me/hello.txt' + ) + ).toBe(true) + expect( + appDirRoute1Trace.files.some( + (file) => file === '../../../../include-me/second.txt' + ) + ).toBe(true) + expect( + appDirRoute1Trace.files.some((file) => file.includes('exclude-me')) + ).toBe(false) + + expect(appTrace.files.some((file) => file.endsWith('hello.json'))).toBe( + true ) - ).toBe(true) - expect( - anotherTrace.files.some((file) => - file.includes('nested-structure/dist/constants.js') + + expect( + indexTrace.files.filter( + (file) => file.includes('chunks') && file.endsWith('.js') + ).length + ).toBeGreaterThan( + anotherTrace.files.filter( + (file) => file.includes('chunks') && file.endsWith('.js') + ).length ) - ).toBe(true) - expect( - imageTrace.files.some((file) => file.includes('public/another.jpg')) - ).toBe(true) - expect( - imageTrace.files.some((file) => file.includes('public/test.jpg')) - ).toBe(false) - }) - }) + + expect( + appTrace.files.some((file) => file.endsWith('lib/get-data.js')) + ).toBe(true) + expect( + indexTrace.files.some((file) => file.endsWith('hello.json')) + ).toBeFalsy() + expect( + indexTrace.files.some((file) => file.endsWith('some-dir')) + ).toBeFalsy() + expect( + indexTrace.files.some((file) => + file.endsWith('.dot-folder/another-file.txt') + ) + ).toBe(true) + expect( + indexTrace.files.some((file) => file.endsWith('some-dir/file.txt')) + ).toBe(true) + expect( + indexTrace.files.some((file) => file.includes('some-cms/index.js')) + ).toBe(true) + expect( + indexTrace.files.some( + (file) => file === '../../../include-me/hello.txt' + ) + ).toBe(true) + expect( + indexTrace.files.some( + (file) => file === '../../../include-me/second.txt' + ) + ).toBe(true) + expect( + indexTrace.files.some((file) => file.includes('exclude-me')) + ).toBe(false) + + expect( + anotherTrace.files.some((file) => + file.includes('nested-structure/constants/package.json') + ) + ).toBe(true) + expect( + anotherTrace.files.some((file) => + file.includes('nested-structure/package.json') + ) + ).toBe(true) + expect( + anotherTrace.files.some((file) => + file.includes('nested-structure/dist/constants.js') + ) + ).toBe(true) + expect( + imageTrace.files.some((file) => file.includes('public/another.jpg')) + ).toBe(true) + expect( + imageTrace.files.some((file) => file.includes('public/test.jpg')) + ).toBe(false) + }) + } + ) }) diff --git a/test/integration/build-warnings/test/index.test.js b/test/integration/build-warnings/test/index.test.js index 8ea63d4207387..c3a54966833b1 100644 --- a/test/integration/build-warnings/test/index.test.js +++ b/test/integration/build-warnings/test/index.test.js @@ -7,85 +7,88 @@ import { join } from 'path' const appDir = join(__dirname, '../') describe('Build warnings', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should not shown warning about minification without any modification', async () => { - const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) - expect(stderr).not.toContain('optimization has been disabled') - }) - - it('should shown warning about minification for minimize', async () => { - const nextConfig = new File(join(appDir, 'next.config.js')) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should not shown warning about minification without any modification', async () => { + const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) + expect(stderr).not.toContain('optimization has been disabled') + }) - await waitFor(500) + it('should shown warning about minification for minimize', async () => { + const nextConfig = new File(join(appDir, 'next.config.js')) - nextConfig.replace('true', 'false') + await waitFor(500) - const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) + nextConfig.replace('true', 'false') - expect(stderr).toContain('optimization has been disabled') + const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) - nextConfig.restore() - }) + expect(stderr).toContain('optimization has been disabled') - it('should shown warning about minification for minimizer', async () => { - const nextConfig = new File(join(appDir, 'next.config.js')) + nextConfig.restore() + }) - await waitFor(500) + it('should shown warning about minification for minimizer', async () => { + const nextConfig = new File(join(appDir, 'next.config.js')) - nextConfig.replace( - 'config.optimization.minimize = true', - 'config.optimization.minimizer = []' - ) + await waitFor(500) - const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) + nextConfig.replace( + 'config.optimization.minimize = true', + 'config.optimization.minimizer = []' + ) - expect(stderr).toContain('optimization has been disabled') + const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) - nextConfig.restore() - }) + expect(stderr).toContain('optimization has been disabled') - it('should not warn about missing cache in non-CI', async () => { - await remove(join(appDir, '.next')) + nextConfig.restore() + }) - const { stdout } = await nextBuild(appDir, undefined, { - stdout: true, - env: { - CI: '', - CIRCLECI: '', - TRAVIS: '', - SYSTEM_TEAMFOUNDATIONCOLLECTIONURI: '', - GITHUB_ACTIONS: '', - GITHUB_EVENT_NAME: '', - }, + it('should not warn about missing cache in non-CI', async () => { + await remove(join(appDir, '.next')) + + const { stdout } = await nextBuild(appDir, undefined, { + stdout: true, + env: { + CI: '', + CIRCLECI: '', + TRAVIS: '', + SYSTEM_TEAMFOUNDATIONCOLLECTIONURI: '', + GITHUB_ACTIONS: '', + GITHUB_EVENT_NAME: '', + }, + }) + expect(stdout).not.toContain('no-cache') }) - expect(stdout).not.toContain('no-cache') - }) - it('should not warn about missing cache on supported platforms', async () => { - await remove(join(appDir, '.next')) + it('should not warn about missing cache on supported platforms', async () => { + await remove(join(appDir, '.next')) - const { stdout } = await nextBuild(appDir, undefined, { - stdout: true, - env: { CI: '1', NOW_BUILDER: '1' }, + const { stdout } = await nextBuild(appDir, undefined, { + stdout: true, + env: { CI: '1', NOW_BUILDER: '1' }, + }) + expect(stdout).not.toContain('no-cache') }) - expect(stdout).not.toContain('no-cache') - }) - - it('should warn about missing cache in CI', async () => { - await remove(join(appDir, '.next')) - let { stdout } = await nextBuild(appDir, undefined, { - stdout: true, - env: { CI: '1' }, + it('should warn about missing cache in CI', async () => { + await remove(join(appDir, '.next')) + + let { stdout } = await nextBuild(appDir, undefined, { + stdout: true, + env: { CI: '1' }, + }) + expect(stdout).toContain('no-cache') + + // Do not warn after cache is present + ;({ stdout } = await nextBuild(appDir, undefined, { + stdout: true, + env: { CI: '1' }, + })) + expect(stdout).not.toContain('no-cache') }) - expect(stdout).toContain('no-cache') - - // Do not warn after cache is present - ;({ stdout } = await nextBuild(appDir, undefined, { - stdout: true, - env: { CI: '1' }, - })) - expect(stdout).not.toContain('no-cache') - }) - }) + } + ) }) diff --git a/test/integration/catches-missing-getStaticProps/test/index.test.js b/test/integration/catches-missing-getStaticProps/test/index.test.js index fbbe018644ca1..ba34fdeaf9912 100644 --- a/test/integration/catches-missing-getStaticProps/test/index.test.js +++ b/test/integration/catches-missing-getStaticProps/test/index.test.js @@ -13,22 +13,28 @@ const appDir = join(__dirname, '../') const errorRegex = /getStaticPaths was added without a getStaticProps in/ describe('Catches Missing getStaticProps', () => { - describe('development mode', () => { - it('should catch it in dev mode', async () => { - const appPort = await findPort() - const app = await launchApp(appDir, appPort) - const html = await renderViaHTTP(appPort, '/hello') - await killApp(app) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it('should catch it in development mode', async () => { + const appPort = await findPort() + const app = await launchApp(appDir, appPort) + const html = await renderViaHTTP(appPort, '/hello') + await killApp(app) - expect(html).toMatch(errorRegex) - }) - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should catch it in server build mode', async () => { - const { stderr } = await nextBuild(appDir, [], { - stderr: true, + expect(html).toMatch(errorRegex) }) - expect(stderr).toMatch(errorRegex) - }) - }) + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should catch it in server build mode', async () => { + const { stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + expect(stderr).toMatch(errorRegex) + }) + } + ) }) diff --git a/test/integration/chunking/test/index.test.js b/test/integration/chunking/test/index.test.js index e7e8aee57a79b..7c36f6454f82c 100644 --- a/test/integration/chunking/test/index.test.js +++ b/test/integration/chunking/test/index.test.js @@ -24,112 +24,117 @@ const existsChunkNamed = (name) => { // Skipped as it uses webpack internals / stats.json. ;(process.env.TURBOPACK ? describe.skip : describe)('Chunking', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - try { - // If a previous build has left chunks behind, delete them - const oldChunks = await readdir( - join(appDir, '.next', 'static', 'chunks') - ) - await Promise.all( - oldChunks.map((chunk) => { - return unlink(join(appDir, '.next', 'static', 'chunks', chunk)) - }) - ) - } catch (e) { - // Error here means old chunks don't exist, so we don't need to do anything - } - await nextBuild(appDir, []) - - stats = (await readFile(join(appDir, '.next', 'stats.json'), 'utf8')) - // fixes backslashes in keyNames not being escaped on windows - .replace(/"static\\(.*?":?)/g, (match) => match.replace(/\\/g, '\\\\')) - - stats = JSON.parse(stats) - appPort = await findPort() - app = await nextStart(appDir, appPort) - chunks = await readdir(join(appDir, '.next', 'static', 'chunks')) - }) - - afterAll(() => killApp(app)) - - it('should use all url friendly names', () => { - expect(chunks).toEqual(chunks.map((name) => encodeURIComponent(name))) - }) - - it('should create a framework chunk', () => { - expect(existsChunkNamed('framework')).toBe(true) - }) - - it('should not create a commons chunk', () => { - // This app has no dependency that is required by ALL pages, and should - // therefore not have a commons chunk - expect(existsChunkNamed('commons')).toBe(false) - }) - - it('should not create a lib chunk for react or react-dom', () => { - // These large dependencies would become lib chunks, except that they - // are preemptively moved into the framework chunk. - expect(existsChunkNamed('react|react-dom')).toBe(false) - }) - - it('should not preload the build manifest', async () => { - const html = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(html) - expect( - [].slice - .call($('link[rel="preload"][as="script"]')) - .map((e) => e.attribs.href) - .some((entry) => entry.includes('_buildManifest')) - ).toBe(false) - }) - - it('should execute the build manifest', async () => { - const html = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(html) - expect( - Array.from($('script')) - .map((e) => e.attribs.src) - .some((entry) => entry && entry.includes('_buildManifest')) - ).toBe(true) - }) - - it('should not include more than one instance of react-dom', async () => { - const misplacedReactDom = stats.chunks.some((chunk) => { - if (chunk.names.includes('framework')) { - // disregard react-dom in framework--it's supposed to be there - return false + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + try { + // If a previous build has left chunks behind, delete them + const oldChunks = await readdir( + join(appDir, '.next', 'static', 'chunks') + ) + await Promise.all( + oldChunks.map((chunk) => { + return unlink(join(appDir, '.next', 'static', 'chunks', chunk)) + }) + ) + } catch (e) { + // Error here means old chunks don't exist, so we don't need to do anything } - return chunk.modules.some((module) => { - return /react-dom/.test(module.name) - }) + await nextBuild(appDir, []) + + stats = (await readFile(join(appDir, '.next', 'stats.json'), 'utf8')) + // fixes backslashes in keyNames not being escaped on windows + .replace(/"static\\(.*?":?)/g, (match) => + match.replace(/\\/g, '\\\\') + ) + + stats = JSON.parse(stats) + appPort = await findPort() + app = await nextStart(appDir, appPort) + chunks = await readdir(join(appDir, '.next', 'static', 'chunks')) + }) + + afterAll(() => killApp(app)) + + it('should use all url friendly names', () => { + expect(chunks).toEqual(chunks.map((name) => encodeURIComponent(name))) + }) + + it('should create a framework chunk', () => { + expect(existsChunkNamed('framework')).toBe(true) + }) + + it('should not create a commons chunk', () => { + // This app has no dependency that is required by ALL pages, and should + // therefore not have a commons chunk + expect(existsChunkNamed('commons')).toBe(false) + }) + + it('should not create a lib chunk for react or react-dom', () => { + // These large dependencies would become lib chunks, except that they + // are preemptively moved into the framework chunk. + expect(existsChunkNamed('react|react-dom')).toBe(false) }) - expect(misplacedReactDom).toBe(false) - }) - describe('Serving', () => { - it('should hydrate with aggressive chunking', async () => { - const browser = await webdriver(appPort, '/page2') - const text = await browser.elementByCss('#padded-str').text() + it('should not preload the build manifest', async () => { + const html = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(html) + expect( + [].slice + .call($('link[rel="preload"][as="script"]')) + .map((e) => e.attribs.href) + .some((entry) => entry.includes('_buildManifest')) + ).toBe(false) + }) - expect(text).toBe('__rad__') + it('should execute the build manifest', async () => { + const html = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(html) + expect( + Array.from($('script')) + .map((e) => e.attribs.src) + .some((entry) => entry && entry.includes('_buildManifest')) + ).toBe(true) + }) - await browser.close() + it('should not include more than one instance of react-dom', async () => { + const misplacedReactDom = stats.chunks.some((chunk) => { + if (chunk.names.includes('framework')) { + // disregard react-dom in framework--it's supposed to be there + return false + } + return chunk.modules.some((module) => { + return /react-dom/.test(module.name) + }) + }) + expect(misplacedReactDom).toBe(false) }) - it('should load chunks when navigating', async () => { - const browser = await webdriver(appPort, '/page3') - const text = await browser - .elementByCss('#page2-link') - .click() - .waitForElementByCss('#padded-str') - .elementByCss('#padded-str') - .text() + describe('Serving', () => { + it('should hydrate with aggressive chunking', async () => { + const browser = await webdriver(appPort, '/page2') + const text = await browser.elementByCss('#padded-str').text() - expect(text).toBe('__rad__') + expect(text).toBe('__rad__') - await browser.close() + await browser.close() + }) + + it('should load chunks when navigating', async () => { + const browser = await webdriver(appPort, '/page3') + const text = await browser + .elementByCss('#page2-link') + .click() + .waitForElementByCss('#padded-str') + .elementByCss('#padded-str') + .text() + + expect(text).toBe('__rad__') + + await browser.close() + }) }) - }) - }) + } + ) }) diff --git a/test/integration/clean-distdir/test/index.test.js b/test/integration/clean-distdir/test/index.test.js index 8c2bb8b623f30..7859587df932c 100644 --- a/test/integration/clean-distdir/test/index.test.js +++ b/test/integration/clean-distdir/test/index.test.js @@ -29,28 +29,31 @@ const runTests = () => { } describe('Cleaning distDir', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - runTests() - - describe('disabled write', () => { - beforeAll(async () => { - nextConfigContent = await fs.readFile(nextConfig, 'utf8') - await fs.writeFile( - nextConfig, - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + runTests() + + describe('disabled write', () => { + beforeAll(async () => { + nextConfigContent = await fs.readFile(nextConfig, 'utf8') + await fs.writeFile( + nextConfig, + ` module.exports = { cleanDistDir: false } ` - ) + ) + }) + afterAll(async () => { + await fs.writeFile(nextConfig, nextConfigContent) + }) + + it('should not clean up .next before build start', async () => { + await checkFileWrite(true) + }) }) - afterAll(async () => { - await fs.writeFile(nextConfig, nextConfigContent) - }) - - it('should not clean up .next before build start', async () => { - await checkFileWrite(true) - }) - }) - }) + } + ) }) diff --git a/test/integration/cli/test/index.test.js b/test/integration/cli/test/index.test.js index 16efa3ca70d44..cd9f74d18402e 100644 --- a/test/integration/cli/test/index.test.js +++ b/test/integration/cli/test/index.test.js @@ -80,279 +80,286 @@ const testExitSignal = async ( } describe('CLI Usage', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - describe('start', () => { - test('should exit when SIGINT is signalled', async () => { - require('console').log('before build') - await fs.remove(join(dirBasic, '.next')) - await nextBuild(dirBasic, undefined, { - onStdout(msg) { - console.log(msg) - }, - onStderr(msg) { - console.log(msg) - }, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + describe('start', () => { + test('should exit when SIGINT is signalled', async () => { + require('console').log('before build') + await fs.remove(join(dirBasic, '.next')) + await nextBuild(dirBasic, undefined, { + onStdout(msg) { + console.log(msg) + }, + onStderr(msg) { + console.log(msg) + }, + }) + require('console').log('build finished') + + const port = await findPort() + await testExitSignal( + 'SIGINT', + ['start', dirBasic, '-p', port], + /- Local:/ + ) }) - require('console').log('build finished') - - const port = await findPort() - await testExitSignal( - 'SIGINT', - ['start', dirBasic, '-p', port], - /- Local:/ - ) - }) - test('should exit when SIGTERM is signalled', async () => { - await fs.remove(join(dirBasic, '.next')) - await nextBuild(dirBasic, undefined, { - onStdout(msg) { - console.log(msg) - }, - onStderr(msg) { - console.log(msg) - }, + test('should exit when SIGTERM is signalled', async () => { + await fs.remove(join(dirBasic, '.next')) + await nextBuild(dirBasic, undefined, { + onStdout(msg) { + console.log(msg) + }, + onStderr(msg) { + console.log(msg) + }, + }) + const port = await findPort() + await testExitSignal( + 'SIGTERM', + ['start', dirBasic, '-p', port], + /- Local:/ + ) }) - const port = await findPort() - await testExitSignal( - 'SIGTERM', - ['start', dirBasic, '-p', port], - /- Local:/ - ) - }) - test('--help', async () => { - const help = await runNextCommand(['start', '--help'], { - stdout: true, + test('--help', async () => { + const help = await runNextCommand(['start', '--help'], { + stdout: true, + }) + expect(help.stdout).toMatch(/Starts Next.js in production mode/) }) - expect(help.stdout).toMatch(/Starts Next.js in production mode/) - }) - test('-h', async () => { - const help = await runNextCommand(['start', '-h'], { - stdout: true, + test('-h', async () => { + const help = await runNextCommand(['start', '-h'], { + stdout: true, + }) + expect(help.stdout).toMatch(/Starts Next.js in production mode/) }) - expect(help.stdout).toMatch(/Starts Next.js in production mode/) - }) - - test('should format IPv6 addresses correctly', async () => { - await nextBuild(dirBasic) - const port = await findPort() - let stdout = '' - const app = await runNextCommandDev( - ['start', dirBasic, '--hostname', '::', '--port', port], - undefined, - { - nextStart: true, - onStdout(msg) { - stdout += msg - }, + test('should format IPv6 addresses correctly', async () => { + await nextBuild(dirBasic) + const port = await findPort() + + let stdout = '' + const app = await runNextCommandDev( + ['start', dirBasic, '--hostname', '::', '--port', port], + undefined, + { + nextStart: true, + onStdout(msg) { + stdout += msg + }, + } + ) + + try { + await check(() => { + // Only display when hostname is provided + expect(stdout).toMatch( + new RegExp(`Network:\\s*http://\\[::\\]:${port}`) + ) + expect(stdout).toMatch(new RegExp(`http://\\[::1\\]:${port}`)) + }) + } finally { + await killApp(app) } - ) + }) - try { - await check(() => { - // Only display when hostname is provided - expect(stdout).toMatch( - new RegExp(`Network:\\s*http://\\[::\\]:${port}`) - ) - expect(stdout).toMatch(new RegExp(`http://\\[::1\\]:${port}`)) + test('should warn when unknown argument provided', async () => { + const { stderr } = await runNextCommand(['start', '--random'], { + stderr: true, }) - } finally { - await killApp(app) - } - }) - - test('should warn when unknown argument provided', async () => { - const { stderr } = await runNextCommand(['start', '--random'], { - stderr: true, + expect(stderr).toEqual(`error: unknown option '--random'\n`) }) - expect(stderr).toEqual(`error: unknown option '--random'\n`) - }) - test('should not throw UnhandledPromiseRejectionWarning', async () => { - const { stderr } = await runNextCommand(['start', '--random'], { - stderr: true, + test('should not throw UnhandledPromiseRejectionWarning', async () => { + const { stderr } = await runNextCommand(['start', '--random'], { + stderr: true, + }) + expect(stderr).not.toContain('UnhandledPromiseRejectionWarning') }) - expect(stderr).not.toContain('UnhandledPromiseRejectionWarning') - }) - test('duplicate sass deps', async () => { - const port = await findPort() + test('duplicate sass deps', async () => { + const port = await findPort() - let stderr = '' - let instance = await launchApp(dirDuplicateSass, port, { - stderr: true, - onStderr(msg) { - stderr += msg - }, - }) - - try { - await check(() => stderr, /both `sass` and `node-sass` installed/) - } finally { - await killApp(instance).catch(() => {}) - } - }) + let stderr = '' + let instance = await launchApp(dirDuplicateSass, port, { + stderr: true, + onStderr(msg) { + stderr += msg + }, + }) - test('invalid directory', async () => { - const output = await runNextCommand(['start', 'non-existent'], { - stderr: true, + try { + await check(() => stderr, /both `sass` and `node-sass` installed/) + } finally { + await killApp(instance).catch(() => {}) + } }) - expect(output.stderr).toContain( - 'Invalid project directory provided, no such directory' - ) - }) - test('--keepAliveTimeout string arg', async () => { - const { stderr } = await runNextCommand( - ['start', '--keepAliveTimeout', 'string'], - { + test('invalid directory', async () => { + const output = await runNextCommand(['start', 'non-existent'], { stderr: true, - } - ) - expect(stderr).toContain( - `error: option '--keepAliveTimeout ' argument 'string' is invalid. 'string' is not a non-negative number.` - ) - }) + }) + expect(output.stderr).toContain( + 'Invalid project directory provided, no such directory' + ) + }) - test('--keepAliveTimeout negative number', async () => { - const { stderr } = await runNextCommand( - ['start', '--keepAliveTimeout=-100'], - { - stderr: true, - } - ) - expect(stderr).toContain( - `error: option '--keepAliveTimeout ' argument '-100' is invalid. '-100' is not a non-negative number.` - ) - }) + test('--keepAliveTimeout string arg', async () => { + const { stderr } = await runNextCommand( + ['start', '--keepAliveTimeout', 'string'], + { + stderr: true, + } + ) + expect(stderr).toContain( + `error: option '--keepAliveTimeout ' argument 'string' is invalid. 'string' is not a non-negative number.` + ) + }) - test('--keepAliveTimeout Infinity', async () => { - const { stderr } = await runNextCommand( - ['start', '--keepAliveTimeout', 'Infinity'], - { - stderr: true, - } - ) - expect(stderr).toContain( - `error: option '--keepAliveTimeout ' argument 'Infinity' is invalid. 'Infinity' is not a non-negative number.` - ) - }) + test('--keepAliveTimeout negative number', async () => { + const { stderr } = await runNextCommand( + ['start', '--keepAliveTimeout=-100'], + { + stderr: true, + } + ) + expect(stderr).toContain( + `error: option '--keepAliveTimeout ' argument '-100' is invalid. '-100' is not a non-negative number.` + ) + }) - test('--keepAliveTimeout happy path', async () => { - const { stderr } = await runNextCommand( - ['start', '--keepAliveTimeout', '100'], - { - stderr: true, - } - ) - expect(stderr).not.toContain( - `error: option '--keepAliveTimeout ' argument '100' is invalid. '100' is not a non-negative number.` - ) - }) + test('--keepAliveTimeout Infinity', async () => { + const { stderr } = await runNextCommand( + ['start', '--keepAliveTimeout', 'Infinity'], + { + stderr: true, + } + ) + expect(stderr).toContain( + `error: option '--keepAliveTimeout ' argument 'Infinity' is invalid. 'Infinity' is not a non-negative number.` + ) + }) - test('should not start on a port out of range', async () => { - const invalidPort = '300001' - const { stderr } = await runNextCommand( - ['start', '--port', invalidPort], - { - stderr: true, - } - ) + test('--keepAliveTimeout happy path', async () => { + const { stderr } = await runNextCommand( + ['start', '--keepAliveTimeout', '100'], + { + stderr: true, + } + ) + expect(stderr).not.toContain( + `error: option '--keepAliveTimeout ' argument '100' is invalid. '100' is not a non-negative number.` + ) + }) - expect(stderr).toContain(`options.port should be >= 0 and < 65536.`) - }) + test('should not start on a port out of range', async () => { + const invalidPort = '300001' + const { stderr } = await runNextCommand( + ['start', '--port', invalidPort], + { + stderr: true, + } + ) - test('should not start on a reserved port', async () => { - const reservedPort = '4045' - const { stderr } = await runNextCommand( - ['start', '--port', reservedPort], - { - stderr: true, - } - ) + expect(stderr).toContain(`options.port should be >= 0 and < 65536.`) + }) - expect(stderr).toContain( - `Bad port: "${reservedPort}" is reserved for npp` - ) + test('should not start on a reserved port', async () => { + const reservedPort = '4045' + const { stderr } = await runNextCommand( + ['start', '--port', reservedPort], + { + stderr: true, + } + ) + + expect(stderr).toContain( + `Bad port: "${reservedPort}" is reserved for npp` + ) + }) }) - }) - describe('telemetry', () => { - test('--help', async () => { - const help = await runNextCommand(['telemetry', '--help'], { - stdout: true, + describe('telemetry', () => { + test('--help', async () => { + const help = await runNextCommand(['telemetry', '--help'], { + stdout: true, + }) + expect(help.stdout).toMatch( + /Allows you to enable or disable Next\.js'/ + ) }) - expect(help.stdout).toMatch(/Allows you to enable or disable Next\.js'/) - }) - test('-h', async () => { - const help = await runNextCommand(['telemetry', '-h'], { - stdout: true, + test('-h', async () => { + const help = await runNextCommand(['telemetry', '-h'], { + stdout: true, + }) + expect(help.stdout).toMatch( + /Allows you to enable or disable Next\.js'/ + ) }) - expect(help.stdout).toMatch(/Allows you to enable or disable Next\.js'/) - }) - test('should warn when unknown argument provided', async () => { - const { stderr } = await runNextCommand(['telemetry', '--random'], { - stderr: true, + test('should warn when unknown argument provided', async () => { + const { stderr } = await runNextCommand(['telemetry', '--random'], { + stderr: true, + }) + expect(stderr).toEqual(`error: unknown option '--random'\n`) }) - expect(stderr).toEqual(`error: unknown option '--random'\n`) - }) - test('should not throw UnhandledPromiseRejectionWarning', async () => { - const { stderr } = await runNextCommand(['telemetry', '--random'], { - stderr: true, + test('should not throw UnhandledPromiseRejectionWarning', async () => { + const { stderr } = await runNextCommand(['telemetry', '--random'], { + stderr: true, + }) + expect(stderr).not.toContain('UnhandledPromiseRejectionWarning') }) - expect(stderr).not.toContain('UnhandledPromiseRejectionWarning') }) - }) - describe('build', () => { - test('--help', async () => { - const help = await runNextCommand(['build', '--help'], { - stdout: true, + describe('build', () => { + test('--help', async () => { + const help = await runNextCommand(['build', '--help'], { + stdout: true, + }) + expect(help.stdout).toMatch(/Creates an optimized production build/) }) - expect(help.stdout).toMatch(/Creates an optimized production build/) - }) - test('-h', async () => { - const help = await runNextCommand(['build', '-h'], { - stdout: true, + test('-h', async () => { + const help = await runNextCommand(['build', '-h'], { + stdout: true, + }) + expect(help.stdout).toMatch(/Creates an optimized production build/) }) - expect(help.stdout).toMatch(/Creates an optimized production build/) - }) - test('should warn when unknown argument provided', async () => { - const { stderr } = await runNextCommand(['build', '--random'], { - stderr: true, + test('should warn when unknown argument provided', async () => { + const { stderr } = await runNextCommand(['build', '--random'], { + stderr: true, + }) + expect(stderr).toEqual(`error: unknown option '--random'\n`) }) - expect(stderr).toEqual(`error: unknown option '--random'\n`) - }) - test('should not throw UnhandledPromiseRejectionWarning', async () => { - const { stderr } = await runNextCommand(['build', '--random'], { - stderr: true, + test('should not throw UnhandledPromiseRejectionWarning', async () => { + const { stderr } = await runNextCommand(['build', '--random'], { + stderr: true, + }) + expect(stderr).not.toContain('UnhandledPromiseRejectionWarning') }) - expect(stderr).not.toContain('UnhandledPromiseRejectionWarning') - }) - test('should exit when SIGINT is signalled', async () => { - await testExitSignal('SIGINT', ['build', dirBasic]) - }) + test('should exit when SIGINT is signalled', async () => { + await testExitSignal('SIGINT', ['build', dirBasic]) + }) - test('should exit when SIGTERM is signalled', async () => { - await testExitSignal('SIGTERM', ['build', dirBasic]) - }) + test('should exit when SIGTERM is signalled', async () => { + await testExitSignal('SIGTERM', ['build', dirBasic]) + }) - test('invalid directory', async () => { - const output = await runNextCommand(['build', 'non-existent'], { - stderr: true, + test('invalid directory', async () => { + const output = await runNextCommand(['build', 'non-existent'], { + stderr: true, + }) + expect(output.stderr).toContain( + 'Invalid project directory provided, no such directory' + ) }) - expect(output.stderr).toContain( - 'Invalid project directory provided, no such directory' - ) }) - }) - }) + } + ) describe('no command', () => { test('--help', async () => { diff --git a/test/integration/client-404/test/index.test.js b/test/integration/client-404/test/index.test.js index 6659846053cc4..ab8004c861a69 100644 --- a/test/integration/client-404/test/index.test.js +++ b/test/integration/client-404/test/index.test.js @@ -23,35 +23,41 @@ const runTests = (isProd = false) => { } describe('Client 404', () => { - describe('dev mode', () => { - beforeAll(async () => { - context.appPort = await findPort() - context.server = await launchApp(appDir, context.appPort) - - // pre-build page at the start - await renderViaHTTP(context.appPort, '/') - }) - afterAll(() => killApp(context.server)) - - runTests() - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - context.appPort = await findPort() - context.server = await nextStart(appDir, context.appPort) - - const manifest = await getBuildManifest(appDir) - const files = manifest.pages['/missing'].filter((d) => - /static[\\/]chunks[\\/]pages/.test(d) - ) - if (files.length < 1) { - throw new Error('oops!') - } - await Promise.all(files.map((f) => fs.remove(join(appDir, '.next', f)))) - }) - afterAll(() => killApp(context.server)) - - runTests(true) - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + context.appPort = await findPort() + context.server = await launchApp(appDir, context.appPort) + + // pre-build page at the start + await renderViaHTTP(context.appPort, '/') + }) + afterAll(() => killApp(context.server)) + + runTests() + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + context.appPort = await findPort() + context.server = await nextStart(appDir, context.appPort) + + const manifest = await getBuildManifest(appDir) + const files = manifest.pages['/missing'].filter((d) => + /static[\\/]chunks[\\/]pages/.test(d) + ) + if (files.length < 1) { + throw new Error('oops!') + } + await Promise.all(files.map((f) => fs.remove(join(appDir, '.next', f)))) + }) + afterAll(() => killApp(context.server)) + + runTests(true) + } + ) }) diff --git a/test/integration/client-shallow-routing/test/index.test.js b/test/integration/client-shallow-routing/test/index.test.js index 39cefb994d5b8..5c1b4d0dfb451 100644 --- a/test/integration/client-shallow-routing/test/index.test.js +++ b/test/integration/client-shallow-routing/test/index.test.js @@ -88,23 +88,29 @@ const runTests = () => { } describe('Client Shallow Routing', () => { - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) - - runTests() - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - - runTests() - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) + + runTests() + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + + runTests() + } + ) }) diff --git a/test/integration/config-experimental-warning/test/index.test.js b/test/integration/config-experimental-warning/test/index.test.js index a47ec86e28c6e..5cc95346eb601 100644 --- a/test/integration/config-experimental-warning/test/index.test.js +++ b/test/integration/config-experimental-warning/test/index.test.js @@ -130,9 +130,11 @@ describe('Config Experimental Warning', () => { expect(stdout).toContain(' · workerThreads') expect(stdout).toContain(' · scrollRestoration') }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should not show next app info in next start', async () => { - configFile.write(` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should not show next app info in next start', async () => { + configFile.write(` module.exports = { experimental: { workerThreads: true, @@ -143,19 +145,19 @@ describe('Config Experimental Warning', () => { } `) - await collectStdoutFromBuild(appDir) - const port = await findPort() - let stdout = '' - app = await nextStart(appDir, port, { - onStdout(msg) { - stdout += msg - }, + await collectStdoutFromBuild(appDir) + const port = await findPort() + let stdout = '' + app = await nextStart(appDir, port, { + onStdout(msg) { + stdout += msg + }, + }) + expect(stdout).not.toMatch(experimentalHeader) }) - expect(stdout).not.toMatch(experimentalHeader) - }) - it('should show next app info with all experimental features in next build', async () => { - configFile.write(` + it('should show next app info with all experimental features in next build', async () => { + configFile.write(` module.exports = { experimental: { workerThreads: true, @@ -165,16 +167,16 @@ describe('Config Experimental Warning', () => { } } `) - const stdout = await collectStdoutFromBuild(appDir) - expect(stdout).toMatch(experimentalHeader) - expect(stdout).toMatch(' · cpus') - expect(stdout).toMatch(' · workerThreads') - expect(stdout).toMatch(' · scrollRestoration') - expect(stdout).toMatch(' · instrumentationHook') - }) - - it('should show unrecognized experimental features in warning but not in start log experiments section', async () => { - configFile.write(` + const stdout = await collectStdoutFromBuild(appDir) + expect(stdout).toMatch(experimentalHeader) + expect(stdout).toMatch(' · cpus') + expect(stdout).toMatch(' · workerThreads') + expect(stdout).toMatch(' · scrollRestoration') + expect(stdout).toMatch(' · instrumentationHook') + }) + + it('should show unrecognized experimental features in warning but not in start log experiments section', async () => { + configFile.write(` module.exports = { experimental: { appDir: true @@ -182,27 +184,28 @@ describe('Config Experimental Warning', () => { } `) - await collectStdoutFromBuild(appDir) - const port = await findPort() - let stdout = '' - let stderr = '' - app = await nextStart(appDir, port, { - onStdout(msg) { - stdout += msg - }, - onStderr(msg) { - stderr += msg - }, - }) - - await check(() => { - const cliOutput = stripAnsi(stdout) - const cliOutputErr = stripAnsi(stderr) - expect(cliOutput).not.toContain(experimentalHeader) - expect(cliOutputErr).toContain( - `Unrecognized key(s) in object: 'appDir' at "experimental"` - ) + await collectStdoutFromBuild(appDir) + const port = await findPort() + let stdout = '' + let stderr = '' + app = await nextStart(appDir, port, { + onStdout(msg) { + stdout += msg + }, + onStderr(msg) { + stderr += msg + }, + }) + + await check(() => { + const cliOutput = stripAnsi(stdout) + const cliOutputErr = stripAnsi(stderr) + expect(cliOutput).not.toContain(experimentalHeader) + expect(cliOutputErr).toContain( + `Unrecognized key(s) in object: 'appDir' at "experimental"` + ) + }) }) - }) - }) + } + ) }) diff --git a/test/integration/config-promise-error/test/index.test.js b/test/integration/config-promise-error/test/index.test.js index ae979a8e30f4b..86c128dd120bc 100644 --- a/test/integration/config-promise-error/test/index.test.js +++ b/test/integration/config-promise-error/test/index.test.js @@ -7,13 +7,15 @@ import { nextBuild } from 'next-test-utils' const appDir = join(__dirname, '..') describe('Promise in next config', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - afterEach(() => fs.remove(join(appDir, 'next.config.js'))) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + afterEach(() => fs.remove(join(appDir, 'next.config.js'))) - it('should warn when a promise is returned on webpack', async () => { - fs.writeFile( - join(appDir, 'next.config.js'), - ` + it('should warn when a promise is returned on webpack', async () => { + fs.writeFile( + join(appDir, 'next.config.js'), + ` module.exports = (phase, { isServer }) => { return { webpack: async (config) => { @@ -22,15 +24,16 @@ describe('Promise in next config', () => { } } ` - ) + ) - const { stderr, stdout } = await nextBuild(appDir, undefined, { - stderr: true, - stdout: true, + const { stderr, stdout } = await nextBuild(appDir, undefined, { + stderr: true, + stdout: true, + }) + expect(stderr + stdout).toMatch( + /> Promise returned in next config\. https:\/\// + ) }) - expect(stderr + stdout).toMatch( - /> Promise returned in next config\. https:\/\// - ) - }) - }) + } + ) }) diff --git a/test/integration/config-syntax-error/test/index.test.js b/test/integration/config-syntax-error/test/index.test.js index b82db8b657f96..6a02b3bd43ea4 100644 --- a/test/integration/config-syntax-error/test/index.test.js +++ b/test/integration/config-syntax-error/test/index.test.js @@ -8,46 +8,49 @@ const nextConfigJS = join(appDir, 'next.config.js') const nextConfigMJS = join(appDir, 'next.config.mjs') describe('Invalid config syntax', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('should error when next.config.js contains syntax error', async () => { - await fs.writeFile( - nextConfigJS, - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('should error when next.config.js contains syntax error', async () => { + await fs.writeFile( + nextConfigJS, + ` module.exports = { reactStrictMode: true,, } ` - ) - const { stderr } = await nextBuild(appDir, undefined, { - stderr: true, - }) - await fs.remove(nextConfigJS) + ) + const { stderr } = await nextBuild(appDir, undefined, { + stderr: true, + }) + await fs.remove(nextConfigJS) - expect(stderr).toContain( - 'Failed to load next.config.js, see more info here https://nextjs.org/docs/messages/next-config-error' - ) - expect(stderr).toContain('SyntaxError') - }) + expect(stderr).toContain( + 'Failed to load next.config.js, see more info here https://nextjs.org/docs/messages/next-config-error' + ) + expect(stderr).toContain('SyntaxError') + }) - it('should error when next.config.mjs contains syntax error', async () => { - await fs.writeFile( - nextConfigMJS, - ` + it('should error when next.config.mjs contains syntax error', async () => { + await fs.writeFile( + nextConfigMJS, + ` const config = { reactStrictMode: true,, } export default config ` - ) - const { stderr } = await nextBuild(appDir, undefined, { - stderr: true, - }) - await fs.remove(nextConfigMJS) + ) + const { stderr } = await nextBuild(appDir, undefined, { + stderr: true, + }) + await fs.remove(nextConfigMJS) - expect(stderr).toContain( - 'Failed to load next.config.mjs, see more info here https://nextjs.org/docs/messages/next-config-error' - ) - expect(stderr).toContain('SyntaxError') - }) - }) + expect(stderr).toContain( + 'Failed to load next.config.mjs, see more info here https://nextjs.org/docs/messages/next-config-error' + ) + expect(stderr).toContain('SyntaxError') + }) + } + ) }) diff --git a/test/integration/config-validation/test/index.test.ts b/test/integration/config-validation/test/index.test.ts index 7e4e003242dbd..78ee328551ef7 100644 --- a/test/integration/config-validation/test/index.test.ts +++ b/test/integration/config-validation/test/index.test.ts @@ -5,11 +5,13 @@ import fs from 'fs-extra' const nextConfigPath = path.join(__dirname, '../next.config.js') describe('next.config.js validation', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it.each([ - { - name: 'invalid config types', - configContent: ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it.each([ + { + name: 'invalid config types', + configContent: ` module.exports = { swcMinify: 'hello', rewrites: true, @@ -18,15 +20,15 @@ describe('next.config.js validation', () => { } } `, - outputs: [ - `received 'something' at "images.loader"`, - 'Expected function, received boolean at "rewrites"', - 'Expected boolean, received string at "swcMinify"', - ], - }, - { - name: 'unexpected config fields', - configContent: ` + outputs: [ + `received 'something' at "images.loader"`, + 'Expected function, received boolean at "rewrites"', + 'Expected boolean, received string at "swcMinify"', + ], + }, + { + name: 'unexpected config fields', + configContent: ` module.exports = { nonExistent: true, experimental: { @@ -34,29 +36,33 @@ describe('next.config.js validation', () => { } } `, - outputs: [ - `Unrecognized key(s) in object: 'nonExistent'`, - `Unrecognized key(s) in object: 'anotherNonExistent' at "experimental"`, - ], - }, - ])( - 'it should validate correctly for $name', - async ({ outputs, configContent }) => { - await fs.writeFile(nextConfigPath, configContent) - const result = await nextBuild(path.join(__dirname, '../'), undefined, { - stderr: true, - stdout: true, - }) - await fs.remove(nextConfigPath) + outputs: [ + `Unrecognized key(s) in object: 'nonExistent'`, + `Unrecognized key(s) in object: 'anotherNonExistent' at "experimental"`, + ], + }, + ])( + 'it should validate correctly for $name', + async ({ outputs, configContent }) => { + await fs.writeFile(nextConfigPath, configContent) + const result = await nextBuild( + path.join(__dirname, '../'), + undefined, + { + stderr: true, + stdout: true, + } + ) + await fs.remove(nextConfigPath) - for (const output of outputs) { - expect(result.stdout + result.stderr).toContain(output) + for (const output of outputs) { + expect(result.stdout + result.stderr).toContain(output) + } } - } - ) + ) - it('should allow undefined environment variables', async () => { - const configContent = ` + it('should allow undefined environment variables', async () => { + const configContent = ` module.exports = { env: { FOO: 'bar', @@ -65,17 +71,18 @@ describe('next.config.js validation', () => { } ` - await fs.writeFile(nextConfigPath, configContent) - const result = await nextBuild(path.join(__dirname, '../'), undefined, { - stderr: true, - stdout: true, - }) + await fs.writeFile(nextConfigPath, configContent) + const result = await nextBuild(path.join(__dirname, '../'), undefined, { + stderr: true, + stdout: true, + }) - await fs.remove(nextConfigPath) + await fs.remove(nextConfigPath) - expect(result.stdout + result.stderr).not.toContain( - '"env.QUX" is missing' - ) - }) - }) + expect(result.stdout + result.stderr).not.toContain( + '"env.QUX" is missing' + ) + }) + } + ) }) diff --git a/test/integration/conflicting-public-file-page/test/index.test.js b/test/integration/conflicting-public-file-page/test/index.test.js index a15c161e78ba2..0140b05f49eb4 100644 --- a/test/integration/conflicting-public-file-page/test/index.test.js +++ b/test/integration/conflicting-public-file-page/test/index.test.js @@ -12,34 +12,40 @@ import { const appDir = path.join(__dirname, '..') describe('Errors on conflict between public file and page file', () => { - describe('development mode', () => { - it('Throws error during development', async () => { - const appPort = await findPort() - const app = await launchApp(appDir, appPort) - const conflicts = ['/another/conflict', '/hello'] + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + it('Throws error during development', async () => { + const appPort = await findPort() + const app = await launchApp(appDir, appPort) + const conflicts = ['/another/conflict', '/hello'] - for (const conflict of conflicts) { - const html = await renderViaHTTP(appPort, conflict) - expect(html).toMatch( - /A conflicting public file and page file was found for path/ - ) - } - await killApp(app) - }) - }) - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - it('Throws error during build', async () => { - const conflicts = ['/another/conflict', '/another', '/hello'] - const results = await nextBuild(appDir, [], { - stdout: true, - stderr: true, + for (const conflict of conflicts) { + const html = await renderViaHTTP(appPort, conflict) + expect(html).toMatch( + /A conflicting public file and page file was found for path/ + ) + } + await killApp(app) }) - const output = results.stdout + results.stderr - expect(output).toMatch(/Conflicting public and page files were found/) + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + it('Throws error during build', async () => { + const conflicts = ['/another/conflict', '/another', '/hello'] + const results = await nextBuild(appDir, [], { + stdout: true, + stderr: true, + }) + const output = results.stdout + results.stderr + expect(output).toMatch(/Conflicting public and page files were found/) - for (const conflict of conflicts) { - expect(output.indexOf(conflict) > 0).toBe(true) - } - }) - }) + for (const conflict of conflicts) { + expect(output.indexOf(conflict) > 0).toBe(true) + } + }) + } + ) }) diff --git a/test/integration/conflicting-ssg-paths/test/index.test.js b/test/integration/conflicting-ssg-paths/test/index.test.js index 086dab1a22d75..a3e43a83ccbb2 100644 --- a/test/integration/conflicting-ssg-paths/test/index.test.js +++ b/test/integration/conflicting-ssg-paths/test/index.test.js @@ -8,14 +8,16 @@ const appDir = join(__dirname, '../') const pagesDir = join(appDir, 'pages') describe('Conflicting SSG paths', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - afterEach(() => fs.remove(pagesDir)) - - it('should show proper error when two dynamic SSG routes have conflicting paths', async () => { - await fs.ensureDir(join(pagesDir, 'blog')) - await fs.writeFile( - join(pagesDir, 'blog/[slug].js'), - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + afterEach(() => fs.remove(pagesDir)) + + it('should show proper error when two dynamic SSG routes have conflicting paths', async () => { + await fs.ensureDir(join(pagesDir, 'blog')) + await fs.writeFile( + join(pagesDir, 'blog/[slug].js'), + ` export const getStaticProps = () => { return { props: {} @@ -36,11 +38,11 @@ describe('Conflicting SSG paths', () => { return '/blog/[slug]' } ` - ) + ) - await fs.writeFile( - join(pagesDir, '[...catchAll].js'), - ` + await fs.writeFile( + join(pagesDir, '[...catchAll].js'), + ` export const getStaticProps = () => { return { props: {} @@ -61,39 +63,39 @@ describe('Conflicting SSG paths', () => { return '/[catchAll]' } ` - ) - - const result = await nextBuild(appDir, undefined, { - stdout: true, - stderr: true, + ) + + const result = await nextBuild(appDir, undefined, { + stdout: true, + stderr: true, + }) + const output = result.stdout + result.stderr + expect(output).toContain( + 'Conflicting paths returned from getStaticPaths, paths must be unique per page' + ) + expect(output).toContain( + 'https://nextjs.org/docs/messages/conflicting-ssg-paths' + ) + expect(output).toContain( + `path: "/blog/conflicting" from page: "/[...catchAll]"` + ) + expect(output).toContain(`conflicts with path: "/blog/conflicting"`) }) - const output = result.stdout + result.stderr - expect(output).toContain( - 'Conflicting paths returned from getStaticPaths, paths must be unique per page' - ) - expect(output).toContain( - 'https://nextjs.org/docs/messages/conflicting-ssg-paths' - ) - expect(output).toContain( - `path: "/blog/conflicting" from page: "/[...catchAll]"` - ) - expect(output).toContain(`conflicts with path: "/blog/conflicting"`) - }) - - it('should show proper error when a dynamic SSG route conflicts with normal route', async () => { - await fs.ensureDir(join(pagesDir, 'hello')) - await fs.writeFile( - join(pagesDir, 'hello/world.js'), - ` + + it('should show proper error when a dynamic SSG route conflicts with normal route', async () => { + await fs.ensureDir(join(pagesDir, 'hello')) + await fs.writeFile( + join(pagesDir, 'hello/world.js'), + ` export default function Page() { return '/hello/world' } ` - ) + ) - await fs.writeFile( - join(pagesDir, '[...catchAll].js'), - ` + await fs.writeFile( + join(pagesDir, '[...catchAll].js'), + ` export const getStaticProps = () => { return { props: {} @@ -114,40 +116,40 @@ describe('Conflicting SSG paths', () => { return '/[catchAll]' } ` - ) - - const result = await nextBuild(appDir, undefined, { - stdout: true, - stderr: true, + ) + + const result = await nextBuild(appDir, undefined, { + stdout: true, + stderr: true, + }) + const output = result.stdout + result.stderr + expect(output).toContain( + 'Conflicting paths returned from getStaticPaths, paths must be unique per page' + ) + expect(output).toContain( + 'https://nextjs.org/docs/messages/conflicting-ssg-paths' + ) + expect(output).toContain( + `path: "/hellO/world" from page: "/[...catchAll]" conflicts with path: "/hello/world"` + ) }) - const output = result.stdout + result.stderr - expect(output).toContain( - 'Conflicting paths returned from getStaticPaths, paths must be unique per page' - ) - expect(output).toContain( - 'https://nextjs.org/docs/messages/conflicting-ssg-paths' - ) - expect(output).toContain( - `path: "/hellO/world" from page: "/[...catchAll]" conflicts with path: "/hello/world"` - ) - }) - - it('should show proper error when a dynamic SSG route conflicts with SSR route', async () => { - await fs.ensureDir(join(pagesDir, 'hello')) - await fs.writeFile( - join(pagesDir, 'hello/world.js'), - ` + + it('should show proper error when a dynamic SSG route conflicts with SSR route', async () => { + await fs.ensureDir(join(pagesDir, 'hello')) + await fs.writeFile( + join(pagesDir, 'hello/world.js'), + ` export const getServerSideProps = () => ({ props: {} }) export default function Page() { return '/hello/world' } ` - ) + ) - await fs.writeFile( - join(pagesDir, '[...catchAll].js'), - ` + await fs.writeFile( + join(pagesDir, '[...catchAll].js'), + ` export const getStaticProps = () => { return { props: {} @@ -168,22 +170,23 @@ describe('Conflicting SSG paths', () => { return '/[catchAll]' } ` - ) - - const result = await nextBuild(appDir, undefined, { - stdout: true, - stderr: true, + ) + + const result = await nextBuild(appDir, undefined, { + stdout: true, + stderr: true, + }) + const output = result.stdout + result.stderr + expect(output).toContain( + 'Conflicting paths returned from getStaticPaths, paths must be unique per page' + ) + expect(output).toContain( + 'https://nextjs.org/docs/messages/conflicting-ssg-paths' + ) + expect(output).toContain( + `path: "/hellO/world" from page: "/[...catchAll]" conflicts with path: "/hello/world"` + ) }) - const output = result.stdout + result.stderr - expect(output).toContain( - 'Conflicting paths returned from getStaticPaths, paths must be unique per page' - ) - expect(output).toContain( - 'https://nextjs.org/docs/messages/conflicting-ssg-paths' - ) - expect(output).toContain( - `path: "/hellO/world" from page: "/[...catchAll]" conflicts with path: "/hello/world"` - ) - }) - }) + } + ) }) diff --git a/test/integration/create-next-app/examples.test.ts b/test/integration/create-next-app/examples.test.ts new file mode 100644 index 0000000000000..64bd81ecb141a --- /dev/null +++ b/test/integration/create-next-app/examples.test.ts @@ -0,0 +1,256 @@ +import { + EXAMPLE_PATH, + EXAMPLE_REPO, + FULL_EXAMPLE_PATH, + projectFilesShouldExist, + projectFilesShouldNotExist, + shouldBeTemplateProject, + run, + useTempDir, +} from './utils' + +describe('create-next-app --example', () => { + it('should create on valid Next.js example name', async () => { + await useTempDir(async (cwd) => { + const projectName = 'valid-example' + const res = await run([projectName, '--example', 'basic-css'], { + cwd, + }) + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: [ + '.gitignore', + 'package.json', + 'app/page.tsx', + 'app/layout.tsx', + 'node_modules/next', + ], + }) + }) + }) + + it('should create with GitHub URL', async () => { + await useTempDir(async (cwd) => { + const projectName = 'github-url' + const res = await run([projectName, '--example', FULL_EXAMPLE_PATH], { + cwd, + }) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: [ + '.gitignore', + 'package.json', + 'app/page.tsx', + 'app/layout.tsx', + 'node_modules/next', + ], + }) + }) + }) + + it('should create with GitHub URL trailing slash', async () => { + await useTempDir(async (cwd) => { + const projectName = 'github-url-trailing-slash' + const res = await run( + [ + projectName, + '--example', + // since vercel/examples is not a template repo, we use the following + // GH#39665 + 'https://github.com/vercel/nextjs-portfolio-starter/', + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: [ + '.gitignore', + 'package.json', + 'pages/index.mdx', + 'node_modules/next', + ], + }) + }) + }) + + it('should create with GitHub URL and --example-path', async () => { + await useTempDir(async (cwd) => { + const projectName = 'github-url-and-example-path' + const res = await run( + [ + projectName, + '--js', + '--no-tailwind', + '--eslint', + '--example', + EXAMPLE_REPO, + '--example-path', + EXAMPLE_PATH, + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: [ + '.gitignore', + 'package.json', + 'app/page.tsx', + 'app/layout.tsx', + 'node_modules/next', + ], + }) + }) + }) + + it('should use --example-path over the GitHub URL', async () => { + await useTempDir(async (cwd) => { + const projectName = 'example-path-over-github-url' + const res = await run( + [ + projectName, + '--js', + '--no-tailwind', + '--eslint', + '--example', + FULL_EXAMPLE_PATH, + '--example-path', + EXAMPLE_PATH, + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: [ + '.gitignore', + 'package.json', + 'app/page.tsx', + 'app/layout.tsx', + 'node_modules/next', + ], + }) + }) + }) + + // TODO: investigate why this test stalls on yarn install when + // stdin is piped instead of inherited on windows + if (process.platform !== 'win32') { + it('should fall back to default template if failed to download', async () => { + await useTempDir(async (cwd) => { + const projectName = 'fallback-to-default' + const res = await run( + [ + projectName, + '--js', + '--no-tailwind', + '--eslint', + '--app', + '--example', + '__internal-testing-retry', + '--import-alias=@/*', + ], + { + cwd, + input: '\n', // 'Yes' to retry + stdio: 'pipe', + } + ) + + expect(res.exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'app', + mode: 'js', + }) + }) + }) + } + + it('should create if --example value is default', async () => { + await useTempDir(async (cwd) => { + const projectName = 'example-default' + const res = await run( + [ + projectName, + '--js', + '--no-tailwind', + '--eslint', + '--example', + 'default', + '--import-alias=@/*', + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'default', + mode: 'js', + }) + }) + }) + + it('should not create if --example flag value is invalid', async () => { + await useTempDir(async (cwd) => { + const projectName = 'invalid-example' + const res = await run([projectName, '--example', 'not a real example'], { + cwd, + reject: false, + }) + + expect(res.exitCode).toBe(1) + projectFilesShouldNotExist({ + cwd, + projectName, + files: ['package.json'], + }) + }) + }) + + it('should not create if --example flag value is absent', async () => { + await useTempDir(async (cwd) => { + const projectName = 'no-example' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--eslint', + '--no-src-dir', + '--no-tailwind', + '--example', + ], + { + cwd, + reject: false, + } + ) + + expect(res.exitCode).toBe(1) + }) + }) +}) diff --git a/test/integration/create-next-app/index.test.ts b/test/integration/create-next-app/index.test.ts index fe86f218f2383..927594aa6d365 100644 --- a/test/integration/create-next-app/index.test.ts +++ b/test/integration/create-next-app/index.test.ts @@ -1,395 +1,42 @@ -/* eslint-env jest */ -/** - * @fileoverview - * - * This file contains integration tests for `create-next-app`. It currently - * aliases all calls to `--js`. - * - * TypeScript project creation via `create-next-app --ts` is tested in - * `./templates.test.ts`, though additional tests can be added here using the - * `shouldBeTypescriptProject` helper. - */ +import { mkdir, writeFile } from 'fs/promises' +import { join } from 'path' +import { run, useTempDir } from './utils' -import execa from 'execa' -import fs from 'fs-extra' -import path from 'path' -import Conf from 'next/dist/compiled/conf' -import { useTempDir } from '../../lib/use-temp-dir' -import { - projectFilesShouldExist, - projectFilesShouldNotExist, - shouldBeJavascriptProject, -} from './lib/utils' - -const cli = require.resolve('create-next-app/dist/index.js') -const exampleRepo = 'https://github.com/vercel/next.js/tree/canary' -const examplePath = 'examples/basic-css' - -const run = (args: string[], options: execa.Options) => { - const conf = new Conf({ projectName: 'create-next-app' }) - conf.clear() - return execa('node', [cli].concat(args), { - ...options, - env: { - ...(options.env || {}), - NEXT_PRIVATE_TEST_VERSION: 'canary', - } as any, - }) -} - -describe('create next app', () => { - it('non-empty directory', async () => { +describe('create-next-app', () => { + it('should not create if the target directory is not empty', async () => { await useTempDir(async (cwd) => { - const projectName = 'non-empty-directory' - await fs.mkdirp(path.join(cwd, projectName)) - const pkg = path.join(cwd, projectName, 'package.json') - fs.writeFileSync(pkg, '{ "foo": "bar" }') + const projectName = 'non-empty-dir' + await mkdir(join(cwd, projectName)) + const pkg = join(cwd, projectName, 'package.json') + await writeFile(pkg, `{ "name": "${projectName}" }`) const res = await run( [ projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', + '--ts', '--app', - `--import-alias=@/*`, - ], - { - cwd, - reject: false, - } - ) - expect(res.exitCode).toBe(1) - expect(res.stdout).toMatch(/contains files that could conflict/) - }) - }) - - // TODO: investigate why this test stalls on yarn install when - // stdin is piped instead of inherited on windows - if (process.platform !== 'win32') { - it('empty directory', async () => { - await useTempDir(async (cwd) => { - const projectName = 'empty-directory' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { cwd } - ) - - expect(res.exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName, template: 'app' }) - }) - }) - } - - it('invalid example name', async () => { - await useTempDir(async (cwd) => { - const projectName = 'invalid-example-name' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - 'not a real example', - ], - { - cwd, - reject: false, - } - ) - - expect(res.exitCode).toBe(1) - projectFilesShouldNotExist({ - cwd, - projectName, - files: ['package.json'], - }) - }) - }) - - it('valid example', async () => { - await useTempDir(async (cwd) => { - const projectName = 'valid-example' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - 'basic-css', - ], - { - cwd, - } - ) - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'node_modules/next', - ], - }) - }) - }) - - it('valid example without package.json', async () => { - await useTempDir(async (cwd) => { - const projectName = 'valid-example-without-package-json' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - 'with-docker-compose', - ], - { - cwd, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: ['.dockerignore', '.gitignore'], - }) - }) - }) - - it('should allow example with GitHub URL', async () => { - await useTempDir(async (cwd) => { - const projectName = 'github-app' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { - cwd, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'node_modules/next', - ], - }) - }) - }) - - it('should allow example with GitHub URL with trailing slash', async () => { - await useTempDir(async (cwd) => { - const projectName = 'github-app' - const res = await run( - [ - projectName, - '--js', + '--no-eslint', '--no-tailwind', - '--eslint', - '--example', - 'https://github.com/vercel/nextjs-portfolio-starter/', - ], - { - cwd, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'pages/index.mdx', - '.gitignore', - 'node_modules/next', - ], - }) - }) - }) - - it('should allow example with GitHub URL and example-path', async () => { - await useTempDir(async (cwd) => { - const projectName = 'github-example-path' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - exampleRepo, - '--example-path', - examplePath, - ], - { - cwd, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'node_modules/react', - ], - }) - }) - }) - - it('should use --example-path over the file path in the GitHub URL', async () => { - await useTempDir(async (cwd) => { - const projectName = 'github-example-path-2' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - `${exampleRepo}/${examplePath}`, - '--example-path', - examplePath, - ], - { - cwd, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'node_modules/react', - ], - }) - }) - }) - - // TODO: investigate why this test stalls on yarn install when - // stdin is piped instead of inherited on windows - if (process.platform !== 'win32') { - it('should fall back to default template', async () => { - await useTempDir(async (cwd) => { - const projectName = 'fail-example' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--app', - '--example', - '__internal-testing-retry', - '--import-alias=@/*', - ], - { - cwd, - input: '\n', - } - ) - - expect(res.exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName, template: 'app' }) - }) - }) - } - - it('should allow an example named default', async () => { - await useTempDir(async (cwd) => { - const projectName = 'default-example' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - 'default', - '--import-alias=@/*', - ], - { - cwd, - } - ) - - expect(res.exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName, template: 'default' }) - }) - }) - - it('should exit if example flag is empty', async () => { - await useTempDir(async (cwd) => { - const projectName = 'no-example-provided' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', '--no-src-dir', - '--app', - `--import-alias=@/*`, + '--no-import-alias', ], { cwd, reject: false, } ) - expect(res.exitCode).toBe(1) + expect(res.stdout).toMatch(/contains files that could conflict/) }) }) - it('should exit if the folder is not writable', async () => { + it('should not create if the target directory is not writable', async () => { await useTempDir(async (cwd) => { - const projectName = 'not-writable' + const projectName = 'dir-not-writable' - // if the folder isn't able to be write restricted we can't test - // this so skip + // if the folder isn't able to be write restricted we can't test so skip if ( - await fs - .writeFile(path.join(cwd, 'test'), 'hello') + await writeFile(join(cwd, 'test'), 'hello') .then(() => true) .catch(() => false) ) { @@ -401,12 +48,12 @@ describe('create next app', () => { const res = await run( [ projectName, - '--js', - '--no-tailwind', + '--ts', + '--app', '--eslint', + '--no-tailwind', '--no-src-dir', - '--app', - `--import-alias=@/*`, + '--no-import-alias', ], { cwd, @@ -420,69 +67,4 @@ describe('create next app', () => { expect(res.exitCode).toBe(1) }, 0o500) }) - - it('should create a project in the current directory', async () => { - await useTempDir(async (cwd) => { - const env = { ...process.env } - const tmpBin = path.join(__dirname, 'bin') - const tmpYarn = path.join(tmpBin, 'yarn') - - if (process.platform !== 'win32') { - // ensure install succeeds with invalid yarn binary - // which simulates no yarn binary being available as - // an alternative to removing the binary and reinstalling - await fs.remove(tmpBin) - await fs.mkdir(tmpBin) - await fs.writeFile(tmpYarn, '#!/bin/sh\nexit 1') - await fs.chmod(tmpYarn, '755') - env.PATH = `${tmpBin}:${env.PATH}` - delete env.npm_config_user_agent - } - - const res = await run( - [ - '.', - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env, - extendEnv: false, - stdio: 'inherit', - } - ) - await fs.remove(tmpBin) - - expect(res.exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName: '.', template: 'app' }) - }) - }) - - it('should ask the user for a name for the project if none supplied', async () => { - await useTempDir(async (cwd) => { - const projectName = 'test-project' - const res = await run( - [ - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - input: `${projectName}\n`, - } - ) - - expect(res.exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName, template: 'app' }) - }) - }) }) diff --git a/test/integration/create-next-app/lib/specification.ts b/test/integration/create-next-app/lib/specification.ts index 7ac5a27c6b996..ddccdcc8e3460 100644 --- a/test/integration/create-next-app/lib/specification.ts +++ b/test/integration/create-next-app/lib/specification.ts @@ -68,7 +68,7 @@ export const projectSpecification: ProjectSpecification = { 'pages/_app.js', 'pages/api/hello.js', 'pages/index.js', - 'postcss.config.cjs', + 'postcss.config.mjs', 'tailwind.config.js', ], deps: [], @@ -80,7 +80,7 @@ export const projectSpecification: ProjectSpecification = { 'pages/_app.tsx', 'pages/api/hello.ts', 'pages/index.tsx', - 'postcss.config.cjs', + 'postcss.config.mjs', 'tailwind.config.ts', 'tsconfig.json', ], @@ -125,7 +125,7 @@ export const projectSpecification: ProjectSpecification = { 'app/layout.js', 'app/page.js', 'jsconfig.json', - 'postcss.config.cjs', + 'postcss.config.mjs', 'tailwind.config.js', ], }, @@ -143,7 +143,7 @@ export const projectSpecification: ProjectSpecification = { 'app/layout.tsx', 'app/page.tsx', 'next-env.d.ts', - 'postcss.config.cjs', + 'postcss.config.mjs', 'tailwind.config.ts', 'tsconfig.json', ], diff --git a/test/integration/create-next-app/lib/utils.ts b/test/integration/create-next-app/lib/utils.ts index 0c1a9633eac9c..387defb4db363 100644 --- a/test/integration/create-next-app/lib/utils.ts +++ b/test/integration/create-next-app/lib/utils.ts @@ -135,7 +135,7 @@ export const shouldBeTemplateProject = ({ files: getProjectSetting({ template, mode, setting: 'files', srcDir }), }) - // Tailwind templates share the same files (tailwind.config.js, postcss.config.cjs) + // Tailwind templates share the same files (tailwind.config.js, postcss.config.mjs) if (template !== 'app-tw' && template !== 'default-tw') { projectFilesShouldNotExist({ cwd, diff --git a/test/integration/create-next-app/package-manager.test.ts b/test/integration/create-next-app/package-manager.test.ts deleted file mode 100644 index 13f9b7d123fcc..0000000000000 --- a/test/integration/create-next-app/package-manager.test.ts +++ /dev/null @@ -1,640 +0,0 @@ -/* eslint-env jest */ -/** - * @fileoverview - * - * This file contains integration tests for `create-next-app`. It currently - * aliases all calls to `--js`. - * - * TypeScript project creation via `create-next-app --ts` is tested in - * `./templates.test.ts`, though additional tests can be added here using the - * `shouldBeTypescriptProject` helper. - */ - -import execa from 'execa' -import Conf from 'next/dist/compiled/conf' -import { useTempDir } from '../../lib/use-temp-dir' -import { projectFilesShouldExist, shouldBeJavascriptProject } from './lib/utils' - -const cli = require.resolve('create-next-app/dist/index.js') -const exampleRepo = 'https://github.com/vercel/next.js/tree/canary' -const examplePath = 'examples/basic-css' -const env = { - ...process.env, - COREPACK_ENABLE_STRICT: '0', - NEXT_PRIVATE_TEST_VERSION: 'canary', -} - -const run = (args: string[], options: execa.Options) => { - const conf = new Conf({ projectName: 'create-next-app' }) - conf.clear() - console.log(`Running "create-next-app ${args.join(' ')}"`) - return execa('node', [cli].concat(args), { - ...options, - stdio: 'inherit', - env: options.env || env, - }) -} - -const command = (cmd: string, args: string[]) => { - console.log(`Running command "${cmd} ${args.join(' ')}"`) - return execa(cmd, args, { - stdio: 'inherit', - env, - }) -} - -it('should use npm as the package manager on supplying --use-npm', async () => { - await useTempDir(async (cwd) => { - const projectName = 'use-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-npm', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env, - } - ) - - expect(res.exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName, template: 'app' }) - }) -}) - -it('should use npm as the package manager on supplying --use-npm with example', async () => { - await useTempDir(async (cwd) => { - const projectName = 'use-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-npm', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'package-lock.json', - 'node_modules/next', - ], - }) - }) -}) - -it('should use Yarn as the package manager on supplying --use-yarn', async () => { - await useTempDir(async (cwd) => { - const projectName = 'use-yarn' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-yarn', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'yarn.lock', - 'node_modules/next', - ], - }) - }) -}) - -it('should use Yarn as the package manager on supplying --use-yarn with example', async () => { - try { - await command('yarn', ['--version']) - } catch (_) { - // install yarn if not available - try { - await command('corepack', ['prepare', '--activate', 'yarn@1.22.19']) - } catch (_) { - await command('npm', ['i', '-g', 'yarn']) - } - } - - await useTempDir(async (cwd) => { - const projectName = 'use-yarn' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-yarn', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'yarn.lock', - 'node_modules/next', - ], - }) - }) -}) - -it('should use pnpm as the package manager on supplying --use-pnpm', async () => { - await useTempDir(async (cwd) => { - const projectName = 'use-pnpm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-pnpm', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'pnpm-lock.yaml', - 'node_modules/next', - ], - }) - }) -}) - -it('should use pnpm as the package manager on supplying --use-pnpm with example', async () => { - try { - await command('pnpm', ['--version']) - } catch (_) { - // install pnpm if not available - try { - await command('corepack', ['prepare', '--activate', 'pnpm@latest']) - } catch (_) { - await command('npm', ['i', '-g', 'pnpm']) - } - } - - await useTempDir(async (cwd) => { - const projectName = 'use-pnpm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-pnpm', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'pnpm-lock.yaml', - 'node_modules/next', - ], - }) - }) -}) - -it('should use Bun as the package manager on supplying --use-bun', async () => { - await useTempDir(async (cwd) => { - const projectName = 'use-bun' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-bun', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env, - } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'bun.lockb', - 'node_modules/next', - ], - }) - }) -}) - -it('should use Bun as the package manager on supplying --use-bun with example', async () => { - try { - await command('bun', ['--version']) - } catch (_) { - // install Bun if not available - await command('npm', ['i', '-g', 'bun']) - } - - await useTempDir(async (cwd) => { - const projectName = 'use-bun' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--use-bun', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env } - ) - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ - cwd, - projectName, - files: [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'bun.lockb', - 'node_modules/next', - ], - }) - }) -}) - -it('should infer npm as the package manager', async () => { - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env: { ...env, npm_config_user_agent: 'npm' }, - } - ) - - const files = [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'package-lock.json', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer npm as the package manager with example', async () => { - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env: { ...env, npm_config_user_agent: 'npm' } } - ) - - const files = [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'package-lock.json', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer yarn as the package manager', async () => { - try { - await command('yarn', ['--version']) - } catch (_) { - // install yarn if not available - try { - await command('corepack', ['prepare', '--activate', 'yarn@1.22.19']) - } catch (_) { - await command('npm', ['i', '-g', 'yarn']) - } - } - - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager-yarn' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env: { ...env, npm_config_user_agent: 'yarn' }, - } - ) - - const files = [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'yarn.lock', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer yarn as the package manager with example', async () => { - try { - await command('yarn', ['--version']) - } catch (_) { - // install yarn if not available - try { - await command('corepack', ['prepare', '--activate', 'yarn@1.22.19']) - } catch (_) { - await command('npm', ['i', '-g', 'yarn']) - } - } - - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env: { ...env, npm_config_user_agent: 'yarn' } } - ) - - const files = [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'yarn.lock', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer pnpm as the package manager', async () => { - try { - await command('pnpm', ['--version']) - } catch (_) { - // install pnpm if not available - try { - await command('corepack', ['prepare', '--activate', 'pnpm@latest']) - } catch (_) { - await command('npm', ['i', '-g', 'pnpm']) - } - } - - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env: { ...env, npm_config_user_agent: 'pnpm' }, - } - ) - - const files = [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'pnpm-lock.yaml', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer pnpm as the package manager with example', async () => { - try { - await command('pnpm', ['--version']) - } catch (_) { - // install pnpm if not available - try { - await command('corepack', ['prepare', '--activate', 'pnpm@latest']) - } catch (_) { - await command('npm', ['i', '-g', 'pnpm']) - } - } - - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env: { ...env, npm_config_user_agent: 'pnpm' } } - ) - - const files = [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'pnpm-lock.yaml', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer Bun as the package manager', async () => { - try { - await command('bun', ['--version']) - } catch (_) { - // install Bun if not available - await command('npm', ['i', '-g', 'bun']) - } - - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--app', - `--import-alias=@/*`, - ], - { - cwd, - env: { ...env, npm_config_user_agent: 'bun' }, - } - ) - - const files = [ - 'package.json', - 'app/page.js', - '.gitignore', - '.eslintrc.json', - 'bun.lockb', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) - -it('should infer Bun as the package manager with example', async () => { - try { - await command('bun', ['--version']) - } catch (_) { - // install Bun if not available - await command('npm', ['i', '-g', 'bun']) - } - - await useTempDir(async (cwd) => { - const projectName = 'infer-package-manager-npm' - const res = await run( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--example', - `${exampleRepo}/${examplePath}`, - ], - { cwd, env: { ...env, npm_config_user_agent: 'bun' } } - ) - - const files = [ - 'package.json', - 'app/page.tsx', - 'app/layout.tsx', - '.gitignore', - 'bun.lockb', - 'node_modules/next', - ] - - expect(res.exitCode).toBe(0) - projectFilesShouldExist({ cwd, projectName, files }) - }) -}) diff --git a/test/integration/create-next-app/package-manager/bun.test.ts b/test/integration/create-next-app/package-manager/bun.test.ts new file mode 100644 index 0000000000000..fa1973a66030f --- /dev/null +++ b/test/integration/create-next-app/package-manager/bun.test.ts @@ -0,0 +1,109 @@ +import { + command, + DEFAULT_FILES, + FULL_EXAMPLE_PATH, + projectFilesShouldExist, + run, + useTempDir, +} from '../utils' + +const lockFile = 'bun.lockb' +const files = [...DEFAULT_FILES, lockFile] + +beforeEach(async () => { + await command('bun', ['--version']) + // install bun if not available + .catch(() => command('npm', ['i', '-g', 'bun'])) +}) + +describe('create-next-app with package manager bun', () => { + it('should use bun for --use-bun flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-bun' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--use-bun', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) + }) +}) + +it('should use bun when user-agent is bun', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-bun' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + env: { npm_config_user_agent: 'bun' }, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use bun for --use-bun flag with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-bun-with-example' + const res = await run( + [projectName, '--use-bun', '--example', FULL_EXAMPLE_PATH], + { cwd } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use bun when user-agent is bun with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-bun-with-example' + const res = await run([projectName, '--example', FULL_EXAMPLE_PATH], { + cwd, + env: { npm_config_user_agent: 'bun' }, + }) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) diff --git a/test/integration/create-next-app/package-manager/npm.test.ts b/test/integration/create-next-app/package-manager/npm.test.ts new file mode 100644 index 0000000000000..cafbf60cf60e7 --- /dev/null +++ b/test/integration/create-next-app/package-manager/npm.test.ts @@ -0,0 +1,102 @@ +import { + DEFAULT_FILES, + FULL_EXAMPLE_PATH, + projectFilesShouldExist, + run, + useTempDir, +} from '../utils' + +const lockFile = 'package-lock.json' +const files = [...DEFAULT_FILES, lockFile] + +describe('create-next-app with package manager npm', () => { + it('should use npm for --use-npm flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-npm' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--use-npm', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) + }) +}) + +it('should use npm when user-agent is npm', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-npm' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + env: { npm_config_user_agent: 'npm' }, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use npm for --use-npm flag with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-npm-with-example' + const res = await run( + [projectName, '--use-npm', '--example', FULL_EXAMPLE_PATH], + { cwd } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use npm when user-agent is npm with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-npm-with-example' + const res = await run([projectName, '--example', FULL_EXAMPLE_PATH], { + cwd, + env: { npm_config_user_agent: 'npm' }, + }) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) diff --git a/test/integration/create-next-app/package-manager/pnpm.test.ts b/test/integration/create-next-app/package-manager/pnpm.test.ts new file mode 100644 index 0000000000000..fa44eacc907a0 --- /dev/null +++ b/test/integration/create-next-app/package-manager/pnpm.test.ts @@ -0,0 +1,110 @@ +import { + command, + DEFAULT_FILES, + FULL_EXAMPLE_PATH, + projectFilesShouldExist, + run, + useTempDir, +} from '../utils' + +const lockFile = 'pnpm-lock.yaml' +const files = [...DEFAULT_FILES, lockFile] + +beforeEach(async () => { + await command('pnpm', ['--version']) + // install pnpm if not available + .catch(() => command('corepack', ['prepare', '--activate', 'pnpm@latest'])) + .catch(() => command('npm', ['i', '-g', 'pnpm'])) +}) + +describe('create-next-app with package manager pnpm', () => { + it('should use pnpm for --use-pnpm flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-pnpm' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--use-pnpm', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) + }) +}) + +it('should use pnpm when user-agent is pnpm', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-pnpm' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + env: { npm_config_user_agent: 'pnpm' }, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use pnpm for --use-pnpm flag with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-pnpm-with-example' + const res = await run( + [projectName, '--use-pnpm', '--example', FULL_EXAMPLE_PATH], + { cwd } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use pnpm when user-agent is pnpm with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-pnpm-with-example' + const res = await run([projectName, '--example', FULL_EXAMPLE_PATH], { + cwd, + env: { npm_config_user_agent: 'pnpm' }, + }) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) diff --git a/test/integration/create-next-app/package-manager/yarn.test.ts b/test/integration/create-next-app/package-manager/yarn.test.ts new file mode 100644 index 0000000000000..09dde41a67bc3 --- /dev/null +++ b/test/integration/create-next-app/package-manager/yarn.test.ts @@ -0,0 +1,110 @@ +import { + command, + DEFAULT_FILES, + FULL_EXAMPLE_PATH, + projectFilesShouldExist, + run, + useTempDir, +} from '../utils' + +const lockFile = 'yarn.lock' +const files = [...DEFAULT_FILES, lockFile] + +beforeEach(async () => { + await command('yarn', ['--version']) + // install yarn if not available + .catch(() => command('corepack', ['prepare', '--activate', 'yarn@1.22.19'])) + .catch(() => command('npm', ['i', '-g', 'yarn'])) +}) + +describe('create-next-app with package manager yarn', () => { + it('should use yarn for --use-yarn flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-yarn' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--use-yarn', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) + }) +}) + +it('should use yarn when user-agent is yarn', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-yarn' + const res = await run( + [ + projectName, + '--ts', + '--app', + '--no-eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + env: { npm_config_user_agent: 'yarn' }, + } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use yarn for --use-yarn flag with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'use-yarn-with-example' + const res = await run( + [projectName, '--use-yarn', '--example', FULL_EXAMPLE_PATH], + { cwd } + ) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) + +it('should use yarn when user-agent is yarn with example', async () => { + await useTempDir(async (cwd) => { + const projectName = 'user-agent-yarn-with-example' + const res = await run([projectName, '--example', FULL_EXAMPLE_PATH], { + cwd, + env: { npm_config_user_agent: 'yarn' }, + }) + + expect(res.exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files, + }) + }) +}) diff --git a/test/integration/create-next-app/prompts.test.ts b/test/integration/create-next-app/prompts.test.ts new file mode 100644 index 0000000000000..fe99ae9e6f0ea --- /dev/null +++ b/test/integration/create-next-app/prompts.test.ts @@ -0,0 +1,169 @@ +import { join } from 'path' +import { check } from 'next-test-utils' +import { createNextApp, projectFilesShouldExist, useTempDir } from './utils' + +let testVersion +beforeAll(async () => { + // TODO: investigate moving this post publish or create deployed GH#57025 + // tarballs to avoid these failing while a publish is in progress + testVersion = 'canary' + // const span = new Span({ name: 'parent' }) + // testVersion = ( + // await createNextInstall({ onlyPackages: true, parentSpan: span }) + // ).get('next') +}) + +describe('create-next-app prompts', () => { + it('should prompt user for choice if directory name is absent', async () => { + await useTempDir(async (cwd) => { + const projectName = 'no-dir-name' + const childProcess = createNextApp( + [ + '--ts', + '--app', + '--eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + } + ) + + await new Promise((resolve) => { + childProcess.on('exit', async (exitCode) => { + expect(exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: ['package.json'], + }) + resolve() + }) + + // enter project name + childProcess.stdin.write(`${projectName}\n`) + }) + + const pkg = require(join(cwd, projectName, 'package.json')) + expect(pkg.name).toBe(projectName) + }) + }) + + it('should prompt user for choice if --js or --ts flag is absent', async () => { + await useTempDir(async (cwd) => { + const projectName = 'ts-js' + const childProcess = createNextApp( + [ + projectName, + '--app', + '--eslint', + '--no-tailwind', + '--no-src-dir', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + + await new Promise((resolve) => { + childProcess.on('exit', async (exitCode) => { + expect(exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: ['tsconfig.json'], + }) + resolve() + }) + + // select default choice: typescript + childProcess.stdin.write('\n') + }) + }) + }) + + it('should prompt user for choice if --tailwind is absent', async () => { + await useTempDir(async (cwd) => { + const projectName = 'tw' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--app', + '--eslint', + '--no-src-dir', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + + await new Promise((resolve) => { + childProcess.on('exit', async (exitCode) => { + expect(exitCode).toBe(0) + projectFilesShouldExist({ + cwd, + projectName, + files: ['tailwind.config.ts'], + }) + resolve() + }) + + // select default choice: tailwind + childProcess.stdin.write('\n') + }) + }) + }) + + it('should prompt user for choice if --import-alias is absent', async () => { + await useTempDir(async (cwd) => { + const projectName = 'import-alias' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--app', + '--eslint', + '--no-tailwind', + '--no-src-dir', + ], + { + cwd, + }, + testVersion + ) + + await new Promise(async (resolve) => { + childProcess.on('exit', async (exitCode) => { + expect(exitCode).toBe(0) + resolve() + }) + let output = '' + childProcess.stdout.on('data', (data) => { + output += data + process.stdout.write(data) + }) + // cursor forward, choose 'Yes' for custom import alias + childProcess.stdin.write('\u001b[C\n') + // used check here since it needs to wait for the prompt + await check(() => output, /What import alias would you like configured/) + childProcess.stdin.write('@/something/*\n') + }) + + const tsConfig = require(join(cwd, projectName, 'tsconfig.json')) + expect(tsConfig.compilerOptions.paths).toMatchInlineSnapshot(` + { + "@/something/*": [ + "./*", + ], + } + `) + }) + }) +}) diff --git a/test/integration/create-next-app/templates-app.test.ts b/test/integration/create-next-app/templates-app.test.ts deleted file mode 100644 index 67793b0d99890..0000000000000 --- a/test/integration/create-next-app/templates-app.test.ts +++ /dev/null @@ -1,197 +0,0 @@ -/* eslint-env jest */ -/** - * @fileoverview - * - * This file contains tests for `create-next-app` templates, currently - * JavaScript (default), TypeScript, and appDir. - */ - -import path from 'path' -import fs from 'fs-extra' -import { - createNextApp, - shouldBeTemplateProject, - spawnExitPromise, -} from './lib/utils' - -import { useTempDir } from '../../lib/use-temp-dir' -import { fetchViaHTTP, findPort, killApp, launchApp } from 'next-test-utils' -import resolveFrom from 'resolve-from' - -const startsWithoutError = async ( - appDir: string, - modes = ['default', 'turbo'], - usingAppDirectory: boolean = false -) => { - for (const mode of modes) { - appDir = await fs.realpath(appDir) - const appPort = await findPort() - const app = await launchApp(appDir, appPort, { - turbo: mode === 'turbo', - cwd: appDir, - nextBin: resolveFrom(appDir, 'next/dist/bin/next'), - }) - - try { - const res = await fetchViaHTTP(appPort, '/') - expect(await res.text()).toContain('Get started by editing') - expect(res.status).toBe(200) - - if (!usingAppDirectory) { - const apiRes = await fetchViaHTTP(appPort, '/api/hello') - expect(await apiRes.json()).toEqual({ name: 'John Doe' }) - expect(apiRes.status).toBe(200) - } - } finally { - await killApp(app) - } - } -} -let testVersion - -describe('create-next-app --app', () => { - beforeAll(async () => { - if (testVersion) return - // TODO: investigate moving this post publish or create deployed - // tarballs to avoid these failing while a publish is in progress - testVersion = 'canary' - // const span = new Span({ name: 'parent' }) - // testVersion = ( - // await createNextInstall({ onlyPackages: true, parentSpan: span }) - // ).get('next') - }) - - it('should create TS appDir projects with --ts', async () => { - await useTempDir(async (cwd) => { - const projectName = 'appdir-test' - const childProcess = createNextApp( - [ - projectName, - '--ts', - '--no-tailwind', - '--app', - '--eslint', - '--no-src-dir', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - - const exitCode = await spawnExitPromise(childProcess) - expect(exitCode).toBe(0) - shouldBeTemplateProject({ cwd, projectName, template: 'app', mode: 'ts' }) - await startsWithoutError( - path.join(cwd, projectName), - ['default', 'turbo'], - true - ) - }) - }) - - it('should create JS appDir projects with --js', async () => { - await useTempDir(async (cwd) => { - const projectName = 'appdir-test' - const childProcess = createNextApp( - [ - projectName, - '--js', - '--no-tailwind', - '--app', - '--eslint', - '--no-src-dir', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - - const exitCode = await spawnExitPromise(childProcess) - expect(exitCode).toBe(0) - shouldBeTemplateProject({ cwd, projectName, template: 'app', mode: 'js' }) - // is landed - await startsWithoutError( - path.join(cwd, projectName), - ['default', 'turbo'], - true - ) - }) - }) - - it('should create JS appDir projects with --js --src-dir', async () => { - await useTempDir(async (cwd) => { - const projectName = 'appdir-test' - const childProcess = createNextApp( - [ - projectName, - '--js', - '--no-tailwind', - '--app', - '--eslint', - '--src-dir', - '--no-import-alias', - ], - { - cwd, - stdio: 'inherit', - }, - testVersion - ) - - const exitCode = await spawnExitPromise(childProcess) - expect(exitCode).toBe(0) - shouldBeTemplateProject({ - cwd, - projectName, - template: 'app', - mode: 'js', - srcDir: true, - }) - await startsWithoutError( - path.join(cwd, projectName), - ['default', 'turbo'], - true - ) - }) - }) - - it('should create Tailwind CSS appDir projects with --tailwind', async () => { - await useTempDir(async (cwd) => { - const projectName = 'appdir-tailwind-test' - const childProcess = createNextApp( - [ - projectName, - '--ts', - '--tailwind', - '--app', - '--eslint', - '--src-dir', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - - const exitCode = await spawnExitPromise(childProcess) - expect(exitCode).toBe(0) - shouldBeTemplateProject({ - cwd, - projectName, - template: 'app-tw', - mode: 'ts', - srcDir: true, - }) - await startsWithoutError( - path.join(cwd, projectName), - ['default', 'turbo'], - true - ) - }) - }) -}) diff --git a/test/integration/create-next-app/templates-pages.test.ts b/test/integration/create-next-app/templates-pages.test.ts deleted file mode 100644 index a2bfdea68654d..0000000000000 --- a/test/integration/create-next-app/templates-pages.test.ts +++ /dev/null @@ -1,395 +0,0 @@ -/* eslint-env jest */ -/** - * @fileoverview - * - * This file contains tests for `create-next-app` templates, currently - * JavaScript (default), TypeScript, and appDir. - */ - -import path from 'path' -import fs from 'fs-extra' -import { - createNextApp, - projectFilesShouldExist, - shouldBeJavascriptProject, - shouldBeTypescriptProject, - spawnExitPromise, -} from './lib/utils' -//import { Span } from 'next/dist/trace' - -import { useTempDir } from '../../lib/use-temp-dir' -import { - check, - fetchViaHTTP, - findPort, - killApp, - launchApp, -} from 'next-test-utils' -import resolveFrom from 'resolve-from' -//import { createNextInstall } from '../../lib/create-next-install' -import ansiEscapes from 'ansi-escapes' - -const startsWithoutError = async ( - appDir: string, - modes = ['default', 'turbo'], - usingAppDirectory: boolean = false -) => { - for (const mode of modes) { - appDir = await fs.realpath(appDir) - const appPort = await findPort() - const app = await launchApp(appDir, appPort, { - turbo: mode === 'turbo', - cwd: appDir, - nextBin: resolveFrom(appDir, 'next/dist/bin/next'), - }) - - try { - const res = await fetchViaHTTP(appPort, '/') - expect(await res.text()).toContain('Get started by editing') - expect(res.status).toBe(200) - - if (!usingAppDirectory) { - const apiRes = await fetchViaHTTP(appPort, '/api/hello') - expect(await apiRes.json()).toEqual({ name: 'John Doe' }) - expect(apiRes.status).toBe(200) - } - } finally { - await killApp(app) - } - } -} -let testVersion - -describe('create-next-app templates', () => { - beforeAll(async () => { - // TODO: investigate moving this post publish or create deployed - // tarballs to avoid these failing while a publish is in progress - testVersion = 'canary' - // const span = new Span({ name: 'parent' }) - // testVersion = ( - // await createNextInstall({ onlyPackages: true, parentSpan: span }) - // ).get('next') - }) - - it('should prompt user to choose if --ts or --js is not provided', async () => { - await useTempDir(async (cwd) => { - const projectName = 'choose-ts-js' - - /** - * Start the create-next-app call. - */ - const childProcess = createNextApp( - [ - projectName, - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--no-app', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - /** - * Wait for the prompt to display. - */ - // await new Promise((resolve) => setTimeout(resolve, 1000)); - /** - * Bind the exit listener. - */ - await new Promise((resolve, reject) => { - childProcess.on('exit', async (exitCode) => { - expect(exitCode).toBe(0) - /** - * Verify it correctly emitted a TS project by looking for tsconfig. - */ - projectFilesShouldExist({ - cwd, - projectName, - files: ['tsconfig.json'], - }) - resolve() - }) - /** - * Simulate "N" for TypeScript. - */ - childProcess.stdin.write('N\n') - }) - }) - }) - - it('should create TS projects with --ts, --typescript', async () => { - await useTempDir(async (cwd) => { - const projectName = 'typescript-test' - const childProcess = createNextApp( - [ - projectName, - '--ts', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--no-app', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - const exitCode = await spawnExitPromise(childProcess) - - expect(exitCode).toBe(0) - shouldBeTypescriptProject({ cwd, projectName, template: 'default' }) - - await startsWithoutError(path.join(cwd, projectName)) - }) - }) - - it('should create TS projects with --ts, --typescript --src-dir', async () => { - await useTempDir(async (cwd) => { - const projectName = 'typescript-test' - const childProcess = createNextApp( - [ - projectName, - '--ts', - '--no-tailwind', - '--eslint', - '--src-dir', - '--no-app', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - const exitCode = await spawnExitPromise(childProcess) - - expect(exitCode).toBe(0) - shouldBeTypescriptProject({ - cwd, - projectName, - template: 'default', - srcDir: true, - }) - await startsWithoutError(path.join(cwd, projectName)) - }) - }) - - it('should create JS projects with --js, --javascript', async () => { - await useTempDir(async (cwd) => { - const projectName = 'javascript-test' - const childProcess = createNextApp( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--no-app', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - const exitCode = await spawnExitPromise(childProcess) - - expect(exitCode).toBe(0) - shouldBeJavascriptProject({ cwd, projectName, template: 'default' }) - await startsWithoutError(path.join(cwd, projectName), [ - 'default', - 'turbo', - ]) - }) - }) - - it('should create JS projects with --js, --javascript --src-dir', async () => { - await useTempDir(async (cwd) => { - const projectName = 'javascript-test' - const childProcess = createNextApp( - [ - projectName, - '--js', - '--no-tailwind', - '--eslint', - '--src-dir', - '--no-app', - `--no-import-alias`, - ], - { - cwd, - }, - testVersion - ) - const exitCode = await spawnExitPromise(childProcess) - - expect(exitCode).toBe(0) - shouldBeJavascriptProject({ - cwd, - projectName, - template: 'default', - srcDir: true, - }) - await startsWithoutError(path.join(cwd, projectName), [ - 'default', - 'turbo', - ]) - }) - }) - - it('should prompt user to choose if --import-alias is not provided', async () => { - await useTempDir(async (cwd) => { - const projectName = 'choose-import-alias' - - /** - * Start the create-next-app call. - */ - const childProcess = createNextApp( - [ - projectName, - '--ts', - '--no-tailwind', - '--eslint', - '--no-src-dir', - '--no-app', - ], - { - cwd, - }, - testVersion - ) - /** - * Bind the exit listener. - */ - await new Promise(async (resolve) => { - childProcess.on('exit', async (exitCode) => { - expect(exitCode).toBe(0) - resolve() - }) - let output = '' - childProcess.stdout.on('data', (data) => { - output += data - process.stdout.write(data) - }) - childProcess.stdin.write(ansiEscapes.cursorForward() + '\n') - await check(() => output, /What import alias would you like configured/) - childProcess.stdin.write('@/something/*\n') - }) - - /** - * Verify it correctly emitted a TS project by looking for tsconfig. - */ - const tsConfig = require(path.join(cwd, projectName, 'tsconfig.json')) - expect(tsConfig.compilerOptions.paths).toMatchInlineSnapshot(` - { - "@/something/*": [ - "./*", - ], - } - `) - }) - }) - - it('should work with --tailwind and --src together', async () => { - await useTempDir(async (cwd) => { - const projectName = 'tailwind-js-src' - - /** - * Start the create-next-app call. - */ - const childProcess = createNextApp( - [ - projectName, - '--js', - '--no-eslint', - '--tailwind', - '--src-dir', - '--no-app', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - /** - * Wait for the prompt to display. - */ - // await new Promise((resolve) => setTimeout(resolve, 1000)); - /** - * Bind the exit listener. - */ - await new Promise((resolve, reject) => { - childProcess.on('exit', async (exitCode) => { - expect(exitCode).toBe(0) - /** - * Verify it correctly emitted a Tailwind project by looking for tailwind.config.js. - */ - projectFilesShouldExist({ - cwd, - projectName, - files: ['tailwind.config.js'], - }) - resolve() - }) - /** - * Simulate "N" for Tailwind. - */ - childProcess.stdin.write('N\n') - }) - }) - }) - - it('should prompt user to choose if --tailwind or --no-tailwind is not provided', async () => { - await useTempDir(async (cwd) => { - const projectName = 'choose-tailwind' - - /** - * Start the create-next-app call. - */ - const childProcess = createNextApp( - [ - projectName, - '--js', - '--eslint', - '--no-src-dir', - '--no-app', - `--import-alias=@/*`, - ], - { - cwd, - }, - testVersion - ) - /** - * Wait for the prompt to display. - */ - // await new Promise((resolve) => setTimeout(resolve, 1000)); - /** - * Bind the exit listener. - */ - await new Promise((resolve, reject) => { - childProcess.on('exit', async (exitCode) => { - expect(exitCode).toBe(0) - /** - * Verify it correctly emitted a Tailwind project by looking for tailwind.config.js. - */ - projectFilesShouldExist({ - cwd, - projectName, - files: ['tailwind.config.js'], - }) - resolve() - }) - /** - * Simulate "N" for Tailwind. - */ - childProcess.stdin.write('N\n') - }) - }) - }) -}) diff --git a/test/integration/create-next-app/templates/app.test.ts b/test/integration/create-next-app/templates/app.test.ts new file mode 100644 index 0000000000000..bbf26cd4fead4 --- /dev/null +++ b/test/integration/create-next-app/templates/app.test.ts @@ -0,0 +1,150 @@ +import { + createNextApp, + shouldBeTemplateProject, + spawnExitPromise, + tryNextDev, + useTempDir, +} from '../utils' + +let testVersion +beforeAll(async () => { + if (testVersion) return + // TODO: investigate moving this post publish or create deployed GH#57025 + // tarballs to avoid these failing while a publish is in progress + testVersion = 'canary' + // const span = new Span({ name: 'parent' }) + // testVersion = ( + // await createNextInstall({ onlyPackages: true, parentSpan: span }) + // ).get('next') +}) + +describe('create-next-app --app (App Router)', () => { + it('should create JavaScript project with --js flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'app-js' + const childProcess = createNextApp( + [ + projectName, + '--js', + '--app', + '--eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ cwd, projectName, template: 'app', mode: 'js' }) + await tryNextDev({ + cwd, + projectName, + }) + }) + }) + + it('should create TypeScript project with --ts flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'app-ts' + const cp = createNextApp( + [ + projectName, + '--ts', + '--app', + '--eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + + const exitCode = await spawnExitPromise(cp) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ cwd, projectName, template: 'app', mode: 'ts' }) + await tryNextDev({ + cwd, + projectName, + }) + }) + }) + + it('should create project inside "src" directory with --src-dir flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'app-src-dir' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--app', + '--eslint', + '--src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + stdio: 'inherit', + }, + testVersion + ) + + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'app', + mode: 'ts', + srcDir: true, + }) + await tryNextDev({ + cwd, + projectName, + }) + }) + }) + + it('should create TailwindCSS project with --tailwind flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'app-tw' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--app', + '--eslint', + '--src-dir', + '--tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'app-tw', + mode: 'ts', + srcDir: true, + }) + await tryNextDev({ + cwd, + projectName, + }) + }) + }) +}) diff --git a/test/integration/create-next-app/templates/pages.test.ts b/test/integration/create-next-app/templates/pages.test.ts new file mode 100644 index 0000000000000..7888172f8bb86 --- /dev/null +++ b/test/integration/create-next-app/templates/pages.test.ts @@ -0,0 +1,159 @@ +import { + createNextApp, + shouldBeTemplateProject, + spawnExitPromise, + tryNextDev, + useTempDir, +} from '../utils' + +let testVersion +beforeAll(async () => { + // TODO: investigate moving this post publish or create deployed GH#57025 + // tarballs to avoid these failing while a publish is in progress + testVersion = 'canary' + // const span = new Span({ name: 'parent' }) + // testVersion = ( + // await createNextInstall({ onlyPackages: true, parentSpan: span }) + // ).get('next') +}) + +describe('create-next-app --no-app (Pages Router)', () => { + it('should create JavaScript project with --js flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'pages-js' + const childProcess = createNextApp( + [ + projectName, + '--js', + '--no-app', + '--eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'default', + mode: 'js', + }) + await tryNextDev({ + cwd, + projectName, + isApp: false, + }) + }) + }) + + it('should create TypeScript project with --ts flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'pages-ts' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--no-app', + '--eslint', + '--no-src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'default', + mode: 'ts', + }) + await tryNextDev({ + cwd, + projectName, + isApp: false, + }) + }) + }) + + it('should create project inside "src" directory with --src-dir flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'pages-src-dir' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--no-app', + '--eslint', + '--src-dir', + '--no-tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'default', + mode: 'ts', + srcDir: true, + }) + await tryNextDev({ + cwd, + projectName, + isApp: false, + }) + }) + }) + + it('should create TailwindCSS project with --tailwind flag', async () => { + await useTempDir(async (cwd) => { + const projectName = 'pages-tw' + const childProcess = createNextApp( + [ + projectName, + '--ts', + '--no-app', + '--eslint', + '--src-dir', + '--tailwind', + '--no-import-alias', + ], + { + cwd, + }, + testVersion + ) + + const exitCode = await spawnExitPromise(childProcess) + expect(exitCode).toBe(0) + shouldBeTemplateProject({ + cwd, + projectName, + template: 'default-tw', + mode: 'ts', + srcDir: true, + }) + await tryNextDev({ + cwd, + projectName, + isApp: false, + }) + }) + }) +}) diff --git a/test/integration/create-next-app/utils.ts b/test/integration/create-next-app/utils.ts new file mode 100644 index 0000000000000..7c64508cf7e52 --- /dev/null +++ b/test/integration/create-next-app/utils.ts @@ -0,0 +1,78 @@ +import execa from 'execa' +import { join } from 'path' +import { fetchViaHTTP, findPort, killApp, launchApp } from 'next-test-utils' + +export const CNA_PATH = require.resolve('create-next-app/dist/index.js') +export const EXAMPLE_REPO = 'https://github.com/vercel/next.js/tree/canary' +export const EXAMPLE_PATH = 'examples/basic-css' +export const FULL_EXAMPLE_PATH = `${EXAMPLE_REPO}/${EXAMPLE_PATH}` +export const DEFAULT_FILES = [ + '.gitignore', + 'package.json', + 'app/page.tsx', + 'app/layout.tsx', + 'node_modules/next', +] + +export const run = ( + args: string[], + options: + | execa.Options + | { + reject?: boolean + env?: Record + } +) => + execa('node', [CNA_PATH].concat(args), { + // tests with options.reject false are expected to exit(1) so don't inherit + stdio: options.reject === false ? 'pipe' : 'inherit', + ...options, + env: { ...process.env, ...options.env }, + }) + +export const command = (cmd: string, args: string[]) => + execa(cmd, args, { + stdio: 'inherit', + env: { ...process.env }, + }) + +export async function tryNextDev({ + cwd, + projectName, + isApp = true, +}: { + cwd: string + projectName: string + isApp?: boolean +}) { + const dir = join(cwd, projectName) + const port = await findPort() + const app = await launchApp(dir, port, { + nextBin: join(dir, 'node_modules/next/dist/bin/next'), + }) + + try { + const res = await fetchViaHTTP(port, '/') + expect(await res.text()).toContain('Get started by editing') + expect(res.status).toBe(200) + + if (!isApp) { + const apiRes = await fetchViaHTTP(port, '/api/hello') + expect(await apiRes.json()).toEqual({ name: 'John Doe' }) + expect(apiRes.status).toBe(200) + } + } finally { + await killApp(app) + } +} + +export { + createNextApp, + projectFilesShouldExist, + projectFilesShouldNotExist, + shouldBeTemplateProject, + shouldBeJavascriptProject, + shouldBeTypescriptProject, + spawnExitPromise, +} from './lib/utils' +export { useTempDir } from '../../lib/use-temp-dir' diff --git a/test/integration/critical-css/test/index.test.js b/test/integration/critical-css/test/index.test.js index 70bc40996c3f5..ceb58c2711431 100644 --- a/test/integration/critical-css/test/index.test.js +++ b/test/integration/critical-css/test/index.test.js @@ -57,25 +57,28 @@ function runTests() { } describe('CSS optimization for SSR apps', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await fs.writeFile( - nextConfig, - `module.exports = { experimental: {optimizeCss: true} }`, - 'utf8' - ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await fs.writeFile( + nextConfig, + `module.exports = { experimental: {optimizeCss: true} }`, + 'utf8' + ) - if (fs.pathExistsSync(join(appDir, '.next'))) { - await fs.remove(join(appDir, '.next')) - } - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - await fs.remove(nextConfig) - }) - runTests() - }) + if (fs.pathExistsSync(join(appDir, '.next'))) { + await fs.remove(join(appDir, '.next')) + } + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + await fs.remove(nextConfig) + }) + runTests() + } + ) }) diff --git a/test/integration/css-client-nav/test/index.test.js b/test/integration/css-client-nav/test/index.test.js index b2f61541f1b29..8903cbc17aed0 100644 --- a/test/integration/css-client-nav/test/index.test.js +++ b/test/integration/css-client-nav/test/index.test.js @@ -150,75 +150,78 @@ function runTests(dev) { } describe('CSS Module client-side navigation', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await remove(join(appDir, '.next')) - await nextBuild(appDir) - const port = await findPort() - app = await nextStart(appDir, port) - appPort = await findPort() - - const proxy = httpProxy.createProxyServer({ - target: `http://localhost:${port}`, + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await remove(join(appDir, '.next')) + await nextBuild(appDir) + const port = await findPort() + app = await nextStart(appDir, port) + appPort = await findPort() + + const proxy = httpProxy.createProxyServer({ + target: `http://localhost:${port}`, + }) + + proxyServer = http.createServer(async (req, res) => { + if (stallCss && req.url.endsWith('.css')) { + console.log('stalling request for', req.url) + await new Promise((resolve) => setTimeout(resolve, 5 * 1000)) + } + proxy.web(req, res) + }) + + proxy.on('error', (err) => { + console.warn('Failed to proxy', err) + }) + + await new Promise((resolve) => { + proxyServer.listen(appPort, () => resolve()) + }) }) - - proxyServer = http.createServer(async (req, res) => { - if (stallCss && req.url.endsWith('.css')) { - console.log('stalling request for', req.url) - await new Promise((resolve) => setTimeout(resolve, 5 * 1000)) - } - proxy.web(req, res) + afterAll(async () => { + proxyServer.close() + await killApp(app) }) - proxy.on('error', (err) => { - console.warn('Failed to proxy', err) - }) - - await new Promise((resolve) => { - proxyServer.listen(appPort, () => resolve()) - }) - }) - afterAll(async () => { - proxyServer.close() - await killApp(app) - }) - - it('should time out and hard navigate for stalled CSS request', async () => { - let browser - stallCss = true - - try { - browser = await webdriver(appPort, '/red') - await browser.eval('window.beforeNav = "hello"') - - const redColor = await browser.eval( - `window.getComputedStyle(document.querySelector('#verify-red')).color` - ) - expect(redColor).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) - expect(await browser.eval('window.beforeNav')).toBe('hello') - - await browser.elementByCss('#link-blue').click() - - await browser.waitForElementByCss('#verify-blue') - - const blueColor = await browser.eval( - `window.getComputedStyle(document.querySelector('#verify-blue')).color` - ) - expect(blueColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`) - - // the timeout should have been reached and we did a hard - // navigation - expect(await browser.eval('window.beforeNav')).toBeFalsy() - } finally { - stallCss = false - if (browser) { - await browser.close() + it('should time out and hard navigate for stalled CSS request', async () => { + let browser + stallCss = true + + try { + browser = await webdriver(appPort, '/red') + await browser.eval('window.beforeNav = "hello"') + + const redColor = await browser.eval( + `window.getComputedStyle(document.querySelector('#verify-red')).color` + ) + expect(redColor).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) + expect(await browser.eval('window.beforeNav')).toBe('hello') + + await browser.elementByCss('#link-blue').click() + + await browser.waitForElementByCss('#verify-blue') + + const blueColor = await browser.eval( + `window.getComputedStyle(document.querySelector('#verify-blue')).color` + ) + expect(blueColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`) + + // the timeout should have been reached and we did a hard + // navigation + expect(await browser.eval('window.beforeNav')).toBeFalsy() + } finally { + stallCss = false + if (browser) { + await browser.close() + } } - } - }) + }) - runTests() - }) + runTests() + } + ) describe('dev', () => { beforeAll(async () => { diff --git a/test/integration/css-customization/test/index.test.js b/test/integration/css-customization/test/index.test.js index 6a2fc992201fc..f5d5b6047f9bc 100644 --- a/test/integration/css-customization/test/index.test.js +++ b/test/integration/css-customization/test/index.test.js @@ -8,53 +8,61 @@ import escapeStringRegexp from 'escape-string-regexp' const fixturesDir = join(__dirname, '../..', 'css-fixtures') describe('CSS Customization', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'custom-configuration') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'custom-configuration') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - describe('Basic CSS', () => { - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + describe('Basic CSS', () => { + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've compiled and prefixed`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've compiled and prefixed`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `"@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"` - ) + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `"@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"` + ) - // Contains a source map - expect(cssContent).toMatch(/\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\//) - }) + // Contains a source map + expect(cssContent).toMatch( + /\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\// + ) + }) - it(`should've emitted a source map`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a source map`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) + const files = await readdir(cssFolder) + const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) - expect(cssMapFiles.length).toBe(1) - const cssMapContent = ( - await readFile(join(cssFolder, cssMapFiles[0]), 'utf8') - ).trim() + expect(cssMapFiles.length).toBe(1) + const cssMapContent = ( + await readFile(join(cssFolder, cssMapFiles[0]), 'utf8') + ).trim() - const { version, mappings, sourcesContent } = JSON.parse(cssMapContent) - expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(` + const { version, mappings, sourcesContent } = + JSON.parse(cssMapContent) + expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(` { "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF", "sourcesContent": [ @@ -74,55 +82,61 @@ describe('CSS Customization', () => { "version": 3, } `) + }) }) - }) - describe('Correct CSS Customization Array', () => { - const appDir = join(fixturesDir, 'custom-configuration-arr') + describe('Correct CSS Customization Array', () => { + const appDir = join(fixturesDir, 'custom-configuration-arr') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've compiled and prefixed`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've compiled and prefixed`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `"@media (480px <= width < 768px){a:before{content:""}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"` - ) + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `"@media (480px <= width < 768px){a:before{content:""}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"` + ) - // Contains a source map - expect(cssContent).toMatch(/\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\//) - }) + // Contains a source map + expect(cssContent).toMatch( + /\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\// + ) + }) - it(`should've emitted a source map`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a source map`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) + const files = await readdir(cssFolder) + const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) - expect(cssMapFiles.length).toBe(1) - const cssMapContent = ( - await readFile(join(cssFolder, cssMapFiles[0]), 'utf8') - ).trim() + expect(cssMapFiles.length).toBe(1) + const cssMapContent = ( + await readFile(join(cssFolder, cssMapFiles[0]), 'utf8') + ).trim() - const { version, mappings, sourcesContent } = JSON.parse(cssMapContent) - expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(` + const { version, mappings, sourcesContent } = + JSON.parse(cssMapContent) + expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(` { "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF", "sourcesContent": [ @@ -145,246 +159,252 @@ describe('CSS Customization', () => { "version": 3, } `) + }) }) - }) - describe('Correct CSS Customization custom loader', () => { - const appDir = join(fixturesDir, 'custom-configuration-loader') + describe('Correct CSS Customization custom loader', () => { + const appDir = join(fixturesDir, 'custom-configuration-loader') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout, stderr } = await nextBuild(appDir, [], { - stdout: true, - stderr: true, + it('should compile successfully', async () => { + const { code, stdout, stderr } = await nextBuild(appDir, [], { + stdout: true, + stderr: true, + }) + expect(code).toBe(0) + expect(stderr).toMatch(/Built-in CSS support is being disabled/) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stderr).toMatch(/Built-in CSS support is being disabled/) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've applied style`, async () => { - const pagesFolder = join(appDir, '.next/static/chunks/pages') + it(`should've applied style`, async () => { + const pagesFolder = join(appDir, '.next/static/chunks/pages') - const files = await readdir(pagesFolder) - const indexFiles = files.filter((f) => /^index.+\.js$/.test(f)) + const files = await readdir(pagesFolder) + const indexFiles = files.filter((f) => /^index.+\.js$/.test(f)) - expect(indexFiles.length).toBe(1) - const indexContent = await readFile( - join(pagesFolder, indexFiles[0]), - 'utf8' - ) - expect(indexContent).toMatch(/\.my-text\.jsx-[0-9a-z]+{color:red}/) + expect(indexFiles.length).toBe(1) + const indexContent = await readFile( + join(pagesFolder, indexFiles[0]), + 'utf8' + ) + expect(indexContent).toMatch(/\.my-text\.jsx-[0-9a-z]+{color:red}/) + }) }) - }) - describe('Bad CSS Customization', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration') + describe('Bad CSS Customization', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { stdout, stderr } = await nextBuild(appDir, [], { - stdout: true, - stderr: true, - }) - expect(stdout).toMatch(/Compiled successfully/) - expect(stderr).toMatch(/field which is not supported.*?sourceMap/) - ;[ - 'postcss-modules-values', - 'postcss-modules-scope', - 'postcss-modules-extract-imports', - 'postcss-modules-local-by-default', - 'postcss-modules', - ].forEach((plugin) => { - expect(stderr).toMatch( - new RegExp(`Please remove the.*?${escapeStringRegexp(plugin)}`) - ) + it('should compile successfully', async () => { + const { stdout, stderr } = await nextBuild(appDir, [], { + stdout: true, + stderr: true, + }) + expect(stdout).toMatch(/Compiled successfully/) + expect(stderr).toMatch(/field which is not supported.*?sourceMap/) + ;[ + 'postcss-modules-values', + 'postcss-modules-scope', + 'postcss-modules-extract-imports', + 'postcss-modules-local-by-default', + 'postcss-modules', + ].forEach((plugin) => { + expect(stderr).toMatch( + new RegExp(`Please remove the.*?${escapeStringRegexp(plugin)}`) + ) + }) }) - }) - it(`should've compiled and prefixed`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've compiled and prefixed`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`".video{max-width:400px;max-height:300px}"`) + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`".video{max-width:400px;max-height:300px}"`) - // Contains a source map - expect(cssContent).toMatch(/\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\//) - }) + // Contains a source map + expect(cssContent).toMatch( + /\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\// + ) + }) - it(`should've emitted a source map`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a source map`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) + const files = await readdir(cssFolder) + const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) - expect(cssMapFiles.length).toBe(1) + expect(cssMapFiles.length).toBe(1) + }) }) - }) - describe('Bad CSS Customization Array (1)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-1') + describe('Bad CSS Customization Array (1)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-1') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /A PostCSS Plugin was passed as an array but did not provide its configuration \('postcss-trolling'\)/ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /A PostCSS Plugin was passed as an array but did not provide its configuration \('postcss-trolling'\)/ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (2)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-2') + describe('Bad CSS Customization Array (2)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-2') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /Error: Your PostCSS configuration for 'postcss-trolling' cannot have null configuration./ - ) - expect(stderr).toMatch( - /To disable 'postcss-trolling', pass false, otherwise, pass true or a configuration object./ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /Error: Your PostCSS configuration for 'postcss-trolling' cannot have null configuration./ + ) + expect(stderr).toMatch( + /To disable 'postcss-trolling', pass false, otherwise, pass true or a configuration object./ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (3)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-3') + describe('Bad CSS Customization Array (3)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-3') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /A PostCSS Plugin must be provided as a string. Instead, we got: '5'/ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /A PostCSS Plugin must be provided as a string. Instead, we got: '5'/ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (4)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-4') + describe('Bad CSS Customization Array (4)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-4') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch(/An unknown PostCSS plugin was provided \(5\)/) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch(/An unknown PostCSS plugin was provided \(5\)/) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (5)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-5') + describe('Bad CSS Customization Array (5)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-5') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /Your custom PostCSS configuration must export a `plugins` key./ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /Your custom PostCSS configuration must export a `plugins` key./ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (6)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-6') + describe('Bad CSS Customization Array (6)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-6') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /Your custom PostCSS configuration must export a `plugins` key./ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /Your custom PostCSS configuration must export a `plugins` key./ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (7)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-7') + describe('Bad CSS Customization Array (7)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-7') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /A PostCSS Plugin was passed as an array but did not provide its configuration \('postcss-trolling'\)/ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /A PostCSS Plugin was passed as an array but did not provide its configuration \('postcss-trolling'\)/ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Array (8)', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-arr-8') + describe('Bad CSS Customization Array (8)', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-arr-8') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /A PostCSS Plugin was passed as a function using require\(\), but it must be provided as a string/ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /A PostCSS Plugin was passed as a function using require\(\), but it must be provided as a string/ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - describe('Bad CSS Customization Function', () => { - const appDir = join(fixturesDir, 'bad-custom-configuration-func') + describe('Bad CSS Customization Function', () => { + const appDir = join(fixturesDir, 'bad-custom-configuration-func') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail the build', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true }) + it('should fail the build', async () => { + const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch( - /Your custom PostCSS configuration may not export a function/ - ) - expect(stderr).toMatch(/Build failed because of webpack errors/) + expect(stderr).toMatch( + /Your custom PostCSS configuration may not export a function/ + ) + expect(stderr).toMatch(/Build failed because of webpack errors/) + }) }) - }) - }) + } + ) }) diff --git a/test/integration/css-features/test/browserslist.test.js b/test/integration/css-features/test/browserslist.test.js index 6966c72ebae7b..551808626f039 100644 --- a/test/integration/css-features/test/browserslist.test.js +++ b/test/integration/css-features/test/browserslist.test.js @@ -7,73 +7,79 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../fixtures') describe('Browserslist: Old', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'browsers-old') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `"a{-webkit-animation:none 0s ease 0s 1 normal none running;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:separate;-webkit-border-image:none;border-image:none;-webkit-border-radius:0;border-radius:0;border-spacing:0;bottom:auto;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;caption-side:top;clear:none;clip:auto;color:#000;-webkit-columns:auto;-webkit-column-count:auto;-webkit-column-fill:balance;column-fill:balance;-webkit-column-gap:normal;column-gap:normal;-webkit-column-rule:medium none currentColor;column-rule:medium none currentColor;-webkit-column-span:1;column-span:1;-webkit-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:normal;height:auto;-ms-hyphens:none;hyphens:none;left:auto;letter-spacing:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;-webkit-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;position:static;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 50% 0;transform-origin:50% 50% 0;-webkit-transform-style:flat;transform-style:flat;-webkit-transition:none 0s ease 0s;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto;all:initial}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'browsers-old') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `"a{-webkit-animation:none 0s ease 0s 1 normal none running;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:separate;-webkit-border-image:none;border-image:none;-webkit-border-radius:0;border-radius:0;border-spacing:0;bottom:auto;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;caption-side:top;clear:none;clip:auto;color:#000;-webkit-columns:auto;-webkit-column-count:auto;-webkit-column-fill:balance;column-fill:balance;-webkit-column-gap:normal;column-gap:normal;-webkit-column-rule:medium none currentColor;column-rule:medium none currentColor;-webkit-column-span:1;column-span:1;-webkit-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:normal;height:auto;-ms-hyphens:none;hyphens:none;left:auto;letter-spacing:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;-webkit-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;position:static;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 50% 0;transform-origin:50% 50% 0;-webkit-transform-style:flat;transform-style:flat;-webkit-transition:none 0s ease 0s;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto;all:initial}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"` + ) + }) + } + ) }) describe('Browserslist: New', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'browsers-new') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `"a{all:initial}@media (min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'browsers-new') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `"a{all:initial}@media (min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"` + ) + }) + } + ) }) diff --git a/test/integration/css-features/test/css-modules.test.js b/test/integration/css-features/test/css-modules.test.js index c22a3a78913ca..f86ea21a2e062 100644 --- a/test/integration/css-features/test/css-modules.test.js +++ b/test/integration/css-features/test/css-modules.test.js @@ -7,129 +7,144 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../fixtures') describe('Custom Properties: Fail for :root {} in CSS Modules', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'cp-global-modules') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'cp-global-modules') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail to build', async () => { - const { code, stderr } = await nextBuild(appDir, [], { - stderr: true, + it('should fail to build', async () => { + const { code, stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + expect(code).not.toBe(0) + expect(stderr).toContain('Failed to compile') + expect(stderr).toContain('pages/styles.module.css') + expect(stderr).toContain('Selector ":root" is not pure') }) - expect(code).not.toBe(0) - expect(stderr).toContain('Failed to compile') - expect(stderr).toContain('pages/styles.module.css') - expect(stderr).toContain('Selector ":root" is not pure') - }) - }) + } + ) }) describe('Custom Properties: Fail for global element in CSS Modules', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'cp-el-modules') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'cp-el-modules') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail to build', async () => { - const { code, stderr } = await nextBuild(appDir, [], { - stderr: true, + it('should fail to build', async () => { + const { code, stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + expect(code).not.toBe(0) + expect(stderr).toContain('Failed to compile') + expect(stderr).toContain('pages/styles.module.css') + expect(stderr).toContain('Selector "h1" is not pure') }) - expect(code).not.toBe(0) - expect(stderr).toContain('Failed to compile') - expect(stderr).toContain('pages/styles.module.css') - expect(stderr).toContain('Selector "h1" is not pure') - }) - }) + } + ) }) describe('CSS Modules: Import Global CSS', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'module-import-global') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`"a .styles_foo__G5630{all:initial}"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'module-import-global') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`"a .styles_foo__G5630{all:initial}"`) + }) + } + ) }) describe('CSS Modules: Importing Invalid Global CSS', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'module-import-global-invalid') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'module-import-global-invalid') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should fail to build', async () => { - const { code, stderr } = await nextBuild(appDir, [], { - stderr: true, + it('should fail to build', async () => { + const { code, stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + expect(code).not.toBe(0) + expect(stderr).toContain('Failed to compile') + expect(stderr).toContain('pages/styles.css') + expect(stderr).toContain('Selector "a" is not pure') }) - expect(code).not.toBe(0) - expect(stderr).toContain('Failed to compile') - expect(stderr).toContain('pages/styles.css') - expect(stderr).toContain('Selector "a" is not pure') - }) - }) + } + ) }) describe('CSS Modules: Import Exports', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'module-import-exports') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`".styles_blk__480DC{color:#000}"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'module-import-exports') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`".styles_blk__480DC{color:#000}"`) + }) + } + ) }) diff --git a/test/integration/css-features/test/index.test.js b/test/integration/css-features/test/index.test.js index a5c2982e3577f..861dc76863822 100644 --- a/test/integration/css-features/test/index.test.js +++ b/test/integration/css-features/test/index.test.js @@ -7,103 +7,112 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../fixtures') describe('Custom Properties: Pass-Through IE11', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'cp-ie-11') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`":root{--color:red}h1{color:var(--color)}"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'cp-ie-11') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`":root{--color:red}h1{color:var(--color)}"`) + }) + } + ) }) describe('Custom Properties: Pass-Through Modern', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'cp-modern') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`":root{--color:red}h1{color:var(--color)}"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'cp-modern') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`":root{--color:red}h1{color:var(--color)}"`) + }) + } + ) }) describe('Inline Comments: Minify', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'inline-comments') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`"*{box-sizing:border-box}"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'inline-comments') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`"*{box-sizing:border-box}"`) + }) + } + ) }) diff --git a/test/integration/css-minify/test/index.test.js b/test/integration/css-minify/test/index.test.js index 4a57d1163ca7c..4b9cea564e86d 100644 --- a/test/integration/css-minify/test/index.test.js +++ b/test/integration/css-minify/test/index.test.js @@ -28,15 +28,18 @@ function runTests() { } describe('css-minify', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - runTests() - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + runTests() + } + ) }) diff --git a/test/integration/css-modules/test/index.test.js b/test/integration/css-modules/test/index.test.js index 7e3de4ed28c1d..a18bf6811b7cc 100644 --- a/test/integration/css-modules/test/index.test.js +++ b/test/integration/css-modules/test/index.test.js @@ -18,122 +18,132 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../../css-fixtures') describe('Basic CSS Module Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'basic-module') - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - expect(stdout).toContain('.css') - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`".index_redText__honUV{color:red}"`) - }) - - it(`should've injected the CSS on server render`, async () => { - const content = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(content) - - const cssPreload = $('link[rel="preload"][as="style"]') - expect(cssPreload.length).toBe(1) - expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/) - - const cssSheet = $('link[rel="stylesheet"]') - expect(cssSheet.length).toBe(1) - expect(cssSheet.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/) - - expect($('#verify-red').attr('class')).toMatchInlineSnapshot( - `"index_redText__honUV"` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'basic-module') + + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + expect(stdout).toContain('.css') + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`".index_redText__honUV{color:red}"`) + }) + + it(`should've injected the CSS on server render`, async () => { + const content = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(content) + + const cssPreload = $('link[rel="preload"][as="style"]') + expect(cssPreload.length).toBe(1) + expect(cssPreload.attr('href')).toMatch( + /^\/_next\/static\/css\/.*\.css$/ + ) + + const cssSheet = $('link[rel="stylesheet"]') + expect(cssSheet.length).toBe(1) + expect(cssSheet.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/) + + expect($('#verify-red').attr('class')).toMatchInlineSnapshot( + `"index_redText__honUV"` + ) + }) + } + ) }) describe('3rd Party CSS Module Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, '3rd-party-module') - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `".index_foo__6TgnK{position:relative}.index_foo__6TgnK .bar,.index_foo__6TgnK .baz{height:100%;overflow:hidden}.index_foo__6TgnK .lol,.index_foo__6TgnK>.lel{width:80%}"` - ) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, '3rd-party-module') + + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - it(`should've injected the CSS on server render`, async () => { - const content = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(content) + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) - const cssPreload = $('link[rel="preload"][as="style"]') - expect(cssPreload.length).toBe(1) - expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/) + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const cssSheet = $('link[rel="stylesheet"]') - expect(cssSheet.length).toBe(1) - expect(cssSheet.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect($('#verify-div').attr('class')).toMatchInlineSnapshot( - `"index_foo__6TgnK"` - ) - }) - }) + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `".index_foo__6TgnK{position:relative}.index_foo__6TgnK .bar,.index_foo__6TgnK .baz{height:100%;overflow:hidden}.index_foo__6TgnK .lol,.index_foo__6TgnK>.lel{width:80%}"` + ) + }) + + it(`should've injected the CSS on server render`, async () => { + const content = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(content) + + const cssPreload = $('link[rel="preload"][as="style"]') + expect(cssPreload.length).toBe(1) + expect(cssPreload.attr('href')).toMatch( + /^\/_next\/static\/css\/.*\.css$/ + ) + + const cssSheet = $('link[rel="stylesheet"]') + expect(cssSheet.length).toBe(1) + expect(cssSheet.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/) + + expect($('#verify-div').attr('class')).toMatchInlineSnapshot( + `"index_foo__6TgnK"` + ) + }) + } + ) }) describe('Has CSS Module in computed styles in Development', () => { @@ -161,39 +171,42 @@ describe('Has CSS Module in computed styles in Development', () => { }) describe('Has CSS Module in computed styles in Production', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'prod-module') - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it('should have CSS for page', async () => { - const browser = await webdriver(appPort, '/') - - const currentColor = await browser.eval( - `window.getComputedStyle(document.querySelector('#verify-red')).color` - ) - expect(currentColor).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'prod-module') + + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it('should have CSS for page', async () => { + const browser = await webdriver(appPort, '/') + + const currentColor = await browser.eval( + `window.getComputedStyle(document.querySelector('#verify-red')).color` + ) + expect(currentColor).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) + }) + } + ) }) describe('Can hot reload CSS Module without losing state', () => { @@ -243,341 +256,365 @@ describe('Can hot reload CSS Module without losing state', () => { }) describe.skip('Invalid CSS Module Usage in node_modules', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'invalid-module') - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - it('should fail to build', async () => { - const { code, stderr } = await nextBuild(appDir, [], { - stderr: true, - }) - expect(code).not.toBe(0) - expect(stderr).toContain('Failed to compile') - expect(stderr).toContain('node_modules/example/index.module.css') - expect(stderr).toMatch( - /CSS Modules.*cannot.*be imported from within.*node_modules/ - ) - expect(stderr).toMatch( - /Location:.*node_modules[\\/]example[\\/]index\.mjs/ - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'invalid-module') + + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + + it('should fail to build', async () => { + const { code, stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + expect(code).not.toBe(0) + expect(stderr).toContain('Failed to compile') + expect(stderr).toContain('node_modules/example/index.module.css') + expect(stderr).toMatch( + /CSS Modules.*cannot.*be imported from within.*node_modules/ + ) + expect(stderr).toMatch( + /Location:.*node_modules[\\/]example[\\/]index\.mjs/ + ) + }) + } + ) }) describe.skip('Invalid Global CSS Module Usage in node_modules', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'invalid-global-module') - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - it('should fail to build', async () => { - const { code, stderr } = await nextBuild(appDir, [], { - stderr: true, - }) - expect(code).not.toBe(0) - expect(stderr).toContain('Failed to compile') - expect(stderr).toContain('node_modules/example/index.css') - expect(stderr).toMatch( - /Global CSS.*cannot.*be imported from within.*node_modules/ - ) - expect(stderr).toMatch( - /Location:.*node_modules[\\/]example[\\/]index\.mjs/ - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'invalid-global-module') + + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + + it('should fail to build', async () => { + const { code, stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + expect(code).not.toBe(0) + expect(stderr).toContain('Failed to compile') + expect(stderr).toContain('node_modules/example/index.css') + expect(stderr).toMatch( + /Global CSS.*cannot.*be imported from within.*node_modules/ + ) + expect(stderr).toMatch( + /Location:.*node_modules[\\/]example[\\/]index\.mjs/ + ) + }) + } + ) }) describe('Valid CSS Module Usage from within node_modules', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'nm-module') - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've prerendered with relevant data`, async () => { - const content = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(content) - - const cssPreload = $('#nm-div') - expect(cssPreload.text()).toMatchInlineSnapshot( - `"{"message":"Why hello there"} {"redText":"example_redText__0ctGB"}"` - ) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'nm-module') - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + it(`should've prerendered with relevant data`, async () => { + const content = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(content) - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`".example_redText__0ctGB{color:red}"`) - }) - }) + const cssPreload = $('#nm-div') + expect(cssPreload.text()).toMatchInlineSnapshot( + `"{"message":"Why hello there"} {"redText":"example_redText__0ctGB"}"` + ) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`".example_redText__0ctGB{color:red}"`) + }) + } + ) }) describe('Valid Nested CSS Module Usage from within node_modules', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'nm-module-nested') - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've prerendered with relevant data`, async () => { - const content = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(content) - - const cssPreload = $('#nm-div') - expect(cssPreload.text()).toMatchInlineSnapshot( - `"{"message":"Why hello there"} {"subClass":"example_subClass__m6Tyy other_className__OA8dV"}"` - ) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'nm-module-nested') - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `".other2_other2__dYPgz{color:red}.other3_other3__7hgUE{color:violet}.other_className__OA8dV{background:red;color:#ff0}.example_subClass__m6Tyy{background:blue}"` - ) - }) - }) + it(`should've prerendered with relevant data`, async () => { + const content = await renderViaHTTP(appPort, '/') + const $ = cheerio.load(content) + + const cssPreload = $('#nm-div') + expect(cssPreload.text()).toMatchInlineSnapshot( + `"{"message":"Why hello there"} {"subClass":"example_subClass__m6Tyy other_className__OA8dV"}"` + ) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `".other2_other2__dYPgz{color:red}.other3_other3__7hgUE{color:violet}.other_className__OA8dV{background:red;color:#ff0}.example_subClass__m6Tyy{background:blue}"` + ) + }) + } + ) }) describe('CSS Module Composes Usage (Basic)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - // This is a very bad feature. Do not use it. - const appDir = join(fixturesDir, 'composes-basic') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `".index_className__jjcZ1{background:red;color:#ff0}.index_subClass__eDzaW{background:blue}"` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + // This is a very bad feature. Do not use it. + const appDir = join(fixturesDir, 'composes-basic') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `".index_className__jjcZ1{background:red;color:#ff0}.index_subClass__eDzaW{background:blue}"` + ) + }) + } + ) }) describe('CSS Module Composes Usage (External)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - // This is a very bad feature. Do not use it. - const appDir = join(fixturesDir, 'composes-external') - - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `".other_className__eZV4M{background:red;color:#ff0}.index_subClass__eDzaW{background:blue}"` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + // This is a very bad feature. Do not use it. + const appDir = join(fixturesDir, 'composes-external') + + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `".other_className__eZV4M{background:red;color:#ff0}.index_subClass__eDzaW{background:blue}"` + ) + }) + } + ) }) describe('Dynamic Route CSS Module Usage', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'dynamic-route-module') - - let stdout - let code - let app - let appPort - - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it('should apply styles correctly', async () => { - const browser = await webdriver(appPort, '/post-1') - - const background = await browser - .elementByCss('#my-div') - .getComputedCss('background-color') - - expect(background).toMatch(/rgb(a|)\(255, 0, 0/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`"._post__home__yRmHz{background:red}"`) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'dynamic-route-module') + + let stdout + let code + let app + let appPort + + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it('should apply styles correctly', async () => { + const browser = await webdriver(appPort, '/post-1') + + const background = await browser + .elementByCss('#my-div') + .getComputedCss('background-color') + + expect(background).toMatch(/rgb(a|)\(255, 0, 0/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot(`"._post__home__yRmHz{background:red}"`) + }) + } + ) }) describe('Catch-all Route CSS Module Usage', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'catch-all-module') - - let stdout - let code - let app - let appPort - - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it('should apply styles correctly', async () => { - const browser = await webdriver(appPort, '/post-1') - - const bg = await browser - .elementByCss('#my-div') - .getComputedCss('background-color') - expect(bg).toMatch(/rgb(a|)\(255, 0, 0/) - - const fg = await browser.elementByCss('#my-div').getComputedCss('color') - expect(fg).toMatch(/rgb(a|)\(0, 128, 0/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot( - `".___post__home__e4zfx{background:red}.__55css_home__r8Rnq{color:green}"` - ) - }) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'catch-all-module') + + let stdout + let code + let app + let appPort + + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it('should apply styles correctly', async () => { + const browser = await webdriver(appPort, '/post-1') + + const bg = await browser + .elementByCss('#my-div') + .getComputedCss('background-color') + expect(bg).toMatch(/rgb(a|)\(255, 0, 0/) + + const fg = await browser.elementByCss('#my-div').getComputedCss('color') + expect(fg).toMatch(/rgb(a|)\(0, 128, 0/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchInlineSnapshot( + `".___post__home__e4zfx{background:red}.__55css_home__r8Rnq{color:green}"` + ) + }) + } + ) }) diff --git a/test/integration/css/test/basic-global-support.test.js b/test/integration/css/test/basic-global-support.test.js index fbbff6dc4cfc9..501af8474a7ed 100644 --- a/test/integration/css/test/basic-global-support.test.js +++ b/test/integration/css/test/basic-global-support.test.js @@ -6,14 +6,16 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../..', 'css-fixtures') describe('Basic Global Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'single-global') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'single-global') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -21,45 +23,52 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - expect(await readFile(join(cssFolder, cssFiles[0]), 'utf8')).toContain( - 'color:red' - ) + expect(cssFiles.length).toBe(1) + expect( + await readFile(join(cssFolder, cssFiles[0]), 'utf8') + ).toContain('color:red') + }) }) - }) - }) + } + ) }) describe('Basic Global Support with special characters in path', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'single-global-special-characters', 'a+b') - const nextConfig = new File(join(appDir, 'next.config.js')) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join( + fixturesDir, + 'single-global-special-characters', + 'a+b' + ) + const nextConfig = new File(join(appDir, 'next.config.js')) - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../../next.config.js'); module.exports = { ...config, @@ -67,45 +76,48 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - expect(await readFile(join(cssFolder, cssFiles[0]), 'utf8')).toContain( - 'color:red' - ) + expect(cssFiles.length).toBe(1) + expect( + await readFile(join(cssFolder, cssFiles[0]), 'utf8') + ).toContain('color:red') + }) }) - }) - }) + } + ) }) describe('Basic Global Support with src/ dir', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'single-global-src') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'single-global-src') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -113,45 +125,48 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - expect(await readFile(join(cssFolder, cssFiles[0]), 'utf8')).toContain( - 'color:red' - ) + expect(cssFiles.length).toBe(1) + expect( + await readFile(join(cssFolder, cssFiles[0]), 'utf8') + ).toContain('color:red') + }) }) - }) - }) + } + ) }) describe('Multi Global Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'multi-global') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'multi-global') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -159,44 +174,52 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchSnapshot() + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchSnapshot() + }) }) - }) - }) + } + ) }) describe('Nested @import() Global Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'nested-global') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'nested-global') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -204,45 +227,53 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchSnapshot() + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchSnapshot() + }) }) - }) - }) + } + ) }) // Tests css ordering describe('Multi Global Support (reversed)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'multi-global-reversed') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'multi-global-reversed') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -250,44 +281,52 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchSnapshot() + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchSnapshot() + }) }) - }) - }) + } + ) }) describe('CSS URL via `file-loader`', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'url-global') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'url-global') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -295,8 +334,63 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) + ) + }) + + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted expected files`, async () => { + const cssFolder = join(appDir, '.next/static/css') + const mediaFolder = join(appDir, '.next/static/media') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchSnapshot() + + const mediaFiles = await readdir(mediaFolder) + expect(mediaFiles.length).toBe(3) + expect( + mediaFiles + .map((fileName) => + /^(.+?)\..{8}\.(.+?)$/.exec(fileName).slice(1).join('.') + ) + .sort() + ).toMatchInlineSnapshot(` + [ + "dark.svg", + "dark2.svg", + "light.svg", + ] + `) + }) }) + } + ) +}) + +describe('CSS URL via `file-loader` and asset prefix (1)', () => { + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'url-global-asset-prefix-1') beforeAll(async () => { await remove(join(appDir, '.next')) @@ -319,7 +413,9 @@ module.exports = { expect(cssFiles.length).toBe(1) const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchSnapshot() + expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( + /^\.red-text\{color:red;background-image:url\(\/foo\/_next\/static\/media\/dark\.[a-f0-9]{8}\.svg\) url\(\/foo\/_next\/static\/media\/dark2\.[a-f0-9]{8}\.svg\)\}\.blue-text\{color:orange;font-weight:bolder;background-image:url\(\/foo\/_next\/static\/media\/light\.[a-f0-9]{8}\.svg\);color:blue\}$/ + ) const mediaFiles = await readdir(mediaFolder) expect(mediaFiles.length).toBe(3) @@ -330,109 +426,64 @@ module.exports = { ) .sort() ).toMatchInlineSnapshot(` - [ - "dark.svg", - "dark2.svg", - "light.svg", - ] - `) - }) - }) - }) -}) - -describe('CSS URL via `file-loader` and asset prefix (1)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'url-global-asset-prefix-1') - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, - }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted expected files`, async () => { - const cssFolder = join(appDir, '.next/static/css') - const mediaFolder = join(appDir, '.next/static/media') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( - /^\.red-text\{color:red;background-image:url\(\/foo\/_next\/static\/media\/dark\.[a-f0-9]{8}\.svg\) url\(\/foo\/_next\/static\/media\/dark2\.[a-f0-9]{8}\.svg\)\}\.blue-text\{color:orange;font-weight:bolder;background-image:url\(\/foo\/_next\/static\/media\/light\.[a-f0-9]{8}\.svg\);color:blue\}$/ - ) - - const mediaFiles = await readdir(mediaFolder) - expect(mediaFiles.length).toBe(3) - expect( - mediaFiles - .map((fileName) => - /^(.+?)\..{8}\.(.+?)$/.exec(fileName).slice(1).join('.') - ) - .sort() - ).toMatchInlineSnapshot(` [ "dark.svg", "dark2.svg", "light.svg", ] `) - }) - }) + }) + } + ) }) describe('CSS URL via `file-loader` and asset prefix (2)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'url-global-asset-prefix-2') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'url-global-asset-prefix-2') - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - it(`should've emitted expected files`, async () => { - const cssFolder = join(appDir, '.next/static/css') - const mediaFolder = join(appDir, '.next/static/media') + it(`should've emitted expected files`, async () => { + const cssFolder = join(appDir, '.next/static/css') + const mediaFolder = join(appDir, '.next/static/media') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( - /^\.red-text\{color:red;background-image:url\(\/foo\/_next\/static\/media\/dark\.[a-f0-9]{8}\.svg\) url\(\/foo\/_next\/static\/media\/dark2\.[a-f0-9]{8}\.svg\)\}\.blue-text\{color:orange;font-weight:bolder;background-image:url\(\/foo\/_next\/static\/media\/light\.[a-f0-9]{8}\.svg\);color:blue\}$/ - ) + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( + /^\.red-text\{color:red;background-image:url\(\/foo\/_next\/static\/media\/dark\.[a-f0-9]{8}\.svg\) url\(\/foo\/_next\/static\/media\/dark2\.[a-f0-9]{8}\.svg\)\}\.blue-text\{color:orange;font-weight:bolder;background-image:url\(\/foo\/_next\/static\/media\/light\.[a-f0-9]{8}\.svg\);color:blue\}$/ + ) - const mediaFiles = await readdir(mediaFolder) - expect(mediaFiles.length).toBe(3) - expect( - mediaFiles - .map((fileName) => - /^(.+?)\..{8}\.(.+?)$/.exec(fileName).slice(1).join('.') - ) - .sort() - ).toMatchInlineSnapshot(` + const mediaFiles = await readdir(mediaFolder) + expect(mediaFiles.length).toBe(3) + expect( + mediaFiles + .map((fileName) => + /^(.+?)\..{8}\.(.+?)$/.exec(fileName).slice(1).join('.') + ) + .sort() + ).toMatchInlineSnapshot(` [ "dark.svg", "dark2.svg", "light.svg", ] `) - }) - }) + }) + } + ) }) diff --git a/test/integration/css/test/css-and-styled-jsx.test.js b/test/integration/css/test/css-and-styled-jsx.test.js index c2959aab05aa4..041dbbafbe152 100644 --- a/test/integration/css/test/css-and-styled-jsx.test.js +++ b/test/integration/css/test/css-and-styled-jsx.test.js @@ -37,37 +37,40 @@ describe('Ordering with styled-jsx (dev)', () => { }) describe('Ordering with styled-jsx (prod)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'with-styled-jsx') + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'with-styled-jsx') - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) - it('should have the correct color (css ordering)', async () => { - const browser = await webdriver(appPort, '/') + it('should have the correct color (css ordering)', async () => { + const browser = await webdriver(appPort, '/') - const currentColor = await browser.eval( - `window.getComputedStyle(document.querySelector('.my-text')).color` - ) - expect(currentColor).toMatchInlineSnapshot(`"rgb(0, 128, 0)"`) - }) - }) + const currentColor = await browser.eval( + `window.getComputedStyle(document.querySelector('.my-text')).color` + ) + expect(currentColor).toMatchInlineSnapshot(`"rgb(0, 128, 0)"`) + }) + } + ) }) diff --git a/test/integration/css/test/css-compilation.test.js b/test/integration/css/test/css-compilation.test.js index 264161cc4fd16..3998a6299dd78 100644 --- a/test/integration/css/test/css-compilation.test.js +++ b/test/integration/css/test/css-compilation.test.js @@ -15,19 +15,23 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../..', 'css-fixtures') describe('CSS Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - describe('CSS Compilation and Prefixing', () => { - const appDir = join(fixturesDir, 'compilation-and-prefixing') - const nextConfig = new File(join(appDir, 'next.config.js')) - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + describe('CSS Compilation and Prefixing', () => { + const appDir = join(fixturesDir, 'compilation-and-prefixing') + const nextConfig = new File(join(appDir, 'next.config.js')) - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { beforeAll(async () => { - nextConfig.write( - ` + await remove(join(appDir, '.next')) + }) + + describe.each([true, false])( + `useLightnincsss(%s)`, + (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -35,71 +39,135 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) - - afterAll(async () => { - nextConfig.delete() - }) - - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, - }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've compiled and prefixed`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile( - join(cssFolder, cssFiles[0]), - 'utf8' - ) - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchSnapshot() + ) + }) + + afterAll(async () => { + nextConfig.delete() + }) + + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've compiled and prefixed`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchSnapshot() + + // Contains a source map + expect(cssContent).toMatch( + /\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\// + ) + }) + + it(`should've emitted a source map`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) + + expect(cssMapFiles.length).toBe(1) + const cssMapContent = ( + await readFile(join(cssFolder, cssMapFiles[0]), 'utf8') + ).trim() + + const { version, mappings, sourcesContent } = + JSON.parse(cssMapContent) + expect({ version, mappings, sourcesContent }).toMatchSnapshot() + }) + } + ) + }) - // Contains a source map - expect(cssContent).toMatch( - /\/\*#\s*sourceMappingURL=(.+\.map)\s*\*\// - ) + describe('React Lifecyce Order (production)', () => { + const appDir = join(fixturesDir, 'transition-react') + const nextConfig = new File(join(appDir, 'next.config.js')) + beforeAll(async () => { + await remove(join(appDir, '.next')) }) - it(`should've emitted a source map`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssMapFiles = files.filter((f) => /\.css\.map$/.test(f)) - - expect(cssMapFiles.length).toBe(1) - const cssMapContent = ( - await readFile(join(cssFolder, cssMapFiles[0]), 'utf8') - ).trim() - - const { version, mappings, sourcesContent } = - JSON.parse(cssMapContent) - expect({ version, mappings, sourcesContent }).toMatchSnapshot() - }) + describe.each([true, false])( + `useLightnincsss(%s)`, + (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` +const config = require('../next.config.js'); +module.exports = { + ...config, + experimental: { + useLightningcss: ${useLightningcss} + } +}` + ) + }) + + let appPort + let app + let code + let stdout + beforeAll(async () => { + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it('should have the correct color on mount after navigation', async () => { + let browser + try { + browser = await webdriver(appPort, '/') + + // Navigate to other: + await browser.waitForElementByCss('#link-other').click() + const text = await browser + .waitForElementByCss('#red-title') + .text() + expect(text).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) + } finally { + if (browser) { + await browser.close() + } + } + }) + } + ) }) - }) - describe('React Lifecyce Order (production)', () => { - const appDir = join(fixturesDir, 'transition-react') - const nextConfig = new File(join(appDir, 'next.config.js')) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) + describe('Has CSS in computed styles in Production', () => { + const appDir = join(fixturesDir, 'multi-page') + const nextConfig = new File(join(appDir, 'next.config.js')) - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + describe.each([true, false])( + `useLightnincsss(%s)`, + (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -107,55 +175,76 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) - - let appPort - let app - let code - let stdout - beforeAll(async () => { - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it('should have the correct color on mount after navigation', async () => { - let browser - try { - browser = await webdriver(appPort, '/') - - // Navigate to other: - await browser.waitForElementByCss('#link-other').click() - const text = await browser.waitForElementByCss('#red-title').text() - expect(text).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) - } finally { - if (browser) { - await browser.close() - } + ) + }) + + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it('should have CSS for page', async () => { + const browser = await webdriver(appPort, '/page2') + + const currentColor = await browser.eval( + `window.getComputedStyle(document.querySelector('.blue-text')).color` + ) + expect(currentColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`) + }) + + it(`should've preloaded the CSS file and injected it in `, async () => { + const content = await renderViaHTTP(appPort, '/page2') + const $ = cheerio.load(content) + + const cssPreload = $('link[rel="preload"][as="style"]') + expect(cssPreload.length).toBe(1) + expect(cssPreload.attr('href')).toMatch( + /^\/_next\/static\/css\/.*\.css$/ + ) + + const cssSheet = $('link[rel="stylesheet"]') + expect(cssSheet.length).toBe(1) + expect(cssSheet.attr('href')).toMatch( + /^\/_next\/static\/css\/.*\.css$/ + ) + + /* ensure CSS preloaded first */ + const allPreloads = [].slice.call($('link[rel="preload"]')) + const styleIndexes = allPreloads.flatMap((p, i) => + p.attribs.as === 'style' ? i : [] + ) + expect(styleIndexes).toEqual([0]) + }) } - }) + ) }) - }) - describe('Has CSS in computed styles in Production', () => { - const appDir = join(fixturesDir, 'multi-page') - const nextConfig = new File(join(appDir, 'next.config.js')) + describe('Good CSS Import from node_modules', () => { + const appDir = join(fixturesDir, 'npm-import') + const nextConfig = new File(join(appDir, 'next.config.js')) - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + describe.each([true, false])( + `useLightnincsss(%s)`, + (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -163,73 +252,50 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it('should have CSS for page', async () => { - const browser = await webdriver(appPort, '/page2') - - const currentColor = await browser.eval( - `window.getComputedStyle(document.querySelector('.blue-text')).color` - ) - expect(currentColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`) - }) - - it(`should've preloaded the CSS file and injected it in `, async () => { - const content = await renderViaHTTP(appPort, '/page2') - const $ = cheerio.load(content) - - const cssPreload = $('link[rel="preload"][as="style"]') - expect(cssPreload.length).toBe(1) - expect(cssPreload.attr('href')).toMatch( - /^\/_next\/static\/css\/.*\.css$/ - ) - - const cssSheet = $('link[rel="stylesheet"]') - expect(cssSheet.length).toBe(1) - expect(cssSheet.attr('href')).toMatch( - /^\/_next\/static\/css\/.*\.css$/ - ) - - /* ensure CSS preloaded first */ - const allPreloads = [].slice.call($('link[rel="preload"]')) - const styleIndexes = allPreloads.flatMap((p, i) => - p.attribs.as === 'style' ? i : [] - ) - expect(styleIndexes).toEqual([0]) - }) + ) + }) + + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( + /nprogress/ + ) + }) + } + ) }) - }) - describe('Good CSS Import from node_modules', () => { - const appDir = join(fixturesDir, 'npm-import') - const nextConfig = new File(join(appDir, 'next.config.js')) + describe('Good Nested CSS Import from node_modules', () => { + const appDir = join(fixturesDir, 'npm-import-nested') + const nextConfig = new File(join(appDir, 'next.config.js')) - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + describe.each([true, false])( + `useLightnincsss(%s)`, + (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -237,41 +303,49 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) - - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, - }) - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') - - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) - - expect(cssFiles.length).toBe(1) - const cssContent = await readFile( - join(cssFolder, cssFiles[0]), - 'utf8' - ) - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( - /nprogress/ - ) - }) + ) + }) + + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + + it('should compile successfully', async () => { + const { code, stdout } = await nextBuild(appDir, [], { + stdout: true, + }) + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) + + it(`should've emitted a single CSS file`, async () => { + const cssFolder = join(appDir, '.next/static/css') + + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) + + expect(cssFiles.length).toBe(1) + const cssContent = await readFile( + join(cssFolder, cssFiles[0]), + 'utf8' + ) + expect( + cssContent.replace(/\/\*.*?\*\//g, '').trim() + ).toMatchSnapshot() + }) + } + ) }) - }) + } + ) +}) - describe('Good Nested CSS Import from node_modules', () => { - const appDir = join(fixturesDir, 'npm-import-nested') +// https://github.com/vercel/next.js/issues/15468 +describe('CSS Property Ordering', () => { + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'next-issue-15468') const nextConfig = new File(join(appDir, 'next.config.js')) describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { @@ -288,92 +362,41 @@ module.exports = { ) }) + let appPort + let app + let stdout + let code beforeAll(async () => { await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) }) - it('should compile successfully', async () => { - const { code, stdout } = await nextBuild(appDir, [], { - stdout: true, - }) + it('should have compiled successfully', () => { expect(code).toBe(0) expect(stdout).toMatch(/Compiled successfully/) }) - it(`should've emitted a single CSS file`, async () => { - const cssFolder = join(appDir, '.next/static/css') + it('should have the border width (property ordering)', async () => { + const browser = await webdriver(appPort, '/') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + const width1 = await browser.eval( + `window.getComputedStyle(document.querySelector('.test1')).borderWidth` + ) + expect(width1).toMatchInlineSnapshot(`"0px"`) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile( - join(cssFolder, cssFiles[0]), - 'utf8' + const width2 = await browser.eval( + `window.getComputedStyle(document.querySelector('.test2')).borderWidth` ) - expect( - cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchSnapshot() + expect(width2).toMatchInlineSnapshot(`"5px"`) }) }) - }) - }) -}) - -// https://github.com/vercel/next.js/issues/15468 -describe('CSS Property Ordering', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'next-issue-15468') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` -const config = require('../next.config.js'); -module.exports = { - ...config, - experimental: { - useLightningcss: ${useLightningcss} - } -}` - ) - }) - - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) - - it('should have the border width (property ordering)', async () => { - const browser = await webdriver(appPort, '/') - - const width1 = await browser.eval( - `window.getComputedStyle(document.querySelector('.test1')).borderWidth` - ) - expect(width1).toMatchInlineSnapshot(`"0px"`) - - const width2 = await browser.eval( - `window.getComputedStyle(document.querySelector('.test2')).borderWidth` - ) - expect(width2).toMatchInlineSnapshot(`"5px"`) - }) - }) - }) + } + ) }) diff --git a/test/integration/css/test/css-modules.test.js b/test/integration/css/test/css-modules.test.js index 4d22bb31a8f33..90b19b8824843 100644 --- a/test/integration/css/test/css-modules.test.js +++ b/test/integration/css/test/css-modules.test.js @@ -133,62 +133,69 @@ useLightningcss: ${useLightningcss} }) describe('should handle unresolved files gracefully', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const workDir = join(fixturesDir, 'unresolved-css-url') - - it('should build correctly', async () => { - await remove(join(workDir, '.next')) - const { code } = await nextBuild(workDir) - expect(code).toBe(0) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const workDir = join(fixturesDir, 'unresolved-css-url') + + it('should build correctly', async () => { + await remove(join(workDir, '.next')) + const { code } = await nextBuild(workDir) + expect(code).toBe(0) + }) - it('should have correct file references in CSS output', async () => { - const cssFiles = await readdir(join(workDir, '.next/static/css')) + it('should have correct file references in CSS output', async () => { + const cssFiles = await readdir(join(workDir, '.next/static/css')) - for (const file of cssFiles) { - if (file.endsWith('.css.map')) continue + for (const file of cssFiles) { + if (file.endsWith('.css.map')) continue - const content = await readFile( - join(workDir, '.next/static/css', file), - 'utf8' - ) - console.log(file, content) + const content = await readFile( + join(workDir, '.next/static/css', file), + 'utf8' + ) + console.log(file, content) - // if it is the combined global CSS file there are double the expected - // results - const howMany = content.includes('p{') || content.includes('p,') ? 2 : 1 + // if it is the combined global CSS file there are double the expected + // results + const howMany = + content.includes('p{') || content.includes('p,') ? 2 : 1 - expect(content.match(/\(\/vercel\.svg/g).length).toBe(howMany) - // expect(content.match(/\(vercel\.svg/g).length).toBe(howMany) - expect(content.match(/\(\/_next\/static\/media/g).length).toBe(1) - expect(content.match(/\(https:\/\//g).length).toBe(howMany) - } - }) - }) + expect(content.match(/\(\/vercel\.svg/g).length).toBe(howMany) + // expect(content.match(/\(vercel\.svg/g).length).toBe(howMany) + expect(content.match(/\(\/_next\/static\/media/g).length).toBe(1) + expect(content.match(/\(https:\/\//g).length).toBe(howMany) + } + }) + } + ) }) describe('Data URLs', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const workDir = join(fixturesDir, 'data-url') - - it('should compile successfully', async () => { - await remove(join(workDir, '.next')) - const { code } = await nextBuild(workDir) - expect(code).toBe(0) - }) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const workDir = join(fixturesDir, 'data-url') + + it('should compile successfully', async () => { + await remove(join(workDir, '.next')) + const { code } = await nextBuild(workDir) + expect(code).toBe(0) + }) - it('should have emitted expected files', async () => { - const cssFolder = join(workDir, '.next/static/css') - const files = await readdir(cssFolder) - const cssFiles = files.filter((f) => /\.css$/.test(f)) + it('should have emitted expected files', async () => { + const cssFolder = join(workDir, '.next/static/css') + const files = await readdir(cssFolder) + const cssFiles = files.filter((f) => /\.css$/.test(f)) - expect(cssFiles.length).toBe(1) - const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') - expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( - /background:url\("data:[^"]+"\)/ - ) - }) - }) + expect(cssFiles.length).toBe(1) + const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8') + expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatch( + /background:url\("data:[^"]+"\)/ + ) + }) + } + ) }) describe('Ordering with Global CSS and Modules (dev)', () => { @@ -291,14 +298,16 @@ useLightningcss: ${useLightningcss} }) describe('Ordering with Global CSS and Modules (prod)', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - const appDir = join(fixturesDir, 'global-and-module-ordering') - const nextConfig = new File(join(appDir, 'next.config.js')) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + const appDir = join(fixturesDir, 'global-and-module-ordering') + const nextConfig = new File(join(appDir, 'next.config.js')) - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -306,40 +315,41 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) + ) + }) - let appPort - let app - let stdout - let code - beforeAll(async () => { - await remove(join(appDir, '.next')) - ;({ code, stdout } = await nextBuild(appDir, [], { - stdout: true, - })) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) + let appPort + let app + let stdout + let code + beforeAll(async () => { + await remove(join(appDir, '.next')) + ;({ code, stdout } = await nextBuild(appDir, [], { + stdout: true, + })) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - it('should have compiled successfully', () => { - expect(code).toBe(0) - expect(stdout).toMatch(/Compiled successfully/) - }) + it('should have compiled successfully', () => { + expect(code).toBe(0) + expect(stdout).toMatch(/Compiled successfully/) + }) - it('should have the correct color (css ordering)', async () => { - const browser = await webdriver(appPort, '/') + it('should have the correct color (css ordering)', async () => { + const browser = await webdriver(appPort, '/') - const currentColor = await browser.eval( - `window.getComputedStyle(document.querySelector('#blueText')).color` - ) - expect(currentColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`) + const currentColor = await browser.eval( + `window.getComputedStyle(document.querySelector('#blueText')).color` + ) + expect(currentColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`) + }) }) - }) - }) + } + ) }) // https://github.com/vercel/next.js/issues/12445 @@ -499,21 +509,24 @@ module.exports = { }) } - describe('Development Mode', () => { - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) + ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( + 'development mode', + () => { + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) - tests(true) - }) - ;(process.env.TURBOPACK ? describe.skip : describe)( + tests(true) + } + ) + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( 'production mode', () => { beforeAll(async () => { diff --git a/test/integration/css/test/css-rendering.test.js b/test/integration/css/test/css-rendering.test.js index de3a27d0c5033..c9359eea9848a 100644 --- a/test/integration/css/test/css-rendering.test.js +++ b/test/integration/css/test/css-rendering.test.js @@ -15,15 +15,19 @@ import { join } from 'path' const fixturesDir = join(__dirname, '../..', 'css-fixtures') describe('CSS Support', () => { - ;(process.env.TURBOPACK ? describe.skip : describe)('production mode', () => { - describe('CSS Import from node_modules', () => { - const appDir = join(fixturesDir, 'npm-import-bad') - const nextConfig = new File(join(appDir, 'next.config.js')) - - describe.each([true, false])(`useLightnincsss(%s)`, (useLightningcss) => { - beforeAll(async () => { - nextConfig.write( - ` + ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( + 'production mode', + () => { + describe('CSS Import from node_modules', () => { + const appDir = join(fixturesDir, 'npm-import-bad') + const nextConfig = new File(join(appDir, 'next.config.js')) + + describe.each([true, false])( + `useLightnincsss(%s)`, + (useLightningcss) => { + beforeAll(async () => { + nextConfig.write( + ` const config = require('../next.config.js'); module.exports = { ...config, @@ -31,22 +35,28 @@ module.exports = { useLightningcss: ${useLightningcss} } }` - ) - }) - beforeAll(async () => { - await remove(join(appDir, '.next')) - }) - - it('should fail the build', async () => { - const { code, stderr } = await nextBuild(appDir, [], { stderr: true }) - - expect(code).toBe(0) - expect(stderr).not.toMatch(/Can't resolve '[^']*?nprogress[^']*?'/) - expect(stderr).not.toMatch(/Build error occurred/) - }) + ) + }) + beforeAll(async () => { + await remove(join(appDir, '.next')) + }) + + it('should fail the build', async () => { + const { code, stderr } = await nextBuild(appDir, [], { + stderr: true, + }) + + expect(code).toBe(0) + expect(stderr).not.toMatch( + /Can't resolve '[^']*?nprogress[^']*?'/ + ) + expect(stderr).not.toMatch(/Build error occurred/) + }) + } + ) }) - }) - }) + } + ) // https://github.com/vercel/next.js/issues/18557 describe('CSS page transition inject