mock-service-cli 4.11.0 → 4.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/runtime.js CHANGED
@@ -74,7 +74,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
74
74
  `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim();exports2.IP_V6_REGEX_OBJECT=new RegExp(`^${IP_V6_REGEX}$`)}});var require_canonicalDomain=__commonJS({"node_modules/tough-cookie/dist/cookie/canonicalDomain.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.canonicalDomain=canonicalDomain;var constants_1=require_constants();function domainToASCII(domain){return new URL(`http://${domain}`).hostname}function canonicalDomain(domainName){if(domainName==null)return;let str=domainName.trim().replace(/^\./,"");return constants_1.IP_V6_REGEX_OBJECT.test(str)?(str.startsWith("[")||(str="["+str),str.endsWith("]")||(str=str+"]"),domainToASCII(str).slice(1,-1)):/[^\u0001-\u007f]/.test(str)?domainToASCII(str):str.toLowerCase()}}});var require_formatDate=__commonJS({"node_modules/tough-cookie/dist/cookie/formatDate.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.formatDate=formatDate;function formatDate(date){return date.toUTCString()}}});var require_parseDate=__commonJS({"node_modules/tough-cookie/dist/cookie/parseDate.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.parseDate=parseDate;var DATE_DELIM=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/,MONTH_TO_NUM={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};function parseDigits(token,minDigits,maxDigits,trailingOK){let count=0;for(;count<token.length;){let c=token.charCodeAt(count);if(c<=47||c>=58)break;count++}if(!(count<minDigits||count>maxDigits)&&!(!trailingOK&&count!=token.length))return parseInt(token.slice(0,count),10)}function parseTime(token){let parts=token.split(":"),result=[0,0,0];if(parts.length===3){for(let i=0;i<3;i++){let trailingOK=i==2,numPart=parts[i];if(numPart===void 0)return;let num=parseDigits(numPart,1,2,trailingOK);if(num===void 0)return;result[i]=num}return result}}function parseMonth(token){switch(token=String(token).slice(0,3).toLowerCase(),token){case"jan":return MONTH_TO_NUM.jan;case"feb":return MONTH_TO_NUM.feb;case"mar":return MONTH_TO_NUM.mar;case"apr":return MONTH_TO_NUM.apr;case"may":return MONTH_TO_NUM.may;case"jun":return MONTH_TO_NUM.jun;case"jul":return MONTH_TO_NUM.jul;case"aug":return MONTH_TO_NUM.aug;case"sep":return MONTH_TO_NUM.sep;case"oct":return MONTH_TO_NUM.oct;case"nov":return MONTH_TO_NUM.nov;case"dec":return MONTH_TO_NUM.dec;default:return}}function parseDate(cookieDate){if(!cookieDate)return;let tokens=cookieDate.split(DATE_DELIM),hour,minute,second,dayOfMonth,month,year;for(let i=0;i<tokens.length;i++){let token=(tokens[i]??"").trim();if(token.length){if(second===void 0){let result=parseTime(token);if(result){hour=result[0],minute=result[1],second=result[2];continue}}if(dayOfMonth===void 0){let result=parseDigits(token,1,2,!0);if(result!==void 0){dayOfMonth=result;continue}}if(month===void 0){let result=parseMonth(token);if(result!==void 0){month=result;continue}}if(year===void 0){let result=parseDigits(token,2,4,!0);result!==void 0&&(year=result,year>=70&&year<=99?year+=1900:year>=0&&year<=69&&(year+=2e3))}}}if(!(dayOfMonth===void 0||month===void 0||year===void 0||hour===void 0||minute===void 0||second===void 0||dayOfMonth<1||dayOfMonth>31||year<1601||hour>23||minute>59||second>59))return new Date(Date.UTC(year,month,dayOfMonth,hour,minute,second))}}});var require_cookie2=__commonJS({"node_modules/tough-cookie/dist/cookie/cookie.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.Cookie=void 0;var getPublicSuffix_1=require_getPublicSuffix(),validators=__importStar(require_validators()),utils_1=require_utils3(),formatDate_1=require_formatDate(),parseDate_1=require_parseDate(),canonicalDomain_1=require_canonicalDomain(),COOKIE_OCTETS=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/,PATH_VALUE=/[\x20-\x3A\x3C-\x7E]+/,CONTROL_CHARS=/[\x00-\x1F]/,TERMINATORS=[`
75
75
  `,"\r","\0"];function trimTerminator(str){if(validators.isEmptyString(str))return str;for(let t=0;t<TERMINATORS.length;t++){let terminator=TERMINATORS[t],terminatorIdx=terminator?str.indexOf(terminator):-1;terminatorIdx!==-1&&(str=str.slice(0,terminatorIdx))}return str}function parseCookiePair(cookiePair,looseMode){cookiePair=trimTerminator(cookiePair);let firstEq=cookiePair.indexOf("=");if(looseMode)firstEq===0&&(cookiePair=cookiePair.substring(1),firstEq=cookiePair.indexOf("="));else if(firstEq<=0)return;let cookieName,cookieValue;if(firstEq<=0?(cookieName="",cookieValue=cookiePair.trim()):(cookieName=cookiePair.slice(0,firstEq).trim(),cookieValue=cookiePair.slice(firstEq+1).trim()),CONTROL_CHARS.test(cookieName)||CONTROL_CHARS.test(cookieValue))return;let c=new Cookie;return c.key=cookieName,c.value=cookieValue,c}function parse(str,options){if(validators.isEmptyString(str)||!validators.isString(str))return;str=str.trim();let firstSemi=str.indexOf(";"),cookiePair=firstSemi===-1?str:str.slice(0,firstSemi),c=parseCookiePair(cookiePair,options?.loose??!1);if(!c)return;if(firstSemi===-1)return c;let unparsed=str.slice(firstSemi+1).trim();if(unparsed.length===0)return c;let cookie_avs=unparsed.split(";");for(;cookie_avs.length;){let av=(cookie_avs.shift()??"").trim();if(av.length===0)continue;let av_sep=av.indexOf("="),av_key,av_value;switch(av_sep===-1?(av_key=av,av_value=null):(av_key=av.slice(0,av_sep),av_value=av.slice(av_sep+1)),av_key=av_key.trim().toLowerCase(),av_value&&(av_value=av_value.trim()),av_key){case"expires":if(av_value){let exp=(0,parseDate_1.parseDate)(av_value);exp&&(c.expires=exp)}break;case"max-age":if(av_value&&/^-?[0-9]+$/.test(av_value)){let delta=parseInt(av_value,10);c.setMaxAge(delta)}break;case"domain":if(av_value){let domain=av_value.trim().replace(/^\./,"");domain&&(c.domain=domain.toLowerCase())}break;case"path":c.path=av_value&&av_value[0]==="/"?av_value:null;break;case"secure":c.secure=!0;break;case"httponly":c.httpOnly=!0;break;case"samesite":switch(av_value?av_value.toLowerCase():""){case"strict":c.sameSite="strict";break;case"lax":c.sameSite="lax";break;case"none":c.sameSite="none";break;default:c.sameSite=void 0;break}break;default:c.extensions=c.extensions||[],c.extensions.push(av);break}}return c}function fromJSON(str){if(!str||validators.isEmptyString(str))return;let obj;if(typeof str=="string")try{obj=JSON.parse(str)}catch{return}else obj=str;let c=new Cookie;return Cookie.serializableProperties.forEach(prop=>{if(obj&&typeof obj=="object"&&(0,utils_1.inOperator)(prop,obj)){let val=obj[prop];if(val===void 0||(0,utils_1.inOperator)(prop,cookieDefaults)&&val===cookieDefaults[prop])return;switch(prop){case"key":case"value":case"sameSite":typeof val=="string"&&(c[prop]=val);break;case"expires":case"creation":case"lastAccessed":typeof val=="number"||typeof val=="string"||val instanceof Date?c[prop]=obj[prop]=="Infinity"?"Infinity":new Date(val):val===null&&(c[prop]=null);break;case"maxAge":(typeof val=="number"||val==="Infinity"||val==="-Infinity")&&(c[prop]=val);break;case"domain":case"path":(typeof val=="string"||val===null)&&(c[prop]=val);break;case"secure":case"httpOnly":typeof val=="boolean"&&(c[prop]=val);break;case"extensions":Array.isArray(val)&&val.every(item=>typeof item=="string")&&(c[prop]=val);break;case"hostOnly":case"pathIsDefault":(typeof val=="boolean"||val===null)&&(c[prop]=val);break}}}),c}var cookieDefaults={key:"",value:"",expires:"Infinity",maxAge:null,domain:null,path:null,secure:!1,httpOnly:!1,extensions:null,hostOnly:null,pathIsDefault:null,creation:null,lastAccessed:null,sameSite:void 0},Cookie=class _Cookie{constructor(options={}){this.key=options.key??cookieDefaults.key,this.value=options.value??cookieDefaults.value,this.expires=options.expires??cookieDefaults.expires,this.maxAge=options.maxAge??cookieDefaults.maxAge,this.domain=options.domain??cookieDefaults.domain,this.path=options.path??cookieDefaults.path,this.secure=options.secure??cookieDefaults.secure,this.httpOnly=options.httpOnly??cookieDefaults.httpOnly,this.extensions=options.extensions??cookieDefaults.extensions,this.creation=options.creation??cookieDefaults.creation,this.hostOnly=options.hostOnly??cookieDefaults.hostOnly,this.pathIsDefault=options.pathIsDefault??cookieDefaults.pathIsDefault,this.lastAccessed=options.lastAccessed??cookieDefaults.lastAccessed,this.sameSite=options.sameSite??cookieDefaults.sameSite,this.creation=options.creation??new Date,Object.defineProperty(this,"creationIndex",{configurable:!1,enumerable:!1,writable:!0,value:++_Cookie.cookiesCreated}),this.creationIndex=_Cookie.cookiesCreated}[Symbol.for("nodejs.util.inspect.custom")](){let now=Date.now(),hostOnly=this.hostOnly!=null?this.hostOnly.toString():"?",createAge=this.creation&&this.creation!=="Infinity"?`${String(now-this.creation.getTime())}ms`:"?",accessAge=this.lastAccessed&&this.lastAccessed!=="Infinity"?`${String(now-this.lastAccessed.getTime())}ms`:"?";return`Cookie="${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}"`}toJSON(){let obj={};for(let prop of _Cookie.serializableProperties){let val=this[prop];if(val!==cookieDefaults[prop])switch(prop){case"key":case"value":case"sameSite":typeof val=="string"&&(obj[prop]=val);break;case"expires":case"creation":case"lastAccessed":typeof val=="number"||typeof val=="string"||val instanceof Date?obj[prop]=val=="Infinity"?"Infinity":new Date(val).toISOString():val===null&&(obj[prop]=null);break;case"maxAge":(typeof val=="number"||val==="Infinity"||val==="-Infinity")&&(obj[prop]=val);break;case"domain":case"path":(typeof val=="string"||val===null)&&(obj[prop]=val);break;case"secure":case"httpOnly":typeof val=="boolean"&&(obj[prop]=val);break;case"extensions":Array.isArray(val)&&(obj[prop]=val);break;case"hostOnly":case"pathIsDefault":(typeof val=="boolean"||val===null)&&(obj[prop]=val);break}}return obj}clone(){return fromJSON(this.toJSON())}validate(){if(!this.value||!COOKIE_OCTETS.test(this.value)||this.expires!="Infinity"&&!(this.expires instanceof Date)&&!(0,parseDate_1.parseDate)(this.expires)||this.maxAge!=null&&this.maxAge!=="Infinity"&&(this.maxAge==="-Infinity"||this.maxAge<=0)||this.path!=null&&!PATH_VALUE.test(this.path))return!1;let cdomain=this.cdomain();return!(cdomain&&(cdomain.match(/\.$/)||(0,getPublicSuffix_1.getPublicSuffix)(cdomain)==null))}setExpires(exp){exp instanceof Date?this.expires=exp:this.expires=(0,parseDate_1.parseDate)(exp)||"Infinity"}setMaxAge(age){age===1/0?this.maxAge="Infinity":age===-1/0?this.maxAge="-Infinity":this.maxAge=age}cookieString(){let val=this.value||"";return this.key?`${this.key}=${val}`:val}toString(){let str=this.cookieString();return this.expires!="Infinity"&&this.expires instanceof Date&&(str+=`; Expires=${(0,formatDate_1.formatDate)(this.expires)}`),this.maxAge!=null&&this.maxAge!=1/0&&(str+=`; Max-Age=${String(this.maxAge)}`),this.domain&&!this.hostOnly&&(str+=`; Domain=${this.domain}`),this.path&&(str+=`; Path=${this.path}`),this.secure&&(str+="; Secure"),this.httpOnly&&(str+="; HttpOnly"),this.sameSite&&this.sameSite!=="none"&&(this.sameSite.toLowerCase()===_Cookie.sameSiteCanonical.lax.toLowerCase()?str+=`; SameSite=${_Cookie.sameSiteCanonical.lax}`:this.sameSite.toLowerCase()===_Cookie.sameSiteCanonical.strict.toLowerCase()?str+=`; SameSite=${_Cookie.sameSiteCanonical.strict}`:str+=`; SameSite=${this.sameSite}`),this.extensions&&this.extensions.forEach(ext=>{str+=`; ${ext}`}),str}TTL(now=Date.now()){if(this.maxAge!=null&&typeof this.maxAge=="number")return this.maxAge<=0?0:this.maxAge*1e3;let expires=this.expires;return expires==="Infinity"?1/0:(expires?.getTime()??now)-(now||Date.now())}expiryTime(now){if(this.maxAge!=null){let relativeTo=now||this.lastAccessed||new Date,maxAge=typeof this.maxAge=="number"?this.maxAge:-1/0,age=maxAge<=0?-1/0:maxAge*1e3;return relativeTo==="Infinity"?1/0:relativeTo.getTime()+age}return this.expires=="Infinity"?1/0:this.expires?this.expires.getTime():void 0}expiryDate(now){let millisec=this.expiryTime(now);return millisec==1/0?new Date(2147483647e3):millisec==-1/0?new Date(0):millisec==null?void 0:new Date(millisec)}isPersistent(){return this.maxAge!=null||this.expires!="Infinity"}canonicalizedDomain(){return(0,canonicalDomain_1.canonicalDomain)(this.domain)}cdomain(){return(0,canonicalDomain_1.canonicalDomain)(this.domain)}static parse(str,options){return parse(str,options)}static fromJSON(str){return fromJSON(str)}};exports2.Cookie=Cookie;Cookie.cookiesCreated=0;Cookie.sameSiteLevel={strict:3,lax:2,none:1};Cookie.sameSiteCanonical={strict:"Strict",lax:"Lax"};Cookie.serializableProperties=["key","value","expires","maxAge","domain","path","secure","httpOnly","extensions","hostOnly","pathIsDefault","creation","lastAccessed","sameSite"]}});var require_cookieCompare=__commonJS({"node_modules/tough-cookie/dist/cookie/cookieCompare.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.cookieCompare=cookieCompare;var MAX_TIME=2147483647e3;function cookieCompare(a,b){let cmp,aPathLen=a.path?a.path.length:0;if(cmp=(b.path?b.path.length:0)-aPathLen,cmp!==0)return cmp;let aTime=a.creation&&a.creation instanceof Date?a.creation.getTime():MAX_TIME,bTime=b.creation&&b.creation instanceof Date?b.creation.getTime():MAX_TIME;return cmp=aTime-bTime,cmp!==0||(cmp=(a.creationIndex||0)-(b.creationIndex||0)),cmp}}});var require_defaultPath=__commonJS({"node_modules/tough-cookie/dist/cookie/defaultPath.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.defaultPath=defaultPath;function defaultPath(path){if(!path||path.slice(0,1)!=="/")return"/";if(path==="/")return path;let rightSlash=path.lastIndexOf("/");return rightSlash===0?"/":path.slice(0,rightSlash)}}});var require_domainMatch=__commonJS({"node_modules/tough-cookie/dist/cookie/domainMatch.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.domainMatch=domainMatch;var canonicalDomain_1=require_canonicalDomain(),IP_REGEX_LOWERCASE=/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/;function domainMatch(domain,cookieDomain,canonicalize){if(domain==null||cookieDomain==null)return;let _str,_domStr;if(canonicalize!==!1?(_str=(0,canonicalDomain_1.canonicalDomain)(domain),_domStr=(0,canonicalDomain_1.canonicalDomain)(cookieDomain)):(_str=domain,_domStr=cookieDomain),_str==null||_domStr==null)return;if(_str==_domStr)return!0;let idx=_str.lastIndexOf(_domStr);return idx<=0||_str.length!==_domStr.length+idx||_str.substring(idx-1,idx)!=="."?!1:!IP_REGEX_LOWERCASE.test(_str)}}});var require_cookieJar=__commonJS({"node_modules/tough-cookie/dist/cookie/cookieJar.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.CookieJar=void 0;var getPublicSuffix_1=require_getPublicSuffix(),validators=__importStar(require_validators()),validators_1=require_validators(),store_1=require_store(),memstore_1=require_memstore(),pathMatch_1=require_pathMatch(),cookie_1=require_cookie2(),utils_1=require_utils3(),canonicalDomain_1=require_canonicalDomain(),constants_1=require_constants(),defaultPath_1=require_defaultPath(),domainMatch_1=require_domainMatch(),cookieCompare_1=require_cookieCompare(),version_1=require_version(),defaultSetCookieOptions={loose:!1,sameSiteContext:void 0,ignoreError:!1,http:!0},defaultGetCookieOptions={http:!0,expire:!0,allPaths:!1,sameSiteContext:void 0,sort:void 0},SAME_SITE_CONTEXT_VAL_ERR='Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';function getCookieContext(url){if(url&&typeof url=="object"&&"hostname"in url&&typeof url.hostname=="string"&&"pathname"in url&&typeof url.pathname=="string"&&"protocol"in url&&typeof url.protocol=="string")return{hostname:url.hostname,pathname:url.pathname,protocol:url.protocol};if(typeof url=="string")try{return new URL(decodeURI(url))}catch{return new URL(url)}else throw new validators_1.ParameterError("`url` argument is not a string or URL.")}function checkSameSiteContext(value){let context=String(value).toLowerCase();if(context==="none"||context==="lax"||context==="strict")return context}function isSecurePrefixConditionMet(cookie){return!(typeof cookie.key=="string"&&cookie.key.startsWith("__Secure-"))||cookie.secure}function isHostPrefixConditionMet(cookie){return!(typeof cookie.key=="string"&&cookie.key.startsWith("__Host-"))||!!(cookie.secure&&cookie.hostOnly&&cookie.path!=null&&cookie.path==="/")}function getNormalizedPrefixSecurity(prefixSecurity){let normalizedPrefixSecurity=prefixSecurity.toLowerCase();switch(normalizedPrefixSecurity){case constants_1.PrefixSecurityEnum.STRICT:case constants_1.PrefixSecurityEnum.SILENT:case constants_1.PrefixSecurityEnum.DISABLED:return normalizedPrefixSecurity;default:return constants_1.PrefixSecurityEnum.SILENT}}var CookieJar=class _CookieJar{constructor(store,options){typeof options=="boolean"&&(options={rejectPublicSuffixes:options}),this.rejectPublicSuffixes=options?.rejectPublicSuffixes??!0,this.enableLooseMode=options?.looseMode??!1,this.allowSpecialUseDomain=options?.allowSpecialUseDomain??!0,this.prefixSecurity=getNormalizedPrefixSecurity(options?.prefixSecurity??"silent"),this.store=store??new memstore_1.MemoryCookieStore}callSync(fn){if(!this.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");let syncErr=null,syncResult;try{fn.call(this,(error,result)=>{syncErr=error,syncResult=result})}catch(err){syncErr=err}if(syncErr)throw syncErr;return syncResult}setCookie(cookie,url,options,callback){typeof options=="function"&&(callback=options,options=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback,context;try{if(typeof url=="string"&&validators.validate(validators.isNonEmptyString(url),callback,(0,utils_1.safeToString)(options)),context=getCookieContext(url),typeof url=="function")return promiseCallback.reject(new Error("No URL was specified"));if(typeof options=="function"&&(options=defaultSetCookieOptions),validators.validate(typeof cb=="function",cb),!validators.isNonEmptyString(cookie)&&!validators.isObject(cookie)&&cookie instanceof String&&cookie.length==0)return promiseCallback.resolve(void 0)}catch(err){return promiseCallback.reject(err)}let host=(0,canonicalDomain_1.canonicalDomain)(context.hostname)??null,loose=options?.loose||this.enableLooseMode,sameSiteContext=null;if(options?.sameSiteContext&&(sameSiteContext=checkSameSiteContext(options.sameSiteContext),!sameSiteContext))return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));if(typeof cookie=="string"||cookie instanceof String){let parsedCookie=cookie_1.Cookie.parse(cookie.toString(),{loose});if(!parsedCookie){let err=new Error("Cookie failed to parse");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}cookie=parsedCookie}else if(!(cookie instanceof cookie_1.Cookie)){let err=new Error("First argument to setCookie must be a Cookie object or string");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}let now=options?.now||new Date;if(this.rejectPublicSuffixes&&cookie.domain)try{let cdomain=cookie.cdomain();if((typeof cdomain=="string"?(0,getPublicSuffix_1.getPublicSuffix)(cdomain,{allowSpecialUseDomain:this.allowSpecialUseDomain,ignoreError:options?.ignoreError}):null)==null&&!constants_1.IP_V6_REGEX_OBJECT.test(cookie.domain)){let err=new Error("Cookie has domain set to a public suffix");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}}catch(err){return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}if(cookie.domain){if(!(0,domainMatch_1.domainMatch)(host??void 0,cookie.cdomain()??void 0,!1)){let err=new Error(`Cookie not in this host's domain. Cookie:${cookie.cdomain()??"null"} Request:${host??"null"}`);return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}cookie.hostOnly==null&&(cookie.hostOnly=!1)}else cookie.hostOnly=!0,cookie.domain=host;if((!cookie.path||cookie.path[0]!=="/")&&(cookie.path=(0,defaultPath_1.defaultPath)(context.pathname),cookie.pathIsDefault=!0),options?.http===!1&&cookie.httpOnly){let err=new Error("Cookie is HttpOnly and this isn't an HTTP API");return options.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}if(cookie.sameSite!=="none"&&cookie.sameSite!==void 0&&sameSiteContext&&sameSiteContext==="none"){let err=new Error("Cookie is SameSite but this is a cross-origin request");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}let ignoreErrorForPrefixSecurity=this.prefixSecurity===constants_1.PrefixSecurityEnum.SILENT;if(!(this.prefixSecurity===constants_1.PrefixSecurityEnum.DISABLED)){let errorFound=!1,errorMsg;if(isSecurePrefixConditionMet(cookie)?isHostPrefixConditionMet(cookie)||(errorFound=!0,errorMsg="Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'"):(errorFound=!0,errorMsg="Cookie has __Secure prefix but Secure attribute is not set"),errorFound)return options?.ignoreError||ignoreErrorForPrefixSecurity?promiseCallback.resolve(void 0):promiseCallback.reject(new Error(errorMsg))}let store=this.store;store.updateCookie||(store.updateCookie=async function(_oldCookie,newCookie,cb2){return this.putCookie(newCookie).then(()=>cb2?.(null),error=>cb2?.(error))});let withCookie=function(err,oldCookie){if(err){cb(err);return}let next=function(err2){err2?cb(err2):typeof cookie=="string"?cb(null,void 0):cb(null,cookie)};if(oldCookie){if(options&&"http"in options&&options.http===!1&&oldCookie.httpOnly){err=new Error("old Cookie is HttpOnly and this isn't an HTTP API"),options.ignoreError?cb(null,void 0):cb(err);return}cookie instanceof cookie_1.Cookie&&(cookie.creation=oldCookie.creation,cookie.creationIndex=oldCookie.creationIndex,cookie.lastAccessed=now,store.updateCookie(oldCookie,cookie,next))}else cookie instanceof cookie_1.Cookie&&(cookie.creation=cookie.lastAccessed=now,store.putCookie(cookie,next))};return store.findCookie(cookie.domain,cookie.path,cookie.key,withCookie),promiseCallback.promise}setCookieSync(cookie,url,options){let setCookieFn=options?this.setCookie.bind(this,cookie,url,options):this.setCookie.bind(this,cookie,url);return this.callSync(setCookieFn)}getCookies(url,options,callback){typeof options=="function"?(callback=options,options=defaultGetCookieOptions):options===void 0&&(options=defaultGetCookieOptions);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback,context;try{typeof url=="string"&&validators.validate(validators.isNonEmptyString(url),cb,url),context=getCookieContext(url),validators.validate(validators.isObject(options),cb,(0,utils_1.safeToString)(options)),validators.validate(typeof cb=="function",cb)}catch(parameterError){return promiseCallback.reject(parameterError)}let host=(0,canonicalDomain_1.canonicalDomain)(context.hostname),path=context.pathname||"/",secure=context.protocol&&(context.protocol=="https:"||context.protocol=="wss:"),sameSiteLevel=0;if(options.sameSiteContext){let sameSiteContext=checkSameSiteContext(options.sameSiteContext);if(sameSiteContext==null)return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));if(sameSiteLevel=cookie_1.Cookie.sameSiteLevel[sameSiteContext],!sameSiteLevel)return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR))}let http=options.http??!0,now=Date.now(),expireCheck=options.expire??!0,allPaths=options.allPaths??!1,store=this.store;function matchingCookie(c){if(c.hostOnly){if(c.domain!=host)return!1}else if(!(0,domainMatch_1.domainMatch)(host??void 0,c.domain??void 0,!1))return!1;if(!allPaths&&typeof c.path=="string"&&!(0,pathMatch_1.pathMatch)(path,c.path)||c.secure&&!secure||c.httpOnly&&!http)return!1;if(sameSiteLevel){let cookieLevel;if(c.sameSite==="lax"?cookieLevel=cookie_1.Cookie.sameSiteLevel.lax:c.sameSite==="strict"?cookieLevel=cookie_1.Cookie.sameSiteLevel.strict:cookieLevel=cookie_1.Cookie.sameSiteLevel.none,cookieLevel>sameSiteLevel)return!1}let expiryTime=c.expiryTime();return expireCheck&&expiryTime!=null&&expiryTime<=now?(store.removeCookie(c.domain,c.path,c.key,()=>{}),!1):!0}return store.findCookies(host,allPaths?null:path,this.allowSpecialUseDomain,(err,cookies)=>{if(err){cb(err);return}if(cookies==null){cb(null,[]);return}cookies=cookies.filter(matchingCookie),"sort"in options&&options.sort!==!1&&(cookies=cookies.sort(cookieCompare_1.cookieCompare));let now2=new Date;for(let cookie of cookies)cookie.lastAccessed=now2;cb(null,cookies)}),promiseCallback.promise}getCookiesSync(url,options){return this.callSync(this.getCookies.bind(this,url,options))??[]}getCookieString(url,options,callback){typeof options=="function"&&(callback=options,options=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),next=function(err,cookies){err?promiseCallback.callback(err):promiseCallback.callback(null,cookies?.sort(cookieCompare_1.cookieCompare).map(c=>c.cookieString()).join("; "))};return this.getCookies(url,options,next),promiseCallback.promise}getCookieStringSync(url,options){return this.callSync(options?this.getCookieString.bind(this,url,options):this.getCookieString.bind(this,url))??""}getSetCookieStrings(url,options,callback){typeof options=="function"&&(callback=options,options=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),next=function(err,cookies){err?promiseCallback.callback(err):promiseCallback.callback(null,cookies?.map(c=>c.toString()))};return this.getCookies(url,options,next),promiseCallback.promise}getSetCookieStringsSync(url,options={}){return this.callSync(this.getSetCookieStrings.bind(this,url,options))??[]}serialize(callback){let promiseCallback=(0,utils_1.createPromiseCallback)(callback),type=this.store.constructor.name;validators.isObject(type)&&(type=null);let serialized={version:`tough-cookie@${version_1.version}`,storeType:type,rejectPublicSuffixes:this.rejectPublicSuffixes,enableLooseMode:this.enableLooseMode,allowSpecialUseDomain:this.allowSpecialUseDomain,prefixSecurity:getNormalizedPrefixSecurity(this.prefixSecurity),cookies:[]};return typeof this.store.getAllCookies!="function"?promiseCallback.reject(new Error("store does not support getAllCookies and cannot be serialized")):(this.store.getAllCookies((err,cookies)=>{if(err){promiseCallback.callback(err);return}if(cookies==null){promiseCallback.callback(null,serialized);return}serialized.cookies=cookies.map(cookie=>{let serializedCookie=cookie.toJSON();return delete serializedCookie.creationIndex,serializedCookie}),promiseCallback.callback(null,serialized)}),promiseCallback.promise)}serializeSync(){return this.callSync(callback=>{this.serialize(callback)})}toJSON(){return this.serializeSync()}_importCookies(serialized,callback){let cookies;if(serialized&&typeof serialized=="object"&&(0,utils_1.inOperator)("cookies",serialized)&&Array.isArray(serialized.cookies)&&(cookies=serialized.cookies),!cookies){callback(new Error("serialized jar has no cookies array"),void 0);return}cookies=cookies.slice();let putNext=err=>{if(err){callback(err,void 0);return}if(Array.isArray(cookies)){if(!cookies.length){callback(err,this);return}let cookie;try{cookie=cookie_1.Cookie.fromJSON(cookies.shift())}catch(e){callback(e instanceof Error?e:new Error,void 0);return}if(cookie===void 0){putNext(null);return}this.store.putCookie(cookie,putNext)}};putNext(null)}_importCookiesSync(serialized){this.callSync(this._importCookies.bind(this,serialized))}clone(newStore,callback){typeof newStore=="function"&&(callback=newStore,newStore=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback;return this.serialize((err,serialized)=>err?promiseCallback.reject(err):_CookieJar.deserialize(serialized??"",newStore,cb)),promiseCallback.promise}_cloneSync(newStore){let cloneFn=newStore&&typeof newStore!="function"?this.clone.bind(this,newStore):this.clone.bind(this);return this.callSync(callback=>{cloneFn(callback)})}cloneSync(newStore){if(!newStore)return this._cloneSync();if(!newStore.synchronous)throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");return this._cloneSync(newStore)}removeAllCookies(callback){let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback,store=this.store;return typeof store.removeAllCookies=="function"&&store.removeAllCookies!==store_1.Store.prototype.removeAllCookies?(store.removeAllCookies(cb),promiseCallback.promise):(store.getAllCookies((err,cookies)=>{if(err){cb(err);return}if(cookies||(cookies=[]),cookies.length===0){cb(null,void 0);return}let completedCount=0,removeErrors=[],removeCookieCb=function(removeErr){if(removeErr&&removeErrors.push(removeErr),completedCount++,completedCount===cookies.length){removeErrors[0]?cb(removeErrors[0]):cb(null,void 0);return}};cookies.forEach(cookie=>{store.removeCookie(cookie.domain,cookie.path,cookie.key,removeCookieCb)})}),promiseCallback.promise)}removeAllCookiesSync(){this.callSync(callback=>{this.removeAllCookies(callback)})}static deserialize(strOrObj,store,callback){typeof store=="function"&&(callback=store,store=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),serialized;if(typeof strOrObj=="string")try{serialized=JSON.parse(strOrObj)}catch(e){return promiseCallback.reject(e instanceof Error?e:new Error)}else serialized=strOrObj;let readSerializedProperty=property=>serialized&&typeof serialized=="object"&&(0,utils_1.inOperator)(property,serialized)?serialized[property]:void 0,readSerializedBoolean=property=>{let value=readSerializedProperty(property);return typeof value=="boolean"?value:void 0},readSerializedString=property=>{let value=readSerializedProperty(property);return typeof value=="string"?value:void 0},jar=new _CookieJar(store,{rejectPublicSuffixes:readSerializedBoolean("rejectPublicSuffixes"),looseMode:readSerializedBoolean("enableLooseMode"),allowSpecialUseDomain:readSerializedBoolean("allowSpecialUseDomain"),prefixSecurity:getNormalizedPrefixSecurity(readSerializedString("prefixSecurity")??"silent")});return jar._importCookies(serialized,err=>{if(err){promiseCallback.callback(err);return}promiseCallback.callback(null,jar)}),promiseCallback.promise}static deserializeSync(strOrObj,store){let serialized=typeof strOrObj=="string"?JSON.parse(strOrObj):strOrObj,readSerializedProperty=property=>serialized&&typeof serialized=="object"&&(0,utils_1.inOperator)(property,serialized)?serialized[property]:void 0,readSerializedBoolean=property=>{let value=readSerializedProperty(property);return typeof value=="boolean"?value:void 0},readSerializedString=property=>{let value=readSerializedProperty(property);return typeof value=="string"?value:void 0},jar=new _CookieJar(store,{rejectPublicSuffixes:readSerializedBoolean("rejectPublicSuffixes"),looseMode:readSerializedBoolean("enableLooseMode"),allowSpecialUseDomain:readSerializedBoolean("allowSpecialUseDomain"),prefixSecurity:getNormalizedPrefixSecurity(readSerializedString("prefixSecurity")??"silent")});if(!jar.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");return jar._importCookiesSync(serialized),jar}static fromJSON(jsonString,store){return _CookieJar.deserializeSync(jsonString,store)}};exports2.CookieJar=CookieJar}});var require_permutePath=__commonJS({"node_modules/tough-cookie/dist/cookie/permutePath.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.permutePath=permutePath;function permutePath(path){if(path==="/")return["/"];let permutations=[path];for(;path.length>1;){let lindex=path.lastIndexOf("/");if(lindex===0)break;path=path.slice(0,lindex),permutations.push(path)}return permutations.push("/"),permutations}}});var require_cookie3=__commonJS({"node_modules/tough-cookie/dist/cookie/index.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.permutePath=exports2.parseDate=exports2.formatDate=exports2.domainMatch=exports2.defaultPath=exports2.CookieJar=exports2.cookieCompare=exports2.Cookie=exports2.PrefixSecurityEnum=exports2.canonicalDomain=exports2.version=exports2.ParameterError=exports2.Store=exports2.getPublicSuffix=exports2.permuteDomain=exports2.pathMatch=exports2.MemoryCookieStore=void 0;exports2.parse=parse;exports2.fromJSON=fromJSON;var memstore_1=require_memstore();Object.defineProperty(exports2,"MemoryCookieStore",{enumerable:!0,get:function(){return memstore_1.MemoryCookieStore}});var pathMatch_1=require_pathMatch();Object.defineProperty(exports2,"pathMatch",{enumerable:!0,get:function(){return pathMatch_1.pathMatch}});var permuteDomain_1=require_permuteDomain();Object.defineProperty(exports2,"permuteDomain",{enumerable:!0,get:function(){return permuteDomain_1.permuteDomain}});var getPublicSuffix_1=require_getPublicSuffix();Object.defineProperty(exports2,"getPublicSuffix",{enumerable:!0,get:function(){return getPublicSuffix_1.getPublicSuffix}});var store_1=require_store();Object.defineProperty(exports2,"Store",{enumerable:!0,get:function(){return store_1.Store}});var validators_1=require_validators();Object.defineProperty(exports2,"ParameterError",{enumerable:!0,get:function(){return validators_1.ParameterError}});var version_1=require_version();Object.defineProperty(exports2,"version",{enumerable:!0,get:function(){return version_1.version}});var canonicalDomain_1=require_canonicalDomain();Object.defineProperty(exports2,"canonicalDomain",{enumerable:!0,get:function(){return canonicalDomain_1.canonicalDomain}});var constants_1=require_constants();Object.defineProperty(exports2,"PrefixSecurityEnum",{enumerable:!0,get:function(){return constants_1.PrefixSecurityEnum}});var cookie_1=require_cookie2();Object.defineProperty(exports2,"Cookie",{enumerable:!0,get:function(){return cookie_1.Cookie}});var cookieCompare_1=require_cookieCompare();Object.defineProperty(exports2,"cookieCompare",{enumerable:!0,get:function(){return cookieCompare_1.cookieCompare}});var cookieJar_1=require_cookieJar();Object.defineProperty(exports2,"CookieJar",{enumerable:!0,get:function(){return cookieJar_1.CookieJar}});var defaultPath_1=require_defaultPath();Object.defineProperty(exports2,"defaultPath",{enumerable:!0,get:function(){return defaultPath_1.defaultPath}});var domainMatch_1=require_domainMatch();Object.defineProperty(exports2,"domainMatch",{enumerable:!0,get:function(){return domainMatch_1.domainMatch}});var formatDate_1=require_formatDate();Object.defineProperty(exports2,"formatDate",{enumerable:!0,get:function(){return formatDate_1.formatDate}});var parseDate_1=require_parseDate();Object.defineProperty(exports2,"parseDate",{enumerable:!0,get:function(){return parseDate_1.parseDate}});var permutePath_1=require_permutePath();Object.defineProperty(exports2,"permutePath",{enumerable:!0,get:function(){return permutePath_1.permutePath}});var cookie_2=require_cookie2();function parse(str,options){return cookie_2.Cookie.parse(str,options)}function fromJSON(str){return cookie_2.Cookie.fromJSON(str)}}});var require_model=__commonJS({"src/lib/apiClient/model.js"(exports2,module2){var crypto=require("crypto"),METHODS=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],LIMITS={request:20*1024*1024,response:50*1024*1024,preview:1024*1024,disk:256*1024*1024},sensitive=/authorization|cookie|password|token|secret|api[-_]?key/i;function fail(message,status=400){let error=new Error(message);return error.status=status,error}function check(value,message,status=400){if(!value)throw fail(message,status)}function safeObject(value,depth=0){if(check(depth<60,"\u6570\u636E\u5D4C\u5957\u8FC7\u6DF1"),!(!value||typeof value!="object"))for(let key of Object.keys(value))check(!["__proto__","prototype","constructor"].includes(key),"\u4E0D\u5141\u8BB8\u7684\u5BF9\u8C61\u5B57\u6BB5"),safeObject(value[key],depth+1)}function entries(value=[]){return check(Array.isArray(value)&&value.length<=2e3,"\u53C2\u6570\u5FC5\u987B\u662F\u5217\u8868\uFF08\u6700\u591A 2000 \u9879\uFF09"),value.map(row=>(check(row&&typeof row.key=="string"&&typeof row.value=="string","\u53C2\u6570\u9700\u8981\u5B57\u7B26\u4E32 key/value"),{...row,enabled:row.enabled!==!1}))}function request(value){check(value&&typeof value=="object","\u8BF7\u6C42\u4E0D\u80FD\u4E3A\u7A7A"),safeObject(value),check(METHODS.includes(value.method),"\u4E0D\u652F\u6301\u7684 HTTP \u65B9\u6CD5"),check(typeof value.url=="string"&&value.url.length<=32768,"URL \u65E0\u6548\u6216\u8FC7\u957F");let body=value.body||{type:"none"};check(["none","json","text","xml","form","multipart","binary"].includes(body.type),"\u4E0D\u652F\u6301\u7684\u6B63\u6587\u7C7B\u578B");let settings={timeout:3e4,redirects:!0,verifyTls:!0,cookies:!0,...value.settings};check(Number.isInteger(settings.timeout)&&settings.timeout>=1e3&&settings.timeout<=3e5,"\u8D85\u65F6\u5FC5\u987B\u4E3A 1000\u2013300000 \u6BEB\u79D2");for(let key of["redirects","verifyTls","cookies"])check(typeof settings[key]=="boolean",`\u8BBE\u7F6E ${key} \u5FC5\u987B\u662F\u5E03\u5C14\u503C`);let auth=value.auth||{type:"inherit"};check(["inherit","none","basic","bearer","apiKey"].includes(auth.type),"\u4E0D\u652F\u6301\u7684\u8BA4\u8BC1\u65B9\u5F0F"),auth.type==="apiKey"&&check(auth.in===void 0||["header","query"].includes(auth.in),"API Key \u4F4D\u7F6E\u65E0\u6548");for(let key of["username","password","token","key","value"])check(auth[key]===void 0||typeof auth[key]=="string",`\u8BA4\u8BC1 ${key} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32`);(body.type==="form"||body.type==="multipart")&&entries(body.fields||[]),body.text!==void 0&&check(typeof body.text=="string","\u6B63\u6587\u5FC5\u987B\u662F\u5B57\u7B26\u4E32");for(let key of["assertions","extractors"])check(value[key]===void 0||Array.isArray(value[key])&&value[key].length<=100,`${key} \u6700\u591A 100 \u9879`);for(let rule of value.assertions||[])check(rule&&typeof rule=="object"&&["status","header","json","time"].includes(rule.source),"\u65AD\u8A00\u6765\u6E90\u65E0\u6548"),check(["exists","equals","contains","type","lessThan"].includes(rule.op),"\u65AD\u8A00\u64CD\u4F5C\u65E0\u6548");for(let rule of value.extractors||[])check(rule&&typeof rule.name=="string"&&rule.name&&["json","header"].includes(rule.source),"\u53D8\u91CF\u63D0\u53D6\u89C4\u5219\u65E0\u6548");return{...value,id:value.id||crypto.randomUUID(),name:String(value.name||"\u65B0\u8BF7\u6C42").slice(0,200),headers:entries(value.headers),query:entries(value.query),body,auth,settings,assertions:value.assertions||[],extractors:value.extractors||[]}}function resource(kind,value){safeObject(value),check(value&&typeof value.name=="string"&&value.name.trim(),"\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A"),check(value.schemaVersion===void 0||value.schemaVersion===1,"\u4E0D\u652F\u6301\u7684 schemaVersion");let result={...value,schemaVersion:1,variables:entries(value.variables)};if(kind==="collections"){value.auth&&(result.auth=request({method:"GET",url:"",auth:value.auth}).auth);let count=0,ids=new Set,visit=(items,depth=0)=>(check(Array.isArray(items)&&depth<=20,"\u96C6\u5408\u76EE\u5F55\u65E0\u6548\u6216\u8FC7\u6DF1"),items.map(item=>{check(++count<=1e4,"\u96C6\u5408\u6700\u591A 10000 \u4E2A\u6761\u76EE");let id=item.id||crypto.randomUUID();return check(typeof id=="string"&&!ids.has(id),"\u6761\u76EE ID \u5FC5\u987B\u552F\u4E00"),ids.add(id),item.type==="folder"?{id,type:"folder",name:String(item.name||"\u76EE\u5F55"),items:visit(item.items||[],depth+1)}:request({...item,id})}));result.items=visit(value.items||[])}return result}function variables(...groups){let result=Object.create(null);for(let group of groups)if(Array.isArray(group))for(let row of group)row.enabled!==!1&&(result[row.key]=row.value);else group&&typeof group=="object"&&Object.assign(result,group);return result}function interpolate(value,vars,seen=[]){return typeof value=="string"?value.replace(/\{\{\s*([^{}]+?)\s*\}\}/g,(_,key)=>(check(Object.hasOwn(vars,key)&&vars[key]!==void 0,`\u672A\u5B9A\u4E49\u53D8\u91CF: ${key}`),check(!seen.includes(key)&&seen.length<20,`\u53D8\u91CF\u5FAA\u73AF\u5F15\u7528: ${key}`),interpolate(String(vars[key]),vars,[...seen,key]))):Array.isArray(value)?value.map(row=>interpolate(row,vars,seen)):value&&typeof value=="object"?value.enabled===!1?value:Object.fromEntries(Object.entries(value).map(([key,item])=>[key,interpolate(item,vars,seen)])):value}function pointer(value,path){if(path==="")return value;check(typeof path=="string"&&path.startsWith("/"),"JSON Pointer \u5FC5\u987B\u4EE5 / \u5F00\u59CB");for(let key of path.slice(1).split("/").map(part=>part.replace(/~1/g,"/").replace(/~0/g,"~"))){if(value===null||typeof value!="object"||!Object.hasOwn(value,key))return;value=value[key]}return value}function evaluate(rules,result,json){let select=rule=>{if(rule.source==="status")return result.status;if(rule.source==="time")return result.duration;if(rule.source==="header")return result.headers.find(row=>row.key.toLowerCase()===String(rule.path).toLowerCase())?.value;if(rule.source==="json")return pointer(json,rule.path);throw fail("\u4E0D\u652F\u6301\u7684\u65AD\u8A00\u6765\u6E90")},assertions=(rules.assertions||[]).map(rule=>{try{let actual=select(rule),passed;switch(rule.op){case"exists":passed=actual!==void 0;break;case"equals":passed=JSON.stringify(actual)===JSON.stringify(rule.value);break;case"contains":passed=(typeof actual=="string"||Array.isArray(actual))&&actual.includes(rule.value);break;case"type":passed=(Array.isArray(actual)?"array":actual===null?"null":typeof actual)===rule.value;break;case"lessThan":passed=typeof actual=="number"&&actual<Number(rule.value);break;default:throw fail("\u4E0D\u652F\u6301\u7684\u65AD\u8A00\u64CD\u4F5C")}return{name:rule.name||`${rule.source} ${rule.path||""} ${rule.op}`,passed,actual}}catch(error){return{name:rule.name||"\u65AD\u8A00",passed:!1,error:error.message}}}),extracted=Object.create(null),errors=[];for(let rule of rules.extractors||[])try{check(typeof rule.name=="string"&&rule.name&&!["__proto__","constructor","prototype"].includes(rule.name),"\u63D0\u53D6\u53D8\u91CF\u540D\u65E0\u6548"),check(["header","json"].includes(rule.source),"\u63D0\u53D6\u4EC5\u652F\u6301 header/json");let value=select(rule);check(value!==void 0,`\u63D0\u53D6\u5931\u8D25: ${rule.name}`),extracted[rule.name]=typeof value=="object"?JSON.stringify(value):String(value)}catch(error){errors.push(error.message)}return{assertions,extracted,extractionErrors:errors}}function redact(value){if(Array.isArray(value))return value.map(redact);if(!value||typeof value!="object")return value;let output={};for(let[key,item]of Object.entries(value)){if(["uploadId","revision"].includes(key))continue;if(key==="url"&&typeof item=="string"){output[key]=item.replace(/([?&])([^=&]+)=([^&#]*)/g,(whole,separator,name,val)=>{try{return sensitive.test(decodeURIComponent(name))&&!/\{\{[^{}]+\}\}/.test(decodeURIComponent(val))?`${separator}${name}=`:whole}catch{return whole}});continue}let isSecret=key==="value"&&(value.secret||sensitive.test(value.key||""))||["password","token","username"].includes(key)||key==="value"&&value.type==="apiKey";output[key]=isSecret&&typeof item=="string"&&!/\{\{[^{}]+\}\}/.test(item)?"":redact(item)}return output}function flatten(items){return items.flatMap(item=>item.type==="folder"?flatten(item.items):[item])}module2.exports={METHODS,LIMITS,sensitive,fail,check,safeObject,entries,request,resource,variables,interpolate,pointer,evaluate,redact,flatten}}});var require_store2=__commonJS({"src/lib/apiClient/store.js"(exports2,module2){var fs=require("fs/promises"),{constants}=require("fs"),path=require("path"),crypto=require("crypto"),{check,fail,resource,redact}=require_model(),hash=data=>crypto.createHash("sha256").update(data).digest("hex"),uuid=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i,Workspace=class{constructor(root){this.root=path.resolve(root),this.id=hash(this.root)}async directory(kind,create=!1){check(["collections","environments"].includes(kind),"\u8D44\u6E90\u7C7B\u578B\u65E0\u6548"),create&&await fs.mkdir(this.root,{recursive:!0});let rootStat=await fs.lstat(this.root);check(rootStat.isDirectory()&&!rootStat.isSymbolicLink(),"\u5DE5\u4F5C\u533A\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5",403);try{let file=path.join(this.root,"workspace.json"),metadata=await fs.lstat(file);check(metadata.isFile()&&!metadata.isSymbolicLink()&&metadata.size<65536,"\u5DE5\u4F5C\u533A\u5143\u6570\u636E\u65E0\u6548"),check(JSON.parse(await fs.readFile(file,"utf8")).schemaVersion===1,"\u4E0D\u652F\u6301\u7684\u5DE5\u4F5C\u533A schemaVersion")}catch(error){if(error.code!=="ENOENT")throw error}let dir=path.join(this.root,kind);create&&await fs.mkdir(dir,{recursive:!0});let stat=await fs.lstat(dir);return check(stat.isDirectory()&&!stat.isSymbolicLink(),"\u5DE5\u4F5C\u533A\u5B50\u76EE\u5F55\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5"),dir}async read(kind,id){check(uuid.test(id),"\u8D44\u6E90 ID \u65E0\u6548");let dir=await this.directory(kind),file=path.join(dir,`${id}.json`),stat=await fs.lstat(file);check(stat.isFile()&&!stat.isSymbolicLink()&&stat.size<=20*1024*1024,"\u5DE5\u4F5C\u533A\u6587\u4EF6\u65E0\u6548\u6216\u8FC7\u5927");let handle=await fs.open(file,constants.O_RDONLY|(constants.O_NOFOLLOW||0)),text;try{check((await handle.stat()).size<=20*1024*1024,"\u5DE5\u4F5C\u533A\u6587\u4EF6\u8FC7\u5927"),text=await handle.readFile("utf8")}finally{await handle.close()}return{...resource(kind,JSON.parse(text)),id,revision:hash(text)}}async list(kind){let dir;try{dir=await this.directory(kind)}catch(error){if(error.code==="ENOENT")return[];throw error}let names=await fs.readdir(dir),rows=[];for(let name of names.filter(name2=>uuid.test(name2.slice(0,-5))&&name2.endsWith(".json")))rows.push(await this.read(kind,name.slice(0,-5)));return rows.sort((a,b)=>a.name.localeCompare(b.name))}async write(kind,id,value,revision,remove=!1){check(uuid.test(id),"\u8D44\u6E90 ID \u65E0\u6548");let data=remove?null:{...redact(resource(kind,value)),id},dir=await this.directory(kind,!0),lock=path.join(this.root,".write-lock");try{await fs.mkdir(lock)}catch(error){throw error.code==="EEXIST"?fail("\u5DE5\u4F5C\u533A\u6B63\u5728\u5199\u5165\uFF1B\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF08\u5F02\u5E38\u9000\u51FA\u540E\u53EF\u624B\u52A8\u79FB\u9664 .write-lock\uFF09",409):error}let temp=path.join(dir,`.${crypto.randomUUID()}.tmp`);try{let current=null;try{current=await this.read(kind,id)}catch(error){if(error.code!=="ENOENT")throw error}check((current?.revision||null)===(revision||null),"\u6587\u4EF6\u5DF2\u88AB\u5176\u4ED6\u7A97\u53E3\u6216\u5916\u90E8\u5DE5\u5177\u4FEE\u6539\uFF0C\u8BF7\u91CD\u65B0\u52A0\u8F7D\u540E\u4FDD\u5B58");let file=path.join(dir,`${id}.json`);if(remove)return check(current,"\u8D44\u6E90\u4E0D\u5B58\u5728"),await fs.unlink(file),{id};let text=`${JSON.stringify(data,null,2)}
76
76
  `;check(Buffer.byteLength(text)<=20*1024*1024,"\u96C6\u5408\u6587\u4EF6\u8D85\u8FC7 20 MiB"),await fs.writeFile(temp,text,{flag:"wx",mode:384}),await fs.rename(temp,file);let metadata=path.join(this.root,"workspace.json");try{await fs.writeFile(metadata,JSON.stringify({schemaVersion:1},null,2)+`
77
- `,{flag:"wx",mode:384})}catch(error){if(error.code!=="EEXIST")throw error}return{...data,revision:hash(text)}}catch(error){throw error.message.startsWith("\u6587\u4EF6\u5DF2\u88AB")&&(error.status=409),error}finally{await fs.rm(temp,{force:!0}),await fs.rmdir(lock)}}};module2.exports={Workspace}}});var require_download=__commonJS({"src/lib/apiClient/download.js"(exports2,module2){var contentDisposition=require_content_disposition(),mime=require_mime_types();function responseFilename(headers){let name;try{name=contentDisposition.parse(headers["content-disposition"]).parameters.filename}catch{}if(typeof name=="string"&&(name=name.split(/[/\\]/).pop().replace(/[\u0000-\u001f\u007f-\u009f<>:"|?*\u202a-\u202e\u2066-\u2069]/g,"_").replace(/^[. ]+|[. ]+$/g,""),name&&name.length<=180))return/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(name)&&(name=`_${name}`),name;let type=String(headers["content-type"]||"").split(";")[0].trim().toLowerCase();return`response.${(type.endsWith("+json")?"json":type.endsWith("+xml")?"xml":mime.extension(type))||"bin"}`}module2.exports={responseFilename}}});var require_engine=__commonJS({"src/lib/apiClient/engine.js"(exports2,module2){var http=require("http"),https=require("https"),fs=require("fs"),fsp=require("fs/promises"),os=require("os"),path=require("path"),crypto=require("crypto"),zlib=require("zlib"),{Transform}=require("stream"),{pipeline}=require("stream/promises"),{Worker}=require("worker_threads"),{CookieJar}=require_cookie3(),{responseFilename}=require_download(),{LIMITS,fail,check,request,interpolate,variables,redact,sensitive}=require_model(),TemporaryFiles=class{constructor(){this.files=new Map,this.bytes=0,this.ready=fsp.mkdtemp(path.join(os.tmpdir(),"mock-api-client-")).then(dir=>(this.dir=dir,dir))}async create(owner){await this.ready,check(this.files.size<500,"\u4E34\u65F6\u6587\u4EF6\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650");let id=crypto.randomUUID(),file={id,owner,path:path.join(this.dir,id),size:0,time:Date.now()};return this.files.set(id,file),file}add(file,size){if(this.bytes+size>LIMITS.disk)throw fail("\u4E34\u65F6\u5B58\u50A8\u8D85\u8FC7 256 MiB\uFF0C\u8BF7\u6E05\u7406\u7ED3\u679C\u540E\u91CD\u8BD5",413);file.size+=size,this.bytes+=size}get(id,owner){let file=this.files.get(id);if(!file||file.owner!==owner)throw fail("\u4E34\u65F6\u6587\u4EF6\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F",404);return file}async remove(id){let file=this.files.get(id);file&&(this.files.delete(id),this.bytes-=file.size,await fsp.rm(file.path,{force:!0}))}async close(){await this.ready,await fsp.rm(this.dir,{recursive:!0,force:!0}),this.files.clear(),this.bytes=0}};function target(value){let url;try{url=new URL(value)}catch{throw fail("\u8BF7\u8F93\u5165\u5B8C\u6574\u7684 HTTP/HTTPS URL")}return check(["http:","https:"].includes(url.protocol)&&!url.username&&!url.password,"\u4EC5\u652F\u6301 HTTP/HTTPS\uFF1B\u8BF7\u5728\u8BA4\u8BC1\u9762\u677F\u8BBE\u7F6E\u51ED\u636E"),url.hash="",url}function headerRows(raw){let result=[];for(let i=0;i<raw.length;i+=2)result.push({key:raw[i],value:raw[i+1]});return result}function outgoingHeaders(rows){let headers=Object.create(null);for(let row of rows.filter(row2=>row2.enabled!==!1)){try{http.validateHeaderName(row.key),http.validateHeaderValue(row.key,row.value)}catch{throw fail("\u8BF7\u6C42\u5934\u540D\u79F0\u6216\u503C\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5 Headers")}let key=row.key.toLowerCase();check(!["host","content-length","connection","transfer-encoding","upgrade","proxy-authorization","proxy-connection","trailer","te"].includes(key),`\u8BF7\u6C42\u5934 ${row.key} \u7531\u5BA2\u6237\u7AEF\u7BA1\u7406`),headers[key]?headers[key]=[].concat(headers[key],row.value):headers[key]=row.value}return headers}async function bodyBuffer(body,headers,files,owner){let setType=value=>{headers["content-type"]||(headers["content-type"]=value)};if(body.type==="none")return null;if(body.type==="binary")return fsp.readFile(files.get(body.uploadId,owner).path);if(body.type==="multipart"){let boundary=`----MockClient${crypto.randomBytes(16).toString("hex")}`;headers["content-type"]=`multipart/form-data; boundary=${boundary}`;let chunks=[],size=0,append=chunk=>{let data=Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk);size+=data.length,check(size<=LIMITS.request,"\u8BF7\u6C42\u6B63\u6587\u8D85\u8FC7 20 MiB"),chunks.push(data)};for(let row of(body.fields||[]).filter(row2=>row2.enabled!==!1)){if(check(!/[\r\n"]/.test(row.key),"\u8868\u5355\u5B57\u6BB5\u540D\u65E0\u6548"),append(`--${boundary}\r
77
+ `,{flag:"wx",mode:384})}catch(error){if(error.code!=="EEXIST")throw error}return{...data,revision:hash(text)}}catch(error){throw error.message.startsWith("\u6587\u4EF6\u5DF2\u88AB")&&(error.status=409),error}finally{await fs.rm(temp,{force:!0}),await fs.rmdir(lock)}}};module2.exports={Workspace}}});var require_download=__commonJS({"src/lib/apiClient/download.js"(exports2,module2){var contentDisposition=require_content_disposition(),mime=require_mime_types();function responseFilename(headers){let name;try{name=contentDisposition.parse(headers["content-disposition"]).parameters.filename}catch{}if(typeof name=="string"&&(name=name.split(/[/\\]/).pop().replace(/[\u0000-\u001f\u007f-\u009f<>:"|?*\u202a-\u202e\u2066-\u2069]/g,"_").replace(/^[. ]+|[. ]+$/g,""),name&&name.length<=180))return/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(name)&&(name=`_${name}`),name;let type=String(headers["content-type"]||"").split(";")[0].trim().toLowerCase();return`response.${(type.endsWith("+json")?"json":type.endsWith("+xml")?"xml":mime.extension(type))||"bin"}`}module2.exports={responseFilename}}});var require_headers=__commonJS({"src/lib/apiClient/headers.js"(exports2,module2){var managedHeaders=new Set(["host","content-length","connection","transfer-encoding","upgrade","proxy-authorization","proxy-connection","trailer","te"]),isManagedHeader=name=>managedHeaders.has(name.toLowerCase());module2.exports={isManagedHeader}}});var require_engine=__commonJS({"src/lib/apiClient/engine.js"(exports2,module2){var http=require("http"),https=require("https"),fs=require("fs"),fsp=require("fs/promises"),os=require("os"),path=require("path"),crypto=require("crypto"),zlib=require("zlib"),{Transform}=require("stream"),{pipeline}=require("stream/promises"),{Worker}=require("worker_threads"),{CookieJar}=require_cookie3(),{responseFilename}=require_download(),{isManagedHeader}=require_headers(),{LIMITS,fail,check,request,interpolate,variables,redact,sensitive}=require_model(),TemporaryFiles=class{constructor(){this.files=new Map,this.bytes=0,this.ready=fsp.mkdtemp(path.join(os.tmpdir(),"mock-api-client-")).then(dir=>(this.dir=dir,dir))}async create(owner){await this.ready,check(this.files.size<500,"\u4E34\u65F6\u6587\u4EF6\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650");let id=crypto.randomUUID(),file={id,owner,path:path.join(this.dir,id),size:0,time:Date.now()};return this.files.set(id,file),file}add(file,size){if(this.bytes+size>LIMITS.disk)throw fail("\u4E34\u65F6\u5B58\u50A8\u8D85\u8FC7 256 MiB\uFF0C\u8BF7\u6E05\u7406\u7ED3\u679C\u540E\u91CD\u8BD5",413);file.size+=size,this.bytes+=size}get(id,owner){let file=this.files.get(id);if(!file||file.owner!==owner)throw fail("\u4E34\u65F6\u6587\u4EF6\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F",404);return file}async remove(id){let file=this.files.get(id);file&&(this.files.delete(id),this.bytes-=file.size,await fsp.rm(file.path,{force:!0}))}async close(){await this.ready,await fsp.rm(this.dir,{recursive:!0,force:!0}),this.files.clear(),this.bytes=0}};function target(value){let url;try{url=new URL(value)}catch{throw fail("\u8BF7\u8F93\u5165\u5B8C\u6574\u7684 HTTP/HTTPS URL")}return check(["http:","https:"].includes(url.protocol)&&!url.username&&!url.password,"\u4EC5\u652F\u6301 HTTP/HTTPS\uFF1B\u8BF7\u5728\u8BA4\u8BC1\u9762\u677F\u8BBE\u7F6E\u51ED\u636E"),url.hash="",url}function headerRows(raw){let result=[];for(let i=0;i<raw.length;i+=2)result.push({key:raw[i],value:raw[i+1]});return result}function outgoingHeaders(rows){let headers=Object.create(null);for(let row of rows.filter(row2=>row2.enabled!==!1)){try{http.validateHeaderName(row.key),http.validateHeaderValue(row.key,row.value)}catch{throw fail("\u8BF7\u6C42\u5934\u540D\u79F0\u6216\u503C\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5 Headers")}let key=row.key.toLowerCase();check(!isManagedHeader(key),`\u8BF7\u6C42\u5934 ${row.key} \u7531\u5BA2\u6237\u7AEF\u7BA1\u7406`),headers[key]?headers[key]=[].concat(headers[key],row.value):headers[key]=row.value}return headers}async function bodyBuffer(body,headers,files,owner){let setType=value=>{headers["content-type"]||(headers["content-type"]=value)};if(body.type==="none")return null;if(body.type==="binary")return fsp.readFile(files.get(body.uploadId,owner).path);if(body.type==="multipart"){let boundary=`----MockClient${crypto.randomBytes(16).toString("hex")}`;headers["content-type"]=`multipart/form-data; boundary=${boundary}`;let chunks=[],size=0,append=chunk=>{let data=Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk);size+=data.length,check(size<=LIMITS.request,"\u8BF7\u6C42\u6B63\u6587\u8D85\u8FC7 20 MiB"),chunks.push(data)};for(let row of(body.fields||[]).filter(row2=>row2.enabled!==!1)){if(check(!/[\r\n"]/.test(row.key),"\u8868\u5355\u5B57\u6BB5\u540D\u65E0\u6548"),append(`--${boundary}\r
78
78
  Content-Disposition: form-data; name="${row.key}"`),row.uploadId||row.file){let file=files.get(row.uploadId,owner);append(`; filename="${String(file.name||"file").replace(/[\r\n"\\]/g,"_")}"\r
79
79
  Content-Type: application/octet-stream\r
80
80
  \r
@@ -218,7 +218,7 @@ ${end.comment}`:end.comment}this.doc.range[2]=end.offset;break}default:this.erro
218
218
  `)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
219
219
  `,nl)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(map){let it=map.items[map.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,it.value){let end="end"in it.value?it.value.end:void 0;(Array.isArray(end)?end[end.length-1]:void 0)?.type==="comment"?end?.push(this.sourceToken):map.items.push({start:[this.sourceToken]})}else it.sep?it.sep.push(this.sourceToken):it.start.push(this.sourceToken);return;case"space":case"comment":if(it.value)map.items.push({start:[this.sourceToken]});else if(it.sep)it.sep.push(this.sourceToken);else{if(this.atIndentedComment(it.start,map.indent)){let end=map.items[map.items.length-2]?.value?.end;if(Array.isArray(end)){arrayPushArray(end,it.start),end.push(this.sourceToken),map.items.pop();return}}it.start.push(this.sourceToken)}return}if(this.indent>=map.indent){let atMapIndent=!this.onKeyLine&&this.indent===map.indent,atNextItem=atMapIndent&&(it.sep||it.explicitKey)&&this.type!=="seq-item-ind",start=[];if(atNextItem&&it.sep&&!it.value){let nl=[];for(let i=0;i<it.sep.length;++i){let st=it.sep[i];switch(st.type){case"newline":nl.push(i);break;case"space":break;case"comment":st.indent>map.indent&&(nl.length=0);break;default:nl.length=0}}nl.length>=2&&(start=it.sep.splice(nl[1]))}switch(this.type){case"anchor":case"tag":atNextItem||it.value?(start.push(this.sourceToken),map.items.push({start}),this.onKeyLine=!0):it.sep?it.sep.push(this.sourceToken):it.start.push(this.sourceToken);return;case"explicit-key-ind":!it.sep&&!it.explicitKey?(it.start.push(this.sourceToken),it.explicitKey=!0):atNextItem||it.value?(start.push(this.sourceToken),map.items.push({start,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(it.explicitKey)if(it.sep)if(it.value)map.items.push({start:[],key:null,sep:[this.sourceToken]});else if(includesToken(it.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]});else if(isFlowToken(it.key)&&!includesToken(it.sep,"newline")){let start2=getFirstKeyStartProps(it.start),key=it.key,sep=it.sep;sep.push(this.sourceToken),delete it.key,delete it.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key,sep}]})}else start.length>0?it.sep=it.sep.concat(start,this.sourceToken):it.sep.push(this.sourceToken);else if(includesToken(it.start,"newline"))Object.assign(it,{key:null,sep:[this.sourceToken]});else{let start2=getFirstKeyStartProps(it.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key:null,sep:[this.sourceToken]}]})}else it.sep?it.value||atNextItem?map.items.push({start,key:null,sep:[this.sourceToken]}):includesToken(it.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):it.sep.push(this.sourceToken):Object.assign(it,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs=this.flowScalar(this.type);atNextItem||it.value?(map.items.push({start,key:fs,sep:[]}),this.onKeyLine=!0):it.sep?this.stack.push(fs):(Object.assign(it,{key:fs,sep:[]}),this.onKeyLine=!0);return}default:{let bv=this.startBlockValue(map);if(bv){if(bv.type==="block-seq"){if(!it.explicitKey&&it.sep&&!includesToken(it.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else atMapIndent&&map.items.push({start});this.stack.push(bv);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(seq){let it=seq.items[seq.items.length-1];switch(this.type){case"newline":if(it.value){let end="end"in it.value?it.value.end:void 0;(Array.isArray(end)?end[end.length-1]:void 0)?.type==="comment"?end?.push(this.sourceToken):seq.items.push({start:[this.sourceToken]})}else it.start.push(this.sourceToken);return;case"space":case"comment":if(it.value)seq.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(it.start,seq.indent)){let end=seq.items[seq.items.length-2]?.value?.end;if(Array.isArray(end)){arrayPushArray(end,it.start),end.push(this.sourceToken),seq.items.pop();return}}it.start.push(this.sourceToken)}return;case"anchor":case"tag":if(it.value||this.indent<=seq.indent)break;it.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==seq.indent)break;it.value||includesToken(it.start,"seq-item-ind")?seq.items.push({start:[this.sourceToken]}):it.start.push(this.sourceToken);return}if(this.indent>seq.indent){let bv=this.startBlockValue(seq);if(bv){this.stack.push(bv);return}}yield*this.pop(),yield*this.step()}*flowCollection(fc){let it=fc.items[fc.items.length-1];if(this.type==="flow-error-end"){let top;do yield*this.pop(),top=this.peek(1);while(top?.type==="flow-collection")}else if(fc.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!it||it.sep?fc.items.push({start:[this.sourceToken]}):it.start.push(this.sourceToken);return;case"map-value-ind":!it||it.value?fc.items.push({start:[],key:null,sep:[this.sourceToken]}):it.sep?it.sep.push(this.sourceToken):Object.assign(it,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!it||it.value?fc.items.push({start:[this.sourceToken]}):it.sep?it.sep.push(this.sourceToken):it.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs=this.flowScalar(this.type);!it||it.value?fc.items.push({start:[],key:fs,sep:[]}):it.sep?this.stack.push(fs):Object.assign(it,{key:fs,sep:[]});return}case"flow-map-end":case"flow-seq-end":fc.end.push(this.sourceToken);return}let bv=this.startBlockValue(fc);bv?this.stack.push(bv):(yield*this.pop(),yield*this.step())}else{let parent=this.peek(2);if(parent.type==="block-map"&&(this.type==="map-value-ind"&&parent.indent===fc.indent||this.type==="newline"&&!parent.items[parent.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&parent.type!=="flow-collection"){let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);fixFlowSeqItems(fc);let sep=fc.end.splice(1,fc.end.length);sep.push(this.sourceToken);let map={type:"block-map",offset:fc.offset,indent:fc.indent,items:[{start,key:fc,sep}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=map}else yield*this.lineEnd(fc)}}flowScalar(type){if(this.onNewLine){let nl=this.source.indexOf(`
220
220
  `)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
221
- `,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st=>st.type==="newline"||st.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser}});var require_public_api=__commonJS({"node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),errors=require_errors(),log=require_log(),identity=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}function parseDocument(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}function parse(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}function stringify(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity.isDocument(value)&&!_replacer?value.toString(options):new Document.Document(value,_replacer,options).toString(options)}exports2.parse=parse;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument;exports2.stringify=stringify}});var require_dist=__commonJS({"node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity.isAlias;exports2.isCollection=identity.isCollection;exports2.isDocument=identity.isDocument;exports2.isMap=identity.isMap;exports2.isNode=identity.isNode;exports2.isPair=identity.isPair;exports2.isScalar=identity.isScalar;exports2.isSeq=identity.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit.visit;exports2.visitAsync=visit.visitAsync}});var require_importers=__commonJS({"src/lib/apiClient/importers.js"(exports2,module2){var crypto=require("crypto"),YAML=require_dist(),{check,fail,safeObject,request,resource,redact,pointer,flatten}=require_model(),id=()=>crypto.randomUUID(),pair=(key,value,extra={})=>({key:String(key),value:String(value??""),enabled:!0,...extra});function shellTokens(text){let tokens=[],token="",quote="",started=!1;text=text.replace(/\\\r?\n/g,"");for(let i=0;i<text.length;i++){let char=text[i];if(char==="\\"&&quote!=="'"){check(i+1<text.length,"cURL \u8F6C\u4E49\u4E0D\u5B8C\u6574"),token+=text[++i],started=!0;continue}if(quote){char===quote?quote="":token+=char,started=!0;continue}if(char==="'"||char==='"'){quote=char,started=!0;continue}if(/\s/.test(char)){started&&tokens.push(token),token="",started=!1;continue}check(!/[;|<>`]/.test(char)&&!(char==="$"&&text[i+1]==="("),"\u4EC5\u5141\u8BB8\u5355\u6761 cURL\uFF0C\u4E0D\u652F\u6301 shell \u547D\u4EE4"),token+=char,started=!0}return check(!quote,"cURL \u5F15\u53F7\u672A\u95ED\u5408"),started&&tokens.push(token),check(tokens.shift()?.toLowerCase()==="curl","\u8BF7\u8F93\u5165\u4EE5 curl \u5F00\u59CB\u7684\u547D\u4EE4"),tokens}function curl(text,warnings){let tokens=shellTokens(text),item={id:id(),name:"\u5BFC\u5165\u7684 cURL",method:"GET",url:"",headers:[],query:[],body:{type:"none"},auth:{type:"none"}},explicitMethod=!1;for(let i=0;i<tokens.length;i++){let flag=tokens[i],attached;if(flag.startsWith("--")&&flag.includes("=")){let index=flag.indexOf("=");attached=flag.slice(index+1),flag=flag.slice(0,index)}else/^-[XHduF].+/.test(flag)&&(attached=flag.slice(2),flag=flag.slice(0,2));let value=()=>{let result=attached??tokens[++i];return check(result!==void 0,`${flag} \u7F3A\u5C11\u53C2\u6570`),result};if(["-X","--request"].includes(flag))item.method=value().toUpperCase(),explicitMethod=!0;else if(["-H","--header"].includes(flag)){let line=value(),colon=line.indexOf(":");check(colon>0,"\u8BF7\u6C42\u5934\u683C\u5F0F\u4E3A Name: Value"),item.headers.push(pair(line.slice(0,colon),line.slice(colon+1).trim()))}else if(["-d","--data","--data-raw","--data-binary","--data-urlencode"].includes(flag)){let data=value();if(explicitMethod||(item.method="POST"),data.startsWith("@")&&flag!=="--data-raw")item.body={type:"binary"},warnings.push("cURL \u6587\u4EF6\u5F15\u7528\u9700\u8981\u91CD\u65B0\u9009\u62E9\u6587\u4EF6");else if(flag==="--data-urlencode"){let index=data.indexOf("=");item.body={type:"form",fields:[...item.body.fields||[],pair(index<0?data:data.slice(0,index),index<0?"":data.slice(index+1))]}}else item.body={type:"text",text:item.body.text?`${item.body.text}&${data}`:data}}else if(["-F","--form"].includes(flag)){let data=value(),index=data.indexOf("=");check(index>0,"\u8868\u5355\u683C\u5F0F\u4E3A key=value");let val=data.slice(index+1);item.body={type:"multipart",fields:[...item.body.fields||[],pair(data.slice(0,index),val.startsWith("@")?"":val,{file:val.startsWith("@")})]},val.startsWith("@")&&warnings.push("multipart \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9"),explicitMethod||(item.method="POST")}else if(["-u","--user"].includes(flag)){let data=value(),index=data.indexOf(":");item.auth={type:"basic",username:index<0?data:data.slice(0,index),password:index<0?"":data.slice(index+1)}}else if(["-b","--cookie"].includes(flag)){let val=value();val.includes("=")?item.headers.push(pair("Cookie",val)):warnings.push("\u4E0D\u8BFB\u53D6 cURL Cookie \u6587\u4EF6")}else if(flag==="--url")item.url=value();else if(["-I","--head"].includes(flag))item.method="HEAD",explicitMethod=!0;else if(["-k","--insecure"].includes(flag))item.settings={...item.settings,verifyTls:!1},warnings.push("\u6B64\u8BF7\u6C42\u5DF2\u5173\u95ED TLS \u9A8C\u8BC1");else if(["-L","--location"].includes(flag))item.settings={...item.settings,redirects:!0};else if(["--compressed","-s","--silent","-S","--show-error","-v","--verbose"].includes(flag))warnings.push(`\u5FFD\u7565 cURL \u9009\u9879 ${flag}`);else{if(flag.startsWith("-"))throw fail(`\u4E0D\u652F\u6301\u7684 cURL \u9009\u9879: ${flag}`);check(!item.url,"\u4EC5\u652F\u6301\u4E00\u4E2A URL"),item.url=flag}}check(item.url,"cURL \u7F3A\u5C11 URL");let type=item.headers.find(row=>row.key.toLowerCase()==="content-type")?.value||"";return item.body.type==="text"&&type.includes("json")&&(item.body.type="json"),{id:id(),name:"cURL \u5BFC\u5165",variables:[],items:[request(item)]}}function postman(data,warnings){check(data.info?.schema?.includes("/v2.1.0/"),"\u4EC5\u652F\u6301 Postman Collection v2.1");let vars=rows=>(rows||[]).map(row=>pair(row.key,row.value,{secret:row.type==="secret",enabled:!row.disabled})),auth=source=>{if(!source)return{type:"inherit"};let values=Object.fromEntries((source[source.type]||[]).map(row=>[row.key,row.value]));return source.type==="noauth"?{type:"none"}:source.type==="basic"?{type:"basic",username:values.username||"",password:values.password||""}:source.type==="bearer"?{type:"bearer",token:values.token||""}:source.type==="apikey"?{type:"apiKey",key:values.key||"",value:values.value||"",in:values.in||"header"}:(warnings.push(`\u4E0D\u652F\u6301 Postman \u8BA4\u8BC1 ${source.type}`),{type:"none"})},visit=(items,inheritedAuth)=>(items||[]).map(item=>{if(item.event?.length&&warnings.push(`${item.name}: \u811A\u672C\u672A\u5BFC\u5165`),item.variable?.length&&warnings.push(`${item.name}: \u6587\u4EF6\u5939/\u8BF7\u6C42\u5C40\u90E8\u53D8\u91CF\u8BF7\u79FB\u81F3\u96C6\u5408\u6216\u73AF\u5883`),item.response?.length&&warnings.push(`${item.name}: \u5DF2\u4FDD\u5B58\u7684\u54CD\u5E94\u793A\u4F8B\u672A\u5BFC\u5165`),item.item)return{id:id(),name:item.name,type:"folder",items:visit(item.item,item.auth?auth(item.auth):inheritedAuth)};let source=typeof item.request=="string"?{url:item.request}:item.request;check(source,"Postman \u8BF7\u6C42\u7F3A\u5931");let inputUrl=source.url,url=typeof inputUrl=="string"?inputUrl:inputUrl?.raw||"",query=typeof inputUrl=="object"&&inputUrl.query?vars(inputUrl.query):[];query.length&&(url=url.split("?")[0]);let variables=typeof inputUrl=="object"?inputUrl.variable||[]:[];for(let row of variables)url=url.replace(`:${row.key}`,row.value||`{{${row.key}}}`);let body={type:"none"};return source.body?.mode==="raw"?Object.assign(body,{type:source.body.options?.raw?.language==="json"?"json":"text",text:source.body.raw||""}):source.body?.mode==="urlencoded"?Object.assign(body,{type:"form",fields:vars(source.body.urlencoded)}):source.body?.mode==="formdata"?(Object.assign(body,{type:"multipart",fields:(source.body.formdata||[]).map(row=>pair(row.key,row.type==="file"?"":row.value,{file:row.type==="file",enabled:!row.disabled}))}),body.fields.some(row=>row.file)&&warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode==="file"?(body.type="binary",warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode&&warnings.push(`${item.name}: \u4E0D\u652F\u6301 Body ${source.body.mode}`),source.body?.options?.raw?.language&&!["json","text","xml","html"].includes(source.body.options.raw.language)&&warnings.push(`${item.name}: Body \u8BED\u8A00\u5DF2\u4F5C\u4E3A\u7EAF\u6587\u672C\u5BFC\u5165`),source.event?.length&&warnings.push(`${item.name}: \u8BF7\u6C42\u811A\u672C\u672A\u5BFC\u5165`),(source.protocolProfileBehavior||item.protocolProfileBehavior)&&warnings.push(`${item.name}: \u534F\u8BAE\u6269\u5C55\u8BBE\u7F6E\u672A\u5BFC\u5165`),request({id:id(),name:item.name,method:source.method||"GET",url,query,headers:vars(source.header),body,auth:source.auth?auth(source.auth):inheritedAuth})});return data.event?.length&&warnings.push("\u96C6\u5408\u811A\u672C\u672A\u5BFC\u5165"),/\{\{\$/.test(JSON.stringify(data))&&warnings.push("Postman \u52A8\u6001\u53D8\u91CF\u4E0D\u6267\u884C\uFF0C\u8BF7\u66FF\u6362\u4E3A\u73AF\u5883\u53D8\u91CF"),{id:id(),name:data.info.name||"Postman \u5BFC\u5165",variables:vars(data.variable),auth:auth(data.auth),items:visit(data.item,auth(data.auth))}}function openapi(data,warnings){check(/^3\.[01]\./.test(data.openapi||""),"\u4EC5\u652F\u6301 OpenAPI 3.0/3.1");let ref=(value,visited=new Set)=>{if(!value?.$ref)return value||{};if(!value.$ref.startsWith("#/"))return warnings.push(`\u5916\u90E8\u5F15\u7528\u672A\u89E3\u6790: ${value.$ref}`),{};if(visited.has(value.$ref))return warnings.push(`\u5FAA\u73AF\u5F15\u7528\u672A\u5C55\u5F00: ${value.$ref}`),{};visited.add(value.$ref);let found=pointer(data,value.$ref.slice(1));return found||warnings.push(`\u5F15\u7528\u4E0D\u5B58\u5728: ${value.$ref}`),ref(found,visited)},example=(input,seen=new Set,depth=0)=>{if(depth>8||input?.$ref&&seen.has(input.$ref))return null;input?.$ref&&(seen=new Set(seen),seen.add(input.$ref));let schema=ref(input);return schema.example!==void 0?schema.example:schema.default!==void 0?schema.default:schema.enum?.length?schema.enum[0]:schema.type==="object"||schema.properties?Object.fromEntries(Object.entries(schema.properties||{}).map(([key,val])=>[key,example(val,seen,depth+1)])):schema.type==="array"?[example(schema.items,seen,depth+1)]:schema.type==="boolean"?!1:["integer","number"].includes(schema.type)?0:""},folders=new Map,result={id:id(),name:data.info?.title||"OpenAPI \u5BFC\u5165",variables:[],items:[]};for(let[route,pathValue]of Object.entries(data.paths||{})){let pathItem=ref(pathValue);for(let method of["get","post","put","patch","delete","head","options"]){if(!pathItem[method])continue;let op=ref(pathItem[method]),server=(op.servers||pathItem.servers||data.servers||[{url:"{{baseUrl}}"}])[0],base=server.url;for(let[key,val]of Object.entries(server.variables||{}))base=base.replace(`{${key}}`,val.default??`{{${key}}}`);!/^https?:\/\//.test(base)&&!base.startsWith("{{")&&(warnings.push("\u76F8\u5BF9 server URL \u9700\u8981\u8BBE\u7F6E baseUrl"),base=`{{baseUrl}}${base}`);let url=base.replace(/\/$/,"")+route,query=[],headers=[],params=new Map;for(let raw of[...pathItem.parameters||[],...op.parameters||[]]){let p=ref(raw);params.set(`${p.in}:${p.name}`,p)}for(let p of params.values()){let val=p.example??example(p.schema);if(p.style&&!["form","simple"].includes(p.style)&&warnings.push(`${op.operationId||route}: \u53C2\u6570 ${p.name} \u7684 ${p.style} \u5E8F\u5217\u5316\u9700\u624B\u52A8\u914D\u7F6E`),p.in==="path")url=url.replace(`{${p.name}}`,val===""?`{{${p.name}}}`:encodeURIComponent(String(val)));else if(p.in==="query"){val&&typeof val=="object"&&!Array.isArray(val)&&warnings.push(`${route}: \u5BF9\u8C61\u53C2\u6570 ${p.name} \u7684\u5E8F\u5217\u5316\u9700\u624B\u52A8\u786E\u8BA4`);let values=Array.isArray(val)?p.explode===!1?[val.join(",")]:val:[val];for(let v of values)query.push(pair(p.name,typeof v=="object"?JSON.stringify(v):v))}else p.in==="header"?headers.push(pair(p.name,val)):p.in==="cookie"&&warnings.push(`${route}: Cookie \u53C2\u6570\u8BF7\u5728 Cookie \u9762\u677F\u914D\u7F6E`)}let content=ref(op.requestBody).content||{},contentType=Object.keys(content).find(key=>key.includes("json"))||Object.keys(content)[0],body={type:"none"};if(contentType){let media=ref(content[contentType]),val=media.example??Object.values(media.examples||{}).map(ref)[0]?.value??example(media.schema);contentType.includes("json")?body={type:"json",text:JSON.stringify(val,null,2)}:["multipart/form-data","application/x-www-form-urlencoded"].includes(contentType)?(body={type:contentType.startsWith("multipart")?"multipart":"form",fields:Object.entries(val||{}).map(([key,value])=>pair(key,value,{file:ref(media.schema).properties?.[key]?.format==="binary"}))},body.fields.some(row=>row.file)&&warnings.push(`${route}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):body={type:"text",text:typeof val=="string"?val:JSON.stringify(val)},body.type!=="multipart"&&headers.push(pair("Content-Type",contentType)),Object.keys(content).length>1&&warnings.push(`${route}: \u5DF2\u9009\u62E9 ${contentType}\uFF0C\u5176\u4ED6\u6B63\u6587\u7C7B\u578B\u672A\u5BFC\u5165`)}let auth={type:"none"},security=op.security??data.security??[];if(security.length){let names=Object.keys(security[0]),scheme=ref(data.components?.securitySchemes?.[names[0]]);(security.length>1||names.length>1)&&warnings.push(`${route}: \u591A\u79CD\u8BA4\u8BC1\u8981\u6C42\u9700\u624B\u52A8\u786E\u8BA4`),scheme.type==="http"&&scheme.scheme==="basic"?auth={type:"basic",username:"{{username}}",password:"{{password}}"}:scheme.type==="http"&&scheme.scheme==="bearer"||scheme.type==="oauth2"?auth={type:"bearer",token:"{{token}}"}:scheme.type==="apiKey"&&scheme.in!=="cookie"?auth={type:"apiKey",key:scheme.name,in:scheme.in,value:"{{apiKey}}"}:warnings.push(`${route}: \u8BA4\u8BC1 ${scheme.type||names[0]} \u9700\u624B\u52A8\u914D\u7F6E`),scheme.type==="oauth2"&&warnings.push(`${route}: OAuth Token \u9700\u624B\u52A8\u63D0\u4F9B`)}let tag=op.tags?.[0]||"\u9ED8\u8BA4";if(!folders.has(tag)){let folder={id:id(),type:"folder",name:tag,items:[]};folders.set(tag,folder),result.items.push(folder)}folders.get(tag).items.push(request({id:id(),name:op.summary||op.operationId||`${method.toUpperCase()} ${route}`,method:method.toUpperCase(),url,query,headers,body,auth})),(op.callbacks||op.links)&&warnings.push(`${route}: callbacks/links \u672A\u5BFC\u5165`)}}return data.webhooks&&warnings.push("OpenAPI webhooks \u672A\u5BFC\u5165"),result}function preview(format,text){check(typeof text=="string"&&Buffer.byteLength(text)<=20*1024*1024,"\u5BFC\u5165\u5185\u5BB9\u8D85\u8FC7 20 MiB");let warnings=[],value;if(format==="curl")value=curl(text,warnings);else{let data;try{data=YAML.parse(text,{maxAliasCount:30,uniqueKeys:!0})}catch{throw fail("JSON/YAML \u683C\u5F0F\u65E0\u6548")}if(safeObject(data),format==="postman")value=postman(data,warnings);else if(format==="openapi")value=openapi(data,warnings);else if(format==="native")check(data.schemaVersion===1,"\u539F\u751F\u683C\u5F0F\u9700\u8981 schemaVersion: 1"),value={...data,id:id()};else throw fail("\u4E0D\u652F\u6301\u7684\u5BFC\u5165\u683C\u5F0F")}let clean=redact(resource("collections",value));return JSON.stringify(clean)!==JSON.stringify(resource("collections",value))&&warnings.push("\u660E\u6587\u8BA4\u8BC1\u4E0E\u654F\u611F\u5B57\u6BB5\u5DF2\u6E05\u7A7A\uFF0C\u8BF7\u4F7F\u7528\u4F1A\u8BDD Secret \u53D8\u91CF\u91CD\u65B0\u586B\u5199"),{collection:clean,count:flatten(clean.items).length,warnings:[...new Set(warnings)]}}function exportCurl(input){let value=redact(request(input)),quote=text=>"'"+String(text).replace(/'/g,"'\\''")+"'",url=value.url,params=value.query.filter(row=>row.enabled!==!1).map(row=>`${encodeURIComponent(row.key)}=${encodeURIComponent(row.value).replace(/%7B/gi,"{").replace(/%7D/gi,"}")}`).join("&");params&&(url+=(url.includes("?")?"&":"?")+params);let parts=["curl","-X",value.method,quote(url)];for(let row of value.headers.filter(row2=>row2.enabled!==!1))parts.push("-H",quote(`${row.key}: ${row.value}`));if(value.auth.type==="bearer"&&parts.push("-H",quote(`Authorization: Bearer ${value.auth.token||"{{token}}"}`)),value.auth.type==="basic"&&parts.push("-u",quote(`${value.auth.username||"{{username}}"}:${value.auth.password||"{{password}}"}`)),value.auth.type==="apiKey")if(value.auth.in==="query"){let separator=url.includes("?")?"&":"?";parts[3]=quote(`${url}${separator}${encodeURIComponent(value.auth.key)}=${value.auth.value||"{{apiKey}}"}`)}else parts.push("-H",quote(`${value.auth.key}: ${value.auth.value||"{{apiKey}}"}`));if(["json","text","xml"].includes(value.body.type)&&(value.headers.some(row=>row.key.toLowerCase()==="content-type")||parts.push("-H",quote(`Content-Type: ${value.body.type==="json"?"application/json":value.body.type==="xml"?"application/xml":"text/plain"}`)),parts.push("--data-raw",quote(value.body.text||""))),value.body.type==="form")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("--data-urlencode",quote(`${row.key}=${row.value}`));if(value.body.type==="multipart")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("-F",quote(`${row.key}=${row.file?"@SELECT_FILE":row.value}`));return value.body.type==="binary"&&parts.push("--data-binary",quote("@SELECT_FILE")),value.settings.verifyTls||parts.push("--insecure"),parts.join(" ")}module2.exports={preview,exportCurl,shellTokens}}});var require_styles=__commonJS({"node_modules/colors/lib/styles.js"(exports2,module2){var styles={};module2.exports=styles;var codes={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(codes).forEach(function(key){var val=codes[key],style=styles[key]=[];style.open="\x1B["+val[0]+"m",style.close="\x1B["+val[1]+"m"})}});var require_has_flag=__commonJS({"node_modules/colors/lib/system/has-flag.js"(exports2,module2){"use strict";module2.exports=function(flag,argv){argv=argv||process.argv;var terminatorPos=argv.indexOf("--"),prefix=/^-{1,2}/.test(flag)?"":"--",pos=argv.indexOf(prefix+flag);return pos!==-1&&(terminatorPos===-1?!0:pos<terminatorPos)}}});var require_supports_colors=__commonJS({"node_modules/colors/lib/system/supports-colors.js"(exports2,module2){"use strict";var os=require("os"),hasFlag=require_has_flag(),env=process.env,forceColor=void 0;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")?forceColor=!1:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(forceColor=!0);"FORCE_COLOR"in env&&(forceColor=env.FORCE_COLOR.length===0||parseInt(env.FORCE_COLOR,10)!==0);function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function supportsColor(stream){if(forceColor===!1)return 0;if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2;if(stream&&!stream.isTTY&&forceColor!==!0)return 0;var min=forceColor?1:0;if(process.platform==="win32"){var osRelease=os.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(sign){return sign in env})||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in env){var version=parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:(env.TERM==="dumb",min)}function getSupportLevel(stream){var level=supportsColor(stream);return translateLevel(level)}module2.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}}});var require_trap=__commonJS({"node_modules/colors/lib/custom/trap.js"(exports2,module2){module2.exports=function(text,options){var result="";text=text||"Run the trap, drop the bass",text=text.split("");var trap={a:["@","\u0104","\u023A","\u0245","\u0394","\u039B","\u0414"],b:["\xDF","\u0181","\u0243","\u026E","\u03B2","\u0E3F"],c:["\xA9","\u023B","\u03FE"],d:["\xD0","\u018A","\u0500","\u0501","\u0502","\u0503"],e:["\xCB","\u0115","\u018E","\u0258","\u03A3","\u03BE","\u04BC","\u0A6C"],f:["\u04FA"],g:["\u0262"],h:["\u0126","\u0195","\u04A2","\u04BA","\u04C7","\u050A"],i:["\u0F0F"],j:["\u0134"],k:["\u0138","\u04A0","\u04C3","\u051E"],l:["\u0139"],m:["\u028D","\u04CD","\u04CE","\u0520","\u0521","\u0D69"],n:["\xD1","\u014B","\u019D","\u0376","\u03A0","\u048A"],o:["\xD8","\xF5","\xF8","\u01FE","\u0298","\u047A","\u05DD","\u06DD","\u0E4F"],p:["\u01F7","\u048E"],q:["\u09CD"],r:["\xAE","\u01A6","\u0210","\u024C","\u0280","\u042F"],s:["\xA7","\u03DE","\u03DF","\u03E8"],t:["\u0141","\u0166","\u0373"],u:["\u01B1","\u054D"],v:["\u05D8"],w:["\u0428","\u0460","\u047C","\u0D70"],x:["\u04B2","\u04FE","\u04FC","\u04FD"],y:["\xA5","\u04B0","\u04CB"],z:["\u01B5","\u0240"]};return text.forEach(function(c){c=c.toLowerCase();var chars=trap[c]||[" "],rand=Math.floor(Math.random()*chars.length);typeof trap[c]<"u"?result+=trap[c][rand]:result+=c}),result}}});var require_zalgo=__commonJS({"node_modules/colors/lib/custom/zalgo.js"(exports2,module2){module2.exports=function(text,options){text=text||" he is here ";var soul={up:["\u030D","\u030E","\u0304","\u0305","\u033F","\u0311","\u0306","\u0310","\u0352","\u0357","\u0351","\u0307","\u0308","\u030A","\u0342","\u0313","\u0308","\u034A","\u034B","\u034C","\u0303","\u0302","\u030C","\u0350","\u0300","\u0301","\u030B","\u030F","\u0312","\u0313","\u0314","\u033D","\u0309","\u0363","\u0364","\u0365","\u0366","\u0367","\u0368","\u0369","\u036A","\u036B","\u036C","\u036D","\u036E","\u036F","\u033E","\u035B","\u0346","\u031A"],down:["\u0316","\u0317","\u0318","\u0319","\u031C","\u031D","\u031E","\u031F","\u0320","\u0324","\u0325","\u0326","\u0329","\u032A","\u032B","\u032C","\u032D","\u032E","\u032F","\u0330","\u0331","\u0332","\u0333","\u0339","\u033A","\u033B","\u033C","\u0345","\u0347","\u0348","\u0349","\u034D","\u034E","\u0353","\u0354","\u0355","\u0356","\u0359","\u035A","\u0323"],mid:["\u0315","\u031B","\u0300","\u0301","\u0358","\u0321","\u0322","\u0327","\u0328","\u0334","\u0335","\u0336","\u035C","\u035D","\u035E","\u035F","\u0360","\u0362","\u0338","\u0337","\u0361"," \u0489"]},all=[].concat(soul.up,soul.down,soul.mid);function randomNumber(range){var r=Math.floor(Math.random()*range);return r}function isChar(character){var bool=!1;return all.filter(function(i){bool=i===character}),bool}function heComes(text2,options2){var result="",counts,l;options2=options2||{},options2.up=typeof options2.up<"u"?options2.up:!0,options2.mid=typeof options2.mid<"u"?options2.mid:!0,options2.down=typeof options2.down<"u"?options2.down:!0,options2.size=typeof options2.size<"u"?options2.size:"maxi",text2=text2.split("");for(l in text2)if(!isChar(l)){switch(result=result+text2[l],counts={up:0,down:0,mid:0},options2.size){case"mini":counts.up=randomNumber(8),counts.mid=randomNumber(2),counts.down=randomNumber(8);break;case"maxi":counts.up=randomNumber(16)+3,counts.mid=randomNumber(4)+1,counts.down=randomNumber(64)+3;break;default:counts.up=randomNumber(8)+1,counts.mid=randomNumber(6)/2,counts.down=randomNumber(8)+1;break}var arr=["up","mid","down"];for(var d in arr)for(var index=arr[d],i=0;i<=counts[index];i++)options2[index]&&(result=result+soul[index][randomNumber(soul[index].length)])}return result}return heComes(text,options)}}});var require_america=__commonJS({"node_modules/colors/lib/maps/america.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){if(letter===" ")return letter;switch(i%3){case 0:return colors.red(letter);case 1:return colors.white(letter);case 2:return colors.blue(letter)}}}}});var require_zebra=__commonJS({"node_modules/colors/lib/maps/zebra.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){return i%2===0?letter:colors.inverse(letter)}}}});var require_rainbow=__commonJS({"node_modules/colors/lib/maps/rainbow.js"(exports2,module2){module2.exports=function(colors){var rainbowColors=["red","yellow","green","blue","magenta"];return function(letter,i,exploded){return letter===" "?letter:colors[rainbowColors[i++%rainbowColors.length]](letter)}}}});var require_random=__commonJS({"node_modules/colors/lib/maps/random.js"(exports2,module2){module2.exports=function(colors){var available=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(letter,i,exploded){return letter===" "?letter:colors[available[Math.round(Math.random()*(available.length-2))]](letter)}}}});var require_colors=__commonJS({"node_modules/colors/lib/colors.js"(exports2,module2){var colors={};module2.exports=colors;colors.themes={};var util=require("util"),ansiStyles=colors.styles=require_styles(),defineProps=Object.defineProperties,newLineRegex=new RegExp(/[\r\n]+/g);colors.supportsColor=require_supports_colors().supportsColor;typeof colors.enabled>"u"&&(colors.enabled=colors.supportsColor()!==!1);colors.enable=function(){colors.enabled=!0};colors.disable=function(){colors.enabled=!1};colors.stripColors=colors.strip=function(str){return(""+str).replace(/\x1B\[\d+m/g,"")};var stylize=colors.stylize=function(str,style){if(!colors.enabled)return str+"";var styleMap=ansiStyles[style];return!styleMap&&style in colors?colors[style](str):styleMap.open+str+styleMap.close},matchOperatorsRe=/[|\\{}()[\]^$+*?.]/g,escapeStringRegexp=function(str){if(typeof str!="string")throw new TypeError("Expected a string");return str.replace(matchOperatorsRe,"\\$&")};function build(_styles){var builder=function builder2(){return applyStyle.apply(builder2,arguments)};return builder._styles=_styles,builder.__proto__=proto,builder}var styles=(function(){var ret={};return ansiStyles.grey=ansiStyles.gray,Object.keys(ansiStyles).forEach(function(key){ansiStyles[key].closeRe=new RegExp(escapeStringRegexp(ansiStyles[key].close),"g"),ret[key]={get:function(){return build(this._styles.concat(key))}}}),ret})(),proto=defineProps(function(){},styles);function applyStyle(){var args=Array.prototype.slice.call(arguments),str=args.map(function(arg){return arg!=null&&arg.constructor===String?arg:util.inspect(arg)}).join(" ");if(!colors.enabled||!str)return str;for(var newLinesPresent=str.indexOf(`
221
+ `,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st=>st.type==="newline"||st.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser}});var require_public_api=__commonJS({"node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),errors=require_errors(),log=require_log(),identity=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}function parseDocument(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}function parse(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}function stringify(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity.isDocument(value)&&!_replacer?value.toString(options):new Document.Document(value,_replacer,options).toString(options)}exports2.parse=parse;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument;exports2.stringify=stringify}});var require_dist=__commonJS({"node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity.isAlias;exports2.isCollection=identity.isCollection;exports2.isDocument=identity.isDocument;exports2.isMap=identity.isMap;exports2.isNode=identity.isNode;exports2.isPair=identity.isPair;exports2.isScalar=identity.isScalar;exports2.isSeq=identity.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit.visit;exports2.visitAsync=visit.visitAsync}});var require_importers=__commonJS({"src/lib/apiClient/importers.js"(exports2,module2){var crypto=require("crypto"),YAML=require_dist(),{isManagedHeader}=require_headers(),{check,fail,safeObject,request,resource,redact,pointer,flatten}=require_model(),id=()=>crypto.randomUUID(),pair=(key,value,extra={})=>({key:String(key),value:String(value??""),enabled:!0,...extra});function shellTokens(text){let tokens=[],token="",quote="",started=!1;text=text.replace(/\\\r?\n/g,"");for(let i=0;i<text.length;i++){let char=text[i];if(char==="\\"&&quote!=="'"){check(i+1<text.length,"cURL \u8F6C\u4E49\u4E0D\u5B8C\u6574"),token+=text[++i],started=!0;continue}if(quote){char===quote?quote="":token+=char,started=!0;continue}if(char==="'"||char==='"'){quote=char,started=!0;continue}if(/\s/.test(char)){started&&tokens.push(token),token="",started=!1;continue}check(!/[;|<>`]/.test(char)&&!(char==="$"&&text[i+1]==="("),"\u4EC5\u5141\u8BB8\u5355\u6761 cURL\uFF0C\u4E0D\u652F\u6301 shell \u547D\u4EE4"),token+=char,started=!0}return check(!quote,"cURL \u5F15\u53F7\u672A\u95ED\u5408"),started&&tokens.push(token),check(tokens.shift()?.toLowerCase()==="curl","\u8BF7\u8F93\u5165\u4EE5 curl \u5F00\u59CB\u7684\u547D\u4EE4"),tokens}function curl(text,warnings){let tokens=shellTokens(text),item={id:id(),name:"\u5BFC\u5165\u7684 cURL",method:"GET",url:"",headers:[],query:[],body:{type:"none"},auth:{type:"none"}},explicitMethod=!1;for(let i=0;i<tokens.length;i++){let flag=tokens[i],attached;if(flag.startsWith("--")&&flag.includes("=")){let index=flag.indexOf("=");attached=flag.slice(index+1),flag=flag.slice(0,index)}else/^-[XHduF].+/.test(flag)&&(attached=flag.slice(2),flag=flag.slice(0,2));let value=()=>{let result=attached??tokens[++i];return check(result!==void 0,`${flag} \u7F3A\u5C11\u53C2\u6570`),result};if(["-X","--request"].includes(flag))item.method=value().toUpperCase(),explicitMethod=!0;else if(["-H","--header"].includes(flag)){let line=value(),colon=line.indexOf(":");check(colon>0,"\u8BF7\u6C42\u5934\u683C\u5F0F\u4E3A Name: Value");let key=line.slice(0,colon).trim(),managed=isManagedHeader(key);item.headers.push(pair(key,line.slice(colon+1).trim(),{enabled:!managed})),managed&&warnings.push(`\u8BF7\u6C42\u5934 ${key} \u7531\u5BA2\u6237\u7AEF\u7BA1\u7406\uFF0C\u5DF2\u4FDD\u7559\u4F46\u505C\u7528\uFF0C\u65E0\u9700\u624B\u52A8\u8BBE\u7F6E`)}else if(["-d","--data","--data-raw","--data-binary","--data-urlencode"].includes(flag)){let data=value();if(explicitMethod||(item.method="POST"),data.startsWith("@")&&flag!=="--data-raw")item.body={type:"binary"},warnings.push("cURL \u6587\u4EF6\u5F15\u7528\u9700\u8981\u91CD\u65B0\u9009\u62E9\u6587\u4EF6");else if(flag==="--data-urlencode"){let index=data.indexOf("=");item.body={type:"form",fields:[...item.body.fields||[],pair(index<0?data:data.slice(0,index),index<0?"":data.slice(index+1))]}}else item.body={type:"text",text:item.body.text?`${item.body.text}&${data}`:data}}else if(["-F","--form"].includes(flag)){let data=value(),index=data.indexOf("=");check(index>0,"\u8868\u5355\u683C\u5F0F\u4E3A key=value");let val=data.slice(index+1);item.body={type:"multipart",fields:[...item.body.fields||[],pair(data.slice(0,index),val.startsWith("@")?"":val,{file:val.startsWith("@")})]},val.startsWith("@")&&warnings.push("multipart \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9"),explicitMethod||(item.method="POST")}else if(["-u","--user"].includes(flag)){let data=value(),index=data.indexOf(":");item.auth={type:"basic",username:index<0?data:data.slice(0,index),password:index<0?"":data.slice(index+1)}}else if(["-b","--cookie"].includes(flag)){let val=value();val.includes("=")?item.headers.push(pair("Cookie",val)):warnings.push("\u4E0D\u8BFB\u53D6 cURL Cookie \u6587\u4EF6")}else if(flag==="--url")item.url=value();else if(["-I","--head"].includes(flag))item.method="HEAD",explicitMethod=!0;else if(["-k","--insecure"].includes(flag))item.settings={...item.settings,verifyTls:!1},warnings.push("\u6B64\u8BF7\u6C42\u5DF2\u5173\u95ED TLS \u9A8C\u8BC1");else if(["-L","--location"].includes(flag))item.settings={...item.settings,redirects:!0};else if(["--compressed","-s","--silent","-S","--show-error","-v","--verbose"].includes(flag))warnings.push(`\u5FFD\u7565 cURL \u9009\u9879 ${flag}`);else{if(flag.startsWith("-"))throw fail(`\u4E0D\u652F\u6301\u7684 cURL \u9009\u9879: ${flag}`);check(!item.url,"\u4EC5\u652F\u6301\u4E00\u4E2A URL"),item.url=flag}}check(item.url,"cURL \u7F3A\u5C11 URL");let type=item.headers.find(row=>row.key.toLowerCase()==="content-type")?.value||"";return item.body.type==="text"&&type.includes("json")&&(item.body.type="json"),{id:id(),name:"cURL \u5BFC\u5165",variables:[],items:[request(item)]}}function postman(data,warnings){check(data.info?.schema?.includes("/v2.1.0/"),"\u4EC5\u652F\u6301 Postman Collection v2.1");let vars=rows=>(rows||[]).map(row=>pair(row.key,row.value,{secret:row.type==="secret",enabled:!row.disabled})),auth=source=>{if(!source)return{type:"inherit"};let values=Object.fromEntries((source[source.type]||[]).map(row=>[row.key,row.value]));return source.type==="noauth"?{type:"none"}:source.type==="basic"?{type:"basic",username:values.username||"",password:values.password||""}:source.type==="bearer"?{type:"bearer",token:values.token||""}:source.type==="apikey"?{type:"apiKey",key:values.key||"",value:values.value||"",in:values.in||"header"}:(warnings.push(`\u4E0D\u652F\u6301 Postman \u8BA4\u8BC1 ${source.type}`),{type:"none"})},visit=(items,inheritedAuth)=>(items||[]).map(item=>{if(item.event?.length&&warnings.push(`${item.name}: \u811A\u672C\u672A\u5BFC\u5165`),item.variable?.length&&warnings.push(`${item.name}: \u6587\u4EF6\u5939/\u8BF7\u6C42\u5C40\u90E8\u53D8\u91CF\u8BF7\u79FB\u81F3\u96C6\u5408\u6216\u73AF\u5883`),item.response?.length&&warnings.push(`${item.name}: \u5DF2\u4FDD\u5B58\u7684\u54CD\u5E94\u793A\u4F8B\u672A\u5BFC\u5165`),item.item)return{id:id(),name:item.name,type:"folder",items:visit(item.item,item.auth?auth(item.auth):inheritedAuth)};let source=typeof item.request=="string"?{url:item.request}:item.request;check(source,"Postman \u8BF7\u6C42\u7F3A\u5931");let inputUrl=source.url,url=typeof inputUrl=="string"?inputUrl:inputUrl?.raw||"",query=typeof inputUrl=="object"&&inputUrl.query?vars(inputUrl.query):[];query.length&&(url=url.split("?")[0]);let variables=typeof inputUrl=="object"?inputUrl.variable||[]:[];for(let row of variables)url=url.replace(`:${row.key}`,row.value||`{{${row.key}}}`);let body={type:"none"};return source.body?.mode==="raw"?Object.assign(body,{type:source.body.options?.raw?.language==="json"?"json":"text",text:source.body.raw||""}):source.body?.mode==="urlencoded"?Object.assign(body,{type:"form",fields:vars(source.body.urlencoded)}):source.body?.mode==="formdata"?(Object.assign(body,{type:"multipart",fields:(source.body.formdata||[]).map(row=>pair(row.key,row.type==="file"?"":row.value,{file:row.type==="file",enabled:!row.disabled}))}),body.fields.some(row=>row.file)&&warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode==="file"?(body.type="binary",warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode&&warnings.push(`${item.name}: \u4E0D\u652F\u6301 Body ${source.body.mode}`),source.body?.options?.raw?.language&&!["json","text","xml","html"].includes(source.body.options.raw.language)&&warnings.push(`${item.name}: Body \u8BED\u8A00\u5DF2\u4F5C\u4E3A\u7EAF\u6587\u672C\u5BFC\u5165`),source.event?.length&&warnings.push(`${item.name}: \u8BF7\u6C42\u811A\u672C\u672A\u5BFC\u5165`),(source.protocolProfileBehavior||item.protocolProfileBehavior)&&warnings.push(`${item.name}: \u534F\u8BAE\u6269\u5C55\u8BBE\u7F6E\u672A\u5BFC\u5165`),request({id:id(),name:item.name,method:source.method||"GET",url,query,headers:vars(source.header),body,auth:source.auth?auth(source.auth):inheritedAuth})});return data.event?.length&&warnings.push("\u96C6\u5408\u811A\u672C\u672A\u5BFC\u5165"),/\{\{\$/.test(JSON.stringify(data))&&warnings.push("Postman \u52A8\u6001\u53D8\u91CF\u4E0D\u6267\u884C\uFF0C\u8BF7\u66FF\u6362\u4E3A\u73AF\u5883\u53D8\u91CF"),{id:id(),name:data.info.name||"Postman \u5BFC\u5165",variables:vars(data.variable),auth:auth(data.auth),items:visit(data.item,auth(data.auth))}}function openapi(data,warnings){check(/^3\.[01]\./.test(data.openapi||""),"\u4EC5\u652F\u6301 OpenAPI 3.0/3.1");let ref=(value,visited=new Set)=>{if(!value?.$ref)return value||{};if(!value.$ref.startsWith("#/"))return warnings.push(`\u5916\u90E8\u5F15\u7528\u672A\u89E3\u6790: ${value.$ref}`),{};if(visited.has(value.$ref))return warnings.push(`\u5FAA\u73AF\u5F15\u7528\u672A\u5C55\u5F00: ${value.$ref}`),{};visited.add(value.$ref);let found=pointer(data,value.$ref.slice(1));return found||warnings.push(`\u5F15\u7528\u4E0D\u5B58\u5728: ${value.$ref}`),ref(found,visited)},example=(input,seen=new Set,depth=0)=>{if(depth>8||input?.$ref&&seen.has(input.$ref))return null;input?.$ref&&(seen=new Set(seen),seen.add(input.$ref));let schema=ref(input);return schema.example!==void 0?schema.example:schema.default!==void 0?schema.default:schema.enum?.length?schema.enum[0]:schema.type==="object"||schema.properties?Object.fromEntries(Object.entries(schema.properties||{}).map(([key,val])=>[key,example(val,seen,depth+1)])):schema.type==="array"?[example(schema.items,seen,depth+1)]:schema.type==="boolean"?!1:["integer","number"].includes(schema.type)?0:""},folders=new Map,result={id:id(),name:data.info?.title||"OpenAPI \u5BFC\u5165",variables:[],items:[]};for(let[route,pathValue]of Object.entries(data.paths||{})){let pathItem=ref(pathValue);for(let method of["get","post","put","patch","delete","head","options"]){if(!pathItem[method])continue;let op=ref(pathItem[method]),server=(op.servers||pathItem.servers||data.servers||[{url:"{{baseUrl}}"}])[0],base=server.url;for(let[key,val]of Object.entries(server.variables||{}))base=base.replace(`{${key}}`,val.default??`{{${key}}}`);!/^https?:\/\//.test(base)&&!base.startsWith("{{")&&(warnings.push("\u76F8\u5BF9 server URL \u9700\u8981\u8BBE\u7F6E baseUrl"),base=`{{baseUrl}}${base}`);let url=base.replace(/\/$/,"")+route,query=[],headers=[],params=new Map;for(let raw of[...pathItem.parameters||[],...op.parameters||[]]){let p=ref(raw);params.set(`${p.in}:${p.name}`,p)}for(let p of params.values()){let val=p.example??example(p.schema);if(p.style&&!["form","simple"].includes(p.style)&&warnings.push(`${op.operationId||route}: \u53C2\u6570 ${p.name} \u7684 ${p.style} \u5E8F\u5217\u5316\u9700\u624B\u52A8\u914D\u7F6E`),p.in==="path")url=url.replace(`{${p.name}}`,val===""?`{{${p.name}}}`:encodeURIComponent(String(val)));else if(p.in==="query"){val&&typeof val=="object"&&!Array.isArray(val)&&warnings.push(`${route}: \u5BF9\u8C61\u53C2\u6570 ${p.name} \u7684\u5E8F\u5217\u5316\u9700\u624B\u52A8\u786E\u8BA4`);let values=Array.isArray(val)?p.explode===!1?[val.join(",")]:val:[val];for(let v of values)query.push(pair(p.name,typeof v=="object"?JSON.stringify(v):v))}else p.in==="header"?headers.push(pair(p.name,val)):p.in==="cookie"&&warnings.push(`${route}: Cookie \u53C2\u6570\u8BF7\u5728 Cookie \u9762\u677F\u914D\u7F6E`)}let content=ref(op.requestBody).content||{},contentType=Object.keys(content).find(key=>key.includes("json"))||Object.keys(content)[0],body={type:"none"};if(contentType){let media=ref(content[contentType]),val=media.example??Object.values(media.examples||{}).map(ref)[0]?.value??example(media.schema);contentType.includes("json")?body={type:"json",text:JSON.stringify(val,null,2)}:["multipart/form-data","application/x-www-form-urlencoded"].includes(contentType)?(body={type:contentType.startsWith("multipart")?"multipart":"form",fields:Object.entries(val||{}).map(([key,value])=>pair(key,value,{file:ref(media.schema).properties?.[key]?.format==="binary"}))},body.fields.some(row=>row.file)&&warnings.push(`${route}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):body={type:"text",text:typeof val=="string"?val:JSON.stringify(val)},body.type!=="multipart"&&headers.push(pair("Content-Type",contentType)),Object.keys(content).length>1&&warnings.push(`${route}: \u5DF2\u9009\u62E9 ${contentType}\uFF0C\u5176\u4ED6\u6B63\u6587\u7C7B\u578B\u672A\u5BFC\u5165`)}let auth={type:"none"},security=op.security??data.security??[];if(security.length){let names=Object.keys(security[0]),scheme=ref(data.components?.securitySchemes?.[names[0]]);(security.length>1||names.length>1)&&warnings.push(`${route}: \u591A\u79CD\u8BA4\u8BC1\u8981\u6C42\u9700\u624B\u52A8\u786E\u8BA4`),scheme.type==="http"&&scheme.scheme==="basic"?auth={type:"basic",username:"{{username}}",password:"{{password}}"}:scheme.type==="http"&&scheme.scheme==="bearer"||scheme.type==="oauth2"?auth={type:"bearer",token:"{{token}}"}:scheme.type==="apiKey"&&scheme.in!=="cookie"?auth={type:"apiKey",key:scheme.name,in:scheme.in,value:"{{apiKey}}"}:warnings.push(`${route}: \u8BA4\u8BC1 ${scheme.type||names[0]} \u9700\u624B\u52A8\u914D\u7F6E`),scheme.type==="oauth2"&&warnings.push(`${route}: OAuth Token \u9700\u624B\u52A8\u63D0\u4F9B`)}let tag=op.tags?.[0]||"\u9ED8\u8BA4";if(!folders.has(tag)){let folder={id:id(),type:"folder",name:tag,items:[]};folders.set(tag,folder),result.items.push(folder)}folders.get(tag).items.push(request({id:id(),name:op.summary||op.operationId||`${method.toUpperCase()} ${route}`,method:method.toUpperCase(),url,query,headers,body,auth})),(op.callbacks||op.links)&&warnings.push(`${route}: callbacks/links \u672A\u5BFC\u5165`)}}return data.webhooks&&warnings.push("OpenAPI webhooks \u672A\u5BFC\u5165"),result}function preview(format,text){check(typeof text=="string"&&Buffer.byteLength(text)<=20*1024*1024,"\u5BFC\u5165\u5185\u5BB9\u8D85\u8FC7 20 MiB");let warnings=[],value;if(format==="curl")value=curl(text,warnings);else{let data;try{data=YAML.parse(text,{maxAliasCount:30,uniqueKeys:!0})}catch{throw fail("JSON/YAML \u683C\u5F0F\u65E0\u6548")}if(safeObject(data),format==="postman")value=postman(data,warnings);else if(format==="openapi")value=openapi(data,warnings);else if(format==="native")check(data.schemaVersion===1,"\u539F\u751F\u683C\u5F0F\u9700\u8981 schemaVersion: 1"),value={...data,id:id()};else throw fail("\u4E0D\u652F\u6301\u7684\u5BFC\u5165\u683C\u5F0F")}let clean=redact(resource("collections",value));return JSON.stringify(clean)!==JSON.stringify(resource("collections",value))&&warnings.push("\u660E\u6587\u8BA4\u8BC1\u4E0E\u654F\u611F\u5B57\u6BB5\u5DF2\u6E05\u7A7A\uFF0C\u8BF7\u4F7F\u7528\u4F1A\u8BDD Secret \u53D8\u91CF\u91CD\u65B0\u586B\u5199"),{collection:clean,count:flatten(clean.items).length,warnings:[...new Set(warnings)]}}function exportCurl(input){let value=redact(request(input)),quote=text=>"'"+String(text).replace(/'/g,"'\\''")+"'",url=value.url,params=value.query.filter(row=>row.enabled!==!1).map(row=>`${encodeURIComponent(row.key)}=${encodeURIComponent(row.value).replace(/%7B/gi,"{").replace(/%7D/gi,"}")}`).join("&");params&&(url+=(url.includes("?")?"&":"?")+params);let parts=["curl","-X",value.method,quote(url)];for(let row of value.headers.filter(row2=>row2.enabled!==!1))parts.push("-H",quote(`${row.key}: ${row.value}`));if(value.auth.type==="bearer"&&parts.push("-H",quote(`Authorization: Bearer ${value.auth.token||"{{token}}"}`)),value.auth.type==="basic"&&parts.push("-u",quote(`${value.auth.username||"{{username}}"}:${value.auth.password||"{{password}}"}`)),value.auth.type==="apiKey")if(value.auth.in==="query"){let separator=url.includes("?")?"&":"?";parts[3]=quote(`${url}${separator}${encodeURIComponent(value.auth.key)}=${value.auth.value||"{{apiKey}}"}`)}else parts.push("-H",quote(`${value.auth.key}: ${value.auth.value||"{{apiKey}}"}`));if(["json","text","xml"].includes(value.body.type)&&(value.headers.some(row=>row.key.toLowerCase()==="content-type")||parts.push("-H",quote(`Content-Type: ${value.body.type==="json"?"application/json":value.body.type==="xml"?"application/xml":"text/plain"}`)),parts.push("--data-raw",quote(value.body.text||""))),value.body.type==="form")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("--data-urlencode",quote(`${row.key}=${row.value}`));if(value.body.type==="multipart")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("-F",quote(`${row.key}=${row.file?"@SELECT_FILE":row.value}`));return value.body.type==="binary"&&parts.push("--data-binary",quote("@SELECT_FILE")),value.settings.verifyTls||parts.push("--insecure"),parts.join(" ")}module2.exports={preview,exportCurl,shellTokens}}});var require_styles=__commonJS({"node_modules/colors/lib/styles.js"(exports2,module2){var styles={};module2.exports=styles;var codes={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(codes).forEach(function(key){var val=codes[key],style=styles[key]=[];style.open="\x1B["+val[0]+"m",style.close="\x1B["+val[1]+"m"})}});var require_has_flag=__commonJS({"node_modules/colors/lib/system/has-flag.js"(exports2,module2){"use strict";module2.exports=function(flag,argv){argv=argv||process.argv;var terminatorPos=argv.indexOf("--"),prefix=/^-{1,2}/.test(flag)?"":"--",pos=argv.indexOf(prefix+flag);return pos!==-1&&(terminatorPos===-1?!0:pos<terminatorPos)}}});var require_supports_colors=__commonJS({"node_modules/colors/lib/system/supports-colors.js"(exports2,module2){"use strict";var os=require("os"),hasFlag=require_has_flag(),env=process.env,forceColor=void 0;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")?forceColor=!1:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(forceColor=!0);"FORCE_COLOR"in env&&(forceColor=env.FORCE_COLOR.length===0||parseInt(env.FORCE_COLOR,10)!==0);function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function supportsColor(stream){if(forceColor===!1)return 0;if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2;if(stream&&!stream.isTTY&&forceColor!==!0)return 0;var min=forceColor?1:0;if(process.platform==="win32"){var osRelease=os.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(sign){return sign in env})||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in env){var version=parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:(env.TERM==="dumb",min)}function getSupportLevel(stream){var level=supportsColor(stream);return translateLevel(level)}module2.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}}});var require_trap=__commonJS({"node_modules/colors/lib/custom/trap.js"(exports2,module2){module2.exports=function(text,options){var result="";text=text||"Run the trap, drop the bass",text=text.split("");var trap={a:["@","\u0104","\u023A","\u0245","\u0394","\u039B","\u0414"],b:["\xDF","\u0181","\u0243","\u026E","\u03B2","\u0E3F"],c:["\xA9","\u023B","\u03FE"],d:["\xD0","\u018A","\u0500","\u0501","\u0502","\u0503"],e:["\xCB","\u0115","\u018E","\u0258","\u03A3","\u03BE","\u04BC","\u0A6C"],f:["\u04FA"],g:["\u0262"],h:["\u0126","\u0195","\u04A2","\u04BA","\u04C7","\u050A"],i:["\u0F0F"],j:["\u0134"],k:["\u0138","\u04A0","\u04C3","\u051E"],l:["\u0139"],m:["\u028D","\u04CD","\u04CE","\u0520","\u0521","\u0D69"],n:["\xD1","\u014B","\u019D","\u0376","\u03A0","\u048A"],o:["\xD8","\xF5","\xF8","\u01FE","\u0298","\u047A","\u05DD","\u06DD","\u0E4F"],p:["\u01F7","\u048E"],q:["\u09CD"],r:["\xAE","\u01A6","\u0210","\u024C","\u0280","\u042F"],s:["\xA7","\u03DE","\u03DF","\u03E8"],t:["\u0141","\u0166","\u0373"],u:["\u01B1","\u054D"],v:["\u05D8"],w:["\u0428","\u0460","\u047C","\u0D70"],x:["\u04B2","\u04FE","\u04FC","\u04FD"],y:["\xA5","\u04B0","\u04CB"],z:["\u01B5","\u0240"]};return text.forEach(function(c){c=c.toLowerCase();var chars=trap[c]||[" "],rand=Math.floor(Math.random()*chars.length);typeof trap[c]<"u"?result+=trap[c][rand]:result+=c}),result}}});var require_zalgo=__commonJS({"node_modules/colors/lib/custom/zalgo.js"(exports2,module2){module2.exports=function(text,options){text=text||" he is here ";var soul={up:["\u030D","\u030E","\u0304","\u0305","\u033F","\u0311","\u0306","\u0310","\u0352","\u0357","\u0351","\u0307","\u0308","\u030A","\u0342","\u0313","\u0308","\u034A","\u034B","\u034C","\u0303","\u0302","\u030C","\u0350","\u0300","\u0301","\u030B","\u030F","\u0312","\u0313","\u0314","\u033D","\u0309","\u0363","\u0364","\u0365","\u0366","\u0367","\u0368","\u0369","\u036A","\u036B","\u036C","\u036D","\u036E","\u036F","\u033E","\u035B","\u0346","\u031A"],down:["\u0316","\u0317","\u0318","\u0319","\u031C","\u031D","\u031E","\u031F","\u0320","\u0324","\u0325","\u0326","\u0329","\u032A","\u032B","\u032C","\u032D","\u032E","\u032F","\u0330","\u0331","\u0332","\u0333","\u0339","\u033A","\u033B","\u033C","\u0345","\u0347","\u0348","\u0349","\u034D","\u034E","\u0353","\u0354","\u0355","\u0356","\u0359","\u035A","\u0323"],mid:["\u0315","\u031B","\u0300","\u0301","\u0358","\u0321","\u0322","\u0327","\u0328","\u0334","\u0335","\u0336","\u035C","\u035D","\u035E","\u035F","\u0360","\u0362","\u0338","\u0337","\u0361"," \u0489"]},all=[].concat(soul.up,soul.down,soul.mid);function randomNumber(range){var r=Math.floor(Math.random()*range);return r}function isChar(character){var bool=!1;return all.filter(function(i){bool=i===character}),bool}function heComes(text2,options2){var result="",counts,l;options2=options2||{},options2.up=typeof options2.up<"u"?options2.up:!0,options2.mid=typeof options2.mid<"u"?options2.mid:!0,options2.down=typeof options2.down<"u"?options2.down:!0,options2.size=typeof options2.size<"u"?options2.size:"maxi",text2=text2.split("");for(l in text2)if(!isChar(l)){switch(result=result+text2[l],counts={up:0,down:0,mid:0},options2.size){case"mini":counts.up=randomNumber(8),counts.mid=randomNumber(2),counts.down=randomNumber(8);break;case"maxi":counts.up=randomNumber(16)+3,counts.mid=randomNumber(4)+1,counts.down=randomNumber(64)+3;break;default:counts.up=randomNumber(8)+1,counts.mid=randomNumber(6)/2,counts.down=randomNumber(8)+1;break}var arr=["up","mid","down"];for(var d in arr)for(var index=arr[d],i=0;i<=counts[index];i++)options2[index]&&(result=result+soul[index][randomNumber(soul[index].length)])}return result}return heComes(text,options)}}});var require_america=__commonJS({"node_modules/colors/lib/maps/america.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){if(letter===" ")return letter;switch(i%3){case 0:return colors.red(letter);case 1:return colors.white(letter);case 2:return colors.blue(letter)}}}}});var require_zebra=__commonJS({"node_modules/colors/lib/maps/zebra.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){return i%2===0?letter:colors.inverse(letter)}}}});var require_rainbow=__commonJS({"node_modules/colors/lib/maps/rainbow.js"(exports2,module2){module2.exports=function(colors){var rainbowColors=["red","yellow","green","blue","magenta"];return function(letter,i,exploded){return letter===" "?letter:colors[rainbowColors[i++%rainbowColors.length]](letter)}}}});var require_random=__commonJS({"node_modules/colors/lib/maps/random.js"(exports2,module2){module2.exports=function(colors){var available=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(letter,i,exploded){return letter===" "?letter:colors[available[Math.round(Math.random()*(available.length-2))]](letter)}}}});var require_colors=__commonJS({"node_modules/colors/lib/colors.js"(exports2,module2){var colors={};module2.exports=colors;colors.themes={};var util=require("util"),ansiStyles=colors.styles=require_styles(),defineProps=Object.defineProperties,newLineRegex=new RegExp(/[\r\n]+/g);colors.supportsColor=require_supports_colors().supportsColor;typeof colors.enabled>"u"&&(colors.enabled=colors.supportsColor()!==!1);colors.enable=function(){colors.enabled=!0};colors.disable=function(){colors.enabled=!1};colors.stripColors=colors.strip=function(str){return(""+str).replace(/\x1B\[\d+m/g,"")};var stylize=colors.stylize=function(str,style){if(!colors.enabled)return str+"";var styleMap=ansiStyles[style];return!styleMap&&style in colors?colors[style](str):styleMap.open+str+styleMap.close},matchOperatorsRe=/[|\\{}()[\]^$+*?.]/g,escapeStringRegexp=function(str){if(typeof str!="string")throw new TypeError("Expected a string");return str.replace(matchOperatorsRe,"\\$&")};function build(_styles){var builder=function builder2(){return applyStyle.apply(builder2,arguments)};return builder._styles=_styles,builder.__proto__=proto,builder}var styles=(function(){var ret={};return ansiStyles.grey=ansiStyles.gray,Object.keys(ansiStyles).forEach(function(key){ansiStyles[key].closeRe=new RegExp(escapeStringRegexp(ansiStyles[key].close),"g"),ret[key]={get:function(){return build(this._styles.concat(key))}}}),ret})(),proto=defineProps(function(){},styles);function applyStyle(){var args=Array.prototype.slice.call(arguments),str=args.map(function(arg){return arg!=null&&arg.constructor===String?arg:util.inspect(arg)}).join(" ");if(!colors.enabled||!str)return str;for(var newLinesPresent=str.indexOf(`
222
222
  `)!=-1,nestedStyles=this._styles,i=nestedStyles.length;i--;){var code=ansiStyles[nestedStyles[i]];str=code.open+str.replace(code.closeRe,code.open)+code.close,newLinesPresent&&(str=str.replace(newLineRegex,function(match){return code.close+match+code.open}))}return str}colors.setTheme=function(theme){if(typeof theme=="string"){console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));");return}for(var style in theme)(function(style2){colors[style2]=function(str){if(typeof theme[style2]=="object"){var out=str;for(var i in theme[style2])out=colors[theme[style2][i]](out);return out}return colors[theme[style2]](str)}})(style)};function init(){var ret={};return Object.keys(styles).forEach(function(name){ret[name]={get:function(){return build([name])}}}),ret}var sequencer=function(map2,str){var exploded=str.split("");return exploded=exploded.map(map2),exploded.join("")};colors.trap=require_trap();colors.zalgo=require_zalgo();colors.maps={};colors.maps.america=require_america()(colors);colors.maps.zebra=require_zebra()(colors);colors.maps.rainbow=require_rainbow()(colors);colors.maps.random=require_random()(colors);for(map in colors.maps)(function(map2){colors[map2]=function(str){return sequencer(colors.maps[map2],str)}})(map);var map;defineProps(colors,init())}});var require_safe=__commonJS({"node_modules/colors/safe.js"(exports2,module2){var colors=require_colors();module2.exports=colors}});var require_utils4=__commonJS({"src/lib/utils.js"(exports2,module2){var fs=require("fs"),colors=require_safe(),path=require("path"),os=require("os"),net=require("net"),{spawnSync,spawn,execFile}=require("child_process"),getLogger=function(logFileDirPath){let options={flags:"a",encoding:"utf8"},output=fs.createWriteStream(path.resolve(logFileDirPath||path.resolve(process.cwd()),"./stdout.log"),options),errorOutput=fs.createWriteStream(path.resolve(logFileDirPath||path.resolve(process.cwd()),"./stderr.log"),options),logger2=new console.Console(output,errorOutput);return{log:(...args)=>logger2.log.call(null,`[${dateFormat("YYYY-mm-dd HH:MM:SS:fff")}] - `,...args),error:(...args)=>logger2.error.call(null,`[${dateFormat("YYYY-mm-dd HH:MM:SS:fff")}] - `,...args)}};function dateFormat(fmt,date=new Date){let ret,opt={"Y+":date.getFullYear().toString(),"m+":(date.getMonth()+1).toString(),"d+":date.getDate().toString(),"H+":date.getHours().toString(),"M+":date.getMinutes().toString(),"S+":date.getSeconds().toString(),"f+":date.getMilliseconds().toString()};for(let k in opt)ret=new RegExp("("+k+")").exec(fmt),ret&&(fmt=fmt.replace(ret[1],ret[1].length===1?opt[k]:opt[k].padStart(ret[1].length,"0")));return fmt}function logger(isSilent=!1){let logObj=null;return isSilent?logObj={info:function(){},assert:function(){}}:logObj={info:console.log,assert:console.assert},logObj}function parseAttribHidden(stdout){let line=String(stdout||"").split(/\r?\n/)[0]||"",pathStart=line.search(/[A-Za-z]:[\\/]|\\\\/);return(pathStart===-1?line:line.slice(0,pathStart)).toUpperCase().includes("H")}function isWindowsHiddenByAttrib(filePath){let result;try{result=spawnSync("attrib",[filePath],{encoding:"utf8",windowsHide:!0,timeout:5e3})}catch{return!1}return result.error||result.status!==0?!1:parseAttribHidden(result.stdout)}var WINDOWS_ATTRIB_CACHE_TTL=5e3,windowsAttribCache=new Map,windowsAttribInFlight=new Map;function isWindowsHiddenByAttribAsync(filePath,options){let cache=options.cache!==!1;if(cache){let cached=windowsAttribCache.get(filePath);if(cached&&cached.expires>Date.now())return Promise.resolve(cached.hidden);let inFlight=windowsAttribInFlight.get(filePath);if(inFlight)return inFlight}let execFileFn=options.attribExecFile||execFile,promise=new Promise(resolve=>{execFileFn("attrib",[filePath],{encoding:"utf8",windowsHide:!0,timeout:5e3},(error,stdout)=>resolve(!error&&parseAttribHidden(stdout)))}).then(hidden=>(cache&&windowsAttribCache.set(filePath,{hidden,expires:Date.now()+WINDOWS_ATTRIB_CACHE_TTL}),hidden));return promise.finally(()=>{windowsAttribInFlight.delete(filePath)}),cache&&windowsAttribInFlight.set(filePath,promise),promise}function isHiddenByNaming(filePath,platform){let name=path.basename(filePath);return name.startsWith(".")&&name!=="."&&name!==".."?!0:platform!=="win32"&&/(^|[\\/])\.[^\\/.]/.test(filePath)}function isHiddenPath(filePath){return typeof filePath!="string"||!filePath?!1:isHiddenByNaming(filePath,process.platform)?!0:process.platform==="win32"?isWindowsHiddenByAttrib(filePath):!1}var WINDOWS_HIDDEN_BULK_MIN=8,WINDOWS_HIDDEN_CACHE_TTL=5e3,windowsHiddenInFlight=new Map,windowsHiddenCache=new Map;function buildHiddenListingCommand(directory){return`[Console]::OutputEncoding=[System.Text.Encoding]::UTF8;$d='${String(directory).replace(/'/g,"''")}';Get-ChildItem -LiteralPath $d -Force | ForEach-Object { $_.Name + [char]9 + [int](($_.Attributes -band [System.IO.FileAttributes]::Hidden) -ne 0) }`}function parseHiddenListingOutput(output){let hidden=new Set;for(let line of String(output||"").split(/\r?\n/)){if(!line)continue;let separator=line.indexOf(" ");separator<=0||line.slice(separator+1)==="1"&&hidden.add(line.slice(0,separator))}return hidden}function runWindowsHiddenListing(directory,execFileFn){return new Promise((resolve,reject)=>{execFileFn("powershell.exe",["-NoProfile","-NonInteractive","-Command",buildHiddenListingCommand(directory)],{encoding:"utf8",windowsHide:!0,timeout:15e3,maxBuffer:64*1024*1024},(error,stdout)=>error?reject(error):resolve(String(stdout||"")))})}async function getWindowsOsHiddenNames(directory,options){let cache=options.cache!==!1;if(cache){let cached=windowsHiddenCache.get(directory);if(cached&&cached.expires>Date.now())return cached.names;let inFlight=windowsHiddenInFlight.get(directory);if(inFlight)return inFlight}let execFileFn=options.execFile||execFile,promise=runWindowsHiddenListing(directory,execFileFn).then(output=>{let names=parseHiddenListingOutput(output);return cache&&windowsHiddenCache.set(directory,{names,expires:Date.now()+WINDOWS_HIDDEN_CACHE_TTL}),names}).finally(()=>{windowsHiddenInFlight.delete(directory)});return cache&&windowsHiddenInFlight.set(directory,promise),promise}async function getDirectoryHiddenNames(directory,names,options={}){let platform=options.platform||process.platform,hidden=new Set,candidates=[];for(let name of names){if(typeof name!="string"||!name)continue;let childPath=path.join(directory,name);isHiddenByNaming(childPath,platform)?hidden.add(name):candidates.push({name,childPath})}if(candidates.length===0||platform!=="win32"||options.osHidden===!1)return hidden;if(candidates.length<=WINDOWS_HIDDEN_BULK_MIN)return(await Promise.all(candidates.map(({childPath})=>isWindowsHiddenByAttribAsync(childPath,options)))).forEach((isHidden,index)=>{isHidden&&hidden.add(candidates[index].name)}),hidden;let osHidden;try{osHidden=await getWindowsOsHiddenNames(directory,options)}catch{osHidden=null}return osHidden?(osHidden.forEach(name=>hidden.add(name)),hidden):((await Promise.all(candidates.map(({childPath})=>isWindowsHiddenByAttribAsync(childPath,options)))).forEach((isHidden,index)=>{isHidden&&hidden.add(candidates[index].name)}),hidden)}function openPathInFileManager(fullPath,options={}){let platform=options.platform||process.platform,spawnFn=options.spawn||spawn,command,args;switch(platform){case"darwin":command="open",args=[fullPath];break;case"win32":command="explorer.exe",args=[fullPath];break;case"linux":command="xdg-open",args=[fullPath];break;default:return Promise.resolve({ok:!1,unsupported:!0,error:new Error("Unsupported platform")})}return new Promise(resolve=>{let child=spawnFn(command,args,{detached:!0,stdio:"ignore"}),settled=!1,done=result=>{settled||(settled=!0,resolve(result))};child.once("error",error=>done({ok:!1,unsupported:!1,error})),child.once("spawn",()=>{child.unref(),done({ok:!0,command,args})})})}var SupportMethods=["GET","POST","PUT","DELETE","HEAD","PATCH","OPTIONS","COPY","LINK","UNLINK","PURGE"],DefaultHeaders="Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token,Token",isValidMethod=function(m){return SupportMethods.includes(String(m).toLocaleUpperCase())},getFileLatestContent=function(filePath){try{return delete require.cache[require.resolve(filePath)],require(path.resolve(process.cwd(),filePath))}catch(error){return console.error(colors.red("[error]:"),error),"getFileLatestContent_ERROR"}},filePath2ApiUrl=function(filePath){return filePath.split(path.sep).join("/")},getDataType=function(data){return Object.prototype.toString.call(data).slice(8,-1).toLowerCase()},isEmptyObj=function(obj){return getDataType(obj)==="object"&&Object.keys(obj).length===0},writeStream=function(filePath,data){return new Promise((resolve,reject)=>{let writerStream=fs.createWriteStream(filePath);writerStream.write(data,"utf-8"),writerStream.end(),writerStream.on("finish",()=>{}),writerStream.on("close",()=>{setTimeout(()=>{resolve(data)})}),writerStream.on("error",err=>{getLogger(path.resolve(process.cwd())).error(filePath,require.cache[require.resolve(filePath)],err),reject(err)})})},readStream=function(filePath){let data="";return new Promise((resovle,reject)=>{let readerStream=fs.createReadStream(filePath);readerStream.setEncoding("UTF8"),readerStream.on("data",function(chunk){data+=chunk}),readerStream.on("end",function(){resovle(data)}),readerStream.on("error",function(err){reject(err),console.log(err.stack)})})},debounce=(func,wait)=>{let timeout,canceled=!1,f=function(...args){canceled||(clearTimeout(timeout),timeout=setTimeout(()=>{func.call(this,...args)},wait))};return f.cancel=()=>{clearTimeout(timeout),canceled=!0},f},throttle=(func,wait,immediate)=>{let timeout,canceled=!1,lastCalledTime=0,f=function(...args){if(canceled)return;let now=Date.now(),call=()=>{lastCalledTime=now,func.call(this,...args)};if(lastCalledTime===0){if(immediate)return call();lastCalledTime=now;return}lastCalledTime+wait-now>0?(clearTimeout(timeout),timeout=setTimeout(()=>call(),wait)):call()};return f.cancel=()=>{clearTimeout(timeout),canceled=!0},f};function getServerHost(){return process.env.SERVER_HOST==="0.0.0.0"?"0.0.0.0":"127.0.0.1"}function normalizeRemoteAddress(address){let value=String(address||"").trim().replace(/^\[|\]$/g,"");return value.toLowerCase().startsWith("::ffff:")?value.slice(7):value}function ipToBigInt(address){let version=net.isIP(address);if(version===4)return address.split(".").reduce((value,part)=>(value<<8n)+BigInt(Number(part)),0n);if(version!==6)return null;let[head="",tail=""]=address.toLowerCase().split("::"),headParts=head?head.split(":"):[],tailParts=tail?tail.split(":"):[];return[...headParts,...Array(Math.max(0,8-headParts.length-tailParts.length)).fill("0"),...tailParts].reduce((value,part)=>(value<<16n)+BigInt(parseInt(part||"0",16)),0n)}function parseAllowlistRule(value){let[address,prefixValue]=value.split("/"),normalizedAddress=normalizeRemoteAddress(address),version=net.isIP(normalizedAddress),maxPrefix=version===4?32:128,prefix=prefixValue===void 0?maxPrefix:Number(prefixValue);return!version||!Number.isInteger(prefix)||prefix<0||prefix>maxPrefix?null:{address:normalizedAddress,version,prefix,value:ipToBigInt(normalizedAddress)}}function parseHostAllowlist(filePath){let content=fs.readFileSync(filePath,"utf8"),rules=[];if(content.split(/\r?\n/).forEach((rawLine,index)=>{let line=rawLine.trim();if(!line||line.startsWith("#"))return;let rule=parseAllowlistRule(line);if(!rule)throw new Error(`Invalid IP allowlist rule at line ${index+1}: ${rawLine}`);rules.push(rule)}),rules.length===0)throw new Error("IP allowlist must contain at least one valid IP or CIDR rule");return rules}function isLoopbackAddress(address){let normalized=normalizeRemoteAddress(address);return normalized==="127.0.0.1"||normalized==="::1"}function isAddressAllowed(address,rules=[]){let normalized=normalizeRemoteAddress(address);if(isLoopbackAddress(normalized))return!0;let version=net.isIP(normalized),value=ipToBigInt(normalized);return!version||value===null?!1:rules.some(rule=>{if(rule.version!==version)return!1;let remainingBits=BigInt((rule.version===4?32:128)-rule.prefix);return value>>remainingBits===rule.value>>remainingBits})}function getHostAllowlist(){if(!process.env.HOST_ALLOWLIST)return[];try{return JSON.parse(process.env.HOST_ALLOWLIST).map(rule=>typeof rule=="string"?parseAllowlistRule(rule):rule).filter(Boolean)}catch{return[]}}function hostAllowlistMiddleware(){let rules=getHostAllowlist();return rules.length===0?(req,res,next)=>next():(req,res,next)=>{if(!isAddressAllowed(req.socket&&req.socket.remoteAddress,rules))return res.status(403).send("Access denied by host allowlist");next()}}function getServerUrls(port,pathname=""){let normalizedPath=pathname&&pathname!=="/"?pathname:"",urls=[`http://localhost:${port}${normalizedPath}`,`http://127.0.0.1:${port}${normalizedPath}`];if(getServerHost()!=="0.0.0.0"||getHostAllowlist().length>0)return urls;let addresses=new Set(urls);return Object.values(os.networkInterfaces()).forEach(networkInterface=>{(networkInterface||[]).forEach(details=>{details.family==="IPv4"&&!details.internal&&addresses.add(`http://${details.address}:${port}${normalizedPath}`)})}),Array.from(addresses)}module2.exports={getLogger,dateFormat,logger,SupportMethods,DefaultHeaders,isValidMethod,getFileLatestContent,filePath2ApiUrl,getDataType,isEmptyObj,writeStream,readStream,debounce,throttle,getServerHost,getServerUrls,normalizeRemoteAddress,parseHostAllowlist,isAddressAllowed,getHostAllowlist,hostAllowlistMiddleware,isHiddenPath,getDirectoryHiddenNames,openPathInFileManager}}});var require_server=__commonJS({"src/lib/apiClient/server.js"(exports2,module2){var express=require_express2(),http=require("http"),fs=require("fs"),path=require("path"),os=require("os"),crypto=require("crypto"),{pipeline}=require("stream/promises"),{Transform}=require("stream"),{CookieJar}=require_cookie3(),{Workspace}=require_store2(),{Engine}=require_engine(),{preview,exportCurl}=require_importers(),{LIMITS,fail,check,safeObject}=require_model(),{getServerHost,hostAllowlistMiddleware,getServerUrls,openPathInFileManager}=require_utils4(),API="/__api-client/api",route=handler=>(req,res,next)=>Promise.resolve().then(()=>handler(req,res)).catch(next);function createClientServer(options={}){let app=express(),workspace=new Workspace(options.root||process.env.API_CLIENT_DIRECTORY||".mock-service-client"),password=options.password??process.env.API_CLIENT_AUTH??"",host=options.host||getServerHost(),engine=new Engine,sessions=new Map,attempts=new Map,cookieName=`msc_${crypto.randomBytes(8).toString("hex")}`,assets=fs.existsSync(path.join(__dirname,"api-client"))?path.join(__dirname,"api-client"):path.join(__dirname,"browser"),addresses=new Set(["localhost","127.0.0.1"]);if(host==="0.0.0.0")for(let list of Object.values(os.networkInterfaces()))for(let info of list||[])info.family==="IPv4"&&addresses.add(info.address);let server=http.createServer(app);server.requestTimeout=6e4,server.headersTimeout=1e4;function newSession(res){if(sessions.size>=100)throw fail("\u4F1A\u8BDD\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650",429);let session={id:crypto.randomBytes(32).toString("hex"),token:crypto.randomBytes(32).toString("hex"),jar:new CookieJar,time:Date.now()};return sessions.set(session.id,session),res.set("Set-Cookie",`${cookieName}=${session.id}; HttpOnly; SameSite=Strict; Path=/`),session}app.disable("x-powered-by"),app.use(hostAllowlistMiddleware()),app.use((req,res,next)=>{let incoming;try{incoming=new URL(`http://${req.headers.host}`)}catch{return res.status(403).json({error:"Host \u65E0\u6548"})}if(!addresses.has(incoming.hostname)||Number(incoming.port||80)!==server.address()?.port||req.headers.host!==incoming.host)return res.status(403).json({error:"Host \u4E0D\u53D7\u4FE1\u4EFB"});if(req.headers.origin&&req.headers.origin!==incoming.origin||req.headers["sec-fetch-site"]==="cross-site")return res.status(403).json({error:"\u4E0D\u5141\u8BB8\u8DE8\u7AD9\u8BBF\u95EE"});res.set({"Cache-Control":"no-store","X-Content-Type-Options":"nosniff","Referrer-Policy":"no-referrer","X-Frame-Options":"DENY","Content-Security-Policy":"default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; worker-src 'self'; frame-ancestors 'none'; object-src 'none'; base-uri 'none'; form-action 'self'"});let sessionId=(req.headers.cookie||"").split(";").map(part=>part.trim()).find(part=>part.startsWith(`${cookieName}=`))?.slice(cookieName.length+1);req.clientSession=sessions.get(sessionId),req.clientSession&&(req.clientSession.time=Date.now()),next()}),app.get("/login",(req,res)=>res.sendFile(path.join(assets,"login.html"))),app.get("/login.js",(req,res)=>res.sendFile(path.join(assets,"login.js"))),app.get("/client.css",(req,res)=>res.sendFile(path.join(assets,"client.css"))),app.post(`${API}/session`,express.json({limit:"16kb"}),route((req,res)=>{check(req.headers.origin===`http://${req.headers.host}`,"\u767B\u5F55\u9700\u8981\u540C\u6E90 Origin");let remote=req.socket.remoteAddress,now=Date.now(),attempt=attempts.get(remote)||{time:now,count:0};if(now-attempt.time>6e4&&(attempt.time=now,attempt.count=0),++attempt.count>10)throw fail("\u5C1D\u8BD5\u8FC7\u4E8E\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",429);(attempts.size<1e3||attempts.has(remote))&&attempts.set(remote,attempt);let supplied=Buffer.from(String(req.body.password||"")),expected=Buffer.from(password);if(password&&(supplied.length!==expected.length||!crypto.timingSafeEqual(supplied,expected)))throw fail("\u5BC6\u7801\u9519\u8BEF",401);let session=req.clientSession||newSession(res);attempts.delete(remote),res.json({token:session.token})})),app.get("/",route((req,res)=>{if(!req.clientSession&&password)return res.redirect("/login");req.clientSession||newSession(res),res.sendFile(path.join(assets,"index.html"))})),app.use((req,res,next)=>{if(!req.clientSession)return res.status(401).json({error:"\u8BF7\u5148\u767B\u5F55\u5DE5\u4F5C\u53F0"});next()}),app.get(`${API}/config`,(req,res)=>res.json({schemaVersion:1,workspaceId:workspace.id,workspaceName:path.basename(workspace.root),token:req.clientSession.token,limits:LIMITS,authEnabled:!!password})),app.get("/client.js",(req,res)=>res.sendFile(path.join(assets,"client.js"))),app.get("/worker.js",(req,res)=>res.sendFile(path.join(assets,"worker.js"))),app.get("/editor.js",(req,res)=>{let file=path.join(assets,"editor.js"),bundled=path.resolve(__dirname,"../../../dist/api-client/editor.js");res.sendFile(fs.existsSync(path.join(assets,"index.html"))&&assets.endsWith("api-client")?file:bundled)}),app.use(API,(req,res,next)=>{if(req.get("X-Api-Client-Token")!==req.clientSession.token)return res.status(403).json({error:"\u4F1A\u8BDD\u4EE4\u724C\u65E0\u6548"});next()}),app.post(`${API}/uploads`,route(async(req,res)=>{check(req.is("application/octet-stream"),"\u4E0A\u4F20\u9700\u8981 application/octet-stream");let file=await engine.files.create(req.clientSession.id);file.upload=!0,file.name=String(req.get("X-File-Name")||"file").slice(0,200);try{file.name=decodeURIComponent(file.name)}catch{}let size=0,count=new Transform({transform(chunk,encoding,callback){try{size+=chunk.length,check(size<=LIMITS.request,"\u4E0A\u4F20\u8D85\u8FC7 20 MiB"),engine.files.add(file,chunk.length),callback(null,chunk)}catch(error){callback(error)}}});try{await pipeline(req,count,fs.createWriteStream(file.path,{flags:"wx",mode:384})),res.status(201).json({uploadId:file.id,name:file.name,size:file.size})}catch(error){throw await engine.files.remove(file.id),error}})),app.use(API,express.json({limit:"21mb"})),app.use(API,(req,res,next)=>{try{safeObject(req.body),next()}catch(error){next(error)}}),app.delete(`${API}/session`,route(async(req,res)=>{await removeSession(req.clientSession),res.set("Set-Cookie",`${cookieName}=; HttpOnly; SameSite=Strict; Path=/; Max-Age=0`).json({success:!0})}));for(let kind of["collections","environments"])app.get(`${API}/${kind}`,route(async(req,res)=>res.json(await workspace.list(kind)))),app.put(`${API}/${kind}/:id`,route(async(req,res)=>res.json(await workspace.write(kind,req.params.id,req.body,req.get("If-Match"))))),app.delete(`${API}/${kind}/:id`,route(async(req,res)=>res.json(await workspace.write(kind,req.params.id,null,req.get("If-Match"),!0))));app.post(`${API}/imports/preview`,route((req,res)=>res.json(preview(req.body.format,req.body.text)))),app.post(`${API}/exports/curl`,route((req,res)=>res.json({text:exportCurl(req.body)}))),app.post(`${API}/executions`,route((req,res)=>{let job=engine.submit(req.clientSession.id,req.body,req.clientSession.jar);res.status(202).json({executionId:job.id})})),app.get(`${API}/executions/:id`,route((req,res)=>{let after=Number(req.query.after||0);check(Number.isInteger(after)&&after>=0,"\u7ED3\u679C\u504F\u79FB\u65E0\u6548"),res.json(engine.view(engine.get(req.params.id,req.clientSession.id),after))})),app.post(`${API}/executions/:id/cancel`,route((req,res)=>{engine.cancel(engine.get(req.params.id,req.clientSession.id)),res.json({success:!0})})),app.delete(`${API}/executions/:id`,route(async(req,res)=>{await engine.remove(engine.get(req.params.id,req.clientSession.id)),res.json({success:!0})})),app.get(`${API}/executions/:id/report`,route((req,res)=>{let job=engine.get(req.params.id,req.clientSession.id),results=job.results.map(({name,iteration,status,duration,size,error,assertions,extractionErrors})=>({name,iteration,status,duration,size,error,assertions:assertions.map(({name:title,passed})=>({name:title,passed})),extractionErrors}));res.attachment("api-client-report.json").json({schemaVersion:1,state:job.state,progress:job.progress,results})})),app.get(`${API}/downloads/:id`,route((req,res)=>{let file=engine.files.get(req.params.id,req.clientSession.id);check(!file.upload,"\u4E0A\u4F20\u6587\u4EF6\u4E0D\u53EF\u4F5C\u4E3A\u7ED3\u679C\u4E0B\u8F7D"),res.attachment(file.name||"response.bin").type("application/octet-stream").sendFile(file.path)})),app.delete(`${API}/uploads/:id`,route(async(req,res)=>{let file=engine.files.get(req.params.id,req.clientSession.id);check(file.upload,"\u4E0D\u662F\u4E0A\u4F20\u6587\u4EF6"),await engine.files.remove(file.id),res.json({success:!0})})),app.get(`${API}/cookies`,route(async(req,res)=>res.json((await req.clientSession.jar.serialize()).cookies))),app.post(`${API}/cookies`,route(async(req,res)=>{check(typeof req.body.url=="string"&&/^https?:\/\//.test(req.body.url),"Cookie \u9700\u8981 HTTP/HTTPS URL");try{await req.clientSession.jar.setCookie(req.body.cookie,req.body.url)}catch{throw fail("Cookie \u683C\u5F0F\u6216\u76EE\u6807 URL \u65E0\u6548")}res.json({success:!0})})),app.delete(`${API}/cookies`,route(async(req,res)=>{await req.clientSession.jar.removeAllCookies(),res.json({success:!0})})),app.use((req,res)=>res.status(404).json({error:"\u9875\u9762\u6216 API \u4E0D\u5B58\u5728"})),app.use((error,req,res,_next)=>{if(res.headersSent||res.destroyed)return;let status=error.status||(error.code==="ENOENT"?404:500);res.status(status).json({error:status===500?"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5DE5\u4F5C\u533A\u6743\u9650\u6216\u6587\u4EF6\u683C\u5F0F":error.type==="entity.too.large"?"\u8BF7\u6C42\u5185\u5BB9\u8D85\u8FC7\u9650\u5236":error.message})});async function removeSession(session){sessions.delete(session.id);for(let job of engine.jobs.values())job.owner===session.id&&await engine.remove(job);for(let file of engine.files.files.values())file.owner===session.id&&await engine.files.remove(file.id)}let sessionCleanup=setInterval(()=>{for(let session of sessions.values())Date.now()-session.time>12*36e5&&removeSession(session).catch(()=>{});for(let[key,attempt]of attempts)Date.now()-attempt.time>6e4&&attempts.delete(key)},6e4);return sessionCleanup.unref(),{app,server,engine,workspace,listen(port=0){return new Promise((resolve,reject)=>{server.once("error",reject),server.listen(port,host,()=>{server.removeListener("error",reject),resolve(server.address())})})},async close(){clearInterval(sessionCleanup);let closing=new Promise(resolve=>{if(!server.listening)return resolve();server.close(resolve),server.closeAllConnections?.()});await engine.close(),await closing,sessions.clear()}}}async function openBrowser(url){!(await openPathInFileManager(url)).ok&&!process.env.SILENT&&console.warn(`\u65E0\u6CD5\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668\uFF0C\u8BF7\u8BBF\u95EE ${url}`)}async function start(){let client=createClientServer();try{let address=await client.listen(Number(process.env.PORT??8090));process.env.SILENT||(console.info("API Client available on:"),getServerUrls(address.port).forEach(url=>console.info(` ${url}`))),process.env.OPEN_API_OVERVIEW&&await openBrowser(`http://127.0.0.1:${address.port}`)}catch(error){throw await client.close(),error}let stopping=!1,stop=()=>{stopping||(stopping=!0,client.close().then(()=>process.exit(0),()=>process.exit(1)))};return process.once("SIGINT",stop),process.once("SIGTERM",stop),client}module2.exports={createClientServer,start}}});var require_apiClientServer=__commonJS({"src/lib/apiClientServer.js"(){require_server().start().catch(error=>{error.code==="EADDRINUSE"?(console.error(`API Client \u542F\u52A8\u5931\u8D25\uFF1A\u7AEF\u53E3 ${error.port} \u5DF2\u88AB\u5360\u7528\uFF08EADDRINUSE\uFF09\u3002`),console.error("\u8BF7\u4F7F\u7528 --api-client --port 0 \u81EA\u52A8\u5206\u914D\u7A7A\u95F2\u7AEF\u53E3\uFF0C\u6216\u901A\u8FC7 --port <\u7AEF\u53E3\u53F7> \u6307\u5B9A\u5176\u4ED6\u7AEF\u53E3\u3002")):error.code==="EACCES"||error.code==="EPERM"?console.error(`API Client \u542F\u52A8\u5931\u8D25\uFF1A\u6743\u9650\u4E0D\u8DB3\uFF08${error.code}\uFF09\uFF0C\u8BF7\u68C0\u67E5\u76D1\u542C\u7AEF\u53E3\u548C\u4E34\u65F6\u76EE\u5F55\u7684\u8BBF\u95EE\u6743\u9650\u3002`):console.error("API Client \u542F\u52A8\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7AEF\u53E3\u3001\u5DE5\u4F5C\u533A\u548C\u8BA4\u8BC1\u914D\u7F6E"),process.exitCode=1})}});var require_async=__commonJS({"node_modules/async/dist/async.js"(exports2,module2){(function(global2,factory){typeof exports2=="object"&&typeof module2<"u"?factory(exports2):typeof define=="function"&&define.amd?define(["exports"],factory):(global2=typeof globalThis<"u"?globalThis:global2||self,factory(global2.async={}))})(exports2,(function(exports3){"use strict";function apply(fn,...args){return(...callArgs)=>fn(...args,...callArgs)}function initialParams(fn){return function(...args){var callback=args.pop();return fn.call(this,args,callback)}}var hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,hasSetImmediate=typeof setImmediate=="function"&&setImmediate,hasNextTick=typeof process=="object"&&typeof process.nextTick=="function";function fallback(fn){setTimeout(fn,0)}function wrap(defer){return(fn,...args)=>defer(()=>fn(...args))}var _defer$1;hasQueueMicrotask?_defer$1=queueMicrotask:hasSetImmediate?_defer$1=setImmediate:hasNextTick?_defer$1=process.nextTick:_defer$1=fallback;var setImmediate$1=wrap(_defer$1);function asyncify(func){return isAsync(func)?function(...args){let callback=args.pop(),promise=func.apply(this,args);return handlePromise(promise,callback)}:initialParams(function(args,callback){var result;try{result=func.apply(this,args)}catch(e){return callback(e)}if(result&&typeof result.then=="function")return handlePromise(result,callback);callback(null,result)})}function handlePromise(promise,callback){return promise.then(value=>{invokeCallback(callback,null,value)},err=>{invokeCallback(callback,err&&(err instanceof Error||err.message)?err:new Error(err))})}function invokeCallback(callback,error,value){try{callback(error,value)}catch(err){setImmediate$1(e=>{throw e},err)}}function isAsync(fn){return fn[Symbol.toStringTag]==="AsyncFunction"}function isAsyncGenerator(fn){return fn[Symbol.toStringTag]==="AsyncGenerator"}function isAsyncIterable(obj){return typeof obj[Symbol.asyncIterator]=="function"}function wrapAsync(asyncFn){if(typeof asyncFn!="function")throw new Error("expected a function");return isAsync(asyncFn)?asyncify(asyncFn):asyncFn}function awaitify(asyncFn,arity){if(arity||(arity=asyncFn.length),!arity)throw new Error("arity is undefined");function awaitable(...args){return typeof args[arity-1]=="function"?asyncFn.apply(this,args):new Promise((resolve,reject2)=>{args[arity-1]=(err,...cbArgs)=>{if(err)return reject2(err);resolve(cbArgs.length>1?cbArgs:cbArgs[0])},asyncFn.apply(this,args)})}return awaitable}function applyEach$1(eachfn){return function(fns,...callArgs){return awaitify(function(callback){var that=this;return eachfn(fns,(fn,cb)=>{wrapAsync(fn).apply(that,callArgs.concat(cb))},callback)})}}function _asyncMap(eachfn,arr,iteratee,callback){arr=arr||[];var results=[],counter=0,_iteratee=wrapAsync(iteratee);return eachfn(arr,(value,_,iterCb)=>{var index2=counter++;_iteratee(value,(err,v)=>{results[index2]=v,iterCb(err)})},err=>{callback(err,results)})}function isArrayLike(value){return value&&typeof value.length=="number"&&value.length>=0&&value.length%1===0}let breakLoop={};function once(fn){function wrapper(...args){if(fn!==null){var callFn=fn;fn=null,callFn.apply(this,args)}}return Object.assign(wrapper,fn),wrapper}function getIterator(coll){return coll[Symbol.iterator]&&coll[Symbol.iterator]()}function createArrayIterator(coll){var i=-1,len=coll.length;return function(){return++i<len?{value:coll[i],key:i}:null}}function createES2015Iterator(iterator){var i=-1;return function(){var item=iterator.next();return item.done?null:(i++,{value:item.value,key:i})}}function createObjectIterator(obj){var okeys=obj?Object.keys(obj):[],i=-1,len=okeys.length;return function next(){var key=okeys[++i];return key==="__proto__"?next():i<len?{value:obj[key],key}:null}}function createIterator(coll){if(isArrayLike(coll))return createArrayIterator(coll);var iterator=getIterator(coll);return iterator?createES2015Iterator(iterator):createObjectIterator(coll)}function onlyOnce(fn){return function(...args){if(fn===null)throw new Error("Callback was already called.");var callFn=fn;fn=null,callFn.apply(this,args)}}function asyncEachOfLimit(generator,limit,iteratee,callback){let done=!1,canceled=!1,awaiting=!1,running=0,idx=0;function replenish(){running>=limit||awaiting||done||(awaiting=!0,generator.next().then(({value,done:iterDone})=>{if(!(canceled||done)){if(awaiting=!1,iterDone){done=!0,running<=0&&callback(null);return}running++,iteratee(value,idx,iterateeCallback),idx++,replenish()}}).catch(handleError))}function iterateeCallback(err,result){if(running-=1,!canceled){if(err)return handleError(err);if(err===!1){done=!0,canceled=!0;return}if(result===breakLoop||done&&running<=0)return done=!0,callback(null);replenish()}}function handleError(err){canceled||(awaiting=!1,done=!0,callback(err))}replenish()}var eachOfLimit$2=limit=>(obj,iteratee,callback)=>{if(callback=once(callback),limit<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!obj)return callback(null);if(isAsyncGenerator(obj))return asyncEachOfLimit(obj,limit,iteratee,callback);if(isAsyncIterable(obj))return asyncEachOfLimit(obj[Symbol.asyncIterator](),limit,iteratee,callback);var nextElem=createIterator(obj),done=!1,canceled=!1,running=0,looping=!1;function iterateeCallback(err,value){if(!canceled)if(running-=1,err)done=!0,callback(err);else if(err===!1)done=!0,canceled=!0;else{if(value===breakLoop||done&&running<=0)return done=!0,callback(null);looping||replenish()}}function replenish(){for(looping=!0;running<limit&&!done;){var elem=nextElem();if(elem===null){done=!0,running<=0&&callback(null);return}running+=1,iteratee(elem.value,elem.key,onlyOnce(iterateeCallback))}looping=!1}replenish()};function eachOfLimit(coll,limit,iteratee,callback){return eachOfLimit$2(limit)(coll,wrapAsync(iteratee),callback)}var eachOfLimit$1=awaitify(eachOfLimit,4);function eachOfArrayLike(coll,iteratee,callback){callback=once(callback);var index2=0,completed=0,{length}=coll,canceled=!1;length===0&&callback(null);function iteratorCallback(err,value){err===!1&&(canceled=!0),canceled!==!0&&(err?callback(err):(++completed===length||value===breakLoop)&&callback(null))}for(;index2<length;index2++)iteratee(coll[index2],index2,onlyOnce(iteratorCallback))}function eachOfGeneric(coll,iteratee,callback){return eachOfLimit$1(coll,1/0,iteratee,callback)}function eachOf(coll,iteratee,callback){var eachOfImplementation=isArrayLike(coll)?eachOfArrayLike:eachOfGeneric;return eachOfImplementation(coll,wrapAsync(iteratee),callback)}var eachOf$1=awaitify(eachOf,3);function map(coll,iteratee,callback){return _asyncMap(eachOf$1,coll,iteratee,callback)}var map$1=awaitify(map,3),applyEach=applyEach$1(map$1);function eachOfSeries(coll,iteratee,callback){return eachOfLimit$1(coll,1,iteratee,callback)}var eachOfSeries$1=awaitify(eachOfSeries,3);function mapSeries(coll,iteratee,callback){return _asyncMap(eachOfSeries$1,coll,iteratee,callback)}var mapSeries$1=awaitify(mapSeries,3),applyEachSeries=applyEach$1(mapSeries$1);let PROMISE_SYMBOL=Symbol("promiseCallback");function promiseCallback(){let resolve,reject2;function callback(err,...args){if(err)return reject2(err);resolve(args.length>1?args:args[0])}return callback[PROMISE_SYMBOL]=new Promise((res,rej)=>{resolve=res,reject2=rej}),callback}function auto(tasks,concurrency,callback){typeof concurrency!="number"&&(callback=concurrency,concurrency=null),callback=once(callback||promiseCallback());var numTasks=Object.keys(tasks).length;if(!numTasks)return callback(null);concurrency||(concurrency=numTasks);var results={},runningTasks=0,canceled=!1,hasError=!1,listeners=Object.create(null),readyTasks=[],readyToCheck=[],uncheckedDependencies={};Object.keys(tasks).forEach(key=>{var task=tasks[key];if(!Array.isArray(task)){enqueueTask(key,[task]),readyToCheck.push(key);return}var dependencies=task.slice(0,task.length-1),remainingDependencies=dependencies.length;if(remainingDependencies===0){enqueueTask(key,task),readyToCheck.push(key);return}uncheckedDependencies[key]=remainingDependencies,dependencies.forEach(dependencyName=>{if(!tasks[dependencyName])throw new Error("async.auto task `"+key+"` has a non-existent dependency `"+dependencyName+"` in "+dependencies.join(", "));addListener(dependencyName,()=>{remainingDependencies--,remainingDependencies===0&&enqueueTask(key,task)})})}),checkForDeadlocks(),processQueue();function enqueueTask(key,task){readyTasks.push(()=>runTask(key,task))}function processQueue(){if(!canceled){if(readyTasks.length===0&&runningTasks===0)return callback(null,results);for(;readyTasks.length&&runningTasks<concurrency;){var run=readyTasks.shift();run()}}}function addListener(taskName,fn){var taskListeners=listeners[taskName];taskListeners||(taskListeners=listeners[taskName]=[]),taskListeners.push(fn)}function taskComplete(taskName){var taskListeners=listeners[taskName]||[];taskListeners.forEach(fn=>fn()),processQueue()}function runTask(key,task){if(!hasError){var taskCallback=onlyOnce((err,...result)=>{if(runningTasks--,err===!1){canceled=!0;return}if(result.length<2&&([result]=result),err){var safeResults={};if(Object.keys(results).forEach(rkey=>{safeResults[rkey]=results[rkey]}),safeResults[key]=result,hasError=!0,listeners=Object.create(null),canceled)return;callback(err,safeResults)}else results[key]=result,taskComplete(key)});runningTasks++;var taskFn=wrapAsync(task[task.length-1]);task.length>1?taskFn(results,taskCallback):taskFn(taskCallback)}}function checkForDeadlocks(){for(var currentTask,counter=0;readyToCheck.length;)currentTask=readyToCheck.pop(),counter++,getDependents(currentTask).forEach(dependent=>{--uncheckedDependencies[dependent]===0&&readyToCheck.push(dependent)});if(counter!==numTasks)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function getDependents(taskName){var result=[];return Object.keys(tasks).forEach(key=>{let task=tasks[key];Array.isArray(task)&&task.indexOf(taskName)>=0&&result.push(key)}),result}return callback[PROMISE_SYMBOL]}var FN_ARGS=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,ARROW_FN_ARGS=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,FN_ARG_SPLIT=/,/,FN_ARG=/(=.+)?(\s*)$/;function stripComments(string){let stripped="",index2=0,endBlockComment=string.indexOf("*/");for(;index2<string.length;)if(string[index2]==="/"&&string[index2+1]==="/"){let endIndex=string.indexOf(`
223
223
  `,index2);index2=endIndex===-1?string.length:endIndex}else if(endBlockComment!==-1&&string[index2]==="/"&&string[index2+1]==="*"){let endIndex=string.indexOf("*/",index2);endIndex!==-1?(index2=endIndex+2,endBlockComment=string.indexOf("*/",index2)):(stripped+=string[index2],index2++)}else stripped+=string[index2],index2++;return stripped}function parseParams(func){let src=stripComments(func.toString()),match=src.match(FN_ARGS);if(match||(match=src.match(ARROW_FN_ARGS)),!match)throw new Error(`could not parse args in autoInject
224
224
  Source:
@@ -302,10 +302,10 @@ Starting up Static Server, serving `),colors.cyan(instance.root||config.configDi
302
302
  Static application proxy routes:
303
303
  `)),instance.proxyRoutes.forEach(route=>{log.info(` ${colors.cyan(route.application.basePath)} ${colors.green(route.prefix)} -> ${colors.magenta(route.target)}${route.rewrite?colors.yellow(" (rewrite)"):""}`)})),config.open){let openPath=typeof config.open=="string"?config.open:"/";openBrowser(`${urls[0]}${openPath.startsWith("/")?openPath:`/${openPath}`}`,config.browser)}})}).catch(error=>{console.error(colors.red(`static-server watcher failed: ${error.message}`)),shutdown("SIGTERM")})}process.env.PORT?startServer():(portfinder.basePort=8090,portfinder.getPort((error,port)=>{if(error)throw error;process.env.PORT=port,startServer()}));module2.exports={normalizeConfig,createStaticServer}}});var require_utils9=__commonJS({"node_modules/busboy/lib/utils.js"(exports2,module2){"use strict";function parseContentType(str){if(str.length===0)return;let params=Object.create(null),i=0;for(;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(code!==47||i===0)return;break}}if(i===str.length)return;let type=str.slice(0,i).toLowerCase(),subtypeStart=++i;for(;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(i===subtypeStart||parseContentTypeParams(str,i,params)===void 0)return;break}}if(i===subtypeStart)return;let subtype=str.slice(subtypeStart,i).toLowerCase();return{type,subtype,params}}function parseContentTypeParams(str,i,params){for(;i<str.length;){for(;i<str.length;++i){let code=str.charCodeAt(i);if(code!==32&&code!==9)break}if(i===str.length)break;if(str.charCodeAt(i++)!==59)return;for(;i<str.length;++i){let code=str.charCodeAt(i);if(code!==32&&code!==9)break}if(i===str.length)return;let name,nameStart=i;for(;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(code!==61)return;break}}if(i===str.length||(name=str.slice(nameStart,i),++i,i===str.length))return;let value="",valueStart;if(str.charCodeAt(i)===34){valueStart=++i;let escaping=!1;for(;i<str.length;++i){let code=str.charCodeAt(i);if(code===92){escaping?(valueStart=i,escaping=!1):(value+=str.slice(valueStart,i),escaping=!0);continue}if(code===34){if(escaping){valueStart=i,escaping=!1;continue}value+=str.slice(valueStart,i);break}if(escaping&&(valueStart=i-1,escaping=!1),QDTEXT[code]!==1)return}if(i===str.length)return;++i}else{for(valueStart=i;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(i===valueStart)return;break}}value=str.slice(valueStart,i)}name=name.toLowerCase(),params[name]===void 0&&(params[name]=value)}return params}function parseDisposition(str,defDecoder){if(str.length===0)return;let params=Object.create(null),i=0;for(;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(parseDispositionParams(str,i,params,defDecoder)===void 0)return;break}}return{type:str.slice(0,i).toLowerCase(),params}}function parseDispositionParams(str,i,params,defDecoder){for(;i<str.length;){for(;i<str.length;++i){let code=str.charCodeAt(i);if(code!==32&&code!==9)break}if(i===str.length)break;if(str.charCodeAt(i++)!==59)return;for(;i<str.length;++i){let code=str.charCodeAt(i);if(code!==32&&code!==9)break}if(i===str.length)return;let name,nameStart=i;for(;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(code===61)break;return}}if(i===str.length)return;let value="",valueStart,charset;if(name=str.slice(nameStart,i),name.charCodeAt(name.length-1)===42){let charsetStart=++i;for(;i<str.length;++i){let code=str.charCodeAt(i);if(CHARSET[code]!==1){if(code!==39)return;break}}if(i===str.length)return;for(charset=str.slice(charsetStart,i),++i;i<str.length&&str.charCodeAt(i)!==39;++i);if(i===str.length||(++i,i===str.length))return;valueStart=i;let encode=0;for(;i<str.length;++i){let code=str.charCodeAt(i);if(EXTENDED_VALUE[code]!==1){if(code===37){let hexUpper,hexLower;if(i+2<str.length&&(hexUpper=HEX_VALUES[str.charCodeAt(i+1)])!==-1&&(hexLower=HEX_VALUES[str.charCodeAt(i+2)])!==-1){let byteVal=(hexUpper<<4)+hexLower;value+=str.slice(valueStart,i),value+=String.fromCharCode(byteVal),i+=2,valueStart=i+1,byteVal>=128?encode=2:encode===0&&(encode=1);continue}return}break}}if(value+=str.slice(valueStart,i),value=convertToUTF8(value,charset,encode),value===void 0)return}else{if(++i,i===str.length)return;if(str.charCodeAt(i)===34){valueStart=++i;let escaping=!1;for(;i<str.length;++i){let code=str.charCodeAt(i);if(code===92){escaping?(valueStart=i,escaping=!1):(value+=str.slice(valueStart,i),escaping=!0);continue}if(code===34){if(escaping){valueStart=i,escaping=!1;continue}value+=str.slice(valueStart,i);break}if(escaping&&(valueStart=i-1,escaping=!1),QDTEXT[code]!==1)return}if(i===str.length)return;++i}else{for(valueStart=i;i<str.length;++i){let code=str.charCodeAt(i);if(TOKEN[code]!==1){if(i===valueStart)return;break}}value=str.slice(valueStart,i)}if(value=defDecoder(value,2),value===void 0)return}name=name.toLowerCase(),params[name]===void 0&&(params[name]=value)}return params}function getDecoder(charset){let lc;for(;;)switch(charset){case"utf-8":case"utf8":return decoders.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 decoders.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return decoders.utf16le;case"base64":return decoders.base64;default:if(lc===void 0){lc=!0,charset=charset.toLowerCase();continue}return decoders.other.bind(charset)}}var decoders={utf8:(data,hint)=>{if(data.length===0)return"";if(typeof data=="string"){if(hint<2)return data;data=Buffer.from(data,"latin1")}return data.utf8Slice(0,data.length)},latin1:(data,hint)=>data.length===0?"":typeof data=="string"?data:data.latin1Slice(0,data.length),utf16le:(data,hint)=>data.length===0?"":(typeof data=="string"&&(data=Buffer.from(data,"latin1")),data.ucs2Slice(0,data.length)),base64:(data,hint)=>data.length===0?"":(typeof data=="string"&&(data=Buffer.from(data,"latin1")),data.base64Slice(0,data.length)),other:(data,hint)=>{if(data.length===0)return"";typeof data=="string"&&(data=Buffer.from(data,"latin1"));try{return new TextDecoder(exports2).decode(data)}catch{}}};function convertToUTF8(data,charset,hint){let decode=getDecoder(charset);if(decode)return decode(data,hint)}function basename(path){if(typeof path!="string")return"";for(let i=path.length-1;i>=0;--i)switch(path.charCodeAt(i)){case 47:case 92:return path=path.slice(i+1),path===".."||path==="."?"":path}return path===".."||path==="."?"":path}var TOKEN=[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,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,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,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,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,0,0,0,0,0,0,0],QDTEXT=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],CHARSET=[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,0,1,1,1,1,0,0,0,0,1,0,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,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,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,0,0,0,0,0,0,0],EXTENDED_VALUE=[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,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,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,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,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,0,0,0,0,0,0,0],HEX_VALUES=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];module2.exports={basename,convertToUTF8,getDecoder,parseContentType,parseDisposition}}});var require_sbmh=__commonJS({"node_modules/streamsearch/lib/sbmh.js"(exports2,module2){"use strict";function memcmp(buf1,pos1,buf2,pos2,num){for(let i=0;i<num;++i)if(buf1[pos1+i]!==buf2[pos2+i])return!1;return!0}var SBMH=class{constructor(needle,cb){if(typeof cb!="function")throw new Error("Missing match callback");if(typeof needle=="string")needle=Buffer.from(needle);else if(!Buffer.isBuffer(needle))throw new Error(`Expected Buffer for needle, got ${typeof needle}`);let needleLen=needle.length;if(this.maxMatches=1/0,this.matches=0,this._cb=cb,this._lookbehindSize=0,this._needle=needle,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(needleLen),this._occ=[needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen,needleLen],needleLen>1)for(let i=0;i<needleLen-1;++i)this._occ[needle[i]]=needleLen-1-i}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(chunk,pos){let result;Buffer.isBuffer(chunk)||(chunk=Buffer.from(chunk,"latin1"));let chunkLen=chunk.length;for(this._bufPos=pos||0;result!==chunkLen&&this.matches<this.maxMatches;)result=feed(this,chunk);return result}destroy(){let lbSize=this._lookbehindSize;lbSize&&this._cb(!1,this._lookbehind,0,lbSize,!1),this.reset()}};function feed(self2,data){let len=data.length,needle=self2._needle,needleLen=needle.length,pos=-self2._lookbehindSize,lastNeedleCharPos=needleLen-1,lastNeedleChar=needle[lastNeedleCharPos],end=len-needleLen,occ=self2._occ,lookbehind=self2._lookbehind;if(pos<0){for(;pos<0&&pos<=end;){let nextPos=pos+lastNeedleCharPos,ch=nextPos<0?lookbehind[self2._lookbehindSize+nextPos]:data[nextPos];if(ch===lastNeedleChar&&matchNeedle(self2,data,pos,lastNeedleCharPos))return self2._lookbehindSize=0,++self2.matches,pos>-self2._lookbehindSize?self2._cb(!0,lookbehind,0,self2._lookbehindSize+pos,!1):self2._cb(!0,void 0,0,0,!0),self2._bufPos=pos+needleLen;pos+=occ[ch]}for(;pos<0&&!matchNeedle(self2,data,pos,len-pos);)++pos;if(pos<0){let bytesToCutOff=self2._lookbehindSize+pos;return bytesToCutOff>0&&self2._cb(!1,lookbehind,0,bytesToCutOff,!1),self2._lookbehindSize-=bytesToCutOff,lookbehind.copy(lookbehind,0,bytesToCutOff,self2._lookbehindSize),lookbehind.set(data,self2._lookbehindSize),self2._lookbehindSize+=len,self2._bufPos=len,len}self2._cb(!1,lookbehind,0,self2._lookbehindSize,!1),self2._lookbehindSize=0}pos+=self2._bufPos;let firstNeedleChar=needle[0];for(;pos<=end;){let ch=data[pos+lastNeedleCharPos];if(ch===lastNeedleChar&&data[pos]===firstNeedleChar&&memcmp(needle,0,data,pos,lastNeedleCharPos))return++self2.matches,pos>0?self2._cb(!0,data,self2._bufPos,pos,!0):self2._cb(!0,void 0,0,0,!0),self2._bufPos=pos+needleLen;pos+=occ[ch]}for(;pos<len;){if(data[pos]!==firstNeedleChar||!memcmp(data,pos,needle,0,len-pos)){++pos;continue}data.copy(lookbehind,0,pos,len),self2._lookbehindSize=len-pos;break}return pos>0&&self2._cb(!1,data,self2._bufPos,pos<len?pos:len,!0),self2._bufPos=len,len}function matchNeedle(self2,data,pos,len){let lb=self2._lookbehind,lbSize=self2._lookbehindSize,needle=self2._needle;for(let i=0;i<len;++i,++pos)if((pos<0?lb[lbSize+pos]:data[pos])!==needle[i])return!1;return!0}module2.exports=SBMH}});var require_multipart=__commonJS({"node_modules/busboy/lib/types/multipart.js"(exports2,module2){"use strict";var{Readable,Writable}=require("stream"),StreamSearch=require_sbmh(),{basename,convertToUTF8,getDecoder,parseContentType,parseDisposition}=require_utils9(),BUF_CRLF=Buffer.from(`\r
304
304
  `),BUF_CR=Buffer.from("\r"),BUF_DASH=Buffer.from("-");function noop(){}var MAX_HEADER_PAIRS=2e3,MAX_HEADER_SIZE=16*1024,HPARSER_NAME=0,HPARSER_PRE_OWS=1,HPARSER_VALUE=2,HeaderParser=class{constructor(cb){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=HPARSER_NAME,this.name="",this.value="",this.crlf=0,this.cb=cb}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=HPARSER_NAME,this.name="",this.value="",this.crlf=0}push(chunk,pos,end){let start=pos;for(;pos<end;)switch(this.state){case HPARSER_NAME:{let done=!1;for(;pos<end;++pos){if(this.byteCount===MAX_HEADER_SIZE)return-1;++this.byteCount;let code=chunk[pos];if(TOKEN[code]!==1){if(code!==58||(this.name+=chunk.latin1Slice(start,pos),this.name.length===0))return-1;++pos,done=!0,this.state=HPARSER_PRE_OWS;break}}if(!done){this.name+=chunk.latin1Slice(start,pos);break}}case HPARSER_PRE_OWS:{let done=!1;for(;pos<end;++pos){if(this.byteCount===MAX_HEADER_SIZE)return-1;++this.byteCount;let code=chunk[pos];if(code!==32&&code!==9){start=pos,done=!0,this.state=HPARSER_VALUE;break}}if(!done)break}case HPARSER_VALUE:switch(this.crlf){case 0:for(;pos<end;++pos){if(this.byteCount===MAX_HEADER_SIZE)return-1;++this.byteCount;let code=chunk[pos];if(FIELD_VCHAR[code]!==1){if(code!==13)return-1;++this.crlf;break}}this.value+=chunk.latin1Slice(start,pos++);break;case 1:if(this.byteCount===MAX_HEADER_SIZE||(++this.byteCount,chunk[pos++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===MAX_HEADER_SIZE)return-1;++this.byteCount;let code=chunk[pos];code===32||code===9?(start=pos,this.crlf=0):(++this.pairCount<MAX_HEADER_PAIRS&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),code===13?(++this.crlf,++pos):(start=pos,this.crlf=0,this.state=HPARSER_NAME,this.name="",this.value=""));break}case 3:{if(this.byteCount===MAX_HEADER_SIZE||(++this.byteCount,chunk[pos++]!==10))return-1;let header=this.header;return this.reset(),this.cb(header),pos}}break}return pos}},FileStream=class extends Readable{constructor(opts,owner){super(opts),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--owner._fileEndsLeft===0&&owner._finalcb){let cb=owner._finalcb;owner._finalcb=null,process.nextTick(cb)}})}_read(n){let cb=this._readcb;cb&&(this._readcb=null,cb())}},ignoreData={push:(chunk,pos)=>{},destroy:()=>{}};function callAndUnsetCb(self2,err){let cb=self2._writecb;self2._writecb=null,err?self2.destroy(err):cb&&cb()}function nullDecoder(val,hint){return val}var Multipart=class extends Writable{constructor(cfg){let streamOpts={autoDestroy:!0,emitClose:!0,highWaterMark:typeof cfg.highWaterMark=="number"?cfg.highWaterMark:void 0};if(super(streamOpts),!cfg.conType.params||typeof cfg.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let boundary=cfg.conType.params.boundary,paramDecoder=typeof cfg.defParamCharset=="string"&&cfg.defParamCharset?getDecoder(cfg.defParamCharset):nullDecoder,defCharset=cfg.defCharset||"utf8",preservePath=cfg.preservePath,fileOpts={autoDestroy:!0,emitClose:!0,highWaterMark:typeof cfg.fileHwm=="number"?cfg.fileHwm:void 0},limits=cfg.limits,fieldSizeLimit=limits&&typeof limits.fieldSize=="number"?limits.fieldSize:1*1024*1024,fileSizeLimit=limits&&typeof limits.fileSize=="number"?limits.fileSize:1/0,filesLimit=limits&&typeof limits.files=="number"?limits.files:1/0,fieldsLimit=limits&&typeof limits.fields=="number"?limits.fields:1/0,partsLimit=limits&&typeof limits.parts=="number"?limits.parts:1/0,parts=-1,fields=0,files=0,skipPart=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let fileSize=0,field,fieldSize=0,partCharset,partEncoding,partType,partName,partTruncated=!1,hitFilesLimit=!1,hitFieldsLimit=!1;this._hparser=null;let hparser=new HeaderParser(header=>{this._hparser=null,skipPart=!1,partType="text/plain",partCharset=defCharset,partEncoding="7bit",partName=void 0,partTruncated=!1;let filename;if(!header["content-disposition"]){skipPart=!0;return}let disp=parseDisposition(header["content-disposition"][0],paramDecoder);if(!disp||disp.type!=="form-data"){skipPart=!0;return}if(disp.params&&(disp.params.name&&(partName=disp.params.name),disp.params["filename*"]?filename=disp.params["filename*"]:disp.params.filename&&(filename=disp.params.filename),filename!==void 0&&!preservePath&&(filename=basename(filename))),header["content-type"]){let conType=parseContentType(header["content-type"][0]);conType&&(partType=`${conType.type}/${conType.subtype}`,conType.params&&typeof conType.params.charset=="string"&&(partCharset=conType.params.charset.toLowerCase()))}if(header["content-transfer-encoding"]&&(partEncoding=header["content-transfer-encoding"][0].toLowerCase()),partType==="application/octet-stream"||filename!==void 0){if(files===filesLimit){hitFilesLimit||(hitFilesLimit=!0,this.emit("filesLimit")),skipPart=!0;return}if(++files,this.listenerCount("file")===0){skipPart=!0;return}fileSize=0,this._fileStream=new FileStream(fileOpts,this),++this._fileEndsLeft,this.emit("file",partName,this._fileStream,{filename,encoding:partEncoding,mimeType:partType})}else{if(fields===fieldsLimit){hitFieldsLimit||(hitFieldsLimit=!0,this.emit("fieldsLimit")),skipPart=!0;return}if(++fields,this.listenerCount("field")===0){skipPart=!0;return}field=[],fieldSize=0}}),matchPostBoundary=0,ssCb=(isMatch,data,start,end,isDataSafe)=>{retrydata:for(;data;){if(this._hparser!==null){let ret=this._hparser.push(data,start,end);if(ret===-1){this._hparser=null,hparser.reset(),this.emit("error",new Error("Malformed part header"));break}start=ret}if(start===end)break;if(matchPostBoundary!==0){if(matchPostBoundary===1){switch(data[start]){case 45:matchPostBoundary=2,++start;break;case 13:matchPostBoundary=3,++start;break;default:matchPostBoundary=0}if(start===end)return}if(matchPostBoundary===2){if(matchPostBoundary=0,data[start]===45){this._complete=!0,this._bparser=ignoreData;return}let writecb=this._writecb;this._writecb=noop,ssCb(!1,BUF_DASH,0,1,!1),this._writecb=writecb}else if(matchPostBoundary===3)if(matchPostBoundary=0,data[start]===10){if(++start,parts>=partsLimit||(this._hparser=hparser,start===end))break;continue retrydata}else{let writecb=this._writecb;this._writecb=noop,ssCb(!1,BUF_CR,0,1,!1),this._writecb=writecb}}if(!skipPart){if(this._fileStream){let chunk,actualLen=Math.min(end-start,fileSizeLimit-fileSize);isDataSafe?chunk=data.slice(start,start+actualLen):(chunk=Buffer.allocUnsafe(actualLen),data.copy(chunk,0,start,start+actualLen)),fileSize+=chunk.length,fileSize===fileSizeLimit?(chunk.length>0&&this._fileStream.push(chunk),this._fileStream.emit("limit"),this._fileStream.truncated=!0,skipPart=!0):this._fileStream.push(chunk)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(field!==void 0){let chunk,actualLen=Math.min(end-start,fieldSizeLimit-fieldSize);isDataSafe?chunk=data.slice(start,start+actualLen):(chunk=Buffer.allocUnsafe(actualLen),data.copy(chunk,0,start,start+actualLen)),fieldSize+=actualLen,field.push(chunk),fieldSize===fieldSizeLimit&&(skipPart=!0,partTruncated=!0)}}break}if(isMatch){if(matchPostBoundary=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(field!==void 0){let data2;switch(field.length){case 0:data2="";break;case 1:data2=convertToUTF8(field[0],partCharset,0);break;default:data2=convertToUTF8(Buffer.concat(field,fieldSize),partCharset,0)}field=void 0,fieldSize=0,this.emit("field",partName,data2,{nameTruncated:!1,valueTruncated:partTruncated,encoding:partEncoding,mimeType:partType})}++parts===partsLimit&&this.emit("partsLimit")}};this._bparser=new StreamSearch(`\r
305
- --${boundary}`,ssCb),this._writecb=null,this._finalcb=null,this.write(BUF_CRLF)}static detect(conType){return conType.type==="multipart"&&conType.subtype==="form-data"}_write(chunk,enc,cb){this._writecb=cb,this._bparser.push(chunk,0),this._writecb&&callAndUnsetCb(this)}_destroy(err,cb){this._hparser=null,this._bparser=ignoreData,err||(err=checkEndState(this));let fileStream=this._fileStream;fileStream&&(this._fileStream=null,fileStream.destroy(err)),cb(err)}_final(cb){if(this._bparser.destroy(),!this._complete)return cb(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=finalcb.bind(null,this,cb):finalcb(this,cb)}};function finalcb(self2,cb,err){if(err)return cb(err);err=checkEndState(self2),cb(err)}function checkEndState(self2){if(self2._hparser)return new Error("Malformed part header");let fileStream=self2._fileStream;if(fileStream&&(self2._fileStream=null,fileStream.destroy(new Error("Unexpected end of file"))),!self2._complete)return new Error("Unexpected end of form")}var TOKEN=[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,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,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,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,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,0,0,0,0,0,0,0],FIELD_VCHAR=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];module2.exports=Multipart}});var require_urlencoded2=__commonJS({"node_modules/busboy/lib/types/urlencoded.js"(exports2,module2){"use strict";var{Writable}=require("stream"),{getDecoder}=require_utils9(),URLEncoded=class extends Writable{constructor(cfg){let streamOpts={autoDestroy:!0,emitClose:!0,highWaterMark:typeof cfg.highWaterMark=="number"?cfg.highWaterMark:void 0};super(streamOpts);let charset=cfg.defCharset||"utf8";cfg.conType.params&&typeof cfg.conType.params.charset=="string"&&(charset=cfg.conType.params.charset),this.charset=charset;let limits=cfg.limits;this.fieldSizeLimit=limits&&typeof limits.fieldSize=="number"?limits.fieldSize:1*1024*1024,this.fieldsLimit=limits&&typeof limits.fields=="number"?limits.fields:1/0,this.fieldNameSizeLimit=limits&&typeof limits.fieldNameSize=="number"?limits.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=getDecoder(charset)}static detect(conType){return conType.type==="application"&&conType.subtype==="x-www-form-urlencoded"}_write(chunk,enc,cb){if(this._fields>=this.fieldsLimit)return cb();let i=0,len=chunk.length;if(this._lastPos=0,this._byte!==-2){if(i=readPctEnc(this,chunk,i,len),i===-1)return cb(new Error("Malformed urlencoded form"));if(i>=len)return cb();this._inKey?++this._bytesKey:++this._bytesVal}main:for(;i<len;)if(this._inKey){for(i=skipKeyBytes(this,chunk,i,len);i<len;){switch(chunk[i]){case 61:this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=++i,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue main;case 38:if(this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=++i,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),cb();continue;case 43:this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._key+=" ",this._lastPos=i+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=i+1,this._byte=-1,i=readPctEnc(this,chunk,i+1,len),i===-1)return cb(new Error("Malformed urlencoded form"));if(i>=len)return cb();++this._bytesKey,i=skipKeyBytes(this,chunk,i,len);continue}++i,++this._bytesKey,i=skipKeyBytes(this,chunk,i,len)}this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i))}else{for(i=skipValBytes(this,chunk,i,len);i<len;){switch(chunk[i]){case 38:if(this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=++i,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),cb();continue main;case 43:this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i)),this._val+=" ",this._lastPos=i+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=i+1,this._byte=-1,i=readPctEnc(this,chunk,i+1,len),i===-1)return cb(new Error("Malformed urlencoded form"));if(i>=len)return cb();++this._bytesVal,i=skipValBytes(this,chunk,i,len);continue}++i,++this._bytesVal,i=skipValBytes(this,chunk,i,len)}this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i))}cb()}_final(cb){if(this._byte!==-2)return cb(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),cb()}};function readPctEnc(self2,chunk,pos,len){if(pos>=len)return len;if(self2._byte===-1){let hexUpper=HEX_VALUES[chunk[pos++]];if(hexUpper===-1)return-1;if(hexUpper>=8&&(self2._encode=2),pos<len){let hexLower=HEX_VALUES[chunk[pos++]];if(hexLower===-1)return-1;self2._inKey?self2._key+=String.fromCharCode((hexUpper<<4)+hexLower):self2._val+=String.fromCharCode((hexUpper<<4)+hexLower),self2._byte=-2,self2._lastPos=pos}else self2._byte=hexUpper}else{let hexLower=HEX_VALUES[chunk[pos++]];if(hexLower===-1)return-1;self2._inKey?self2._key+=String.fromCharCode((self2._byte<<4)+hexLower):self2._val+=String.fromCharCode((self2._byte<<4)+hexLower),self2._byte=-2,self2._lastPos=pos}return pos}function skipKeyBytes(self2,chunk,pos,len){if(self2._bytesKey>self2.fieldNameSizeLimit){for(self2._keyTrunc||self2._lastPos<pos&&(self2._key+=chunk.latin1Slice(self2._lastPos,pos-1)),self2._keyTrunc=!0;pos<len;++pos){let code=chunk[pos];if(code===61||code===38)break;++self2._bytesKey}self2._lastPos=pos}return pos}function skipValBytes(self2,chunk,pos,len){if(self2._bytesVal>self2.fieldSizeLimit){for(self2._valTrunc||self2._lastPos<pos&&(self2._val+=chunk.latin1Slice(self2._lastPos,pos-1)),self2._valTrunc=!0;pos<len&&chunk[pos]!==38;++pos)++self2._bytesVal;self2._lastPos=pos}return pos}var HEX_VALUES=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];module2.exports=URLEncoded}});var require_lib5=__commonJS({"node_modules/busboy/lib/index.js"(exports2,module2){"use strict";var{parseContentType}=require_utils9();function getInstance(cfg){let headers=cfg.headers,conType=parseContentType(headers["content-type"]);if(!conType)throw new Error("Malformed content type");for(let type of TYPES){if(!type.detect(conType))continue;let instanceCfg={limits:cfg.limits,headers,conType,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return cfg.highWaterMark&&(instanceCfg.highWaterMark=cfg.highWaterMark),cfg.fileHwm&&(instanceCfg.fileHwm=cfg.fileHwm),instanceCfg.defCharset=cfg.defCharset,instanceCfg.defParamCharset=cfg.defParamCharset,instanceCfg.preservePath=cfg.preservePath,new type(instanceCfg)}throw new Error(`Unsupported content type: ${headers["content-type"]}`)}var TYPES=[require_multipart(),require_urlencoded2()].filter(function(typemod){return typeof typemod.detect=="function"});module2.exports=cfg=>{if((typeof cfg!="object"||cfg===null)&&(cfg={}),typeof cfg.headers!="object"||cfg.headers===null||typeof cfg.headers["content-type"]!="string")throw new Error("Missing Content-Type");return getInstance(cfg)}}});var require_parse_path=__commonJS({"node_modules/append-field/lib/parse-path.js"(exports2,module2){var reFirstKey=/^[^\[]*/,reDigitPath=/^\[(\d+)\]/,reNormalPath=/^\[([^\]]+)\]/;function parsePath(key){function failure(){return[{type:"object",key,last:!0}]}var firstKey=reFirstKey.exec(key)[0];if(!firstKey)return failure();for(var len=key.length,pos=firstKey.length,tail={type:"object",key:firstKey},steps=[tail];pos<len;){var m;if(key[pos]==="["&&key[pos+1]==="]"){if(pos+=2,tail.append=!0,pos!==len)return failure();continue}if(m=reDigitPath.exec(key.substring(pos)),m!==null){pos+=m[0].length,tail.nextType="array",tail={type:"array",key:parseInt(m[1],10)},steps.push(tail);continue}if(m=reNormalPath.exec(key.substring(pos)),m!==null){pos+=m[0].length,tail.nextType="object",tail={type:"object",key:m[1]},steps.push(tail);continue}return failure()}return tail.last=!0,steps}module2.exports=parsePath}});var require_set_value=__commonJS({"node_modules/append-field/lib/set-value.js"(exports2,module2){function valueType(value){return value===void 0?"undefined":Array.isArray(value)?"array":typeof value=="object"?"object":"scalar"}function setLastValue(context,step,currentValue,entryValue){switch(valueType(currentValue)){case"undefined":step.append?context[step.key]=[entryValue]:context[step.key]=entryValue;break;case"array":context[step.key].push(entryValue);break;case"object":return setLastValue(currentValue,{type:"object",key:"",last:!0},currentValue[""],entryValue);case"scalar":context[step.key]=[context[step.key],entryValue];break}return context}function setValue(context,step,currentValue,entryValue){if(step.last)return setLastValue(context,step,currentValue,entryValue);var obj;switch(valueType(currentValue)){case"undefined":return step.nextType==="array"?context[step.key]=[]:context[step.key]=Object.create(null),context[step.key];case"object":return context[step.key];case"array":return step.nextType==="array"?currentValue:(obj=Object.create(null),context[step.key]=obj,currentValue.forEach(function(item,i){item!==void 0&&(obj[""+i]=item)}),obj);case"scalar":return obj=Object.create(null),obj[""]=currentValue,context[step.key]=obj,obj}}module2.exports=setValue}});var require_append_field=__commonJS({"node_modules/append-field/index.js"(exports2,module2){var parsePath=require_parse_path(),setValue=require_set_value();function appendField(store,key,value){var steps=parsePath(key);steps.reduce(function(context,step){return setValue(context,step,context[step.key],value)},store)}module2.exports=appendField}});var require_counter=__commonJS({"node_modules/multer/lib/counter.js"(exports2,module2){var EventEmitter=require("events").EventEmitter;function Counter(){EventEmitter.call(this),this.value=0}Counter.prototype=Object.create(EventEmitter.prototype);Counter.prototype.increment=function(){this.value++};Counter.prototype.decrement=function(){--this.value===0&&this.emit("zero")};Counter.prototype.isZero=function(){return this.value===0};Counter.prototype.onceZero=function(fn){if(this.isZero())return fn();this.once("zero",fn)};module2.exports=Counter}});var require_multer_error=__commonJS({"node_modules/multer/lib/multer-error.js"(exports2,module2){var util=require("util"),errorMessages={LIMIT_PART_COUNT:"Too many parts",LIMIT_FILE_SIZE:"File too large",LIMIT_FILE_COUNT:"Too many files",LIMIT_FIELD_KEY:"Field name too long",LIMIT_FIELD_VALUE:"Field value too long",LIMIT_FIELD_COUNT:"Too many fields",LIMIT_UNEXPECTED_FILE:"Unexpected field",MISSING_FIELD_NAME:"Field name missing",LIMIT_FIELD_NESTING:"Field name nesting too deep"};function MulterError(code,field){Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=errorMessages[code],this.code=code,field&&(this.field=field)}util.inherits(MulterError,Error);module2.exports=MulterError}});var require_file_appender=__commonJS({"node_modules/multer/lib/file-appender.js"(exports2,module2){function arrayRemove(arr,item){var idx=arr.indexOf(item);~idx&&arr.splice(idx,1)}function FileAppender(strategy,req){switch(this.strategy=strategy,this.req=req,strategy){case"NONE":break;case"VALUE":break;case"ARRAY":req.files=[];break;case"OBJECT":req.files=Object.create(null);break;default:throw new Error("Unknown file strategy: "+strategy)}}FileAppender.prototype.insertPlaceholder=function(file){var placeholder={fieldname:file.fieldname};switch(this.strategy){case"NONE":break;case"VALUE":break;case"ARRAY":this.req.files.push(placeholder);break;case"OBJECT":this.req.files[file.fieldname]?this.req.files[file.fieldname].push(placeholder):this.req.files[file.fieldname]=[placeholder];break}return placeholder};FileAppender.prototype.removePlaceholder=function(placeholder){switch(this.strategy){case"NONE":break;case"VALUE":break;case"ARRAY":arrayRemove(this.req.files,placeholder);break;case"OBJECT":this.req.files[placeholder.fieldname].length===1?delete this.req.files[placeholder.fieldname]:arrayRemove(this.req.files[placeholder.fieldname],placeholder);break}};FileAppender.prototype.replacePlaceholder=function(placeholder,file){if(this.strategy==="VALUE"){this.req.file=file;return}delete placeholder.fieldname,Object.assign(placeholder,file)};module2.exports=FileAppender}});var require_remove_uploaded_files=__commonJS({"node_modules/multer/lib/remove-uploaded-files.js"(exports2,module2){function removeUploadedFiles(uploadedFiles,remove,cb){var length=uploadedFiles.length,errors=[];if(length===0)return cb(null,errors);function handleFile(idx){var file=uploadedFiles[idx];remove(file,function(err){err&&(err.file=file,err.field=file.fieldname,errors.push(err)),idx<length-1?setImmediate(function(){handleFile(idx+1)}):cb(null,errors)})}handleFile(0)}module2.exports=removeUploadedFiles}});var require_make_middleware=__commonJS({"node_modules/multer/lib/make-middleware.js"(exports2,module2){var is=require_type_is(),Busboy=require_lib5(),appendField=require_append_field(),Counter=require_counter(),MulterError=require_multer_error(),FileAppender=require_file_appender(),removeUploadedFiles=require_remove_uploaded_files();function drainStream(stream){stream.on("readable",()=>{for(;stream.read()!==null;);})}function makeMiddleware(setup){return function(req,res,next){if(!is(req,["multipart"]))return next();var options=setup(),limits=options.limits,storage=options.storage,fileFilter=options.fileFilter,fileStrategy=options.fileStrategy,preservePath=options.preservePath,defParamCharset=options.defParamCharset;req.body=Object.create(null);var busboy,appender=null,isDone=!1,readFinished=!1,errorOccured=!1,pendingWrites=new Counter,uploadedFiles=[],pendingFiles=[];function done(err){var called=!1;function onFinished(){called||(called=!0,next(err))}if(!isDone){if(isDone=!0,busboy&&(req.unpipe(busboy),setImmediate(()=>{busboy.removeAllListeners()})),drainStream(req),req.resume(),err&&req.readable&&!req.destroyed){req.once("end",onFinished),req.once("error",onFinished),req.once("close",onFinished);return}next(err)}}function indicateDone(){readFinished&&pendingWrites.isZero()&&!errorOccured&&done()}function abortWithError(uploadError,skipPendingWait){if(errorOccured)return;errorOccured=!0;function finishAbort(){function remove(file,cb){storage._removeFile(req,file,cb)}var filesToRemove=uploadedFiles.concat(pendingFiles.filter(function(f){return f.path}));pendingFiles=[],removeUploadedFiles(filesToRemove,remove,function(err,storageErrors){if(err)return done(err);uploadError.storageErrors=storageErrors,done(uploadError)})}skipPendingWait?finishAbort():pendingWrites.onceZero(finishAbort)}function abortWithCode(code,optionalField){abortWithError(new MulterError(code,optionalField))}function handleRequestFailure(err){isDone||(busboy&&(req.unpipe(busboy),busboy.destroy(err)),abortWithError(err,!0))}req.on("error",function(err){handleRequestFailure(err||new Error("Request error"))}),req.on("aborted",function(){handleRequestFailure(new Error("Request aborted"))}),req.on("close",function(){req.readableEnded||handleRequestFailure(new Error("Request closed"))});try{busboy=Busboy({headers:req.headers,limits,preservePath,defParamCharset})}catch(err){return next(err)}appender=new FileAppender(fileStrategy,req),busboy.on("field",function(fieldname,value,{nameTruncated,valueTruncated}){if(fieldname==null)return abortWithCode("MISSING_FIELD_NAME");if(nameTruncated)return abortWithCode("LIMIT_FIELD_KEY");if(valueTruncated)return abortWithCode("LIMIT_FIELD_VALUE",fieldname);if(limits&&Object.prototype.hasOwnProperty.call(limits,"fieldNameSize")&&fieldname.length>limits.fieldNameSize)return abortWithCode("LIMIT_FIELD_KEY");if(limits&&Object.prototype.hasOwnProperty.call(limits,"fieldNestingDepth")&&fieldname.split("[").length-1>limits.fieldNestingDepth)return abortWithCode("LIMIT_FIELD_NESTING",fieldname);appendField(req.body,fieldname,value)}),busboy.on("file",function(fieldname,fileStream,{filename,encoding,mimeType}){var pendingWritesIncremented=!1;if(fileStream.on("error",function(err){pendingWritesIncremented&&pendingWrites.decrement(),abortWithError(err)}),fieldname==null)return abortWithCode("MISSING_FIELD_NAME");if(!filename)return fileStream.resume();if(limits&&Object.prototype.hasOwnProperty.call(limits,"fieldNameSize")&&fieldname.length>limits.fieldNameSize)return abortWithCode("LIMIT_FIELD_KEY");var file={fieldname,originalname:filename,encoding,mimetype:mimeType},placeholder=appender.insertPlaceholder(file);fileFilter(req,file,function(err,includeFile){if(errorOccured)return appender.removePlaceholder(placeholder),fileStream.resume();if(err)return appender.removePlaceholder(placeholder),abortWithError(err);if(!includeFile)return appender.removePlaceholder(placeholder),fileStream.resume();var aborting=!1;pendingWritesIncremented=!0,pendingWrites.increment(),Object.defineProperty(file,"stream",{configurable:!0,enumerable:!1,value:fileStream}),fileStream.on("limit",function(){aborting=!0,abortWithCode("LIMIT_FILE_SIZE",fieldname)}),pendingFiles.push(file),storage._handleFile(req,file,function(err2,info){var idx=pendingFiles.indexOf(file);if(idx!==-1&&pendingFiles.splice(idx,1),aborting)return appender.removePlaceholder(placeholder),uploadedFiles.push({...file,...info}),pendingWrites.decrement();if(err2)return appender.removePlaceholder(placeholder),pendingWrites.decrement(),abortWithError(err2);var fileInfo={...file,...info};appender.replacePlaceholder(placeholder,fileInfo),uploadedFiles.push(fileInfo),pendingWrites.decrement(),indicateDone()})})}),busboy.on("error",function(err){abortWithError(err)}),busboy.on("partsLimit",function(){abortWithCode("LIMIT_PART_COUNT")}),busboy.on("filesLimit",function(){abortWithCode("LIMIT_FILE_COUNT")}),busboy.on("fieldsLimit",function(){abortWithCode("LIMIT_FIELD_COUNT")}),busboy.on("close",function(){readFinished=!0,indicateDone()}),req.pipe(busboy)}}module2.exports=makeMiddleware}});var require_disk=__commonJS({"node_modules/multer/storage/disk.js"(exports2,module2){var fs=require("fs"),os=require("os"),path=require("path"),crypto=require("crypto");function getFilename(req,file,cb){crypto.randomBytes(16,function(err,raw){cb(err,err?void 0:raw.toString("hex"))})}function getDestination(req,file,cb){cb(null,os.tmpdir())}function DiskStorage(opts){this.getFilename=opts.filename||getFilename,typeof opts.destination=="string"?(fs.mkdirSync(opts.destination,{recursive:!0}),this.getDestination=function($0,$1,cb){cb(null,opts.destination)}):this.getDestination=opts.destination||getDestination}DiskStorage.prototype._handleFile=function(req,file,cb){var that=this;that.getDestination(req,file,function(err,destination){if(err)return cb(err);that.getFilename(req,file,function(err2,filename){if(err2)return cb(err2);var finalPath=path.join(destination,filename);if(!file.stream.destroyed){var outStream=fs.createWriteStream(finalPath);file.path=finalPath,file.stream.pipe(outStream),outStream.on("error",cb),outStream.on("finish",function(){cb(null,{destination,filename,path:finalPath,size:outStream.bytesWritten})})}})})};DiskStorage.prototype._removeFile=function(req,file,cb){var path2=file.path;delete file.destination,delete file.filename,delete file.path,fs.unlink(path2,cb)};module2.exports=function(opts){return new DiskStorage(opts)}}});var require_stream3=__commonJS({"node_modules/readable-stream/lib/internal/streams/stream.js"(exports2,module2){module2.exports=require("stream")}});var require_buffer_list=__commonJS({"node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports2,module2){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _defineProperty(obj,key,value){return key=_toPropertyKey(key),key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,_toPropertyKey(descriptor.key),descriptor)}}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),Constructor}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key=="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var _require=require("buffer"),Buffer2=_require.Buffer,_require2=require("util"),inspect=_require2.inspect,custom=inspect&&inspect.custom||"inspect";function copyBuffer(src,target,offset){Buffer2.prototype.copy.call(src,target,offset)}module2.exports=(function(){function BufferList(){_classCallCheck(this,BufferList),this.head=null,this.tail=null,this.length=0}return _createClass(BufferList,[{key:"push",value:function(v){var entry={data:v,next:null};this.length>0?this.tail.next=entry:this.head=entry,this.tail=entry,++this.length}},{key:"unshift",value:function(v){var entry={data:v,next:this.head};this.length===0&&(this.tail=entry),this.head=entry,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ret=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ret}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(s){if(this.length===0)return"";for(var p=this.head,ret=""+p.data;p=p.next;)ret+=s+p.data;return ret}},{key:"concat",value:function(n){if(this.length===0)return Buffer2.alloc(0);for(var ret=Buffer2.allocUnsafe(n>>>0),p=this.head,i=0;p;)copyBuffer(p.data,ret,i),i+=p.data.length,p=p.next;return ret}},{key:"consume",value:function(n,hasStrings){var ret;return n<this.head.data.length?(ret=this.head.data.slice(0,n),this.head.data=this.head.data.slice(n)):n===this.head.data.length?ret=this.shift():ret=hasStrings?this._getString(n):this._getBuffer(n),ret}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(n){var p=this.head,c=1,ret=p.data;for(n-=ret.length;p=p.next;){var str=p.data,nb=n>str.length?str.length:n;if(nb===str.length?ret+=str:ret+=str.slice(0,n),n-=nb,n===0){nb===str.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=str.slice(nb));break}++c}return this.length-=c,ret}},{key:"_getBuffer",value:function(n){var ret=Buffer2.allocUnsafe(n),p=this.head,c=1;for(p.data.copy(ret),n-=p.data.length;p=p.next;){var buf=p.data,nb=n>buf.length?buf.length:n;if(buf.copy(ret,ret.length-n,0,nb),n-=nb,n===0){nb===buf.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=buf.slice(nb));break}++c}return this.length-=c,ret}},{key:custom,value:function(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{depth:0,customInspect:!1}))}}]),BufferList})()}});var require_destroy2=__commonJS({"node_modules/readable-stream/lib/internal/streams/destroy.js"(exports2,module2){"use strict";function destroy(err,cb){var _this=this,readableDestroyed=this._readableState&&this._readableState.destroyed,writableDestroyed=this._writableState&&this._writableState.destroyed;return readableDestroyed||writableDestroyed?(cb?cb(err):err&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,err)):process.nextTick(emitErrorNT,this,err)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(err||null,function(err2){!cb&&err2?_this._writableState?_this._writableState.errorEmitted?process.nextTick(emitCloseNT,_this):(_this._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,_this,err2)):process.nextTick(emitErrorAndCloseNT,_this,err2):cb?(process.nextTick(emitCloseNT,_this),cb(err2)):process.nextTick(emitCloseNT,_this)}),this)}function emitErrorAndCloseNT(self2,err){emitErrorNT(self2,err),emitCloseNT(self2)}function emitCloseNT(self2){self2._writableState&&!self2._writableState.emitClose||self2._readableState&&!self2._readableState.emitClose||self2.emit("close")}function undestroy(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function emitErrorNT(self2,err){self2.emit("error",err)}function errorOrDestroy(stream,err){var rState=stream._readableState,wState=stream._writableState;rState&&rState.autoDestroy||wState&&wState.autoDestroy?stream.destroy(err):stream.emit("error",err)}module2.exports={destroy,undestroy,errorOrDestroy}}});var require_errors3=__commonJS({"node_modules/readable-stream/errors.js"(exports2,module2){"use strict";var codes={};function createErrorType(code,message,Base){Base||(Base=Error);function getMessage(arg1,arg2,arg3){return typeof message=="string"?message:message(arg1,arg2,arg3)}class NodeError extends Base{constructor(arg1,arg2,arg3){super(getMessage(arg1,arg2,arg3))}}NodeError.prototype.name=Base.name,NodeError.prototype.code=code,codes[code]=NodeError}function oneOf(expected,thing){if(Array.isArray(expected)){let len=expected.length;return expected=expected.map(i=>String(i)),len>2?`one of ${thing} ${expected.slice(0,len-1).join(", ")}, or `+expected[len-1]:len===2?`one of ${thing} ${expected[0]} or ${expected[1]}`:`of ${thing} ${expected[0]}`}else return`of ${thing} ${String(expected)}`}function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search}function endsWith(str,search,this_len){return(this_len===void 0||this_len>str.length)&&(this_len=str.length),str.substring(this_len-search.length,this_len)===search}function includes(str,search,start){return typeof start!="number"&&(start=0),start+search.length>str.length?!1:str.indexOf(search,start)!==-1}createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){let determiner;typeof expected=="string"&&startsWith(expected,"not ")?(determiner="must not be",expected=expected.replace(/^not /,"")):determiner="must be";let msg;if(endsWith(name," argument"))msg=`The ${name} ${determiner} ${oneOf(expected,"type")}`;else{let type=includes(name,".")?"property":"argument";msg=`The "${name}" ${type} ${determiner} ${oneOf(expected,"type")}`}return msg+=`. Received type ${typeof actual}`,msg},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");module2.exports.codes=codes}});var require_state=__commonJS({"node_modules/readable-stream/lib/internal/streams/state.js"(exports2,module2){"use strict";var ERR_INVALID_OPT_VALUE=require_errors3().codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return Math.floor(hwm)}return state.objectMode?16:16*1024}module2.exports={getHighWaterMark}}});var require_node9=__commonJS({"node_modules/util-deprecate/node.js"(exports2,module2){module2.exports=require("util").deprecate}});var require_stream_writable=__commonJS({"node_modules/readable-stream/lib/_stream_writable.js"(exports2,module2){"use strict";module2.exports=Writable;function CorkedRequest(state){var _this=this;this.next=null,this.entry=null,this.finish=function(){onCorkedFinish(_this,state)}}var Duplex;Writable.WritableState=WritableState;var internalUtil={deprecate:require_node9()},Stream=require_stream3(),Buffer2=require("buffer").Buffer,OurUint8Array=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer2.from(chunk)}function _isUint8Array(obj){return Buffer2.isBuffer(obj)||obj instanceof OurUint8Array}var destroyImpl=require_destroy2(),_require=require_state(),getHighWaterMark=_require.getHighWaterMark,_require$codes=require_errors3().codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_STREAM_CANNOT_PIPE=_require$codes.ERR_STREAM_CANNOT_PIPE,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED,ERR_STREAM_NULL_VALUES=_require$codes.ERR_STREAM_NULL_VALUES,ERR_STREAM_WRITE_AFTER_END=_require$codes.ERR_STREAM_WRITE_AFTER_END,ERR_UNKNOWN_ENCODING=_require$codes.ERR_UNKNOWN_ENCODING,errorOrDestroy=destroyImpl.errorOrDestroy;require_inherits()(Writable,Stream);function nop(){}function WritableState(options,stream,isDuplex){Duplex=Duplex||require_stream_duplex(),options=options||{},typeof isDuplex!="boolean"&&(isDuplex=stream instanceof Duplex),this.objectMode=!!options.objectMode,isDuplex&&(this.objectMode=this.objectMode||!!options.writableObjectMode),this.highWaterMark=getHighWaterMark(this,options,"writableHighWaterMark",isDuplex),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=options.emitClose!==!1,this.autoDestroy=!!options.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function(){for(var current=this.bufferedRequest,out=[];current;)out.push(current),current=current.next;return out};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var realHasInstance;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(realHasInstance=Function.prototype[Symbol.hasInstance],Object.defineProperty(Writable,Symbol.hasInstance,{value:function(object){return realHasInstance.call(this,object)?!0:this!==Writable?!1:object&&object._writableState instanceof WritableState}})):realHasInstance=function(object){return object instanceof this};function Writable(options){Duplex=Duplex||require_stream_duplex();var isDuplex=this instanceof Duplex;if(!isDuplex&&!realHasInstance.call(Writable,this))return new Writable(options);this._writableState=new WritableState(options,this,isDuplex),this.writable=!0,options&&(typeof options.write=="function"&&(this._write=options.write),typeof options.writev=="function"&&(this._writev=options.writev),typeof options.destroy=="function"&&(this._destroy=options.destroy),typeof options.final=="function"&&(this._final=options.final)),Stream.call(this)}Writable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE)};function writeAfterEnd(stream,cb){var er=new ERR_STREAM_WRITE_AFTER_END;errorOrDestroy(stream,er),process.nextTick(cb,er)}function validChunk(stream,state,chunk,cb){var er;return chunk===null?er=new ERR_STREAM_NULL_VALUES:typeof chunk!="string"&&!state.objectMode&&(er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer"],chunk)),er?(errorOrDestroy(stream,er),process.nextTick(cb,er),!1):!0}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1,isBuf=!state.objectMode&&_isUint8Array(chunk);return isBuf&&!Buffer2.isBuffer(chunk)&&(chunk=_uint8ArrayToBuffer(chunk)),typeof encoding=="function"&&(cb=encoding,encoding=null),isBuf?encoding="buffer":encoding||(encoding=state.defaultEncoding),typeof cb!="function"&&(cb=nop),state.ending?writeAfterEnd(this,cb):(isBuf||validChunk(this,state,chunk,cb))&&(state.pendingcb++,ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb)),ret};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var state=this._writableState;state.corked&&(state.corked--,!state.writing&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest&&clearBuffer(this,state))};Writable.prototype.setDefaultEncoding=function(encoding){if(typeof encoding=="string"&&(encoding=encoding.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new ERR_UNKNOWN_ENCODING(encoding);return this._writableState.defaultEncoding=encoding,this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(state,chunk,encoding){return!state.objectMode&&state.decodeStrings!==!1&&typeof chunk=="string"&&(chunk=Buffer2.from(chunk,encoding)),chunk}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);chunk!==newChunk&&(isBuf=!0,encoding="buffer",chunk=newChunk)}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(ret||(state.needDrain=!0),state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk,encoding,isBuf,callback:cb,next:null},last?last.next=state.lastBufferedRequest:state.bufferedRequest=state.lastBufferedRequest,state.bufferedRequestCount+=1}else doWrite(stream,state,!1,len,chunk,encoding,cb);return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,state.destroyed?state.onwrite(new ERR_STREAM_DESTROYED("write")):writev?stream._writev(chunk,state.onwrite):stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){--state.pendingcb,sync?(process.nextTick(cb,er),process.nextTick(finishMaybe,stream,state),stream._writableState.errorEmitted=!0,errorOrDestroy(stream,er)):(cb(er),stream._writableState.errorEmitted=!0,errorOrDestroy(stream,er),finishMaybe(stream,state))}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(typeof cb!="function")throw new ERR_MULTIPLE_CALLBACK;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state)||stream.destroyed;!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest&&clearBuffer(stream,state),sync?process.nextTick(afterWrite,stream,state,finished,cb):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),state.pendingcb--,cb(),finishMaybe(stream,state)}function onwriteDrain(stream,state){state.length===0&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){state.bufferProcessing=!0;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l=state.bufferedRequestCount,buffer=new Array(l),holder=state.corkedRequestsFree;holder.entry=entry;for(var count=0,allBuffers=!0;entry;)buffer[count]=entry,entry.isBuf||(allBuffers=!1),entry=entry.next,count+=1;buffer.allBuffers=allBuffers,doWrite(stream,state,!0,state.length,buffer,"",holder.finish),state.pendingcb++,state.lastBufferedRequest=null,holder.next?(state.corkedRequestsFree=holder.next,holder.next=null):state.corkedRequestsFree=new CorkedRequest(state),state.bufferedRequestCount=0}else{for(;entry;){var chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,!1,len,chunk,encoding,cb),entry=entry.next,state.bufferedRequestCount--,state.writing)break}entry===null&&(state.lastBufferedRequest=null)}state.bufferedRequest=entry,state.bufferProcessing=!1}Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"))};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;return typeof chunk=="function"?(cb=chunk,chunk=null,encoding=null):typeof encoding=="function"&&(cb=encoding,encoding=null),chunk!=null&&this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||endWritable(this,state,cb),this};Object.defineProperty(Writable.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing}function callFinal(stream,state){stream._final(function(err){state.pendingcb--,err&&errorOrDestroy(stream,err),state.prefinished=!0,stream.emit("prefinish"),finishMaybe(stream,state)})}function prefinish(stream,state){!state.prefinished&&!state.finalCalled&&(typeof stream._final=="function"&&!state.destroyed?(state.pendingcb++,state.finalCalled=!0,process.nextTick(callFinal,stream,state)):(state.prefinished=!0,stream.emit("prefinish")))}function finishMaybe(stream,state){var need=needFinish(state);if(need&&(prefinish(stream,state),state.pendingcb===0&&(state.finished=!0,stream.emit("finish"),state.autoDestroy))){var rState=stream._readableState;(!rState||rState.autoDestroy&&rState.endEmitted)&&stream.destroy()}return need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb)),state.ended=!0,stream.writable=!1}function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;for(corkReq.entry=null;entry;){var cb=entry.callback;state.pendingcb--,cb(err),entry=entry.next}state.corkedRequestsFree.next=corkReq}Object.defineProperty(Writable.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(value){this._writableState&&(this._writableState.destroyed=value)}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err)}}});var require_stream_duplex=__commonJS({"node_modules/readable-stream/lib/_stream_duplex.js"(exports2,module2){"use strict";var objectKeys=Object.keys||function(obj){var keys2=[];for(var key in obj)keys2.push(key);return keys2};module2.exports=Duplex;var Readable=require_stream_readable(),Writable=require_stream_writable();require_inherits()(Duplex,Readable);for(keys=objectKeys(Writable.prototype),v=0;v<keys.length;v++)method=keys[v],Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method]);var keys,method,v;function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options),Writable.call(this,options),this.allowHalfOpen=!0,options&&(options.readable===!1&&(this.readable=!1),options.writable===!1&&(this.writable=!1),options.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",onend)))}Object.defineProperty(Duplex.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(Duplex.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(Duplex.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function onend(){this._writableState.ended||process.nextTick(onEndNT,this)}function onEndNT(self2){self2.end()}Object.defineProperty(Duplex.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(value){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=value,this._writableState.destroyed=value)}})}});var require_string_decoder=__commonJS({"node_modules/string_decoder/lib/string_decoder.js"(exports2){"use strict";var Buffer2=require_safe_buffer().Buffer,isEncoding=Buffer2.isEncoding||function(encoding){switch(encoding=""+encoding,encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function _normalizeEncoding(enc){if(!enc)return"utf8";for(var retried;;)switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase(),retried=!0}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!="string"&&(Buffer2.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}exports2.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text,this.end=utf16End,nb=4;break;case"utf8":this.fillLast=utf8FillLast,nb=4;break;case"base64":this.text=base64Text,this.end=base64End,nb=3;break;default:this.write=simpleWrite,this.end=simpleEnd;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer2.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return"";var r,i;if(this.lastNeed){if(r=this.fillLast(buf),r===void 0)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<buf.length?r?r+this.text(buf,i):this.text(buf,i):r||""};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length),this.lastNeed-=buf.length};function utf8CheckByte(byte){return byte<=127?0:byte>>5===6?2:byte>>4===14?3:byte>>3===30?4:byte>>6===2?-1:-2}function utf8CheckIncomplete(self2,buf,i){var j=buf.length-1;if(j<i)return 0;var nb=utf8CheckByte(buf[j]);return nb>=0?(nb>0&&(self2.lastNeed=nb-1),nb):--j<i||nb===-2?0:(nb=utf8CheckByte(buf[j]),nb>=0?(nb>0&&(self2.lastNeed=nb-2),nb):--j<i||nb===-2?0:(nb=utf8CheckByte(buf[j]),nb>=0?(nb>0&&(nb===2?nb=0:self2.lastNeed=nb-3),nb):0))}function utf8CheckExtraBytes(self2,buf,p){if((buf[0]&192)!==128)return self2.lastNeed=0,"\uFFFD";if(self2.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128)return self2.lastNeed=1,"\uFFFD";if(self2.lastNeed>2&&buf.length>2&&(buf[2]&192)!==128)return self2.lastNeed=2,"\uFFFD"}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=utf8CheckExtraBytes(this,buf,p);if(r!==void 0)return r;if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,p,0,buf.length),this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+"\uFFFD":r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;return n===0?buf.toString("base64",i):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=buf[buf.length-1]:(this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1]),buf.toString("base64",i,buf.length-n))}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+this.lastChar.toString("base64",0,3-this.lastNeed):r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}}});var require_end_of_stream=__commonJS({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports2,module2){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require_errors3().codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=!1;return function(){if(!called){called=!0;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];callback.apply(this,args)}}}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort=="function"}function eos(stream,opts,callback){if(typeof opts=="function")return eos(stream,null,opts);opts||(opts={}),callback=once(callback||noop);var readable=opts.readable||opts.readable!==!1&&stream.readable,writable=opts.writable||opts.writable!==!1&&stream.writable,onlegacyfinish=function(){stream.writable||onfinish()},writableEnded=stream._writableState&&stream._writableState.finished,onfinish=function(){writable=!1,writableEnded=!0,readable||callback.call(stream)},readableEnded=stream._readableState&&stream._readableState.endEmitted,onend=function(){readable=!1,readableEnded=!0,writable||callback.call(stream)},onerror=function(err){callback.call(stream,err)},onclose=function(){var err;if(readable&&!readableEnded)return(!stream._readableState||!stream._readableState.ended)&&(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err);if(writable&&!writableEnded)return(!stream._writableState||!stream._writableState.ended)&&(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)},onrequest=function(){stream.req.on("finish",onfinish)};return isRequest(stream)?(stream.on("complete",onfinish),stream.on("abort",onclose),stream.req?onrequest():stream.on("request",onrequest)):writable&&!stream._writableState&&(stream.on("end",onlegacyfinish),stream.on("close",onlegacyfinish)),stream.on("end",onend),stream.on("finish",onfinish),opts.error!==!1&&stream.on("error",onerror),stream.on("close",onclose),function(){stream.removeListener("complete",onfinish),stream.removeListener("abort",onclose),stream.removeListener("request",onrequest),stream.req&&stream.req.removeListener("finish",onfinish),stream.removeListener("end",onlegacyfinish),stream.removeListener("close",onlegacyfinish),stream.removeListener("finish",onfinish),stream.removeListener("end",onend),stream.removeListener("error",onerror),stream.removeListener("close",onclose)}}module2.exports=eos}});var require_async_iterator=__commonJS({"node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports2,module2){"use strict";var _Object$setPrototypeO;function _defineProperty(obj,key,value){return key=_toPropertyKey(key),key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key=="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var finished=require_end_of_stream(),kLastResolve=Symbol("lastResolve"),kLastReject=Symbol("lastReject"),kError=Symbol("error"),kEnded=Symbol("ended"),kLastPromise=Symbol("lastPromise"),kHandlePromise=Symbol("handlePromise"),kStream=Symbol("stream");function createIterResult(value,done){return{value,done}}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();data!==null&&(iter[kLastPromise]=null,iter[kLastResolve]=null,iter[kLastReject]=null,resolve(createIterResult(data,!1)))}}function onReadable(iter){process.nextTick(readAndResolve,iter)}function wrapForNext(lastPromise,iter){return function(resolve,reject){lastPromise.then(function(){if(iter[kEnded]){resolve(createIterResult(void 0,!0));return}iter[kHandlePromise](resolve,reject)},reject)}}var AsyncIteratorPrototype=Object.getPrototypeOf(function(){}),ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_Object$setPrototypeO={get stream(){return this[kStream]},next:function(){var _this=this,error=this[kError];if(error!==null)return Promise.reject(error);if(this[kEnded])return Promise.resolve(createIterResult(void 0,!0));if(this[kStream].destroyed)return new Promise(function(resolve,reject){process.nextTick(function(){_this[kError]?reject(_this[kError]):resolve(createIterResult(void 0,!0))})});var lastPromise=this[kLastPromise],promise;if(lastPromise)promise=new Promise(wrapForNext(lastPromise,this));else{var data=this[kStream].read();if(data!==null)return Promise.resolve(createIterResult(data,!1));promise=new Promise(this[kHandlePromise])}return this[kLastPromise]=promise,promise}},_defineProperty(_Object$setPrototypeO,Symbol.asyncIterator,function(){return this}),_defineProperty(_Object$setPrototypeO,"return",function(){var _this2=this;return new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return}resolve(createIterResult(void 0,!0))})})}),_Object$setPrototypeO),AsyncIteratorPrototype),createReadableStreamAsyncIterator=function(stream){var _Object$create,iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:!0}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:!0}),_defineProperty(_Object$create,kLastReject,{value:null,writable:!0}),_defineProperty(_Object$create,kError,{value:null,writable:!0}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:!0}),_defineProperty(_Object$create,kHandlePromise,{value:function(resolve,reject){var data=iterator[kStream].read();data?(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(data,!1))):(iterator[kLastResolve]=resolve,iterator[kLastReject]=reject)},writable:!0}),_Object$create));return iterator[kLastPromise]=null,finished(stream,function(err){if(err&&err.code!=="ERR_STREAM_PREMATURE_CLOSE"){var reject=iterator[kLastReject];reject!==null&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,reject(err)),iterator[kError]=err;return}var resolve=iterator[kLastResolve];resolve!==null&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(void 0,!0))),iterator[kEnded]=!0}),stream.on("readable",onReadable.bind(null,iterator)),iterator};module2.exports=createReadableStreamAsyncIterator}});var require_from=__commonJS({"node_modules/readable-stream/lib/internal/streams/from.js"(exports2,module2){"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self2=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self2,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})}}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _defineProperty(obj,key,value){return key=_toPropertyKey(key),key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key=="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var ERR_INVALID_ARG_TYPE=require_errors3().codes.ERR_INVALID_ARG_TYPE;function from(Readable,iterable,opts){var iterator;if(iterable&&typeof iterable.next=="function")iterator=iterable;else if(iterable&&iterable[Symbol.asyncIterator])iterator=iterable[Symbol.asyncIterator]();else if(iterable&&iterable[Symbol.iterator])iterator=iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE("iterable",["Iterable"],iterable);var readable=new Readable(_objectSpread({objectMode:!0},opts)),reading=!1;readable._read=function(){reading||(reading=!0,next())};function next(){return _next2.apply(this,arguments)}function _next2(){return _next2=_asyncToGenerator(function*(){try{var _yield$iterator$next=yield iterator.next(),value=_yield$iterator$next.value,done=_yield$iterator$next.done;done?readable.push(null):readable.push(yield value)?next():reading=!1}catch(err){readable.destroy(err)}}),_next2.apply(this,arguments)}return readable}module2.exports=from}});var require_stream_readable=__commonJS({"node_modules/readable-stream/lib/_stream_readable.js"(exports2,module2){"use strict";module2.exports=Readable;var Duplex;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter,EElistenerCount=function(emitter,type){return emitter.listeners(type).length},Stream=require_stream3(),Buffer2=require("buffer").Buffer,OurUint8Array=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer2.from(chunk)}function _isUint8Array(obj){return Buffer2.isBuffer(obj)||obj instanceof OurUint8Array}var debugUtil=require("util"),debug;debugUtil&&debugUtil.debuglog?debug=debugUtil.debuglog("stream"):debug=function(){};var BufferList=require_buffer_list(),destroyImpl=require_destroy2(),_require=require_state(),getHighWaterMark=_require.getHighWaterMark,_require$codes=require_errors3().codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_STREAM_PUSH_AFTER_EOF=_require$codes.ERR_STREAM_PUSH_AFTER_EOF,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_STREAM_UNSHIFT_AFTER_END_EVENT=_require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,StringDecoder,createReadableStreamAsyncIterator,from;require_inherits()(Readable,Stream);var errorOrDestroy=destroyImpl.errorOrDestroy,kProxyEvents=["error","close","destroy","pause","resume"];function prependListener(emitter,event,fn){if(typeof emitter.prependListener=="function")return emitter.prependListener(event,fn);!emitter._events||!emitter._events[event]?emitter.on(event,fn):Array.isArray(emitter._events[event])?emitter._events[event].unshift(fn):emitter._events[event]=[fn,emitter._events[event]]}function ReadableState(options,stream,isDuplex){Duplex=Duplex||require_stream_duplex(),options=options||{},typeof isDuplex!="boolean"&&(isDuplex=stream instanceof Duplex),this.objectMode=!!options.objectMode,isDuplex&&(this.objectMode=this.objectMode||!!options.readableObjectMode),this.highWaterMark=getHighWaterMark(this,options,"readableHighWaterMark",isDuplex),this.buffer=new BufferList,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=options.emitClose!==!1,this.autoDestroy=!!options.autoDestroy,this.destroyed=!1,this.defaultEncoding=options.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require_string_decoder().StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){if(Duplex=Duplex||require_stream_duplex(),!(this instanceof Readable))return new Readable(options);var isDuplex=this instanceof Duplex;this._readableState=new ReadableState(options,this,isDuplex),this.readable=!0,options&&(typeof options.read=="function"&&(this._read=options.read),typeof options.destroy=="function"&&(this._destroy=options.destroy)),Stream.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(value){this._readableState&&(this._readableState.destroyed=value)}});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err)};Readable.prototype.push=function(chunk,encoding){var state=this._readableState,skipChunkCheck;return state.objectMode?skipChunkCheck=!0:typeof chunk=="string"&&(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=Buffer2.from(chunk,encoding),encoding=""),skipChunkCheck=!0),readableAddChunk(this,chunk,encoding,!1,skipChunkCheck)};Readable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,!0,!1)};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){debug("readableAddChunk",chunk);var state=stream._readableState;if(chunk===null)state.reading=!1,onEofChunk(stream,state);else{var er;if(skipChunkCheck||(er=chunkInvalid(state,chunk)),er)errorOrDestroy(stream,er);else if(state.objectMode||chunk&&chunk.length>0)if(typeof chunk!="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer2.prototype&&(chunk=_uint8ArrayToBuffer(chunk)),addToFront)state.endEmitted?errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT):addChunk(stream,state,chunk,!0);else if(state.ended)errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF);else{if(state.destroyed)return!1;state.reading=!1,state.decoder&&!encoding?(chunk=state.decoder.write(chunk),state.objectMode||chunk.length!==0?addChunk(stream,state,chunk,!1):maybeReadMore(stream,state)):addChunk(stream,state,chunk,!1)}else addToFront||(state.reading=!1,maybeReadMore(stream,state))}return!state.ended&&(state.length<state.highWaterMark||state.length===0)}function addChunk(stream,state,chunk,addToFront){state.flowing&&state.length===0&&!state.sync?(state.awaitDrain=0,stream.emit("data",chunk)):(state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):state.buffer.push(chunk),state.needReadable&&emitReadable(stream)),maybeReadMore(stream,state)}function chunkInvalid(state,chunk){var er;return!_isUint8Array(chunk)&&typeof chunk!="string"&&chunk!==void 0&&!state.objectMode&&(er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer","Uint8Array"],chunk)),er}Readable.prototype.isPaused=function(){return this._readableState.flowing===!1};Readable.prototype.setEncoding=function(enc){StringDecoder||(StringDecoder=require_string_decoder().StringDecoder);var decoder=new StringDecoder(enc);this._readableState.decoder=decoder,this._readableState.encoding=this._readableState.decoder.encoding;for(var p=this._readableState.buffer.head,content="";p!==null;)content+=decoder.write(p.data),p=p.next;return this._readableState.buffer.clear(),content!==""&&this._readableState.buffer.push(content),this._readableState.length=content.length,this};var MAX_HWM=1073741824;function computeNewHighWaterMark(n){return n>=MAX_HWM?n=MAX_HWM:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function howMuchToRead(n,state){return n<=0||state.length===0&&state.ended?0:state.objectMode?1:n!==n?state.flowing&&state.length?state.buffer.head.data.length:state.length:(n>state.highWaterMark&&(state.highWaterMark=computeNewHighWaterMark(n)),n<=state.length?n:state.ended?state.length:(state.needReadable=!0,0))}Readable.prototype.read=function(n){debug("read",n),n=parseInt(n,10);var state=this._readableState,nOrig=n;if(n!==0&&(state.emittedReadable=!1),n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended))return debug("read: emitReadable",state.length,state.ended),state.length===0&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),n===0&&state.ended)return state.length===0&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(state.length===0||state.length-n<state.highWaterMark)&&(doRead=!0,debug("length less than watermark",doRead)),state.ended||state.reading?(doRead=!1,debug("reading or ended",doRead)):doRead&&(debug("do read"),state.reading=!0,state.sync=!0,state.length===0&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1,state.reading||(n=howMuchToRead(nOrig,state)));var ret;return n>0?ret=fromList(n,state):ret=null,ret===null?(state.needReadable=state.length<=state.highWaterMark,n=0):(state.length-=n,state.awaitDrain=0),state.length===0&&(state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&endReadable(this)),ret!==null&&this.emit("data",ret),ret};function onEofChunk(stream,state){if(debug("onEofChunk"),!state.ended){if(state.decoder){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,state.sync?emitReadable(stream):(state.needReadable=!1,state.emittedReadable||(state.emittedReadable=!0,emitReadable_(stream)))}}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable),state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream))}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended),!state.destroyed&&(state.length||state.ended)&&(stream.emit("readable"),state.emittedReadable=!1),state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(;!state.reading&&!state.ended&&(state.length<state.highWaterMark||state.flowing&&state.length===0);){var len=state.length;if(debug("maybeReadMore read 0"),stream.read(0),len===state.length)break}state.readingMore=!1}Readable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED("_read()"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:unpipe;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);function onunpipe(readable,unpipeInfo){debug("onunpipe"),readable===src&&unpipeInfo&&unpipeInfo.hasUnpiped===!1&&(unpipeInfo.hasUnpiped=!0,cleanup())}function onend(){debug("onend"),dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=!1;function cleanup(){debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",unpipe),src.removeListener("data",ondata),cleanedUp=!0,state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain)&&ondrain()}src.on("data",ondata);function ondata(chunk){debug("ondata");var ret=dest.write(chunk);debug("dest.write",ret),ret===!1&&((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp&&(debug("false write response, pause",state.awaitDrain),state.awaitDrain++),src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),EElistenerCount(dest,"error")===0&&errorOrDestroy(dest,er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish),unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe"),src.unpipe(dest)}return dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest};function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,state.awaitDrain===0&&EElistenerCount(src,"data")&&(state.flowing=!0,flow(src))}}Readable.prototype.unpipe=function(dest){var state=this._readableState,unpipeInfo={hasUnpiped:!1};if(state.pipesCount===0)return this;if(state.pipesCount===1)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this,unpipeInfo),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;i<len;i++)dests[i].emit("unpipe",this,{hasUnpiped:!1});return this}var index=indexOf(state.pipes,dest);return index===-1?this:(state.pipes.splice(index,1),state.pipesCount-=1,state.pipesCount===1&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this,unpipeInfo),this)};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn),state=this._readableState;return ev==="data"?(state.readableListening=this.listenerCount("readable")>0,state.flowing!==!1&&this.resume()):ev==="readable"&&!state.endEmitted&&!state.readableListening&&(state.readableListening=state.needReadable=!0,state.flowing=!1,state.emittedReadable=!1,debug("on readable",state.length,state.reading),state.length?emitReadable(this):state.reading||process.nextTick(nReadingNextTick,this)),res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);return ev==="readable"&&process.nextTick(updateReadableListening,this),res};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);return(ev==="readable"||ev===void 0)&&process.nextTick(updateReadableListening,this),res};function updateReadableListening(self2){var state=self2._readableState;state.readableListening=self2.listenerCount("readable")>0,state.resumeScheduled&&!state.paused?state.flowing=!0:self2.listenerCount("data")>0&&self2.resume()}function nReadingNextTick(self2){debug("readable nexttick read 0"),self2.read(0)}Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!state.readableListening,resume(this,state)),state.paused=!1,this};function resume(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,process.nextTick(resume_,stream,state))}function resume_(stream,state){debug("resume",state.reading),state.reading||stream.read(0),state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function flow(stream){var state=stream._readableState;for(debug("flow",state.flowing);state.flowing&&stream.read()!==null;);}Readable.prototype.wrap=function(stream){var _this=this,state=this._readableState,paused=!1;stream.on("end",function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&_this.push(chunk)}_this.push(null)}),stream.on("data",function(chunk){if(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),!(state.objectMode&&chunk==null)&&!(!state.objectMode&&(!chunk||!chunk.length))){var ret=_this.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)this[i]===void 0&&typeof stream[i]=="function"&&(this[i]=(function(method){return function(){return stream[method].apply(stream,arguments)}})(i));for(var n=0;n<kProxyEvents.length;n++)stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]));return this._read=function(n2){debug("wrapped _read",n2),paused&&(paused=!1,stream.resume())},this};typeof Symbol=="function"&&(Readable.prototype[Symbol.asyncIterator]=function(){return createReadableStreamAsyncIterator===void 0&&(createReadableStreamAsyncIterator=require_async_iterator()),createReadableStreamAsyncIterator(this)});Object.defineProperty(Readable.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Readable.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Readable.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(state){this._readableState&&(this._readableState.flowing=state)}});Readable._fromList=fromList;Object.defineProperty(Readable.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function fromList(n,state){if(state.length===0)return null;var ret;return state.objectMode?ret=state.buffer.shift():!n||n>=state.length?(state.decoder?ret=state.buffer.join(""):state.buffer.length===1?ret=state.buffer.first():ret=state.buffer.concat(state.length),state.buffer.clear()):ret=state.buffer.consume(n,state.decoder),ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted),state.endEmitted||(state.ended=!0,process.nextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){if(debug("endReadableNT",state.endEmitted,state.length),!state.endEmitted&&state.length===0&&(state.endEmitted=!0,stream.readable=!1,stream.emit("end"),state.autoDestroy)){var wState=stream._writableState;(!wState||wState.autoDestroy&&wState.finished)&&stream.destroy()}}typeof Symbol=="function"&&(Readable.from=function(iterable,opts){return from===void 0&&(from=require_from()),from(Readable,iterable,opts)});function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++)if(xs[i]===x)return i;return-1}}});var require_stream_transform=__commonJS({"node_modules/readable-stream/lib/_stream_transform.js"(exports2,module2){"use strict";module2.exports=Transform;var _require$codes=require_errors3().codes,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_TRANSFORM_ALREADY_TRANSFORMING=_require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,ERR_TRANSFORM_WITH_LENGTH_0=_require$codes.ERR_TRANSFORM_WITH_LENGTH_0,Duplex=require_stream_duplex();require_inherits()(Transform,Duplex);function afterTransform(er,data){var ts=this._transformState;ts.transforming=!1;var cb=ts.writecb;if(cb===null)return this.emit("error",new ERR_MULTIPLE_CALLBACK);ts.writechunk=null,ts.writecb=null,data!=null&&this.push(data),cb(er);var rs=this._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options),this._transformState={afterTransform:afterTransform.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,options&&(typeof options.transform=="function"&&(this._transform=options.transform),typeof options.flush=="function"&&(this._flush=options.flush)),this.on("prefinish",prefinish)}function prefinish(){var _this=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(er,data){done(_this,er,data)}):done(this,null,null)}Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"))};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;ts.writechunk!==null&&!ts.transforming?(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)):ts.needTransform=!0};Transform.prototype._destroy=function(err,cb){Duplex.prototype._destroy.call(this,err,function(err2){cb(err2)})};function done(stream,er,data){if(er)return stream.emit("error",er);if(data!=null&&stream.push(data),stream._writableState.length)throw new ERR_TRANSFORM_WITH_LENGTH_0;if(stream._transformState.transforming)throw new ERR_TRANSFORM_ALREADY_TRANSFORMING;return stream.push(null)}}});var require_stream_passthrough=__commonJS({"node_modules/readable-stream/lib/_stream_passthrough.js"(exports2,module2){"use strict";module2.exports=PassThrough;var Transform=require_stream_transform();require_inherits()(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}}});var require_pipeline=__commonJS({"node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports2,module2){"use strict";var eos;function once(callback){var called=!1;return function(){called||(called=!0,callback.apply(void 0,arguments))}}var _require$codes=require_errors3().codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function isRequest(stream){return stream.setHeader&&typeof stream.abort=="function"}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=!1;stream.on("close",function(){closed=!0}),eos===void 0&&(eos=require_end_of_stream()),eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=!0,callback()});var destroyed=!1;return function(err){if(!closed&&!destroyed){if(destroyed=!0,isRequest(stream))return stream.abort();if(typeof stream.destroy=="function")return stream.destroy();callback(err||new ERR_STREAM_DESTROYED("pipe"))}}}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}function popCallback(streams){return!streams.length||typeof streams[streams.length-1]!="function"?noop:streams.pop()}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++)streams[_key]=arguments[_key];var callback=popCallback(streams);if(Array.isArray(streams[0])&&(streams=streams[0]),streams.length<2)throw new ERR_MISSING_ARGS("streams");var error,destroys=streams.map(function(stream,i){var reading=i<streams.length-1,writing=i>0;return destroyer(stream,reading,writing,function(err){error||(error=err),err&&destroys.forEach(call),!reading&&(destroys.forEach(call),callback(error))})});return streams.reduce(pipe)}module2.exports=pipeline}});var require_readable=__commonJS({"node_modules/readable-stream/readable.js"(exports2,module2){var Stream=require("stream");process.env.READABLE_STREAM==="disable"&&Stream?(module2.exports=Stream.Readable,Object.assign(module2.exports,Stream),module2.exports.Stream=Stream):(exports2=module2.exports=require_stream_readable(),exports2.Stream=Stream||exports2,exports2.Readable=exports2,exports2.Writable=require_stream_writable(),exports2.Duplex=require_stream_duplex(),exports2.Transform=require_stream_transform(),exports2.PassThrough=require_stream_passthrough(),exports2.finished=require_end_of_stream(),exports2.pipeline=require_pipeline())}});var require_buffer_from=__commonJS({"node_modules/buffer-from/index.js"(exports2,module2){var toString=Object.prototype.toString,isModern=typeof Buffer<"u"&&typeof Buffer.alloc=="function"&&typeof Buffer.allocUnsafe=="function"&&typeof Buffer.from=="function";function isArrayBuffer(input){return toString.call(input).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(obj,byteOffset,length){byteOffset>>>=0;var maxLength=obj.byteLength-byteOffset;if(maxLength<0)throw new RangeError("'offset' is out of bounds");if(length===void 0)length=maxLength;else if(length>>>=0,length>maxLength)throw new RangeError("'length' is out of bounds");return isModern?Buffer.from(obj.slice(byteOffset,byteOffset+length)):new Buffer(new Uint8Array(obj.slice(byteOffset,byteOffset+length)))}function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer.isEncoding(encoding))throw new TypeError('"encoding" must be a valid string encoding');return isModern?Buffer.from(string,encoding):new Buffer(string,encoding)}function bufferFrom(value,encodingOrOffset,length){if(typeof value=="number")throw new TypeError('"value" argument must not be a number');return isArrayBuffer(value)?fromArrayBuffer(value,encodingOrOffset,length):typeof value=="string"?fromString(value,encodingOrOffset):isModern?Buffer.from(value):new Buffer(value)}module2.exports=bufferFrom}});var require_typedarray=__commonJS({"node_modules/typedarray/index.js"(exports2){var undefined2=void 0,MAX_ARRAY_LENGTH=1e5,ECMAScript=(function(){var opts=Object.prototype.toString,ophop=Object.prototype.hasOwnProperty;return{Class:function(v){return opts.call(v).replace(/^\[object *|\]$/g,"")},HasProperty:function(o,p){return p in o},HasOwnProperty:function(o,p){return ophop.call(o,p)},IsCallable:function(o){return typeof o=="function"},ToInt32:function(v){return v>>0},ToUint32:function(v){return v>>>0}}})(),LN2=Math.LN2,abs=Math.abs,floor=Math.floor,log=Math.log,min=Math.min,pow=Math.pow,round=Math.round;function configureProperties(obj){if(getOwnPropNames&&defineProp){var props=getOwnPropNames(obj),i;for(i=0;i<props.length;i+=1)defineProp(obj,props[i],{value:obj[props[i]],writable:!1,enumerable:!1,configurable:!1})}}var defineProp;Object.defineProperty&&(function(){try{return Object.defineProperty({},"x",{}),!0}catch{return!1}})()?defineProp=Object.defineProperty:defineProp=function(o,p,desc){if(!o===Object(o))throw new TypeError("Object.defineProperty called on non-object");return ECMAScript.HasProperty(desc,"get")&&Object.prototype.__defineGetter__&&Object.prototype.__defineGetter__.call(o,p,desc.get),ECMAScript.HasProperty(desc,"set")&&Object.prototype.__defineSetter__&&Object.prototype.__defineSetter__.call(o,p,desc.set),ECMAScript.HasProperty(desc,"value")&&(o[p]=desc.value),o};var getOwnPropNames=Object.getOwnPropertyNames||function(o){if(o!==Object(o))throw new TypeError("Object.getOwnPropertyNames called on non-object");var props=[],p;for(p in o)ECMAScript.HasOwnProperty(o,p)&&props.push(p);return props};function makeArrayAccessors(obj){if(!defineProp)return;if(obj.length>MAX_ARRAY_LENGTH)throw new RangeError("Array too large for polyfill");function makeArrayAccessor(index){defineProp(obj,index,{get:function(){return obj._getter(index)},set:function(v){obj._setter(index,v)},enumerable:!0,configurable:!1})}var i;for(i=0;i<obj.length;i+=1)makeArrayAccessor(i)}function as_signed(value,bits){var s=32-bits;return value<<s>>s}function as_unsigned(value,bits){var s=32-bits;return value<<s>>>s}function packI8(n){return[n&255]}function unpackI8(bytes){return as_signed(bytes[0],8)}function packU8(n){return[n&255]}function unpackU8(bytes){return as_unsigned(bytes[0],8)}function packU8Clamped(n){return n=round(Number(n)),[n<0?0:n>255?255:n&255]}function packI16(n){return[n>>8&255,n&255]}function unpackI16(bytes){return as_signed(bytes[0]<<8|bytes[1],16)}function packU16(n){return[n>>8&255,n&255]}function unpackU16(bytes){return as_unsigned(bytes[0]<<8|bytes[1],16)}function packI32(n){return[n>>24&255,n>>16&255,n>>8&255,n&255]}function unpackI32(bytes){return as_signed(bytes[0]<<24|bytes[1]<<16|bytes[2]<<8|bytes[3],32)}function packU32(n){return[n>>24&255,n>>16&255,n>>8&255,n&255]}function unpackU32(bytes){return as_unsigned(bytes[0]<<24|bytes[1]<<16|bytes[2]<<8|bytes[3],32)}function packIEEE754(v,ebits,fbits){var bias=(1<<ebits-1)-1,s,e,f,ln,i,bits,str,bytes;function roundToEven(n){var w=floor(n),f2=n-w;return f2<.5?w:f2>.5||w%2?w+1:w}for(v!==v?(e=(1<<ebits)-1,f=pow(2,fbits-1),s=0):v===1/0||v===-1/0?(e=(1<<ebits)-1,f=0,s=v<0?1:0):v===0?(e=0,f=0,s=1/v===-1/0?1:0):(s=v<0,v=abs(v),v>=pow(2,1-bias)?(e=min(floor(log(v)/LN2),1023),f=roundToEven(v/pow(2,e)*pow(2,fbits)),f/pow(2,fbits)>=2&&(e=e+1,f=1),e>bias?(e=(1<<ebits)-1,f=0):(e=e+bias,f=f-pow(2,fbits))):(e=0,f=roundToEven(v/pow(2,1-bias-fbits)))),bits=[],i=fbits;i;i-=1)bits.push(f%2?1:0),f=floor(f/2);for(i=ebits;i;i-=1)bits.push(e%2?1:0),e=floor(e/2);for(bits.push(s?1:0),bits.reverse(),str=bits.join(""),bytes=[];str.length;)bytes.push(parseInt(str.substring(0,8),2)),str=str.substring(8);return bytes}function unpackIEEE754(bytes,ebits,fbits){var bits=[],i,j,b,str,bias,s,e,f;for(i=bytes.length;i;i-=1)for(b=bytes[i-1],j=8;j;j-=1)bits.push(b%2?1:0),b=b>>1;return bits.reverse(),str=bits.join(""),bias=(1<<ebits-1)-1,s=parseInt(str.substring(0,1),2)?-1:1,e=parseInt(str.substring(1,1+ebits),2),f=parseInt(str.substring(1+ebits),2),e===(1<<ebits)-1?f!==0?NaN:s*(1/0):e>0?s*pow(2,e-bias)*(1+f/pow(2,fbits)):f!==0?s*pow(2,-(bias-1))*(f/pow(2,fbits)):s<0?-0:0}function unpackF64(b){return unpackIEEE754(b,11,52)}function packF64(v){return packIEEE754(v,11,52)}function unpackF32(b){return unpackIEEE754(b,8,23)}function packF32(v){return packIEEE754(v,8,23)}(function(){var ArrayBuffer2=function(length){if(length=ECMAScript.ToInt32(length),length<0)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=length,this._bytes=[],this._bytes.length=length;var i;for(i=0;i<this.byteLength;i+=1)this._bytes[i]=0;configureProperties(this)};exports2.ArrayBuffer=exports2.ArrayBuffer||ArrayBuffer2;var ArrayBufferView=function(){};function makeConstructor(bytesPerElement,pack,unpack){var ctor;return ctor=function(buffer,byteOffset,length){var array,sequence,i,s;if(!arguments.length||typeof arguments[0]=="number"){if(this.length=ECMAScript.ToInt32(arguments[0]),length<0)throw new RangeError("ArrayBufferView size is not a small enough positive integer");this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new ArrayBuffer2(this.byteLength),this.byteOffset=0}else if(typeof arguments[0]=="object"&&arguments[0].constructor===ctor)for(array=arguments[0],this.length=array.length,this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new ArrayBuffer2(this.byteLength),this.byteOffset=0,i=0;i<this.length;i+=1)this._setter(i,array._getter(i));else if(typeof arguments[0]=="object"&&!(arguments[0]instanceof ArrayBuffer2||ECMAScript.Class(arguments[0])==="ArrayBuffer"))for(sequence=arguments[0],this.length=ECMAScript.ToUint32(sequence.length),this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new ArrayBuffer2(this.byteLength),this.byteOffset=0,i=0;i<this.length;i+=1)s=sequence[i],this._setter(i,Number(s));else if(typeof arguments[0]=="object"&&(arguments[0]instanceof ArrayBuffer2||ECMAScript.Class(arguments[0])==="ArrayBuffer")){if(this.buffer=buffer,this.byteOffset=ECMAScript.ToUint32(byteOffset),this.byteOffset>this.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteOffset%this.BYTES_PER_ELEMENT)throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");if(arguments.length<3){if(this.byteLength=this.buffer.byteLength-this.byteOffset,this.byteLength%this.BYTES_PER_ELEMENT)throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");this.length=this.byteLength/this.BYTES_PER_ELEMENT}else this.length=ECMAScript.ToUint32(length),this.byteLength=this.length*this.BYTES_PER_ELEMENT;if(this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}else throw new TypeError("Unexpected argument type(s)");this.constructor=ctor,configureProperties(this),makeArrayAccessors(this)},ctor.prototype=new ArrayBufferView,ctor.prototype.BYTES_PER_ELEMENT=bytesPerElement,ctor.prototype._pack=pack,ctor.prototype._unpack=unpack,ctor.BYTES_PER_ELEMENT=bytesPerElement,ctor.prototype._getter=function(index){if(arguments.length<1)throw new SyntaxError("Not enough arguments");if(index=ECMAScript.ToUint32(index),index>=this.length)return undefined2;var bytes=[],i,o;for(i=0,o=this.byteOffset+index*this.BYTES_PER_ELEMENT;i<this.BYTES_PER_ELEMENT;i+=1,o+=1)bytes.push(this.buffer._bytes[o]);return this._unpack(bytes)},ctor.prototype.get=ctor.prototype._getter,ctor.prototype._setter=function(index,value){if(arguments.length<2)throw new SyntaxError("Not enough arguments");if(index=ECMAScript.ToUint32(index),index>=this.length)return undefined2;var bytes=this._pack(value),i,o;for(i=0,o=this.byteOffset+index*this.BYTES_PER_ELEMENT;i<this.BYTES_PER_ELEMENT;i+=1,o+=1)this.buffer._bytes[o]=bytes[i]},ctor.prototype.set=function(index,value){if(arguments.length<1)throw new SyntaxError("Not enough arguments");var array,sequence,offset,len,i,s,d,byteOffset,byteLength,tmp;if(typeof arguments[0]=="object"&&arguments[0].constructor===this.constructor){if(array=arguments[0],offset=ECMAScript.ToUint32(arguments[1]),offset+array.length>this.length)throw new RangeError("Offset plus length of array is out of range");if(byteOffset=this.byteOffset+offset*this.BYTES_PER_ELEMENT,byteLength=array.length*this.BYTES_PER_ELEMENT,array.buffer===this.buffer){for(tmp=[],i=0,s=array.byteOffset;i<byteLength;i+=1,s+=1)tmp[i]=array.buffer._bytes[s];for(i=0,d=byteOffset;i<byteLength;i+=1,d+=1)this.buffer._bytes[d]=tmp[i]}else for(i=0,s=array.byteOffset,d=byteOffset;i<byteLength;i+=1,s+=1,d+=1)this.buffer._bytes[d]=array.buffer._bytes[s]}else if(typeof arguments[0]=="object"&&typeof arguments[0].length<"u"){if(sequence=arguments[0],len=ECMAScript.ToUint32(sequence.length),offset=ECMAScript.ToUint32(arguments[1]),offset+len>this.length)throw new RangeError("Offset plus length of array is out of range");for(i=0;i<len;i+=1)s=sequence[i],this._setter(offset+i,Number(s))}else throw new TypeError("Unexpected argument type(s)")},ctor.prototype.subarray=function(start,end){function clamp(v,min2,max){return v<min2?min2:v>max?max:v}start=ECMAScript.ToInt32(start),end=ECMAScript.ToInt32(end),arguments.length<1&&(start=0),arguments.length<2&&(end=this.length),start<0&&(start=this.length+start),end<0&&(end=this.length+end),start=clamp(start,0,this.length),end=clamp(end,0,this.length);var len=end-start;return len<0&&(len=0),new this.constructor(this.buffer,this.byteOffset+start*this.BYTES_PER_ELEMENT,len)},ctor}var Int8Array2=makeConstructor(1,packI8,unpackI8),Uint8Array2=makeConstructor(1,packU8,unpackU8),Uint8ClampedArray2=makeConstructor(1,packU8Clamped,unpackU8),Int16Array2=makeConstructor(2,packI16,unpackI16),Uint16Array2=makeConstructor(2,packU16,unpackU16),Int32Array2=makeConstructor(4,packI32,unpackI32),Uint32Array2=makeConstructor(4,packU32,unpackU32),Float32Array2=makeConstructor(4,packF32,unpackF32),Float64Array2=makeConstructor(8,packF64,unpackF64);exports2.Int8Array=exports2.Int8Array||Int8Array2,exports2.Uint8Array=exports2.Uint8Array||Uint8Array2,exports2.Uint8ClampedArray=exports2.Uint8ClampedArray||Uint8ClampedArray2,exports2.Int16Array=exports2.Int16Array||Int16Array2,exports2.Uint16Array=exports2.Uint16Array||Uint16Array2,exports2.Int32Array=exports2.Int32Array||Int32Array2,exports2.Uint32Array=exports2.Uint32Array||Uint32Array2,exports2.Float32Array=exports2.Float32Array||Float32Array2,exports2.Float64Array=exports2.Float64Array||Float64Array2})();(function(){function r(array,index){return ECMAScript.IsCallable(array.get)?array.get(index):array[index]}var IS_BIG_ENDIAN=(function(){var u16array=new exports2.Uint16Array([4660]),u8array=new exports2.Uint8Array(u16array.buffer);return r(u8array,0)===18})(),DataView2=function(buffer,byteOffset,byteLength){if(arguments.length===0)buffer=new exports2.ArrayBuffer(0);else if(!(buffer instanceof exports2.ArrayBuffer||ECMAScript.Class(buffer)==="ArrayBuffer"))throw new TypeError("TypeError");if(this.buffer=buffer||new exports2.ArrayBuffer(0),this.byteOffset=ECMAScript.ToUint32(byteOffset),this.byteOffset>this.buffer.byteLength)throw new RangeError("byteOffset out of range");if(arguments.length<3?this.byteLength=this.buffer.byteLength-this.byteOffset:this.byteLength=ECMAScript.ToUint32(byteLength),this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");configureProperties(this)};function makeGetter(arrayType){return function(byteOffset,littleEndian){if(byteOffset=ECMAScript.ToUint32(byteOffset),byteOffset+arrayType.BYTES_PER_ELEMENT>this.byteLength)throw new RangeError("Array index out of range");byteOffset+=this.byteOffset;var uint8Array=new exports2.Uint8Array(this.buffer,byteOffset,arrayType.BYTES_PER_ELEMENT),bytes=[],i;for(i=0;i<arrayType.BYTES_PER_ELEMENT;i+=1)bytes.push(r(uint8Array,i));return!!littleEndian==!!IS_BIG_ENDIAN&&bytes.reverse(),r(new arrayType(new exports2.Uint8Array(bytes).buffer),0)}}DataView2.prototype.getUint8=makeGetter(exports2.Uint8Array),DataView2.prototype.getInt8=makeGetter(exports2.Int8Array),DataView2.prototype.getUint16=makeGetter(exports2.Uint16Array),DataView2.prototype.getInt16=makeGetter(exports2.Int16Array),DataView2.prototype.getUint32=makeGetter(exports2.Uint32Array),DataView2.prototype.getInt32=makeGetter(exports2.Int32Array),DataView2.prototype.getFloat32=makeGetter(exports2.Float32Array),DataView2.prototype.getFloat64=makeGetter(exports2.Float64Array);function makeSetter(arrayType){return function(byteOffset,value,littleEndian){if(byteOffset=ECMAScript.ToUint32(byteOffset),byteOffset+arrayType.BYTES_PER_ELEMENT>this.byteLength)throw new RangeError("Array index out of range");var typeArray=new arrayType([value]),byteArray=new exports2.Uint8Array(typeArray.buffer),bytes=[],i,byteView;for(i=0;i<arrayType.BYTES_PER_ELEMENT;i+=1)bytes.push(r(byteArray,i));!!littleEndian==!!IS_BIG_ENDIAN&&bytes.reverse(),byteView=new exports2.Uint8Array(this.buffer,byteOffset,arrayType.BYTES_PER_ELEMENT),byteView.set(bytes)}}DataView2.prototype.setUint8=makeSetter(exports2.Uint8Array),DataView2.prototype.setInt8=makeSetter(exports2.Int8Array),DataView2.prototype.setUint16=makeSetter(exports2.Uint16Array),DataView2.prototype.setInt16=makeSetter(exports2.Int16Array),DataView2.prototype.setUint32=makeSetter(exports2.Uint32Array),DataView2.prototype.setInt32=makeSetter(exports2.Int32Array),DataView2.prototype.setFloat32=makeSetter(exports2.Float32Array),DataView2.prototype.setFloat64=makeSetter(exports2.Float64Array),exports2.DataView=exports2.DataView||DataView2})()}});var require_concat_stream=__commonJS({"node_modules/multer/node_modules/concat-stream/index.js"(exports2,module2){var Writable=require_readable().Writable,inherits=require_inherits(),bufferFrom=require_buffer_from();typeof Uint8Array>"u"?U8=require_typedarray().Uint8Array:U8=Uint8Array;var U8;function ConcatStream(opts,cb){if(!(this instanceof ConcatStream))return new ConcatStream(opts,cb);typeof opts=="function"&&(cb=opts,opts={}),opts||(opts={});var encoding=opts.encoding,shouldInferEncoding=!1;encoding?(encoding=String(encoding).toLowerCase(),(encoding==="u8"||encoding==="uint8")&&(encoding="uint8array")):shouldInferEncoding=!0,Writable.call(this,{objectMode:!0}),this.encoding=encoding,this.shouldInferEncoding=shouldInferEncoding,cb&&this.on("finish",function(){cb(this.getBody())}),this.body=[]}module2.exports=ConcatStream;inherits(ConcatStream,Writable);ConcatStream.prototype._write=function(chunk,enc,next){this.body.push(chunk),next()};ConcatStream.prototype.inferEncoding=function(buff){var firstBuffer=buff===void 0?this.body[0]:buff;return Buffer.isBuffer(firstBuffer)?"buffer":typeof Uint8Array<"u"&&firstBuffer instanceof Uint8Array?"uint8array":Array.isArray(firstBuffer)?"array":typeof firstBuffer=="string"?"string":Object.prototype.toString.call(firstBuffer)==="[object Object]"?"object":"buffer"};ConcatStream.prototype.getBody=function(){return!this.encoding&&this.body.length===0?[]:(this.shouldInferEncoding&&(this.encoding=this.inferEncoding()),this.encoding==="array"?arrayConcat(this.body):this.encoding==="string"?stringConcat(this.body):this.encoding==="buffer"?bufferConcat(this.body):this.encoding==="uint8array"?u8Concat(this.body):this.body)};function isArrayish(arr){return/Array\]$/.test(Object.prototype.toString.call(arr))}function isBufferish(p){return typeof p=="string"||isArrayish(p)||p&&typeof p.subarray=="function"}function stringConcat(parts){for(var strings=[],needsToString=!1,i=0;i<parts.length;i++){var p=parts[i];typeof p=="string"||Buffer.isBuffer(p)?strings.push(p):isBufferish(p)?strings.push(bufferFrom(p)):strings.push(bufferFrom(String(p)))}return Buffer.isBuffer(parts[0])?(strings=Buffer.concat(strings),strings=strings.toString("utf8")):strings=strings.join(""),strings}function bufferConcat(parts){for(var bufs=[],i=0;i<parts.length;i++){var p=parts[i];Buffer.isBuffer(p)?bufs.push(p):isBufferish(p)?bufs.push(bufferFrom(p)):bufs.push(bufferFrom(String(p)))}return Buffer.concat(bufs)}function arrayConcat(parts){for(var res=[],i=0;i<parts.length;i++)res.push.apply(res,parts[i]);return res}function u8Concat(parts){for(var len=0,i=0;i<parts.length;i++)typeof parts[i]=="string"&&(parts[i]=bufferFrom(parts[i])),len+=parts[i].length;for(var u8=new U8(len),i=0,offset=0;i<parts.length;i++)for(var part=parts[i],j=0;j<part.length;j++)u8[offset++]=part[j];return u8}}});var require_memory=__commonJS({"node_modules/multer/storage/memory.js"(exports2,module2){var concat=require_concat_stream();function MemoryStorage(opts){}MemoryStorage.prototype._handleFile=function(req,file,cb){file.stream.pipe(concat({encoding:"buffer"},function(data){cb(null,{buffer:data,size:data.length})}))};MemoryStorage.prototype._removeFile=function(req,file,cb){delete file.buffer,cb(null)};module2.exports=function(opts){return new MemoryStorage(opts)}}});var require_multer=__commonJS({"node_modules/multer/index.js"(exports2,module2){var makeMiddleware=require_make_middleware(),diskStorage=require_disk(),memoryStorage=require_memory(),MulterError=require_multer_error();function allowAll(req,file,cb){cb(null,!0)}function Multer(options){options.storage?this.storage=options.storage:options.dest?this.storage=diskStorage({destination:options.dest}):this.storage=memoryStorage(),this.limits=options.limits,this.preservePath=options.preservePath,this.defParamCharset=options.defParamCharset||"latin1",this.fileFilter=options.fileFilter||allowAll}Multer.prototype._makeMiddleware=function(fields,fileStrategy){function setup(){var fileFilter=this.fileFilter,filesLeft=Object.create(null);fields.forEach(function(field){typeof field.maxCount=="number"?filesLeft[field.name]=field.maxCount:filesLeft[field.name]=1/0});function wrappedFileFilter(req,file,cb){if((filesLeft[file.fieldname]||0)<=0)return cb(new MulterError("LIMIT_UNEXPECTED_FILE",file.fieldname));filesLeft[file.fieldname]-=1,fileFilter(req,file,cb)}return{limits:this.limits,preservePath:this.preservePath,defParamCharset:this.defParamCharset,storage:this.storage,fileFilter:wrappedFileFilter,fileStrategy}}return makeMiddleware(setup.bind(this))};Multer.prototype.single=function(name){return this._makeMiddleware([{name,maxCount:1}],"VALUE")};Multer.prototype.array=function(name,maxCount){return this._makeMiddleware([{name,maxCount}],"ARRAY")};Multer.prototype.fields=function(fields){return this._makeMiddleware(fields,"OBJECT")};Multer.prototype.none=function(){return this._makeMiddleware([],"NONE")};Multer.prototype.any=function(){function setup(){return{limits:this.limits,preservePath:this.preservePath,defParamCharset:this.defParamCharset,storage:this.storage,fileFilter:this.fileFilter,fileStrategy:"ARRAY"}}return makeMiddleware(setup.bind(this))};function multer(options){if(options===void 0)return new Multer({});if(typeof options=="object"&&options!==null)return new Multer(options);throw new TypeError("Expected object for argument options")}module2.exports=multer;module2.exports.diskStorage=diskStorage;module2.exports.memoryStorage=memoryStorage;module2.exports.MulterError=MulterError}});var require_ua_parser=__commonJS({"node_modules/ua-parser-js/src/main/ua-parser.js"(exports2,module2){(function(window2,undefined2){"use strict";var LIBVERSION="2.0.10",UA_MAX_LENGTH=500,USER_AGENT="user-agent",EMPTY="",UNKNOWN="?",TYPEOF={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},BROWSER="browser",CPU="cpu",DEVICE="device",ENGINE="engine",OS="os",RESULT="result",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",MAJOR="major",MODEL="model",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",XR="xr",EMBEDDED="embedded",FETCHER="fetcher",INAPP="inapp",BRANDS="brands",FORMFACTORS="formFactors",FULLVERLIST="fullVersionList",PLATFORM="platform",PLATFORMVER="platformVersion",BITNESS="bitness",CH="sec-ch-ua",CH_FULL_VER_LIST=CH+"-full-version-list",CH_ARCH=CH+"-arch",CH_BITNESS=CH+"-"+BITNESS,CH_FORM_FACTORS=CH+"-form-factors",CH_MOBILE=CH+"-"+MOBILE,CH_MODEL=CH+"-"+MODEL,CH_PLATFORM=CH+"-"+PLATFORM,CH_PLATFORM_VER=CH_PLATFORM+"-version",CH_ALL_VALUES=[BRANDS,FULLVERLIST,MOBILE,MODEL,PLATFORM,PLATFORMVER,ARCHITECTURE,FORMFACTORS,BITNESS],AMAZON="Amazon",APPLE="Apple",ASUS="ASUS",BLACKBERRY="BlackBerry",GOOGLE="Google",HUAWEI="Huawei",LENOVO="Lenovo",HONOR="Honor",LG="LG",MICROSOFT="Microsoft",MOTOROLA="Motorola",NVIDIA="Nvidia",ONEPLUS="OnePlus",OPPO="OPPO",SAMSUNG="Samsung",SHARP="Sharp",SONY="Sony",XIAOMI="Xiaomi",ZEBRA="Zebra",CHROME="Chrome",CHROMIUM="Chromium",CHROMECAST="Chromecast",EDGE="Edge",FIREFOX="Firefox",OPERA="Opera",FACEBOOK="Facebook",SOGOU="Sogou",PREFIX_MOBILE="Mobile ",SUFFIX_BROWSER=" Browser",WINDOWS="Windows",isWindow=typeof window2!==TYPEOF.UNDEFINED,NAVIGATOR=isWindow&&window2.navigator?window2.navigator:undefined2,NAVIGATOR_UADATA=NAVIGATOR&&NAVIGATOR.userAgentData?NAVIGATOR.userAgentData:undefined2,extend=function(defaultRgx,extensions){var mergedRgx={},extraRgx=extensions;if(!isExtensions(extensions)){extraRgx={};for(var i in extensions)for(var j in extensions[i])extraRgx[j]=extensions[i][j].concat(extraRgx[j]?extraRgx[j]:[])}for(var k in defaultRgx)mergedRgx[k]=extraRgx[k]&&extraRgx[k].length%2===0?extraRgx[k].concat(defaultRgx[k]):defaultRgx[k];return mergedRgx},enumerize=function(arr){for(var enums={},i=0;i<arr.length;i++)enums[arr[i].toUpperCase()]=arr[i];return enums},has=function(str1,str2){if(typeof str1===TYPEOF.OBJECT&&str1.length>0){for(var i in str1)if(lowerize(str2)==lowerize(str1[i]))return!0;return!1}return isString(str1)?lowerize(str2)==lowerize(str1):!1},isExtensions=function(obj,deep){for(var prop in obj)return/^(browser|cpu|device|engine|os)$/.test(prop)||(deep?isExtensions(obj[prop]):!1)},isString=function(val){return typeof val===TYPEOF.STRING},itemListToArray=function(header){if(!header)return undefined2;for(var arr=[],tokens=normalizeHeaderValue(header).split(","),i=0;i<tokens.length;i++)if(tokens[i].indexOf(";")>-1){var token=trim(tokens[i]).split(";v=");arr[i]={brand:token[0],version:token[1]}}else arr[i]=trim(tokens[i]);return arr},lowerize=function(str){return isString(str)?str.toLowerCase():str},majorize=function(version){return isString(version)?strip(/[^\d\.]/g,version).split(".")[0]:undefined2},normalizeHeaderValue=function(str){return isString(str)?trim(strip(/\\?\"/g,str),UA_MAX_LENGTH):undefined2},setProps=function(arr){for(var i in arr)if(arr.hasOwnProperty(i)){var propName=arr[i];typeof propName==TYPEOF.OBJECT&&propName.length==2?this[propName[0]]=propName[1]:this[propName]=undefined2}return this},strip=function(pattern,str){return isString(str)?str.replace(pattern,EMPTY):str},trim=function(str,len){return str=strip(/^\s\s*/,String(str)),typeof len===TYPEOF.UNDEFINED?str:str.substring(0,len)},rgxMapper=function(ua,arrays){if(!(!ua||!arrays))for(var i=0,j,k,p,q,matches,match;i<arrays.length&&!matches;){var regex=arrays[i],props=arrays[i+1];for(j=k=0;j<regex.length&&!matches&&regex[j];)if(matches=regex[j++].exec(ua),matches)for(p=0;p<props.length;p++)match=matches[++k],q=props[p],typeof q===TYPEOF.OBJECT&&q.length>0?q.length===2?typeof q[1]==TYPEOF.FUNCTION?this[q[0]]=q[1].call(this,match):this[q[0]]=q[1]:q.length>=3&&(typeof q[1]===TYPEOF.FUNCTION&&!(q[1].exec&&q[1].test)?q.length>3?this[q[0]]=match?q[1].apply(this,q.slice(2)):undefined2:this[q[0]]=match?q[1].call(this,match,q[2]):undefined2:q.length==3?this[q[0]]=match?match.replace(q[1],q[2]):undefined2:q.length==4?this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined2:q.length>4&&(this[q[0]]=match?q[3].apply(this,[match.replace(q[1],q[2])].concat(q.slice(4))):undefined2)):this[q]=match||undefined2;i+=2}},strTest=function(str,map){return map.test.test(str)?map.ifTrue:map.ifFalse},strMapper=function(str,map){for(var i in map)if(typeof map[i]===TYPEOF.OBJECT&&map[i].length>0){for(var j=0;j<map[i].length;j++)if(has(map[i][j],str))return i===UNKNOWN?undefined2:i}else if(has(map[i],str))return i===UNKNOWN?undefined2:i;return map.hasOwnProperty("*")?map["*"]:str},windowsVersionMap={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2","8.1":"6.3",10:["6.4","10.0"],NT:""},formFactorsMap={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":undefined2},browserHintsMap={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},defaultRegexes={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[VERSION,[NAME,PREFIX_MOBILE+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+" WebView"],[TYPE,INAPP]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[VERSION,[NAME,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[NAME,VERSION],[/opios[\/ ]+([\w\.]+)/i],[VERSION,[NAME,OPERA+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" GX"]],[/\bopr\/([\w\.]+)/i],[VERSION,[NAME,OPERA]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[VERSION,[NAME,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[VERSION,[NAME,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:hi|lg |ovi|qute)browser|palemoon)\/v?([-\w\.]+)/i,/(brave)(?: chrome)?\/([\d\.]+)/i,/(aloha|heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[NAME,VERSION],[/quark(?:pc)?\/([-\w\.]+)/i],[VERSION,[NAME,"Quark"]],[/\bddg\/([\w\.]+)/i],[VERSION,[NAME,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb| ucpc)[\/ ]?([\w\.]+)/i],[VERSION,[NAME,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[VERSION,[NAME,"WeChat"]],[/konqueror\/([\w\.]+)/i],[VERSION,[NAME,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[VERSION,[NAME,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[VERSION,[NAME,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[VERSION,[NAME,"Smart "+LENOVO+SUFFIX_BROWSER]],[/(av(?:ast|g|ira))\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 Secure"+SUFFIX_BROWSER],VERSION],[/norton\/([\w\.]+)/i],[VERSION,[NAME,"Norton Private"+SUFFIX_BROWSER]],[/\bfocus\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+" Focus"]],[/ mms\/([\w\.]+)$/i],[VERSION,[NAME,OPERA+" Neon"]],[/ opt\/([\w\.]+)$/i],[VERSION,[NAME,OPERA+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[VERSION,[NAME,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[VERSION,[NAME,"Dolphin"]],[/coast\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,"MIUI"+SUFFIX_BROWSER]],[/fxios\/([\w\.-]+)/i],[VERSION,[NAME,PREFIX_MOBILE+FIREFOX]],[/\bqihoobrowser\/?([\w\.]*)/i],[VERSION,[NAME,"360"]],[/\b(qq)\/([\w\.]+)/i],[[NAME,/(.+)/,"$1Browser"],VERSION],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[NAME,/(.+)/,"$1"+SUFFIX_BROWSER],VERSION],[/ HBPC\/([\w\.]+)/],[VERSION,[NAME,HUAWEI+SUFFIX_BROWSER]],[/samsungbrowser\/([\w\.]+)/i],[VERSION,[NAME,SAMSUNG+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[VERSION,[NAME,SOGOU+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[NAME,SOGOU+" Mobile"],VERSION],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[NAME,VERSION],[/(lbbrowser|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i],[NAME],[/ome\/([\w\.]+).+(iron(?= saf)|360(?=[es]e$))/i],[VERSION,NAME],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[NAME,FACEBOOK],VERSION,[TYPE,INAPP]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[NAME,VERSION,[TYPE,INAPP]],[/\bgsa\/([\w\.]+) .*safari\//i],[VERSION,[NAME,"GSA"],[TYPE,INAPP]],[/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i],[VERSION,[NAME,"TikTok"],[TYPE,INAPP]],[/\[(linkedin)app\]/i],[NAME,[TYPE,INAPP]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[NAME,/(.+)/,"Zalo"],VERSION,[TYPE,INAPP]],[/(chromium)[\/ ]([-\w\.]+)/i],[NAME,VERSION],[/ome-(lighthouse)$/i],[NAME,[TYPE,FETCHER]],[/headlesschrome(?:\/([\w\.]+)| )/i],[VERSION,[NAME,CHROME+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[VERSION,[NAME,EDGE+" WebView2"],[TYPE,INAPP]],[/; wv\).+(chrome)\/([\w\.]+)/i],[[NAME,CHROME+" WebView"],VERSION,[TYPE,INAPP]],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,"Android"+SUFFIX_BROWSER]],[/chrome\/([\w\.]+) mobile/i],[VERSION,[NAME,PREFIX_MOBILE+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[VERSION,[NAME,PREFIX_MOBILE+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[NAME,PREFIX_MOBILE+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[NAME,PREFIX_MOBILE+FIREFOX],VERSION],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[NAME,"Netscape"],VERSION],[/(wolvic|librewolf)\/([\w\.]+)/i],[NAME,VERSION],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[VERSION,[NAME,FIREFOX+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[NAME,[VERSION,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[NAME,[VERSION,/[^\d\.]+./,EMPTY]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[ARCHITECTURE,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[ARCHITECTURE,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[ARCHITECTURE,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[ARCHITECTURE,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[ARCHITECTURE,"arm"]],[/ sun4\w[;\)]/i],[[ARCHITECTURE,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/mc680.0/i],[[ARCHITECTURE,"68k"]],[/winnt.+\[axp/i],[[ARCHITECTURE,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[MODEL,[VENDOR,HONOR],[TYPE,TABLET]],[/honor([-\w ]+)[;\)]/i],[MODEL,[VENDOR,HONOR],[TYPE,MOBILE]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,TABLET]],[/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/oid[^\)]+; (redmi[\-_ ]?(?:note|k)?[\w_ ]+|m?[12]\d[01]\d\w{3,6}|poco[\w ]+|(shark )?\w{3}-[ah]0|qin ?[1-3](s\+|ultra| pro)?)( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/; ([\w ]+) miui\/v?\d/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[MODEL,[VENDOR,ONEPLUS],[TYPE,MOBILE]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[MODEL,[VENDOR,OPPO],[TYPE,MOBILE]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[MODEL,[VENDOR,strMapper,{OnePlus:["203","304","403","404","413","415"],"*":OPPO}],[TYPE,TABLET]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[MODEL,[VENDOR,"BLU"],[TYPE,MOBILE]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,"Vivo"],[TYPE,MOBILE]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[MODEL,[VENDOR,"Realme"],[TYPE,MOBILE]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[MODEL,[VENDOR,LENOVO],[TYPE,TABLET]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[MODEL,[VENDOR,LENOVO],[TYPE,MOBILE]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/\b(?:lg)?([vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(nokia) (t[12][01])/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[MODEL,/_/g," "],[TYPE,MOBILE],[VENDOR,"Nokia"]],[/(pixel (c|tablet))\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/(google) (pixelbook( go)?)/i],[VENDOR,MODEL],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[MODEL,"Xperia Tablet"],[VENDOR,SONY],[TYPE,TABLET]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[MODEL,/(.+)/g,"Fire Phone $1"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\w\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,"HTC"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[VENDOR,[MODEL,/_/g," "],[TYPE,MOBILE]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[MODEL,[VENDOR,"TCL"],[TYPE,TABLET]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[MODEL,[VENDOR,"TCL"],[TYPE,MOBILE]],[/(itel) ((\w+))/i],[[VENDOR,lowerize],MODEL,[TYPE,strMapper,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[MODEL,[VENDOR,"Acer"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[MODEL,[VENDOR,"Meizu"],[TYPE,MOBILE]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[MODEL,[VENDOR,"Ulefone"],[TYPE,MOBILE]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[MODEL,[VENDOR,"Energizer"],[TYPE,MOBILE]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[MODEL,[VENDOR,"Cat"],[TYPE,MOBILE]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[MODEL,[VENDOR,"Smartfren"],[TYPE,MOBILE]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[MODEL,[VENDOR,"Nothing"],[TYPE,MOBILE]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[MODEL,[VENDOR,"Archos"],[TYPE,TABLET]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[MODEL,[VENDOR,"Archos"],[TYPE,MOBILE]],[/blackview ([-\w ]+)( b|\))/i,/; (bv\d{4}[-\w ]*)( b|\))/i],[MODEL,[VENDOR,"Blackview"],[TYPE,MOBILE]],[/; (n159v)/i],[MODEL,[VENDOR,"HMD"],[TYPE,MOBILE]],[/((revvl[ \w\+]+|tm(?:rv|af)\w*[45]g(?:tb)?))( b|\))/i],[MODEL,[TYPE,strTest,{test:/ta?b/i,ifTrue:TABLET,ifFalse:MOBILE}],[VENDOR,"T-Mobile"]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|coolpad|cubot|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([-\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[MODEL,[VENDOR,"Fairphone"],[TYPE,MOBILE]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[MODEL,[VENDOR,NVIDIA],[TYPE,TABLET]],[/(sprint) (\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g," "],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,"SmartTV"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+" TV"],[TYPE,SMARTTV]],[/crkey.*devicetype\/chromecast/i],[[MODEL,CHROMECAST+" Third Generation"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/crkey.*devicetype\/([^/]*)/i],[[MODEL,/^/,"Chromecast "],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/fuchsia.*crkey/i],[[MODEL,CHROMECAST+" Nest Hub"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROMECAST],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/(portaltv)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,SMARTTV]],[/droid.+aft(\w+)( bui|\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/(shield \w+ tv)/i],[MODEL,[VENDOR,NVIDIA],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\w ]+)( bui|\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mi(tv|box)-?\w+) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[VENDOR,/.+\/(\w+)/,"$1",strMapper,{LG:"lge"}],[MODEL,trim],[TYPE,SMARTTV]],[/(playstation \w+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i,/(valve).+(steam deck)/i,/droid.+; ((shield|rgcube|gr0006))( bui|\))/i],[[VENDOR,strMapper,{Nvidia:"Shield",Anbernic:"RGCUBE",Logitech:"GR0006"}],MODEL,[TYPE,CONSOLE]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,WEARABLE]],[/((pebble))app/i,/(asus|google|lg|oppo|xiaomi) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[MODEL,[VENDOR,OPPO],[TYPE,WEARABLE]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/(opwwe\d{3})/i],[MODEL,[VENDOR,ONEPLUS],[TYPE,WEARABLE]],[/(moto 360)/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,WEARABLE]],[/(smartwatch 3)/i],[MODEL,[VENDOR,SONY],[TYPE,WEARABLE]],[/(g watch r)/i],[MODEL,[VENDOR,LG],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/droid.+; (glass) \d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,XR]],[/(pico) ([\w ]+) os\d/i],[VENDOR,MODEL,[TYPE,XR]],[/(quest( \d| pro)?s?).+vr/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,XR]],[/mobile vr; rv.+firefox/i],[[TYPE,XR]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/(homepod).+mac os/i],[MODEL,[VENDOR,APPLE],[TYPE,EMBEDDED]],[/windows iot/i],[[TYPE,EMBEDDED]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[MODEL,[TYPE,SMARTTV]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[TYPE,SMARTTV]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[MODEL,[TYPE,strMapper,{mobile:"Mobile",xr:"VR","*":TABLET}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[MODEL,[VENDOR,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[NAME,VERSION],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links|dillo)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[NAME,VERSION],[/ladybird\//i],[[NAME,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[VERSION,NAME]],os:[[/(windows nt) (6\.[23]); arm/i],[[NAME,/N/,"R"],[VERSION,strMapper,windowsVersionMap]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[NAME,VERSION],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[VERSION,/(;|\))/g,"",strMapper,windowsVersionMap],[NAME,WINDOWS]],[/(windows ce)\/?([\d\.]*)/i],[NAME,VERSION],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone)|.+apple ?tv)|ip(?:ad|hone)(?: |.+i(?:pad)?)os|apple ?tv.+ios)[\/ ]([\w\.]+)/i,/\btvos ?([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[VERSION,/_/g,"."],[NAME,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[NAME,"macOS"],[VERSION,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[VERSION,[NAME,CHROMECAST+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROMECAST+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[VERSION,[NAME,CHROMECAST+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROMECAST+" Linux"]],[/crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROMECAST]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[VERSION,NAME],[/(ubuntu) ([\w\.]+) like android/i],[[NAME,/(.+)/,"$1 Touch"],VERSION],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[NAME,VERSION],[/\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[VERSION,[NAME,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i],[VERSION,[NAME,FIREFOX+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[VERSION,[NAME,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[VERSION,strMapper,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[NAME,"webOS"]],[/watch(?: ?os[,\/ ]|\d,\d\/)([\d\.]+)/i],[VERSION,[NAME,"watchOS"]],[/cros [\w]+(?:\)| ([\w\.]+)\b)/i],[VERSION,[NAME,"Chrome OS"]],[/kepler ([\w\.]+); (aft|aeo)/i],[VERSION,[NAME,"Vega OS"]],[/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[NAME,VERSION],[/(sunos) ?([\d\.]*)/i],[[NAME,"Solaris"],VERSION],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[NAME,VERSION]]},defaultProps=(function(){var props={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return setProps.call(props.init,[[BROWSER,[NAME,VERSION,MAJOR,TYPE]],[CPU,[ARCHITECTURE]],[DEVICE,[TYPE,MODEL,VENDOR]],[ENGINE,[NAME,VERSION]],[OS,[NAME,VERSION]]]),setProps.call(props.isIgnore,[[BROWSER,[VERSION,MAJOR]],[ENGINE,[VERSION]],[OS,[VERSION]]]),setProps.call(props.isIgnoreRgx,[[BROWSER,/ ?browser$/i],[OS,/ ?os$/i]]),setProps.call(props.toString,[[BROWSER,[NAME,VERSION]],[CPU,[ARCHITECTURE]],[DEVICE,[VENDOR,MODEL]],[ENGINE,[NAME,VERSION]],[OS,[NAME,VERSION]]]),props})(),createIData=function(item,itemType){var init_props=defaultProps.init[itemType],is_ignoreProps=defaultProps.isIgnore[itemType]||0,is_ignoreRgx=defaultProps.isIgnoreRgx[itemType]||0,toString_props=defaultProps.toString[itemType]||0;function IData(){setProps.call(this,init_props)}return IData.prototype.getItem=function(){return item},IData.prototype.withClientHints=function(){return NAVIGATOR_UADATA?NAVIGATOR_UADATA.getHighEntropyValues(CH_ALL_VALUES).then(function(res){return item.setCH(new UACHData(res,!1)).parseCH().get()}):item.parseCH().get()},IData.prototype.withFeatureCheck=function(){return item.detectFeature().get()},itemType!=RESULT&&(IData.prototype.is=function(strToCheck){var is=!1;for(var i in this)if(this.hasOwnProperty(i)&&!has(is_ignoreProps,i)&&lowerize(is_ignoreRgx?strip(is_ignoreRgx,this[i]):this[i])==lowerize(is_ignoreRgx?strip(is_ignoreRgx,strToCheck):strToCheck)){if(is=!0,strToCheck!=TYPEOF.UNDEFINED)break}else if(strToCheck==TYPEOF.UNDEFINED&&is){is=!is;break}return is},IData.prototype.toString=function(){var str=EMPTY;for(var i in toString_props)typeof this[toString_props[i]]!==TYPEOF.UNDEFINED&&(str+=(str?" ":EMPTY)+this[toString_props[i]]);return str||TYPEOF.UNDEFINED}),IData.prototype.then=function(cb){var that=this,IDataResolve=function(){for(var prop in that)that.hasOwnProperty(prop)&&(this[prop]=that[prop])};IDataResolve.prototype={is:IData.prototype.is,toString:IData.prototype.toString,withClientHints:IData.prototype.withClientHints,withFeatureCheck:IData.prototype.withFeatureCheck};var resolveData=new IDataResolve;return cb(resolveData),resolveData},new IData};function UACHData(uach,isHttpUACH){if(uach=uach||{},setProps.call(this,CH_ALL_VALUES),isHttpUACH)setProps.call(this,[[BRANDS,itemListToArray(uach[CH])],[FULLVERLIST,itemListToArray(uach[CH_FULL_VER_LIST])],[MOBILE,/\?1/.test(uach[CH_MOBILE])],[MODEL,normalizeHeaderValue(uach[CH_MODEL])],[PLATFORM,normalizeHeaderValue(uach[CH_PLATFORM])],[PLATFORMVER,normalizeHeaderValue(uach[CH_PLATFORM_VER])],[ARCHITECTURE,normalizeHeaderValue(uach[CH_ARCH])],[FORMFACTORS,itemListToArray(uach[CH_FORM_FACTORS])],[BITNESS,normalizeHeaderValue(uach[CH_BITNESS])]]);else for(var prop in uach)this.hasOwnProperty(prop)&&typeof uach[prop]!==TYPEOF.UNDEFINED&&(this[prop]=uach[prop])}function UAItem(itemType,ua,rgxMap,uaCH){return setProps.call(this,[["itemType",itemType],["ua",ua],["uaCH",uaCH],["rgxMap",rgxMap],["data",createIData(this,itemType)]]),this}UAItem.prototype.get=function(prop){return prop?this.data.hasOwnProperty(prop)?this.data[prop]:undefined2:this.data},UAItem.prototype.set=function(prop,val){return this.data[prop]=val,this},UAItem.prototype.setCH=function(ch){return this.uaCH=ch,this},UAItem.prototype.detectFeature=function(){if(NAVIGATOR&&NAVIGATOR.userAgent==this.ua)switch(this.itemType){case BROWSER:NAVIGATOR.brave&&typeof NAVIGATOR.brave.isBrave==TYPEOF.FUNCTION&&this.set(NAME,"Brave");break;case DEVICE:!this.get(TYPE)&&NAVIGATOR_UADATA&&NAVIGATOR_UADATA[MOBILE]&&this.set(TYPE,MOBILE),this.get(MODEL)=="Macintosh"&&NAVIGATOR&&typeof NAVIGATOR.standalone!==TYPEOF.UNDEFINED&&NAVIGATOR.maxTouchPoints&&NAVIGATOR.maxTouchPoints>2&&this.set(MODEL,"iPad").set(TYPE,TABLET);break;case OS:!this.get(NAME)&&NAVIGATOR_UADATA&&NAVIGATOR_UADATA[PLATFORM]&&this.set(NAME,NAVIGATOR_UADATA[PLATFORM]);break;case RESULT:var data=this.data,detect=function(itemType){return data[itemType].getItem().detectFeature().get()};this.set(BROWSER,detect(BROWSER)).set(CPU,detect(CPU)).set(DEVICE,detect(DEVICE)).set(ENGINE,detect(ENGINE)).set(OS,detect(OS))}return this},UAItem.prototype.parseUA=function(){switch(this.itemType!=RESULT&&rgxMapper.call(this.data,this.ua,this.rgxMap),this.itemType){case BROWSER:this.set(MAJOR,majorize(this.get(VERSION)));break;case OS:if(this.get(NAME)=="iOS"&&this.get(VERSION)&&/^1[89][^\d]/.exec(this.get(VERSION))){var realVersion=/\) Version\/((\d+)[\d\.]*)/.exec(this.ua);realVersion&&parseInt(realVersion[2],10)>=26&&this.set(VERSION,realVersion[1])}break}return this},UAItem.prototype.parseCH=function(){var uaCH=this.uaCH,rgxMap=this.rgxMap;switch(this.itemType){case BROWSER:case ENGINE:var brands=uaCH[FULLVERLIST]||uaCH[BRANDS],prevName;if(brands)for(var i=0;i<brands.length;i++){var brandName=brands[i].brand||brands[i],brandVersion=brands[i].version;this.itemType==BROWSER&&!/not.a.brand/i.test(brandName)&&(!prevName||/Chrom/.test(prevName)&&brandName!=CHROMIUM||prevName==EDGE&&/WebView2/.test(brandName))&&(brandName=strMapper(brandName,browserHintsMap),prevName=this.get(NAME),prevName&&!/Chrom/.test(prevName)&&/Chrom/.test(brandName)||this.set(NAME,brandName).set(VERSION,brandVersion).set(MAJOR,majorize(brandVersion)),prevName=brandName),this.itemType==ENGINE&&brandName==CHROMIUM&&this.set(VERSION,brandVersion)}break;case CPU:var archName=uaCH[ARCHITECTURE];archName&&(archName&&uaCH[BITNESS]=="64"&&(archName+="64"),rgxMapper.call(this.data,archName+";",rgxMap));break;case DEVICE:if(uaCH[MOBILE]&&this.set(TYPE,MOBILE),uaCH[MODEL]&&(this.set(MODEL,uaCH[MODEL]),!this.get(TYPE)||!this.get(VENDOR))){var reParse={};rgxMapper.call(reParse,"droid 9; "+uaCH[MODEL]+")",rgxMap),!this.get(TYPE)&&reParse.type&&this.set(TYPE,reParse.type),!this.get(VENDOR)&&reParse.vendor&&this.set(VENDOR,reParse.vendor)}if(uaCH[FORMFACTORS]){var ff;if(typeof uaCH[FORMFACTORS]!="string")for(var idx=0;!ff&&idx<uaCH[FORMFACTORS].length;)ff=strMapper(uaCH[FORMFACTORS][idx++],formFactorsMap);else ff=strMapper(uaCH[FORMFACTORS],formFactorsMap);this.set(TYPE,ff)}break;case OS:var osName=uaCH[PLATFORM];if(osName){var osVersion=uaCH[PLATFORMVER];osName==WINDOWS&&(osVersion=parseInt(majorize(osVersion),10)>=13?"11":"10"),this.set(NAME,osName).set(VERSION,osVersion)}this.get(NAME)==WINDOWS&&uaCH[MODEL]=="Xbox"&&this.set(NAME,"Xbox").set(VERSION,undefined2);break;case RESULT:var data=this.data,parse=function(itemType){return data[itemType].getItem().setCH(uaCH).parseCH().get()};this.set(BROWSER,parse(BROWSER)).set(CPU,parse(CPU)).set(DEVICE,parse(DEVICE)).set(ENGINE,parse(ENGINE)).set(OS,parse(OS))}return this};function UAParser(ua,extensions,headers){if(typeof ua===TYPEOF.OBJECT?(isExtensions(ua,!0)?(typeof extensions===TYPEOF.OBJECT&&(headers=extensions),extensions=ua):(headers=ua,extensions=undefined2),ua=undefined2):typeof ua===TYPEOF.STRING&&!isExtensions(extensions,!0)&&(headers=extensions,extensions=undefined2),headers)if(typeof headers.append===TYPEOF.FUNCTION){var kv={};headers.forEach(function(v,k){kv[String(k).toLowerCase()]=v}),headers=kv}else{var normalized={};for(var header in headers)headers.hasOwnProperty(header)&&(normalized[String(header).toLowerCase()]=headers[header]);headers=normalized}if(!(this instanceof UAParser))return new UAParser(ua,extensions,headers).getResult();var userAgent=typeof ua===TYPEOF.STRING?ua:headers&&headers[USER_AGENT]?headers[USER_AGENT]:NAVIGATOR&&NAVIGATOR.userAgent?NAVIGATOR.userAgent:EMPTY,httpUACH=new UACHData(headers,!0),regexMap=defaultRegexes,createItemFunc=function(itemType){return itemType==RESULT?function(){return new UAItem(itemType,userAgent,regexMap,httpUACH).set("ua",userAgent).set(BROWSER,this.getBrowser()).set(CPU,this.getCPU()).set(DEVICE,this.getDevice()).set(ENGINE,this.getEngine()).set(OS,this.getOS()).get()}:function(){return new UAItem(itemType,userAgent,regexMap[itemType],httpUACH).parseUA().get()}};return setProps.call(this,[["getBrowser",createItemFunc(BROWSER)],["getCPU",createItemFunc(CPU)],["getDevice",createItemFunc(DEVICE)],["getEngine",createItemFunc(ENGINE)],["getOS",createItemFunc(OS)],["getResult",createItemFunc(RESULT)],["getUA",function(){return userAgent}],["setUA",function(ua2){return isString(ua2)&&(userAgent=trim(ua2,UA_MAX_LENGTH)),this}],["useExtension",function(exts){return exts&&(regexMap=extend(regexMap,exts)),this}]]).setUA(userAgent).useExtension(extensions),this}UAParser.VERSION=LIBVERSION,UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR,TYPE]),UAParser.CPU=enumerize([ARCHITECTURE]),UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]),UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]),typeof exports2!==TYPEOF.UNDEFINED?(typeof module2!==TYPEOF.UNDEFINED&&module2.exports&&(exports2=module2.exports=UAParser),exports2.UAParser=UAParser):typeof define===TYPEOF.FUNCTION&&define.amd?define(function(){return UAParser}):isWindow&&(window2.UAParser=UAParser);var $=isWindow&&(window2.jQuery||window2.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult(),$.ua.get=function(){return parser.getUA()},$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result)$.ua[prop]=result[prop]}}})(typeof window=="object"?window:exports2)}});var require_default=__commonJS({"node_modules/events-universal/default.js"(exports2,module2){module2.exports=require("events")}});var require_fixed_size=__commonJS({"node_modules/fast-fifo/fixed-size.js"(exports2,module2){module2.exports=class{constructor(hwm){if(!(hwm>0)||(hwm-1&hwm)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(hwm),this.mask=hwm-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(data){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=data,this.top=this.top+1&this.mask,!0)}shift(){let last=this.buffer[this.btm];if(last!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,last}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}}});var require_fast_fifo=__commonJS({"node_modules/fast-fifo/index.js"(exports2,module2){var FixedFIFO=require_fixed_size();module2.exports=class{constructor(hwm){this.hwm=hwm||16,this.head=new FixedFIFO(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(val){if(this.length++,!this.head.push(val)){let prev=this.head;this.head=prev.next=new FixedFIFO(2*this.head.buffer.length),this.head.push(val)}}shift(){this.length!==0&&this.length--;let val=this.tail.shift();if(val===void 0&&this.tail.next){let next=this.tail.next;return this.tail.next=null,this.tail=next,this.tail.shift()}return val}peek(){let val=this.tail.peek();return val===void 0&&this.tail.next?this.tail.next.peek():val}isEmpty(){return this.length===0}}}});var require_b4a=__commonJS({"node_modules/b4a/index.js"(exports2,module2){function isBuffer(value){return Buffer.isBuffer(value)||value instanceof Uint8Array}function isEncoding(encoding){return Buffer.isEncoding(encoding)}function alloc(size,fill2,encoding){return Buffer.alloc(size,fill2,encoding)}function allocUnsafe(size){return Buffer.allocUnsafe(size)}function allocUnsafeSlow(size){return Buffer.allocUnsafeSlow(size)}function byteLength(string,encoding){return Buffer.byteLength(string,encoding)}function compare(a,b){return Buffer.compare(a,b)}function concat(buffers,totalLength){return Buffer.concat(buffers,totalLength)}function copy(source,target,targetStart,start,end){return toBuffer(source).copy(target,targetStart,start,end)}function equals(a,b){return toBuffer(a).equals(b)}function fill(buffer,value,offset,end,encoding){return toBuffer(buffer).fill(value,offset,end,encoding)}function from(value,encodingOrOffset,length){return Buffer.from(value,encodingOrOffset,length)}function includes(buffer,value,byteOffset,encoding){return toBuffer(buffer).includes(value,byteOffset,encoding)}function indexOf(buffer,value,byfeOffset,encoding){return toBuffer(buffer).indexOf(value,byfeOffset,encoding)}function lastIndexOf(buffer,value,byteOffset,encoding){return toBuffer(buffer).lastIndexOf(value,byteOffset,encoding)}function swap16(buffer){return toBuffer(buffer).swap16()}function swap32(buffer){return toBuffer(buffer).swap32()}function swap64(buffer){return toBuffer(buffer).swap64()}function toBuffer(buffer){return Buffer.isBuffer(buffer)?buffer:Buffer.from(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function toString(buffer,encoding,start,end){return toBuffer(buffer).toString(encoding,start,end)}function write(buffer,string,offset,length,encoding){return toBuffer(buffer).write(string,offset,length,encoding)}function readDoubleBE(buffer,offset){return toBuffer(buffer).readDoubleBE(offset)}function readDoubleLE(buffer,offset){return toBuffer(buffer).readDoubleLE(offset)}function readFloatBE(buffer,offset){return toBuffer(buffer).readFloatBE(offset)}function readFloatLE(buffer,offset){return toBuffer(buffer).readFloatLE(offset)}function readInt32BE(buffer,offset){return toBuffer(buffer).readInt32BE(offset)}function readInt32LE(buffer,offset){return toBuffer(buffer).readInt32LE(offset)}function readUInt32BE(buffer,offset){return toBuffer(buffer).readUInt32BE(offset)}function readUInt32LE(buffer,offset){return toBuffer(buffer).readUInt32LE(offset)}function writeDoubleBE(buffer,value,offset){return toBuffer(buffer).writeDoubleBE(value,offset)}function writeDoubleLE(buffer,value,offset){return toBuffer(buffer).writeDoubleLE(value,offset)}function writeFloatBE(buffer,value,offset){return toBuffer(buffer).writeFloatBE(value,offset)}function writeFloatLE(buffer,value,offset){return toBuffer(buffer).writeFloatLE(value,offset)}function writeInt32BE(buffer,value,offset){return toBuffer(buffer).writeInt32BE(value,offset)}function writeInt32LE(buffer,value,offset){return toBuffer(buffer).writeInt32LE(value,offset)}function writeUInt32BE(buffer,value,offset){return toBuffer(buffer).writeUInt32BE(value,offset)}function writeUInt32LE(buffer,value,offset){return toBuffer(buffer).writeUInt32LE(value,offset)}module2.exports={isBuffer,isEncoding,alloc,allocUnsafe,allocUnsafeSlow,byteLength,compare,concat,copy,equals,fill,from,includes,indexOf,lastIndexOf,swap16,swap32,swap64,toBuffer,toString,write,readDoubleBE,readDoubleLE,readFloatBE,readFloatLE,readInt32BE,readInt32LE,readUInt32BE,readUInt32LE,writeDoubleBE,writeDoubleLE,writeFloatBE,writeFloatLE,writeInt32BE,writeInt32LE,writeUInt32BE,writeUInt32LE}}});var require_pass_through_decoder=__commonJS({"node_modules/text-decoder/lib/pass-through-decoder.js"(exports2,module2){var b4a=require_b4a();module2.exports=class{constructor(encoding){this.encoding=encoding}get remaining(){return 0}decode(data){return b4a.toString(data,this.encoding)}flush(){return""}}}});var require_utf8_decoder=__commonJS({"node_modules/text-decoder/lib/utf8-decoder.js"(exports2,module2){var b4a=require_b4a();module2.exports=class{constructor(){this._reset()}get remaining(){return this.bytesSeen}decode(data){if(data.byteLength===0)return"";if(this.bytesNeeded===0&&trailingIncomplete(data,0)===0)return this.bytesSeen=trailingBytesSeen(data),b4a.toString(data,"utf8");let result="",start=0;if(this.bytesNeeded>0){for(;start<data.byteLength;){let byte=data[start];if(byte<this.lowerBoundary||byte>this.upperBoundary){result+="\uFFFD",this._reset();break}if(this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|byte&63,this.bytesSeen++,start++,this.bytesSeen===this.bytesNeeded){result+=String.fromCodePoint(this.codePoint),this._reset();break}}if(this.bytesNeeded>0)return result}let trailing=trailingIncomplete(data,start),end=data.byteLength-trailing;end>start&&(result+=b4a.toString(data,"utf8",start,end));for(let i=end;i<data.byteLength;i++){let byte=data[i];if(this.bytesNeeded===0){byte<=127?(this.bytesSeen=0,result+=String.fromCharCode(byte)):byte>=194&&byte<=223?(this.bytesNeeded=2,this.bytesSeen=1,this.codePoint=byte&31):byte>=224&&byte<=239?(byte===224?this.lowerBoundary=160:byte===237&&(this.upperBoundary=159),this.bytesNeeded=3,this.bytesSeen=1,this.codePoint=byte&15):byte>=240&&byte<=244?(byte===240?this.lowerBoundary=144:byte===244&&(this.upperBoundary=143),this.bytesNeeded=4,this.bytesSeen=1,this.codePoint=byte&7):(this.bytesSeen=1,result+="\uFFFD");continue}if(byte<this.lowerBoundary||byte>this.upperBoundary){result+="\uFFFD",i--,this._reset();continue}this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|byte&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded&&(result+=String.fromCodePoint(this.codePoint),this._reset())}return result}flush(){let result=this.bytesNeeded>0?"\uFFFD":"";return this._reset(),result}_reset(){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191}};function trailingIncomplete(data,start){let len=data.byteLength;if(len<=start)return 0;let limit=Math.max(start,len-4),i=len-1;for(;i>limit&&(data[i]&192)===128;)i--;if(i<start)return 0;let byte=data[i],needed;if(byte<=127)return 0;if(byte>=194&&byte<=223)needed=2;else if(byte>=224&&byte<=239)needed=3;else if(byte>=240&&byte<=244)needed=4;else return 0;let available=len-i;return available<needed?available:0}function trailingBytesSeen(data){let len=data.byteLength;if(len===0)return 0;let last=data[len-1];if(last<=127)return 0;if((last&192)!==128)return 1;let limit=Math.max(0,len-4),i=len-2;for(;i>=limit&&(data[i]&192)===128;)i--;if(i<0)return 1;let first=data[i],needed;if(first>=194&&first<=223)needed=2;else if(first>=224&&first<=239)needed=3;else if(first>=240&&first<=244)needed=4;else return 1;if(len-i!==needed)return 1;if(needed>=3){let second=data[i+1];if(first===224&&second<160||first===237&&second>159||first===240&&second<144||first===244&&second>143)return 1}return 0}}});var require_text_decoder=__commonJS({"node_modules/text-decoder/index.js"(exports2,module2){var PassThroughDecoder=require_pass_through_decoder(),UTF8Decoder=require_utf8_decoder();module2.exports=class{constructor(encoding="utf8"){switch(this.encoding=normalizeEncoding(encoding),this.encoding){case"utf8":this.decoder=new UTF8Decoder;break;case"utf16le":case"base64":throw new Error("Unsupported encoding: "+this.encoding);default:this.decoder=new PassThroughDecoder(this.encoding)}}get remaining(){return this.decoder.remaining}push(data){return typeof data=="string"?data:this.decoder.decode(data)}write(data){return this.push(data)}end(data){let result="";return data&&(result=this.push(data)),result+=this.decoder.flush(),result}};function normalizeEncoding(encoding){switch(encoding=encoding.toLowerCase(),encoding){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return encoding;default:throw new Error("Unknown encoding: "+encoding)}}}});var require_errors4=__commonJS({"node_modules/streamx/lib/errors.js"(exports2,module2){module2.exports=class StreamError extends Error{constructor(msg,code,fn=StreamError){super(msg),this.code=code,Error.captureStackTrace&&Error.captureStackTrace(this,fn)}static isStreamDestroyed(err){return err&&err.code==="STREAM_DESTROYED"}static isPrematureClose(err){return err&&err.code==="PREMATURE_CLOSE"}static isAborted(err){return err&&err.code==="ABORTED"}static isBadArgument(err){return err&&err.code==="BAD_ARGUMENT"}get name(){return"StreamError"}static STREAM_DESTROYED(){return new StreamError("Stream was destroyed","STREAM_DESTROYED",StreamError.STREAM_DESTROYED)}static PREMATURE_CLOSE(msg="Premature close"){return new StreamError(msg,"PREMATURE_CLOSE",StreamError.PREMATURE_CLOSE)}static ABORTED(){return new StreamError("Stream aborted","ABORTED",StreamError.ABORTED)}static BAD_ARGUMENT(msg="Bad argument"){return new StreamError(msg,"BAD_ARGUMENT",StreamError.BAD_ARGUMENT)}}}});var require_streamx=__commonJS({"node_modules/streamx/index.js"(exports2,module2){var{EventEmitter}=require_default(),FIFO=require_fast_fifo(),TextDecoder2=require_text_decoder(),StreamError=require_errors4(),qmt=typeof queueMicrotask>"u"?fn=>global.process.nextTick(fn):queueMicrotask,MAX=(1<<29)-1,OPENING=1,PREDESTROYING=2,DESTROYING=4,DESTROYED=8,NOT_OPENING=MAX^OPENING,NOT_PREDESTROYING=MAX^PREDESTROYING,READ_ACTIVE=16,READ_UPDATING=32,READ_PRIMARY=64,READ_QUEUED=128,READ_RESUMED=256,READ_PIPE_DRAINED=512,READ_ENDING=1024,READ_EMIT_DATA=2048,READ_EMIT_READABLE=4096,READ_EMITTED_READABLE=8192,READ_DONE=16384,READ_NEXT_TICK=32768,READ_NEEDS_PUSH=65536,READ_READ_AHEAD=131072,READ_FLOWING=READ_RESUMED|READ_PIPE_DRAINED,READ_ACTIVE_AND_NEEDS_PUSH=READ_ACTIVE|READ_NEEDS_PUSH,READ_PRIMARY_AND_ACTIVE=READ_PRIMARY|READ_ACTIVE,READ_EMIT_READABLE_AND_QUEUED=READ_EMIT_READABLE|READ_QUEUED,READ_RESUMED_READ_AHEAD=READ_RESUMED|READ_READ_AHEAD,READ_NOT_ACTIVE=MAX^READ_ACTIVE,READ_NON_PRIMARY=MAX^READ_PRIMARY,READ_NON_PRIMARY_AND_PUSHED=MAX^(READ_PRIMARY|READ_NEEDS_PUSH),READ_PUSHED=MAX^READ_NEEDS_PUSH,READ_PAUSED=MAX^READ_RESUMED,READ_NOT_QUEUED=MAX^(READ_QUEUED|READ_EMITTED_READABLE),READ_NOT_ENDING=MAX^READ_ENDING,READ_PIPE_NOT_DRAINED=MAX^READ_FLOWING,READ_NOT_NEXT_TICK=MAX^READ_NEXT_TICK,READ_NOT_UPDATING=MAX^READ_UPDATING,READ_NO_READ_AHEAD=MAX^READ_READ_AHEAD,READ_PAUSED_NO_READ_AHEAD=MAX^READ_RESUMED_READ_AHEAD,WRITE_ACTIVE=1<<18,WRITE_UPDATING=2<<18,WRITE_PRIMARY=4<<18,WRITE_QUEUED=8<<18,WRITE_UNDRAINED=16<<18,WRITE_DONE=32<<18,WRITE_EMIT_DRAIN=64<<18,WRITE_NEXT_TICK=128<<18,WRITE_WRITING=256<<18,WRITE_FINISHING=512<<18,WRITE_CORKED=1024<<18,WRITE_NOT_ACTIVE=MAX^(WRITE_ACTIVE|WRITE_WRITING),WRITE_NON_PRIMARY=MAX^WRITE_PRIMARY,WRITE_NOT_FINISHING=MAX^(WRITE_ACTIVE|WRITE_FINISHING),WRITE_DRAINED=MAX^WRITE_UNDRAINED,WRITE_NOT_QUEUED=MAX^WRITE_QUEUED,WRITE_NOT_NEXT_TICK=MAX^WRITE_NEXT_TICK,WRITE_NOT_UPDATING=MAX^WRITE_UPDATING,WRITE_NOT_CORKED=MAX^WRITE_CORKED,ACTIVE=READ_ACTIVE|WRITE_ACTIVE,NOT_ACTIVE=MAX^ACTIVE,DONE=READ_DONE|WRITE_DONE,DESTROY_STATUS=DESTROYING|DESTROYED|PREDESTROYING,OPEN_STATUS=DESTROY_STATUS|OPENING,AUTO_DESTROY=DESTROY_STATUS|DONE,NON_PRIMARY=WRITE_NON_PRIMARY&READ_NON_PRIMARY,ACTIVE_OR_TICKING=WRITE_NEXT_TICK|READ_NEXT_TICK,TICKING=ACTIVE_OR_TICKING&NOT_ACTIVE,IS_OPENING=OPEN_STATUS|TICKING,READ_PRIMARY_STATUS=OPEN_STATUS|READ_ENDING|READ_DONE,READ_STATUS=OPEN_STATUS|READ_DONE|READ_QUEUED,READ_ENDING_STATUS=OPEN_STATUS|READ_ENDING|READ_QUEUED,READ_READABLE_STATUS=OPEN_STATUS|READ_EMIT_READABLE|READ_QUEUED|READ_EMITTED_READABLE,SHOULD_NOT_READ=OPEN_STATUS|READ_ACTIVE|READ_ENDING|READ_DONE|READ_NEEDS_PUSH|READ_READ_AHEAD,READ_BACKPRESSURE_STATUS=DESTROY_STATUS|READ_ENDING|READ_DONE,READ_UPDATE_SYNC_STATUS=READ_UPDATING|OPEN_STATUS|READ_NEXT_TICK|READ_PRIMARY,READ_NEXT_TICK_OR_OPENING=READ_NEXT_TICK|OPENING,WRITE_PRIMARY_STATUS=OPEN_STATUS|WRITE_FINISHING|WRITE_DONE,WRITE_QUEUED_AND_UNDRAINED=WRITE_QUEUED|WRITE_UNDRAINED,WRITE_QUEUED_AND_ACTIVE=WRITE_QUEUED|WRITE_ACTIVE,WRITE_DRAIN_STATUS=WRITE_QUEUED|WRITE_UNDRAINED|OPEN_STATUS|WRITE_ACTIVE,WRITE_STATUS=OPEN_STATUS|WRITE_ACTIVE|WRITE_QUEUED|WRITE_CORKED,WRITE_PRIMARY_AND_ACTIVE=WRITE_PRIMARY|WRITE_ACTIVE,WRITE_ACTIVE_AND_WRITING=WRITE_ACTIVE|WRITE_WRITING,WRITE_FINISHING_STATUS=OPEN_STATUS|WRITE_FINISHING|WRITE_QUEUED_AND_ACTIVE|WRITE_DONE,WRITE_BACKPRESSURE_STATUS=WRITE_UNDRAINED|DESTROY_STATUS|WRITE_FINISHING|WRITE_DONE,WRITE_UPDATE_SYNC_STATUS=WRITE_UPDATING|OPEN_STATUS|WRITE_NEXT_TICK|WRITE_PRIMARY,WRITE_DROP_DATA=WRITE_FINISHING|WRITE_DONE|DESTROY_STATUS,asyncIterator=Symbol.asyncIterator||Symbol("asyncIterator"),WritableState=class{constructor(stream,{highWaterMark=16384,map=null,mapWritable,byteLength,byteLengthWritable}={}){this.stream=stream,this.queue=new FIFO,this.highWaterMark=highWaterMark,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=byteLengthWritable||byteLength||defaultByteLength,this.map=mapWritable||map,this.afterWrite=afterWrite.bind(this),this.afterUpdateNextTick=updateWriteNT.bind(this)}get ending(){return(this.stream._duplexState&WRITE_FINISHING)!==0}get ended(){return(this.stream._duplexState&WRITE_DONE)!==0}push(data){return(this.stream._duplexState&WRITE_DROP_DATA)!==0?!1:(this.map!==null&&(data=this.map(data)),this.buffered+=this.byteLength(data),this.queue.push(data),this.buffered<this.highWaterMark?(this.stream._duplexState|=WRITE_QUEUED,!0):(this.stream._duplexState|=WRITE_QUEUED_AND_UNDRAINED,!1))}shift(){let data=this.queue.shift();return this.buffered-=this.byteLength(data),this.buffered===0&&(this.stream._duplexState&=WRITE_NOT_QUEUED),data}end(data){typeof data=="function"?this.stream.once("finish",data):data!=null&&this.push(data),this.stream._duplexState=(this.stream._duplexState|WRITE_FINISHING)&WRITE_NON_PRIMARY}autoBatch(data,cb){let buffer=[],stream=this.stream;for(buffer.push(data);(stream._duplexState&WRITE_STATUS)===WRITE_QUEUED_AND_ACTIVE;)buffer.push(stream._writableState.shift());if((stream._duplexState&OPEN_STATUS)!==0)return cb(null);stream._writev(buffer,cb)}update(){let stream=this.stream;stream._duplexState|=WRITE_UPDATING;do{for(;(stream._duplexState&WRITE_STATUS)===WRITE_QUEUED;){let data=this.shift();stream._duplexState|=WRITE_ACTIVE_AND_WRITING,stream._write(data,this.afterWrite)}(stream._duplexState&WRITE_PRIMARY_AND_ACTIVE)===0&&this.updateNonPrimary()}while(this.continueUpdate()===!0);stream._duplexState&=WRITE_NOT_UPDATING}updateNonPrimary(){let stream=this.stream;if((stream._duplexState&WRITE_FINISHING_STATUS)===WRITE_FINISHING){stream._duplexState=stream._duplexState|WRITE_ACTIVE,stream._final(afterFinal.bind(this));return}if((stream._duplexState&DESTROY_STATUS)===DESTROYING){(stream._duplexState&ACTIVE_OR_TICKING)===0&&(stream._duplexState|=ACTIVE,stream._destroy(afterDestroy.bind(this)));return}(stream._duplexState&IS_OPENING)===OPENING&&(stream._duplexState=(stream._duplexState|ACTIVE)&NOT_OPENING,stream._open(afterOpen.bind(this)))}continueUpdate(){return(this.stream._duplexState&WRITE_NEXT_TICK)===0?!1:(this.stream._duplexState&=WRITE_NOT_NEXT_TICK,!0)}updateCallback(){(this.stream._duplexState&WRITE_UPDATE_SYNC_STATUS)===WRITE_PRIMARY?this.update():this.updateNextTick()}updateNextTick(){(this.stream._duplexState&WRITE_NEXT_TICK)===0&&(this.stream._duplexState|=WRITE_NEXT_TICK,(this.stream._duplexState&WRITE_UPDATING)===0&&qmt(this.afterUpdateNextTick))}},ReadableState=class{constructor(stream,{highWaterMark=16384,map=null,mapReadable,byteLength,byteLengthReadable}={}){this.stream=stream,this.queue=new FIFO,this.highWaterMark=highWaterMark===0?1:highWaterMark,this.buffered=0,this.readAhead=highWaterMark>0,this.error=null,this.pipeline=null,this.byteLength=byteLengthReadable||byteLength||defaultByteLength,this.map=mapReadable||map,this.pipeTo=null,this.afterRead=afterRead.bind(this),this.afterUpdateNextTick=updateReadNT.bind(this)}get ending(){return(this.stream._duplexState&READ_ENDING)!==0}get ended(){return(this.stream._duplexState&READ_DONE)!==0}pipe(pipeTo,cb){if(this.pipeTo!==null)throw StreamError.BAD_ARGUMENT("Can only pipe to one destination");if(typeof cb!="function"&&(cb=null),this.stream._duplexState|=READ_PIPE_DRAINED,this.pipeTo=pipeTo,this.pipeline=new Pipeline(this.stream,pipeTo,cb),cb&&this.stream.on("error",noop),isStreamx(pipeTo))pipeTo._writableState.pipeline=this.pipeline,cb&&pipeTo.on("error",noop),pipeTo.on("finish",this.pipeline.finished.bind(this.pipeline));else{let onerror=this.pipeline.done.bind(this.pipeline,pipeTo),onclose=this.pipeline.done.bind(this.pipeline,pipeTo,null);pipeTo.on("error",onerror),pipeTo.on("close",onclose),pipeTo.on("finish",this.pipeline.finished.bind(this.pipeline))}pipeTo.on("drain",afterDrain.bind(this)),this.stream.emit("piping",pipeTo),pipeTo.emit("pipe",this.stream)}push(data){let stream=this.stream;return data===null?(this.highWaterMark=0,stream._duplexState=(stream._duplexState|READ_ENDING)&READ_NON_PRIMARY_AND_PUSHED,!1):this.map!==null&&(data=this.map(data),data===null)?(stream._duplexState&=READ_PUSHED,this.buffered<this.highWaterMark):(this.buffered+=this.byteLength(data),this.queue.push(data),stream._duplexState=(stream._duplexState|READ_QUEUED)&READ_PUSHED,this.buffered<this.highWaterMark)}shift(){let data=this.queue.shift();return this.buffered-=this.byteLength(data),this.buffered===0&&(this.stream._duplexState&=READ_NOT_QUEUED),data}unshift(data){let pending=[this.map!==null?this.map(data):data];for(;this.buffered>0;)pending.push(this.shift());for(let i=0;i<pending.length-1;i++){let data2=pending[i];this.buffered+=this.byteLength(data2),this.queue.push(data2)}this.push(pending[pending.length-1])}read(){let stream=this.stream;if((stream._duplexState&READ_STATUS)===READ_QUEUED){let data=this.shift();return this.pipeTo!==null&&this.pipeTo.write(data)===!1&&(stream._duplexState&=READ_PIPE_NOT_DRAINED),(stream._duplexState&READ_EMIT_DATA)!==0&&stream.emit("data",data),data}return this.readAhead===!1&&(stream._duplexState|=READ_READ_AHEAD,this.updateNextTick()),null}drain(){let stream=this.stream;for(;(stream._duplexState&READ_STATUS)===READ_QUEUED&&(stream._duplexState&READ_FLOWING)!==0;){let data=this.shift();this.pipeTo!==null&&this.pipeTo.write(data)===!1&&(stream._duplexState&=READ_PIPE_NOT_DRAINED),(stream._duplexState&READ_EMIT_DATA)!==0&&stream.emit("data",data)}}update(){let stream=this.stream;stream._duplexState|=READ_UPDATING;do{for(this.drain();this.buffered<this.highWaterMark&&(stream._duplexState&SHOULD_NOT_READ)===READ_READ_AHEAD;)stream._duplexState|=READ_ACTIVE_AND_NEEDS_PUSH,stream._read(this.afterRead),this.drain();(stream._duplexState&READ_READABLE_STATUS)===READ_EMIT_READABLE_AND_QUEUED&&(stream._duplexState|=READ_EMITTED_READABLE,stream.emit("readable")),(stream._duplexState&READ_PRIMARY_AND_ACTIVE)===0&&this.updateNonPrimary()}while(this.continueUpdate()===!0);stream._duplexState&=READ_NOT_UPDATING}updateNonPrimary(){let stream=this.stream;if((stream._duplexState&READ_ENDING_STATUS)===READ_ENDING&&(stream._duplexState=(stream._duplexState|READ_DONE)&READ_NOT_ENDING,stream.emit("end"),(stream._duplexState&AUTO_DESTROY)===DONE&&(stream._duplexState|=DESTROYING),this.pipeTo!==null&&this.pipeTo.end()),(stream._duplexState&DESTROY_STATUS)===DESTROYING){(stream._duplexState&ACTIVE_OR_TICKING)===0&&(stream._duplexState|=ACTIVE,stream._destroy(afterDestroy.bind(this)));return}(stream._duplexState&IS_OPENING)===OPENING&&(stream._duplexState=(stream._duplexState|ACTIVE)&NOT_OPENING,stream._open(afterOpen.bind(this)))}continueUpdate(){return(this.stream._duplexState&READ_NEXT_TICK)===0?!1:(this.stream._duplexState&=READ_NOT_NEXT_TICK,!0)}updateCallback(){(this.stream._duplexState&READ_UPDATE_SYNC_STATUS)===READ_PRIMARY?this.update():this.updateNextTick()}updateNextTickIfOpen(){(this.stream._duplexState&READ_NEXT_TICK_OR_OPENING)===0&&(this.stream._duplexState|=READ_NEXT_TICK,(this.stream._duplexState&READ_UPDATING)===0&&qmt(this.afterUpdateNextTick))}updateNextTick(){(this.stream._duplexState&READ_NEXT_TICK)===0&&(this.stream._duplexState|=READ_NEXT_TICK,(this.stream._duplexState&READ_UPDATING)===0&&qmt(this.afterUpdateNextTick))}},TransformState=class{constructor(stream){this.data=null,this.afterTransform=afterTransform.bind(stream),this.afterFinal=null}},Pipeline=class{constructor(src,dst,cb){this.from=src,this.to=dst,this.afterPipe=cb,this.error=null,this.pipeToFinished=!1}finished(){this.pipeToFinished=!0}done(stream,err){if(err&&(this.error=err),stream===this.to&&(this.to=null,this.from!==null)){((this.from._duplexState&READ_DONE)===0||!this.pipeToFinished)&&this.from.destroy(this.error||StreamError.PREMATURE_CLOSE("Writable stream closed"));return}if(stream===this.from&&(this.from=null,this.to!==null)){(stream._duplexState&READ_DONE)===0&&this.to.destroy(this.error||StreamError.PREMATURE_CLOSE("Readable stream closed"));return}this.afterPipe!==null&&this.afterPipe(this.error),this.to=this.from=this.afterPipe=null}};function afterDrain(){this.stream._duplexState|=READ_PIPE_DRAINED,this.updateCallback()}function afterFinal(err){let stream=this.stream;err&&stream.destroy(err),(stream._duplexState&DESTROY_STATUS)===0&&(stream._duplexState|=WRITE_DONE,stream.emit("finish")),(stream._duplexState&AUTO_DESTROY)===DONE&&(stream._duplexState|=DESTROYING),stream._duplexState&=WRITE_NOT_FINISHING,(stream._duplexState&WRITE_UPDATING)===0?this.update():this.updateNextTick()}function afterDestroy(err){let stream=this.stream;!err&&!StreamError.isStreamDestroyed(this.error)&&(err=this.error),err&&stream.emit("error",err),stream._duplexState|=DESTROYED,stream.emit("close");let rs=stream._readableState,ws=stream._writableState;if(rs!==null&&rs.pipeline!==null&&rs.pipeline.done(stream,err),ws!==null){for(;ws.drains!==null&&ws.drains.length>0;)ws.drains.shift().resolve(!1);ws.pipeline!==null&&ws.pipeline.done(stream,err)}}function afterWrite(err){let stream=this.stream;err&&stream.destroy(err),stream._duplexState&=WRITE_NOT_ACTIVE,this.drains!==null&&tickDrains(this.drains),(stream._duplexState&WRITE_DRAIN_STATUS)===WRITE_UNDRAINED&&(stream._duplexState&=WRITE_DRAINED,(stream._duplexState&WRITE_EMIT_DRAIN)===WRITE_EMIT_DRAIN&&stream.emit("drain")),this.updateCallback()}function afterRead(err){err&&this.stream.destroy(err),this.stream._duplexState&=READ_NOT_ACTIVE,this.readAhead===!1&&(this.stream._duplexState&READ_RESUMED)===0&&(this.stream._duplexState&=READ_NO_READ_AHEAD),this.updateCallback()}function updateReadNT(){(this.stream._duplexState&READ_UPDATING)===0&&(this.stream._duplexState&=READ_NOT_NEXT_TICK,this.update())}function updateWriteNT(){(this.stream._duplexState&WRITE_UPDATING)===0&&(this.stream._duplexState&=WRITE_NOT_NEXT_TICK,this.update())}function tickDrains(drains){for(let i=0;i<drains.length;i++)--drains[i].writes===0&&(drains.shift().resolve(!0),i--)}function afterOpen(err){let stream=this.stream;err&&stream.destroy(err),(stream._duplexState&DESTROYING)===0&&((stream._duplexState&READ_PRIMARY_STATUS)===0&&(stream._duplexState|=READ_PRIMARY),(stream._duplexState&WRITE_PRIMARY_STATUS)===0&&(stream._duplexState|=WRITE_PRIMARY),stream.emit("open")),stream._duplexState&=NOT_ACTIVE,stream._writableState!==null&&stream._writableState.updateCallback(),stream._readableState!==null&&stream._readableState.updateCallback()}function afterTransform(err,data){data!=null&&this.push(data),this._writableState.afterWrite(err)}function newListener(name){this._readableState!==null&&(name==="data"&&(this._duplexState|=READ_EMIT_DATA|READ_RESUMED_READ_AHEAD,this._readableState.updateNextTick()),name==="readable"&&(this._duplexState|=READ_EMIT_READABLE,this._readableState.updateNextTick())),this._writableState!==null&&name==="drain"&&(this._duplexState|=WRITE_EMIT_DRAIN,this._writableState.updateNextTick())}var Stream=class extends EventEmitter{constructor(opts){super(),this._duplexState=0,this._readableState=null,this._writableState=null,opts&&(opts.open&&(this._open=opts.open),opts.destroy&&(this._destroy=opts.destroy),opts.predestroy&&(this._predestroy=opts.predestroy),opts.signal&&opts.signal.addEventListener("abort",abort.bind(this))),this.on("newListener",newListener)}_open(cb){cb(null)}_destroy(cb){cb(null)}_predestroy(){}get readable(){return this._readableState!==null?!0:void 0}get writable(){return this._writableState!==null?!0:void 0}get destroyed(){return(this._duplexState&DESTROYED)!==0}get destroying(){return(this._duplexState&DESTROY_STATUS)!==0}destroy(err){(this._duplexState&DESTROY_STATUS)===0&&(err||(err=StreamError.STREAM_DESTROYED()),this._duplexState=(this._duplexState|DESTROYING)&NON_PRIMARY,this._readableState!==null&&(this._readableState.highWaterMark=0,this._readableState.error=err),this._writableState!==null&&(this._writableState.highWaterMark=0,this._writableState.error=err),this._duplexState|=PREDESTROYING,this._predestroy(),this._duplexState&=NOT_PREDESTROYING,this._readableState!==null&&this._readableState.updateNextTick(),this._writableState!==null&&this._writableState.updateNextTick())}},Readable=class _Readable extends Stream{constructor(opts){super(opts),this._duplexState|=OPENING|WRITE_DONE|READ_READ_AHEAD,this._readableState=new ReadableState(this,opts),opts&&(this._readableState.readAhead===!1&&(this._duplexState&=READ_NO_READ_AHEAD),opts.read&&(this._read=opts.read),opts.eagerOpen&&this._readableState.updateNextTick(),opts.encoding&&this.setEncoding(opts.encoding))}static deferred(fn,opts){let out=new PassThrough(opts);return fn().then(src=>{if(src===null)return out.end();out.destroying||pipeline(src,out,noop)}).catch(err=>out.destroy(err)),out}setEncoding(encoding){let dec=new TextDecoder2(encoding),map=this._readableState.map||echo;return this._readableState.map=mapOrSkip,this;function mapOrSkip(data){let next=dec.push(data);return next===""&&(data.byteLength!==0||dec.remaining>0)?null:map(next)}}_read(cb){cb(null)}pipe(dest,cb){return this._readableState.updateNextTick(),this._readableState.pipe(dest,cb),dest}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(data){return this._readableState.updateNextTickIfOpen(),this._readableState.push(data)}unshift(data){return this._readableState.updateNextTickIfOpen(),this._readableState.unshift(data)}resume(){return this._duplexState|=READ_RESUMED_READ_AHEAD,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?READ_PAUSED_NO_READ_AHEAD:READ_PAUSED,this}static _fromAsyncIterator(ite,opts){let destroy,rs=new _Readable({...opts,read(cb){ite.next().then(push).then(cb.bind(null,null)).catch(cb)},predestroy(){destroy=ite.return()},destroy(cb){if(!destroy)return cb(null);destroy.then(cb.bind(null,null)).catch(cb)}});return rs;function push(data){data.done?rs.push(null):rs.push(data.value)}}static from(data,opts){if(isReadStreamx(data))return data;if(data[asyncIterator])return this._fromAsyncIterator(data[asyncIterator](),opts);Array.isArray(data)||(data=data===void 0?[]:[data]);let i=0;return new _Readable({...opts,read(cb){this.push(i===data.length?null:data[i++]),cb(null)}})}static isBackpressured(rs){return(rs._duplexState&READ_BACKPRESSURE_STATUS)!==0||rs._readableState.buffered>=rs._readableState.highWaterMark}static isPaused(rs){return(rs._duplexState&READ_RESUMED)===0}[asyncIterator](){let stream=this,error=null,promiseResolve=null,promiseReject=null;return this.on("error",err=>{error=err}),this.on("readable",onreadable),this.on("close",onclose),{[asyncIterator](){return this},next(){return new Promise(function(resolve,reject){promiseResolve=resolve,promiseReject=reject;let data=stream.read();data!==null?ondata(data):(stream._duplexState&DESTROYED)!==0&&ondata(null)})},return(){return destroy(null)},throw(err){return destroy(err)}};function onreadable(){promiseResolve!==null&&ondata(stream.read())}function onclose(){promiseResolve!==null&&ondata(null)}function ondata(data){promiseReject!==null&&(error?promiseReject(error):data===null&&(stream._duplexState&READ_DONE)===0?promiseReject(StreamError.STREAM_DESTROYED()):promiseResolve({value:data,done:data===null}),promiseReject=promiseResolve=null)}function destroy(err){return stream.destroy(err),new Promise((resolve,reject)=>{if(stream._duplexState&DESTROYED)return resolve({value:void 0,done:!0});stream.once("close",function(){err?reject(err):resolve({value:void 0,done:!0})})})}}},Writable=class extends Stream{constructor(opts){super(opts),this._duplexState|=OPENING|READ_DONE,this._writableState=new WritableState(this,opts),opts&&(opts.writev&&(this._writev=opts.writev),opts.write&&(this._write=opts.write),opts.final&&(this._final=opts.final),opts.eagerOpen&&this._writableState.updateNextTick())}cork(){this._duplexState|=WRITE_CORKED}uncork(){this._duplexState&=WRITE_NOT_CORKED,this._writableState.updateNextTick()}_writev(batch,cb){cb(null)}_write(data,cb){this._writableState.autoBatch(data,cb)}_final(cb){cb(null)}static isBackpressured(ws){return(ws._duplexState&WRITE_BACKPRESSURE_STATUS)!==0}static drained(ws){if(ws.destroyed)return Promise.resolve(!1);let state=ws._writableState,writes=(isWritev(ws)?Math.min(1,state.queue.length):state.queue.length)+(ws._duplexState&WRITE_WRITING?1:0);return writes===0?Promise.resolve(!0):(state.drains===null&&(state.drains=[]),new Promise(resolve=>{state.drains.push({writes,resolve})}))}write(data){return this._writableState.updateNextTick(),this._writableState.push(data)}end(data){return this._writableState.updateNextTick(),this._writableState.end(data),this}},Duplex=class extends Readable{constructor(opts){super(opts),this._duplexState=OPENING|this._duplexState&READ_READ_AHEAD,this._writableState=new WritableState(this,opts),opts&&(opts.writev&&(this._writev=opts.writev),opts.write&&(this._write=opts.write),opts.final&&(this._final=opts.final))}cork(){this._duplexState|=WRITE_CORKED}uncork(){this._duplexState&=WRITE_NOT_CORKED,this._writableState.updateNextTick()}_writev(batch,cb){cb(null)}_write(data,cb){this._writableState.autoBatch(data,cb)}_final(cb){cb(null)}write(data){return this._writableState.updateNextTick(),this._writableState.push(data)}end(data){return this._writableState.updateNextTick(),this._writableState.end(data),this}},Transform=class extends Duplex{constructor(opts){super(opts),this._transformState=new TransformState(this),opts&&(opts.transform&&(this._transform=opts.transform),opts.flush&&(this._flush=opts.flush))}_write(data,cb){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=data:this._transform(data,this._transformState.afterTransform)}_read(cb){if(this._transformState.data!==null){let data=this._transformState.data;this._transformState.data=null,cb(null),this._transform(data,this._transformState.afterTransform)}else cb(null)}destroy(err){super.destroy(err),this._transformState.data!==null&&(this._transformState.data=null,this._transformState.afterTransform())}_transform(data,cb){cb(null,data)}_flush(cb){cb(null)}_final(cb){this._transformState.afterFinal=cb,this._flush(transformAfterFlush.bind(this))}},PassThrough=class extends Transform{};function transformAfterFlush(err,data){let cb=this._transformState.afterFinal;if(err)return cb(err);data!=null&&this.push(data),this.push(null),cb(null)}function pipelinePromise(...streams){return new Promise((resolve,reject)=>pipeline(...streams,err=>{if(err)return reject(err);resolve()}))}function pipeline(stream,...streams){let all=Array.isArray(stream)?[...stream,...streams]:[stream,...streams],done=all.length&&typeof all[all.length-1]=="function"?all.pop():null;if(all.length<2)throw StreamError.BAD_ARGUMENT("Pipeline requires at least 2 streams");let src=all[0],dest=null,error=null;for(let i=1;i<all.length;i++)dest=all[i],isStreamx(src)?src.pipe(dest,onerror):(errorHandle(src,!0,i>1,onerror),src.pipe(dest)),src=dest;if(done){let fin=!1,autoDestroy=isStreamx(dest)||!!(dest._writableState&&dest._writableState.autoDestroy);dest.on("error",err=>{error===null&&(error=err)}),dest.on("finish",()=>{fin=!0,autoDestroy||done(error)}),autoDestroy&&dest.on("close",()=>done(error||(fin?null:StreamError.PREMATURE_CLOSE())))}return dest;function errorHandle(s,rd,wr,onerror2){s.on("error",onerror2),s.on("close",onclose);function onclose(){if(rd&&s._readableState&&!s._readableState.ended||wr&&s._writableState&&!s._writableState.ended)return onerror2(StreamError.PREMATURE_CLOSE())}}function onerror(err){if(!(!err||error)){error=err;for(let s of all)s.destroy(err)}}}function echo(s){return s}function isStream(stream){return!!stream._readableState||!!stream._writableState}function isStreamx(stream){return typeof stream._duplexState=="number"&&isStream(stream)}function isEnding(stream){return!!stream._readableState&&stream._readableState.ending}function isEnded(stream){return!!stream._readableState&&stream._readableState.ended}function isFinishing(stream){return!!stream._writableState&&stream._writableState.ending}function isFinished(stream){return!!stream._writableState&&stream._writableState.ended}function getStreamError(stream,opts={}){let err=stream._readableState&&stream._readableState.error||stream._writableState&&stream._writableState.error;return!opts.all&&StreamError.isStreamDestroyed(err)?null:err}function isReadStreamx(stream){return isStreamx(stream)&&stream.readable}function isDisturbed(stream){return(stream._duplexState&OPENING)!==OPENING||(stream._duplexState&DESTROYING)===DESTROYING||(stream._duplexState&ACTIVE_OR_TICKING)!==0}function isTypedArray(data){return typeof data=="object"&&data!==null&&typeof data.byteLength=="number"}function defaultByteLength(data){return isTypedArray(data)?data.byteLength:1024}function noop(){}function abort(){this.destroy(StreamError.ABORTED())}function isWritev(s){return s._writev!==Writable.prototype._writev&&s._writev!==Duplex.prototype._writev}module2.exports={pipeline,pipelinePromise,isStream,isStreamx,isEnding,isEnded,isFinishing,isFinished,isDisturbed,getStreamError,Stream,Writable,Readable,Duplex,Transform,PassThrough}}});var require_headers=__commonJS({"node_modules/tar-stream/headers.js"(exports2){var b4a=require_b4a(),ZEROS="0000000000000000000",SEVENS="7777777777777777777",ZERO_OFFSET=48,USTAR_MAGIC=b4a.from([117,115,116,97,114,0]),USTAR_VER=b4a.from([ZERO_OFFSET,ZERO_OFFSET]),GNU_MAGIC=b4a.from([117,115,116,97,114,32]),GNU_VER=b4a.from([32,0]),MASK=4095,MAGIC_OFFSET=257,VERSION_OFFSET=263;exports2.decodeLongPath=function(buf,encoding){return decodeStr(buf,0,buf.length,encoding)};exports2.encodePax=function(opts){let result="";opts.name&&(result+=addLength(" path="+opts.name+`
305
+ --${boundary}`,ssCb),this._writecb=null,this._finalcb=null,this.write(BUF_CRLF)}static detect(conType){return conType.type==="multipart"&&conType.subtype==="form-data"}_write(chunk,enc,cb){this._writecb=cb,this._bparser.push(chunk,0),this._writecb&&callAndUnsetCb(this)}_destroy(err,cb){this._hparser=null,this._bparser=ignoreData,err||(err=checkEndState(this));let fileStream=this._fileStream;fileStream&&(this._fileStream=null,fileStream.destroy(err)),cb(err)}_final(cb){if(this._bparser.destroy(),!this._complete)return cb(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=finalcb.bind(null,this,cb):finalcb(this,cb)}};function finalcb(self2,cb,err){if(err)return cb(err);err=checkEndState(self2),cb(err)}function checkEndState(self2){if(self2._hparser)return new Error("Malformed part header");let fileStream=self2._fileStream;if(fileStream&&(self2._fileStream=null,fileStream.destroy(new Error("Unexpected end of file"))),!self2._complete)return new Error("Unexpected end of form")}var TOKEN=[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,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,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,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,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,0,0,0,0,0,0,0],FIELD_VCHAR=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];module2.exports=Multipart}});var require_urlencoded2=__commonJS({"node_modules/busboy/lib/types/urlencoded.js"(exports2,module2){"use strict";var{Writable}=require("stream"),{getDecoder}=require_utils9(),URLEncoded=class extends Writable{constructor(cfg){let streamOpts={autoDestroy:!0,emitClose:!0,highWaterMark:typeof cfg.highWaterMark=="number"?cfg.highWaterMark:void 0};super(streamOpts);let charset=cfg.defCharset||"utf8";cfg.conType.params&&typeof cfg.conType.params.charset=="string"&&(charset=cfg.conType.params.charset),this.charset=charset;let limits=cfg.limits;this.fieldSizeLimit=limits&&typeof limits.fieldSize=="number"?limits.fieldSize:1*1024*1024,this.fieldsLimit=limits&&typeof limits.fields=="number"?limits.fields:1/0,this.fieldNameSizeLimit=limits&&typeof limits.fieldNameSize=="number"?limits.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=getDecoder(charset)}static detect(conType){return conType.type==="application"&&conType.subtype==="x-www-form-urlencoded"}_write(chunk,enc,cb){if(this._fields>=this.fieldsLimit)return cb();let i=0,len=chunk.length;if(this._lastPos=0,this._byte!==-2){if(i=readPctEnc(this,chunk,i,len),i===-1)return cb(new Error("Malformed urlencoded form"));if(i>=len)return cb();this._inKey?++this._bytesKey:++this._bytesVal}main:for(;i<len;)if(this._inKey){for(i=skipKeyBytes(this,chunk,i,len);i<len;){switch(chunk[i]){case 61:this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=++i,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue main;case 38:if(this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=++i,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),cb();continue;case 43:this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._key+=" ",this._lastPos=i+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=i+1,this._byte=-1,i=readPctEnc(this,chunk,i+1,len),i===-1)return cb(new Error("Malformed urlencoded form"));if(i>=len)return cb();++this._bytesKey,i=skipKeyBytes(this,chunk,i,len);continue}++i,++this._bytesKey,i=skipKeyBytes(this,chunk,i,len)}this._lastPos<i&&(this._key+=chunk.latin1Slice(this._lastPos,i))}else{for(i=skipValBytes(this,chunk,i,len);i<len;){switch(chunk[i]){case 38:if(this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=++i,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),cb();continue main;case 43:this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i)),this._val+=" ",this._lastPos=i+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i)),this._lastPos=i+1,this._byte=-1,i=readPctEnc(this,chunk,i+1,len),i===-1)return cb(new Error("Malformed urlencoded form"));if(i>=len)return cb();++this._bytesVal,i=skipValBytes(this,chunk,i,len);continue}++i,++this._bytesVal,i=skipValBytes(this,chunk,i,len)}this._lastPos<i&&(this._val+=chunk.latin1Slice(this._lastPos,i))}cb()}_final(cb){if(this._byte!==-2)return cb(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),cb()}};function readPctEnc(self2,chunk,pos,len){if(pos>=len)return len;if(self2._byte===-1){let hexUpper=HEX_VALUES[chunk[pos++]];if(hexUpper===-1)return-1;if(hexUpper>=8&&(self2._encode=2),pos<len){let hexLower=HEX_VALUES[chunk[pos++]];if(hexLower===-1)return-1;self2._inKey?self2._key+=String.fromCharCode((hexUpper<<4)+hexLower):self2._val+=String.fromCharCode((hexUpper<<4)+hexLower),self2._byte=-2,self2._lastPos=pos}else self2._byte=hexUpper}else{let hexLower=HEX_VALUES[chunk[pos++]];if(hexLower===-1)return-1;self2._inKey?self2._key+=String.fromCharCode((self2._byte<<4)+hexLower):self2._val+=String.fromCharCode((self2._byte<<4)+hexLower),self2._byte=-2,self2._lastPos=pos}return pos}function skipKeyBytes(self2,chunk,pos,len){if(self2._bytesKey>self2.fieldNameSizeLimit){for(self2._keyTrunc||self2._lastPos<pos&&(self2._key+=chunk.latin1Slice(self2._lastPos,pos-1)),self2._keyTrunc=!0;pos<len;++pos){let code=chunk[pos];if(code===61||code===38)break;++self2._bytesKey}self2._lastPos=pos}return pos}function skipValBytes(self2,chunk,pos,len){if(self2._bytesVal>self2.fieldSizeLimit){for(self2._valTrunc||self2._lastPos<pos&&(self2._val+=chunk.latin1Slice(self2._lastPos,pos-1)),self2._valTrunc=!0;pos<len&&chunk[pos]!==38;++pos)++self2._bytesVal;self2._lastPos=pos}return pos}var HEX_VALUES=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];module2.exports=URLEncoded}});var require_lib5=__commonJS({"node_modules/busboy/lib/index.js"(exports2,module2){"use strict";var{parseContentType}=require_utils9();function getInstance(cfg){let headers=cfg.headers,conType=parseContentType(headers["content-type"]);if(!conType)throw new Error("Malformed content type");for(let type of TYPES){if(!type.detect(conType))continue;let instanceCfg={limits:cfg.limits,headers,conType,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return cfg.highWaterMark&&(instanceCfg.highWaterMark=cfg.highWaterMark),cfg.fileHwm&&(instanceCfg.fileHwm=cfg.fileHwm),instanceCfg.defCharset=cfg.defCharset,instanceCfg.defParamCharset=cfg.defParamCharset,instanceCfg.preservePath=cfg.preservePath,new type(instanceCfg)}throw new Error(`Unsupported content type: ${headers["content-type"]}`)}var TYPES=[require_multipart(),require_urlencoded2()].filter(function(typemod){return typeof typemod.detect=="function"});module2.exports=cfg=>{if((typeof cfg!="object"||cfg===null)&&(cfg={}),typeof cfg.headers!="object"||cfg.headers===null||typeof cfg.headers["content-type"]!="string")throw new Error("Missing Content-Type");return getInstance(cfg)}}});var require_parse_path=__commonJS({"node_modules/append-field/lib/parse-path.js"(exports2,module2){var reFirstKey=/^[^\[]*/,reDigitPath=/^\[(\d+)\]/,reNormalPath=/^\[([^\]]+)\]/;function parsePath(key){function failure(){return[{type:"object",key,last:!0}]}var firstKey=reFirstKey.exec(key)[0];if(!firstKey)return failure();for(var len=key.length,pos=firstKey.length,tail={type:"object",key:firstKey},steps=[tail];pos<len;){var m;if(key[pos]==="["&&key[pos+1]==="]"){if(pos+=2,tail.append=!0,pos!==len)return failure();continue}if(m=reDigitPath.exec(key.substring(pos)),m!==null){pos+=m[0].length,tail.nextType="array",tail={type:"array",key:parseInt(m[1],10)},steps.push(tail);continue}if(m=reNormalPath.exec(key.substring(pos)),m!==null){pos+=m[0].length,tail.nextType="object",tail={type:"object",key:m[1]},steps.push(tail);continue}return failure()}return tail.last=!0,steps}module2.exports=parsePath}});var require_set_value=__commonJS({"node_modules/append-field/lib/set-value.js"(exports2,module2){function valueType(value){return value===void 0?"undefined":Array.isArray(value)?"array":typeof value=="object"?"object":"scalar"}function setLastValue(context,step,currentValue,entryValue){switch(valueType(currentValue)){case"undefined":step.append?context[step.key]=[entryValue]:context[step.key]=entryValue;break;case"array":context[step.key].push(entryValue);break;case"object":return setLastValue(currentValue,{type:"object",key:"",last:!0},currentValue[""],entryValue);case"scalar":context[step.key]=[context[step.key],entryValue];break}return context}function setValue(context,step,currentValue,entryValue){if(step.last)return setLastValue(context,step,currentValue,entryValue);var obj;switch(valueType(currentValue)){case"undefined":return step.nextType==="array"?context[step.key]=[]:context[step.key]=Object.create(null),context[step.key];case"object":return context[step.key];case"array":return step.nextType==="array"?currentValue:(obj=Object.create(null),context[step.key]=obj,currentValue.forEach(function(item,i){item!==void 0&&(obj[""+i]=item)}),obj);case"scalar":return obj=Object.create(null),obj[""]=currentValue,context[step.key]=obj,obj}}module2.exports=setValue}});var require_append_field=__commonJS({"node_modules/append-field/index.js"(exports2,module2){var parsePath=require_parse_path(),setValue=require_set_value();function appendField(store,key,value){var steps=parsePath(key);steps.reduce(function(context,step){return setValue(context,step,context[step.key],value)},store)}module2.exports=appendField}});var require_counter=__commonJS({"node_modules/multer/lib/counter.js"(exports2,module2){var EventEmitter=require("events").EventEmitter;function Counter(){EventEmitter.call(this),this.value=0}Counter.prototype=Object.create(EventEmitter.prototype);Counter.prototype.increment=function(){this.value++};Counter.prototype.decrement=function(){--this.value===0&&this.emit("zero")};Counter.prototype.isZero=function(){return this.value===0};Counter.prototype.onceZero=function(fn){if(this.isZero())return fn();this.once("zero",fn)};module2.exports=Counter}});var require_multer_error=__commonJS({"node_modules/multer/lib/multer-error.js"(exports2,module2){var util=require("util"),errorMessages={LIMIT_PART_COUNT:"Too many parts",LIMIT_FILE_SIZE:"File too large",LIMIT_FILE_COUNT:"Too many files",LIMIT_FIELD_KEY:"Field name too long",LIMIT_FIELD_VALUE:"Field value too long",LIMIT_FIELD_COUNT:"Too many fields",LIMIT_UNEXPECTED_FILE:"Unexpected field",MISSING_FIELD_NAME:"Field name missing",LIMIT_FIELD_NESTING:"Field name nesting too deep"};function MulterError(code,field){Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=errorMessages[code],this.code=code,field&&(this.field=field)}util.inherits(MulterError,Error);module2.exports=MulterError}});var require_file_appender=__commonJS({"node_modules/multer/lib/file-appender.js"(exports2,module2){function arrayRemove(arr,item){var idx=arr.indexOf(item);~idx&&arr.splice(idx,1)}function FileAppender(strategy,req){switch(this.strategy=strategy,this.req=req,strategy){case"NONE":break;case"VALUE":break;case"ARRAY":req.files=[];break;case"OBJECT":req.files=Object.create(null);break;default:throw new Error("Unknown file strategy: "+strategy)}}FileAppender.prototype.insertPlaceholder=function(file){var placeholder={fieldname:file.fieldname};switch(this.strategy){case"NONE":break;case"VALUE":break;case"ARRAY":this.req.files.push(placeholder);break;case"OBJECT":this.req.files[file.fieldname]?this.req.files[file.fieldname].push(placeholder):this.req.files[file.fieldname]=[placeholder];break}return placeholder};FileAppender.prototype.removePlaceholder=function(placeholder){switch(this.strategy){case"NONE":break;case"VALUE":break;case"ARRAY":arrayRemove(this.req.files,placeholder);break;case"OBJECT":this.req.files[placeholder.fieldname].length===1?delete this.req.files[placeholder.fieldname]:arrayRemove(this.req.files[placeholder.fieldname],placeholder);break}};FileAppender.prototype.replacePlaceholder=function(placeholder,file){if(this.strategy==="VALUE"){this.req.file=file;return}delete placeholder.fieldname,Object.assign(placeholder,file)};module2.exports=FileAppender}});var require_remove_uploaded_files=__commonJS({"node_modules/multer/lib/remove-uploaded-files.js"(exports2,module2){function removeUploadedFiles(uploadedFiles,remove,cb){var length=uploadedFiles.length,errors=[];if(length===0)return cb(null,errors);function handleFile(idx){var file=uploadedFiles[idx];remove(file,function(err){err&&(err.file=file,err.field=file.fieldname,errors.push(err)),idx<length-1?setImmediate(function(){handleFile(idx+1)}):cb(null,errors)})}handleFile(0)}module2.exports=removeUploadedFiles}});var require_make_middleware=__commonJS({"node_modules/multer/lib/make-middleware.js"(exports2,module2){var is=require_type_is(),Busboy=require_lib5(),appendField=require_append_field(),Counter=require_counter(),MulterError=require_multer_error(),FileAppender=require_file_appender(),removeUploadedFiles=require_remove_uploaded_files();function drainStream(stream){stream.on("readable",()=>{for(;stream.read()!==null;);})}function makeMiddleware(setup){return function(req,res,next){if(!is(req,["multipart"]))return next();var options=setup(),limits=options.limits,storage=options.storage,fileFilter=options.fileFilter,fileStrategy=options.fileStrategy,preservePath=options.preservePath,defParamCharset=options.defParamCharset;req.body=Object.create(null);var busboy,appender=null,isDone=!1,readFinished=!1,errorOccured=!1,pendingWrites=new Counter,uploadedFiles=[],pendingFiles=[];function done(err){var called=!1;function onFinished(){called||(called=!0,next(err))}if(!isDone){if(isDone=!0,busboy&&(req.unpipe(busboy),setImmediate(()=>{busboy.removeAllListeners()})),drainStream(req),req.resume(),err&&req.readable&&!req.destroyed){req.once("end",onFinished),req.once("error",onFinished),req.once("close",onFinished);return}next(err)}}function indicateDone(){readFinished&&pendingWrites.isZero()&&!errorOccured&&done()}function abortWithError(uploadError,skipPendingWait){if(errorOccured)return;errorOccured=!0;function finishAbort(){function remove(file,cb){storage._removeFile(req,file,cb)}var filesToRemove=uploadedFiles.concat(pendingFiles.filter(function(f){return f.path}));pendingFiles=[],removeUploadedFiles(filesToRemove,remove,function(err,storageErrors){if(err)return done(err);uploadError.storageErrors=storageErrors,done(uploadError)})}skipPendingWait?finishAbort():pendingWrites.onceZero(finishAbort)}function abortWithCode(code,optionalField){abortWithError(new MulterError(code,optionalField))}function handleRequestFailure(err){isDone||(busboy&&(req.unpipe(busboy),busboy.destroy(err)),abortWithError(err,!0))}req.on("error",function(err){handleRequestFailure(err||new Error("Request error"))}),req.on("aborted",function(){handleRequestFailure(new Error("Request aborted"))}),req.on("close",function(){req.readableEnded||handleRequestFailure(new Error("Request closed"))});try{busboy=Busboy({headers:req.headers,limits,preservePath,defParamCharset})}catch(err){return next(err)}appender=new FileAppender(fileStrategy,req),busboy.on("field",function(fieldname,value,{nameTruncated,valueTruncated}){if(fieldname==null)return abortWithCode("MISSING_FIELD_NAME");if(nameTruncated)return abortWithCode("LIMIT_FIELD_KEY");if(valueTruncated)return abortWithCode("LIMIT_FIELD_VALUE",fieldname);if(limits&&Object.prototype.hasOwnProperty.call(limits,"fieldNameSize")&&fieldname.length>limits.fieldNameSize)return abortWithCode("LIMIT_FIELD_KEY");if(limits&&Object.prototype.hasOwnProperty.call(limits,"fieldNestingDepth")&&fieldname.split("[").length-1>limits.fieldNestingDepth)return abortWithCode("LIMIT_FIELD_NESTING",fieldname);appendField(req.body,fieldname,value)}),busboy.on("file",function(fieldname,fileStream,{filename,encoding,mimeType}){var pendingWritesIncremented=!1;if(fileStream.on("error",function(err){pendingWritesIncremented&&pendingWrites.decrement(),abortWithError(err)}),fieldname==null)return abortWithCode("MISSING_FIELD_NAME");if(!filename)return fileStream.resume();if(limits&&Object.prototype.hasOwnProperty.call(limits,"fieldNameSize")&&fieldname.length>limits.fieldNameSize)return abortWithCode("LIMIT_FIELD_KEY");var file={fieldname,originalname:filename,encoding,mimetype:mimeType},placeholder=appender.insertPlaceholder(file);fileFilter(req,file,function(err,includeFile){if(errorOccured)return appender.removePlaceholder(placeholder),fileStream.resume();if(err)return appender.removePlaceholder(placeholder),abortWithError(err);if(!includeFile)return appender.removePlaceholder(placeholder),fileStream.resume();var aborting=!1;pendingWritesIncremented=!0,pendingWrites.increment(),Object.defineProperty(file,"stream",{configurable:!0,enumerable:!1,value:fileStream}),fileStream.on("limit",function(){aborting=!0,abortWithCode("LIMIT_FILE_SIZE",fieldname)}),pendingFiles.push(file),storage._handleFile(req,file,function(err2,info){var idx=pendingFiles.indexOf(file);if(idx!==-1&&pendingFiles.splice(idx,1),aborting)return appender.removePlaceholder(placeholder),uploadedFiles.push({...file,...info}),pendingWrites.decrement();if(err2)return appender.removePlaceholder(placeholder),pendingWrites.decrement(),abortWithError(err2);var fileInfo={...file,...info};appender.replacePlaceholder(placeholder,fileInfo),uploadedFiles.push(fileInfo),pendingWrites.decrement(),indicateDone()})})}),busboy.on("error",function(err){abortWithError(err)}),busboy.on("partsLimit",function(){abortWithCode("LIMIT_PART_COUNT")}),busboy.on("filesLimit",function(){abortWithCode("LIMIT_FILE_COUNT")}),busboy.on("fieldsLimit",function(){abortWithCode("LIMIT_FIELD_COUNT")}),busboy.on("close",function(){readFinished=!0,indicateDone()}),req.pipe(busboy)}}module2.exports=makeMiddleware}});var require_disk=__commonJS({"node_modules/multer/storage/disk.js"(exports2,module2){var fs=require("fs"),os=require("os"),path=require("path"),crypto=require("crypto");function getFilename(req,file,cb){crypto.randomBytes(16,function(err,raw){cb(err,err?void 0:raw.toString("hex"))})}function getDestination(req,file,cb){cb(null,os.tmpdir())}function DiskStorage(opts){this.getFilename=opts.filename||getFilename,typeof opts.destination=="string"?(fs.mkdirSync(opts.destination,{recursive:!0}),this.getDestination=function($0,$1,cb){cb(null,opts.destination)}):this.getDestination=opts.destination||getDestination}DiskStorage.prototype._handleFile=function(req,file,cb){var that=this;that.getDestination(req,file,function(err,destination){if(err)return cb(err);that.getFilename(req,file,function(err2,filename){if(err2)return cb(err2);var finalPath=path.join(destination,filename);if(!file.stream.destroyed){var outStream=fs.createWriteStream(finalPath);file.path=finalPath,file.stream.pipe(outStream),outStream.on("error",cb),outStream.on("finish",function(){cb(null,{destination,filename,path:finalPath,size:outStream.bytesWritten})})}})})};DiskStorage.prototype._removeFile=function(req,file,cb){var path2=file.path;delete file.destination,delete file.filename,delete file.path,fs.unlink(path2,cb)};module2.exports=function(opts){return new DiskStorage(opts)}}});var require_stream3=__commonJS({"node_modules/readable-stream/lib/internal/streams/stream.js"(exports2,module2){module2.exports=require("stream")}});var require_buffer_list=__commonJS({"node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports2,module2){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _defineProperty(obj,key,value){return key=_toPropertyKey(key),key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,_toPropertyKey(descriptor.key),descriptor)}}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),Constructor}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key=="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var _require=require("buffer"),Buffer2=_require.Buffer,_require2=require("util"),inspect=_require2.inspect,custom=inspect&&inspect.custom||"inspect";function copyBuffer(src,target,offset){Buffer2.prototype.copy.call(src,target,offset)}module2.exports=(function(){function BufferList(){_classCallCheck(this,BufferList),this.head=null,this.tail=null,this.length=0}return _createClass(BufferList,[{key:"push",value:function(v){var entry={data:v,next:null};this.length>0?this.tail.next=entry:this.head=entry,this.tail=entry,++this.length}},{key:"unshift",value:function(v){var entry={data:v,next:this.head};this.length===0&&(this.tail=entry),this.head=entry,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ret=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ret}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(s){if(this.length===0)return"";for(var p=this.head,ret=""+p.data;p=p.next;)ret+=s+p.data;return ret}},{key:"concat",value:function(n){if(this.length===0)return Buffer2.alloc(0);for(var ret=Buffer2.allocUnsafe(n>>>0),p=this.head,i=0;p;)copyBuffer(p.data,ret,i),i+=p.data.length,p=p.next;return ret}},{key:"consume",value:function(n,hasStrings){var ret;return n<this.head.data.length?(ret=this.head.data.slice(0,n),this.head.data=this.head.data.slice(n)):n===this.head.data.length?ret=this.shift():ret=hasStrings?this._getString(n):this._getBuffer(n),ret}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(n){var p=this.head,c=1,ret=p.data;for(n-=ret.length;p=p.next;){var str=p.data,nb=n>str.length?str.length:n;if(nb===str.length?ret+=str:ret+=str.slice(0,n),n-=nb,n===0){nb===str.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=str.slice(nb));break}++c}return this.length-=c,ret}},{key:"_getBuffer",value:function(n){var ret=Buffer2.allocUnsafe(n),p=this.head,c=1;for(p.data.copy(ret),n-=p.data.length;p=p.next;){var buf=p.data,nb=n>buf.length?buf.length:n;if(buf.copy(ret,ret.length-n,0,nb),n-=nb,n===0){nb===buf.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=buf.slice(nb));break}++c}return this.length-=c,ret}},{key:custom,value:function(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{depth:0,customInspect:!1}))}}]),BufferList})()}});var require_destroy2=__commonJS({"node_modules/readable-stream/lib/internal/streams/destroy.js"(exports2,module2){"use strict";function destroy(err,cb){var _this=this,readableDestroyed=this._readableState&&this._readableState.destroyed,writableDestroyed=this._writableState&&this._writableState.destroyed;return readableDestroyed||writableDestroyed?(cb?cb(err):err&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,err)):process.nextTick(emitErrorNT,this,err)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(err||null,function(err2){!cb&&err2?_this._writableState?_this._writableState.errorEmitted?process.nextTick(emitCloseNT,_this):(_this._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,_this,err2)):process.nextTick(emitErrorAndCloseNT,_this,err2):cb?(process.nextTick(emitCloseNT,_this),cb(err2)):process.nextTick(emitCloseNT,_this)}),this)}function emitErrorAndCloseNT(self2,err){emitErrorNT(self2,err),emitCloseNT(self2)}function emitCloseNT(self2){self2._writableState&&!self2._writableState.emitClose||self2._readableState&&!self2._readableState.emitClose||self2.emit("close")}function undestroy(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function emitErrorNT(self2,err){self2.emit("error",err)}function errorOrDestroy(stream,err){var rState=stream._readableState,wState=stream._writableState;rState&&rState.autoDestroy||wState&&wState.autoDestroy?stream.destroy(err):stream.emit("error",err)}module2.exports={destroy,undestroy,errorOrDestroy}}});var require_errors3=__commonJS({"node_modules/readable-stream/errors.js"(exports2,module2){"use strict";var codes={};function createErrorType(code,message,Base){Base||(Base=Error);function getMessage(arg1,arg2,arg3){return typeof message=="string"?message:message(arg1,arg2,arg3)}class NodeError extends Base{constructor(arg1,arg2,arg3){super(getMessage(arg1,arg2,arg3))}}NodeError.prototype.name=Base.name,NodeError.prototype.code=code,codes[code]=NodeError}function oneOf(expected,thing){if(Array.isArray(expected)){let len=expected.length;return expected=expected.map(i=>String(i)),len>2?`one of ${thing} ${expected.slice(0,len-1).join(", ")}, or `+expected[len-1]:len===2?`one of ${thing} ${expected[0]} or ${expected[1]}`:`of ${thing} ${expected[0]}`}else return`of ${thing} ${String(expected)}`}function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search}function endsWith(str,search,this_len){return(this_len===void 0||this_len>str.length)&&(this_len=str.length),str.substring(this_len-search.length,this_len)===search}function includes(str,search,start){return typeof start!="number"&&(start=0),start+search.length>str.length?!1:str.indexOf(search,start)!==-1}createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){let determiner;typeof expected=="string"&&startsWith(expected,"not ")?(determiner="must not be",expected=expected.replace(/^not /,"")):determiner="must be";let msg;if(endsWith(name," argument"))msg=`The ${name} ${determiner} ${oneOf(expected,"type")}`;else{let type=includes(name,".")?"property":"argument";msg=`The "${name}" ${type} ${determiner} ${oneOf(expected,"type")}`}return msg+=`. Received type ${typeof actual}`,msg},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");module2.exports.codes=codes}});var require_state=__commonJS({"node_modules/readable-stream/lib/internal/streams/state.js"(exports2,module2){"use strict";var ERR_INVALID_OPT_VALUE=require_errors3().codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return Math.floor(hwm)}return state.objectMode?16:16*1024}module2.exports={getHighWaterMark}}});var require_node9=__commonJS({"node_modules/util-deprecate/node.js"(exports2,module2){module2.exports=require("util").deprecate}});var require_stream_writable=__commonJS({"node_modules/readable-stream/lib/_stream_writable.js"(exports2,module2){"use strict";module2.exports=Writable;function CorkedRequest(state){var _this=this;this.next=null,this.entry=null,this.finish=function(){onCorkedFinish(_this,state)}}var Duplex;Writable.WritableState=WritableState;var internalUtil={deprecate:require_node9()},Stream=require_stream3(),Buffer2=require("buffer").Buffer,OurUint8Array=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer2.from(chunk)}function _isUint8Array(obj){return Buffer2.isBuffer(obj)||obj instanceof OurUint8Array}var destroyImpl=require_destroy2(),_require=require_state(),getHighWaterMark=_require.getHighWaterMark,_require$codes=require_errors3().codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_STREAM_CANNOT_PIPE=_require$codes.ERR_STREAM_CANNOT_PIPE,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED,ERR_STREAM_NULL_VALUES=_require$codes.ERR_STREAM_NULL_VALUES,ERR_STREAM_WRITE_AFTER_END=_require$codes.ERR_STREAM_WRITE_AFTER_END,ERR_UNKNOWN_ENCODING=_require$codes.ERR_UNKNOWN_ENCODING,errorOrDestroy=destroyImpl.errorOrDestroy;require_inherits()(Writable,Stream);function nop(){}function WritableState(options,stream,isDuplex){Duplex=Duplex||require_stream_duplex(),options=options||{},typeof isDuplex!="boolean"&&(isDuplex=stream instanceof Duplex),this.objectMode=!!options.objectMode,isDuplex&&(this.objectMode=this.objectMode||!!options.writableObjectMode),this.highWaterMark=getHighWaterMark(this,options,"writableHighWaterMark",isDuplex),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=options.emitClose!==!1,this.autoDestroy=!!options.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function(){for(var current=this.bufferedRequest,out=[];current;)out.push(current),current=current.next;return out};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var realHasInstance;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(realHasInstance=Function.prototype[Symbol.hasInstance],Object.defineProperty(Writable,Symbol.hasInstance,{value:function(object){return realHasInstance.call(this,object)?!0:this!==Writable?!1:object&&object._writableState instanceof WritableState}})):realHasInstance=function(object){return object instanceof this};function Writable(options){Duplex=Duplex||require_stream_duplex();var isDuplex=this instanceof Duplex;if(!isDuplex&&!realHasInstance.call(Writable,this))return new Writable(options);this._writableState=new WritableState(options,this,isDuplex),this.writable=!0,options&&(typeof options.write=="function"&&(this._write=options.write),typeof options.writev=="function"&&(this._writev=options.writev),typeof options.destroy=="function"&&(this._destroy=options.destroy),typeof options.final=="function"&&(this._final=options.final)),Stream.call(this)}Writable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE)};function writeAfterEnd(stream,cb){var er=new ERR_STREAM_WRITE_AFTER_END;errorOrDestroy(stream,er),process.nextTick(cb,er)}function validChunk(stream,state,chunk,cb){var er;return chunk===null?er=new ERR_STREAM_NULL_VALUES:typeof chunk!="string"&&!state.objectMode&&(er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer"],chunk)),er?(errorOrDestroy(stream,er),process.nextTick(cb,er),!1):!0}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1,isBuf=!state.objectMode&&_isUint8Array(chunk);return isBuf&&!Buffer2.isBuffer(chunk)&&(chunk=_uint8ArrayToBuffer(chunk)),typeof encoding=="function"&&(cb=encoding,encoding=null),isBuf?encoding="buffer":encoding||(encoding=state.defaultEncoding),typeof cb!="function"&&(cb=nop),state.ending?writeAfterEnd(this,cb):(isBuf||validChunk(this,state,chunk,cb))&&(state.pendingcb++,ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb)),ret};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var state=this._writableState;state.corked&&(state.corked--,!state.writing&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest&&clearBuffer(this,state))};Writable.prototype.setDefaultEncoding=function(encoding){if(typeof encoding=="string"&&(encoding=encoding.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new ERR_UNKNOWN_ENCODING(encoding);return this._writableState.defaultEncoding=encoding,this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(state,chunk,encoding){return!state.objectMode&&state.decodeStrings!==!1&&typeof chunk=="string"&&(chunk=Buffer2.from(chunk,encoding)),chunk}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);chunk!==newChunk&&(isBuf=!0,encoding="buffer",chunk=newChunk)}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(ret||(state.needDrain=!0),state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk,encoding,isBuf,callback:cb,next:null},last?last.next=state.lastBufferedRequest:state.bufferedRequest=state.lastBufferedRequest,state.bufferedRequestCount+=1}else doWrite(stream,state,!1,len,chunk,encoding,cb);return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,state.destroyed?state.onwrite(new ERR_STREAM_DESTROYED("write")):writev?stream._writev(chunk,state.onwrite):stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){--state.pendingcb,sync?(process.nextTick(cb,er),process.nextTick(finishMaybe,stream,state),stream._writableState.errorEmitted=!0,errorOrDestroy(stream,er)):(cb(er),stream._writableState.errorEmitted=!0,errorOrDestroy(stream,er),finishMaybe(stream,state))}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(typeof cb!="function")throw new ERR_MULTIPLE_CALLBACK;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state)||stream.destroyed;!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest&&clearBuffer(stream,state),sync?process.nextTick(afterWrite,stream,state,finished,cb):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),state.pendingcb--,cb(),finishMaybe(stream,state)}function onwriteDrain(stream,state){state.length===0&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){state.bufferProcessing=!0;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l=state.bufferedRequestCount,buffer=new Array(l),holder=state.corkedRequestsFree;holder.entry=entry;for(var count=0,allBuffers=!0;entry;)buffer[count]=entry,entry.isBuf||(allBuffers=!1),entry=entry.next,count+=1;buffer.allBuffers=allBuffers,doWrite(stream,state,!0,state.length,buffer,"",holder.finish),state.pendingcb++,state.lastBufferedRequest=null,holder.next?(state.corkedRequestsFree=holder.next,holder.next=null):state.corkedRequestsFree=new CorkedRequest(state),state.bufferedRequestCount=0}else{for(;entry;){var chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,!1,len,chunk,encoding,cb),entry=entry.next,state.bufferedRequestCount--,state.writing)break}entry===null&&(state.lastBufferedRequest=null)}state.bufferedRequest=entry,state.bufferProcessing=!1}Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"))};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;return typeof chunk=="function"?(cb=chunk,chunk=null,encoding=null):typeof encoding=="function"&&(cb=encoding,encoding=null),chunk!=null&&this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||endWritable(this,state,cb),this};Object.defineProperty(Writable.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing}function callFinal(stream,state){stream._final(function(err){state.pendingcb--,err&&errorOrDestroy(stream,err),state.prefinished=!0,stream.emit("prefinish"),finishMaybe(stream,state)})}function prefinish(stream,state){!state.prefinished&&!state.finalCalled&&(typeof stream._final=="function"&&!state.destroyed?(state.pendingcb++,state.finalCalled=!0,process.nextTick(callFinal,stream,state)):(state.prefinished=!0,stream.emit("prefinish")))}function finishMaybe(stream,state){var need=needFinish(state);if(need&&(prefinish(stream,state),state.pendingcb===0&&(state.finished=!0,stream.emit("finish"),state.autoDestroy))){var rState=stream._readableState;(!rState||rState.autoDestroy&&rState.endEmitted)&&stream.destroy()}return need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb)),state.ended=!0,stream.writable=!1}function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;for(corkReq.entry=null;entry;){var cb=entry.callback;state.pendingcb--,cb(err),entry=entry.next}state.corkedRequestsFree.next=corkReq}Object.defineProperty(Writable.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(value){this._writableState&&(this._writableState.destroyed=value)}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err)}}});var require_stream_duplex=__commonJS({"node_modules/readable-stream/lib/_stream_duplex.js"(exports2,module2){"use strict";var objectKeys=Object.keys||function(obj){var keys2=[];for(var key in obj)keys2.push(key);return keys2};module2.exports=Duplex;var Readable=require_stream_readable(),Writable=require_stream_writable();require_inherits()(Duplex,Readable);for(keys=objectKeys(Writable.prototype),v=0;v<keys.length;v++)method=keys[v],Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method]);var keys,method,v;function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options),Writable.call(this,options),this.allowHalfOpen=!0,options&&(options.readable===!1&&(this.readable=!1),options.writable===!1&&(this.writable=!1),options.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",onend)))}Object.defineProperty(Duplex.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(Duplex.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(Duplex.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function onend(){this._writableState.ended||process.nextTick(onEndNT,this)}function onEndNT(self2){self2.end()}Object.defineProperty(Duplex.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(value){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=value,this._writableState.destroyed=value)}})}});var require_string_decoder=__commonJS({"node_modules/string_decoder/lib/string_decoder.js"(exports2){"use strict";var Buffer2=require_safe_buffer().Buffer,isEncoding=Buffer2.isEncoding||function(encoding){switch(encoding=""+encoding,encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function _normalizeEncoding(enc){if(!enc)return"utf8";for(var retried;;)switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase(),retried=!0}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!="string"&&(Buffer2.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}exports2.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text,this.end=utf16End,nb=4;break;case"utf8":this.fillLast=utf8FillLast,nb=4;break;case"base64":this.text=base64Text,this.end=base64End,nb=3;break;default:this.write=simpleWrite,this.end=simpleEnd;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer2.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return"";var r,i;if(this.lastNeed){if(r=this.fillLast(buf),r===void 0)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<buf.length?r?r+this.text(buf,i):this.text(buf,i):r||""};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length),this.lastNeed-=buf.length};function utf8CheckByte(byte){return byte<=127?0:byte>>5===6?2:byte>>4===14?3:byte>>3===30?4:byte>>6===2?-1:-2}function utf8CheckIncomplete(self2,buf,i){var j=buf.length-1;if(j<i)return 0;var nb=utf8CheckByte(buf[j]);return nb>=0?(nb>0&&(self2.lastNeed=nb-1),nb):--j<i||nb===-2?0:(nb=utf8CheckByte(buf[j]),nb>=0?(nb>0&&(self2.lastNeed=nb-2),nb):--j<i||nb===-2?0:(nb=utf8CheckByte(buf[j]),nb>=0?(nb>0&&(nb===2?nb=0:self2.lastNeed=nb-3),nb):0))}function utf8CheckExtraBytes(self2,buf,p){if((buf[0]&192)!==128)return self2.lastNeed=0,"\uFFFD";if(self2.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128)return self2.lastNeed=1,"\uFFFD";if(self2.lastNeed>2&&buf.length>2&&(buf[2]&192)!==128)return self2.lastNeed=2,"\uFFFD"}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=utf8CheckExtraBytes(this,buf,p);if(r!==void 0)return r;if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,p,0,buf.length),this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+"\uFFFD":r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;return n===0?buf.toString("base64",i):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=buf[buf.length-1]:(this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1]),buf.toString("base64",i,buf.length-n))}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+this.lastChar.toString("base64",0,3-this.lastNeed):r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}}});var require_end_of_stream=__commonJS({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports2,module2){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require_errors3().codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=!1;return function(){if(!called){called=!0;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];callback.apply(this,args)}}}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort=="function"}function eos(stream,opts,callback){if(typeof opts=="function")return eos(stream,null,opts);opts||(opts={}),callback=once(callback||noop);var readable=opts.readable||opts.readable!==!1&&stream.readable,writable=opts.writable||opts.writable!==!1&&stream.writable,onlegacyfinish=function(){stream.writable||onfinish()},writableEnded=stream._writableState&&stream._writableState.finished,onfinish=function(){writable=!1,writableEnded=!0,readable||callback.call(stream)},readableEnded=stream._readableState&&stream._readableState.endEmitted,onend=function(){readable=!1,readableEnded=!0,writable||callback.call(stream)},onerror=function(err){callback.call(stream,err)},onclose=function(){var err;if(readable&&!readableEnded)return(!stream._readableState||!stream._readableState.ended)&&(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err);if(writable&&!writableEnded)return(!stream._writableState||!stream._writableState.ended)&&(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)},onrequest=function(){stream.req.on("finish",onfinish)};return isRequest(stream)?(stream.on("complete",onfinish),stream.on("abort",onclose),stream.req?onrequest():stream.on("request",onrequest)):writable&&!stream._writableState&&(stream.on("end",onlegacyfinish),stream.on("close",onlegacyfinish)),stream.on("end",onend),stream.on("finish",onfinish),opts.error!==!1&&stream.on("error",onerror),stream.on("close",onclose),function(){stream.removeListener("complete",onfinish),stream.removeListener("abort",onclose),stream.removeListener("request",onrequest),stream.req&&stream.req.removeListener("finish",onfinish),stream.removeListener("end",onlegacyfinish),stream.removeListener("close",onlegacyfinish),stream.removeListener("finish",onfinish),stream.removeListener("end",onend),stream.removeListener("error",onerror),stream.removeListener("close",onclose)}}module2.exports=eos}});var require_async_iterator=__commonJS({"node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports2,module2){"use strict";var _Object$setPrototypeO;function _defineProperty(obj,key,value){return key=_toPropertyKey(key),key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key=="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var finished=require_end_of_stream(),kLastResolve=Symbol("lastResolve"),kLastReject=Symbol("lastReject"),kError=Symbol("error"),kEnded=Symbol("ended"),kLastPromise=Symbol("lastPromise"),kHandlePromise=Symbol("handlePromise"),kStream=Symbol("stream");function createIterResult(value,done){return{value,done}}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();data!==null&&(iter[kLastPromise]=null,iter[kLastResolve]=null,iter[kLastReject]=null,resolve(createIterResult(data,!1)))}}function onReadable(iter){process.nextTick(readAndResolve,iter)}function wrapForNext(lastPromise,iter){return function(resolve,reject){lastPromise.then(function(){if(iter[kEnded]){resolve(createIterResult(void 0,!0));return}iter[kHandlePromise](resolve,reject)},reject)}}var AsyncIteratorPrototype=Object.getPrototypeOf(function(){}),ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_Object$setPrototypeO={get stream(){return this[kStream]},next:function(){var _this=this,error=this[kError];if(error!==null)return Promise.reject(error);if(this[kEnded])return Promise.resolve(createIterResult(void 0,!0));if(this[kStream].destroyed)return new Promise(function(resolve,reject){process.nextTick(function(){_this[kError]?reject(_this[kError]):resolve(createIterResult(void 0,!0))})});var lastPromise=this[kLastPromise],promise;if(lastPromise)promise=new Promise(wrapForNext(lastPromise,this));else{var data=this[kStream].read();if(data!==null)return Promise.resolve(createIterResult(data,!1));promise=new Promise(this[kHandlePromise])}return this[kLastPromise]=promise,promise}},_defineProperty(_Object$setPrototypeO,Symbol.asyncIterator,function(){return this}),_defineProperty(_Object$setPrototypeO,"return",function(){var _this2=this;return new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return}resolve(createIterResult(void 0,!0))})})}),_Object$setPrototypeO),AsyncIteratorPrototype),createReadableStreamAsyncIterator=function(stream){var _Object$create,iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:!0}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:!0}),_defineProperty(_Object$create,kLastReject,{value:null,writable:!0}),_defineProperty(_Object$create,kError,{value:null,writable:!0}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:!0}),_defineProperty(_Object$create,kHandlePromise,{value:function(resolve,reject){var data=iterator[kStream].read();data?(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(data,!1))):(iterator[kLastResolve]=resolve,iterator[kLastReject]=reject)},writable:!0}),_Object$create));return iterator[kLastPromise]=null,finished(stream,function(err){if(err&&err.code!=="ERR_STREAM_PREMATURE_CLOSE"){var reject=iterator[kLastReject];reject!==null&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,reject(err)),iterator[kError]=err;return}var resolve=iterator[kLastResolve];resolve!==null&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(void 0,!0))),iterator[kEnded]=!0}),stream.on("readable",onReadable.bind(null,iterator)),iterator};module2.exports=createReadableStreamAsyncIterator}});var require_from=__commonJS({"node_modules/readable-stream/lib/internal/streams/from.js"(exports2,module2){"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self2=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self2,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})}}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _defineProperty(obj,key,value){return key=_toPropertyKey(key),key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key=="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var ERR_INVALID_ARG_TYPE=require_errors3().codes.ERR_INVALID_ARG_TYPE;function from(Readable,iterable,opts){var iterator;if(iterable&&typeof iterable.next=="function")iterator=iterable;else if(iterable&&iterable[Symbol.asyncIterator])iterator=iterable[Symbol.asyncIterator]();else if(iterable&&iterable[Symbol.iterator])iterator=iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE("iterable",["Iterable"],iterable);var readable=new Readable(_objectSpread({objectMode:!0},opts)),reading=!1;readable._read=function(){reading||(reading=!0,next())};function next(){return _next2.apply(this,arguments)}function _next2(){return _next2=_asyncToGenerator(function*(){try{var _yield$iterator$next=yield iterator.next(),value=_yield$iterator$next.value,done=_yield$iterator$next.done;done?readable.push(null):readable.push(yield value)?next():reading=!1}catch(err){readable.destroy(err)}}),_next2.apply(this,arguments)}return readable}module2.exports=from}});var require_stream_readable=__commonJS({"node_modules/readable-stream/lib/_stream_readable.js"(exports2,module2){"use strict";module2.exports=Readable;var Duplex;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter,EElistenerCount=function(emitter,type){return emitter.listeners(type).length},Stream=require_stream3(),Buffer2=require("buffer").Buffer,OurUint8Array=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer2.from(chunk)}function _isUint8Array(obj){return Buffer2.isBuffer(obj)||obj instanceof OurUint8Array}var debugUtil=require("util"),debug;debugUtil&&debugUtil.debuglog?debug=debugUtil.debuglog("stream"):debug=function(){};var BufferList=require_buffer_list(),destroyImpl=require_destroy2(),_require=require_state(),getHighWaterMark=_require.getHighWaterMark,_require$codes=require_errors3().codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_STREAM_PUSH_AFTER_EOF=_require$codes.ERR_STREAM_PUSH_AFTER_EOF,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_STREAM_UNSHIFT_AFTER_END_EVENT=_require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,StringDecoder,createReadableStreamAsyncIterator,from;require_inherits()(Readable,Stream);var errorOrDestroy=destroyImpl.errorOrDestroy,kProxyEvents=["error","close","destroy","pause","resume"];function prependListener(emitter,event,fn){if(typeof emitter.prependListener=="function")return emitter.prependListener(event,fn);!emitter._events||!emitter._events[event]?emitter.on(event,fn):Array.isArray(emitter._events[event])?emitter._events[event].unshift(fn):emitter._events[event]=[fn,emitter._events[event]]}function ReadableState(options,stream,isDuplex){Duplex=Duplex||require_stream_duplex(),options=options||{},typeof isDuplex!="boolean"&&(isDuplex=stream instanceof Duplex),this.objectMode=!!options.objectMode,isDuplex&&(this.objectMode=this.objectMode||!!options.readableObjectMode),this.highWaterMark=getHighWaterMark(this,options,"readableHighWaterMark",isDuplex),this.buffer=new BufferList,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=options.emitClose!==!1,this.autoDestroy=!!options.autoDestroy,this.destroyed=!1,this.defaultEncoding=options.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require_string_decoder().StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){if(Duplex=Duplex||require_stream_duplex(),!(this instanceof Readable))return new Readable(options);var isDuplex=this instanceof Duplex;this._readableState=new ReadableState(options,this,isDuplex),this.readable=!0,options&&(typeof options.read=="function"&&(this._read=options.read),typeof options.destroy=="function"&&(this._destroy=options.destroy)),Stream.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(value){this._readableState&&(this._readableState.destroyed=value)}});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err)};Readable.prototype.push=function(chunk,encoding){var state=this._readableState,skipChunkCheck;return state.objectMode?skipChunkCheck=!0:typeof chunk=="string"&&(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=Buffer2.from(chunk,encoding),encoding=""),skipChunkCheck=!0),readableAddChunk(this,chunk,encoding,!1,skipChunkCheck)};Readable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,!0,!1)};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){debug("readableAddChunk",chunk);var state=stream._readableState;if(chunk===null)state.reading=!1,onEofChunk(stream,state);else{var er;if(skipChunkCheck||(er=chunkInvalid(state,chunk)),er)errorOrDestroy(stream,er);else if(state.objectMode||chunk&&chunk.length>0)if(typeof chunk!="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer2.prototype&&(chunk=_uint8ArrayToBuffer(chunk)),addToFront)state.endEmitted?errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT):addChunk(stream,state,chunk,!0);else if(state.ended)errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF);else{if(state.destroyed)return!1;state.reading=!1,state.decoder&&!encoding?(chunk=state.decoder.write(chunk),state.objectMode||chunk.length!==0?addChunk(stream,state,chunk,!1):maybeReadMore(stream,state)):addChunk(stream,state,chunk,!1)}else addToFront||(state.reading=!1,maybeReadMore(stream,state))}return!state.ended&&(state.length<state.highWaterMark||state.length===0)}function addChunk(stream,state,chunk,addToFront){state.flowing&&state.length===0&&!state.sync?(state.awaitDrain=0,stream.emit("data",chunk)):(state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):state.buffer.push(chunk),state.needReadable&&emitReadable(stream)),maybeReadMore(stream,state)}function chunkInvalid(state,chunk){var er;return!_isUint8Array(chunk)&&typeof chunk!="string"&&chunk!==void 0&&!state.objectMode&&(er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer","Uint8Array"],chunk)),er}Readable.prototype.isPaused=function(){return this._readableState.flowing===!1};Readable.prototype.setEncoding=function(enc){StringDecoder||(StringDecoder=require_string_decoder().StringDecoder);var decoder=new StringDecoder(enc);this._readableState.decoder=decoder,this._readableState.encoding=this._readableState.decoder.encoding;for(var p=this._readableState.buffer.head,content="";p!==null;)content+=decoder.write(p.data),p=p.next;return this._readableState.buffer.clear(),content!==""&&this._readableState.buffer.push(content),this._readableState.length=content.length,this};var MAX_HWM=1073741824;function computeNewHighWaterMark(n){return n>=MAX_HWM?n=MAX_HWM:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function howMuchToRead(n,state){return n<=0||state.length===0&&state.ended?0:state.objectMode?1:n!==n?state.flowing&&state.length?state.buffer.head.data.length:state.length:(n>state.highWaterMark&&(state.highWaterMark=computeNewHighWaterMark(n)),n<=state.length?n:state.ended?state.length:(state.needReadable=!0,0))}Readable.prototype.read=function(n){debug("read",n),n=parseInt(n,10);var state=this._readableState,nOrig=n;if(n!==0&&(state.emittedReadable=!1),n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended))return debug("read: emitReadable",state.length,state.ended),state.length===0&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),n===0&&state.ended)return state.length===0&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(state.length===0||state.length-n<state.highWaterMark)&&(doRead=!0,debug("length less than watermark",doRead)),state.ended||state.reading?(doRead=!1,debug("reading or ended",doRead)):doRead&&(debug("do read"),state.reading=!0,state.sync=!0,state.length===0&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1,state.reading||(n=howMuchToRead(nOrig,state)));var ret;return n>0?ret=fromList(n,state):ret=null,ret===null?(state.needReadable=state.length<=state.highWaterMark,n=0):(state.length-=n,state.awaitDrain=0),state.length===0&&(state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&endReadable(this)),ret!==null&&this.emit("data",ret),ret};function onEofChunk(stream,state){if(debug("onEofChunk"),!state.ended){if(state.decoder){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,state.sync?emitReadable(stream):(state.needReadable=!1,state.emittedReadable||(state.emittedReadable=!0,emitReadable_(stream)))}}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable),state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream))}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended),!state.destroyed&&(state.length||state.ended)&&(stream.emit("readable"),state.emittedReadable=!1),state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(;!state.reading&&!state.ended&&(state.length<state.highWaterMark||state.flowing&&state.length===0);){var len=state.length;if(debug("maybeReadMore read 0"),stream.read(0),len===state.length)break}state.readingMore=!1}Readable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED("_read()"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:unpipe;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);function onunpipe(readable,unpipeInfo){debug("onunpipe"),readable===src&&unpipeInfo&&unpipeInfo.hasUnpiped===!1&&(unpipeInfo.hasUnpiped=!0,cleanup())}function onend(){debug("onend"),dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=!1;function cleanup(){debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",unpipe),src.removeListener("data",ondata),cleanedUp=!0,state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain)&&ondrain()}src.on("data",ondata);function ondata(chunk){debug("ondata");var ret=dest.write(chunk);debug("dest.write",ret),ret===!1&&((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp&&(debug("false write response, pause",state.awaitDrain),state.awaitDrain++),src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),EElistenerCount(dest,"error")===0&&errorOrDestroy(dest,er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish),unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe"),src.unpipe(dest)}return dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest};function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,state.awaitDrain===0&&EElistenerCount(src,"data")&&(state.flowing=!0,flow(src))}}Readable.prototype.unpipe=function(dest){var state=this._readableState,unpipeInfo={hasUnpiped:!1};if(state.pipesCount===0)return this;if(state.pipesCount===1)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this,unpipeInfo),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;i<len;i++)dests[i].emit("unpipe",this,{hasUnpiped:!1});return this}var index=indexOf(state.pipes,dest);return index===-1?this:(state.pipes.splice(index,1),state.pipesCount-=1,state.pipesCount===1&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this,unpipeInfo),this)};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn),state=this._readableState;return ev==="data"?(state.readableListening=this.listenerCount("readable")>0,state.flowing!==!1&&this.resume()):ev==="readable"&&!state.endEmitted&&!state.readableListening&&(state.readableListening=state.needReadable=!0,state.flowing=!1,state.emittedReadable=!1,debug("on readable",state.length,state.reading),state.length?emitReadable(this):state.reading||process.nextTick(nReadingNextTick,this)),res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);return ev==="readable"&&process.nextTick(updateReadableListening,this),res};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);return(ev==="readable"||ev===void 0)&&process.nextTick(updateReadableListening,this),res};function updateReadableListening(self2){var state=self2._readableState;state.readableListening=self2.listenerCount("readable")>0,state.resumeScheduled&&!state.paused?state.flowing=!0:self2.listenerCount("data")>0&&self2.resume()}function nReadingNextTick(self2){debug("readable nexttick read 0"),self2.read(0)}Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!state.readableListening,resume(this,state)),state.paused=!1,this};function resume(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,process.nextTick(resume_,stream,state))}function resume_(stream,state){debug("resume",state.reading),state.reading||stream.read(0),state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function flow(stream){var state=stream._readableState;for(debug("flow",state.flowing);state.flowing&&stream.read()!==null;);}Readable.prototype.wrap=function(stream){var _this=this,state=this._readableState,paused=!1;stream.on("end",function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&_this.push(chunk)}_this.push(null)}),stream.on("data",function(chunk){if(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),!(state.objectMode&&chunk==null)&&!(!state.objectMode&&(!chunk||!chunk.length))){var ret=_this.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)this[i]===void 0&&typeof stream[i]=="function"&&(this[i]=(function(method){return function(){return stream[method].apply(stream,arguments)}})(i));for(var n=0;n<kProxyEvents.length;n++)stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]));return this._read=function(n2){debug("wrapped _read",n2),paused&&(paused=!1,stream.resume())},this};typeof Symbol=="function"&&(Readable.prototype[Symbol.asyncIterator]=function(){return createReadableStreamAsyncIterator===void 0&&(createReadableStreamAsyncIterator=require_async_iterator()),createReadableStreamAsyncIterator(this)});Object.defineProperty(Readable.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Readable.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Readable.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(state){this._readableState&&(this._readableState.flowing=state)}});Readable._fromList=fromList;Object.defineProperty(Readable.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function fromList(n,state){if(state.length===0)return null;var ret;return state.objectMode?ret=state.buffer.shift():!n||n>=state.length?(state.decoder?ret=state.buffer.join(""):state.buffer.length===1?ret=state.buffer.first():ret=state.buffer.concat(state.length),state.buffer.clear()):ret=state.buffer.consume(n,state.decoder),ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted),state.endEmitted||(state.ended=!0,process.nextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){if(debug("endReadableNT",state.endEmitted,state.length),!state.endEmitted&&state.length===0&&(state.endEmitted=!0,stream.readable=!1,stream.emit("end"),state.autoDestroy)){var wState=stream._writableState;(!wState||wState.autoDestroy&&wState.finished)&&stream.destroy()}}typeof Symbol=="function"&&(Readable.from=function(iterable,opts){return from===void 0&&(from=require_from()),from(Readable,iterable,opts)});function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++)if(xs[i]===x)return i;return-1}}});var require_stream_transform=__commonJS({"node_modules/readable-stream/lib/_stream_transform.js"(exports2,module2){"use strict";module2.exports=Transform;var _require$codes=require_errors3().codes,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_TRANSFORM_ALREADY_TRANSFORMING=_require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,ERR_TRANSFORM_WITH_LENGTH_0=_require$codes.ERR_TRANSFORM_WITH_LENGTH_0,Duplex=require_stream_duplex();require_inherits()(Transform,Duplex);function afterTransform(er,data){var ts=this._transformState;ts.transforming=!1;var cb=ts.writecb;if(cb===null)return this.emit("error",new ERR_MULTIPLE_CALLBACK);ts.writechunk=null,ts.writecb=null,data!=null&&this.push(data),cb(er);var rs=this._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options),this._transformState={afterTransform:afterTransform.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,options&&(typeof options.transform=="function"&&(this._transform=options.transform),typeof options.flush=="function"&&(this._flush=options.flush)),this.on("prefinish",prefinish)}function prefinish(){var _this=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(er,data){done(_this,er,data)}):done(this,null,null)}Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"))};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;ts.writechunk!==null&&!ts.transforming?(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)):ts.needTransform=!0};Transform.prototype._destroy=function(err,cb){Duplex.prototype._destroy.call(this,err,function(err2){cb(err2)})};function done(stream,er,data){if(er)return stream.emit("error",er);if(data!=null&&stream.push(data),stream._writableState.length)throw new ERR_TRANSFORM_WITH_LENGTH_0;if(stream._transformState.transforming)throw new ERR_TRANSFORM_ALREADY_TRANSFORMING;return stream.push(null)}}});var require_stream_passthrough=__commonJS({"node_modules/readable-stream/lib/_stream_passthrough.js"(exports2,module2){"use strict";module2.exports=PassThrough;var Transform=require_stream_transform();require_inherits()(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}}});var require_pipeline=__commonJS({"node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports2,module2){"use strict";var eos;function once(callback){var called=!1;return function(){called||(called=!0,callback.apply(void 0,arguments))}}var _require$codes=require_errors3().codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function isRequest(stream){return stream.setHeader&&typeof stream.abort=="function"}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=!1;stream.on("close",function(){closed=!0}),eos===void 0&&(eos=require_end_of_stream()),eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=!0,callback()});var destroyed=!1;return function(err){if(!closed&&!destroyed){if(destroyed=!0,isRequest(stream))return stream.abort();if(typeof stream.destroy=="function")return stream.destroy();callback(err||new ERR_STREAM_DESTROYED("pipe"))}}}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}function popCallback(streams){return!streams.length||typeof streams[streams.length-1]!="function"?noop:streams.pop()}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++)streams[_key]=arguments[_key];var callback=popCallback(streams);if(Array.isArray(streams[0])&&(streams=streams[0]),streams.length<2)throw new ERR_MISSING_ARGS("streams");var error,destroys=streams.map(function(stream,i){var reading=i<streams.length-1,writing=i>0;return destroyer(stream,reading,writing,function(err){error||(error=err),err&&destroys.forEach(call),!reading&&(destroys.forEach(call),callback(error))})});return streams.reduce(pipe)}module2.exports=pipeline}});var require_readable=__commonJS({"node_modules/readable-stream/readable.js"(exports2,module2){var Stream=require("stream");process.env.READABLE_STREAM==="disable"&&Stream?(module2.exports=Stream.Readable,Object.assign(module2.exports,Stream),module2.exports.Stream=Stream):(exports2=module2.exports=require_stream_readable(),exports2.Stream=Stream||exports2,exports2.Readable=exports2,exports2.Writable=require_stream_writable(),exports2.Duplex=require_stream_duplex(),exports2.Transform=require_stream_transform(),exports2.PassThrough=require_stream_passthrough(),exports2.finished=require_end_of_stream(),exports2.pipeline=require_pipeline())}});var require_buffer_from=__commonJS({"node_modules/buffer-from/index.js"(exports2,module2){var toString=Object.prototype.toString,isModern=typeof Buffer<"u"&&typeof Buffer.alloc=="function"&&typeof Buffer.allocUnsafe=="function"&&typeof Buffer.from=="function";function isArrayBuffer(input){return toString.call(input).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(obj,byteOffset,length){byteOffset>>>=0;var maxLength=obj.byteLength-byteOffset;if(maxLength<0)throw new RangeError("'offset' is out of bounds");if(length===void 0)length=maxLength;else if(length>>>=0,length>maxLength)throw new RangeError("'length' is out of bounds");return isModern?Buffer.from(obj.slice(byteOffset,byteOffset+length)):new Buffer(new Uint8Array(obj.slice(byteOffset,byteOffset+length)))}function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer.isEncoding(encoding))throw new TypeError('"encoding" must be a valid string encoding');return isModern?Buffer.from(string,encoding):new Buffer(string,encoding)}function bufferFrom(value,encodingOrOffset,length){if(typeof value=="number")throw new TypeError('"value" argument must not be a number');return isArrayBuffer(value)?fromArrayBuffer(value,encodingOrOffset,length):typeof value=="string"?fromString(value,encodingOrOffset):isModern?Buffer.from(value):new Buffer(value)}module2.exports=bufferFrom}});var require_typedarray=__commonJS({"node_modules/typedarray/index.js"(exports2){var undefined2=void 0,MAX_ARRAY_LENGTH=1e5,ECMAScript=(function(){var opts=Object.prototype.toString,ophop=Object.prototype.hasOwnProperty;return{Class:function(v){return opts.call(v).replace(/^\[object *|\]$/g,"")},HasProperty:function(o,p){return p in o},HasOwnProperty:function(o,p){return ophop.call(o,p)},IsCallable:function(o){return typeof o=="function"},ToInt32:function(v){return v>>0},ToUint32:function(v){return v>>>0}}})(),LN2=Math.LN2,abs=Math.abs,floor=Math.floor,log=Math.log,min=Math.min,pow=Math.pow,round=Math.round;function configureProperties(obj){if(getOwnPropNames&&defineProp){var props=getOwnPropNames(obj),i;for(i=0;i<props.length;i+=1)defineProp(obj,props[i],{value:obj[props[i]],writable:!1,enumerable:!1,configurable:!1})}}var defineProp;Object.defineProperty&&(function(){try{return Object.defineProperty({},"x",{}),!0}catch{return!1}})()?defineProp=Object.defineProperty:defineProp=function(o,p,desc){if(!o===Object(o))throw new TypeError("Object.defineProperty called on non-object");return ECMAScript.HasProperty(desc,"get")&&Object.prototype.__defineGetter__&&Object.prototype.__defineGetter__.call(o,p,desc.get),ECMAScript.HasProperty(desc,"set")&&Object.prototype.__defineSetter__&&Object.prototype.__defineSetter__.call(o,p,desc.set),ECMAScript.HasProperty(desc,"value")&&(o[p]=desc.value),o};var getOwnPropNames=Object.getOwnPropertyNames||function(o){if(o!==Object(o))throw new TypeError("Object.getOwnPropertyNames called on non-object");var props=[],p;for(p in o)ECMAScript.HasOwnProperty(o,p)&&props.push(p);return props};function makeArrayAccessors(obj){if(!defineProp)return;if(obj.length>MAX_ARRAY_LENGTH)throw new RangeError("Array too large for polyfill");function makeArrayAccessor(index){defineProp(obj,index,{get:function(){return obj._getter(index)},set:function(v){obj._setter(index,v)},enumerable:!0,configurable:!1})}var i;for(i=0;i<obj.length;i+=1)makeArrayAccessor(i)}function as_signed(value,bits){var s=32-bits;return value<<s>>s}function as_unsigned(value,bits){var s=32-bits;return value<<s>>>s}function packI8(n){return[n&255]}function unpackI8(bytes){return as_signed(bytes[0],8)}function packU8(n){return[n&255]}function unpackU8(bytes){return as_unsigned(bytes[0],8)}function packU8Clamped(n){return n=round(Number(n)),[n<0?0:n>255?255:n&255]}function packI16(n){return[n>>8&255,n&255]}function unpackI16(bytes){return as_signed(bytes[0]<<8|bytes[1],16)}function packU16(n){return[n>>8&255,n&255]}function unpackU16(bytes){return as_unsigned(bytes[0]<<8|bytes[1],16)}function packI32(n){return[n>>24&255,n>>16&255,n>>8&255,n&255]}function unpackI32(bytes){return as_signed(bytes[0]<<24|bytes[1]<<16|bytes[2]<<8|bytes[3],32)}function packU32(n){return[n>>24&255,n>>16&255,n>>8&255,n&255]}function unpackU32(bytes){return as_unsigned(bytes[0]<<24|bytes[1]<<16|bytes[2]<<8|bytes[3],32)}function packIEEE754(v,ebits,fbits){var bias=(1<<ebits-1)-1,s,e,f,ln,i,bits,str,bytes;function roundToEven(n){var w=floor(n),f2=n-w;return f2<.5?w:f2>.5||w%2?w+1:w}for(v!==v?(e=(1<<ebits)-1,f=pow(2,fbits-1),s=0):v===1/0||v===-1/0?(e=(1<<ebits)-1,f=0,s=v<0?1:0):v===0?(e=0,f=0,s=1/v===-1/0?1:0):(s=v<0,v=abs(v),v>=pow(2,1-bias)?(e=min(floor(log(v)/LN2),1023),f=roundToEven(v/pow(2,e)*pow(2,fbits)),f/pow(2,fbits)>=2&&(e=e+1,f=1),e>bias?(e=(1<<ebits)-1,f=0):(e=e+bias,f=f-pow(2,fbits))):(e=0,f=roundToEven(v/pow(2,1-bias-fbits)))),bits=[],i=fbits;i;i-=1)bits.push(f%2?1:0),f=floor(f/2);for(i=ebits;i;i-=1)bits.push(e%2?1:0),e=floor(e/2);for(bits.push(s?1:0),bits.reverse(),str=bits.join(""),bytes=[];str.length;)bytes.push(parseInt(str.substring(0,8),2)),str=str.substring(8);return bytes}function unpackIEEE754(bytes,ebits,fbits){var bits=[],i,j,b,str,bias,s,e,f;for(i=bytes.length;i;i-=1)for(b=bytes[i-1],j=8;j;j-=1)bits.push(b%2?1:0),b=b>>1;return bits.reverse(),str=bits.join(""),bias=(1<<ebits-1)-1,s=parseInt(str.substring(0,1),2)?-1:1,e=parseInt(str.substring(1,1+ebits),2),f=parseInt(str.substring(1+ebits),2),e===(1<<ebits)-1?f!==0?NaN:s*(1/0):e>0?s*pow(2,e-bias)*(1+f/pow(2,fbits)):f!==0?s*pow(2,-(bias-1))*(f/pow(2,fbits)):s<0?-0:0}function unpackF64(b){return unpackIEEE754(b,11,52)}function packF64(v){return packIEEE754(v,11,52)}function unpackF32(b){return unpackIEEE754(b,8,23)}function packF32(v){return packIEEE754(v,8,23)}(function(){var ArrayBuffer2=function(length){if(length=ECMAScript.ToInt32(length),length<0)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=length,this._bytes=[],this._bytes.length=length;var i;for(i=0;i<this.byteLength;i+=1)this._bytes[i]=0;configureProperties(this)};exports2.ArrayBuffer=exports2.ArrayBuffer||ArrayBuffer2;var ArrayBufferView=function(){};function makeConstructor(bytesPerElement,pack,unpack){var ctor;return ctor=function(buffer,byteOffset,length){var array,sequence,i,s;if(!arguments.length||typeof arguments[0]=="number"){if(this.length=ECMAScript.ToInt32(arguments[0]),length<0)throw new RangeError("ArrayBufferView size is not a small enough positive integer");this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new ArrayBuffer2(this.byteLength),this.byteOffset=0}else if(typeof arguments[0]=="object"&&arguments[0].constructor===ctor)for(array=arguments[0],this.length=array.length,this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new ArrayBuffer2(this.byteLength),this.byteOffset=0,i=0;i<this.length;i+=1)this._setter(i,array._getter(i));else if(typeof arguments[0]=="object"&&!(arguments[0]instanceof ArrayBuffer2||ECMAScript.Class(arguments[0])==="ArrayBuffer"))for(sequence=arguments[0],this.length=ECMAScript.ToUint32(sequence.length),this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new ArrayBuffer2(this.byteLength),this.byteOffset=0,i=0;i<this.length;i+=1)s=sequence[i],this._setter(i,Number(s));else if(typeof arguments[0]=="object"&&(arguments[0]instanceof ArrayBuffer2||ECMAScript.Class(arguments[0])==="ArrayBuffer")){if(this.buffer=buffer,this.byteOffset=ECMAScript.ToUint32(byteOffset),this.byteOffset>this.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteOffset%this.BYTES_PER_ELEMENT)throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");if(arguments.length<3){if(this.byteLength=this.buffer.byteLength-this.byteOffset,this.byteLength%this.BYTES_PER_ELEMENT)throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");this.length=this.byteLength/this.BYTES_PER_ELEMENT}else this.length=ECMAScript.ToUint32(length),this.byteLength=this.length*this.BYTES_PER_ELEMENT;if(this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}else throw new TypeError("Unexpected argument type(s)");this.constructor=ctor,configureProperties(this),makeArrayAccessors(this)},ctor.prototype=new ArrayBufferView,ctor.prototype.BYTES_PER_ELEMENT=bytesPerElement,ctor.prototype._pack=pack,ctor.prototype._unpack=unpack,ctor.BYTES_PER_ELEMENT=bytesPerElement,ctor.prototype._getter=function(index){if(arguments.length<1)throw new SyntaxError("Not enough arguments");if(index=ECMAScript.ToUint32(index),index>=this.length)return undefined2;var bytes=[],i,o;for(i=0,o=this.byteOffset+index*this.BYTES_PER_ELEMENT;i<this.BYTES_PER_ELEMENT;i+=1,o+=1)bytes.push(this.buffer._bytes[o]);return this._unpack(bytes)},ctor.prototype.get=ctor.prototype._getter,ctor.prototype._setter=function(index,value){if(arguments.length<2)throw new SyntaxError("Not enough arguments");if(index=ECMAScript.ToUint32(index),index>=this.length)return undefined2;var bytes=this._pack(value),i,o;for(i=0,o=this.byteOffset+index*this.BYTES_PER_ELEMENT;i<this.BYTES_PER_ELEMENT;i+=1,o+=1)this.buffer._bytes[o]=bytes[i]},ctor.prototype.set=function(index,value){if(arguments.length<1)throw new SyntaxError("Not enough arguments");var array,sequence,offset,len,i,s,d,byteOffset,byteLength,tmp;if(typeof arguments[0]=="object"&&arguments[0].constructor===this.constructor){if(array=arguments[0],offset=ECMAScript.ToUint32(arguments[1]),offset+array.length>this.length)throw new RangeError("Offset plus length of array is out of range");if(byteOffset=this.byteOffset+offset*this.BYTES_PER_ELEMENT,byteLength=array.length*this.BYTES_PER_ELEMENT,array.buffer===this.buffer){for(tmp=[],i=0,s=array.byteOffset;i<byteLength;i+=1,s+=1)tmp[i]=array.buffer._bytes[s];for(i=0,d=byteOffset;i<byteLength;i+=1,d+=1)this.buffer._bytes[d]=tmp[i]}else for(i=0,s=array.byteOffset,d=byteOffset;i<byteLength;i+=1,s+=1,d+=1)this.buffer._bytes[d]=array.buffer._bytes[s]}else if(typeof arguments[0]=="object"&&typeof arguments[0].length<"u"){if(sequence=arguments[0],len=ECMAScript.ToUint32(sequence.length),offset=ECMAScript.ToUint32(arguments[1]),offset+len>this.length)throw new RangeError("Offset plus length of array is out of range");for(i=0;i<len;i+=1)s=sequence[i],this._setter(offset+i,Number(s))}else throw new TypeError("Unexpected argument type(s)")},ctor.prototype.subarray=function(start,end){function clamp(v,min2,max){return v<min2?min2:v>max?max:v}start=ECMAScript.ToInt32(start),end=ECMAScript.ToInt32(end),arguments.length<1&&(start=0),arguments.length<2&&(end=this.length),start<0&&(start=this.length+start),end<0&&(end=this.length+end),start=clamp(start,0,this.length),end=clamp(end,0,this.length);var len=end-start;return len<0&&(len=0),new this.constructor(this.buffer,this.byteOffset+start*this.BYTES_PER_ELEMENT,len)},ctor}var Int8Array2=makeConstructor(1,packI8,unpackI8),Uint8Array2=makeConstructor(1,packU8,unpackU8),Uint8ClampedArray2=makeConstructor(1,packU8Clamped,unpackU8),Int16Array2=makeConstructor(2,packI16,unpackI16),Uint16Array2=makeConstructor(2,packU16,unpackU16),Int32Array2=makeConstructor(4,packI32,unpackI32),Uint32Array2=makeConstructor(4,packU32,unpackU32),Float32Array2=makeConstructor(4,packF32,unpackF32),Float64Array2=makeConstructor(8,packF64,unpackF64);exports2.Int8Array=exports2.Int8Array||Int8Array2,exports2.Uint8Array=exports2.Uint8Array||Uint8Array2,exports2.Uint8ClampedArray=exports2.Uint8ClampedArray||Uint8ClampedArray2,exports2.Int16Array=exports2.Int16Array||Int16Array2,exports2.Uint16Array=exports2.Uint16Array||Uint16Array2,exports2.Int32Array=exports2.Int32Array||Int32Array2,exports2.Uint32Array=exports2.Uint32Array||Uint32Array2,exports2.Float32Array=exports2.Float32Array||Float32Array2,exports2.Float64Array=exports2.Float64Array||Float64Array2})();(function(){function r(array,index){return ECMAScript.IsCallable(array.get)?array.get(index):array[index]}var IS_BIG_ENDIAN=(function(){var u16array=new exports2.Uint16Array([4660]),u8array=new exports2.Uint8Array(u16array.buffer);return r(u8array,0)===18})(),DataView2=function(buffer,byteOffset,byteLength){if(arguments.length===0)buffer=new exports2.ArrayBuffer(0);else if(!(buffer instanceof exports2.ArrayBuffer||ECMAScript.Class(buffer)==="ArrayBuffer"))throw new TypeError("TypeError");if(this.buffer=buffer||new exports2.ArrayBuffer(0),this.byteOffset=ECMAScript.ToUint32(byteOffset),this.byteOffset>this.buffer.byteLength)throw new RangeError("byteOffset out of range");if(arguments.length<3?this.byteLength=this.buffer.byteLength-this.byteOffset:this.byteLength=ECMAScript.ToUint32(byteLength),this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");configureProperties(this)};function makeGetter(arrayType){return function(byteOffset,littleEndian){if(byteOffset=ECMAScript.ToUint32(byteOffset),byteOffset+arrayType.BYTES_PER_ELEMENT>this.byteLength)throw new RangeError("Array index out of range");byteOffset+=this.byteOffset;var uint8Array=new exports2.Uint8Array(this.buffer,byteOffset,arrayType.BYTES_PER_ELEMENT),bytes=[],i;for(i=0;i<arrayType.BYTES_PER_ELEMENT;i+=1)bytes.push(r(uint8Array,i));return!!littleEndian==!!IS_BIG_ENDIAN&&bytes.reverse(),r(new arrayType(new exports2.Uint8Array(bytes).buffer),0)}}DataView2.prototype.getUint8=makeGetter(exports2.Uint8Array),DataView2.prototype.getInt8=makeGetter(exports2.Int8Array),DataView2.prototype.getUint16=makeGetter(exports2.Uint16Array),DataView2.prototype.getInt16=makeGetter(exports2.Int16Array),DataView2.prototype.getUint32=makeGetter(exports2.Uint32Array),DataView2.prototype.getInt32=makeGetter(exports2.Int32Array),DataView2.prototype.getFloat32=makeGetter(exports2.Float32Array),DataView2.prototype.getFloat64=makeGetter(exports2.Float64Array);function makeSetter(arrayType){return function(byteOffset,value,littleEndian){if(byteOffset=ECMAScript.ToUint32(byteOffset),byteOffset+arrayType.BYTES_PER_ELEMENT>this.byteLength)throw new RangeError("Array index out of range");var typeArray=new arrayType([value]),byteArray=new exports2.Uint8Array(typeArray.buffer),bytes=[],i,byteView;for(i=0;i<arrayType.BYTES_PER_ELEMENT;i+=1)bytes.push(r(byteArray,i));!!littleEndian==!!IS_BIG_ENDIAN&&bytes.reverse(),byteView=new exports2.Uint8Array(this.buffer,byteOffset,arrayType.BYTES_PER_ELEMENT),byteView.set(bytes)}}DataView2.prototype.setUint8=makeSetter(exports2.Uint8Array),DataView2.prototype.setInt8=makeSetter(exports2.Int8Array),DataView2.prototype.setUint16=makeSetter(exports2.Uint16Array),DataView2.prototype.setInt16=makeSetter(exports2.Int16Array),DataView2.prototype.setUint32=makeSetter(exports2.Uint32Array),DataView2.prototype.setInt32=makeSetter(exports2.Int32Array),DataView2.prototype.setFloat32=makeSetter(exports2.Float32Array),DataView2.prototype.setFloat64=makeSetter(exports2.Float64Array),exports2.DataView=exports2.DataView||DataView2})()}});var require_concat_stream=__commonJS({"node_modules/multer/node_modules/concat-stream/index.js"(exports2,module2){var Writable=require_readable().Writable,inherits=require_inherits(),bufferFrom=require_buffer_from();typeof Uint8Array>"u"?U8=require_typedarray().Uint8Array:U8=Uint8Array;var U8;function ConcatStream(opts,cb){if(!(this instanceof ConcatStream))return new ConcatStream(opts,cb);typeof opts=="function"&&(cb=opts,opts={}),opts||(opts={});var encoding=opts.encoding,shouldInferEncoding=!1;encoding?(encoding=String(encoding).toLowerCase(),(encoding==="u8"||encoding==="uint8")&&(encoding="uint8array")):shouldInferEncoding=!0,Writable.call(this,{objectMode:!0}),this.encoding=encoding,this.shouldInferEncoding=shouldInferEncoding,cb&&this.on("finish",function(){cb(this.getBody())}),this.body=[]}module2.exports=ConcatStream;inherits(ConcatStream,Writable);ConcatStream.prototype._write=function(chunk,enc,next){this.body.push(chunk),next()};ConcatStream.prototype.inferEncoding=function(buff){var firstBuffer=buff===void 0?this.body[0]:buff;return Buffer.isBuffer(firstBuffer)?"buffer":typeof Uint8Array<"u"&&firstBuffer instanceof Uint8Array?"uint8array":Array.isArray(firstBuffer)?"array":typeof firstBuffer=="string"?"string":Object.prototype.toString.call(firstBuffer)==="[object Object]"?"object":"buffer"};ConcatStream.prototype.getBody=function(){return!this.encoding&&this.body.length===0?[]:(this.shouldInferEncoding&&(this.encoding=this.inferEncoding()),this.encoding==="array"?arrayConcat(this.body):this.encoding==="string"?stringConcat(this.body):this.encoding==="buffer"?bufferConcat(this.body):this.encoding==="uint8array"?u8Concat(this.body):this.body)};function isArrayish(arr){return/Array\]$/.test(Object.prototype.toString.call(arr))}function isBufferish(p){return typeof p=="string"||isArrayish(p)||p&&typeof p.subarray=="function"}function stringConcat(parts){for(var strings=[],needsToString=!1,i=0;i<parts.length;i++){var p=parts[i];typeof p=="string"||Buffer.isBuffer(p)?strings.push(p):isBufferish(p)?strings.push(bufferFrom(p)):strings.push(bufferFrom(String(p)))}return Buffer.isBuffer(parts[0])?(strings=Buffer.concat(strings),strings=strings.toString("utf8")):strings=strings.join(""),strings}function bufferConcat(parts){for(var bufs=[],i=0;i<parts.length;i++){var p=parts[i];Buffer.isBuffer(p)?bufs.push(p):isBufferish(p)?bufs.push(bufferFrom(p)):bufs.push(bufferFrom(String(p)))}return Buffer.concat(bufs)}function arrayConcat(parts){for(var res=[],i=0;i<parts.length;i++)res.push.apply(res,parts[i]);return res}function u8Concat(parts){for(var len=0,i=0;i<parts.length;i++)typeof parts[i]=="string"&&(parts[i]=bufferFrom(parts[i])),len+=parts[i].length;for(var u8=new U8(len),i=0,offset=0;i<parts.length;i++)for(var part=parts[i],j=0;j<part.length;j++)u8[offset++]=part[j];return u8}}});var require_memory=__commonJS({"node_modules/multer/storage/memory.js"(exports2,module2){var concat=require_concat_stream();function MemoryStorage(opts){}MemoryStorage.prototype._handleFile=function(req,file,cb){file.stream.pipe(concat({encoding:"buffer"},function(data){cb(null,{buffer:data,size:data.length})}))};MemoryStorage.prototype._removeFile=function(req,file,cb){delete file.buffer,cb(null)};module2.exports=function(opts){return new MemoryStorage(opts)}}});var require_multer=__commonJS({"node_modules/multer/index.js"(exports2,module2){var makeMiddleware=require_make_middleware(),diskStorage=require_disk(),memoryStorage=require_memory(),MulterError=require_multer_error();function allowAll(req,file,cb){cb(null,!0)}function Multer(options){options.storage?this.storage=options.storage:options.dest?this.storage=diskStorage({destination:options.dest}):this.storage=memoryStorage(),this.limits=options.limits,this.preservePath=options.preservePath,this.defParamCharset=options.defParamCharset||"latin1",this.fileFilter=options.fileFilter||allowAll}Multer.prototype._makeMiddleware=function(fields,fileStrategy){function setup(){var fileFilter=this.fileFilter,filesLeft=Object.create(null);fields.forEach(function(field){typeof field.maxCount=="number"?filesLeft[field.name]=field.maxCount:filesLeft[field.name]=1/0});function wrappedFileFilter(req,file,cb){if((filesLeft[file.fieldname]||0)<=0)return cb(new MulterError("LIMIT_UNEXPECTED_FILE",file.fieldname));filesLeft[file.fieldname]-=1,fileFilter(req,file,cb)}return{limits:this.limits,preservePath:this.preservePath,defParamCharset:this.defParamCharset,storage:this.storage,fileFilter:wrappedFileFilter,fileStrategy}}return makeMiddleware(setup.bind(this))};Multer.prototype.single=function(name){return this._makeMiddleware([{name,maxCount:1}],"VALUE")};Multer.prototype.array=function(name,maxCount){return this._makeMiddleware([{name,maxCount}],"ARRAY")};Multer.prototype.fields=function(fields){return this._makeMiddleware(fields,"OBJECT")};Multer.prototype.none=function(){return this._makeMiddleware([],"NONE")};Multer.prototype.any=function(){function setup(){return{limits:this.limits,preservePath:this.preservePath,defParamCharset:this.defParamCharset,storage:this.storage,fileFilter:this.fileFilter,fileStrategy:"ARRAY"}}return makeMiddleware(setup.bind(this))};function multer(options){if(options===void 0)return new Multer({});if(typeof options=="object"&&options!==null)return new Multer(options);throw new TypeError("Expected object for argument options")}module2.exports=multer;module2.exports.diskStorage=diskStorage;module2.exports.memoryStorage=memoryStorage;module2.exports.MulterError=MulterError}});var require_ua_parser=__commonJS({"node_modules/ua-parser-js/src/main/ua-parser.js"(exports2,module2){(function(window2,undefined2){"use strict";var LIBVERSION="2.0.10",UA_MAX_LENGTH=500,USER_AGENT="user-agent",EMPTY="",UNKNOWN="?",TYPEOF={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},BROWSER="browser",CPU="cpu",DEVICE="device",ENGINE="engine",OS="os",RESULT="result",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",MAJOR="major",MODEL="model",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",XR="xr",EMBEDDED="embedded",FETCHER="fetcher",INAPP="inapp",BRANDS="brands",FORMFACTORS="formFactors",FULLVERLIST="fullVersionList",PLATFORM="platform",PLATFORMVER="platformVersion",BITNESS="bitness",CH="sec-ch-ua",CH_FULL_VER_LIST=CH+"-full-version-list",CH_ARCH=CH+"-arch",CH_BITNESS=CH+"-"+BITNESS,CH_FORM_FACTORS=CH+"-form-factors",CH_MOBILE=CH+"-"+MOBILE,CH_MODEL=CH+"-"+MODEL,CH_PLATFORM=CH+"-"+PLATFORM,CH_PLATFORM_VER=CH_PLATFORM+"-version",CH_ALL_VALUES=[BRANDS,FULLVERLIST,MOBILE,MODEL,PLATFORM,PLATFORMVER,ARCHITECTURE,FORMFACTORS,BITNESS],AMAZON="Amazon",APPLE="Apple",ASUS="ASUS",BLACKBERRY="BlackBerry",GOOGLE="Google",HUAWEI="Huawei",LENOVO="Lenovo",HONOR="Honor",LG="LG",MICROSOFT="Microsoft",MOTOROLA="Motorola",NVIDIA="Nvidia",ONEPLUS="OnePlus",OPPO="OPPO",SAMSUNG="Samsung",SHARP="Sharp",SONY="Sony",XIAOMI="Xiaomi",ZEBRA="Zebra",CHROME="Chrome",CHROMIUM="Chromium",CHROMECAST="Chromecast",EDGE="Edge",FIREFOX="Firefox",OPERA="Opera",FACEBOOK="Facebook",SOGOU="Sogou",PREFIX_MOBILE="Mobile ",SUFFIX_BROWSER=" Browser",WINDOWS="Windows",isWindow=typeof window2!==TYPEOF.UNDEFINED,NAVIGATOR=isWindow&&window2.navigator?window2.navigator:undefined2,NAVIGATOR_UADATA=NAVIGATOR&&NAVIGATOR.userAgentData?NAVIGATOR.userAgentData:undefined2,extend=function(defaultRgx,extensions){var mergedRgx={},extraRgx=extensions;if(!isExtensions(extensions)){extraRgx={};for(var i in extensions)for(var j in extensions[i])extraRgx[j]=extensions[i][j].concat(extraRgx[j]?extraRgx[j]:[])}for(var k in defaultRgx)mergedRgx[k]=extraRgx[k]&&extraRgx[k].length%2===0?extraRgx[k].concat(defaultRgx[k]):defaultRgx[k];return mergedRgx},enumerize=function(arr){for(var enums={},i=0;i<arr.length;i++)enums[arr[i].toUpperCase()]=arr[i];return enums},has=function(str1,str2){if(typeof str1===TYPEOF.OBJECT&&str1.length>0){for(var i in str1)if(lowerize(str2)==lowerize(str1[i]))return!0;return!1}return isString(str1)?lowerize(str2)==lowerize(str1):!1},isExtensions=function(obj,deep){for(var prop in obj)return/^(browser|cpu|device|engine|os)$/.test(prop)||(deep?isExtensions(obj[prop]):!1)},isString=function(val){return typeof val===TYPEOF.STRING},itemListToArray=function(header){if(!header)return undefined2;for(var arr=[],tokens=normalizeHeaderValue(header).split(","),i=0;i<tokens.length;i++)if(tokens[i].indexOf(";")>-1){var token=trim(tokens[i]).split(";v=");arr[i]={brand:token[0],version:token[1]}}else arr[i]=trim(tokens[i]);return arr},lowerize=function(str){return isString(str)?str.toLowerCase():str},majorize=function(version){return isString(version)?strip(/[^\d\.]/g,version).split(".")[0]:undefined2},normalizeHeaderValue=function(str){return isString(str)?trim(strip(/\\?\"/g,str),UA_MAX_LENGTH):undefined2},setProps=function(arr){for(var i in arr)if(arr.hasOwnProperty(i)){var propName=arr[i];typeof propName==TYPEOF.OBJECT&&propName.length==2?this[propName[0]]=propName[1]:this[propName]=undefined2}return this},strip=function(pattern,str){return isString(str)?str.replace(pattern,EMPTY):str},trim=function(str,len){return str=strip(/^\s\s*/,String(str)),typeof len===TYPEOF.UNDEFINED?str:str.substring(0,len)},rgxMapper=function(ua,arrays){if(!(!ua||!arrays))for(var i=0,j,k,p,q,matches,match;i<arrays.length&&!matches;){var regex=arrays[i],props=arrays[i+1];for(j=k=0;j<regex.length&&!matches&&regex[j];)if(matches=regex[j++].exec(ua),matches)for(p=0;p<props.length;p++)match=matches[++k],q=props[p],typeof q===TYPEOF.OBJECT&&q.length>0?q.length===2?typeof q[1]==TYPEOF.FUNCTION?this[q[0]]=q[1].call(this,match):this[q[0]]=q[1]:q.length>=3&&(typeof q[1]===TYPEOF.FUNCTION&&!(q[1].exec&&q[1].test)?q.length>3?this[q[0]]=match?q[1].apply(this,q.slice(2)):undefined2:this[q[0]]=match?q[1].call(this,match,q[2]):undefined2:q.length==3?this[q[0]]=match?match.replace(q[1],q[2]):undefined2:q.length==4?this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined2:q.length>4&&(this[q[0]]=match?q[3].apply(this,[match.replace(q[1],q[2])].concat(q.slice(4))):undefined2)):this[q]=match||undefined2;i+=2}},strTest=function(str,map){return map.test.test(str)?map.ifTrue:map.ifFalse},strMapper=function(str,map){for(var i in map)if(typeof map[i]===TYPEOF.OBJECT&&map[i].length>0){for(var j=0;j<map[i].length;j++)if(has(map[i][j],str))return i===UNKNOWN?undefined2:i}else if(has(map[i],str))return i===UNKNOWN?undefined2:i;return map.hasOwnProperty("*")?map["*"]:str},windowsVersionMap={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2","8.1":"6.3",10:["6.4","10.0"],NT:""},formFactorsMap={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":undefined2},browserHintsMap={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},defaultRegexes={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[VERSION,[NAME,PREFIX_MOBILE+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+" WebView"],[TYPE,INAPP]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[VERSION,[NAME,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[NAME,VERSION],[/opios[\/ ]+([\w\.]+)/i],[VERSION,[NAME,OPERA+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" GX"]],[/\bopr\/([\w\.]+)/i],[VERSION,[NAME,OPERA]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[VERSION,[NAME,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[VERSION,[NAME,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:hi|lg |ovi|qute)browser|palemoon)\/v?([-\w\.]+)/i,/(brave)(?: chrome)?\/([\d\.]+)/i,/(aloha|heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[NAME,VERSION],[/quark(?:pc)?\/([-\w\.]+)/i],[VERSION,[NAME,"Quark"]],[/\bddg\/([\w\.]+)/i],[VERSION,[NAME,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb| ucpc)[\/ ]?([\w\.]+)/i],[VERSION,[NAME,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[VERSION,[NAME,"WeChat"]],[/konqueror\/([\w\.]+)/i],[VERSION,[NAME,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[VERSION,[NAME,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[VERSION,[NAME,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[VERSION,[NAME,"Smart "+LENOVO+SUFFIX_BROWSER]],[/(av(?:ast|g|ira))\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 Secure"+SUFFIX_BROWSER],VERSION],[/norton\/([\w\.]+)/i],[VERSION,[NAME,"Norton Private"+SUFFIX_BROWSER]],[/\bfocus\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+" Focus"]],[/ mms\/([\w\.]+)$/i],[VERSION,[NAME,OPERA+" Neon"]],[/ opt\/([\w\.]+)$/i],[VERSION,[NAME,OPERA+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[VERSION,[NAME,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[VERSION,[NAME,"Dolphin"]],[/coast\/([\w\.]+)/i],[VERSION,[NAME,OPERA+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,"MIUI"+SUFFIX_BROWSER]],[/fxios\/([\w\.-]+)/i],[VERSION,[NAME,PREFIX_MOBILE+FIREFOX]],[/\bqihoobrowser\/?([\w\.]*)/i],[VERSION,[NAME,"360"]],[/\b(qq)\/([\w\.]+)/i],[[NAME,/(.+)/,"$1Browser"],VERSION],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[NAME,/(.+)/,"$1"+SUFFIX_BROWSER],VERSION],[/ HBPC\/([\w\.]+)/],[VERSION,[NAME,HUAWEI+SUFFIX_BROWSER]],[/samsungbrowser\/([\w\.]+)/i],[VERSION,[NAME,SAMSUNG+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[VERSION,[NAME,SOGOU+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[NAME,SOGOU+" Mobile"],VERSION],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[NAME,VERSION],[/(lbbrowser|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i],[NAME],[/ome\/([\w\.]+).+(iron(?= saf)|360(?=[es]e$))/i],[VERSION,NAME],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[NAME,FACEBOOK],VERSION,[TYPE,INAPP]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[NAME,VERSION,[TYPE,INAPP]],[/\bgsa\/([\w\.]+) .*safari\//i],[VERSION,[NAME,"GSA"],[TYPE,INAPP]],[/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i],[VERSION,[NAME,"TikTok"],[TYPE,INAPP]],[/\[(linkedin)app\]/i],[NAME,[TYPE,INAPP]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[NAME,/(.+)/,"Zalo"],VERSION,[TYPE,INAPP]],[/(chromium)[\/ ]([-\w\.]+)/i],[NAME,VERSION],[/ome-(lighthouse)$/i],[NAME,[TYPE,FETCHER]],[/headlesschrome(?:\/([\w\.]+)| )/i],[VERSION,[NAME,CHROME+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[VERSION,[NAME,EDGE+" WebView2"],[TYPE,INAPP]],[/; wv\).+(chrome)\/([\w\.]+)/i],[[NAME,CHROME+" WebView"],VERSION,[TYPE,INAPP]],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,"Android"+SUFFIX_BROWSER]],[/chrome\/([\w\.]+) mobile/i],[VERSION,[NAME,PREFIX_MOBILE+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[VERSION,[NAME,PREFIX_MOBILE+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[NAME,PREFIX_MOBILE+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[NAME,PREFIX_MOBILE+FIREFOX],VERSION],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[NAME,"Netscape"],VERSION],[/(wolvic|librewolf)\/([\w\.]+)/i],[NAME,VERSION],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[VERSION,[NAME,FIREFOX+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[NAME,[VERSION,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[NAME,[VERSION,/[^\d\.]+./,EMPTY]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[ARCHITECTURE,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[ARCHITECTURE,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[ARCHITECTURE,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[ARCHITECTURE,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[ARCHITECTURE,"arm"]],[/ sun4\w[;\)]/i],[[ARCHITECTURE,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/mc680.0/i],[[ARCHITECTURE,"68k"]],[/winnt.+\[axp/i],[[ARCHITECTURE,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[MODEL,[VENDOR,HONOR],[TYPE,TABLET]],[/honor([-\w ]+)[;\)]/i],[MODEL,[VENDOR,HONOR],[TYPE,MOBILE]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,TABLET]],[/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/oid[^\)]+; (redmi[\-_ ]?(?:note|k)?[\w_ ]+|m?[12]\d[01]\d\w{3,6}|poco[\w ]+|(shark )?\w{3}-[ah]0|qin ?[1-3](s\+|ultra| pro)?)( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/; ([\w ]+) miui\/v?\d/i],[[MODEL,/_/g," "],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[MODEL,[VENDOR,ONEPLUS],[TYPE,MOBILE]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[MODEL,[VENDOR,OPPO],[TYPE,MOBILE]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[MODEL,[VENDOR,strMapper,{OnePlus:["203","304","403","404","413","415"],"*":OPPO}],[TYPE,TABLET]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[MODEL,[VENDOR,"BLU"],[TYPE,MOBILE]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,"Vivo"],[TYPE,MOBILE]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[MODEL,[VENDOR,"Realme"],[TYPE,MOBILE]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[MODEL,[VENDOR,LENOVO],[TYPE,TABLET]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[MODEL,[VENDOR,LENOVO],[TYPE,MOBILE]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/\b(?:lg)?([vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(nokia) (t[12][01])/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[MODEL,/_/g," "],[TYPE,MOBILE],[VENDOR,"Nokia"]],[/(pixel (c|tablet))\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/(google) (pixelbook( go)?)/i],[VENDOR,MODEL],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[MODEL,"Xperia Tablet"],[VENDOR,SONY],[TYPE,TABLET]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[MODEL,/(.+)/g,"Fire Phone $1"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\w\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,"HTC"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[VENDOR,[MODEL,/_/g," "],[TYPE,MOBILE]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[MODEL,[VENDOR,"TCL"],[TYPE,TABLET]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[MODEL,[VENDOR,"TCL"],[TYPE,MOBILE]],[/(itel) ((\w+))/i],[[VENDOR,lowerize],MODEL,[TYPE,strMapper,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[MODEL,[VENDOR,"Acer"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[MODEL,[VENDOR,"Meizu"],[TYPE,MOBILE]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[MODEL,[VENDOR,"Ulefone"],[TYPE,MOBILE]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[MODEL,[VENDOR,"Energizer"],[TYPE,MOBILE]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[MODEL,[VENDOR,"Cat"],[TYPE,MOBILE]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[MODEL,[VENDOR,"Smartfren"],[TYPE,MOBILE]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[MODEL,[VENDOR,"Nothing"],[TYPE,MOBILE]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[MODEL,[VENDOR,"Archos"],[TYPE,TABLET]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[MODEL,[VENDOR,"Archos"],[TYPE,MOBILE]],[/blackview ([-\w ]+)( b|\))/i,/; (bv\d{4}[-\w ]*)( b|\))/i],[MODEL,[VENDOR,"Blackview"],[TYPE,MOBILE]],[/; (n159v)/i],[MODEL,[VENDOR,"HMD"],[TYPE,MOBILE]],[/((revvl[ \w\+]+|tm(?:rv|af)\w*[45]g(?:tb)?))( b|\))/i],[MODEL,[TYPE,strTest,{test:/ta?b/i,ifTrue:TABLET,ifFalse:MOBILE}],[VENDOR,"T-Mobile"]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|coolpad|cubot|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([-\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[MODEL,[VENDOR,"Fairphone"],[TYPE,MOBILE]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[MODEL,[VENDOR,NVIDIA],[TYPE,TABLET]],[/(sprint) (\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g," "],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,"SmartTV"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+" TV"],[TYPE,SMARTTV]],[/crkey.*devicetype\/chromecast/i],[[MODEL,CHROMECAST+" Third Generation"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/crkey.*devicetype\/([^/]*)/i],[[MODEL,/^/,"Chromecast "],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/fuchsia.*crkey/i],[[MODEL,CHROMECAST+" Nest Hub"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROMECAST],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/(portaltv)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,SMARTTV]],[/droid.+aft(\w+)( bui|\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/(shield \w+ tv)/i],[MODEL,[VENDOR,NVIDIA],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\w ]+)( bui|\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mi(tv|box)-?\w+) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[VENDOR,/.+\/(\w+)/,"$1",strMapper,{LG:"lge"}],[MODEL,trim],[TYPE,SMARTTV]],[/(playstation \w+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i,/(valve).+(steam deck)/i,/droid.+; ((shield|rgcube|gr0006))( bui|\))/i],[[VENDOR,strMapper,{Nvidia:"Shield",Anbernic:"RGCUBE",Logitech:"GR0006"}],MODEL,[TYPE,CONSOLE]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,WEARABLE]],[/((pebble))app/i,/(asus|google|lg|oppo|xiaomi) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[MODEL,[VENDOR,OPPO],[TYPE,WEARABLE]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/(opwwe\d{3})/i],[MODEL,[VENDOR,ONEPLUS],[TYPE,WEARABLE]],[/(moto 360)/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,WEARABLE]],[/(smartwatch 3)/i],[MODEL,[VENDOR,SONY],[TYPE,WEARABLE]],[/(g watch r)/i],[MODEL,[VENDOR,LG],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/droid.+; (glass) \d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,XR]],[/(pico) ([\w ]+) os\d/i],[VENDOR,MODEL,[TYPE,XR]],[/(quest( \d| pro)?s?).+vr/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,XR]],[/mobile vr; rv.+firefox/i],[[TYPE,XR]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/(homepod).+mac os/i],[MODEL,[VENDOR,APPLE],[TYPE,EMBEDDED]],[/windows iot/i],[[TYPE,EMBEDDED]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[MODEL,[TYPE,SMARTTV]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[TYPE,SMARTTV]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[MODEL,[TYPE,strMapper,{mobile:"Mobile",xr:"VR","*":TABLET}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[MODEL,[VENDOR,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[NAME,VERSION],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links|dillo)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[NAME,VERSION],[/ladybird\//i],[[NAME,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[VERSION,NAME]],os:[[/(windows nt) (6\.[23]); arm/i],[[NAME,/N/,"R"],[VERSION,strMapper,windowsVersionMap]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[NAME,VERSION],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[VERSION,/(;|\))/g,"",strMapper,windowsVersionMap],[NAME,WINDOWS]],[/(windows ce)\/?([\d\.]*)/i],[NAME,VERSION],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone)|.+apple ?tv)|ip(?:ad|hone)(?: |.+i(?:pad)?)os|apple ?tv.+ios)[\/ ]([\w\.]+)/i,/\btvos ?([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[VERSION,/_/g,"."],[NAME,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[NAME,"macOS"],[VERSION,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[VERSION,[NAME,CHROMECAST+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROMECAST+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[VERSION,[NAME,CHROMECAST+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROMECAST+" Linux"]],[/crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROMECAST]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[VERSION,NAME],[/(ubuntu) ([\w\.]+) like android/i],[[NAME,/(.+)/,"$1 Touch"],VERSION],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[NAME,VERSION],[/\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[VERSION,[NAME,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i],[VERSION,[NAME,FIREFOX+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[VERSION,[NAME,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[VERSION,strMapper,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[NAME,"webOS"]],[/watch(?: ?os[,\/ ]|\d,\d\/)([\d\.]+)/i],[VERSION,[NAME,"watchOS"]],[/cros [\w]+(?:\)| ([\w\.]+)\b)/i],[VERSION,[NAME,"Chrome OS"]],[/kepler ([\w\.]+); (aft|aeo)/i],[VERSION,[NAME,"Vega OS"]],[/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[NAME,VERSION],[/(sunos) ?([\d\.]*)/i],[[NAME,"Solaris"],VERSION],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[NAME,VERSION]]},defaultProps=(function(){var props={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return setProps.call(props.init,[[BROWSER,[NAME,VERSION,MAJOR,TYPE]],[CPU,[ARCHITECTURE]],[DEVICE,[TYPE,MODEL,VENDOR]],[ENGINE,[NAME,VERSION]],[OS,[NAME,VERSION]]]),setProps.call(props.isIgnore,[[BROWSER,[VERSION,MAJOR]],[ENGINE,[VERSION]],[OS,[VERSION]]]),setProps.call(props.isIgnoreRgx,[[BROWSER,/ ?browser$/i],[OS,/ ?os$/i]]),setProps.call(props.toString,[[BROWSER,[NAME,VERSION]],[CPU,[ARCHITECTURE]],[DEVICE,[VENDOR,MODEL]],[ENGINE,[NAME,VERSION]],[OS,[NAME,VERSION]]]),props})(),createIData=function(item,itemType){var init_props=defaultProps.init[itemType],is_ignoreProps=defaultProps.isIgnore[itemType]||0,is_ignoreRgx=defaultProps.isIgnoreRgx[itemType]||0,toString_props=defaultProps.toString[itemType]||0;function IData(){setProps.call(this,init_props)}return IData.prototype.getItem=function(){return item},IData.prototype.withClientHints=function(){return NAVIGATOR_UADATA?NAVIGATOR_UADATA.getHighEntropyValues(CH_ALL_VALUES).then(function(res){return item.setCH(new UACHData(res,!1)).parseCH().get()}):item.parseCH().get()},IData.prototype.withFeatureCheck=function(){return item.detectFeature().get()},itemType!=RESULT&&(IData.prototype.is=function(strToCheck){var is=!1;for(var i in this)if(this.hasOwnProperty(i)&&!has(is_ignoreProps,i)&&lowerize(is_ignoreRgx?strip(is_ignoreRgx,this[i]):this[i])==lowerize(is_ignoreRgx?strip(is_ignoreRgx,strToCheck):strToCheck)){if(is=!0,strToCheck!=TYPEOF.UNDEFINED)break}else if(strToCheck==TYPEOF.UNDEFINED&&is){is=!is;break}return is},IData.prototype.toString=function(){var str=EMPTY;for(var i in toString_props)typeof this[toString_props[i]]!==TYPEOF.UNDEFINED&&(str+=(str?" ":EMPTY)+this[toString_props[i]]);return str||TYPEOF.UNDEFINED}),IData.prototype.then=function(cb){var that=this,IDataResolve=function(){for(var prop in that)that.hasOwnProperty(prop)&&(this[prop]=that[prop])};IDataResolve.prototype={is:IData.prototype.is,toString:IData.prototype.toString,withClientHints:IData.prototype.withClientHints,withFeatureCheck:IData.prototype.withFeatureCheck};var resolveData=new IDataResolve;return cb(resolveData),resolveData},new IData};function UACHData(uach,isHttpUACH){if(uach=uach||{},setProps.call(this,CH_ALL_VALUES),isHttpUACH)setProps.call(this,[[BRANDS,itemListToArray(uach[CH])],[FULLVERLIST,itemListToArray(uach[CH_FULL_VER_LIST])],[MOBILE,/\?1/.test(uach[CH_MOBILE])],[MODEL,normalizeHeaderValue(uach[CH_MODEL])],[PLATFORM,normalizeHeaderValue(uach[CH_PLATFORM])],[PLATFORMVER,normalizeHeaderValue(uach[CH_PLATFORM_VER])],[ARCHITECTURE,normalizeHeaderValue(uach[CH_ARCH])],[FORMFACTORS,itemListToArray(uach[CH_FORM_FACTORS])],[BITNESS,normalizeHeaderValue(uach[CH_BITNESS])]]);else for(var prop in uach)this.hasOwnProperty(prop)&&typeof uach[prop]!==TYPEOF.UNDEFINED&&(this[prop]=uach[prop])}function UAItem(itemType,ua,rgxMap,uaCH){return setProps.call(this,[["itemType",itemType],["ua",ua],["uaCH",uaCH],["rgxMap",rgxMap],["data",createIData(this,itemType)]]),this}UAItem.prototype.get=function(prop){return prop?this.data.hasOwnProperty(prop)?this.data[prop]:undefined2:this.data},UAItem.prototype.set=function(prop,val){return this.data[prop]=val,this},UAItem.prototype.setCH=function(ch){return this.uaCH=ch,this},UAItem.prototype.detectFeature=function(){if(NAVIGATOR&&NAVIGATOR.userAgent==this.ua)switch(this.itemType){case BROWSER:NAVIGATOR.brave&&typeof NAVIGATOR.brave.isBrave==TYPEOF.FUNCTION&&this.set(NAME,"Brave");break;case DEVICE:!this.get(TYPE)&&NAVIGATOR_UADATA&&NAVIGATOR_UADATA[MOBILE]&&this.set(TYPE,MOBILE),this.get(MODEL)=="Macintosh"&&NAVIGATOR&&typeof NAVIGATOR.standalone!==TYPEOF.UNDEFINED&&NAVIGATOR.maxTouchPoints&&NAVIGATOR.maxTouchPoints>2&&this.set(MODEL,"iPad").set(TYPE,TABLET);break;case OS:!this.get(NAME)&&NAVIGATOR_UADATA&&NAVIGATOR_UADATA[PLATFORM]&&this.set(NAME,NAVIGATOR_UADATA[PLATFORM]);break;case RESULT:var data=this.data,detect=function(itemType){return data[itemType].getItem().detectFeature().get()};this.set(BROWSER,detect(BROWSER)).set(CPU,detect(CPU)).set(DEVICE,detect(DEVICE)).set(ENGINE,detect(ENGINE)).set(OS,detect(OS))}return this},UAItem.prototype.parseUA=function(){switch(this.itemType!=RESULT&&rgxMapper.call(this.data,this.ua,this.rgxMap),this.itemType){case BROWSER:this.set(MAJOR,majorize(this.get(VERSION)));break;case OS:if(this.get(NAME)=="iOS"&&this.get(VERSION)&&/^1[89][^\d]/.exec(this.get(VERSION))){var realVersion=/\) Version\/((\d+)[\d\.]*)/.exec(this.ua);realVersion&&parseInt(realVersion[2],10)>=26&&this.set(VERSION,realVersion[1])}break}return this},UAItem.prototype.parseCH=function(){var uaCH=this.uaCH,rgxMap=this.rgxMap;switch(this.itemType){case BROWSER:case ENGINE:var brands=uaCH[FULLVERLIST]||uaCH[BRANDS],prevName;if(brands)for(var i=0;i<brands.length;i++){var brandName=brands[i].brand||brands[i],brandVersion=brands[i].version;this.itemType==BROWSER&&!/not.a.brand/i.test(brandName)&&(!prevName||/Chrom/.test(prevName)&&brandName!=CHROMIUM||prevName==EDGE&&/WebView2/.test(brandName))&&(brandName=strMapper(brandName,browserHintsMap),prevName=this.get(NAME),prevName&&!/Chrom/.test(prevName)&&/Chrom/.test(brandName)||this.set(NAME,brandName).set(VERSION,brandVersion).set(MAJOR,majorize(brandVersion)),prevName=brandName),this.itemType==ENGINE&&brandName==CHROMIUM&&this.set(VERSION,brandVersion)}break;case CPU:var archName=uaCH[ARCHITECTURE];archName&&(archName&&uaCH[BITNESS]=="64"&&(archName+="64"),rgxMapper.call(this.data,archName+";",rgxMap));break;case DEVICE:if(uaCH[MOBILE]&&this.set(TYPE,MOBILE),uaCH[MODEL]&&(this.set(MODEL,uaCH[MODEL]),!this.get(TYPE)||!this.get(VENDOR))){var reParse={};rgxMapper.call(reParse,"droid 9; "+uaCH[MODEL]+")",rgxMap),!this.get(TYPE)&&reParse.type&&this.set(TYPE,reParse.type),!this.get(VENDOR)&&reParse.vendor&&this.set(VENDOR,reParse.vendor)}if(uaCH[FORMFACTORS]){var ff;if(typeof uaCH[FORMFACTORS]!="string")for(var idx=0;!ff&&idx<uaCH[FORMFACTORS].length;)ff=strMapper(uaCH[FORMFACTORS][idx++],formFactorsMap);else ff=strMapper(uaCH[FORMFACTORS],formFactorsMap);this.set(TYPE,ff)}break;case OS:var osName=uaCH[PLATFORM];if(osName){var osVersion=uaCH[PLATFORMVER];osName==WINDOWS&&(osVersion=parseInt(majorize(osVersion),10)>=13?"11":"10"),this.set(NAME,osName).set(VERSION,osVersion)}this.get(NAME)==WINDOWS&&uaCH[MODEL]=="Xbox"&&this.set(NAME,"Xbox").set(VERSION,undefined2);break;case RESULT:var data=this.data,parse=function(itemType){return data[itemType].getItem().setCH(uaCH).parseCH().get()};this.set(BROWSER,parse(BROWSER)).set(CPU,parse(CPU)).set(DEVICE,parse(DEVICE)).set(ENGINE,parse(ENGINE)).set(OS,parse(OS))}return this};function UAParser(ua,extensions,headers){if(typeof ua===TYPEOF.OBJECT?(isExtensions(ua,!0)?(typeof extensions===TYPEOF.OBJECT&&(headers=extensions),extensions=ua):(headers=ua,extensions=undefined2),ua=undefined2):typeof ua===TYPEOF.STRING&&!isExtensions(extensions,!0)&&(headers=extensions,extensions=undefined2),headers)if(typeof headers.append===TYPEOF.FUNCTION){var kv={};headers.forEach(function(v,k){kv[String(k).toLowerCase()]=v}),headers=kv}else{var normalized={};for(var header in headers)headers.hasOwnProperty(header)&&(normalized[String(header).toLowerCase()]=headers[header]);headers=normalized}if(!(this instanceof UAParser))return new UAParser(ua,extensions,headers).getResult();var userAgent=typeof ua===TYPEOF.STRING?ua:headers&&headers[USER_AGENT]?headers[USER_AGENT]:NAVIGATOR&&NAVIGATOR.userAgent?NAVIGATOR.userAgent:EMPTY,httpUACH=new UACHData(headers,!0),regexMap=defaultRegexes,createItemFunc=function(itemType){return itemType==RESULT?function(){return new UAItem(itemType,userAgent,regexMap,httpUACH).set("ua",userAgent).set(BROWSER,this.getBrowser()).set(CPU,this.getCPU()).set(DEVICE,this.getDevice()).set(ENGINE,this.getEngine()).set(OS,this.getOS()).get()}:function(){return new UAItem(itemType,userAgent,regexMap[itemType],httpUACH).parseUA().get()}};return setProps.call(this,[["getBrowser",createItemFunc(BROWSER)],["getCPU",createItemFunc(CPU)],["getDevice",createItemFunc(DEVICE)],["getEngine",createItemFunc(ENGINE)],["getOS",createItemFunc(OS)],["getResult",createItemFunc(RESULT)],["getUA",function(){return userAgent}],["setUA",function(ua2){return isString(ua2)&&(userAgent=trim(ua2,UA_MAX_LENGTH)),this}],["useExtension",function(exts){return exts&&(regexMap=extend(regexMap,exts)),this}]]).setUA(userAgent).useExtension(extensions),this}UAParser.VERSION=LIBVERSION,UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR,TYPE]),UAParser.CPU=enumerize([ARCHITECTURE]),UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]),UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]),typeof exports2!==TYPEOF.UNDEFINED?(typeof module2!==TYPEOF.UNDEFINED&&module2.exports&&(exports2=module2.exports=UAParser),exports2.UAParser=UAParser):typeof define===TYPEOF.FUNCTION&&define.amd?define(function(){return UAParser}):isWindow&&(window2.UAParser=UAParser);var $=isWindow&&(window2.jQuery||window2.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult(),$.ua.get=function(){return parser.getUA()},$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result)$.ua[prop]=result[prop]}}})(typeof window=="object"?window:exports2)}});var require_default=__commonJS({"node_modules/events-universal/default.js"(exports2,module2){module2.exports=require("events")}});var require_fixed_size=__commonJS({"node_modules/fast-fifo/fixed-size.js"(exports2,module2){module2.exports=class{constructor(hwm){if(!(hwm>0)||(hwm-1&hwm)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(hwm),this.mask=hwm-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(data){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=data,this.top=this.top+1&this.mask,!0)}shift(){let last=this.buffer[this.btm];if(last!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,last}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}}});var require_fast_fifo=__commonJS({"node_modules/fast-fifo/index.js"(exports2,module2){var FixedFIFO=require_fixed_size();module2.exports=class{constructor(hwm){this.hwm=hwm||16,this.head=new FixedFIFO(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(val){if(this.length++,!this.head.push(val)){let prev=this.head;this.head=prev.next=new FixedFIFO(2*this.head.buffer.length),this.head.push(val)}}shift(){this.length!==0&&this.length--;let val=this.tail.shift();if(val===void 0&&this.tail.next){let next=this.tail.next;return this.tail.next=null,this.tail=next,this.tail.shift()}return val}peek(){let val=this.tail.peek();return val===void 0&&this.tail.next?this.tail.next.peek():val}isEmpty(){return this.length===0}}}});var require_b4a=__commonJS({"node_modules/b4a/index.js"(exports2,module2){function isBuffer(value){return Buffer.isBuffer(value)||value instanceof Uint8Array}function isEncoding(encoding){return Buffer.isEncoding(encoding)}function alloc(size,fill2,encoding){return Buffer.alloc(size,fill2,encoding)}function allocUnsafe(size){return Buffer.allocUnsafe(size)}function allocUnsafeSlow(size){return Buffer.allocUnsafeSlow(size)}function byteLength(string,encoding){return Buffer.byteLength(string,encoding)}function compare(a,b){return Buffer.compare(a,b)}function concat(buffers,totalLength){return Buffer.concat(buffers,totalLength)}function copy(source,target,targetStart,start,end){return toBuffer(source).copy(target,targetStart,start,end)}function equals(a,b){return toBuffer(a).equals(b)}function fill(buffer,value,offset,end,encoding){return toBuffer(buffer).fill(value,offset,end,encoding)}function from(value,encodingOrOffset,length){return Buffer.from(value,encodingOrOffset,length)}function includes(buffer,value,byteOffset,encoding){return toBuffer(buffer).includes(value,byteOffset,encoding)}function indexOf(buffer,value,byfeOffset,encoding){return toBuffer(buffer).indexOf(value,byfeOffset,encoding)}function lastIndexOf(buffer,value,byteOffset,encoding){return toBuffer(buffer).lastIndexOf(value,byteOffset,encoding)}function swap16(buffer){return toBuffer(buffer).swap16()}function swap32(buffer){return toBuffer(buffer).swap32()}function swap64(buffer){return toBuffer(buffer).swap64()}function toBuffer(buffer){return Buffer.isBuffer(buffer)?buffer:Buffer.from(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function toString(buffer,encoding,start,end){return toBuffer(buffer).toString(encoding,start,end)}function write(buffer,string,offset,length,encoding){return toBuffer(buffer).write(string,offset,length,encoding)}function readDoubleBE(buffer,offset){return toBuffer(buffer).readDoubleBE(offset)}function readDoubleLE(buffer,offset){return toBuffer(buffer).readDoubleLE(offset)}function readFloatBE(buffer,offset){return toBuffer(buffer).readFloatBE(offset)}function readFloatLE(buffer,offset){return toBuffer(buffer).readFloatLE(offset)}function readInt32BE(buffer,offset){return toBuffer(buffer).readInt32BE(offset)}function readInt32LE(buffer,offset){return toBuffer(buffer).readInt32LE(offset)}function readUInt32BE(buffer,offset){return toBuffer(buffer).readUInt32BE(offset)}function readUInt32LE(buffer,offset){return toBuffer(buffer).readUInt32LE(offset)}function writeDoubleBE(buffer,value,offset){return toBuffer(buffer).writeDoubleBE(value,offset)}function writeDoubleLE(buffer,value,offset){return toBuffer(buffer).writeDoubleLE(value,offset)}function writeFloatBE(buffer,value,offset){return toBuffer(buffer).writeFloatBE(value,offset)}function writeFloatLE(buffer,value,offset){return toBuffer(buffer).writeFloatLE(value,offset)}function writeInt32BE(buffer,value,offset){return toBuffer(buffer).writeInt32BE(value,offset)}function writeInt32LE(buffer,value,offset){return toBuffer(buffer).writeInt32LE(value,offset)}function writeUInt32BE(buffer,value,offset){return toBuffer(buffer).writeUInt32BE(value,offset)}function writeUInt32LE(buffer,value,offset){return toBuffer(buffer).writeUInt32LE(value,offset)}module2.exports={isBuffer,isEncoding,alloc,allocUnsafe,allocUnsafeSlow,byteLength,compare,concat,copy,equals,fill,from,includes,indexOf,lastIndexOf,swap16,swap32,swap64,toBuffer,toString,write,readDoubleBE,readDoubleLE,readFloatBE,readFloatLE,readInt32BE,readInt32LE,readUInt32BE,readUInt32LE,writeDoubleBE,writeDoubleLE,writeFloatBE,writeFloatLE,writeInt32BE,writeInt32LE,writeUInt32BE,writeUInt32LE}}});var require_pass_through_decoder=__commonJS({"node_modules/text-decoder/lib/pass-through-decoder.js"(exports2,module2){var b4a=require_b4a();module2.exports=class{constructor(encoding){this.encoding=encoding}get remaining(){return 0}decode(data){return b4a.toString(data,this.encoding)}flush(){return""}}}});var require_utf8_decoder=__commonJS({"node_modules/text-decoder/lib/utf8-decoder.js"(exports2,module2){var b4a=require_b4a();module2.exports=class{constructor(){this._reset()}get remaining(){return this.bytesSeen}decode(data){if(data.byteLength===0)return"";if(this.bytesNeeded===0&&trailingIncomplete(data,0)===0)return this.bytesSeen=trailingBytesSeen(data),b4a.toString(data,"utf8");let result="",start=0;if(this.bytesNeeded>0){for(;start<data.byteLength;){let byte=data[start];if(byte<this.lowerBoundary||byte>this.upperBoundary){result+="\uFFFD",this._reset();break}if(this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|byte&63,this.bytesSeen++,start++,this.bytesSeen===this.bytesNeeded){result+=String.fromCodePoint(this.codePoint),this._reset();break}}if(this.bytesNeeded>0)return result}let trailing=trailingIncomplete(data,start),end=data.byteLength-trailing;end>start&&(result+=b4a.toString(data,"utf8",start,end));for(let i=end;i<data.byteLength;i++){let byte=data[i];if(this.bytesNeeded===0){byte<=127?(this.bytesSeen=0,result+=String.fromCharCode(byte)):byte>=194&&byte<=223?(this.bytesNeeded=2,this.bytesSeen=1,this.codePoint=byte&31):byte>=224&&byte<=239?(byte===224?this.lowerBoundary=160:byte===237&&(this.upperBoundary=159),this.bytesNeeded=3,this.bytesSeen=1,this.codePoint=byte&15):byte>=240&&byte<=244?(byte===240?this.lowerBoundary=144:byte===244&&(this.upperBoundary=143),this.bytesNeeded=4,this.bytesSeen=1,this.codePoint=byte&7):(this.bytesSeen=1,result+="\uFFFD");continue}if(byte<this.lowerBoundary||byte>this.upperBoundary){result+="\uFFFD",i--,this._reset();continue}this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|byte&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded&&(result+=String.fromCodePoint(this.codePoint),this._reset())}return result}flush(){let result=this.bytesNeeded>0?"\uFFFD":"";return this._reset(),result}_reset(){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191}};function trailingIncomplete(data,start){let len=data.byteLength;if(len<=start)return 0;let limit=Math.max(start,len-4),i=len-1;for(;i>limit&&(data[i]&192)===128;)i--;if(i<start)return 0;let byte=data[i],needed;if(byte<=127)return 0;if(byte>=194&&byte<=223)needed=2;else if(byte>=224&&byte<=239)needed=3;else if(byte>=240&&byte<=244)needed=4;else return 0;let available=len-i;return available<needed?available:0}function trailingBytesSeen(data){let len=data.byteLength;if(len===0)return 0;let last=data[len-1];if(last<=127)return 0;if((last&192)!==128)return 1;let limit=Math.max(0,len-4),i=len-2;for(;i>=limit&&(data[i]&192)===128;)i--;if(i<0)return 1;let first=data[i],needed;if(first>=194&&first<=223)needed=2;else if(first>=224&&first<=239)needed=3;else if(first>=240&&first<=244)needed=4;else return 1;if(len-i!==needed)return 1;if(needed>=3){let second=data[i+1];if(first===224&&second<160||first===237&&second>159||first===240&&second<144||first===244&&second>143)return 1}return 0}}});var require_text_decoder=__commonJS({"node_modules/text-decoder/index.js"(exports2,module2){var PassThroughDecoder=require_pass_through_decoder(),UTF8Decoder=require_utf8_decoder();module2.exports=class{constructor(encoding="utf8"){switch(this.encoding=normalizeEncoding(encoding),this.encoding){case"utf8":this.decoder=new UTF8Decoder;break;case"utf16le":case"base64":throw new Error("Unsupported encoding: "+this.encoding);default:this.decoder=new PassThroughDecoder(this.encoding)}}get remaining(){return this.decoder.remaining}push(data){return typeof data=="string"?data:this.decoder.decode(data)}write(data){return this.push(data)}end(data){let result="";return data&&(result=this.push(data)),result+=this.decoder.flush(),result}};function normalizeEncoding(encoding){switch(encoding=encoding.toLowerCase(),encoding){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return encoding;default:throw new Error("Unknown encoding: "+encoding)}}}});var require_errors4=__commonJS({"node_modules/streamx/lib/errors.js"(exports2,module2){module2.exports=class StreamError extends Error{constructor(msg,code,fn=StreamError){super(msg),this.code=code,Error.captureStackTrace&&Error.captureStackTrace(this,fn)}static isStreamDestroyed(err){return err&&err.code==="STREAM_DESTROYED"}static isPrematureClose(err){return err&&err.code==="PREMATURE_CLOSE"}static isAborted(err){return err&&err.code==="ABORTED"}static isBadArgument(err){return err&&err.code==="BAD_ARGUMENT"}get name(){return"StreamError"}static STREAM_DESTROYED(){return new StreamError("Stream was destroyed","STREAM_DESTROYED",StreamError.STREAM_DESTROYED)}static PREMATURE_CLOSE(msg="Premature close"){return new StreamError(msg,"PREMATURE_CLOSE",StreamError.PREMATURE_CLOSE)}static ABORTED(){return new StreamError("Stream aborted","ABORTED",StreamError.ABORTED)}static BAD_ARGUMENT(msg="Bad argument"){return new StreamError(msg,"BAD_ARGUMENT",StreamError.BAD_ARGUMENT)}}}});var require_streamx=__commonJS({"node_modules/streamx/index.js"(exports2,module2){var{EventEmitter}=require_default(),FIFO=require_fast_fifo(),TextDecoder2=require_text_decoder(),StreamError=require_errors4(),qmt=typeof queueMicrotask>"u"?fn=>global.process.nextTick(fn):queueMicrotask,MAX=(1<<29)-1,OPENING=1,PREDESTROYING=2,DESTROYING=4,DESTROYED=8,NOT_OPENING=MAX^OPENING,NOT_PREDESTROYING=MAX^PREDESTROYING,READ_ACTIVE=16,READ_UPDATING=32,READ_PRIMARY=64,READ_QUEUED=128,READ_RESUMED=256,READ_PIPE_DRAINED=512,READ_ENDING=1024,READ_EMIT_DATA=2048,READ_EMIT_READABLE=4096,READ_EMITTED_READABLE=8192,READ_DONE=16384,READ_NEXT_TICK=32768,READ_NEEDS_PUSH=65536,READ_READ_AHEAD=131072,READ_FLOWING=READ_RESUMED|READ_PIPE_DRAINED,READ_ACTIVE_AND_NEEDS_PUSH=READ_ACTIVE|READ_NEEDS_PUSH,READ_PRIMARY_AND_ACTIVE=READ_PRIMARY|READ_ACTIVE,READ_EMIT_READABLE_AND_QUEUED=READ_EMIT_READABLE|READ_QUEUED,READ_RESUMED_READ_AHEAD=READ_RESUMED|READ_READ_AHEAD,READ_NOT_ACTIVE=MAX^READ_ACTIVE,READ_NON_PRIMARY=MAX^READ_PRIMARY,READ_NON_PRIMARY_AND_PUSHED=MAX^(READ_PRIMARY|READ_NEEDS_PUSH),READ_PUSHED=MAX^READ_NEEDS_PUSH,READ_PAUSED=MAX^READ_RESUMED,READ_NOT_QUEUED=MAX^(READ_QUEUED|READ_EMITTED_READABLE),READ_NOT_ENDING=MAX^READ_ENDING,READ_PIPE_NOT_DRAINED=MAX^READ_FLOWING,READ_NOT_NEXT_TICK=MAX^READ_NEXT_TICK,READ_NOT_UPDATING=MAX^READ_UPDATING,READ_NO_READ_AHEAD=MAX^READ_READ_AHEAD,READ_PAUSED_NO_READ_AHEAD=MAX^READ_RESUMED_READ_AHEAD,WRITE_ACTIVE=1<<18,WRITE_UPDATING=2<<18,WRITE_PRIMARY=4<<18,WRITE_QUEUED=8<<18,WRITE_UNDRAINED=16<<18,WRITE_DONE=32<<18,WRITE_EMIT_DRAIN=64<<18,WRITE_NEXT_TICK=128<<18,WRITE_WRITING=256<<18,WRITE_FINISHING=512<<18,WRITE_CORKED=1024<<18,WRITE_NOT_ACTIVE=MAX^(WRITE_ACTIVE|WRITE_WRITING),WRITE_NON_PRIMARY=MAX^WRITE_PRIMARY,WRITE_NOT_FINISHING=MAX^(WRITE_ACTIVE|WRITE_FINISHING),WRITE_DRAINED=MAX^WRITE_UNDRAINED,WRITE_NOT_QUEUED=MAX^WRITE_QUEUED,WRITE_NOT_NEXT_TICK=MAX^WRITE_NEXT_TICK,WRITE_NOT_UPDATING=MAX^WRITE_UPDATING,WRITE_NOT_CORKED=MAX^WRITE_CORKED,ACTIVE=READ_ACTIVE|WRITE_ACTIVE,NOT_ACTIVE=MAX^ACTIVE,DONE=READ_DONE|WRITE_DONE,DESTROY_STATUS=DESTROYING|DESTROYED|PREDESTROYING,OPEN_STATUS=DESTROY_STATUS|OPENING,AUTO_DESTROY=DESTROY_STATUS|DONE,NON_PRIMARY=WRITE_NON_PRIMARY&READ_NON_PRIMARY,ACTIVE_OR_TICKING=WRITE_NEXT_TICK|READ_NEXT_TICK,TICKING=ACTIVE_OR_TICKING&NOT_ACTIVE,IS_OPENING=OPEN_STATUS|TICKING,READ_PRIMARY_STATUS=OPEN_STATUS|READ_ENDING|READ_DONE,READ_STATUS=OPEN_STATUS|READ_DONE|READ_QUEUED,READ_ENDING_STATUS=OPEN_STATUS|READ_ENDING|READ_QUEUED,READ_READABLE_STATUS=OPEN_STATUS|READ_EMIT_READABLE|READ_QUEUED|READ_EMITTED_READABLE,SHOULD_NOT_READ=OPEN_STATUS|READ_ACTIVE|READ_ENDING|READ_DONE|READ_NEEDS_PUSH|READ_READ_AHEAD,READ_BACKPRESSURE_STATUS=DESTROY_STATUS|READ_ENDING|READ_DONE,READ_UPDATE_SYNC_STATUS=READ_UPDATING|OPEN_STATUS|READ_NEXT_TICK|READ_PRIMARY,READ_NEXT_TICK_OR_OPENING=READ_NEXT_TICK|OPENING,WRITE_PRIMARY_STATUS=OPEN_STATUS|WRITE_FINISHING|WRITE_DONE,WRITE_QUEUED_AND_UNDRAINED=WRITE_QUEUED|WRITE_UNDRAINED,WRITE_QUEUED_AND_ACTIVE=WRITE_QUEUED|WRITE_ACTIVE,WRITE_DRAIN_STATUS=WRITE_QUEUED|WRITE_UNDRAINED|OPEN_STATUS|WRITE_ACTIVE,WRITE_STATUS=OPEN_STATUS|WRITE_ACTIVE|WRITE_QUEUED|WRITE_CORKED,WRITE_PRIMARY_AND_ACTIVE=WRITE_PRIMARY|WRITE_ACTIVE,WRITE_ACTIVE_AND_WRITING=WRITE_ACTIVE|WRITE_WRITING,WRITE_FINISHING_STATUS=OPEN_STATUS|WRITE_FINISHING|WRITE_QUEUED_AND_ACTIVE|WRITE_DONE,WRITE_BACKPRESSURE_STATUS=WRITE_UNDRAINED|DESTROY_STATUS|WRITE_FINISHING|WRITE_DONE,WRITE_UPDATE_SYNC_STATUS=WRITE_UPDATING|OPEN_STATUS|WRITE_NEXT_TICK|WRITE_PRIMARY,WRITE_DROP_DATA=WRITE_FINISHING|WRITE_DONE|DESTROY_STATUS,asyncIterator=Symbol.asyncIterator||Symbol("asyncIterator"),WritableState=class{constructor(stream,{highWaterMark=16384,map=null,mapWritable,byteLength,byteLengthWritable}={}){this.stream=stream,this.queue=new FIFO,this.highWaterMark=highWaterMark,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=byteLengthWritable||byteLength||defaultByteLength,this.map=mapWritable||map,this.afterWrite=afterWrite.bind(this),this.afterUpdateNextTick=updateWriteNT.bind(this)}get ending(){return(this.stream._duplexState&WRITE_FINISHING)!==0}get ended(){return(this.stream._duplexState&WRITE_DONE)!==0}push(data){return(this.stream._duplexState&WRITE_DROP_DATA)!==0?!1:(this.map!==null&&(data=this.map(data)),this.buffered+=this.byteLength(data),this.queue.push(data),this.buffered<this.highWaterMark?(this.stream._duplexState|=WRITE_QUEUED,!0):(this.stream._duplexState|=WRITE_QUEUED_AND_UNDRAINED,!1))}shift(){let data=this.queue.shift();return this.buffered-=this.byteLength(data),this.buffered===0&&(this.stream._duplexState&=WRITE_NOT_QUEUED),data}end(data){typeof data=="function"?this.stream.once("finish",data):data!=null&&this.push(data),this.stream._duplexState=(this.stream._duplexState|WRITE_FINISHING)&WRITE_NON_PRIMARY}autoBatch(data,cb){let buffer=[],stream=this.stream;for(buffer.push(data);(stream._duplexState&WRITE_STATUS)===WRITE_QUEUED_AND_ACTIVE;)buffer.push(stream._writableState.shift());if((stream._duplexState&OPEN_STATUS)!==0)return cb(null);stream._writev(buffer,cb)}update(){let stream=this.stream;stream._duplexState|=WRITE_UPDATING;do{for(;(stream._duplexState&WRITE_STATUS)===WRITE_QUEUED;){let data=this.shift();stream._duplexState|=WRITE_ACTIVE_AND_WRITING,stream._write(data,this.afterWrite)}(stream._duplexState&WRITE_PRIMARY_AND_ACTIVE)===0&&this.updateNonPrimary()}while(this.continueUpdate()===!0);stream._duplexState&=WRITE_NOT_UPDATING}updateNonPrimary(){let stream=this.stream;if((stream._duplexState&WRITE_FINISHING_STATUS)===WRITE_FINISHING){stream._duplexState=stream._duplexState|WRITE_ACTIVE,stream._final(afterFinal.bind(this));return}if((stream._duplexState&DESTROY_STATUS)===DESTROYING){(stream._duplexState&ACTIVE_OR_TICKING)===0&&(stream._duplexState|=ACTIVE,stream._destroy(afterDestroy.bind(this)));return}(stream._duplexState&IS_OPENING)===OPENING&&(stream._duplexState=(stream._duplexState|ACTIVE)&NOT_OPENING,stream._open(afterOpen.bind(this)))}continueUpdate(){return(this.stream._duplexState&WRITE_NEXT_TICK)===0?!1:(this.stream._duplexState&=WRITE_NOT_NEXT_TICK,!0)}updateCallback(){(this.stream._duplexState&WRITE_UPDATE_SYNC_STATUS)===WRITE_PRIMARY?this.update():this.updateNextTick()}updateNextTick(){(this.stream._duplexState&WRITE_NEXT_TICK)===0&&(this.stream._duplexState|=WRITE_NEXT_TICK,(this.stream._duplexState&WRITE_UPDATING)===0&&qmt(this.afterUpdateNextTick))}},ReadableState=class{constructor(stream,{highWaterMark=16384,map=null,mapReadable,byteLength,byteLengthReadable}={}){this.stream=stream,this.queue=new FIFO,this.highWaterMark=highWaterMark===0?1:highWaterMark,this.buffered=0,this.readAhead=highWaterMark>0,this.error=null,this.pipeline=null,this.byteLength=byteLengthReadable||byteLength||defaultByteLength,this.map=mapReadable||map,this.pipeTo=null,this.afterRead=afterRead.bind(this),this.afterUpdateNextTick=updateReadNT.bind(this)}get ending(){return(this.stream._duplexState&READ_ENDING)!==0}get ended(){return(this.stream._duplexState&READ_DONE)!==0}pipe(pipeTo,cb){if(this.pipeTo!==null)throw StreamError.BAD_ARGUMENT("Can only pipe to one destination");if(typeof cb!="function"&&(cb=null),this.stream._duplexState|=READ_PIPE_DRAINED,this.pipeTo=pipeTo,this.pipeline=new Pipeline(this.stream,pipeTo,cb),cb&&this.stream.on("error",noop),isStreamx(pipeTo))pipeTo._writableState.pipeline=this.pipeline,cb&&pipeTo.on("error",noop),pipeTo.on("finish",this.pipeline.finished.bind(this.pipeline));else{let onerror=this.pipeline.done.bind(this.pipeline,pipeTo),onclose=this.pipeline.done.bind(this.pipeline,pipeTo,null);pipeTo.on("error",onerror),pipeTo.on("close",onclose),pipeTo.on("finish",this.pipeline.finished.bind(this.pipeline))}pipeTo.on("drain",afterDrain.bind(this)),this.stream.emit("piping",pipeTo),pipeTo.emit("pipe",this.stream)}push(data){let stream=this.stream;return data===null?(this.highWaterMark=0,stream._duplexState=(stream._duplexState|READ_ENDING)&READ_NON_PRIMARY_AND_PUSHED,!1):this.map!==null&&(data=this.map(data),data===null)?(stream._duplexState&=READ_PUSHED,this.buffered<this.highWaterMark):(this.buffered+=this.byteLength(data),this.queue.push(data),stream._duplexState=(stream._duplexState|READ_QUEUED)&READ_PUSHED,this.buffered<this.highWaterMark)}shift(){let data=this.queue.shift();return this.buffered-=this.byteLength(data),this.buffered===0&&(this.stream._duplexState&=READ_NOT_QUEUED),data}unshift(data){let pending=[this.map!==null?this.map(data):data];for(;this.buffered>0;)pending.push(this.shift());for(let i=0;i<pending.length-1;i++){let data2=pending[i];this.buffered+=this.byteLength(data2),this.queue.push(data2)}this.push(pending[pending.length-1])}read(){let stream=this.stream;if((stream._duplexState&READ_STATUS)===READ_QUEUED){let data=this.shift();return this.pipeTo!==null&&this.pipeTo.write(data)===!1&&(stream._duplexState&=READ_PIPE_NOT_DRAINED),(stream._duplexState&READ_EMIT_DATA)!==0&&stream.emit("data",data),data}return this.readAhead===!1&&(stream._duplexState|=READ_READ_AHEAD,this.updateNextTick()),null}drain(){let stream=this.stream;for(;(stream._duplexState&READ_STATUS)===READ_QUEUED&&(stream._duplexState&READ_FLOWING)!==0;){let data=this.shift();this.pipeTo!==null&&this.pipeTo.write(data)===!1&&(stream._duplexState&=READ_PIPE_NOT_DRAINED),(stream._duplexState&READ_EMIT_DATA)!==0&&stream.emit("data",data)}}update(){let stream=this.stream;stream._duplexState|=READ_UPDATING;do{for(this.drain();this.buffered<this.highWaterMark&&(stream._duplexState&SHOULD_NOT_READ)===READ_READ_AHEAD;)stream._duplexState|=READ_ACTIVE_AND_NEEDS_PUSH,stream._read(this.afterRead),this.drain();(stream._duplexState&READ_READABLE_STATUS)===READ_EMIT_READABLE_AND_QUEUED&&(stream._duplexState|=READ_EMITTED_READABLE,stream.emit("readable")),(stream._duplexState&READ_PRIMARY_AND_ACTIVE)===0&&this.updateNonPrimary()}while(this.continueUpdate()===!0);stream._duplexState&=READ_NOT_UPDATING}updateNonPrimary(){let stream=this.stream;if((stream._duplexState&READ_ENDING_STATUS)===READ_ENDING&&(stream._duplexState=(stream._duplexState|READ_DONE)&READ_NOT_ENDING,stream.emit("end"),(stream._duplexState&AUTO_DESTROY)===DONE&&(stream._duplexState|=DESTROYING),this.pipeTo!==null&&this.pipeTo.end()),(stream._duplexState&DESTROY_STATUS)===DESTROYING){(stream._duplexState&ACTIVE_OR_TICKING)===0&&(stream._duplexState|=ACTIVE,stream._destroy(afterDestroy.bind(this)));return}(stream._duplexState&IS_OPENING)===OPENING&&(stream._duplexState=(stream._duplexState|ACTIVE)&NOT_OPENING,stream._open(afterOpen.bind(this)))}continueUpdate(){return(this.stream._duplexState&READ_NEXT_TICK)===0?!1:(this.stream._duplexState&=READ_NOT_NEXT_TICK,!0)}updateCallback(){(this.stream._duplexState&READ_UPDATE_SYNC_STATUS)===READ_PRIMARY?this.update():this.updateNextTick()}updateNextTickIfOpen(){(this.stream._duplexState&READ_NEXT_TICK_OR_OPENING)===0&&(this.stream._duplexState|=READ_NEXT_TICK,(this.stream._duplexState&READ_UPDATING)===0&&qmt(this.afterUpdateNextTick))}updateNextTick(){(this.stream._duplexState&READ_NEXT_TICK)===0&&(this.stream._duplexState|=READ_NEXT_TICK,(this.stream._duplexState&READ_UPDATING)===0&&qmt(this.afterUpdateNextTick))}},TransformState=class{constructor(stream){this.data=null,this.afterTransform=afterTransform.bind(stream),this.afterFinal=null}},Pipeline=class{constructor(src,dst,cb){this.from=src,this.to=dst,this.afterPipe=cb,this.error=null,this.pipeToFinished=!1}finished(){this.pipeToFinished=!0}done(stream,err){if(err&&(this.error=err),stream===this.to&&(this.to=null,this.from!==null)){((this.from._duplexState&READ_DONE)===0||!this.pipeToFinished)&&this.from.destroy(this.error||StreamError.PREMATURE_CLOSE("Writable stream closed"));return}if(stream===this.from&&(this.from=null,this.to!==null)){(stream._duplexState&READ_DONE)===0&&this.to.destroy(this.error||StreamError.PREMATURE_CLOSE("Readable stream closed"));return}this.afterPipe!==null&&this.afterPipe(this.error),this.to=this.from=this.afterPipe=null}};function afterDrain(){this.stream._duplexState|=READ_PIPE_DRAINED,this.updateCallback()}function afterFinal(err){let stream=this.stream;err&&stream.destroy(err),(stream._duplexState&DESTROY_STATUS)===0&&(stream._duplexState|=WRITE_DONE,stream.emit("finish")),(stream._duplexState&AUTO_DESTROY)===DONE&&(stream._duplexState|=DESTROYING),stream._duplexState&=WRITE_NOT_FINISHING,(stream._duplexState&WRITE_UPDATING)===0?this.update():this.updateNextTick()}function afterDestroy(err){let stream=this.stream;!err&&!StreamError.isStreamDestroyed(this.error)&&(err=this.error),err&&stream.emit("error",err),stream._duplexState|=DESTROYED,stream.emit("close");let rs=stream._readableState,ws=stream._writableState;if(rs!==null&&rs.pipeline!==null&&rs.pipeline.done(stream,err),ws!==null){for(;ws.drains!==null&&ws.drains.length>0;)ws.drains.shift().resolve(!1);ws.pipeline!==null&&ws.pipeline.done(stream,err)}}function afterWrite(err){let stream=this.stream;err&&stream.destroy(err),stream._duplexState&=WRITE_NOT_ACTIVE,this.drains!==null&&tickDrains(this.drains),(stream._duplexState&WRITE_DRAIN_STATUS)===WRITE_UNDRAINED&&(stream._duplexState&=WRITE_DRAINED,(stream._duplexState&WRITE_EMIT_DRAIN)===WRITE_EMIT_DRAIN&&stream.emit("drain")),this.updateCallback()}function afterRead(err){err&&this.stream.destroy(err),this.stream._duplexState&=READ_NOT_ACTIVE,this.readAhead===!1&&(this.stream._duplexState&READ_RESUMED)===0&&(this.stream._duplexState&=READ_NO_READ_AHEAD),this.updateCallback()}function updateReadNT(){(this.stream._duplexState&READ_UPDATING)===0&&(this.stream._duplexState&=READ_NOT_NEXT_TICK,this.update())}function updateWriteNT(){(this.stream._duplexState&WRITE_UPDATING)===0&&(this.stream._duplexState&=WRITE_NOT_NEXT_TICK,this.update())}function tickDrains(drains){for(let i=0;i<drains.length;i++)--drains[i].writes===0&&(drains.shift().resolve(!0),i--)}function afterOpen(err){let stream=this.stream;err&&stream.destroy(err),(stream._duplexState&DESTROYING)===0&&((stream._duplexState&READ_PRIMARY_STATUS)===0&&(stream._duplexState|=READ_PRIMARY),(stream._duplexState&WRITE_PRIMARY_STATUS)===0&&(stream._duplexState|=WRITE_PRIMARY),stream.emit("open")),stream._duplexState&=NOT_ACTIVE,stream._writableState!==null&&stream._writableState.updateCallback(),stream._readableState!==null&&stream._readableState.updateCallback()}function afterTransform(err,data){data!=null&&this.push(data),this._writableState.afterWrite(err)}function newListener(name){this._readableState!==null&&(name==="data"&&(this._duplexState|=READ_EMIT_DATA|READ_RESUMED_READ_AHEAD,this._readableState.updateNextTick()),name==="readable"&&(this._duplexState|=READ_EMIT_READABLE,this._readableState.updateNextTick())),this._writableState!==null&&name==="drain"&&(this._duplexState|=WRITE_EMIT_DRAIN,this._writableState.updateNextTick())}var Stream=class extends EventEmitter{constructor(opts){super(),this._duplexState=0,this._readableState=null,this._writableState=null,opts&&(opts.open&&(this._open=opts.open),opts.destroy&&(this._destroy=opts.destroy),opts.predestroy&&(this._predestroy=opts.predestroy),opts.signal&&opts.signal.addEventListener("abort",abort.bind(this))),this.on("newListener",newListener)}_open(cb){cb(null)}_destroy(cb){cb(null)}_predestroy(){}get readable(){return this._readableState!==null?!0:void 0}get writable(){return this._writableState!==null?!0:void 0}get destroyed(){return(this._duplexState&DESTROYED)!==0}get destroying(){return(this._duplexState&DESTROY_STATUS)!==0}destroy(err){(this._duplexState&DESTROY_STATUS)===0&&(err||(err=StreamError.STREAM_DESTROYED()),this._duplexState=(this._duplexState|DESTROYING)&NON_PRIMARY,this._readableState!==null&&(this._readableState.highWaterMark=0,this._readableState.error=err),this._writableState!==null&&(this._writableState.highWaterMark=0,this._writableState.error=err),this._duplexState|=PREDESTROYING,this._predestroy(),this._duplexState&=NOT_PREDESTROYING,this._readableState!==null&&this._readableState.updateNextTick(),this._writableState!==null&&this._writableState.updateNextTick())}},Readable=class _Readable extends Stream{constructor(opts){super(opts),this._duplexState|=OPENING|WRITE_DONE|READ_READ_AHEAD,this._readableState=new ReadableState(this,opts),opts&&(this._readableState.readAhead===!1&&(this._duplexState&=READ_NO_READ_AHEAD),opts.read&&(this._read=opts.read),opts.eagerOpen&&this._readableState.updateNextTick(),opts.encoding&&this.setEncoding(opts.encoding))}static deferred(fn,opts){let out=new PassThrough(opts);return fn().then(src=>{if(src===null)return out.end();out.destroying||pipeline(src,out,noop)}).catch(err=>out.destroy(err)),out}setEncoding(encoding){let dec=new TextDecoder2(encoding),map=this._readableState.map||echo;return this._readableState.map=mapOrSkip,this;function mapOrSkip(data){let next=dec.push(data);return next===""&&(data.byteLength!==0||dec.remaining>0)?null:map(next)}}_read(cb){cb(null)}pipe(dest,cb){return this._readableState.updateNextTick(),this._readableState.pipe(dest,cb),dest}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(data){return this._readableState.updateNextTickIfOpen(),this._readableState.push(data)}unshift(data){return this._readableState.updateNextTickIfOpen(),this._readableState.unshift(data)}resume(){return this._duplexState|=READ_RESUMED_READ_AHEAD,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?READ_PAUSED_NO_READ_AHEAD:READ_PAUSED,this}static _fromAsyncIterator(ite,opts){let destroy,rs=new _Readable({...opts,read(cb){ite.next().then(push).then(cb.bind(null,null)).catch(cb)},predestroy(){destroy=ite.return()},destroy(cb){if(!destroy)return cb(null);destroy.then(cb.bind(null,null)).catch(cb)}});return rs;function push(data){data.done?rs.push(null):rs.push(data.value)}}static from(data,opts){if(isReadStreamx(data))return data;if(data[asyncIterator])return this._fromAsyncIterator(data[asyncIterator](),opts);Array.isArray(data)||(data=data===void 0?[]:[data]);let i=0;return new _Readable({...opts,read(cb){this.push(i===data.length?null:data[i++]),cb(null)}})}static isBackpressured(rs){return(rs._duplexState&READ_BACKPRESSURE_STATUS)!==0||rs._readableState.buffered>=rs._readableState.highWaterMark}static isPaused(rs){return(rs._duplexState&READ_RESUMED)===0}[asyncIterator](){let stream=this,error=null,promiseResolve=null,promiseReject=null;return this.on("error",err=>{error=err}),this.on("readable",onreadable),this.on("close",onclose),{[asyncIterator](){return this},next(){return new Promise(function(resolve,reject){promiseResolve=resolve,promiseReject=reject;let data=stream.read();data!==null?ondata(data):(stream._duplexState&DESTROYED)!==0&&ondata(null)})},return(){return destroy(null)},throw(err){return destroy(err)}};function onreadable(){promiseResolve!==null&&ondata(stream.read())}function onclose(){promiseResolve!==null&&ondata(null)}function ondata(data){promiseReject!==null&&(error?promiseReject(error):data===null&&(stream._duplexState&READ_DONE)===0?promiseReject(StreamError.STREAM_DESTROYED()):promiseResolve({value:data,done:data===null}),promiseReject=promiseResolve=null)}function destroy(err){return stream.destroy(err),new Promise((resolve,reject)=>{if(stream._duplexState&DESTROYED)return resolve({value:void 0,done:!0});stream.once("close",function(){err?reject(err):resolve({value:void 0,done:!0})})})}}},Writable=class extends Stream{constructor(opts){super(opts),this._duplexState|=OPENING|READ_DONE,this._writableState=new WritableState(this,opts),opts&&(opts.writev&&(this._writev=opts.writev),opts.write&&(this._write=opts.write),opts.final&&(this._final=opts.final),opts.eagerOpen&&this._writableState.updateNextTick())}cork(){this._duplexState|=WRITE_CORKED}uncork(){this._duplexState&=WRITE_NOT_CORKED,this._writableState.updateNextTick()}_writev(batch,cb){cb(null)}_write(data,cb){this._writableState.autoBatch(data,cb)}_final(cb){cb(null)}static isBackpressured(ws){return(ws._duplexState&WRITE_BACKPRESSURE_STATUS)!==0}static drained(ws){if(ws.destroyed)return Promise.resolve(!1);let state=ws._writableState,writes=(isWritev(ws)?Math.min(1,state.queue.length):state.queue.length)+(ws._duplexState&WRITE_WRITING?1:0);return writes===0?Promise.resolve(!0):(state.drains===null&&(state.drains=[]),new Promise(resolve=>{state.drains.push({writes,resolve})}))}write(data){return this._writableState.updateNextTick(),this._writableState.push(data)}end(data){return this._writableState.updateNextTick(),this._writableState.end(data),this}},Duplex=class extends Readable{constructor(opts){super(opts),this._duplexState=OPENING|this._duplexState&READ_READ_AHEAD,this._writableState=new WritableState(this,opts),opts&&(opts.writev&&(this._writev=opts.writev),opts.write&&(this._write=opts.write),opts.final&&(this._final=opts.final))}cork(){this._duplexState|=WRITE_CORKED}uncork(){this._duplexState&=WRITE_NOT_CORKED,this._writableState.updateNextTick()}_writev(batch,cb){cb(null)}_write(data,cb){this._writableState.autoBatch(data,cb)}_final(cb){cb(null)}write(data){return this._writableState.updateNextTick(),this._writableState.push(data)}end(data){return this._writableState.updateNextTick(),this._writableState.end(data),this}},Transform=class extends Duplex{constructor(opts){super(opts),this._transformState=new TransformState(this),opts&&(opts.transform&&(this._transform=opts.transform),opts.flush&&(this._flush=opts.flush))}_write(data,cb){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=data:this._transform(data,this._transformState.afterTransform)}_read(cb){if(this._transformState.data!==null){let data=this._transformState.data;this._transformState.data=null,cb(null),this._transform(data,this._transformState.afterTransform)}else cb(null)}destroy(err){super.destroy(err),this._transformState.data!==null&&(this._transformState.data=null,this._transformState.afterTransform())}_transform(data,cb){cb(null,data)}_flush(cb){cb(null)}_final(cb){this._transformState.afterFinal=cb,this._flush(transformAfterFlush.bind(this))}},PassThrough=class extends Transform{};function transformAfterFlush(err,data){let cb=this._transformState.afterFinal;if(err)return cb(err);data!=null&&this.push(data),this.push(null),cb(null)}function pipelinePromise(...streams){return new Promise((resolve,reject)=>pipeline(...streams,err=>{if(err)return reject(err);resolve()}))}function pipeline(stream,...streams){let all=Array.isArray(stream)?[...stream,...streams]:[stream,...streams],done=all.length&&typeof all[all.length-1]=="function"?all.pop():null;if(all.length<2)throw StreamError.BAD_ARGUMENT("Pipeline requires at least 2 streams");let src=all[0],dest=null,error=null;for(let i=1;i<all.length;i++)dest=all[i],isStreamx(src)?src.pipe(dest,onerror):(errorHandle(src,!0,i>1,onerror),src.pipe(dest)),src=dest;if(done){let fin=!1,autoDestroy=isStreamx(dest)||!!(dest._writableState&&dest._writableState.autoDestroy);dest.on("error",err=>{error===null&&(error=err)}),dest.on("finish",()=>{fin=!0,autoDestroy||done(error)}),autoDestroy&&dest.on("close",()=>done(error||(fin?null:StreamError.PREMATURE_CLOSE())))}return dest;function errorHandle(s,rd,wr,onerror2){s.on("error",onerror2),s.on("close",onclose);function onclose(){if(rd&&s._readableState&&!s._readableState.ended||wr&&s._writableState&&!s._writableState.ended)return onerror2(StreamError.PREMATURE_CLOSE())}}function onerror(err){if(!(!err||error)){error=err;for(let s of all)s.destroy(err)}}}function echo(s){return s}function isStream(stream){return!!stream._readableState||!!stream._writableState}function isStreamx(stream){return typeof stream._duplexState=="number"&&isStream(stream)}function isEnding(stream){return!!stream._readableState&&stream._readableState.ending}function isEnded(stream){return!!stream._readableState&&stream._readableState.ended}function isFinishing(stream){return!!stream._writableState&&stream._writableState.ending}function isFinished(stream){return!!stream._writableState&&stream._writableState.ended}function getStreamError(stream,opts={}){let err=stream._readableState&&stream._readableState.error||stream._writableState&&stream._writableState.error;return!opts.all&&StreamError.isStreamDestroyed(err)?null:err}function isReadStreamx(stream){return isStreamx(stream)&&stream.readable}function isDisturbed(stream){return(stream._duplexState&OPENING)!==OPENING||(stream._duplexState&DESTROYING)===DESTROYING||(stream._duplexState&ACTIVE_OR_TICKING)!==0}function isTypedArray(data){return typeof data=="object"&&data!==null&&typeof data.byteLength=="number"}function defaultByteLength(data){return isTypedArray(data)?data.byteLength:1024}function noop(){}function abort(){this.destroy(StreamError.ABORTED())}function isWritev(s){return s._writev!==Writable.prototype._writev&&s._writev!==Duplex.prototype._writev}module2.exports={pipeline,pipelinePromise,isStream,isStreamx,isEnding,isEnded,isFinishing,isFinished,isDisturbed,getStreamError,Stream,Writable,Readable,Duplex,Transform,PassThrough}}});var require_headers2=__commonJS({"node_modules/tar-stream/headers.js"(exports2){var b4a=require_b4a(),ZEROS="0000000000000000000",SEVENS="7777777777777777777",ZERO_OFFSET=48,USTAR_MAGIC=b4a.from([117,115,116,97,114,0]),USTAR_VER=b4a.from([ZERO_OFFSET,ZERO_OFFSET]),GNU_MAGIC=b4a.from([117,115,116,97,114,32]),GNU_VER=b4a.from([32,0]),MASK=4095,MAGIC_OFFSET=257,VERSION_OFFSET=263;exports2.decodeLongPath=function(buf,encoding){return decodeStr(buf,0,buf.length,encoding)};exports2.encodePax=function(opts){let result="";opts.name&&(result+=addLength(" path="+opts.name+`
306
306
  `)),opts.linkname&&(result+=addLength(" linkpath="+opts.linkname+`
307
307
  `));let pax=opts.pax;if(pax)for(let key in pax)result+=addLength(" "+key+"="+pax[key]+`
308
- `);return b4a.from(result)};exports2.decodePax=function(buf){let result={};for(;buf.length;){let i=0;for(;i<buf.length&&buf[i]!==32;)i++;let len=parseInt(b4a.toString(buf.subarray(0,i)),10);if(!len)return result;let b=b4a.toString(buf.subarray(i+1,len-1)),keyIndex=b.indexOf("=");if(keyIndex===-1)return result;result[b.slice(0,keyIndex)]=b.slice(keyIndex+1),buf=buf.subarray(len)}return result};exports2.encode=function(opts){let buf=b4a.alloc(512),name=opts.name,prefix="";if(opts.typeflag===5&&name[name.length-1]!=="/"&&(name+="/"),b4a.byteLength(name)!==name.length)return null;for(;b4a.byteLength(name)>100;){let i=name.indexOf("/");if(i===-1)return null;prefix+=prefix?"/"+name.slice(0,i):name.slice(0,i),name=name.slice(i+1)}return b4a.byteLength(name)>100||b4a.byteLength(prefix)>155||opts.linkname&&b4a.byteLength(opts.linkname)>100?null:(b4a.write(buf,name),b4a.write(buf,encodeOct(opts.mode&MASK,6),100),b4a.write(buf,encodeOct(opts.uid,6),108),b4a.write(buf,encodeOct(opts.gid,6),116),encodeSize(opts.size,buf,124),b4a.write(buf,encodeOct(opts.mtime.getTime()/1e3|0,11),136),buf[156]=ZERO_OFFSET+toTypeflag(opts.type),opts.linkname&&b4a.write(buf,opts.linkname,157),b4a.copy(USTAR_MAGIC,buf,MAGIC_OFFSET),b4a.copy(USTAR_VER,buf,VERSION_OFFSET),opts.uname&&b4a.write(buf,opts.uname,265),opts.gname&&b4a.write(buf,opts.gname,297),b4a.write(buf,encodeOct(opts.devmajor||0,6),329),b4a.write(buf,encodeOct(opts.devminor||0,6),337),prefix&&b4a.write(buf,prefix,345),b4a.write(buf,encodeOct(cksum(buf),6),148),buf)};exports2.decode=function(buf,filenameEncoding,allowUnknownFormat){let typeflag=buf[156]===0?0:buf[156]-ZERO_OFFSET,name=decodeStr(buf,0,100,filenameEncoding),mode=decodeOct(buf,100,8),uid=decodeOct(buf,108,8),gid=decodeOct(buf,116,8),size=decodeOct(buf,124,12),mtime=decodeOct(buf,136,12),type=toType(typeflag),linkname=buf[157]===0?null:decodeStr(buf,157,100,filenameEncoding),uname=decodeStr(buf,265,32),gname=decodeStr(buf,297,32),devmajor=decodeOct(buf,329,8),devminor=decodeOct(buf,337,8),c=cksum(buf);if(c===256)return null;if(c!==decodeOct(buf,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(isUSTAR(buf))buf[345]&&(name=decodeStr(buf,345,155,filenameEncoding)+"/"+name);else if(!isGNU(buf)){if(!allowUnknownFormat)throw new Error("Invalid tar header: unknown format.")}return typeflag===0&&name&&name[name.length-1]==="/"&&(typeflag=5),{name,mode,uid,gid,size,byteOffset:0,mtime:new Date(1e3*mtime),type,linkname,uname,gname,devmajor,devminor,pax:null}};function isUSTAR(buf){return b4a.equals(USTAR_MAGIC,buf.subarray(MAGIC_OFFSET,MAGIC_OFFSET+6))}function isGNU(buf){return b4a.equals(GNU_MAGIC,buf.subarray(MAGIC_OFFSET,MAGIC_OFFSET+6))&&b4a.equals(GNU_VER,buf.subarray(VERSION_OFFSET,VERSION_OFFSET+2))}function clamp(index,len,defaultValue){return typeof index!="number"?defaultValue:(index=~~index,index>=len?len:index>=0||(index+=len,index>=0)?index:0)}function toType(flag){switch(flag){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function toTypeflag(flag){switch(flag){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function indexOf(block,num,offset,end){for(;offset<end;offset++)if(block[offset]===num)return offset;return end}function cksum(block){let sum=256;for(let i=0;i<148;i++)sum+=block[i];for(let j=156;j<512;j++)sum+=block[j];return sum}function encodeOct(val,n){return val=val.toString(8),val.length>n?SEVENS.slice(0,n)+" ":ZEROS.slice(0,n-val.length)+val+" "}function encodeSizeBin(num,buf,off){buf[off]=128;for(let i=11;i>0;i--)buf[off+i]=num&255,num=Math.floor(num/256)}function encodeSize(num,buf,off){num.toString(8).length>11?encodeSizeBin(num,buf,off):b4a.write(buf,encodeOct(num,11),off)}function parse256(buf){let positive;if(buf[0]===128)positive=!0;else if(buf[0]===255)positive=!1;else return null;let tuple=[],i;for(i=buf.length-1;i>0;i--){let byte=buf[i];positive?tuple.push(byte):tuple.push(255-byte)}let sum=0,l=tuple.length;for(i=0;i<l;i++)sum+=tuple[i]*Math.pow(256,i);return positive?sum:-1*sum}function decodeOct(val,offset,length){if(val=val.subarray(offset,offset+length),offset=0,val[offset]&128)return parse256(val);{for(;offset<val.length&&val[offset]===32;)offset++;let end=clamp(indexOf(val,32,offset,val.length),val.length,val.length);for(;offset<end&&val[offset]===0;)offset++;return end===offset?0:parseInt(b4a.toString(val.subarray(offset,end)),8)}}function decodeStr(val,offset,length,encoding){return b4a.toString(val.subarray(offset,indexOf(val,0,offset,offset+length)),encoding)}function addLength(str){let len=b4a.byteLength(str),digits=Math.floor(Math.log(len)/Math.log(10))+1;return len+digits>=Math.pow(10,digits)&&digits++,len+digits+str}}});var require_extract=__commonJS({"node_modules/tar-stream/extract.js"(exports2,module2){var{Writable,Readable,getStreamError}=require_streamx(),FIFO=require_fast_fifo(),b4a=require_b4a(),headers=require_headers(),EMPTY=b4a.alloc(0),MAX_HEADER_SIZE=4*1024*1024,BufferList=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new FIFO,this._offset=0}push(buffer){this.buffered+=buffer.byteLength,this.queue.push(buffer)}shiftFirst(size){return this.buffered===0?null:this._next(size)}shift(size){if(size>this.buffered)return null;if(size===0)return EMPTY;let chunk=this._next(size);if(size===chunk.byteLength)return chunk;let chunks=[chunk];for(;(size-=chunk.byteLength)>0;)chunk=this._next(size),chunks.push(chunk);return b4a.concat(chunks)}_next(size){let buf=this.queue.peek(),rem=buf.byteLength-this._offset;if(size>=rem){let sub=this._offset?buf.subarray(this._offset,buf.byteLength):buf;return this.queue.shift(),this._offset=0,this.buffered-=rem,this.shifted+=rem,sub}return this.buffered-=size,this.shifted+=size,buf.subarray(this._offset,this._offset+=size)}},Source=class extends Readable{constructor(self2,header,offset){super(),this.header=header,this.offset=offset,this._parent=self2}_read(cb){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),cb(null)}_predestroy(){this._parent.destroy(getStreamError(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=overflow(this.header.size),this._parent._update())}_destroy(cb){this._detach(),cb(null)}},Extract=class extends Writable{constructor(opts){super(opts),opts||(opts={}),this._buffer=new BufferList,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=noop,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=opts.filenameEncoding||"utf-8",this._allowUnknownFormat=!!opts.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(err){if(this._locked=!1,err){this.destroy(err),this._continueWrite(err);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=headers.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(err){return this._continueWrite(err),!1}if(!this._header)return!0;switch(this._header.byteOffset=this._buffer.shifted,this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,this._missing>MAX_HEADER_SIZE?(this._continueWrite(new Error("Header exceeds max size")),!1):!0}return this._locked=!0,this._applyLongHeaders(),this._header.size>=0?this._header.size===0||this._header.type==="directory"?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0):(this._continueWrite(new Error("Invalid header")),!1)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(buf){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=headers.decodeLongPath(buf,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=headers.decodeLongPath(buf,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=headers.decodePax(buf);break;case"pax-header":this._pax=this._paxGlobal===null?headers.decodePax(buf):Object.assign({},this._paxGlobal,headers.decodePax(buf));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=overflow(this._header.size);let buf=this._buffer.shift(this._header.size);try{this._decodeLongHeader(buf)}catch(err){return this._continueWrite(err),!1}return!0}_consumeStream(){let buf=this._buffer.shiftFirst(this._missing);if(buf===null)return!1;this._missing-=buf.byteLength;let drained=this._stream.push(buf);return this._missing===0?(this._stream.push(null),drained&&this._stream._detach(),drained&&this._locked===!1):drained}_createStream(){return new Source(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let ignore=this._buffer.shiftFirst(this._missing);ignore!==null&&(this._missing-=ignore.byteLength);continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(err){let cb=this._callback;this._callback=noop,cb(err)}_write(data,cb){this._callback=cb,this._buffer.push(data),this._update()}_final(cb){this._finished=this._missing===0&&this._buffer.buffered===0,cb(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(cb){this._stream&&this._stream.destroy(getStreamError(this)),cb(null)}[Symbol.asyncIterator](){let error=null,promiseResolve=null,promiseReject=null,entryStream=null,entryCallback=null,extract=this;return this.on("entry",onentry),this.on("error",err=>{error=err}),this.on("close",onclose),{[Symbol.asyncIterator](){return this},next(){return new Promise(onnext)},return(){return destroy(null)},throw(err){return destroy(err)}};function consumeCallback(err){if(!entryCallback)return;let cb=entryCallback;entryCallback=null,cb(err)}function onnext(resolve,reject){if(error)return reject(error);if(entryStream){resolve({value:entryStream,done:!1}),entryStream=null;return}promiseResolve=resolve,promiseReject=reject,consumeCallback(null),extract._finished&&promiseResolve&&(promiseResolve({value:void 0,done:!0}),promiseResolve=promiseReject=null)}function onentry(header,stream,callback){entryCallback=callback,stream.on("error",noop),promiseResolve?(promiseResolve({value:stream,done:!1}),promiseResolve=promiseReject=null):entryStream=stream}function onclose(){consumeCallback(error),promiseResolve&&(error?promiseReject(error):promiseResolve({value:void 0,done:!0}),promiseResolve=promiseReject=null)}function destroy(err){return extract.destroy(err),consumeCallback(err),new Promise((resolve,reject)=>{if(extract.destroyed)return resolve({value:void 0,done:!0});extract.once("close",function(){err?reject(err):resolve({value:void 0,done:!0})})})}}};module2.exports=function(opts){return new Extract(opts)};function noop(){}function overflow(size){return size&=511,size&&512-size}}});var require_constants6=__commonJS({"node_modules/tar-stream/constants.js"(exports2,module2){var constants={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{module2.exports=require("fs").constants||constants}catch{module2.exports=constants}}});var require_pack=__commonJS({"node_modules/tar-stream/pack.js"(exports2,module2){var{Readable,Writable,getStreamError}=require_streamx(),b4a=require_b4a(),constants=require_constants6(),headers=require_headers(),DMODE=493,FMODE=420,END_OF_TAR=b4a.alloc(1024),Sink=class extends Writable{constructor(pack,header,callback){super({mapWritable,eagerOpen:!0}),this.written=0,this.header=header,this._callback=callback,this._linkname=null,this._isLinkname=header.type==="symlink"&&!header.linkname,this._isVoid=header.type!=="file"&&header.type!=="contiguous-file",this._finished=!1,this._pack=pack,this._openCallback=null,this._pack._stream===null?this._pack._stream=this:this._pack._pending.push(this)}_open(cb){this._openCallback=cb,this._pack._stream===this&&this._continueOpen()}_continuePack(err){if(this._callback===null)return;let callback=this._callback;this._callback=null,callback(err)}_continueOpen(){this._pack._stream===null&&(this._pack._stream=this);let cb=this._openCallback;if(this._openCallback=null,cb!==null){if(this._pack.destroying)return cb(new Error("pack stream destroyed"));if(this._pack._finalized)return cb(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),cb(null)}}_write(data,cb){if(this._isLinkname)return this._linkname=this._linkname?b4a.concat([this._linkname,data]):data,cb(null);if(this._isVoid)return data.byteLength>0?cb(new Error("No body allowed for this entry")):cb();if(this.written+=data.byteLength,this._pack.push(data))return cb();this._pack._drain=cb}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?b4a.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),overflow(this._pack,this.header.size),this._pack._done(this))}_final(cb){if(this.written!==this.header.size)return cb(new Error("Size mismatch"));this._finish(),cb(null)}_getError(){return getStreamError(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(cb){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),cb()}},Pack=class extends Readable{constructor(opts){super(opts),this._drain=noop,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(header,buffer,callback){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");typeof buffer=="function"&&(callback=buffer,buffer=null),callback||(callback=noop),(!header.size||header.type==="symlink")&&(header.size=0),header.type||(header.type=modeToType(header.mode)),header.mode||(header.mode=header.type==="directory"?DMODE:FMODE),header.uid||(header.uid=0),header.gid||(header.gid=0),header.mtime||(header.mtime=new Date),typeof buffer=="string"&&(buffer=b4a.from(buffer));let sink=new Sink(this,header,callback);return b4a.isBuffer(buffer)?(header.size=buffer.byteLength,sink.write(buffer),sink.end(),sink):(sink._isVoid,sink)}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(END_OF_TAR),this.push(null))}_done(stream){stream===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(header){if(!header.pax){let buf=headers.encode(header);if(buf){this.push(buf);return}}this._encodePax(header)}_encodePax(header){let paxHeader=headers.encodePax({name:header.name,linkname:header.linkname,pax:header.pax}),newHeader={name:"PaxHeader",mode:header.mode,uid:header.uid,gid:header.gid,size:paxHeader.byteLength,mtime:header.mtime,type:"pax-header",linkname:header.linkname&&"PaxHeader",uname:header.uname,gname:header.gname,devmajor:header.devmajor,devminor:header.devminor};this.push(headers.encode(newHeader)),this.push(paxHeader),overflow(this,paxHeader.byteLength),newHeader.size=header.size,newHeader.type=header.type,this.push(headers.encode(newHeader))}_doDrain(){let drain=this._drain;this._drain=noop,drain()}_predestroy(){let err=getStreamError(this);for(this._stream&&this._stream.destroy(err);this._pending.length;){let stream=this._pending.shift();stream.destroy(err),stream._continueOpen()}this._doDrain()}_read(cb){this._doDrain(),cb()}};module2.exports=function(opts){return new Pack(opts)};function modeToType(mode){switch(mode&constants.S_IFMT){case constants.S_IFBLK:return"block-device";case constants.S_IFCHR:return"character-device";case constants.S_IFDIR:return"directory";case constants.S_IFIFO:return"fifo";case constants.S_IFLNK:return"symlink"}return"file"}function noop(){}function overflow(self2,size){size&=511,size&&self2.push(END_OF_TAR.subarray(0,512-size))}function mapWritable(buf){return b4a.isBuffer(buf)?buf:b4a.from(buf)}}});var require_tar_stream=__commonJS({"node_modules/tar-stream/index.js"(exports2){exports2.extract=require_extract();exports2.pack=require_pack()}});var require_pend=__commonJS({"node_modules/pend/index.js"(exports2,module2){module2.exports=Pend;function Pend(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}Pend.prototype.go=function(fn){this.pending<this.max?pendGo(this,fn):this.waiting.push(fn)};Pend.prototype.wait=function(cb){this.pending===0?cb(this.error):this.listeners.push(cb)};Pend.prototype.hold=function(){return pendHold(this)};function pendHold(self2){self2.pending+=1;var called=!1;return onCb;function onCb(err){if(called)throw new Error("callback called twice");if(called=!0,self2.error=self2.error||err,self2.pending-=1,self2.waiting.length>0&&self2.pending<self2.max)pendGo(self2,self2.waiting.shift());else if(self2.pending===0){var listeners=self2.listeners;self2.listeners=[],listeners.forEach(cbListener)}}function cbListener(listener){listener(self2.error)}}function pendGo(self2,fn){fn(pendHold(self2))}}});var require_fd_slicer=__commonJS({"node_modules/fd-slicer/index.js"(exports2){var fs=require("fs"),util=require("util"),stream=require("stream"),Readable=stream.Readable,Writable=stream.Writable,PassThrough=stream.PassThrough,Pend=require_pend(),EventEmitter=require("events").EventEmitter;exports2.createFromBuffer=createFromBuffer;exports2.createFromFd=createFromFd;exports2.BufferSlicer=BufferSlicer;exports2.FdSlicer=FdSlicer;util.inherits(FdSlicer,EventEmitter);function FdSlicer(fd,options){options=options||{},EventEmitter.call(this),this.fd=fd,this.pend=new Pend,this.pend.max=1,this.refCount=0,this.autoClose=!!options.autoClose}FdSlicer.prototype.read=function(buffer,offset,length,position,callback){var self2=this;self2.pend.go(function(cb){fs.read(self2.fd,buffer,offset,length,position,function(err,bytesRead,buffer2){cb(),callback(err,bytesRead,buffer2)})})};FdSlicer.prototype.write=function(buffer,offset,length,position,callback){var self2=this;self2.pend.go(function(cb){fs.write(self2.fd,buffer,offset,length,position,function(err,written,buffer2){cb(),callback(err,written,buffer2)})})};FdSlicer.prototype.createReadStream=function(options){return new ReadStream(this,options)};FdSlicer.prototype.createWriteStream=function(options){return new WriteStream(this,options)};FdSlicer.prototype.ref=function(){this.refCount+=1};FdSlicer.prototype.unref=function(){var self2=this;if(self2.refCount-=1,self2.refCount>0)return;if(self2.refCount<0)throw new Error("invalid unref");self2.autoClose&&fs.close(self2.fd,onCloseDone);function onCloseDone(err){err?self2.emit("error",err):self2.emit("close")}};util.inherits(ReadStream,Readable);function ReadStream(context,options){options=options||{},Readable.call(this,options),this.context=context,this.context.ref(),this.start=options.start||0,this.endOffset=options.end,this.pos=this.start,this.destroyed=!1}ReadStream.prototype._read=function(n){var self2=this;if(!self2.destroyed){var toRead=Math.min(self2._readableState.highWaterMark,n);if(self2.endOffset!=null&&(toRead=Math.min(toRead,self2.endOffset-self2.pos)),toRead<=0){self2.destroyed=!0,self2.push(null),self2.context.unref();return}self2.context.pend.go(function(cb){if(self2.destroyed)return cb();var buffer=new Buffer(toRead);fs.read(self2.context.fd,buffer,0,toRead,self2.pos,function(err,bytesRead){err?self2.destroy(err):bytesRead===0?(self2.destroyed=!0,self2.push(null),self2.context.unref()):(self2.pos+=bytesRead,self2.push(buffer.slice(0,bytesRead))),cb()})})}};ReadStream.prototype.destroy=function(err){this.destroyed||(err=err||new Error("stream destroyed"),this.destroyed=!0,this.emit("error",err),this.context.unref())};util.inherits(WriteStream,Writable);function WriteStream(context,options){options=options||{},Writable.call(this,options),this.context=context,this.context.ref(),this.start=options.start||0,this.endOffset=options.end==null?1/0:+options.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}WriteStream.prototype._write=function(buffer,encoding,callback){var self2=this;if(!self2.destroyed){if(self2.pos+buffer.length>self2.endOffset){var err=new Error("maximum file length exceeded");err.code="ETOOBIG",self2.destroy(),callback(err);return}self2.context.pend.go(function(cb){if(self2.destroyed)return cb();fs.write(self2.context.fd,buffer,0,buffer.length,self2.pos,function(err2,bytes){err2?(self2.destroy(),cb(),callback(err2)):(self2.bytesWritten+=bytes,self2.pos+=bytes,self2.emit("progress"),cb(),callback())})})}};WriteStream.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.context.unref())};util.inherits(BufferSlicer,EventEmitter);function BufferSlicer(buffer,options){EventEmitter.call(this),options=options||{},this.refCount=0,this.buffer=buffer,this.maxChunkSize=options.maxChunkSize||Number.MAX_SAFE_INTEGER}BufferSlicer.prototype.read=function(buffer,offset,length,position,callback){var end=position+length,delta=end-this.buffer.length,written=delta>0?delta:length;this.buffer.copy(buffer,offset,position,end),setImmediate(function(){callback(null,written)})};BufferSlicer.prototype.write=function(buffer,offset,length,position,callback){buffer.copy(this.buffer,position,offset,offset+length),setImmediate(function(){callback(null,length,buffer)})};BufferSlicer.prototype.createReadStream=function(options){options=options||{};var readStream=new PassThrough(options);readStream.destroyed=!1,readStream.start=options.start||0,readStream.endOffset=options.end,readStream.pos=readStream.endOffset||this.buffer.length;for(var entireSlice=this.buffer.slice(readStream.start,readStream.pos),offset=0;;){var nextOffset=offset+this.maxChunkSize;if(nextOffset>=entireSlice.length){offset<entireSlice.length&&readStream.write(entireSlice.slice(offset,entireSlice.length));break}readStream.write(entireSlice.slice(offset,nextOffset)),offset=nextOffset}return readStream.end(),readStream.destroy=function(){readStream.destroyed=!0},readStream};BufferSlicer.prototype.createWriteStream=function(options){var bufferSlicer=this;options=options||{};var writeStream=new Writable(options);return writeStream.start=options.start||0,writeStream.endOffset=options.end==null?this.buffer.length:+options.end,writeStream.bytesWritten=0,writeStream.pos=writeStream.start,writeStream.destroyed=!1,writeStream._write=function(buffer,encoding,callback){if(!writeStream.destroyed){var end=writeStream.pos+buffer.length;if(end>writeStream.endOffset){var err=new Error("maximum file length exceeded");err.code="ETOOBIG",writeStream.destroyed=!0,callback(err);return}buffer.copy(bufferSlicer.buffer,writeStream.pos,0,buffer.length),writeStream.bytesWritten+=buffer.length,writeStream.pos=end,writeStream.emit("progress"),callback()}},writeStream.destroy=function(){writeStream.destroyed=!0},writeStream};BufferSlicer.prototype.ref=function(){this.refCount+=1};BufferSlicer.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw new Error("invalid unref")};function createFromBuffer(buffer,options){return new BufferSlicer(buffer,options)}function createFromFd(fd,options){return new FdSlicer(fd,options)}}});var require_buffer_crc32=__commonJS({"node_modules/yauzl/node_modules/buffer-crc32/index.js"(exports2,module2){var Buffer2=require("buffer").Buffer,CRC_TABLE=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(CRC_TABLE=new Int32Array(CRC_TABLE));function ensureBuffer(input){if(Buffer2.isBuffer(input))return input;var hasNewBufferAPI=typeof Buffer2.alloc=="function"&&typeof Buffer2.from=="function";if(typeof input=="number")return hasNewBufferAPI?Buffer2.alloc(input):new Buffer2(input);if(typeof input=="string")return hasNewBufferAPI?Buffer2.from(input):new Buffer2(input);throw new Error("input must be buffer, number, or string, received "+typeof input)}function bufferizeInt(num){var tmp=ensureBuffer(4);return tmp.writeInt32BE(num,0),tmp}function _crc32(buf,previous){buf=ensureBuffer(buf),Buffer2.isBuffer(previous)&&(previous=previous.readUInt32BE(0));for(var crc=~~previous^-1,n=0;n<buf.length;n++)crc=CRC_TABLE[(crc^buf[n])&255]^crc>>>8;return crc^-1}function crc32(){return bufferizeInt(_crc32.apply(null,arguments))}crc32.signed=function(){return _crc32.apply(null,arguments)};crc32.unsigned=function(){return _crc32.apply(null,arguments)>>>0};module2.exports=crc32}});var require_yauzl=__commonJS({"node_modules/yauzl/index.js"(exports2){var fs=require("fs"),zlib=require("zlib"),fd_slicer=require_fd_slicer(),crc32=require_buffer_crc32(),util=require("util"),EventEmitter=require("events").EventEmitter,Transform=require("stream").Transform,PassThrough=require("stream").PassThrough,Writable=require("stream").Writable;exports2.open=open;exports2.fromFd=fromFd;exports2.fromBuffer=fromBuffer;exports2.fromRandomAccessReader=fromRandomAccessReader;exports2.dosDateTimeToDate=dosDateTimeToDate;exports2.validateFileName=validateFileName;exports2.ZipFile=ZipFile;exports2.Entry=Entry;exports2.RandomAccessReader=RandomAccessReader;function open(path,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose==null&&(options.autoClose=!0),options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0),options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1),callback==null&&(callback=defaultCallback),fs.open(path,"r",function(err,fd){if(err)return callback(err);fromFd(fd,options,function(err2,zipfile){err2&&fs.close(fd,defaultCallback),callback(err2,zipfile)})})}function fromFd(fd,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose==null&&(options.autoClose=!1),options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0),options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1),callback==null&&(callback=defaultCallback),fs.fstat(fd,function(err,stats){if(err)return callback(err);var reader=fd_slicer.createFromFd(fd,{autoClose:!0});fromRandomAccessReader(reader,stats.size,options,callback)})}function fromBuffer(buffer,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose=!1,options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0),options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1);var reader=fd_slicer.createFromBuffer(buffer,{maxChunkSize:65536});fromRandomAccessReader(reader,buffer.length,options,callback)}function fromRandomAccessReader(reader,totalSize,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose==null&&(options.autoClose=!0),options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0);var decodeStrings=!!options.decodeStrings;if(options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1),callback==null&&(callback=defaultCallback),typeof totalSize!="number")throw new Error("expected totalSize parameter to be a number");if(totalSize>Number.MAX_SAFE_INTEGER)throw new Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");reader.ref();var eocdrWithoutCommentSize=22,maxCommentSize=65535,bufferSize=Math.min(eocdrWithoutCommentSize+maxCommentSize,totalSize),buffer=newBuffer(bufferSize),bufferReadStart=totalSize-buffer.length;readAndAssertNoEof(reader,buffer,0,bufferSize,bufferReadStart,function(err){if(err)return callback(err);for(var i=bufferSize-eocdrWithoutCommentSize;i>=0;i-=1)if(buffer.readUInt32LE(i)===101010256){var eocdrBuffer=buffer.slice(i),diskNumber=eocdrBuffer.readUInt16LE(4);if(diskNumber!==0)return callback(new Error("multi-disk zip files are not supported: found disk number: "+diskNumber));var entryCount=eocdrBuffer.readUInt16LE(10),centralDirectoryOffset=eocdrBuffer.readUInt32LE(16),commentLength=eocdrBuffer.readUInt16LE(20),expectedCommentLength=eocdrBuffer.length-eocdrWithoutCommentSize;if(commentLength!==expectedCommentLength)return callback(new Error("invalid comment length. expected: "+expectedCommentLength+". found: "+commentLength));var comment=decodeStrings?decodeBuffer(eocdrBuffer,22,eocdrBuffer.length,!1):eocdrBuffer.slice(22);if(!(entryCount===65535||centralDirectoryOffset===4294967295))return callback(null,new ZipFile(reader,centralDirectoryOffset,totalSize,entryCount,comment,options.autoClose,options.lazyEntries,decodeStrings,options.validateEntrySizes,options.strictFileNames));var zip64EocdlBuffer=newBuffer(20),zip64EocdlOffset=bufferReadStart+i-zip64EocdlBuffer.length;readAndAssertNoEof(reader,zip64EocdlBuffer,0,zip64EocdlBuffer.length,zip64EocdlOffset,function(err2){if(err2)return callback(err2);if(zip64EocdlBuffer.readUInt32LE(0)!==117853008)return callback(new Error("invalid zip64 end of central directory locator signature"));var zip64EocdrOffset=readUInt64LE(zip64EocdlBuffer,8),zip64EocdrBuffer=newBuffer(56);readAndAssertNoEof(reader,zip64EocdrBuffer,0,zip64EocdrBuffer.length,zip64EocdrOffset,function(err3){return err3?callback(err3):zip64EocdrBuffer.readUInt32LE(0)!==101075792?callback(new Error("invalid zip64 end of central directory record signature")):(entryCount=readUInt64LE(zip64EocdrBuffer,32),centralDirectoryOffset=readUInt64LE(zip64EocdrBuffer,48),callback(null,new ZipFile(reader,centralDirectoryOffset,totalSize,entryCount,comment,options.autoClose,options.lazyEntries,decodeStrings,options.validateEntrySizes,options.strictFileNames)))})});return}callback(new Error("end of central directory record signature not found"))})}util.inherits(ZipFile,EventEmitter);function ZipFile(reader,centralDirectoryOffset,fileSize,entryCount,comment,autoClose,lazyEntries,decodeStrings,validateEntrySizes,strictFileNames){var self2=this;EventEmitter.call(self2),self2.reader=reader,self2.reader.on("error",function(err){emitError(self2,err)}),self2.reader.once("close",function(){self2.emit("close")}),self2.readEntryCursor=centralDirectoryOffset,self2.fileSize=fileSize,self2.entryCount=entryCount,self2.comment=comment,self2.entriesRead=0,self2.autoClose=!!autoClose,self2.lazyEntries=!!lazyEntries,self2.decodeStrings=!!decodeStrings,self2.validateEntrySizes=!!validateEntrySizes,self2.strictFileNames=!!strictFileNames,self2.isOpen=!0,self2.emittedError=!1,self2.lazyEntries||self2._readEntry()}ZipFile.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())};function emitErrorAndAutoClose(self2,err){self2.autoClose&&self2.close(),emitError(self2,err)}function emitError(self2,err){self2.emittedError||(self2.emittedError=!0,self2.emit("error",err))}ZipFile.prototype.readEntry=function(){if(!this.lazyEntries)throw new Error("readEntry() called without lazyEntries:true");this._readEntry()};ZipFile.prototype._readEntry=function(){var self2=this;if(self2.entryCount===self2.entriesRead){setImmediate(function(){self2.autoClose&&self2.close(),!self2.emittedError&&self2.emit("end")});return}if(!self2.emittedError){var buffer=newBuffer(46);readAndAssertNoEof(self2.reader,buffer,0,buffer.length,self2.readEntryCursor,function(err){if(err)return emitErrorAndAutoClose(self2,err);if(!self2.emittedError){var entry=new Entry,signature=buffer.readUInt32LE(0);if(signature!==33639248)return emitErrorAndAutoClose(self2,new Error("invalid central directory file header signature: 0x"+signature.toString(16)));if(entry.versionMadeBy=buffer.readUInt16LE(4),entry.versionNeededToExtract=buffer.readUInt16LE(6),entry.generalPurposeBitFlag=buffer.readUInt16LE(8),entry.compressionMethod=buffer.readUInt16LE(10),entry.lastModFileTime=buffer.readUInt16LE(12),entry.lastModFileDate=buffer.readUInt16LE(14),entry.crc32=buffer.readUInt32LE(16),entry.compressedSize=buffer.readUInt32LE(20),entry.uncompressedSize=buffer.readUInt32LE(24),entry.fileNameLength=buffer.readUInt16LE(28),entry.extraFieldLength=buffer.readUInt16LE(30),entry.fileCommentLength=buffer.readUInt16LE(32),entry.internalFileAttributes=buffer.readUInt16LE(36),entry.externalFileAttributes=buffer.readUInt32LE(38),entry.relativeOffsetOfLocalHeader=buffer.readUInt32LE(42),entry.generalPurposeBitFlag&64)return emitErrorAndAutoClose(self2,new Error("strong encryption is not supported"));self2.readEntryCursor+=46,buffer=newBuffer(entry.fileNameLength+entry.extraFieldLength+entry.fileCommentLength),readAndAssertNoEof(self2.reader,buffer,0,buffer.length,self2.readEntryCursor,function(err2){if(err2)return emitErrorAndAutoClose(self2,err2);if(!self2.emittedError){var isUtf8=(entry.generalPurposeBitFlag&2048)!==0;entry.fileName=self2.decodeStrings?decodeBuffer(buffer,0,entry.fileNameLength,isUtf8):buffer.slice(0,entry.fileNameLength);var fileCommentStart=entry.fileNameLength+entry.extraFieldLength,extraFieldBuffer=buffer.slice(entry.fileNameLength,fileCommentStart);entry.extraFields=[];for(var i=0;i<extraFieldBuffer.length-3;){var headerId=extraFieldBuffer.readUInt16LE(i+0),dataSize=extraFieldBuffer.readUInt16LE(i+2),dataStart=i+4,dataEnd=dataStart+dataSize;if(dataEnd>extraFieldBuffer.length)return emitErrorAndAutoClose(self2,new Error("extra field length exceeds extra field buffer size"));var dataBuffer=newBuffer(dataSize);extraFieldBuffer.copy(dataBuffer,0,dataStart,dataEnd),entry.extraFields.push({id:headerId,data:dataBuffer}),i=dataEnd}if(entry.fileComment=self2.decodeStrings?decodeBuffer(buffer,fileCommentStart,fileCommentStart+entry.fileCommentLength,isUtf8):buffer.slice(fileCommentStart,fileCommentStart+entry.fileCommentLength),entry.comment=entry.fileComment,self2.readEntryCursor+=buffer.length,self2.entriesRead+=1,entry.uncompressedSize===4294967295||entry.compressedSize===4294967295||entry.relativeOffsetOfLocalHeader===4294967295){for(var zip64EiefBuffer=null,i=0;i<entry.extraFields.length;i++){var extraField=entry.extraFields[i];if(extraField.id===1){zip64EiefBuffer=extraField.data;break}}if(zip64EiefBuffer==null)return emitErrorAndAutoClose(self2,new Error("expected zip64 extended information extra field"));var index=0;if(entry.uncompressedSize===4294967295){if(index+8>zip64EiefBuffer.length)return emitErrorAndAutoClose(self2,new Error("zip64 extended information extra field does not include uncompressed size"));entry.uncompressedSize=readUInt64LE(zip64EiefBuffer,index),index+=8}if(entry.compressedSize===4294967295){if(index+8>zip64EiefBuffer.length)return emitErrorAndAutoClose(self2,new Error("zip64 extended information extra field does not include compressed size"));entry.compressedSize=readUInt64LE(zip64EiefBuffer,index),index+=8}if(entry.relativeOffsetOfLocalHeader===4294967295){if(index+8>zip64EiefBuffer.length)return emitErrorAndAutoClose(self2,new Error("zip64 extended information extra field does not include relative header offset"));entry.relativeOffsetOfLocalHeader=readUInt64LE(zip64EiefBuffer,index),index+=8}}if(self2.decodeStrings)for(var i=0;i<entry.extraFields.length;i++){var extraField=entry.extraFields[i];if(extraField.id===28789){if(extraField.data.length<6||extraField.data.readUInt8(0)!==1)continue;var oldNameCrc32=extraField.data.readUInt32LE(1);if(crc32.unsigned(buffer.slice(0,entry.fileNameLength))!==oldNameCrc32)continue;entry.fileName=decodeBuffer(extraField.data,5,extraField.data.length,!0);break}}if(self2.validateEntrySizes&&entry.compressionMethod===0){var expectedCompressedSize=entry.uncompressedSize;if(entry.isEncrypted()&&(expectedCompressedSize+=12),entry.compressedSize!==expectedCompressedSize){var msg="compressed/uncompressed size mismatch for stored file: "+entry.compressedSize+" != "+entry.uncompressedSize;return emitErrorAndAutoClose(self2,new Error(msg))}}if(self2.decodeStrings){self2.strictFileNames||(entry.fileName=entry.fileName.replace(/\\/g,"/"));var errorMessage=validateFileName(entry.fileName,self2.validateFileNameOptions);if(errorMessage!=null)return emitErrorAndAutoClose(self2,new Error(errorMessage))}self2.emit("entry",entry),self2.lazyEntries||self2._readEntry()}})}})}};ZipFile.prototype.openReadStream=function(entry,options,callback){var self2=this,relativeStart=0,relativeEnd=entry.compressedSize;if(callback==null)callback=options,options={};else{if(options.decrypt!=null){if(!entry.isEncrypted())throw new Error("options.decrypt can only be specified for encrypted entries");if(options.decrypt!==!1)throw new Error("invalid options.decrypt value: "+options.decrypt);if(entry.isCompressed()&&options.decompress!==!1)throw new Error("entry is encrypted and compressed, and options.decompress !== false")}if(options.decompress!=null){if(!entry.isCompressed())throw new Error("options.decompress can only be specified for compressed entries");if(!(options.decompress===!1||options.decompress===!0))throw new Error("invalid options.decompress value: "+options.decompress)}if(options.start!=null||options.end!=null){if(entry.isCompressed()&&options.decompress!==!1)throw new Error("start/end range not allowed for compressed entry without options.decompress === false");if(entry.isEncrypted()&&options.decrypt!==!1)throw new Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(options.start!=null){if(relativeStart=options.start,relativeStart<0)throw new Error("options.start < 0");if(relativeStart>entry.compressedSize)throw new Error("options.start > entry.compressedSize")}if(options.end!=null){if(relativeEnd=options.end,relativeEnd<0)throw new Error("options.end < 0");if(relativeEnd>entry.compressedSize)throw new Error("options.end > entry.compressedSize");if(relativeEnd<relativeStart)throw new Error("options.end < options.start")}}if(!self2.isOpen)return callback(new Error("closed"));if(entry.isEncrypted()&&options.decrypt!==!1)return callback(new Error("entry is encrypted, and options.decrypt !== false"));self2.reader.ref();var buffer=newBuffer(30);readAndAssertNoEof(self2.reader,buffer,0,buffer.length,entry.relativeOffsetOfLocalHeader,function(err){try{if(err)return callback(err);var signature=buffer.readUInt32LE(0);if(signature!==67324752)return callback(new Error("invalid local file header signature: 0x"+signature.toString(16)));var fileNameLength=buffer.readUInt16LE(26),extraFieldLength=buffer.readUInt16LE(28),localFileHeaderEnd=entry.relativeOffsetOfLocalHeader+buffer.length+fileNameLength+extraFieldLength,decompress;if(entry.compressionMethod===0)decompress=!1;else if(entry.compressionMethod===8)decompress=options.decompress!=null?options.decompress:!0;else return callback(new Error("unsupported compression method: "+entry.compressionMethod));var fileDataStart=localFileHeaderEnd,fileDataEnd=fileDataStart+entry.compressedSize;if(entry.compressedSize!==0&&fileDataEnd>self2.fileSize)return callback(new Error("file data overflows file bounds: "+fileDataStart+" + "+entry.compressedSize+" > "+self2.fileSize));var readStream=self2.reader.createReadStream({start:fileDataStart+relativeStart,end:fileDataStart+relativeEnd}),endpointStream=readStream;if(decompress){var destroyed=!1,inflateFilter=zlib.createInflateRaw();readStream.on("error",function(err2){setImmediate(function(){destroyed||inflateFilter.emit("error",err2)})}),readStream.pipe(inflateFilter),self2.validateEntrySizes?(endpointStream=new AssertByteCountStream(entry.uncompressedSize),inflateFilter.on("error",function(err2){setImmediate(function(){destroyed||endpointStream.emit("error",err2)})}),inflateFilter.pipe(endpointStream)):endpointStream=inflateFilter,endpointStream.destroy=function(){destroyed=!0,inflateFilter!==endpointStream&&inflateFilter.unpipe(endpointStream),readStream.unpipe(inflateFilter),readStream.destroy()}}callback(null,endpointStream)}finally{self2.reader.unref()}})};function Entry(){}Entry.prototype.getLastModDate=function(){return dosDateTimeToDate(this.lastModFileDate,this.lastModFileTime)};Entry.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};Entry.prototype.isCompressed=function(){return this.compressionMethod===8};function dosDateTimeToDate(date,time){var day=date&31,month=(date>>5&15)-1,year=(date>>9&127)+1980,millisecond=0,second=(time&31)*2,minute=time>>5&63,hour=time>>11&31;return new Date(year,month,day,hour,minute,second,millisecond)}function validateFileName(fileName){return fileName.indexOf("\\")!==-1?"invalid characters in fileName: "+fileName:/^[a-zA-Z]:/.test(fileName)||/^\//.test(fileName)?"absolute path: "+fileName:fileName.split("/").indexOf("..")!==-1?"invalid relative path: "+fileName:null}function readAndAssertNoEof(reader,buffer,offset,length,position,callback){if(length===0)return setImmediate(function(){callback(null,newBuffer(0))});reader.read(buffer,offset,length,position,function(err,bytesRead){if(err)return callback(err);if(bytesRead<length)return callback(new Error("unexpected EOF"));callback()})}util.inherits(AssertByteCountStream,Transform);function AssertByteCountStream(byteCount){Transform.call(this),this.actualByteCount=0,this.expectedByteCount=byteCount}AssertByteCountStream.prototype._transform=function(chunk,encoding,cb){if(this.actualByteCount+=chunk.length,this.actualByteCount>this.expectedByteCount){var msg="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return cb(new Error(msg))}cb(null,chunk)};AssertByteCountStream.prototype._flush=function(cb){if(this.actualByteCount<this.expectedByteCount){var msg="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return cb(new Error(msg))}cb()};util.inherits(RandomAccessReader,EventEmitter);function RandomAccessReader(){EventEmitter.call(this),this.refCount=0}RandomAccessReader.prototype.ref=function(){this.refCount+=1};RandomAccessReader.prototype.unref=function(){var self2=this;if(self2.refCount-=1,self2.refCount>0)return;if(self2.refCount<0)throw new Error("invalid unref");self2.close(onCloseDone);function onCloseDone(err){if(err)return self2.emit("error",err);self2.emit("close")}};RandomAccessReader.prototype.createReadStream=function(options){var start=options.start,end=options.end;if(start===end){var emptyStream=new PassThrough;return setImmediate(function(){emptyStream.end()}),emptyStream}var stream=this._readStreamForRange(start,end),destroyed=!1,refUnrefFilter=new RefUnrefFilter(this);stream.on("error",function(err){setImmediate(function(){destroyed||refUnrefFilter.emit("error",err)})}),refUnrefFilter.destroy=function(){stream.unpipe(refUnrefFilter),refUnrefFilter.unref(),stream.destroy()};var byteCounter=new AssertByteCountStream(end-start);return refUnrefFilter.on("error",function(err){setImmediate(function(){destroyed||byteCounter.emit("error",err)})}),byteCounter.destroy=function(){destroyed=!0,refUnrefFilter.unpipe(byteCounter),refUnrefFilter.destroy()},stream.pipe(refUnrefFilter).pipe(byteCounter)};RandomAccessReader.prototype._readStreamForRange=function(start,end){throw new Error("not implemented")};RandomAccessReader.prototype.read=function(buffer,offset,length,position,callback){var readStream=this.createReadStream({start:position,end:position+length}),writeStream=new Writable,written=0;writeStream._write=function(chunk,encoding,cb){chunk.copy(buffer,offset+written,0,chunk.length),written+=chunk.length,cb()},writeStream.on("finish",callback),readStream.on("error",function(error){callback(error)}),readStream.pipe(writeStream)};RandomAccessReader.prototype.close=function(callback){setImmediate(callback)};util.inherits(RefUnrefFilter,PassThrough);function RefUnrefFilter(context){PassThrough.call(this),this.context=context,this.context.ref(),this.unreffedYet=!1}RefUnrefFilter.prototype._flush=function(cb){this.unref(),cb()};RefUnrefFilter.prototype.unref=function(cb){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var cp437="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0";function decodeBuffer(buffer,start,end,isUtf8){if(isUtf8)return buffer.toString("utf8",start,end);for(var result="",i=start;i<end;i++)result+=cp437[buffer[i]];return result}function readUInt64LE(buffer,offset){var lower32=buffer.readUInt32LE(offset),upper32=buffer.readUInt32LE(offset+4);return upper32*4294967296+lower32}var newBuffer;typeof Buffer.allocUnsafe=="function"?newBuffer=function(len){return Buffer.allocUnsafe(len)}:newBuffer=function(len){return new Buffer(len)};function defaultCallback(err){if(err)throw err}}});var require_archiveShared=__commonJS({"src/lib/archiveShared.js"(exports2,module2){var path=require("path");function createArchiveError(message,statusCode=400){let error=new Error(message);return error.statusCode=statusCode,error}function isSafeArchiveEntry(entryPath){let normalized=String(entryPath||"").replace(/\\/g,"/").replace(/\/+$/,"");return!normalized||normalized.startsWith("/")||/^[a-zA-Z]:/.test(normalized)?!1:normalized.split("/").every(part=>part&&part!=="."&&part!=="..")}function isInside(parentPath,candidatePath){let relative=path.relative(parentPath,candidatePath);return relative===""||!relative.startsWith("..")&&!path.isAbsolute(relative)}function hasArchiveExtension(filePath,extensions){let lower=String(filePath||"").toLowerCase();return extensions.some(extension=>lower.endsWith(extension))}module2.exports={createArchiveError,hasArchiveExtension,isInside,isSafeArchiveEntry}}});var require_light=__commonJS({"src/lib/archiveProviders/light.js"(exports2,module2){var{createReadStream,createWriteStream,mkdirSync}=require("fs"),path=require("path"),{pipeline}=require("stream/promises"),{createGunzip}=require("zlib"),tar=require_tar_stream(),yauzl=require_yauzl(),{createArchiveError,hasArchiveExtension,isSafeArchiveEntry}=require_archiveShared(),extensions=[".tar.gz",".tgz",".zip",".tar"],capabilities={edition:"light",createFormats:["zip","tar.gz"],readExtensions:extensions.map(extension=>extension.slice(1))};function isArchivePath(filePath){return hasArchiveExtension(filePath,extensions)}function isZipPath(filePath){return String(filePath).toLowerCase().endsWith(".zip")}function isCompressedTarPath(filePath){return/\.(tar\.gz|tgz)$/i.test(filePath)}function isTarMetadataEntry(header){return["pax-global-header","pax-header","gnu-long-path","gnu-long-link"].includes(header.type)}function isSafeTarEntry(header){return["file","directory"].includes(header.type)&&isSafeArchiveEntry(header.name)}function isZipDirectory(entry){return/\/$/.test(entry.fileName)}function isZipSymbolicLink(entry){let mode=Math.floor(Number(entry.externalFileAttributes||0)/65536)%65536;return Math.floor(mode/4096)%16===10}function isZipEncrypted(entry){return Number(entry.generalPurposeBitFlag||0)%2===1}function openZip(filePath){return new Promise((resolve,reject)=>{yauzl.open(filePath,{autoClose:!0,lazyEntries:!0,validateEntrySizes:!0},(error,zipFile)=>{error?reject(createArchiveError(`Unable to read ZIP archive: ${error.message}`,422)):resolve(zipFile)})})}async function listZip(filePath){let zipFile=await openZip(filePath);return new Promise((resolve,reject)=>{let entries=[],settled=!1,finish=(callback,value)=>{settled||(settled=!0,zipFile.close(),callback(value))};zipFile.on("entry",entry=>{entries.push({path:entry.fileName.replace(/\\/g,"/"),isDirectory:isZipDirectory(entry),isSymbolicLink:isZipSymbolicLink(entry),size:Number(entry.uncompressedSize||0),packedSize:Number(entry.compressedSize||0),encrypted:isZipEncrypted(entry),modified:entry.getLastModDate().toISOString(),attributes:""}),zipFile.readEntry()}),zipFile.once("end",()=>finish(resolve,entries)),zipFile.once("error",error=>finish(reject,createArchiveError(`Unable to read ZIP archive: ${error.message}`,422))),zipFile.readEntry()})}async function listTar(filePath){return new Promise((resolve,reject)=>{let entries=[],extractor=tar.extract(),input=createReadStream(filePath),streams=[input,extractor],source=input,settled=!1;if(isCompressedTarPath(filePath)){let gunzip=createGunzip();streams.push(gunzip),source=input.pipe(gunzip)}let finish=(callback,value)=>{settled||(settled=!0,callback(value))},fail=error=>{streams.forEach(stream=>stream.destroy()),finish(reject,createArchiveError(`Unable to read TAR archive: ${error.message}`,422))};streams.forEach(stream=>stream.once("error",fail)),extractor.on("entry",(header,entryStream,next)=>{isTarMetadataEntry(header)||entries.push({path:String(header.name||"").replace(/\\/g,"/"),isDirectory:header.type==="directory",isSymbolicLink:!isSafeTarEntry(header),size:Number(header.size||0),packedSize:0,encrypted:!1,modified:header.mtime?new Date(header.mtime).toISOString():null,attributes:header.type||""}),entryStream.once("error",fail),entryStream.once("end",next),entryStream.resume()}),extractor.once("finish",()=>finish(resolve,entries)),source.pipe(extractor)})}async function listEntries(filePath){return isZipPath(filePath)?listZip(filePath):listTar(filePath)}function assertZipEntrySafe(entry){if(!isSafeArchiveEntry(entry.fileName)||isZipSymbolicLink(entry))throw createArchiveError("Archive contains an unsafe entry path",422);if(isZipEncrypted(entry))throw createArchiveError("Encrypted archives are not supported",422)}async function extractZip(job,sourcePath,targetPath){let zipFile=await openZip(sourcePath);return new Promise((resolve,reject)=>{let settled=!1,finish=(callback,value)=>{settled||(settled=!0,zipFile.close(),callback(value))},next=()=>{settled||zipFile.readEntry()};zipFile.on("entry",entry=>{try{assertZipEntrySafe(entry);let outputPath=path.join(targetPath,entry.fileName);if(isZipDirectory(entry)){mkdirSync(outputPath,{recursive:!0}),job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next();return}mkdirSync(path.dirname(outputPath),{recursive:!0}),zipFile.openReadStream(entry,async(error,input)=>{if(error)return finish(reject,createArchiveError(`Unable to extract ZIP archive: ${error.message}`,422));try{return await pipeline(input,createWriteStream(outputPath,{flags:"wx"})),job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next()}catch(streamError){finish(reject,createArchiveError(`Unable to extract ZIP archive: ${streamError.message}`,422))}})}catch(error){finish(reject,error)}}),zipFile.once("end",()=>finish(resolve)),zipFile.once("error",error=>finish(reject,createArchiveError(`Unable to extract ZIP archive: ${error.message}`,422))),zipFile.readEntry()})}async function extractTar(job,sourcePath,targetPath){return new Promise((resolve,reject)=>{let extractor=tar.extract(),input=createReadStream(sourcePath),streams=[input,extractor],source=input,settled=!1;if(isCompressedTarPath(sourcePath)){let gunzip=createGunzip();streams.push(gunzip),source=input.pipe(gunzip)}let finish=(callback,value)=>{settled||(settled=!0,callback(value))},fail=error=>{streams.forEach(stream=>stream.destroy());let archiveError=error.statusCode?error:createArchiveError(`Unable to extract TAR archive: ${error.message}`,422);finish(reject,archiveError)};streams.forEach(stream=>stream.once("error",fail)),extractor.on("entry",(header,entryStream,next)=>{if(isTarMetadataEntry(header)){entryStream.once("error",fail),entryStream.once("end",next),entryStream.resume();return}if(!isSafeTarEntry(header)){fail(createArchiveError("Archive contains an unsafe entry path",422));return}let outputPath=path.join(targetPath,header.name);if(header.type==="directory"){mkdirSync(outputPath,{recursive:!0}),entryStream.once("error",fail),entryStream.once("end",()=>{job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next()}),entryStream.resume();return}mkdirSync(path.dirname(outputPath),{recursive:!0}),pipeline(entryStream,createWriteStream(outputPath,{flags:"wx"})).then(()=>{job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next()}).catch(fail)}),extractor.once("finish",()=>finish(resolve)),source.pipe(extractor)})}async function extract(job,sourcePath,targetPath){return isZipPath(sourcePath)?extractZip(job,sourcePath,targetPath):extractTar(job,sourcePath,targetPath)}module2.exports={capabilities,extract,isArchivePath,listEntries}}});var require_archiveService=__commonJS({"src/lib/archiveService.js"(exports2,module2){var{createWriteStream,existsSync,lstatSync,mkdirSync,promises:fsPromises,realpathSync,renameSync,rmSync}=require("fs"),path=require("path"),crypto=require("crypto"),archiver=require("archiver"),archiveProvider=require_light(),{createArchiveError,isInside,isSafeArchiveEntry}=require_archiveShared(),MAX_ARCHIVE_SIZE=2*1024*1024*1024,MAX_ARCHIVE_ENTRIES=1e4,MAX_COMPRESSION_RATIO=100,ArchiveService=class{constructor({rootPath,resolvePath,getChildPath}){this.rootPath=rootPath,this.resolvePath=resolvePath,this.getChildPath=getChildPath,this.jobs=new Map}resolveExistingFile(inputPath){let fullPath=this.resolvePath(inputPath);if(!existsSync(fullPath))throw createArchiveError("Path not found",404);let stats=lstatSync(fullPath);if(!stats.isFile())throw createArchiveError("Archive path must be a file");if(!archiveProvider.isArchivePath(fullPath))throw createArchiveError("Unsupported archive format");if(stats.size>MAX_ARCHIVE_SIZE)throw createArchiveError("Archive exceeds 2GB limit",413);return fullPath}async listArchive(inputPath){let fullPath=this.resolveExistingFile(inputPath),entries=await archiveProvider.listEntries(fullPath);return this.assertEntriesSafe(entries,fullPath),{path:inputPath,name:path.basename(fullPath),entries,totalEntries:entries.length,totalSize:entries.reduce((total,entry)=>total+entry.size,0),totalPackedSize:entries.reduce((total,entry)=>total+entry.packedSize,0)}}assertEntriesSafe(entries,fullPath){if(!entries.length)throw createArchiveError("Archive contains no entries",422);if(entries.length>MAX_ARCHIVE_ENTRIES)throw createArchiveError("Archive contains too many entries",413);if(entries.some(entry=>entry.encrypted))throw createArchiveError("Encrypted archives are not supported",422);if(entries.some(entry=>entry.isSymbolicLink||!isSafeArchiveEntry(entry.path)))throw createArchiveError("Archive contains an unsafe entry path",422);let totalSize=entries.reduce((total,entry)=>total+entry.size,0),packedSize=Math.max(lstatSync(fullPath).size,1);if(totalSize>MAX_ARCHIVE_SIZE)throw createArchiveError("Archive expands beyond 2GB limit",413);if(totalSize/packedSize>MAX_COMPRESSION_RATIO)throw createArchiveError("Archive compression ratio exceeds limit",413)}startJob(type,payload){let id=crypto.randomUUID(),job={id,type,status:"queued",progress:{processedEntries:0,totalEntries:0},createdAt:new Date().toISOString(),result:null,error:null,cancelled:!1,child:null,archive:null};return this.jobs.set(id,job),setImmediate(async()=>{if(!job.cancelled){job.status="running";try{job.result=type==="create"?await this.createArchive(job,payload):await this.extractArchive(job,payload),job.status=job.cancelled?"cancelled":"completed"}catch(error){job.status=job.cancelled?"cancelled":"failed",job.error=error.message}finally{job.child=null,job.archive=null,job.finishedAt=new Date().toISOString()}}}),job}getJob(id){return this.jobs.get(id)}getCapabilities(){return archiveProvider.capabilities}cancelJob(id){let job=this.getJob(id);if(!job)throw createArchiveError("Archive job not found",404);return["completed","failed","cancelled"].includes(job.status)||(job.cancelled=!0,job.status="cancelled",job.child&&job.child.kill("SIGTERM"),job.archive&&job.archive.abort()),job}async createArchive(job,payload){let format=payload.format==="tar.gz"?"tar.gz":payload.format;if(!archiveProvider.capabilities.createFormats.includes(format)){let formats=archiveProvider.capabilities.createFormats.join(" and ");throw createArchiveError(`Supported creation formats are ${formats}`)}if(!Array.isArray(payload.sources)||payload.sources.length===0)throw createArchiveError("Sources must be a non-empty array");let sourcePaths=payload.sources.map(source=>this.resolvePath(source));sourcePaths.forEach(source=>{if(!existsSync(source))throw createArchiveError("Source path not found",404);if(lstatSync(source).isSymbolicLink())throw createArchiveError("Symbolic links cannot be archived");let realPath=realpathSync(source);if(!isInside(this.rootPath,realPath))throw createArchiveError("Access denied",403)}),await Promise.all(sourcePaths.map(source=>this.assertSourceTreeSafe(source)));let destinationPath=payload.destinationPath||path.posix.dirname(payload.sources[0]),archiveName=String(payload.name||"").trim(),requiredExtension=format==="zip"?".zip":".tar.gz",safeName=archiveName.endsWith(requiredExtension)?archiveName:`${archiveName}${requiredExtension}`,outputPath=this.getChildPath(destinationPath,safeName);if(existsSync(outputPath))throw createArchiveError("Archive path already exists",409);if(job.progress.totalEntries=sourcePaths.length,await new Promise((resolve,reject)=>{let output=createWriteStream(outputPath,{flags:"wx"}),archive=format==="zip"?archiver("zip",{zlib:{level:9}}):archiver("tar",{gzip:!0,gzipOptions:{level:9}});job.archive=archive,output.on("close",resolve),output.on("error",reject),archive.on("error",reject),archive.on("progress",progress=>{job.progress.processedEntries=progress.entries.processed,job.progress.totalEntries=progress.entries.total}),archive.pipe(output),sourcePaths.forEach(source=>{lstatSync(source).isDirectory()?archive.directory(source,path.basename(source)):archive.file(source,{name:path.basename(source)})}),archive.finalize()}).catch(error=>{throw rmSync(outputPath,{force:!0}),error}),job.cancelled)throw rmSync(outputPath,{force:!0}),createArchiveError("Archive job cancelled",499);return{path:outputPath,name:path.basename(outputPath)}}async extractArchive(job,payload){let sourcePath=this.resolveExistingFile(payload.path),destinationPath=this.resolvePath(payload.destinationPath||"/");if(!existsSync(destinationPath)||!lstatSync(destinationPath).isDirectory())throw createArchiveError("Extraction destination must be an existing directory",404);let listing=await this.listArchive(payload.path);job.progress.totalEntries=listing.totalEntries;let tempRoot=await fsPromises.mkdtemp(path.join(destinationPath,".mock-service-cli-archive-")),tempOutput=path.join(tempRoot,"output");mkdirSync(tempOutput);try{if(await archiveProvider.extract(job,sourcePath,tempOutput),job.cancelled)throw createArchiveError("Archive job cancelled",499);await this.assertExtractedTreeSafe(tempOutput);let outputEntries=await fsPromises.readdir(tempOutput);if(!outputEntries.length)throw createArchiveError("Archive produced no files",422);outputEntries.forEach(name=>{if(existsSync(path.join(destinationPath,name)))throw createArchiveError(`Destination already contains ${name}`,409)});for(let name of outputEntries)renameSync(path.join(tempOutput,name),path.join(destinationPath,name));return job.progress.processedEntries=job.progress.totalEntries,{destinationPath,entries:outputEntries}}finally{rmSync(tempRoot,{recursive:!0,force:!0})}}async assertExtractedTreeSafe(root){let rootRealPath=realpathSync(root),walk=async current=>{let entries=await fsPromises.readdir(current,{withFileTypes:!0});for(let entry of entries){let child=path.join(current,entry.name),stats=await fsPromises.lstat(child);if(stats.isSymbolicLink())throw createArchiveError("Archive contains symbolic links",422);let realPath=realpathSync(child);if(!isInside(rootRealPath,realPath))throw createArchiveError("Archive extracted outside its destination",422);stats.isDirectory()&&await walk(child)}};await walk(root)}async assertSourceTreeSafe(source){let stats=await fsPromises.lstat(source);if(stats.isSymbolicLink())throw createArchiveError("Symbolic links cannot be archived");if(!stats.isDirectory())return;let entries=await fsPromises.readdir(source,{withFileTypes:!0});await Promise.all(entries.map(entry=>this.assertSourceTreeSafe(path.join(source,entry.name))))}};module2.exports={ArchiveService,isArchivePath:archiveProvider.isArchivePath}}});var require_fileExplorerServer=__commonJS({"src/lib/fileExplorerServer.js"(){var express=require_express2(),{existsSync,readFileSync,statSync,lstatSync,rmSync,mkdirSync,writeFileSync,renameSync,realpathSync,copyFileSync,unlinkSync,constants:fsConstants,promises:fsPromises}=require("fs"),path=require("path"),os=require("os"),crypto=require("crypto"),multer=require_multer(),{UAParser}=require_ua_parser(),colors=require_safe(),portfinder=require_portfinder(),{exec}=require("child_process"),{dateFormat,logger,getServerHost,getServerUrls,hostAllowlistMiddleware,getDirectoryHiddenNames,normalizeRemoteAddress,openPathInFileManager}=require_utils4(),{getPackageVersion}=require_packageInfo(),{ArchiveService}=require_archiveService(),{shouldExitImmediatelyOnShutdown}=require_processShutdown(),app=express(),log=logger(process.env.SILENT),argv=JSON.parse(process.env.ARGV),explorerRoot=path.resolve(process.env.EXPLORER_DIRECTORY||process.cwd()),explorerRootRealPath=realpathSync(explorerRoot),explorerRootId=crypto.createHash("sha256").update(explorerRootRealPath).digest("hex"),port=argv.p||argv.port,isEditMode=process.env.EXPLORER_EDIT==="true",explorerPassword=process.env.EXPLORER_AUTH||"",isAuthEnabled=!!explorerPassword,osHiddenEnabled=process.env.OS_HIDDEN_ENABLED==="true"||process.env.OS_HIDDEN_ENABLED==="1",visitorKeys=new Set,httpServer=null,shuttingDown=!1,MAX_UPLOAD_FILE_SIZE=2*1024*1024*1024,MAX_UPLOAD_TOTAL_SIZE=2*1024*1024*1024,MAX_UPLOAD_FILE_COUNT=100,MAX_MULTIPART_OVERHEAD_SIZE=2*1024*1024,upload=multer({dest:path.join(os.tmpdir(),"mock-service-cli-upload"),preservePath:!0,limits:{fileSize:MAX_UPLOAD_FILE_SIZE,files:MAX_UPLOAD_FILE_COUNT,fields:10}}),archiveService=new ArchiveService({rootPath:explorerRootRealPath,resolvePath:resolveExplorerPath,getChildPath});function isPathInsideRoot(fullPath,resolvedRoot=explorerRootRealPath){let relativePath=path.relative(resolvedRoot,fullPath);return relativePath===""||!relativePath.startsWith("..")&&!path.isAbsolute(relativePath)}function normalizeExplorerInputPath(inputPath){let decodedPath=decodeURIComponent(String(inputPath||"/")).replace(/\\/g,"/");return!decodedPath||decodedPath==="."?"/":decodedPath.startsWith("/")?decodedPath:`/${decodedPath}`}function resolveExplorerPath(inputPath){let relativePath=normalizeExplorerInputPath(inputPath).replace(/^\/+/,""),fullPath=path.resolve(explorerRoot,relativePath);if(!isPathInsideRoot(fullPath,explorerRoot)){let error=new Error("Access denied");throw error.statusCode=403,error}if(!existsSync(fullPath))return fullPath;let realPath=realpathSync(fullPath);if(!isPathInsideRoot(realPath)){let error=new Error("Access denied");throw error.statusCode=403,error}return realPath}function validateEntryName(name){if(typeof name!="string")return"Name must be a string";let normalizedName=name.trim();if(!normalizedName||normalizedName==="."||normalizedName==="..")return"Invalid name";if(/[/\\\0<>:"|?*]/.test(normalizedName))return"Name contains invalid characters";if(process.platform==="win32"){let upperName=normalizedName.replace(/[. ]+$/g,"").split(".")[0].toUpperCase();if(new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]).has(upperName)||normalizedName.endsWith(" ")||normalizedName.endsWith("."))return"Name is not supported on Windows"}return null}function getChildPath(parentPath,name){let nameError=validateEntryName(name);if(nameError){let error=new Error(nameError);throw error.statusCode=400,error}let parentFullPath=resolveExplorerPath(parentPath||"/");if(!existsSync(parentFullPath)||!statSync(parentFullPath).isDirectory()){let error=new Error("Parent directory not found");throw error.statusCode=404,error}let childPath=path.resolve(parentFullPath,name.trim());if(!isPathInsideRoot(childPath)){let error=new Error("Access denied");throw error.statusCode=403,error}return childPath}function requireEditMode(req,res,next){if(!isEditMode)return res.status(403).json({error:"File explorer is read-only. Restart with --edit to modify files."});next()}function isValidExplorerPassword(value){if(!isAuthEnabled)return!0;let provided=Buffer.from(String(value||"")),expected=Buffer.from(explorerPassword);return provided.length===expected.length&&crypto.timingSafeEqual(provided,expected)}function getExplorerPassword(req){return req.get("x-file-explorer-password")||req.body&&req.body.password}function requireExplorerAuth(req,res,next){if(!isValidExplorerPassword(getExplorerPassword(req)))return res.status(401).json({error:"Authentication required"});next()}function logExplorerVisit(req){let userAgent=req.get("user-agent")||"",ip=normalizeRemoteAddress(req.socket&&req.socket.remoteAddress),visitorKey=`${ip}
308
+ `);return b4a.from(result)};exports2.decodePax=function(buf){let result={};for(;buf.length;){let i=0;for(;i<buf.length&&buf[i]!==32;)i++;let len=parseInt(b4a.toString(buf.subarray(0,i)),10);if(!len)return result;let b=b4a.toString(buf.subarray(i+1,len-1)),keyIndex=b.indexOf("=");if(keyIndex===-1)return result;result[b.slice(0,keyIndex)]=b.slice(keyIndex+1),buf=buf.subarray(len)}return result};exports2.encode=function(opts){let buf=b4a.alloc(512),name=opts.name,prefix="";if(opts.typeflag===5&&name[name.length-1]!=="/"&&(name+="/"),b4a.byteLength(name)!==name.length)return null;for(;b4a.byteLength(name)>100;){let i=name.indexOf("/");if(i===-1)return null;prefix+=prefix?"/"+name.slice(0,i):name.slice(0,i),name=name.slice(i+1)}return b4a.byteLength(name)>100||b4a.byteLength(prefix)>155||opts.linkname&&b4a.byteLength(opts.linkname)>100?null:(b4a.write(buf,name),b4a.write(buf,encodeOct(opts.mode&MASK,6),100),b4a.write(buf,encodeOct(opts.uid,6),108),b4a.write(buf,encodeOct(opts.gid,6),116),encodeSize(opts.size,buf,124),b4a.write(buf,encodeOct(opts.mtime.getTime()/1e3|0,11),136),buf[156]=ZERO_OFFSET+toTypeflag(opts.type),opts.linkname&&b4a.write(buf,opts.linkname,157),b4a.copy(USTAR_MAGIC,buf,MAGIC_OFFSET),b4a.copy(USTAR_VER,buf,VERSION_OFFSET),opts.uname&&b4a.write(buf,opts.uname,265),opts.gname&&b4a.write(buf,opts.gname,297),b4a.write(buf,encodeOct(opts.devmajor||0,6),329),b4a.write(buf,encodeOct(opts.devminor||0,6),337),prefix&&b4a.write(buf,prefix,345),b4a.write(buf,encodeOct(cksum(buf),6),148),buf)};exports2.decode=function(buf,filenameEncoding,allowUnknownFormat){let typeflag=buf[156]===0?0:buf[156]-ZERO_OFFSET,name=decodeStr(buf,0,100,filenameEncoding),mode=decodeOct(buf,100,8),uid=decodeOct(buf,108,8),gid=decodeOct(buf,116,8),size=decodeOct(buf,124,12),mtime=decodeOct(buf,136,12),type=toType(typeflag),linkname=buf[157]===0?null:decodeStr(buf,157,100,filenameEncoding),uname=decodeStr(buf,265,32),gname=decodeStr(buf,297,32),devmajor=decodeOct(buf,329,8),devminor=decodeOct(buf,337,8),c=cksum(buf);if(c===256)return null;if(c!==decodeOct(buf,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(isUSTAR(buf))buf[345]&&(name=decodeStr(buf,345,155,filenameEncoding)+"/"+name);else if(!isGNU(buf)){if(!allowUnknownFormat)throw new Error("Invalid tar header: unknown format.")}return typeflag===0&&name&&name[name.length-1]==="/"&&(typeflag=5),{name,mode,uid,gid,size,byteOffset:0,mtime:new Date(1e3*mtime),type,linkname,uname,gname,devmajor,devminor,pax:null}};function isUSTAR(buf){return b4a.equals(USTAR_MAGIC,buf.subarray(MAGIC_OFFSET,MAGIC_OFFSET+6))}function isGNU(buf){return b4a.equals(GNU_MAGIC,buf.subarray(MAGIC_OFFSET,MAGIC_OFFSET+6))&&b4a.equals(GNU_VER,buf.subarray(VERSION_OFFSET,VERSION_OFFSET+2))}function clamp(index,len,defaultValue){return typeof index!="number"?defaultValue:(index=~~index,index>=len?len:index>=0||(index+=len,index>=0)?index:0)}function toType(flag){switch(flag){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function toTypeflag(flag){switch(flag){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function indexOf(block,num,offset,end){for(;offset<end;offset++)if(block[offset]===num)return offset;return end}function cksum(block){let sum=256;for(let i=0;i<148;i++)sum+=block[i];for(let j=156;j<512;j++)sum+=block[j];return sum}function encodeOct(val,n){return val=val.toString(8),val.length>n?SEVENS.slice(0,n)+" ":ZEROS.slice(0,n-val.length)+val+" "}function encodeSizeBin(num,buf,off){buf[off]=128;for(let i=11;i>0;i--)buf[off+i]=num&255,num=Math.floor(num/256)}function encodeSize(num,buf,off){num.toString(8).length>11?encodeSizeBin(num,buf,off):b4a.write(buf,encodeOct(num,11),off)}function parse256(buf){let positive;if(buf[0]===128)positive=!0;else if(buf[0]===255)positive=!1;else return null;let tuple=[],i;for(i=buf.length-1;i>0;i--){let byte=buf[i];positive?tuple.push(byte):tuple.push(255-byte)}let sum=0,l=tuple.length;for(i=0;i<l;i++)sum+=tuple[i]*Math.pow(256,i);return positive?sum:-1*sum}function decodeOct(val,offset,length){if(val=val.subarray(offset,offset+length),offset=0,val[offset]&128)return parse256(val);{for(;offset<val.length&&val[offset]===32;)offset++;let end=clamp(indexOf(val,32,offset,val.length),val.length,val.length);for(;offset<end&&val[offset]===0;)offset++;return end===offset?0:parseInt(b4a.toString(val.subarray(offset,end)),8)}}function decodeStr(val,offset,length,encoding){return b4a.toString(val.subarray(offset,indexOf(val,0,offset,offset+length)),encoding)}function addLength(str){let len=b4a.byteLength(str),digits=Math.floor(Math.log(len)/Math.log(10))+1;return len+digits>=Math.pow(10,digits)&&digits++,len+digits+str}}});var require_extract=__commonJS({"node_modules/tar-stream/extract.js"(exports2,module2){var{Writable,Readable,getStreamError}=require_streamx(),FIFO=require_fast_fifo(),b4a=require_b4a(),headers=require_headers2(),EMPTY=b4a.alloc(0),MAX_HEADER_SIZE=4*1024*1024,BufferList=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new FIFO,this._offset=0}push(buffer){this.buffered+=buffer.byteLength,this.queue.push(buffer)}shiftFirst(size){return this.buffered===0?null:this._next(size)}shift(size){if(size>this.buffered)return null;if(size===0)return EMPTY;let chunk=this._next(size);if(size===chunk.byteLength)return chunk;let chunks=[chunk];for(;(size-=chunk.byteLength)>0;)chunk=this._next(size),chunks.push(chunk);return b4a.concat(chunks)}_next(size){let buf=this.queue.peek(),rem=buf.byteLength-this._offset;if(size>=rem){let sub=this._offset?buf.subarray(this._offset,buf.byteLength):buf;return this.queue.shift(),this._offset=0,this.buffered-=rem,this.shifted+=rem,sub}return this.buffered-=size,this.shifted+=size,buf.subarray(this._offset,this._offset+=size)}},Source=class extends Readable{constructor(self2,header,offset){super(),this.header=header,this.offset=offset,this._parent=self2}_read(cb){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),cb(null)}_predestroy(){this._parent.destroy(getStreamError(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=overflow(this.header.size),this._parent._update())}_destroy(cb){this._detach(),cb(null)}},Extract=class extends Writable{constructor(opts){super(opts),opts||(opts={}),this._buffer=new BufferList,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=noop,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=opts.filenameEncoding||"utf-8",this._allowUnknownFormat=!!opts.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(err){if(this._locked=!1,err){this.destroy(err),this._continueWrite(err);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=headers.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(err){return this._continueWrite(err),!1}if(!this._header)return!0;switch(this._header.byteOffset=this._buffer.shifted,this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,this._missing>MAX_HEADER_SIZE?(this._continueWrite(new Error("Header exceeds max size")),!1):!0}return this._locked=!0,this._applyLongHeaders(),this._header.size>=0?this._header.size===0||this._header.type==="directory"?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0):(this._continueWrite(new Error("Invalid header")),!1)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(buf){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=headers.decodeLongPath(buf,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=headers.decodeLongPath(buf,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=headers.decodePax(buf);break;case"pax-header":this._pax=this._paxGlobal===null?headers.decodePax(buf):Object.assign({},this._paxGlobal,headers.decodePax(buf));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=overflow(this._header.size);let buf=this._buffer.shift(this._header.size);try{this._decodeLongHeader(buf)}catch(err){return this._continueWrite(err),!1}return!0}_consumeStream(){let buf=this._buffer.shiftFirst(this._missing);if(buf===null)return!1;this._missing-=buf.byteLength;let drained=this._stream.push(buf);return this._missing===0?(this._stream.push(null),drained&&this._stream._detach(),drained&&this._locked===!1):drained}_createStream(){return new Source(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let ignore=this._buffer.shiftFirst(this._missing);ignore!==null&&(this._missing-=ignore.byteLength);continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(err){let cb=this._callback;this._callback=noop,cb(err)}_write(data,cb){this._callback=cb,this._buffer.push(data),this._update()}_final(cb){this._finished=this._missing===0&&this._buffer.buffered===0,cb(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(cb){this._stream&&this._stream.destroy(getStreamError(this)),cb(null)}[Symbol.asyncIterator](){let error=null,promiseResolve=null,promiseReject=null,entryStream=null,entryCallback=null,extract=this;return this.on("entry",onentry),this.on("error",err=>{error=err}),this.on("close",onclose),{[Symbol.asyncIterator](){return this},next(){return new Promise(onnext)},return(){return destroy(null)},throw(err){return destroy(err)}};function consumeCallback(err){if(!entryCallback)return;let cb=entryCallback;entryCallback=null,cb(err)}function onnext(resolve,reject){if(error)return reject(error);if(entryStream){resolve({value:entryStream,done:!1}),entryStream=null;return}promiseResolve=resolve,promiseReject=reject,consumeCallback(null),extract._finished&&promiseResolve&&(promiseResolve({value:void 0,done:!0}),promiseResolve=promiseReject=null)}function onentry(header,stream,callback){entryCallback=callback,stream.on("error",noop),promiseResolve?(promiseResolve({value:stream,done:!1}),promiseResolve=promiseReject=null):entryStream=stream}function onclose(){consumeCallback(error),promiseResolve&&(error?promiseReject(error):promiseResolve({value:void 0,done:!0}),promiseResolve=promiseReject=null)}function destroy(err){return extract.destroy(err),consumeCallback(err),new Promise((resolve,reject)=>{if(extract.destroyed)return resolve({value:void 0,done:!0});extract.once("close",function(){err?reject(err):resolve({value:void 0,done:!0})})})}}};module2.exports=function(opts){return new Extract(opts)};function noop(){}function overflow(size){return size&=511,size&&512-size}}});var require_constants6=__commonJS({"node_modules/tar-stream/constants.js"(exports2,module2){var constants={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{module2.exports=require("fs").constants||constants}catch{module2.exports=constants}}});var require_pack=__commonJS({"node_modules/tar-stream/pack.js"(exports2,module2){var{Readable,Writable,getStreamError}=require_streamx(),b4a=require_b4a(),constants=require_constants6(),headers=require_headers2(),DMODE=493,FMODE=420,END_OF_TAR=b4a.alloc(1024),Sink=class extends Writable{constructor(pack,header,callback){super({mapWritable,eagerOpen:!0}),this.written=0,this.header=header,this._callback=callback,this._linkname=null,this._isLinkname=header.type==="symlink"&&!header.linkname,this._isVoid=header.type!=="file"&&header.type!=="contiguous-file",this._finished=!1,this._pack=pack,this._openCallback=null,this._pack._stream===null?this._pack._stream=this:this._pack._pending.push(this)}_open(cb){this._openCallback=cb,this._pack._stream===this&&this._continueOpen()}_continuePack(err){if(this._callback===null)return;let callback=this._callback;this._callback=null,callback(err)}_continueOpen(){this._pack._stream===null&&(this._pack._stream=this);let cb=this._openCallback;if(this._openCallback=null,cb!==null){if(this._pack.destroying)return cb(new Error("pack stream destroyed"));if(this._pack._finalized)return cb(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),cb(null)}}_write(data,cb){if(this._isLinkname)return this._linkname=this._linkname?b4a.concat([this._linkname,data]):data,cb(null);if(this._isVoid)return data.byteLength>0?cb(new Error("No body allowed for this entry")):cb();if(this.written+=data.byteLength,this._pack.push(data))return cb();this._pack._drain=cb}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?b4a.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),overflow(this._pack,this.header.size),this._pack._done(this))}_final(cb){if(this.written!==this.header.size)return cb(new Error("Size mismatch"));this._finish(),cb(null)}_getError(){return getStreamError(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(cb){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),cb()}},Pack=class extends Readable{constructor(opts){super(opts),this._drain=noop,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(header,buffer,callback){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");typeof buffer=="function"&&(callback=buffer,buffer=null),callback||(callback=noop),(!header.size||header.type==="symlink")&&(header.size=0),header.type||(header.type=modeToType(header.mode)),header.mode||(header.mode=header.type==="directory"?DMODE:FMODE),header.uid||(header.uid=0),header.gid||(header.gid=0),header.mtime||(header.mtime=new Date),typeof buffer=="string"&&(buffer=b4a.from(buffer));let sink=new Sink(this,header,callback);return b4a.isBuffer(buffer)?(header.size=buffer.byteLength,sink.write(buffer),sink.end(),sink):(sink._isVoid,sink)}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(END_OF_TAR),this.push(null))}_done(stream){stream===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(header){if(!header.pax){let buf=headers.encode(header);if(buf){this.push(buf);return}}this._encodePax(header)}_encodePax(header){let paxHeader=headers.encodePax({name:header.name,linkname:header.linkname,pax:header.pax}),newHeader={name:"PaxHeader",mode:header.mode,uid:header.uid,gid:header.gid,size:paxHeader.byteLength,mtime:header.mtime,type:"pax-header",linkname:header.linkname&&"PaxHeader",uname:header.uname,gname:header.gname,devmajor:header.devmajor,devminor:header.devminor};this.push(headers.encode(newHeader)),this.push(paxHeader),overflow(this,paxHeader.byteLength),newHeader.size=header.size,newHeader.type=header.type,this.push(headers.encode(newHeader))}_doDrain(){let drain=this._drain;this._drain=noop,drain()}_predestroy(){let err=getStreamError(this);for(this._stream&&this._stream.destroy(err);this._pending.length;){let stream=this._pending.shift();stream.destroy(err),stream._continueOpen()}this._doDrain()}_read(cb){this._doDrain(),cb()}};module2.exports=function(opts){return new Pack(opts)};function modeToType(mode){switch(mode&constants.S_IFMT){case constants.S_IFBLK:return"block-device";case constants.S_IFCHR:return"character-device";case constants.S_IFDIR:return"directory";case constants.S_IFIFO:return"fifo";case constants.S_IFLNK:return"symlink"}return"file"}function noop(){}function overflow(self2,size){size&=511,size&&self2.push(END_OF_TAR.subarray(0,512-size))}function mapWritable(buf){return b4a.isBuffer(buf)?buf:b4a.from(buf)}}});var require_tar_stream=__commonJS({"node_modules/tar-stream/index.js"(exports2){exports2.extract=require_extract();exports2.pack=require_pack()}});var require_pend=__commonJS({"node_modules/pend/index.js"(exports2,module2){module2.exports=Pend;function Pend(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}Pend.prototype.go=function(fn){this.pending<this.max?pendGo(this,fn):this.waiting.push(fn)};Pend.prototype.wait=function(cb){this.pending===0?cb(this.error):this.listeners.push(cb)};Pend.prototype.hold=function(){return pendHold(this)};function pendHold(self2){self2.pending+=1;var called=!1;return onCb;function onCb(err){if(called)throw new Error("callback called twice");if(called=!0,self2.error=self2.error||err,self2.pending-=1,self2.waiting.length>0&&self2.pending<self2.max)pendGo(self2,self2.waiting.shift());else if(self2.pending===0){var listeners=self2.listeners;self2.listeners=[],listeners.forEach(cbListener)}}function cbListener(listener){listener(self2.error)}}function pendGo(self2,fn){fn(pendHold(self2))}}});var require_fd_slicer=__commonJS({"node_modules/fd-slicer/index.js"(exports2){var fs=require("fs"),util=require("util"),stream=require("stream"),Readable=stream.Readable,Writable=stream.Writable,PassThrough=stream.PassThrough,Pend=require_pend(),EventEmitter=require("events").EventEmitter;exports2.createFromBuffer=createFromBuffer;exports2.createFromFd=createFromFd;exports2.BufferSlicer=BufferSlicer;exports2.FdSlicer=FdSlicer;util.inherits(FdSlicer,EventEmitter);function FdSlicer(fd,options){options=options||{},EventEmitter.call(this),this.fd=fd,this.pend=new Pend,this.pend.max=1,this.refCount=0,this.autoClose=!!options.autoClose}FdSlicer.prototype.read=function(buffer,offset,length,position,callback){var self2=this;self2.pend.go(function(cb){fs.read(self2.fd,buffer,offset,length,position,function(err,bytesRead,buffer2){cb(),callback(err,bytesRead,buffer2)})})};FdSlicer.prototype.write=function(buffer,offset,length,position,callback){var self2=this;self2.pend.go(function(cb){fs.write(self2.fd,buffer,offset,length,position,function(err,written,buffer2){cb(),callback(err,written,buffer2)})})};FdSlicer.prototype.createReadStream=function(options){return new ReadStream(this,options)};FdSlicer.prototype.createWriteStream=function(options){return new WriteStream(this,options)};FdSlicer.prototype.ref=function(){this.refCount+=1};FdSlicer.prototype.unref=function(){var self2=this;if(self2.refCount-=1,self2.refCount>0)return;if(self2.refCount<0)throw new Error("invalid unref");self2.autoClose&&fs.close(self2.fd,onCloseDone);function onCloseDone(err){err?self2.emit("error",err):self2.emit("close")}};util.inherits(ReadStream,Readable);function ReadStream(context,options){options=options||{},Readable.call(this,options),this.context=context,this.context.ref(),this.start=options.start||0,this.endOffset=options.end,this.pos=this.start,this.destroyed=!1}ReadStream.prototype._read=function(n){var self2=this;if(!self2.destroyed){var toRead=Math.min(self2._readableState.highWaterMark,n);if(self2.endOffset!=null&&(toRead=Math.min(toRead,self2.endOffset-self2.pos)),toRead<=0){self2.destroyed=!0,self2.push(null),self2.context.unref();return}self2.context.pend.go(function(cb){if(self2.destroyed)return cb();var buffer=new Buffer(toRead);fs.read(self2.context.fd,buffer,0,toRead,self2.pos,function(err,bytesRead){err?self2.destroy(err):bytesRead===0?(self2.destroyed=!0,self2.push(null),self2.context.unref()):(self2.pos+=bytesRead,self2.push(buffer.slice(0,bytesRead))),cb()})})}};ReadStream.prototype.destroy=function(err){this.destroyed||(err=err||new Error("stream destroyed"),this.destroyed=!0,this.emit("error",err),this.context.unref())};util.inherits(WriteStream,Writable);function WriteStream(context,options){options=options||{},Writable.call(this,options),this.context=context,this.context.ref(),this.start=options.start||0,this.endOffset=options.end==null?1/0:+options.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}WriteStream.prototype._write=function(buffer,encoding,callback){var self2=this;if(!self2.destroyed){if(self2.pos+buffer.length>self2.endOffset){var err=new Error("maximum file length exceeded");err.code="ETOOBIG",self2.destroy(),callback(err);return}self2.context.pend.go(function(cb){if(self2.destroyed)return cb();fs.write(self2.context.fd,buffer,0,buffer.length,self2.pos,function(err2,bytes){err2?(self2.destroy(),cb(),callback(err2)):(self2.bytesWritten+=bytes,self2.pos+=bytes,self2.emit("progress"),cb(),callback())})})}};WriteStream.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.context.unref())};util.inherits(BufferSlicer,EventEmitter);function BufferSlicer(buffer,options){EventEmitter.call(this),options=options||{},this.refCount=0,this.buffer=buffer,this.maxChunkSize=options.maxChunkSize||Number.MAX_SAFE_INTEGER}BufferSlicer.prototype.read=function(buffer,offset,length,position,callback){var end=position+length,delta=end-this.buffer.length,written=delta>0?delta:length;this.buffer.copy(buffer,offset,position,end),setImmediate(function(){callback(null,written)})};BufferSlicer.prototype.write=function(buffer,offset,length,position,callback){buffer.copy(this.buffer,position,offset,offset+length),setImmediate(function(){callback(null,length,buffer)})};BufferSlicer.prototype.createReadStream=function(options){options=options||{};var readStream=new PassThrough(options);readStream.destroyed=!1,readStream.start=options.start||0,readStream.endOffset=options.end,readStream.pos=readStream.endOffset||this.buffer.length;for(var entireSlice=this.buffer.slice(readStream.start,readStream.pos),offset=0;;){var nextOffset=offset+this.maxChunkSize;if(nextOffset>=entireSlice.length){offset<entireSlice.length&&readStream.write(entireSlice.slice(offset,entireSlice.length));break}readStream.write(entireSlice.slice(offset,nextOffset)),offset=nextOffset}return readStream.end(),readStream.destroy=function(){readStream.destroyed=!0},readStream};BufferSlicer.prototype.createWriteStream=function(options){var bufferSlicer=this;options=options||{};var writeStream=new Writable(options);return writeStream.start=options.start||0,writeStream.endOffset=options.end==null?this.buffer.length:+options.end,writeStream.bytesWritten=0,writeStream.pos=writeStream.start,writeStream.destroyed=!1,writeStream._write=function(buffer,encoding,callback){if(!writeStream.destroyed){var end=writeStream.pos+buffer.length;if(end>writeStream.endOffset){var err=new Error("maximum file length exceeded");err.code="ETOOBIG",writeStream.destroyed=!0,callback(err);return}buffer.copy(bufferSlicer.buffer,writeStream.pos,0,buffer.length),writeStream.bytesWritten+=buffer.length,writeStream.pos=end,writeStream.emit("progress"),callback()}},writeStream.destroy=function(){writeStream.destroyed=!0},writeStream};BufferSlicer.prototype.ref=function(){this.refCount+=1};BufferSlicer.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw new Error("invalid unref")};function createFromBuffer(buffer,options){return new BufferSlicer(buffer,options)}function createFromFd(fd,options){return new FdSlicer(fd,options)}}});var require_buffer_crc32=__commonJS({"node_modules/yauzl/node_modules/buffer-crc32/index.js"(exports2,module2){var Buffer2=require("buffer").Buffer,CRC_TABLE=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(CRC_TABLE=new Int32Array(CRC_TABLE));function ensureBuffer(input){if(Buffer2.isBuffer(input))return input;var hasNewBufferAPI=typeof Buffer2.alloc=="function"&&typeof Buffer2.from=="function";if(typeof input=="number")return hasNewBufferAPI?Buffer2.alloc(input):new Buffer2(input);if(typeof input=="string")return hasNewBufferAPI?Buffer2.from(input):new Buffer2(input);throw new Error("input must be buffer, number, or string, received "+typeof input)}function bufferizeInt(num){var tmp=ensureBuffer(4);return tmp.writeInt32BE(num,0),tmp}function _crc32(buf,previous){buf=ensureBuffer(buf),Buffer2.isBuffer(previous)&&(previous=previous.readUInt32BE(0));for(var crc=~~previous^-1,n=0;n<buf.length;n++)crc=CRC_TABLE[(crc^buf[n])&255]^crc>>>8;return crc^-1}function crc32(){return bufferizeInt(_crc32.apply(null,arguments))}crc32.signed=function(){return _crc32.apply(null,arguments)};crc32.unsigned=function(){return _crc32.apply(null,arguments)>>>0};module2.exports=crc32}});var require_yauzl=__commonJS({"node_modules/yauzl/index.js"(exports2){var fs=require("fs"),zlib=require("zlib"),fd_slicer=require_fd_slicer(),crc32=require_buffer_crc32(),util=require("util"),EventEmitter=require("events").EventEmitter,Transform=require("stream").Transform,PassThrough=require("stream").PassThrough,Writable=require("stream").Writable;exports2.open=open;exports2.fromFd=fromFd;exports2.fromBuffer=fromBuffer;exports2.fromRandomAccessReader=fromRandomAccessReader;exports2.dosDateTimeToDate=dosDateTimeToDate;exports2.validateFileName=validateFileName;exports2.ZipFile=ZipFile;exports2.Entry=Entry;exports2.RandomAccessReader=RandomAccessReader;function open(path,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose==null&&(options.autoClose=!0),options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0),options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1),callback==null&&(callback=defaultCallback),fs.open(path,"r",function(err,fd){if(err)return callback(err);fromFd(fd,options,function(err2,zipfile){err2&&fs.close(fd,defaultCallback),callback(err2,zipfile)})})}function fromFd(fd,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose==null&&(options.autoClose=!1),options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0),options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1),callback==null&&(callback=defaultCallback),fs.fstat(fd,function(err,stats){if(err)return callback(err);var reader=fd_slicer.createFromFd(fd,{autoClose:!0});fromRandomAccessReader(reader,stats.size,options,callback)})}function fromBuffer(buffer,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose=!1,options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0),options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1);var reader=fd_slicer.createFromBuffer(buffer,{maxChunkSize:65536});fromRandomAccessReader(reader,buffer.length,options,callback)}function fromRandomAccessReader(reader,totalSize,options,callback){typeof options=="function"&&(callback=options,options=null),options==null&&(options={}),options.autoClose==null&&(options.autoClose=!0),options.lazyEntries==null&&(options.lazyEntries=!1),options.decodeStrings==null&&(options.decodeStrings=!0);var decodeStrings=!!options.decodeStrings;if(options.validateEntrySizes==null&&(options.validateEntrySizes=!0),options.strictFileNames==null&&(options.strictFileNames=!1),callback==null&&(callback=defaultCallback),typeof totalSize!="number")throw new Error("expected totalSize parameter to be a number");if(totalSize>Number.MAX_SAFE_INTEGER)throw new Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");reader.ref();var eocdrWithoutCommentSize=22,maxCommentSize=65535,bufferSize=Math.min(eocdrWithoutCommentSize+maxCommentSize,totalSize),buffer=newBuffer(bufferSize),bufferReadStart=totalSize-buffer.length;readAndAssertNoEof(reader,buffer,0,bufferSize,bufferReadStart,function(err){if(err)return callback(err);for(var i=bufferSize-eocdrWithoutCommentSize;i>=0;i-=1)if(buffer.readUInt32LE(i)===101010256){var eocdrBuffer=buffer.slice(i),diskNumber=eocdrBuffer.readUInt16LE(4);if(diskNumber!==0)return callback(new Error("multi-disk zip files are not supported: found disk number: "+diskNumber));var entryCount=eocdrBuffer.readUInt16LE(10),centralDirectoryOffset=eocdrBuffer.readUInt32LE(16),commentLength=eocdrBuffer.readUInt16LE(20),expectedCommentLength=eocdrBuffer.length-eocdrWithoutCommentSize;if(commentLength!==expectedCommentLength)return callback(new Error("invalid comment length. expected: "+expectedCommentLength+". found: "+commentLength));var comment=decodeStrings?decodeBuffer(eocdrBuffer,22,eocdrBuffer.length,!1):eocdrBuffer.slice(22);if(!(entryCount===65535||centralDirectoryOffset===4294967295))return callback(null,new ZipFile(reader,centralDirectoryOffset,totalSize,entryCount,comment,options.autoClose,options.lazyEntries,decodeStrings,options.validateEntrySizes,options.strictFileNames));var zip64EocdlBuffer=newBuffer(20),zip64EocdlOffset=bufferReadStart+i-zip64EocdlBuffer.length;readAndAssertNoEof(reader,zip64EocdlBuffer,0,zip64EocdlBuffer.length,zip64EocdlOffset,function(err2){if(err2)return callback(err2);if(zip64EocdlBuffer.readUInt32LE(0)!==117853008)return callback(new Error("invalid zip64 end of central directory locator signature"));var zip64EocdrOffset=readUInt64LE(zip64EocdlBuffer,8),zip64EocdrBuffer=newBuffer(56);readAndAssertNoEof(reader,zip64EocdrBuffer,0,zip64EocdrBuffer.length,zip64EocdrOffset,function(err3){return err3?callback(err3):zip64EocdrBuffer.readUInt32LE(0)!==101075792?callback(new Error("invalid zip64 end of central directory record signature")):(entryCount=readUInt64LE(zip64EocdrBuffer,32),centralDirectoryOffset=readUInt64LE(zip64EocdrBuffer,48),callback(null,new ZipFile(reader,centralDirectoryOffset,totalSize,entryCount,comment,options.autoClose,options.lazyEntries,decodeStrings,options.validateEntrySizes,options.strictFileNames)))})});return}callback(new Error("end of central directory record signature not found"))})}util.inherits(ZipFile,EventEmitter);function ZipFile(reader,centralDirectoryOffset,fileSize,entryCount,comment,autoClose,lazyEntries,decodeStrings,validateEntrySizes,strictFileNames){var self2=this;EventEmitter.call(self2),self2.reader=reader,self2.reader.on("error",function(err){emitError(self2,err)}),self2.reader.once("close",function(){self2.emit("close")}),self2.readEntryCursor=centralDirectoryOffset,self2.fileSize=fileSize,self2.entryCount=entryCount,self2.comment=comment,self2.entriesRead=0,self2.autoClose=!!autoClose,self2.lazyEntries=!!lazyEntries,self2.decodeStrings=!!decodeStrings,self2.validateEntrySizes=!!validateEntrySizes,self2.strictFileNames=!!strictFileNames,self2.isOpen=!0,self2.emittedError=!1,self2.lazyEntries||self2._readEntry()}ZipFile.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())};function emitErrorAndAutoClose(self2,err){self2.autoClose&&self2.close(),emitError(self2,err)}function emitError(self2,err){self2.emittedError||(self2.emittedError=!0,self2.emit("error",err))}ZipFile.prototype.readEntry=function(){if(!this.lazyEntries)throw new Error("readEntry() called without lazyEntries:true");this._readEntry()};ZipFile.prototype._readEntry=function(){var self2=this;if(self2.entryCount===self2.entriesRead){setImmediate(function(){self2.autoClose&&self2.close(),!self2.emittedError&&self2.emit("end")});return}if(!self2.emittedError){var buffer=newBuffer(46);readAndAssertNoEof(self2.reader,buffer,0,buffer.length,self2.readEntryCursor,function(err){if(err)return emitErrorAndAutoClose(self2,err);if(!self2.emittedError){var entry=new Entry,signature=buffer.readUInt32LE(0);if(signature!==33639248)return emitErrorAndAutoClose(self2,new Error("invalid central directory file header signature: 0x"+signature.toString(16)));if(entry.versionMadeBy=buffer.readUInt16LE(4),entry.versionNeededToExtract=buffer.readUInt16LE(6),entry.generalPurposeBitFlag=buffer.readUInt16LE(8),entry.compressionMethod=buffer.readUInt16LE(10),entry.lastModFileTime=buffer.readUInt16LE(12),entry.lastModFileDate=buffer.readUInt16LE(14),entry.crc32=buffer.readUInt32LE(16),entry.compressedSize=buffer.readUInt32LE(20),entry.uncompressedSize=buffer.readUInt32LE(24),entry.fileNameLength=buffer.readUInt16LE(28),entry.extraFieldLength=buffer.readUInt16LE(30),entry.fileCommentLength=buffer.readUInt16LE(32),entry.internalFileAttributes=buffer.readUInt16LE(36),entry.externalFileAttributes=buffer.readUInt32LE(38),entry.relativeOffsetOfLocalHeader=buffer.readUInt32LE(42),entry.generalPurposeBitFlag&64)return emitErrorAndAutoClose(self2,new Error("strong encryption is not supported"));self2.readEntryCursor+=46,buffer=newBuffer(entry.fileNameLength+entry.extraFieldLength+entry.fileCommentLength),readAndAssertNoEof(self2.reader,buffer,0,buffer.length,self2.readEntryCursor,function(err2){if(err2)return emitErrorAndAutoClose(self2,err2);if(!self2.emittedError){var isUtf8=(entry.generalPurposeBitFlag&2048)!==0;entry.fileName=self2.decodeStrings?decodeBuffer(buffer,0,entry.fileNameLength,isUtf8):buffer.slice(0,entry.fileNameLength);var fileCommentStart=entry.fileNameLength+entry.extraFieldLength,extraFieldBuffer=buffer.slice(entry.fileNameLength,fileCommentStart);entry.extraFields=[];for(var i=0;i<extraFieldBuffer.length-3;){var headerId=extraFieldBuffer.readUInt16LE(i+0),dataSize=extraFieldBuffer.readUInt16LE(i+2),dataStart=i+4,dataEnd=dataStart+dataSize;if(dataEnd>extraFieldBuffer.length)return emitErrorAndAutoClose(self2,new Error("extra field length exceeds extra field buffer size"));var dataBuffer=newBuffer(dataSize);extraFieldBuffer.copy(dataBuffer,0,dataStart,dataEnd),entry.extraFields.push({id:headerId,data:dataBuffer}),i=dataEnd}if(entry.fileComment=self2.decodeStrings?decodeBuffer(buffer,fileCommentStart,fileCommentStart+entry.fileCommentLength,isUtf8):buffer.slice(fileCommentStart,fileCommentStart+entry.fileCommentLength),entry.comment=entry.fileComment,self2.readEntryCursor+=buffer.length,self2.entriesRead+=1,entry.uncompressedSize===4294967295||entry.compressedSize===4294967295||entry.relativeOffsetOfLocalHeader===4294967295){for(var zip64EiefBuffer=null,i=0;i<entry.extraFields.length;i++){var extraField=entry.extraFields[i];if(extraField.id===1){zip64EiefBuffer=extraField.data;break}}if(zip64EiefBuffer==null)return emitErrorAndAutoClose(self2,new Error("expected zip64 extended information extra field"));var index=0;if(entry.uncompressedSize===4294967295){if(index+8>zip64EiefBuffer.length)return emitErrorAndAutoClose(self2,new Error("zip64 extended information extra field does not include uncompressed size"));entry.uncompressedSize=readUInt64LE(zip64EiefBuffer,index),index+=8}if(entry.compressedSize===4294967295){if(index+8>zip64EiefBuffer.length)return emitErrorAndAutoClose(self2,new Error("zip64 extended information extra field does not include compressed size"));entry.compressedSize=readUInt64LE(zip64EiefBuffer,index),index+=8}if(entry.relativeOffsetOfLocalHeader===4294967295){if(index+8>zip64EiefBuffer.length)return emitErrorAndAutoClose(self2,new Error("zip64 extended information extra field does not include relative header offset"));entry.relativeOffsetOfLocalHeader=readUInt64LE(zip64EiefBuffer,index),index+=8}}if(self2.decodeStrings)for(var i=0;i<entry.extraFields.length;i++){var extraField=entry.extraFields[i];if(extraField.id===28789){if(extraField.data.length<6||extraField.data.readUInt8(0)!==1)continue;var oldNameCrc32=extraField.data.readUInt32LE(1);if(crc32.unsigned(buffer.slice(0,entry.fileNameLength))!==oldNameCrc32)continue;entry.fileName=decodeBuffer(extraField.data,5,extraField.data.length,!0);break}}if(self2.validateEntrySizes&&entry.compressionMethod===0){var expectedCompressedSize=entry.uncompressedSize;if(entry.isEncrypted()&&(expectedCompressedSize+=12),entry.compressedSize!==expectedCompressedSize){var msg="compressed/uncompressed size mismatch for stored file: "+entry.compressedSize+" != "+entry.uncompressedSize;return emitErrorAndAutoClose(self2,new Error(msg))}}if(self2.decodeStrings){self2.strictFileNames||(entry.fileName=entry.fileName.replace(/\\/g,"/"));var errorMessage=validateFileName(entry.fileName,self2.validateFileNameOptions);if(errorMessage!=null)return emitErrorAndAutoClose(self2,new Error(errorMessage))}self2.emit("entry",entry),self2.lazyEntries||self2._readEntry()}})}})}};ZipFile.prototype.openReadStream=function(entry,options,callback){var self2=this,relativeStart=0,relativeEnd=entry.compressedSize;if(callback==null)callback=options,options={};else{if(options.decrypt!=null){if(!entry.isEncrypted())throw new Error("options.decrypt can only be specified for encrypted entries");if(options.decrypt!==!1)throw new Error("invalid options.decrypt value: "+options.decrypt);if(entry.isCompressed()&&options.decompress!==!1)throw new Error("entry is encrypted and compressed, and options.decompress !== false")}if(options.decompress!=null){if(!entry.isCompressed())throw new Error("options.decompress can only be specified for compressed entries");if(!(options.decompress===!1||options.decompress===!0))throw new Error("invalid options.decompress value: "+options.decompress)}if(options.start!=null||options.end!=null){if(entry.isCompressed()&&options.decompress!==!1)throw new Error("start/end range not allowed for compressed entry without options.decompress === false");if(entry.isEncrypted()&&options.decrypt!==!1)throw new Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(options.start!=null){if(relativeStart=options.start,relativeStart<0)throw new Error("options.start < 0");if(relativeStart>entry.compressedSize)throw new Error("options.start > entry.compressedSize")}if(options.end!=null){if(relativeEnd=options.end,relativeEnd<0)throw new Error("options.end < 0");if(relativeEnd>entry.compressedSize)throw new Error("options.end > entry.compressedSize");if(relativeEnd<relativeStart)throw new Error("options.end < options.start")}}if(!self2.isOpen)return callback(new Error("closed"));if(entry.isEncrypted()&&options.decrypt!==!1)return callback(new Error("entry is encrypted, and options.decrypt !== false"));self2.reader.ref();var buffer=newBuffer(30);readAndAssertNoEof(self2.reader,buffer,0,buffer.length,entry.relativeOffsetOfLocalHeader,function(err){try{if(err)return callback(err);var signature=buffer.readUInt32LE(0);if(signature!==67324752)return callback(new Error("invalid local file header signature: 0x"+signature.toString(16)));var fileNameLength=buffer.readUInt16LE(26),extraFieldLength=buffer.readUInt16LE(28),localFileHeaderEnd=entry.relativeOffsetOfLocalHeader+buffer.length+fileNameLength+extraFieldLength,decompress;if(entry.compressionMethod===0)decompress=!1;else if(entry.compressionMethod===8)decompress=options.decompress!=null?options.decompress:!0;else return callback(new Error("unsupported compression method: "+entry.compressionMethod));var fileDataStart=localFileHeaderEnd,fileDataEnd=fileDataStart+entry.compressedSize;if(entry.compressedSize!==0&&fileDataEnd>self2.fileSize)return callback(new Error("file data overflows file bounds: "+fileDataStart+" + "+entry.compressedSize+" > "+self2.fileSize));var readStream=self2.reader.createReadStream({start:fileDataStart+relativeStart,end:fileDataStart+relativeEnd}),endpointStream=readStream;if(decompress){var destroyed=!1,inflateFilter=zlib.createInflateRaw();readStream.on("error",function(err2){setImmediate(function(){destroyed||inflateFilter.emit("error",err2)})}),readStream.pipe(inflateFilter),self2.validateEntrySizes?(endpointStream=new AssertByteCountStream(entry.uncompressedSize),inflateFilter.on("error",function(err2){setImmediate(function(){destroyed||endpointStream.emit("error",err2)})}),inflateFilter.pipe(endpointStream)):endpointStream=inflateFilter,endpointStream.destroy=function(){destroyed=!0,inflateFilter!==endpointStream&&inflateFilter.unpipe(endpointStream),readStream.unpipe(inflateFilter),readStream.destroy()}}callback(null,endpointStream)}finally{self2.reader.unref()}})};function Entry(){}Entry.prototype.getLastModDate=function(){return dosDateTimeToDate(this.lastModFileDate,this.lastModFileTime)};Entry.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};Entry.prototype.isCompressed=function(){return this.compressionMethod===8};function dosDateTimeToDate(date,time){var day=date&31,month=(date>>5&15)-1,year=(date>>9&127)+1980,millisecond=0,second=(time&31)*2,minute=time>>5&63,hour=time>>11&31;return new Date(year,month,day,hour,minute,second,millisecond)}function validateFileName(fileName){return fileName.indexOf("\\")!==-1?"invalid characters in fileName: "+fileName:/^[a-zA-Z]:/.test(fileName)||/^\//.test(fileName)?"absolute path: "+fileName:fileName.split("/").indexOf("..")!==-1?"invalid relative path: "+fileName:null}function readAndAssertNoEof(reader,buffer,offset,length,position,callback){if(length===0)return setImmediate(function(){callback(null,newBuffer(0))});reader.read(buffer,offset,length,position,function(err,bytesRead){if(err)return callback(err);if(bytesRead<length)return callback(new Error("unexpected EOF"));callback()})}util.inherits(AssertByteCountStream,Transform);function AssertByteCountStream(byteCount){Transform.call(this),this.actualByteCount=0,this.expectedByteCount=byteCount}AssertByteCountStream.prototype._transform=function(chunk,encoding,cb){if(this.actualByteCount+=chunk.length,this.actualByteCount>this.expectedByteCount){var msg="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return cb(new Error(msg))}cb(null,chunk)};AssertByteCountStream.prototype._flush=function(cb){if(this.actualByteCount<this.expectedByteCount){var msg="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return cb(new Error(msg))}cb()};util.inherits(RandomAccessReader,EventEmitter);function RandomAccessReader(){EventEmitter.call(this),this.refCount=0}RandomAccessReader.prototype.ref=function(){this.refCount+=1};RandomAccessReader.prototype.unref=function(){var self2=this;if(self2.refCount-=1,self2.refCount>0)return;if(self2.refCount<0)throw new Error("invalid unref");self2.close(onCloseDone);function onCloseDone(err){if(err)return self2.emit("error",err);self2.emit("close")}};RandomAccessReader.prototype.createReadStream=function(options){var start=options.start,end=options.end;if(start===end){var emptyStream=new PassThrough;return setImmediate(function(){emptyStream.end()}),emptyStream}var stream=this._readStreamForRange(start,end),destroyed=!1,refUnrefFilter=new RefUnrefFilter(this);stream.on("error",function(err){setImmediate(function(){destroyed||refUnrefFilter.emit("error",err)})}),refUnrefFilter.destroy=function(){stream.unpipe(refUnrefFilter),refUnrefFilter.unref(),stream.destroy()};var byteCounter=new AssertByteCountStream(end-start);return refUnrefFilter.on("error",function(err){setImmediate(function(){destroyed||byteCounter.emit("error",err)})}),byteCounter.destroy=function(){destroyed=!0,refUnrefFilter.unpipe(byteCounter),refUnrefFilter.destroy()},stream.pipe(refUnrefFilter).pipe(byteCounter)};RandomAccessReader.prototype._readStreamForRange=function(start,end){throw new Error("not implemented")};RandomAccessReader.prototype.read=function(buffer,offset,length,position,callback){var readStream=this.createReadStream({start:position,end:position+length}),writeStream=new Writable,written=0;writeStream._write=function(chunk,encoding,cb){chunk.copy(buffer,offset+written,0,chunk.length),written+=chunk.length,cb()},writeStream.on("finish",callback),readStream.on("error",function(error){callback(error)}),readStream.pipe(writeStream)};RandomAccessReader.prototype.close=function(callback){setImmediate(callback)};util.inherits(RefUnrefFilter,PassThrough);function RefUnrefFilter(context){PassThrough.call(this),this.context=context,this.context.ref(),this.unreffedYet=!1}RefUnrefFilter.prototype._flush=function(cb){this.unref(),cb()};RefUnrefFilter.prototype.unref=function(cb){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var cp437="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0";function decodeBuffer(buffer,start,end,isUtf8){if(isUtf8)return buffer.toString("utf8",start,end);for(var result="",i=start;i<end;i++)result+=cp437[buffer[i]];return result}function readUInt64LE(buffer,offset){var lower32=buffer.readUInt32LE(offset),upper32=buffer.readUInt32LE(offset+4);return upper32*4294967296+lower32}var newBuffer;typeof Buffer.allocUnsafe=="function"?newBuffer=function(len){return Buffer.allocUnsafe(len)}:newBuffer=function(len){return new Buffer(len)};function defaultCallback(err){if(err)throw err}}});var require_archiveShared=__commonJS({"src/lib/archiveShared.js"(exports2,module2){var path=require("path");function createArchiveError(message,statusCode=400){let error=new Error(message);return error.statusCode=statusCode,error}function isSafeArchiveEntry(entryPath){let normalized=String(entryPath||"").replace(/\\/g,"/").replace(/\/+$/,"");return!normalized||normalized.startsWith("/")||/^[a-zA-Z]:/.test(normalized)?!1:normalized.split("/").every(part=>part&&part!=="."&&part!=="..")}function isInside(parentPath,candidatePath){let relative=path.relative(parentPath,candidatePath);return relative===""||!relative.startsWith("..")&&!path.isAbsolute(relative)}function hasArchiveExtension(filePath,extensions){let lower=String(filePath||"").toLowerCase();return extensions.some(extension=>lower.endsWith(extension))}module2.exports={createArchiveError,hasArchiveExtension,isInside,isSafeArchiveEntry}}});var require_light=__commonJS({"src/lib/archiveProviders/light.js"(exports2,module2){var{createReadStream,createWriteStream,mkdirSync}=require("fs"),path=require("path"),{pipeline}=require("stream/promises"),{createGunzip}=require("zlib"),tar=require_tar_stream(),yauzl=require_yauzl(),{createArchiveError,hasArchiveExtension,isSafeArchiveEntry}=require_archiveShared(),extensions=[".tar.gz",".tgz",".zip",".tar"],capabilities={edition:"light",createFormats:["zip","tar.gz"],readExtensions:extensions.map(extension=>extension.slice(1))};function isArchivePath(filePath){return hasArchiveExtension(filePath,extensions)}function isZipPath(filePath){return String(filePath).toLowerCase().endsWith(".zip")}function isCompressedTarPath(filePath){return/\.(tar\.gz|tgz)$/i.test(filePath)}function isTarMetadataEntry(header){return["pax-global-header","pax-header","gnu-long-path","gnu-long-link"].includes(header.type)}function isSafeTarEntry(header){return["file","directory"].includes(header.type)&&isSafeArchiveEntry(header.name)}function isZipDirectory(entry){return/\/$/.test(entry.fileName)}function isZipSymbolicLink(entry){let mode=Math.floor(Number(entry.externalFileAttributes||0)/65536)%65536;return Math.floor(mode/4096)%16===10}function isZipEncrypted(entry){return Number(entry.generalPurposeBitFlag||0)%2===1}function openZip(filePath){return new Promise((resolve,reject)=>{yauzl.open(filePath,{autoClose:!0,lazyEntries:!0,validateEntrySizes:!0},(error,zipFile)=>{error?reject(createArchiveError(`Unable to read ZIP archive: ${error.message}`,422)):resolve(zipFile)})})}async function listZip(filePath){let zipFile=await openZip(filePath);return new Promise((resolve,reject)=>{let entries=[],settled=!1,finish=(callback,value)=>{settled||(settled=!0,zipFile.close(),callback(value))};zipFile.on("entry",entry=>{entries.push({path:entry.fileName.replace(/\\/g,"/"),isDirectory:isZipDirectory(entry),isSymbolicLink:isZipSymbolicLink(entry),size:Number(entry.uncompressedSize||0),packedSize:Number(entry.compressedSize||0),encrypted:isZipEncrypted(entry),modified:entry.getLastModDate().toISOString(),attributes:""}),zipFile.readEntry()}),zipFile.once("end",()=>finish(resolve,entries)),zipFile.once("error",error=>finish(reject,createArchiveError(`Unable to read ZIP archive: ${error.message}`,422))),zipFile.readEntry()})}async function listTar(filePath){return new Promise((resolve,reject)=>{let entries=[],extractor=tar.extract(),input=createReadStream(filePath),streams=[input,extractor],source=input,settled=!1;if(isCompressedTarPath(filePath)){let gunzip=createGunzip();streams.push(gunzip),source=input.pipe(gunzip)}let finish=(callback,value)=>{settled||(settled=!0,callback(value))},fail=error=>{streams.forEach(stream=>stream.destroy()),finish(reject,createArchiveError(`Unable to read TAR archive: ${error.message}`,422))};streams.forEach(stream=>stream.once("error",fail)),extractor.on("entry",(header,entryStream,next)=>{isTarMetadataEntry(header)||entries.push({path:String(header.name||"").replace(/\\/g,"/"),isDirectory:header.type==="directory",isSymbolicLink:!isSafeTarEntry(header),size:Number(header.size||0),packedSize:0,encrypted:!1,modified:header.mtime?new Date(header.mtime).toISOString():null,attributes:header.type||""}),entryStream.once("error",fail),entryStream.once("end",next),entryStream.resume()}),extractor.once("finish",()=>finish(resolve,entries)),source.pipe(extractor)})}async function listEntries(filePath){return isZipPath(filePath)?listZip(filePath):listTar(filePath)}function assertZipEntrySafe(entry){if(!isSafeArchiveEntry(entry.fileName)||isZipSymbolicLink(entry))throw createArchiveError("Archive contains an unsafe entry path",422);if(isZipEncrypted(entry))throw createArchiveError("Encrypted archives are not supported",422)}async function extractZip(job,sourcePath,targetPath){let zipFile=await openZip(sourcePath);return new Promise((resolve,reject)=>{let settled=!1,finish=(callback,value)=>{settled||(settled=!0,zipFile.close(),callback(value))},next=()=>{settled||zipFile.readEntry()};zipFile.on("entry",entry=>{try{assertZipEntrySafe(entry);let outputPath=path.join(targetPath,entry.fileName);if(isZipDirectory(entry)){mkdirSync(outputPath,{recursive:!0}),job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next();return}mkdirSync(path.dirname(outputPath),{recursive:!0}),zipFile.openReadStream(entry,async(error,input)=>{if(error)return finish(reject,createArchiveError(`Unable to extract ZIP archive: ${error.message}`,422));try{return await pipeline(input,createWriteStream(outputPath,{flags:"wx"})),job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next()}catch(streamError){finish(reject,createArchiveError(`Unable to extract ZIP archive: ${streamError.message}`,422))}})}catch(error){finish(reject,error)}}),zipFile.once("end",()=>finish(resolve)),zipFile.once("error",error=>finish(reject,createArchiveError(`Unable to extract ZIP archive: ${error.message}`,422))),zipFile.readEntry()})}async function extractTar(job,sourcePath,targetPath){return new Promise((resolve,reject)=>{let extractor=tar.extract(),input=createReadStream(sourcePath),streams=[input,extractor],source=input,settled=!1;if(isCompressedTarPath(sourcePath)){let gunzip=createGunzip();streams.push(gunzip),source=input.pipe(gunzip)}let finish=(callback,value)=>{settled||(settled=!0,callback(value))},fail=error=>{streams.forEach(stream=>stream.destroy());let archiveError=error.statusCode?error:createArchiveError(`Unable to extract TAR archive: ${error.message}`,422);finish(reject,archiveError)};streams.forEach(stream=>stream.once("error",fail)),extractor.on("entry",(header,entryStream,next)=>{if(isTarMetadataEntry(header)){entryStream.once("error",fail),entryStream.once("end",next),entryStream.resume();return}if(!isSafeTarEntry(header)){fail(createArchiveError("Archive contains an unsafe entry path",422));return}let outputPath=path.join(targetPath,header.name);if(header.type==="directory"){mkdirSync(outputPath,{recursive:!0}),entryStream.once("error",fail),entryStream.once("end",()=>{job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next()}),entryStream.resume();return}mkdirSync(path.dirname(outputPath),{recursive:!0}),pipeline(entryStream,createWriteStream(outputPath,{flags:"wx"})).then(()=>{job.progress.processedEntries=Math.min(job.progress.totalEntries,job.progress.processedEntries+1),next()}).catch(fail)}),extractor.once("finish",()=>finish(resolve)),source.pipe(extractor)})}async function extract(job,sourcePath,targetPath){return isZipPath(sourcePath)?extractZip(job,sourcePath,targetPath):extractTar(job,sourcePath,targetPath)}module2.exports={capabilities,extract,isArchivePath,listEntries}}});var require_archiveService=__commonJS({"src/lib/archiveService.js"(exports2,module2){var{createWriteStream,existsSync,lstatSync,mkdirSync,promises:fsPromises,realpathSync,renameSync,rmSync}=require("fs"),path=require("path"),crypto=require("crypto"),archiver=require("archiver"),archiveProvider=require_light(),{createArchiveError,isInside,isSafeArchiveEntry}=require_archiveShared(),MAX_ARCHIVE_SIZE=2*1024*1024*1024,MAX_ARCHIVE_ENTRIES=1e4,MAX_COMPRESSION_RATIO=100,ArchiveService=class{constructor({rootPath,resolvePath,getChildPath}){this.rootPath=rootPath,this.resolvePath=resolvePath,this.getChildPath=getChildPath,this.jobs=new Map}resolveExistingFile(inputPath){let fullPath=this.resolvePath(inputPath);if(!existsSync(fullPath))throw createArchiveError("Path not found",404);let stats=lstatSync(fullPath);if(!stats.isFile())throw createArchiveError("Archive path must be a file");if(!archiveProvider.isArchivePath(fullPath))throw createArchiveError("Unsupported archive format");if(stats.size>MAX_ARCHIVE_SIZE)throw createArchiveError("Archive exceeds 2GB limit",413);return fullPath}async listArchive(inputPath){let fullPath=this.resolveExistingFile(inputPath),entries=await archiveProvider.listEntries(fullPath);return this.assertEntriesSafe(entries,fullPath),{path:inputPath,name:path.basename(fullPath),entries,totalEntries:entries.length,totalSize:entries.reduce((total,entry)=>total+entry.size,0),totalPackedSize:entries.reduce((total,entry)=>total+entry.packedSize,0)}}assertEntriesSafe(entries,fullPath){if(!entries.length)throw createArchiveError("Archive contains no entries",422);if(entries.length>MAX_ARCHIVE_ENTRIES)throw createArchiveError("Archive contains too many entries",413);if(entries.some(entry=>entry.encrypted))throw createArchiveError("Encrypted archives are not supported",422);if(entries.some(entry=>entry.isSymbolicLink||!isSafeArchiveEntry(entry.path)))throw createArchiveError("Archive contains an unsafe entry path",422);let totalSize=entries.reduce((total,entry)=>total+entry.size,0),packedSize=Math.max(lstatSync(fullPath).size,1);if(totalSize>MAX_ARCHIVE_SIZE)throw createArchiveError("Archive expands beyond 2GB limit",413);if(totalSize/packedSize>MAX_COMPRESSION_RATIO)throw createArchiveError("Archive compression ratio exceeds limit",413)}startJob(type,payload){let id=crypto.randomUUID(),job={id,type,status:"queued",progress:{processedEntries:0,totalEntries:0},createdAt:new Date().toISOString(),result:null,error:null,cancelled:!1,child:null,archive:null};return this.jobs.set(id,job),setImmediate(async()=>{if(!job.cancelled){job.status="running";try{job.result=type==="create"?await this.createArchive(job,payload):await this.extractArchive(job,payload),job.status=job.cancelled?"cancelled":"completed"}catch(error){job.status=job.cancelled?"cancelled":"failed",job.error=error.message}finally{job.child=null,job.archive=null,job.finishedAt=new Date().toISOString()}}}),job}getJob(id){return this.jobs.get(id)}getCapabilities(){return archiveProvider.capabilities}cancelJob(id){let job=this.getJob(id);if(!job)throw createArchiveError("Archive job not found",404);return["completed","failed","cancelled"].includes(job.status)||(job.cancelled=!0,job.status="cancelled",job.child&&job.child.kill("SIGTERM"),job.archive&&job.archive.abort()),job}async createArchive(job,payload){let format=payload.format==="tar.gz"?"tar.gz":payload.format;if(!archiveProvider.capabilities.createFormats.includes(format)){let formats=archiveProvider.capabilities.createFormats.join(" and ");throw createArchiveError(`Supported creation formats are ${formats}`)}if(!Array.isArray(payload.sources)||payload.sources.length===0)throw createArchiveError("Sources must be a non-empty array");let sourcePaths=payload.sources.map(source=>this.resolvePath(source));sourcePaths.forEach(source=>{if(!existsSync(source))throw createArchiveError("Source path not found",404);if(lstatSync(source).isSymbolicLink())throw createArchiveError("Symbolic links cannot be archived");let realPath=realpathSync(source);if(!isInside(this.rootPath,realPath))throw createArchiveError("Access denied",403)}),await Promise.all(sourcePaths.map(source=>this.assertSourceTreeSafe(source)));let destinationPath=payload.destinationPath||path.posix.dirname(payload.sources[0]),archiveName=String(payload.name||"").trim(),requiredExtension=format==="zip"?".zip":".tar.gz",safeName=archiveName.endsWith(requiredExtension)?archiveName:`${archiveName}${requiredExtension}`,outputPath=this.getChildPath(destinationPath,safeName);if(existsSync(outputPath))throw createArchiveError("Archive path already exists",409);if(job.progress.totalEntries=sourcePaths.length,await new Promise((resolve,reject)=>{let output=createWriteStream(outputPath,{flags:"wx"}),archive=format==="zip"?archiver("zip",{zlib:{level:9}}):archiver("tar",{gzip:!0,gzipOptions:{level:9}});job.archive=archive,output.on("close",resolve),output.on("error",reject),archive.on("error",reject),archive.on("progress",progress=>{job.progress.processedEntries=progress.entries.processed,job.progress.totalEntries=progress.entries.total}),archive.pipe(output),sourcePaths.forEach(source=>{lstatSync(source).isDirectory()?archive.directory(source,path.basename(source)):archive.file(source,{name:path.basename(source)})}),archive.finalize()}).catch(error=>{throw rmSync(outputPath,{force:!0}),error}),job.cancelled)throw rmSync(outputPath,{force:!0}),createArchiveError("Archive job cancelled",499);return{path:outputPath,name:path.basename(outputPath)}}async extractArchive(job,payload){let sourcePath=this.resolveExistingFile(payload.path),destinationPath=this.resolvePath(payload.destinationPath||"/");if(!existsSync(destinationPath)||!lstatSync(destinationPath).isDirectory())throw createArchiveError("Extraction destination must be an existing directory",404);let listing=await this.listArchive(payload.path);job.progress.totalEntries=listing.totalEntries;let tempRoot=await fsPromises.mkdtemp(path.join(destinationPath,".mock-service-cli-archive-")),tempOutput=path.join(tempRoot,"output");mkdirSync(tempOutput);try{if(await archiveProvider.extract(job,sourcePath,tempOutput),job.cancelled)throw createArchiveError("Archive job cancelled",499);await this.assertExtractedTreeSafe(tempOutput);let outputEntries=await fsPromises.readdir(tempOutput);if(!outputEntries.length)throw createArchiveError("Archive produced no files",422);outputEntries.forEach(name=>{if(existsSync(path.join(destinationPath,name)))throw createArchiveError(`Destination already contains ${name}`,409)});for(let name of outputEntries)renameSync(path.join(tempOutput,name),path.join(destinationPath,name));return job.progress.processedEntries=job.progress.totalEntries,{destinationPath,entries:outputEntries}}finally{rmSync(tempRoot,{recursive:!0,force:!0})}}async assertExtractedTreeSafe(root){let rootRealPath=realpathSync(root),walk=async current=>{let entries=await fsPromises.readdir(current,{withFileTypes:!0});for(let entry of entries){let child=path.join(current,entry.name),stats=await fsPromises.lstat(child);if(stats.isSymbolicLink())throw createArchiveError("Archive contains symbolic links",422);let realPath=realpathSync(child);if(!isInside(rootRealPath,realPath))throw createArchiveError("Archive extracted outside its destination",422);stats.isDirectory()&&await walk(child)}};await walk(root)}async assertSourceTreeSafe(source){let stats=await fsPromises.lstat(source);if(stats.isSymbolicLink())throw createArchiveError("Symbolic links cannot be archived");if(!stats.isDirectory())return;let entries=await fsPromises.readdir(source,{withFileTypes:!0});await Promise.all(entries.map(entry=>this.assertSourceTreeSafe(path.join(source,entry.name))))}};module2.exports={ArchiveService,isArchivePath:archiveProvider.isArchivePath}}});var require_fileExplorerServer=__commonJS({"src/lib/fileExplorerServer.js"(){var express=require_express2(),{existsSync,readFileSync,statSync,lstatSync,rmSync,mkdirSync,writeFileSync,renameSync,realpathSync,copyFileSync,unlinkSync,constants:fsConstants,promises:fsPromises}=require("fs"),path=require("path"),os=require("os"),crypto=require("crypto"),multer=require_multer(),{UAParser}=require_ua_parser(),colors=require_safe(),portfinder=require_portfinder(),{exec}=require("child_process"),{dateFormat,logger,getServerHost,getServerUrls,hostAllowlistMiddleware,getDirectoryHiddenNames,normalizeRemoteAddress,openPathInFileManager}=require_utils4(),{getPackageVersion}=require_packageInfo(),{ArchiveService}=require_archiveService(),{shouldExitImmediatelyOnShutdown}=require_processShutdown(),app=express(),log=logger(process.env.SILENT),argv=JSON.parse(process.env.ARGV),explorerRoot=path.resolve(process.env.EXPLORER_DIRECTORY||process.cwd()),explorerRootRealPath=realpathSync(explorerRoot),explorerRootId=crypto.createHash("sha256").update(explorerRootRealPath).digest("hex"),port=argv.p||argv.port,isEditMode=process.env.EXPLORER_EDIT==="true",explorerPassword=process.env.EXPLORER_AUTH||"",isAuthEnabled=!!explorerPassword,osHiddenEnabled=process.env.OS_HIDDEN_ENABLED==="true"||process.env.OS_HIDDEN_ENABLED==="1",visitorKeys=new Set,httpServer=null,shuttingDown=!1,MAX_UPLOAD_FILE_SIZE=2*1024*1024*1024,MAX_UPLOAD_TOTAL_SIZE=2*1024*1024*1024,MAX_UPLOAD_FILE_COUNT=100,MAX_MULTIPART_OVERHEAD_SIZE=2*1024*1024,upload=multer({dest:path.join(os.tmpdir(),"mock-service-cli-upload"),preservePath:!0,limits:{fileSize:MAX_UPLOAD_FILE_SIZE,files:MAX_UPLOAD_FILE_COUNT,fields:10}}),archiveService=new ArchiveService({rootPath:explorerRootRealPath,resolvePath:resolveExplorerPath,getChildPath});function isPathInsideRoot(fullPath,resolvedRoot=explorerRootRealPath){let relativePath=path.relative(resolvedRoot,fullPath);return relativePath===""||!relativePath.startsWith("..")&&!path.isAbsolute(relativePath)}function normalizeExplorerInputPath(inputPath){let decodedPath=decodeURIComponent(String(inputPath||"/")).replace(/\\/g,"/");return!decodedPath||decodedPath==="."?"/":decodedPath.startsWith("/")?decodedPath:`/${decodedPath}`}function resolveExplorerPath(inputPath){let relativePath=normalizeExplorerInputPath(inputPath).replace(/^\/+/,""),fullPath=path.resolve(explorerRoot,relativePath);if(!isPathInsideRoot(fullPath,explorerRoot)){let error=new Error("Access denied");throw error.statusCode=403,error}if(!existsSync(fullPath))return fullPath;let realPath=realpathSync(fullPath);if(!isPathInsideRoot(realPath)){let error=new Error("Access denied");throw error.statusCode=403,error}return realPath}function validateEntryName(name){if(typeof name!="string")return"Name must be a string";let normalizedName=name.trim();if(!normalizedName||normalizedName==="."||normalizedName==="..")return"Invalid name";if(/[/\\\0<>:"|?*]/.test(normalizedName))return"Name contains invalid characters";if(process.platform==="win32"){let upperName=normalizedName.replace(/[. ]+$/g,"").split(".")[0].toUpperCase();if(new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]).has(upperName)||normalizedName.endsWith(" ")||normalizedName.endsWith("."))return"Name is not supported on Windows"}return null}function getChildPath(parentPath,name){let nameError=validateEntryName(name);if(nameError){let error=new Error(nameError);throw error.statusCode=400,error}let parentFullPath=resolveExplorerPath(parentPath||"/");if(!existsSync(parentFullPath)||!statSync(parentFullPath).isDirectory()){let error=new Error("Parent directory not found");throw error.statusCode=404,error}let childPath=path.resolve(parentFullPath,name.trim());if(!isPathInsideRoot(childPath)){let error=new Error("Access denied");throw error.statusCode=403,error}return childPath}function requireEditMode(req,res,next){if(!isEditMode)return res.status(403).json({error:"File explorer is read-only. Restart with --edit to modify files."});next()}function isValidExplorerPassword(value){if(!isAuthEnabled)return!0;let provided=Buffer.from(String(value||"")),expected=Buffer.from(explorerPassword);return provided.length===expected.length&&crypto.timingSafeEqual(provided,expected)}function getExplorerPassword(req){return req.get("x-file-explorer-password")||req.body&&req.body.password}function requireExplorerAuth(req,res,next){if(!isValidExplorerPassword(getExplorerPassword(req)))return res.status(401).json({error:"Authentication required"});next()}function logExplorerVisit(req){let userAgent=req.get("user-agent")||"",ip=normalizeRemoteAddress(req.socket&&req.socket.remoteAddress),visitorKey=`${ip}
309
309
  ${userAgent}`;if(visitorKeys.has(visitorKey))return;visitorKeys.add(visitorKey);let parsed=new UAParser(userAgent).getResult(),browser=[parsed.browser.name,parsed.browser.version].filter(Boolean).join(" ")||"Unknown",operatingSystem=[parsed.os.name,parsed.os.version].filter(Boolean).join(" ")||"Unknown";log.info(`File explorer visitor: ip=${ip}, os=${operatingSystem}, browser=${browser}, userAgent=${userAgent}`)}function getUploadTargetPath(parentPath,originalName){let normalizedName=String(originalName||"").replace(/\\/g,"/").replace(/^\/+/,""),parts=normalizedName.split("/").filter(Boolean);if(parts.length===0||normalizedName!==parts.join("/")){let error=new Error("Invalid upload path");throw error.statusCode=400,error}parts.forEach(part=>{let nameError=validateEntryName(part);if(nameError){let error=new Error(nameError);throw error.statusCode=400,error}});let parentFullPath=resolveExplorerPath(parentPath||"/");if(!existsSync(parentFullPath)||!statSync(parentFullPath).isDirectory()){let error=new Error("Parent directory not found");throw error.statusCode=404,error}let targetPath=path.resolve(parentFullPath,...parts);if(!isPathInsideRoot(targetPath)){let error=new Error("Access denied");throw error.statusCode=403,error}return{targetPath,parentFullPath,parts}}function ensureUploadParent(parentFullPath,parts){let current=parentFullPath;parts.slice(0,-1).forEach(part=>{if(current=path.join(current,part),existsSync(current)){let stats=lstatSync(current);if(!stats.isDirectory()||stats.isSymbolicLink()||!isPathInsideRoot(realpathSync(current))){let error=new Error("Upload path is not a safe directory");throw error.statusCode=403,error}}else mkdirSync(current)})}function moveUploadedFile(sourcePath,targetPath){copyFileSync(sourcePath,targetPath,fsConstants.COPYFILE_EXCL),unlinkSync(sourcePath)}function cleanupUploadedTempFiles(files=[]){files.forEach(file=>{file&&file.path&&existsSync(file.path)&&rmSync(file.path,{force:!0})})}function enforceUploadRequestSize(req,res,next){let contentLength=Number(req.get("content-length"));if(Number.isFinite(contentLength)&&contentLength>MAX_UPLOAD_TOTAL_SIZE+MAX_MULTIPART_OVERHEAD_SIZE)return res.status(413).json({error:"Total upload size exceeds 2GB limit"});next()}function deleteExplorerPath(targetPath){let fullPath=resolveExplorerPath(targetPath);if(path.resolve(fullPath)===explorerRootRealPath){let error=new Error("Cannot delete explorer root");throw error.statusCode=400,error}if(!existsSync(fullPath)){let error=new Error("Path not found");throw error.statusCode=404,error}rmSync(fullPath,{recursive:!0,force:!1})}process.env.PORT?init():(portfinder.basePort=port||8090,portfinder.getPort(function(err,foundPort){if(err)throw err;process.env.PORT=foundPort,init()}));function init(){app.use(hostAllowlistMiddleware()),app.use(express.json());let faviconInstanceId=crypto.randomUUID(),explorerFaviconUrl=`/favicon-file-explorer.svg?instance=${faviconInstanceId}`,loginFaviconUrl=`/favicon-file-explorer-login.svg?instance=${faviconInstanceId}`,sendFavicon=(filename,res)=>{res.type("image/svg+xml").set("Cache-Control","no-store").sendFile(path.resolve(__dirname,filename))},sendExplorerPage=(filename,faviconUrl,res)=>{let htmlPath=path.resolve(__dirname,filename);if(!existsSync(htmlPath))return res.status(404).send("File explorer page not found");res.type("html").send(readFileSync(htmlPath,"utf8").replace("__FILE_EXPLORER_FAVICON_URL__",faviconUrl))};app.get("/favicon-file-explorer.svg",(req,res)=>sendFavicon("./favicon-file-explorer.svg",res)),app.get("/favicon-file-explorer-login.svg",(req,res)=>sendFavicon("./favicon-file-explorer-login.svg",res)),app.get("/",(req,res)=>sendExplorerPage("./file-explorer.html",explorerFaviconUrl,res)),app.get("/__login",(req,res)=>sendExplorerPage("./file-explorer-login.html",loginFaviconUrl,res)),app.post("/__api/auth/verify",(req,res)=>{if(!isValidExplorerPassword(getExplorerPassword(req)))return res.status(401).json({error:"Invalid password"});res.json({success:!0,authEnabled:isAuthEnabled})}),app.use("/__api",requireExplorerAuth),app.get("/__api/config",(req,res)=>{logExplorerVisit(req),res.json({editMode:isEditMode,authEnabled:isAuthEnabled,rootId:explorerRootId})}),app.get("/__api/archive/capabilities",requireEditMode,(req,res)=>{res.json(archiveService.getCapabilities())}),app.get("/__api/health",(req,res)=>{res.json({success:!0})}),app.get("/__api/list",async(req,res)=>{let dirPath=normalizeExplorerInputPath(req.query.path||"/"),fullPath;try{fullPath=resolveExplorerPath(dirPath)}catch(error){return res.status(error.statusCode||500).json({error:error.message})}if(!existsSync(fullPath))return res.status(404).json({error:"Path not found"});try{if(!(await fsPromises.lstat(fullPath)).isDirectory())return res.status(400).json({error:"Not a directory"});let files=await fsPromises.readdir(fullPath,{withFileTypes:!0}),hiddenNames=await getDirectoryHiddenNames(fullPath,files.map(file=>file.name),{osHidden:osHiddenEnabled}),result=await Promise.all(files.map(async file=>{let filePath=path.join(fullPath,file.name),fileStats,hasError=!1;try{fileStats=await fsPromises.lstat(filePath)}catch{hasError=!0}let relativePath=path.posix.join(dirPath,file.name),isDirectory=hasError?file.isDirectory():fileStats.isDirectory();return{name:file.name,path:relativePath.replace(/\\/g,"/"),isDirectory,size:hasError?0:fileStats.size,mtime:hasError?new Date:fileStats.mtime,birthtime:hasError?new Date:fileStats.birthtime,isHidden:hiddenNames.has(file.name),error:hasError?"Cannot access file":null}}));result.sort((a,b)=>a.isDirectory!==b.isDirectory?a.isDirectory?-1:1:a.name.localeCompare(b.name)),res.json({currentPath:dirPath,parentPath:dirPath==="/"?null:path.posix.dirname(dirPath),files:result})}catch(error){res.status(500).json({error:error.message})}}),app.get("/__api/file",(req,res)=>{let filePath=normalizeExplorerInputPath(req.query.path||"/"),fullPath;try{fullPath=resolveExplorerPath(filePath)}catch(error){return res.status(error.statusCode||500).json({error:error.message})}if(!existsSync(fullPath))return res.status(404).json({error:"File not found"});let stats=statSync(fullPath);if(stats.isDirectory())return res.status(400).json({error:"Is a directory"});if(req.query.download==="1")return res.download(fullPath,path.basename(filePath));let ext=path.extname(filePath).toLowerCase(),imageExts=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico"],textExts=[".txt",".json",".js",".css",".html",".xml",".md",".csv",".yaml",".yml",".log"];if(imageExts.includes(ext))res.sendFile(fullPath);else if(textExts.includes(ext)||stats.size<1024*1024)try{let content=readFileSync(fullPath,"utf-8");res.json({name:path.basename(filePath),type:"text",content,size:stats.size})}catch{res.download(fullPath)}else res.download(fullPath)}),app.post("/__api/open-in-explorer",async(req,res)=>{let filePath=normalizeExplorerInputPath(req.body.path||"/"),fullPath;try{fullPath=resolveExplorerPath(filePath)}catch(error){return res.status(error.statusCode||500).json({error:error.message})}if(!existsSync(fullPath))return res.status(404).json({error:"Path not found"});let result=await openPathInFileManager(fullPath);if(!result.ok)return result.unsupported?res.status(400).json({error:"Unsupported platform"}):(console.error(colors.red(`Failed to open in explorer: ${result.error.message}`)),res.status(500).json({error:"Failed to open in explorer"}));res.json({success:!0,path:fullPath})}),app.post("/__api/path",requireEditMode,(req,res)=>{let parentPath=req.body&&req.body.parentPath||"/",name=req.body&&req.body.name,type=req.body&&req.body.type||"file";if(type!=="file"&&type!=="directory")return res.status(400).json({error:"Invalid type"});let fullPath;try{fullPath=getChildPath(parentPath,name)}catch(error){return res.status(error.statusCode||500).json({error:error.message})}if(existsSync(fullPath))return res.status(409).json({error:"Path already exists"});try{type==="directory"?mkdirSync(fullPath):writeFileSync(fullPath,""),res.json({success:!0,path:fullPath})}catch(error){console.error(colors.red(`Failed to create path: ${error.message}`)),res.status(500).json({error:"Failed to create path"})}}),app.patch("/__api/path",requireEditMode,(req,res)=>{let sourcePath=req.body&&req.body.path,name=req.body&&req.body.name,fullPath,nextPath;try{if(fullPath=resolveExplorerPath(sourcePath),path.resolve(fullPath)===explorerRootRealPath)return res.status(400).json({error:"Cannot rename explorer root"});if(!existsSync(fullPath))return res.status(404).json({error:"Path not found"});nextPath=getChildPath(path.posix.dirname(normalizeExplorerInputPath(sourcePath||"/")),name)}catch(error){return res.status(error.statusCode||500).json({error:error.message})}if(existsSync(nextPath))return res.status(409).json({error:"Path already exists"});try{renameSync(fullPath,nextPath),res.json({success:!0,path:sourcePath,nextPath})}catch(error){console.error(colors.red(`Failed to rename path: ${error.message}`)),res.status(500).json({error:"Failed to rename path"})}}),app.delete("/__api/path",requireEditMode,(req,res)=>{let targetPath=req.body&&req.body.path||"/";try{deleteExplorerPath(targetPath),res.json({success:!0,path:targetPath})}catch(error){console.error(colors.red(`Failed to delete path: ${error.message}`)),res.status(error.statusCode||500).json({error:error.statusCode?error.message:"Failed to delete path"})}}),app.delete("/__api/paths",requireEditMode,(req,res)=>{let paths=req.body&&req.body.paths||[];if(!Array.isArray(paths)||paths.length===0)return res.status(400).json({error:"Paths must be a non-empty array"});let deleted=[];try{paths.forEach(targetPath=>{deleteExplorerPath(targetPath),deleted.push(targetPath)}),res.json({success:!0,deleted})}catch(error){console.error(colors.red(`Failed to delete paths: ${error.message}`)),res.status(error.statusCode||500).json({error:error.statusCode?error.message:"Failed to delete paths",deleted})}}),app.post("/__api/upload",requireEditMode,enforceUploadRequestSize,upload.any(),(req,res)=>{let parentPath=req.body&&req.body.parentPath||"/",files=req.files||[];if(!files.length)return res.status(400).json({error:"No files uploaded"});if(files.reduce((sum,file)=>sum+file.size,0)>MAX_UPLOAD_TOTAL_SIZE)return cleanupUploadedTempFiles(files),res.status(413).json({error:"Total upload size exceeds 2GB limit"});let uploaded=[],failed=[];files.forEach(file=>{try{let{targetPath,parentFullPath,parts}=getUploadTargetPath(parentPath,file.originalname);if(existsSync(targetPath)){failed.push({name:file.originalname,error:"Path already exists",statusCode:409});return}if(ensureUploadParent(parentFullPath,parts),existsSync(targetPath)){failed.push({name:file.originalname,error:"Path already exists",statusCode:409});return}moveUploadedFile(file.path,targetPath),uploaded.push({name:file.originalname,path:path.posix.join(normalizeExplorerInputPath(parentPath),...parts)})}catch(error){failed.push({name:file.originalname,error:error.message,statusCode:error.statusCode||500})}finally{existsSync(file.path)&&rmSync(file.path,{force:!0})}}),res.status(failed.length?207:200).json({success:failed.length===0,uploaded,failed})}),app.get("/__api/archive/preview",requireEditMode,async(req,res)=>{try{let preview=await archiveService.listArchive(normalizeExplorerInputPath(req.query.path||"/"));res.json(preview)}catch(error){res.status(error.statusCode||500).json({error:error.message})}}),app.post("/__api/archive/jobs",requireEditMode,(req,res)=>{let payload=req.body||{},operation=payload.operation;if(operation!=="create"&&operation!=="extract")return res.status(400).json({error:"Archive operation must be create or extract"});try{let job=archiveService.startJob(operation,payload);res.status(202).json({id:job.id,status:job.status,type:job.type})}catch(error){res.status(error.statusCode||500).json({error:error.message})}}),app.get("/__api/archive/jobs/:id",requireEditMode,(req,res)=>{let job=archiveService.getJob(req.params.id);if(!job)return res.status(404).json({error:"Archive job not found"});res.json({id:job.id,type:job.type,status:job.status,progress:job.progress,result:job.result,error:job.error,createdAt:job.createdAt,finishedAt:job.finishedAt||null})}),app.delete("/__api/archive/jobs/:id",requireEditMode,(req,res)=>{try{let job=archiveService.cancelJob(req.params.id);res.json({id:job.id,status:job.status})}catch(error){res.status(error.statusCode||500).json({error:error.message})}}),app.use((error,req,res,next)=>{if(error instanceof multer.MulterError){cleanupUploadedTempFiles(req.files);let statusCode=error.code==="LIMIT_FILE_SIZE"||error.code==="LIMIT_FILE_COUNT"?413:400;return res.status(statusCode).json({error:error.message})}if(error)return console.error(colors.red(`File explorer request failed: ${error.message}`)),res.status(error.statusCode||500).json({error:error.message||"Request failed"});next()}),startServer()}function startServer(){httpServer=require("http").createServer(app),httpServer.requestTimeout=0,httpServer.listen(Number.parseInt(process.env.PORT,10),getServerHost(),()=>{if(console.info([colors.yellow(`
310
310
  Starting up file-explorer-server, serving `),colors.cyan(explorerRoot),colors.yellow(` ${dateFormat("YYYY-mm-dd HH:MM:SS",new Date)}`)].join("")),console.info([colors.yellow(`
311
311
  \u{1F30D} file-explorer-server version: `),colors.cyan(getPackageVersion()),`