@abacus-ai/cli 1.106.2609 → 1.106.2714

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as w4}from"node:module";var Y4=Object.create;var{getPrototypeOf:H4,defineProperty:U9,getOwnPropertyNames:v4}=Object;var W4=Object.prototype.hasOwnProperty;var Z6=(_,q,$)=>{$=_!=null?Y4(H4(_)):{};let Q=q||!_||!_.__esModule?U9($,"default",{value:_,enumerable:!0}):$;for(let x of v4(_))if(!W4.call(Q,x))U9(Q,x,{get:()=>_[x],enumerable:!0});return Q};var I=(_,q)=>()=>(q||_((q={exports:{}}).exports,q),q.exports);var j=w4(import.meta.url);var B1=I((I9)=>{Object.defineProperty(I9,"__esModule",{value:!0}),I9.DownloaderHelper=I9.DH_STATES=void 0;var G6=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_){return typeof _}:function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},L4=function(){function _(q,$){for(var Q,x=0;x<$.length;x++)Q=$[x],Q.enumerable=Q.enumerable||!1,Q.configurable=!0,"value"in Q&&(Q.writable=!0),Object.defineProperty(q,Q.key,Q)}return function(q,$,Q){return $&&_(q.prototype,$),Q&&_(q,Q),q}}(),z4=j("fs"),u=Y6(z4),J_=j("url"),M4=j("path"),E0=Y6(M4),P4=j("http"),C9=Y6(P4),U4=j("https"),O9=Y6(U4),C4=j("events");function Y6(_){if(_&&_.__esModule)return _;var q={};if(_!=null)for(var $ in _)Object.prototype.hasOwnProperty.call(_,$)&&(q[$]=_[$]);return q.default=_,q}function O4(_,q){if(!(_ instanceof q))throw TypeError("Cannot call a class as a function")}function j9(_,q){if(!_)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return q&&(typeof q=="object"||typeof q=="function")?q:_}function j4(_,q){if(typeof q!="function"&&q!==null)throw TypeError("Super expression must either be null or a function, not "+typeof q);_.prototype=Object.create(q&&q.prototype,{constructor:{value:_,enumerable:!1,writable:!0,configurable:!0}}),q&&(Object.setPrototypeOf?Object.setPrototypeOf(_,q):_.__proto__=q)}var B9=I9.DH_STATES={IDLE:"IDLE",SKIPPED:"SKIPPED",STARTED:"STARTED",DOWNLOADING:"DOWNLOADING",RETRY:"RETRY",PAUSED:"PAUSED",RESUMED:"RESUMED",STOPPED:"STOPPED",FINISHED:"FINISHED",FAILED:"FAILED"},E$=I9.DownloaderHelper=function(_){function q($,Q){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{};O4(this,q);var X=j9(this,(q.__proto__||Object.getPrototypeOf(q)).call(this,{captureRejections:!0}));return X.__validate($,Q)?(X.url=X.requestURL=$.trim(),X.state=B9.IDLE,X.__defaultOpts={body:null,retry:!1,method:"GET",headers:{},fileName:"",timeout:-1,metadata:null,override:!1,forceResume:!1,removeOnStop:!0,removeOnFail:!0,progressThrottle:1000,httpRequestOptions:{},httpsRequestOptions:{},resumeOnIncomplete:!0,resumeIfFileExists:!1,resumeOnIncompleteMaxRetry:5},X.__opts=Object.assign({},X.__defaultOpts),X.__pipes=[],X.__total=0,X.__downloaded=0,X.__progress=0,X.__retryCount=0,X.__retryTimeout=null,X.__resumeRetryCount=0,X.__states=B9,X.__promise=null,X.__request=null,X.__response=null,X.__isAborted=!1,X.__isResumed=!1,X.__isResumable=!1,X.__isRedirected=!1,X.__destFolder=Q,X.__statsEstimate={time:0,bytes:0,prevBytes:0,throttleTime:0},X.__fileName="",X.__filePath="",X.updateOptions(x),X):j9(X)}return j4(q,_),L4(q,[{key:"start",value:function(){var Q=this,x=function(){return new Promise(function(X,V){Q.__promise={resolve:X,reject:V},Q.__start()})};return this.__opts.resumeIfFileExists&&this.state!==this.__states.RESUMED?this.getTotalSize().then(function(X){var{name:V,total:J}=X,K=Q.__opts.override;if(Q.__opts.override=!0,Q.__filePath=Q.__getFilePath(V),Q.__opts.override=K,Q.__filePath&&u.existsSync(Q.__filePath)){var G=Q.__getFilesizeInBytes(Q.__filePath);return G===J?x():Q.resumeFromFile(Q.__filePath,{total:J,fileName:V})}return x()}):x()}},{key:"pause",value:function(){var Q=this;return this.state===this.__states.STOPPED?Promise.resolve(!0):(this.__response&&(this.__response.unpipe(),this.__pipes.forEach(function(x){return x.stream.unpipe()})),this.__fileStream&&this.__fileStream.removeAllListeners(),this.__requestAbort(),this.__closeFileStream().then(function(){return Q.__setState(Q.__states.PAUSED),Q.emit("pause"),!0}))}},{key:"resume",value:function(){return this.__promise?this.state===this.__states.STOPPED?Promise.resolve(!1):(this.__setState(this.__states.RESUMED),this.__isResumable&&(this.__isResumed=!0,this.__reqOptions.headers.range="bytes="+this.__downloaded+"-"),this.emit("resume",this.__isResumed),this.__start()):this.start()}},{key:"stop",value:function(){var Q=this;if(this.state===this.__states.STOPPED)return Promise.resolve(!0);var x=function(){return new Promise(function(X,V){u.access(Q.__filePath,function(J){return J?(Q.__emitStop(),X(!0)):void u.unlink(Q.__filePath,function(K){return K?(Q.__setState(Q.__states.FAILED),Q.emit("error",K),V(K)):(Q.__emitStop(),void X(!0))})})})};return this.__requestAbort(),this.__closeFileStream().then(function(){return Q.__opts.removeOnStop?x():(Q.__emitStop(),Promise.resolve(!0))})}},{key:"pipe",value:function(Q){var x=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;return this.__pipes.push({stream:Q,options:x}),Q}},{key:"unpipe",value:function(){var Q=this,x=0<arguments.length&&arguments[0]!==void 0?arguments[0]:null,X=function(J){return Q.__response?Q.__response.unpipe(J):J.unpipe()};if(x){var V=this.__pipes.find(function(J){return J.stream===x});return void(V&&(X(x),this.__pipes=this.__pipes.filter(function(J){return J.stream!==x})))}this.__pipes.forEach(function(J){return X(J.stream)}),this.__pipes=[]}},{key:"getDownloadPath",value:function(){return this.__filePath}},{key:"isResumable",value:function(){return this.__isResumable}},{key:"updateOptions",value:function(Q){var x=1<arguments.length&&arguments[1]!==void 0?arguments[1]:"";this.__opts=Object.assign({},this.__opts,Q),this.__headers=this.__opts.headers,-1<this.__opts.timeout&&(this.__opts.httpRequestOptions.timeout=this.__opts.timeout,this.__opts.httpsRequestOptions.timeout=this.__opts.timeout),(typeof this.__opts.progressThrottle!="number"||0>this.__opts.progressThrottle)&&(this.__opts.progressThrottle=this.__defaultOpts.progressThrottle),this.url=x||this.url,this.__reqOptions=this.__getReqOptions(this.__opts.method,this.url,this.__opts.headers),this.__initProtocol(this.url)}},{key:"getOptions",value:function(){return this.__opts}},{key:"getMetadata",value:function(){return this.__opts.metadata}},{key:"getStats",value:function(){return{total:this.__total,name:this.__fileName,downloaded:this.__downloaded,progress:this.__progress,speed:this.__statsEstimate.bytes}}},{key:"getTotalSize",value:function(){var Q=this;return new Promise(function(x,X){var V=function(Y){Q.__initProtocol(Y);var H=Object.assign({},Q.__headers);H.hasOwnProperty("range")&&delete H.range;var w=Q.__getReqOptions("HEAD",Y,H);return Object.assign({},Q.__reqOptions,w)},J=0,K=null,G=function(Y,H){if(!Q.__opts.retry||G6(Q.__opts.retry)!=="object")return Promise.reject(Y||Error("wrong retry options"));K&&(clearTimeout(K),K=null);var w=Q.__opts.retry,L=w.delay,z=L===void 0?0:L,M=w.maxRetries,y=M===void 0?999:M;return J>=y?Promise.reject(Y||Error("reached the maximum retries")):(J++,Q.__setState(Q.__states.RETRY),Q.emit("retry",J,Q.__opts.retry,Y),new Promise(function(d){K=setTimeout(function(){Q.__setState(Q.__states.IDLE),Z(H,V(H)),d()},z)}))},Z=function(Y,H){K&&(clearTimeout(K),K=null);var w=Q.__protocol.request(H,function(L){if(Q.__isRequireRedirect(L)){var z=/^https?:\/\//.test(L.headers.location)?L.headers.location:new J_.URL(L.headers.location,Y).href;return Q.emit("redirected",z,Y),Z(z,V(z))}if(200>L.statusCode||400<=L.statusCode){var M=Error("Response status was "+L.statusCode);return Q.__opts.retry&&500<=L.statusCode&&600>L.statusCode?G(M,Y).catch(X):X(M)}x({name:Q.__getFileNameFromHeaders(L.headers,L),total:parseInt(L.headers["content-length"])||null})});w.on("error",function(L){return Q.__opts.retry?G(L,Y).catch(X):void X(L)}),w.on("timeout",function(){return Q.__opts.retry?G(Error("timeout"),Y).catch(X):void X(Error("timeout"))}),w.on("uncaughtException",function(L){return Q.__opts.retry?G(L,Y).catch(X):void X(L)}),w.end()};Z(Q.url,V(Q.url))})}},{key:"getResumeState",value:function(){return{downloaded:this.__downloaded,filePath:this.__filePath,fileName:this.__fileName,total:this.__total}}},{key:"resumeFromFile",value:function(Q){var x=this,X=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return this.__opts.override=!0,this.__filePath=Q,(X.total&&X.fileName?Promise.resolve({name:X.fileName,total:X.total}):this.getTotalSize()).then(function(V){var{name:J,total:K}=V;return x.__total=X.total||K,x.__fileName=X.fileName||J,x.__downloaded=X.downloaded||x.__getFilesizeInBytes(x.__filePath),x.__reqOptions.headers.range="bytes="+x.__downloaded+"-",x.__isResumed=!0,x.__isResumable=!0,x.__setState(x.__states.RESUMED),x.emit("resume",x.__isResumed),new Promise(function(G,Z){x.__promise={resolve:G,reject:Z},x.__start()})})}},{key:"__start",value:function(){this.__isRedirected||this.state===this.__states.RESUMED||(this.emit("start"),this.__setState(this.__states.STARTED),this.__initProtocol(this.url)),this.__response=null,this.__isAborted=!1,this.__request&&!this.__request.destroyed&&this.__request.destroy(),this.__retryTimeout&&(clearTimeout(this.__retryTimeout),this.__retryTimeout=null),this.__request=this.__downloadRequest(this.__promise.resolve,this.__promise.reject),this.__request.on("error",this.__onError(this.__promise.resolve,this.__promise.reject)),this.__request.on("timeout",this.__onTimeout(this.__promise.resolve,this.__promise.reject)),this.__request.on("uncaughtException",this.__onError(this.__promise.resolve,this.__promise.reject,!0)),this.__opts.body&&this.__request.write(this.__opts.body),this.__request.end()}},{key:"__resolvePending",value:function(){if(this.__promise){var Q=this.__promise.resolve;return this.__promise=null,Q(!0)}}},{key:"__downloadRequest",value:function(Q,x){var X=this;return this.__protocol.request(this.__reqOptions,function(V){if(X.__response=V,X.__isResumed||(X.__total=parseInt(V.headers["content-length"])||null,X.__resetStats()),X.__isRequireRedirect(V)){var J=/^https?:\/\//.test(V.headers.location)?V.headers.location:new J_.URL(V.headers.location,X.url).href;return X.__isRedirected=!0,X.__initProtocol(J),X.emit("redirected",J,X.url),X.__start()}if(200>V.statusCode||400<=V.statusCode){var K=Error("Response status was "+V.statusCode);return(K.status=V.statusCode||0,K.body=V.body||"",500<=V.statusCode&&600>V.statusCode)?X.__onError(Q,x)(K):(X.__setState(X.__states.FAILED),X.emit("error",K),x(K))}X.__opts.forceResume?X.__isResumable=!0:V.headers.hasOwnProperty("accept-ranges")&&V.headers["accept-ranges"]!=="none"&&(X.__isResumable=!0),X.__startDownload(V,Q,x)})}},{key:"__startDownload",value:function(Q,x,X){var V=this,J=Q;if(!this.__isResumed){var K=this.__getFileNameFromHeaders(Q.headers);if(this.__filePath=this.__getFilePath(K),this.__fileName=this.__filePath.split(E0.sep).pop(),u.existsSync(this.__filePath)){var G=this.__getFilesizeInBytes(this.__filePath),Z=this.__total?this.__total:0;if(G6(this.__opts.override)==="object"&&this.__opts.override.skip&&(this.__opts.override.skipSmaller||G>=Z))return this.emit("skip",{totalSize:this.__total,fileName:this.__fileName,filePath:this.__filePath,downloadedSize:G}),this.__setState(this.__states.SKIPPED),x(!0)}this.__fileStream=u.createWriteStream(this.__filePath,{})}else this.__fileStream=u.createWriteStream(this.__filePath,{flags:"a"});this.emit("download",{fileName:this.__fileName,filePath:this.__filePath,totalSize:this.__total,isResumed:this.__isResumed,downloadedSize:this.__downloaded}),this.__retryCount=0,this.__isResumed=!1,this.__isRedirected=!1,this.__setState(this.__states.DOWNLOADING),this.__statsEstimate.time=new Date,this.__statsEstimate.throttleTime=new Date,J.on("data",function(Y){return V.__calculateStats(Y.length)}),this.__pipes.forEach(function(Y){J.pipe(Y.stream,Y.options),J=Y.stream}),J.pipe(this.__fileStream),J.on("error",this.__onError(x,X)),this.__fileStream.on("finish",this.__onFinished(x,X)),this.__fileStream.on("error",this.__onError(x,X))}},{key:"__hasFinished",value:function(){return!this.__isAborted&&[this.__states.PAUSED,this.__states.STOPPED,this.__states.RETRY,this.__states.FAILED,this.__states.RESUMED].indexOf(this.state)===-1}},{key:"__isRequireRedirect",value:function(Q){return 300<Q.statusCode&&400>Q.statusCode&&Q.headers.hasOwnProperty("location")&&Q.headers.location}},{key:"__onFinished",value:function(Q,x){var X=this;return function(){X.__fileStream.close(function(V){if(V)return x(V);if(X.__hasFinished()){var J=!!X.__total&&X.__downloaded!==X.__total;if(J&&X.__isResumable&&X.__opts.resumeOnIncomplete&&X.__resumeRetryCount<=X.__opts.resumeOnIncompleteMaxRetry)return X.__resumeRetryCount++,X.emit("warning",Error("uncomplete download, retrying")),X.resume();X.__setState(X.__states.FINISHED),X.__pipes=[],X.emit("end",{fileName:X.__fileName,filePath:X.__filePath,totalSize:X.__total,incomplete:J,onDiskSize:X.__getFilesizeInBytes(X.__filePath),downloadedSize:X.__downloaded})}return Q(X.__downloaded===X.__total)})}}},{key:"__closeFileStream",value:function(){var Q=this;return this.__fileStream?new Promise(function(x,X){Q.__fileStream.close(function(V){return V?X(V):x(!0)})}):Promise.resolve(!0)}},{key:"__onError",value:function(Q,x){var X=this,V=2<arguments.length&&arguments[2]!==void 0&&arguments[2];return function(J){return X.__pipes=[],V&&X.__requestAbort(),X.state===X.__states.STOPPED||X.state===X.__states.FAILED?void 0:X.__opts.retry?X.__retry(J).catch(function(K){X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),X.emit("error",K?K:J),x(K?K:J)})}):X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),X.emit("error",J),x(J)})}}},{key:"__retry",value:function(){var Q=this,x=0<arguments.length&&arguments[0]!==void 0?arguments[0]:null;if(!this.__opts.retry||G6(this.__opts.retry)!=="object")return Promise.reject(x||Error("wrong retry options"));var X=this.__opts.retry,V=X.delay,J=V===void 0?0:V,K=X.maxRetries,G=K===void 0?999:K;return this.__retryCount>=G?Promise.reject(x||Error("reached the maximum retries")):(this.__retryCount++,this.__setState(this.__states.RETRY),this.emit("retry",this.__retryCount,this.__opts.retry,x),this.__response&&(this.__response.unpipe(),this.__pipes.forEach(function(Z){return Z.stream.unpipe()})),this.__fileStream&&this.__fileStream.removeAllListeners(),this.__requestAbort(),this.__closeFileStream().then(function(){return new Promise(function(Z){return Q.__retryTimeout=setTimeout(function(){return Z(0<Q.__downloaded?Q.resume():Q.__start())},J)})}))}},{key:"__onTimeout",value:function(Q,x){var X=this;return function(){return X.__requestAbort(),X.__opts.retry?X.__retry(Error("timeout")).catch(function(V){X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),V?x(V):(X.emit("timeout"),x(Error("timeout")))})}):X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),X.emit("timeout"),x(Error("timeout"))})}}},{key:"__resetStats",value:function(){this.__retryCount=0,this.__downloaded=0,this.__progress=0,this.__resumeRetryCount=0,this.__statsEstimate={time:0,bytes:0,prevBytes:0,throttleTime:0}}},{key:"__getFileNameFromHeaders",value:function(Q,x){var X="",V=/.*filename\*=.*?'.*?'([^"].+?[^"])(?:(?:;)|$)/i,J=/.*filename="(.*?)";?/i,K=/.*filename=([^"].+?[^"])(?:(?:;)|$)/i,G=Q.hasOwnProperty("content-disposition"),Z=G?Q["content-disposition"].match(V):null,Y=!G||Z?null:Q["content-disposition"].match(J),H=!G||Z||Y?null:Q["content-disposition"].match(K);return G&&(Z||Y||H)?(X=Q["content-disposition"],X=X.trim(),Z?X=Z[1]:Y?X=Y[1]:H&&(X=H[1]),X=X.replace(/[/\\]/g,"")):0<E0.basename(new J_.URL(this.requestURL).pathname).length?X=E0.basename(new J_.URL(this.requestURL).pathname):X=new J_.URL(this.requestURL).hostname+".html",this.__opts.fileName?this.__getFileNameFromOpts(X,x):X.replace(/\.*$/,"")}},{key:"__getFilePath",value:function(Q){var x=E0.join(this.__destFolder,Q),X=x;return this.__opts.override||this.state===this.__states.RESUMED||(X=this.__uniqFileNameSync(X),x!==X&&this.emit("renamed",{path:X,fileName:X.split(E0.sep).pop(),prevPath:x,prevFileName:x.split(E0.sep).pop()})),X}},{key:"__getFileNameFromOpts",value:function(Q,x){if(!this.__opts.fileName)return Q;if(typeof this.__opts.fileName=="string")return this.__opts.fileName;if(typeof this.__opts.fileName=="function"){var X=E0.join(this.__destFolder,Q);return x&&x.headers||this.__response&&this.__response.headers?this.__opts.fileName(Q,X,(x?x:this.__response).headers["content-type"]):this.__opts.fileName(Q,X)}if(G6(this.__opts.fileName)==="object"){var V=this.__opts.fileName,J=V.name,K=!!V.hasOwnProperty("ext")&&V.ext;if(typeof K=="string")return J+"."+K;if(typeof K=="boolean"){if(K)return J;var G=Q.includes(".")?Q.split(".").pop():"";return G===""?J:J+"."+G}}return Q}},{key:"__calculateStats",value:function(Q){var x=new Date,X=x-this.__statsEstimate.time,V=x-this.__statsEstimate.throttleTime,J=this.__total||0;Q&&(this.__downloaded+=Q,this.__progress=J===0?0:100*(this.__downloaded/J),(this.__downloaded===J||1000<X)&&(this.__statsEstimate.time=x,this.__statsEstimate.bytes=this.__downloaded-this.__statsEstimate.prevBytes,this.__statsEstimate.prevBytes=this.__downloaded),(this.__downloaded===J||V>this.__opts.progressThrottle)&&(this.__statsEstimate.throttleTime=x,this.emit("progress.throttled",this.getStats())),this.emit("progress",this.getStats()))}},{key:"__setState",value:function(Q){this.state=Q,this.emit("stateChanged",this.state)}},{key:"__getReqOptions",value:function(Q,x){var X=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},V=new J_.URL(x),J={protocol:V.protocol,host:V.hostname,port:V.port,path:V.pathname+V.search,method:Q};return X&&(J.headers=X),J}},{key:"__getFilesizeInBytes",value:function(Q){try{var x=u.statSync(Q,{throwIfNoEntry:!1}),X=x.size||0;return X}catch(V){this.emit("warning",V)}return 0}},{key:"__validate",value:function(Q,x){if(typeof Q!="string")throw Error("URL should be an string");if(Q.trim()==="")throw Error("URL couldn't be empty");if(typeof x!="string")throw Error("Destination Folder should be an string");if(x.trim()==="")throw Error("Destination Folder couldn't be empty");if(!u.existsSync(x))throw Error("Destination Folder must exist");var X=u.statSync(x);if(!X.isDirectory())throw Error("Destination Folder must be a directory");try{u.accessSync(x,u.constants.W_OK)}catch(V){throw Error("Destination Folder must be writable")}return!0}},{key:"__initProtocol",value:function(Q){var x=this.__getReqOptions(this.__opts.method,Q,this.__headers);this.requestURL=Q,-1<Q.indexOf("https://")?(this.__protocol=O9,x.agent=new O9.Agent({keepAlive:!1}),this.__reqOptions=Object.assign({},x,this.__opts.httpsRequestOptions)):(this.__protocol=C9,x.agent=new C9.Agent({keepAlive:!1}),this.__reqOptions=Object.assign({},x,this.__opts.httpRequestOptions))}},{key:"__uniqFileNameSync",value:function(Q){if(typeof Q!="string"||Q==="")return Q;try{u.accessSync(Q,u.F_OK);var x=Q.match(/(.*)(\([0-9]+\))(\..*)$/),X=x?x[1].trim():Q,V=x?parseInt(x[2].replace(/\(|\)/,"")):0,J=Q.split(".").pop();return J!==Q&&0<J.length?(J="."+J,X=X.replace(J,"")):J="",this.__uniqFileNameSync(X+" ("+ ++V+")"+J)}catch(K){return Q}}},{key:"__removeFile",value:function(){var Q=this;return new Promise(function(x){return Q.__fileStream?void Q.__fileStream.close(function(X){return X&&Q.emit("warning",X),Q.__opts.removeOnFail?u.access(Q.__filePath,function(V){return V?x():void u.unlink(Q.__filePath,function(J){J&&Q.emit("warning",X),x()})}):void x()}):x()})}},{key:"__requestAbort",value:function(){this.__isAborted=!0,this.__retryTimeout&&(clearTimeout(this.__retryTimeout),this.__retryTimeout=null),this.__response&&this.__response.destroy(),this.__request&&(this.__request.destroy?this.__request.destroy():this.__request.abort())}},{key:"__emitStop",value:function(){this.__resolvePending(),this.__setState(this.__states.STOPPED),this.emit("stop")}}]),q}(C4.EventEmitter)});var k3=I((AX,u3)=>{var j_=1000,B_=j_*60,I_=B_*60,$_=I_*24,W7=$_*7,w7=$_*365.25;u3.exports=function(_,q){q=q||{};var $=typeof _;if($==="string"&&_.length>0)return L7(_);else if($==="number"&&isFinite(_))return q.long?M7(_):z7(_);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(_))};function L7(_){if(_=String(_),_.length>100)return;var q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(_);if(!q)return;var $=parseFloat(q[1]),Q=(q[2]||"ms").toLowerCase();switch(Q){case"years":case"year":case"yrs":case"yr":case"y":return $*w7;case"weeks":case"week":case"w":return $*W7;case"days":case"day":case"d":return $*$_;case"hours":case"hour":case"hrs":case"hr":case"h":return $*I_;case"minutes":case"minute":case"mins":case"min":case"m":return $*B_;case"seconds":case"second":case"secs":case"sec":case"s":return $*j_;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return $;default:return}}function z7(_){var q=Math.abs(_);if(q>=$_)return Math.round(_/$_)+"d";if(q>=I_)return Math.round(_/I_)+"h";if(q>=B_)return Math.round(_/B_)+"m";if(q>=j_)return Math.round(_/j_)+"s";return _+"ms"}function M7(_){var q=Math.abs(_);if(q>=$_)return _1(_,q,$_,"day");if(q>=I_)return _1(_,q,I_,"hour");if(q>=B_)return _1(_,q,B_,"minute");if(q>=j_)return _1(_,q,j_,"second");return _+" ms"}function _1(_,q,$,Q){var x=q>=$*1.5;return Math.round(_/$)+" "+Q+(x?"s":"")}});var i2=I((TX,m3)=>{function P7(_){$.debug=$,$.default=$,$.coerce=K,$.disable=V,$.enable=x,$.enabled=J,$.humanize=k3(),$.destroy=G,Object.keys(_).forEach((Z)=>{$[Z]=_[Z]}),$.names=[],$.skips=[],$.formatters={};function q(Z){let Y=0;for(let H=0;H<Z.length;H++)Y=(Y<<5)-Y+Z.charCodeAt(H),Y|=0;return $.colors[Math.abs(Y)%$.colors.length]}$.selectColor=q;function $(Z){let Y,H=null,w,L;function z(...M){if(!z.enabled)return;let y=z,d=Number(new Date),J6=d-(Y||d);if(y.diff=J6,y.prev=Y,y.curr=d,Y=d,M[0]=$.coerce(M[0]),typeof M[0]!=="string")M.unshift("%O");let V_=0;M[0]=M[0].replace(/%([a-zA-Z%])/g,($0,K6)=>{if($0==="%%")return"%";V_++;let P9=$.formatters[K6];if(typeof P9==="function"){let G4=M[V_];$0=P9.call(y,G4),M.splice(V_,1),V_--}return $0}),$.formatArgs.call(y,M),(y.log||$.log).apply(y,M)}if(z.namespace=Z,z.useColors=$.useColors(),z.color=$.selectColor(Z),z.extend=Q,z.destroy=$.destroy,Object.defineProperty(z,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(w!==$.namespaces)w=$.namespaces,L=$.enabled(Z);return L},set:(M)=>{H=M}}),typeof $.init==="function")$.init(z);return z}function Q(Z,Y){let H=$(this.namespace+(typeof Y>"u"?":":Y)+Z);return H.log=this.log,H}function x(Z){$.save(Z),$.namespaces=Z,$.names=[],$.skips=[];let Y=(typeof Z==="string"?Z:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let H of Y)if(H[0]==="-")$.skips.push(H.slice(1));else $.names.push(H)}function X(Z,Y){let H=0,w=0,L=-1,z=0;while(H<Z.length)if(w<Y.length&&(Y[w]===Z[H]||Y[w]==="*"))if(Y[w]==="*")L=w,z=H,w++;else H++,w++;else if(L!==-1)w=L+1,z++,H=z;else return!1;while(w<Y.length&&Y[w]==="*")w++;return w===Y.length}function V(){let Z=[...$.names,...$.skips.map((Y)=>"-"+Y)].join(",");return $.enable(""),Z}function J(Z){for(let Y of $.skips)if(X(Z,Y))return!1;for(let Y of $.names)if(X(Z,Y))return!0;return!1}function K(Z){if(Z instanceof Error)return Z.stack||Z.message;return Z}function G(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return $.enable($.load()),$}m3.exports=P7});var b3=I((E3,q1)=>{E3.formatArgs=C7;E3.save=O7;E3.load=j7;E3.useColors=U7;E3.storage=B7();E3.destroy=(()=>{let _=!1;return()=>{if(!_)_=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();E3.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function U7(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let _;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(_=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(_[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function C7(_){if(_[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+_[0]+(this.useColors?"%c ":" ")+"+"+q1.exports.humanize(this.diff),!this.useColors)return;let q="color: "+this.color;_.splice(1,0,q,"color: inherit");let $=0,Q=0;_[0].replace(/%[a-zA-Z%]/g,(x)=>{if(x==="%%")return;if($++,x==="%c")Q=$}),_.splice(Q,0,q)}E3.log=console.debug||console.log||(()=>{});function O7(_){try{if(_)E3.storage.setItem("debug",_);else E3.storage.removeItem("debug")}catch(q){}}function j7(){let _;try{_=E3.storage.getItem("debug")||E3.storage.getItem("DEBUG")}catch(q){}if(!_&&typeof process<"u"&&"env"in process)_=process.env.DEBUG;return _}function B7(){try{return localStorage}catch(_){}}q1.exports=i2()(E3);var{formatters:I7}=q1.exports;I7.j=function(_){try{return JSON.stringify(_)}catch(q){return"[UnexpectedJSONParseError]: "+q.message}}});var f3=I((l3,Q1)=>{var h7=j("tty"),$1=j("util");l3.init=b7;l3.log=k7;l3.formatArgs=y7;l3.save=m7;l3.load=E7;l3.useColors=g7;l3.destroy=$1.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");l3.colors=[6,2,3,4,5,1];try{let _=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(_&&(_.stderr||_).level>=2)l3.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(_){}l3.inspectOpts=Object.keys(process.env).filter((_)=>{return/^debug_/i.test(_)}).reduce((_,q)=>{let $=q.substring(6).toLowerCase().replace(/_([a-z])/g,(x,X)=>{return X.toUpperCase()}),Q=process.env[q];if(/^(yes|on|true|enabled)$/i.test(Q))Q=!0;else if(/^(no|off|false|disabled)$/i.test(Q))Q=!1;else if(Q==="null")Q=null;else Q=Number(Q);return _[$]=Q,_},{});function g7(){return"colors"in l3.inspectOpts?Boolean(l3.inspectOpts.colors):h7.isatty(process.stderr.fd)}function y7(_){let{namespace:q,useColors:$}=this;if($){let Q=this.color,x="\x1B[3"+(Q<8?Q:"8;5;"+Q),X=` ${x};1m${q} \x1B[0m`;_[0]=X+_[0].split(`
2
+ import{createRequire as A4}from"node:module";var U4=Object.create;var{getPrototypeOf:O4,defineProperty:N_,getOwnPropertyNames:T9,getOwnPropertyDescriptor:j4}=Object,F9=Object.prototype.hasOwnProperty;var H6=(_,q,$)=>{$=_!=null?U4(O4(_)):{};let Q=q||!_||!_.__esModule?N_($,"default",{value:_,enumerable:!0}):$;for(let x of T9(_))if(!F9.call(Q,x))N_(Q,x,{get:()=>_[x],enumerable:!0});return Q},A9=new WeakMap,C4=(_)=>{var q=A9.get(_),$;if(q)return q;if(q=N_({},"__esModule",{value:!0}),_&&typeof _==="object"||typeof _==="function")T9(_).map((Q)=>!F9.call(q,Q)&&N_(q,Q,{get:()=>_[Q],enumerable:!($=j4(_,Q))||$.enumerable}));return A9.set(_,q),q},I=(_,q)=>()=>(q||_((q={exports:{}}).exports,q),q.exports);var B4=(_,q)=>{for(var $ in q)N_(_,$,{get:q[$],enumerable:!0,configurable:!0,set:(Q)=>q[$]=()=>Q})};var I4=(_,q)=>()=>(_&&(q=_(_=0)),q);var C=A4(import.meta.url);var F1=I((h9)=>{Object.defineProperty(h9,"__esModule",{value:!0}),h9.DownloaderHelper=h9.DH_STATES=void 0;var W6=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_){return typeof _}:function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},T4=function(){function _(q,$){for(var Q,x=0;x<$.length;x++)Q=$[x],Q.enumerable=Q.enumerable||!1,Q.configurable=!0,"value"in Q&&(Q.writable=!0),Object.defineProperty(q,Q.key,Q)}return function(q,$,Q){return $&&_(q.prototype,$),Q&&_(q,Q),q}}(),F4=C("fs"),k=v6(F4),Z_=C("url"),R4=C("path"),c0=v6(R4),D4=C("http"),R9=v6(D4),S4=C("https"),D9=v6(S4),N4=C("events");function v6(_){if(_&&_.__esModule)return _;var q={};if(_!=null)for(var $ in _)Object.prototype.hasOwnProperty.call(_,$)&&(q[$]=_[$]);return q.default=_,q}function h4(_,q){if(!(_ instanceof q))throw TypeError("Cannot call a class as a function")}function S9(_,q){if(!_)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return q&&(typeof q=="object"||typeof q=="function")?q:_}function g4(_,q){if(typeof q!="function"&&q!==null)throw TypeError("Super expression must either be null or a function, not "+typeof q);_.prototype=Object.create(q&&q.prototype,{constructor:{value:_,enumerable:!1,writable:!0,configurable:!0}}),q&&(Object.setPrototypeOf?Object.setPrototypeOf(_,q):_.__proto__=q)}var N9=h9.DH_STATES={IDLE:"IDLE",SKIPPED:"SKIPPED",STARTED:"STARTED",DOWNLOADING:"DOWNLOADING",RETRY:"RETRY",PAUSED:"PAUSED",RESUMED:"RESUMED",STOPPED:"STOPPED",FINISHED:"FINISHED",FAILED:"FAILED"},$Q=h9.DownloaderHelper=function(_){function q($,Q){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{};h4(this,q);var X=S9(this,(q.__proto__||Object.getPrototypeOf(q)).call(this,{captureRejections:!0}));return X.__validate($,Q)?(X.url=X.requestURL=$.trim(),X.state=N9.IDLE,X.__defaultOpts={body:null,retry:!1,method:"GET",headers:{},fileName:"",timeout:-1,metadata:null,override:!1,forceResume:!1,removeOnStop:!0,removeOnFail:!0,progressThrottle:1000,httpRequestOptions:{},httpsRequestOptions:{},resumeOnIncomplete:!0,resumeIfFileExists:!1,resumeOnIncompleteMaxRetry:5},X.__opts=Object.assign({},X.__defaultOpts),X.__pipes=[],X.__total=0,X.__downloaded=0,X.__progress=0,X.__retryCount=0,X.__retryTimeout=null,X.__resumeRetryCount=0,X.__states=N9,X.__promise=null,X.__request=null,X.__response=null,X.__isAborted=!1,X.__isResumed=!1,X.__isResumable=!1,X.__isRedirected=!1,X.__destFolder=Q,X.__statsEstimate={time:0,bytes:0,prevBytes:0,throttleTime:0},X.__fileName="",X.__filePath="",X.updateOptions(x),X):S9(X)}return g4(q,_),T4(q,[{key:"start",value:function(){var Q=this,x=function(){return new Promise(function(X,V){Q.__promise={resolve:X,reject:V},Q.__start()})};return this.__opts.resumeIfFileExists&&this.state!==this.__states.RESUMED?this.getTotalSize().then(function(X){var{name:V,total:J}=X,K=Q.__opts.override;if(Q.__opts.override=!0,Q.__filePath=Q.__getFilePath(V),Q.__opts.override=K,Q.__filePath&&k.existsSync(Q.__filePath)){var G=Q.__getFilesizeInBytes(Q.__filePath);return G===J?x():Q.resumeFromFile(Q.__filePath,{total:J,fileName:V})}return x()}):x()}},{key:"pause",value:function(){var Q=this;return this.state===this.__states.STOPPED?Promise.resolve(!0):(this.__response&&(this.__response.unpipe(),this.__pipes.forEach(function(x){return x.stream.unpipe()})),this.__fileStream&&this.__fileStream.removeAllListeners(),this.__requestAbort(),this.__closeFileStream().then(function(){return Q.__setState(Q.__states.PAUSED),Q.emit("pause"),!0}))}},{key:"resume",value:function(){return this.__promise?this.state===this.__states.STOPPED?Promise.resolve(!1):(this.__setState(this.__states.RESUMED),this.__isResumable&&(this.__isResumed=!0,this.__reqOptions.headers.range="bytes="+this.__downloaded+"-"),this.emit("resume",this.__isResumed),this.__start()):this.start()}},{key:"stop",value:function(){var Q=this;if(this.state===this.__states.STOPPED)return Promise.resolve(!0);var x=function(){return new Promise(function(X,V){k.access(Q.__filePath,function(J){return J?(Q.__emitStop(),X(!0)):void k.unlink(Q.__filePath,function(K){return K?(Q.__setState(Q.__states.FAILED),Q.emit("error",K),V(K)):(Q.__emitStop(),void X(!0))})})})};return this.__requestAbort(),this.__closeFileStream().then(function(){return Q.__opts.removeOnStop?x():(Q.__emitStop(),Promise.resolve(!0))})}},{key:"pipe",value:function(Q){var x=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;return this.__pipes.push({stream:Q,options:x}),Q}},{key:"unpipe",value:function(){var Q=this,x=0<arguments.length&&arguments[0]!==void 0?arguments[0]:null,X=function(J){return Q.__response?Q.__response.unpipe(J):J.unpipe()};if(x){var V=this.__pipes.find(function(J){return J.stream===x});return void(V&&(X(x),this.__pipes=this.__pipes.filter(function(J){return J.stream!==x})))}this.__pipes.forEach(function(J){return X(J.stream)}),this.__pipes=[]}},{key:"getDownloadPath",value:function(){return this.__filePath}},{key:"isResumable",value:function(){return this.__isResumable}},{key:"updateOptions",value:function(Q){var x=1<arguments.length&&arguments[1]!==void 0?arguments[1]:"";this.__opts=Object.assign({},this.__opts,Q),this.__headers=this.__opts.headers,-1<this.__opts.timeout&&(this.__opts.httpRequestOptions.timeout=this.__opts.timeout,this.__opts.httpsRequestOptions.timeout=this.__opts.timeout),(typeof this.__opts.progressThrottle!="number"||0>this.__opts.progressThrottle)&&(this.__opts.progressThrottle=this.__defaultOpts.progressThrottle),this.url=x||this.url,this.__reqOptions=this.__getReqOptions(this.__opts.method,this.url,this.__opts.headers),this.__initProtocol(this.url)}},{key:"getOptions",value:function(){return this.__opts}},{key:"getMetadata",value:function(){return this.__opts.metadata}},{key:"getStats",value:function(){return{total:this.__total,name:this.__fileName,downloaded:this.__downloaded,progress:this.__progress,speed:this.__statsEstimate.bytes}}},{key:"getTotalSize",value:function(){var Q=this;return new Promise(function(x,X){var V=function(Y){Q.__initProtocol(Y);var H=Object.assign({},Q.__headers);H.hasOwnProperty("range")&&delete H.range;var w=Q.__getReqOptions("HEAD",Y,H);return Object.assign({},Q.__reqOptions,w)},J=0,K=null,G=function(Y,H){if(!Q.__opts.retry||W6(Q.__opts.retry)!=="object")return Promise.reject(Y||Error("wrong retry options"));K&&(clearTimeout(K),K=null);var w=Q.__opts.retry,L=w.delay,z=L===void 0?0:L,M=w.maxRetries,u=M===void 0?999:M;return J>=u?Promise.reject(Y||Error("reached the maximum retries")):(J++,Q.__setState(Q.__states.RETRY),Q.emit("retry",J,Q.__opts.retry,Y),new Promise(function(f){K=setTimeout(function(){Q.__setState(Q.__states.IDLE),Z(H,V(H)),f()},z)}))},Z=function(Y,H){K&&(clearTimeout(K),K=null);var w=Q.__protocol.request(H,function(L){if(Q.__isRequireRedirect(L)){var z=/^https?:\/\//.test(L.headers.location)?L.headers.location:new Z_.URL(L.headers.location,Y).href;return Q.emit("redirected",z,Y),Z(z,V(z))}if(200>L.statusCode||400<=L.statusCode){var M=Error("Response status was "+L.statusCode);return Q.__opts.retry&&500<=L.statusCode&&600>L.statusCode?G(M,Y).catch(X):X(M)}x({name:Q.__getFileNameFromHeaders(L.headers,L),total:parseInt(L.headers["content-length"])||null})});w.on("error",function(L){return Q.__opts.retry?G(L,Y).catch(X):void X(L)}),w.on("timeout",function(){return Q.__opts.retry?G(Error("timeout"),Y).catch(X):void X(Error("timeout"))}),w.on("uncaughtException",function(L){return Q.__opts.retry?G(L,Y).catch(X):void X(L)}),w.end()};Z(Q.url,V(Q.url))})}},{key:"getResumeState",value:function(){return{downloaded:this.__downloaded,filePath:this.__filePath,fileName:this.__fileName,total:this.__total}}},{key:"resumeFromFile",value:function(Q){var x=this,X=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return this.__opts.override=!0,this.__filePath=Q,(X.total&&X.fileName?Promise.resolve({name:X.fileName,total:X.total}):this.getTotalSize()).then(function(V){var{name:J,total:K}=V;return x.__total=X.total||K,x.__fileName=X.fileName||J,x.__downloaded=X.downloaded||x.__getFilesizeInBytes(x.__filePath),x.__reqOptions.headers.range="bytes="+x.__downloaded+"-",x.__isResumed=!0,x.__isResumable=!0,x.__setState(x.__states.RESUMED),x.emit("resume",x.__isResumed),new Promise(function(G,Z){x.__promise={resolve:G,reject:Z},x.__start()})})}},{key:"__start",value:function(){this.__isRedirected||this.state===this.__states.RESUMED||(this.emit("start"),this.__setState(this.__states.STARTED),this.__initProtocol(this.url)),this.__response=null,this.__isAborted=!1,this.__request&&!this.__request.destroyed&&this.__request.destroy(),this.__retryTimeout&&(clearTimeout(this.__retryTimeout),this.__retryTimeout=null),this.__request=this.__downloadRequest(this.__promise.resolve,this.__promise.reject),this.__request.on("error",this.__onError(this.__promise.resolve,this.__promise.reject)),this.__request.on("timeout",this.__onTimeout(this.__promise.resolve,this.__promise.reject)),this.__request.on("uncaughtException",this.__onError(this.__promise.resolve,this.__promise.reject,!0)),this.__opts.body&&this.__request.write(this.__opts.body),this.__request.end()}},{key:"__resolvePending",value:function(){if(this.__promise){var Q=this.__promise.resolve;return this.__promise=null,Q(!0)}}},{key:"__downloadRequest",value:function(Q,x){var X=this;return this.__protocol.request(this.__reqOptions,function(V){if(X.__response=V,X.__isResumed||(X.__total=parseInt(V.headers["content-length"])||null,X.__resetStats()),X.__isRequireRedirect(V)){var J=/^https?:\/\//.test(V.headers.location)?V.headers.location:new Z_.URL(V.headers.location,X.url).href;return X.__isRedirected=!0,X.__initProtocol(J),X.emit("redirected",J,X.url),X.__start()}if(200>V.statusCode||400<=V.statusCode){var K=Error("Response status was "+V.statusCode);return(K.status=V.statusCode||0,K.body=V.body||"",500<=V.statusCode&&600>V.statusCode)?X.__onError(Q,x)(K):(X.__setState(X.__states.FAILED),X.emit("error",K),x(K))}X.__opts.forceResume?X.__isResumable=!0:V.headers.hasOwnProperty("accept-ranges")&&V.headers["accept-ranges"]!=="none"&&(X.__isResumable=!0),X.__startDownload(V,Q,x)})}},{key:"__startDownload",value:function(Q,x,X){var V=this,J=Q;if(!this.__isResumed){var K=this.__getFileNameFromHeaders(Q.headers);if(this.__filePath=this.__getFilePath(K),this.__fileName=this.__filePath.split(c0.sep).pop(),k.existsSync(this.__filePath)){var G=this.__getFilesizeInBytes(this.__filePath),Z=this.__total?this.__total:0;if(W6(this.__opts.override)==="object"&&this.__opts.override.skip&&(this.__opts.override.skipSmaller||G>=Z))return this.emit("skip",{totalSize:this.__total,fileName:this.__fileName,filePath:this.__filePath,downloadedSize:G}),this.__setState(this.__states.SKIPPED),x(!0)}this.__fileStream=k.createWriteStream(this.__filePath,{})}else this.__fileStream=k.createWriteStream(this.__filePath,{flags:"a"});this.emit("download",{fileName:this.__fileName,filePath:this.__filePath,totalSize:this.__total,isResumed:this.__isResumed,downloadedSize:this.__downloaded}),this.__retryCount=0,this.__isResumed=!1,this.__isRedirected=!1,this.__setState(this.__states.DOWNLOADING),this.__statsEstimate.time=new Date,this.__statsEstimate.throttleTime=new Date,J.on("data",function(Y){return V.__calculateStats(Y.length)}),this.__pipes.forEach(function(Y){J.pipe(Y.stream,Y.options),J=Y.stream}),J.pipe(this.__fileStream),J.on("error",this.__onError(x,X)),this.__fileStream.on("finish",this.__onFinished(x,X)),this.__fileStream.on("error",this.__onError(x,X))}},{key:"__hasFinished",value:function(){return!this.__isAborted&&[this.__states.PAUSED,this.__states.STOPPED,this.__states.RETRY,this.__states.FAILED,this.__states.RESUMED].indexOf(this.state)===-1}},{key:"__isRequireRedirect",value:function(Q){return 300<Q.statusCode&&400>Q.statusCode&&Q.headers.hasOwnProperty("location")&&Q.headers.location}},{key:"__onFinished",value:function(Q,x){var X=this;return function(){X.__fileStream.close(function(V){if(V)return x(V);if(X.__hasFinished()){var J=!!X.__total&&X.__downloaded!==X.__total;if(J&&X.__isResumable&&X.__opts.resumeOnIncomplete&&X.__resumeRetryCount<=X.__opts.resumeOnIncompleteMaxRetry)return X.__resumeRetryCount++,X.emit("warning",Error("uncomplete download, retrying")),X.resume();X.__setState(X.__states.FINISHED),X.__pipes=[],X.emit("end",{fileName:X.__fileName,filePath:X.__filePath,totalSize:X.__total,incomplete:J,onDiskSize:X.__getFilesizeInBytes(X.__filePath),downloadedSize:X.__downloaded})}return Q(X.__downloaded===X.__total)})}}},{key:"__closeFileStream",value:function(){var Q=this;return this.__fileStream?new Promise(function(x,X){Q.__fileStream.close(function(V){return V?X(V):x(!0)})}):Promise.resolve(!0)}},{key:"__onError",value:function(Q,x){var X=this,V=2<arguments.length&&arguments[2]!==void 0&&arguments[2];return function(J){return X.__pipes=[],V&&X.__requestAbort(),X.state===X.__states.STOPPED||X.state===X.__states.FAILED?void 0:X.__opts.retry?X.__retry(J).catch(function(K){X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),X.emit("error",K?K:J),x(K?K:J)})}):X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),X.emit("error",J),x(J)})}}},{key:"__retry",value:function(){var Q=this,x=0<arguments.length&&arguments[0]!==void 0?arguments[0]:null;if(!this.__opts.retry||W6(this.__opts.retry)!=="object")return Promise.reject(x||Error("wrong retry options"));var X=this.__opts.retry,V=X.delay,J=V===void 0?0:V,K=X.maxRetries,G=K===void 0?999:K;return this.__retryCount>=G?Promise.reject(x||Error("reached the maximum retries")):(this.__retryCount++,this.__setState(this.__states.RETRY),this.emit("retry",this.__retryCount,this.__opts.retry,x),this.__response&&(this.__response.unpipe(),this.__pipes.forEach(function(Z){return Z.stream.unpipe()})),this.__fileStream&&this.__fileStream.removeAllListeners(),this.__requestAbort(),this.__closeFileStream().then(function(){return new Promise(function(Z){return Q.__retryTimeout=setTimeout(function(){return Z(0<Q.__downloaded?Q.resume():Q.__start())},J)})}))}},{key:"__onTimeout",value:function(Q,x){var X=this;return function(){return X.__requestAbort(),X.__opts.retry?X.__retry(Error("timeout")).catch(function(V){X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),V?x(V):(X.emit("timeout"),x(Error("timeout")))})}):X.__removeFile().finally(function(){X.__setState(X.__states.FAILED),X.emit("timeout"),x(Error("timeout"))})}}},{key:"__resetStats",value:function(){this.__retryCount=0,this.__downloaded=0,this.__progress=0,this.__resumeRetryCount=0,this.__statsEstimate={time:0,bytes:0,prevBytes:0,throttleTime:0}}},{key:"__getFileNameFromHeaders",value:function(Q,x){var X="",V=/.*filename\*=.*?'.*?'([^"].+?[^"])(?:(?:;)|$)/i,J=/.*filename="(.*?)";?/i,K=/.*filename=([^"].+?[^"])(?:(?:;)|$)/i,G=Q.hasOwnProperty("content-disposition"),Z=G?Q["content-disposition"].match(V):null,Y=!G||Z?null:Q["content-disposition"].match(J),H=!G||Z||Y?null:Q["content-disposition"].match(K);return G&&(Z||Y||H)?(X=Q["content-disposition"],X=X.trim(),Z?X=Z[1]:Y?X=Y[1]:H&&(X=H[1]),X=X.replace(/[/\\]/g,"")):0<c0.basename(new Z_.URL(this.requestURL).pathname).length?X=c0.basename(new Z_.URL(this.requestURL).pathname):X=new Z_.URL(this.requestURL).hostname+".html",this.__opts.fileName?this.__getFileNameFromOpts(X,x):X.replace(/\.*$/,"")}},{key:"__getFilePath",value:function(Q){var x=c0.join(this.__destFolder,Q),X=x;return this.__opts.override||this.state===this.__states.RESUMED||(X=this.__uniqFileNameSync(X),x!==X&&this.emit("renamed",{path:X,fileName:X.split(c0.sep).pop(),prevPath:x,prevFileName:x.split(c0.sep).pop()})),X}},{key:"__getFileNameFromOpts",value:function(Q,x){if(!this.__opts.fileName)return Q;if(typeof this.__opts.fileName=="string")return this.__opts.fileName;if(typeof this.__opts.fileName=="function"){var X=c0.join(this.__destFolder,Q);return x&&x.headers||this.__response&&this.__response.headers?this.__opts.fileName(Q,X,(x?x:this.__response).headers["content-type"]):this.__opts.fileName(Q,X)}if(W6(this.__opts.fileName)==="object"){var V=this.__opts.fileName,J=V.name,K=!!V.hasOwnProperty("ext")&&V.ext;if(typeof K=="string")return J+"."+K;if(typeof K=="boolean"){if(K)return J;var G=Q.includes(".")?Q.split(".").pop():"";return G===""?J:J+"."+G}}return Q}},{key:"__calculateStats",value:function(Q){var x=new Date,X=x-this.__statsEstimate.time,V=x-this.__statsEstimate.throttleTime,J=this.__total||0;Q&&(this.__downloaded+=Q,this.__progress=J===0?0:100*(this.__downloaded/J),(this.__downloaded===J||1000<X)&&(this.__statsEstimate.time=x,this.__statsEstimate.bytes=this.__downloaded-this.__statsEstimate.prevBytes,this.__statsEstimate.prevBytes=this.__downloaded),(this.__downloaded===J||V>this.__opts.progressThrottle)&&(this.__statsEstimate.throttleTime=x,this.emit("progress.throttled",this.getStats())),this.emit("progress",this.getStats()))}},{key:"__setState",value:function(Q){this.state=Q,this.emit("stateChanged",this.state)}},{key:"__getReqOptions",value:function(Q,x){var X=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},V=new Z_.URL(x),J={protocol:V.protocol,host:V.hostname,port:V.port,path:V.pathname+V.search,method:Q};return X&&(J.headers=X),J}},{key:"__getFilesizeInBytes",value:function(Q){try{var x=k.statSync(Q,{throwIfNoEntry:!1}),X=x.size||0;return X}catch(V){this.emit("warning",V)}return 0}},{key:"__validate",value:function(Q,x){if(typeof Q!="string")throw Error("URL should be an string");if(Q.trim()==="")throw Error("URL couldn't be empty");if(typeof x!="string")throw Error("Destination Folder should be an string");if(x.trim()==="")throw Error("Destination Folder couldn't be empty");if(!k.existsSync(x))throw Error("Destination Folder must exist");var X=k.statSync(x);if(!X.isDirectory())throw Error("Destination Folder must be a directory");try{k.accessSync(x,k.constants.W_OK)}catch(V){throw Error("Destination Folder must be writable")}return!0}},{key:"__initProtocol",value:function(Q){var x=this.__getReqOptions(this.__opts.method,Q,this.__headers);this.requestURL=Q,-1<Q.indexOf("https://")?(this.__protocol=D9,x.agent=new D9.Agent({keepAlive:!1}),this.__reqOptions=Object.assign({},x,this.__opts.httpsRequestOptions)):(this.__protocol=R9,x.agent=new R9.Agent({keepAlive:!1}),this.__reqOptions=Object.assign({},x,this.__opts.httpRequestOptions))}},{key:"__uniqFileNameSync",value:function(Q){if(typeof Q!="string"||Q==="")return Q;try{k.accessSync(Q,k.F_OK);var x=Q.match(/(.*)(\([0-9]+\))(\..*)$/),X=x?x[1].trim():Q,V=x?parseInt(x[2].replace(/\(|\)/,"")):0,J=Q.split(".").pop();return J!==Q&&0<J.length?(J="."+J,X=X.replace(J,"")):J="",this.__uniqFileNameSync(X+" ("+ ++V+")"+J)}catch(K){return Q}}},{key:"__removeFile",value:function(){var Q=this;return new Promise(function(x){return Q.__fileStream?void Q.__fileStream.close(function(X){return X&&Q.emit("warning",X),Q.__opts.removeOnFail?k.access(Q.__filePath,function(V){return V?x():void k.unlink(Q.__filePath,function(J){J&&Q.emit("warning",X),x()})}):void x()}):x()})}},{key:"__requestAbort",value:function(){this.__isAborted=!0,this.__retryTimeout&&(clearTimeout(this.__retryTimeout),this.__retryTimeout=null),this.__response&&this.__response.destroy(),this.__request&&(this.__request.destroy?this.__request.destroy():this.__request.abort())}},{key:"__emitStop",value:function(){this.__resolvePending(),this.__setState(this.__states.STOPPED),this.emit("stop")}}]),q}(N4.EventEmitter)});var i3=I((dX,f3)=>{var I_=1000,A_=I_*60,T_=A_*60,x_=T_*24,I5=x_*7,A5=x_*365.25;f3.exports=function(_,q){q=q||{};var $=typeof _;if($==="string"&&_.length>0)return T5(_);else if($==="number"&&isFinite(_))return q.long?R5(_):F5(_);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(_))};function T5(_){if(_=String(_),_.length>100)return;var q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(_);if(!q)return;var $=parseFloat(q[1]),Q=(q[2]||"ms").toLowerCase();switch(Q){case"years":case"year":case"yrs":case"yr":case"y":return $*A5;case"weeks":case"week":case"w":return $*I5;case"days":case"day":case"d":return $*x_;case"hours":case"hour":case"hrs":case"hr":case"h":return $*T_;case"minutes":case"minute":case"mins":case"min":case"m":return $*A_;case"seconds":case"second":case"secs":case"sec":case"s":return $*I_;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return $;default:return}}function F5(_){var q=Math.abs(_);if(q>=x_)return Math.round(_/x_)+"d";if(q>=T_)return Math.round(_/T_)+"h";if(q>=A_)return Math.round(_/A_)+"m";if(q>=I_)return Math.round(_/I_)+"s";return _+"ms"}function R5(_){var q=Math.abs(_);if(q>=x_)return Q1(_,q,x_,"day");if(q>=T_)return Q1(_,q,T_,"hour");if(q>=A_)return Q1(_,q,A_,"minute");if(q>=I_)return Q1(_,q,I_,"second");return _+" ms"}function Q1(_,q,$,Q){var x=q>=$*1.5;return Math.round(_/$)+" "+Q+(x?"s":"")}});var a2=I((fX,p3)=>{function D5(_){$.debug=$,$.default=$,$.coerce=K,$.disable=V,$.enable=x,$.enabled=J,$.humanize=i3(),$.destroy=G,Object.keys(_).forEach((Z)=>{$[Z]=_[Z]}),$.names=[],$.skips=[],$.formatters={};function q(Z){let Y=0;for(let H=0;H<Z.length;H++)Y=(Y<<5)-Y+Z.charCodeAt(H),Y|=0;return $.colors[Math.abs(Y)%$.colors.length]}$.selectColor=q;function $(Z){let Y,H=null,w,L;function z(...M){if(!z.enabled)return;let u=z,f=Number(new Date),G6=f-(Y||f);if(u.diff=G6,u.prev=Y,u.curr=f,Y=f,M[0]=$.coerce(M[0]),typeof M[0]!=="string")M.unshift("%O");let K_=0;M[0]=M[0].replace(/%([a-zA-Z%])/g,(x0,Y6)=>{if(x0==="%%")return"%";K_++;let I9=$.formatters[Y6];if(typeof I9==="function"){let P4=M[K_];x0=I9.call(u,P4),M.splice(K_,1),K_--}return x0}),$.formatArgs.call(u,M),(u.log||$.log).apply(u,M)}if(z.namespace=Z,z.useColors=$.useColors(),z.color=$.selectColor(Z),z.extend=Q,z.destroy=$.destroy,Object.defineProperty(z,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(w!==$.namespaces)w=$.namespaces,L=$.enabled(Z);return L},set:(M)=>{H=M}}),typeof $.init==="function")$.init(z);return z}function Q(Z,Y){let H=$(this.namespace+(typeof Y>"u"?":":Y)+Z);return H.log=this.log,H}function x(Z){$.save(Z),$.namespaces=Z,$.names=[],$.skips=[];let Y=(typeof Z==="string"?Z:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let H of Y)if(H[0]==="-")$.skips.push(H.slice(1));else $.names.push(H)}function X(Z,Y){let H=0,w=0,L=-1,z=0;while(H<Z.length)if(w<Y.length&&(Y[w]===Z[H]||Y[w]==="*"))if(Y[w]==="*")L=w,z=H,w++;else H++,w++;else if(L!==-1)w=L+1,z++,H=z;else return!1;while(w<Y.length&&Y[w]==="*")w++;return w===Y.length}function V(){let Z=[...$.names,...$.skips.map((Y)=>"-"+Y)].join(",");return $.enable(""),Z}function J(Z){for(let Y of $.skips)if(X(Z,Y))return!1;for(let Y of $.names)if(X(Z,Y))return!0;return!1}function K(Z){if(Z instanceof Error)return Z.stack||Z.message;return Z}function G(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return $.enable($.load()),$}p3.exports=D5});var n3=I((s3,x1)=>{s3.formatArgs=N5;s3.save=h5;s3.load=g5;s3.useColors=S5;s3.storage=y5();s3.destroy=(()=>{let _=!1;return()=>{if(!_)_=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();s3.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function S5(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let _;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(_=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(_[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function N5(_){if(_[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+_[0]+(this.useColors?"%c ":" ")+"+"+x1.exports.humanize(this.diff),!this.useColors)return;let q="color: "+this.color;_.splice(1,0,q,"color: inherit");let $=0,Q=0;_[0].replace(/%[a-zA-Z%]/g,(x)=>{if(x==="%%")return;if($++,x==="%c")Q=$}),_.splice(Q,0,q)}s3.log=console.debug||console.log||(()=>{});function h5(_){try{if(_)s3.storage.setItem("debug",_);else s3.storage.removeItem("debug")}catch(q){}}function g5(){let _;try{_=s3.storage.getItem("debug")||s3.storage.getItem("DEBUG")}catch(q){}if(!_&&typeof process<"u"&&"env"in process)_=process.env.DEBUG;return _}function y5(){try{return localStorage}catch(_){}}x1.exports=a2()(s3);var{formatters:u5}=x1.exports;u5.j=function(_){try{return JSON.stringify(_)}catch(q){return"[UnexpectedJSONParseError]: "+q.message}}});var o3={};B4(o3,{default:()=>a5,createSupportsColor:()=>o2});import t2 from"node:process";import f5 from"node:os";import a3 from"node:tty";function o(_,q=globalThis.Deno?globalThis.Deno.args:t2.argv){let $=_.startsWith("-")?"":_.length===1?"-":"--",Q=q.indexOf($+_),x=q.indexOf("--");return Q!==-1&&(x===-1||Q<x)}function i5(){if("FORCE_COLOR"in T){if(T.FORCE_COLOR==="true")return 1;if(T.FORCE_COLOR==="false")return 0;return T.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(T.FORCE_COLOR,10),3)}}function p5(_){if(_===0)return!1;return{level:_,hasBasic:!0,has256:_>=2,has16m:_>=3}}function s5(_,{streamIsTTY:q,sniffFlags:$=!0}={}){let Q=i5();if(Q!==void 0)X1=Q;let x=$?X1:Q;if(x===0)return 0;if($){if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2}if("TF_BUILD"in T&&"AGENT_NAME"in T)return 1;if(_&&!q&&x===void 0)return 0;let X=x||0;if(T.TERM==="dumb")return X;if(t2.platform==="win32"){let V=f5.release().split(".");if(Number(V[0])>=10&&Number(V[2])>=10586)return Number(V[2])>=14931?3:2;return 1}if("CI"in T){if("GITHUB_ACTIONS"in T||"GITEA_ACTIONS"in T)return 3;if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((V)=>(V in T))||T.CI_NAME==="codeship")return 1;return X}if("TEAMCITY_VERSION"in T)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(T.TEAMCITY_VERSION)?1:0;if(T.COLORTERM==="truecolor")return 3;if(T.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in T){let V=Number.parseInt((T.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(T.TERM_PROGRAM){case"iTerm.app":return V>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(T.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(T.TERM))return 1;if("COLORTERM"in T)return 1;return X}function o2(_,q={}){let $=s5(_,{streamIsTTY:_&&_.isTTY,...q});return p5($)}var T,X1,n5,a5;var t3=I4(()=>{({env:T}=t2);if(o("no-color")||o("no-colors")||o("color=false")||o("color=never"))X1=0;else if(o("color")||o("colors")||o("color=true")||o("color=always"))X1=1;n5={stdout:o2({isTTY:a3.isatty(1)}),stderr:o2({isTTY:a3.isatty(2)})},a5=n5});var q8=I((e3,J1)=>{var o5=C("tty"),V1=C("util");e3.init=Qq;e3.log=_q;e3.formatArgs=r5;e3.save=qq;e3.load=$q;e3.useColors=t5;e3.destroy=V1.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");e3.colors=[6,2,3,4,5,1];try{let _=(t3(),C4(o3));if(_&&(_.stderr||_).level>=2)e3.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(_){}e3.inspectOpts=Object.keys(process.env).filter((_)=>{return/^debug_/i.test(_)}).reduce((_,q)=>{let $=q.substring(6).toLowerCase().replace(/_([a-z])/g,(x,X)=>{return X.toUpperCase()}),Q=process.env[q];if(/^(yes|on|true|enabled)$/i.test(Q))Q=!0;else if(/^(no|off|false|disabled)$/i.test(Q))Q=!1;else if(Q==="null")Q=null;else Q=Number(Q);return _[$]=Q,_},{});function t5(){return"colors"in e3.inspectOpts?Boolean(e3.inspectOpts.colors):o5.isatty(process.stderr.fd)}function r5(_){let{namespace:q,useColors:$}=this;if($){let Q=this.color,x="\x1B[3"+(Q<8?Q:"8;5;"+Q),X=` ${x};1m${q} \x1B[0m`;_[0]=X+_[0].split(`
3
3
  `).join(`
4
- `+X),_.push(x+"m+"+Q1.exports.humanize(this.diff)+"\x1B[0m")}else _[0]=u7()+q+" "+_[0]}function u7(){if(l3.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function k7(..._){return process.stderr.write($1.formatWithOptions(l3.inspectOpts,..._)+`
5
- `)}function m7(_){if(_)process.env.DEBUG=_;else delete process.env.DEBUG}function E7(){return process.env.DEBUG}function b7(_){_.inspectOpts={};let q=Object.keys(l3.inspectOpts);for(let $=0;$<q.length;$++)_.inspectOpts[q[$]]=l3.inspectOpts[q[$]]}Q1.exports=i2()(l3);var{formatters:c3}=Q1.exports;c3.o=function(_){return this.inspectOpts.colors=this.useColors,$1.inspect(_,this.inspectOpts).split(`
6
- `).map((q)=>q.trim()).join(" ")};c3.O=function(_){return this.inspectOpts.colors=this.useColors,$1.inspect(_,this.inspectOpts)}});var i3=I((SX,p2)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)p2.exports=b3();else p2.exports=f3()});var n3=I((DX,s3)=>{s3.exports=p3;function p3(_,q){if(_&&q)return p3(_)(q);if(typeof _!=="function")throw TypeError("need wrapper function");return Object.keys(_).forEach(function(Q){$[Q]=_[Q]}),$;function $(){var Q=Array(arguments.length);for(var x=0;x<Q.length;x++)Q[x]=arguments[x];var X=_.apply(this,Q),V=Q[Q.length-1];if(typeof X==="function"&&X!==V)Object.keys(V).forEach(function(J){X[J]=V[J]});return X}}});var n2=I((NX,s2)=>{var a3=n3();s2.exports=a3(x1);s2.exports.strict=a3(o3);x1.proto=x1(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return x1(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o3(this)},configurable:!0})});function x1(_){var q=function(){if(q.called)return q.value;return q.called=!0,q.value=_.apply(this,arguments)};return q.called=!1,q}function o3(_){var q=function(){if(q.called)throw Error(q.onceError);return q.called=!0,q.value=_.apply(this,arguments)},$=_.name||"Function wrapped with `once`";return q.onceError=$+" shouldn't be called more than once",q.called=!1,q}});var e3=I((hX,r3)=>{var n7=n2(),a7=function(){},o7=global.Bare?queueMicrotask:process.nextTick.bind(process),t7=function(_){return _.setHeader&&typeof _.abort==="function"},r7=function(_){return _.stdio&&Array.isArray(_.stdio)&&_.stdio.length===3},t3=function(_,q,$){if(typeof q==="function")return t3(_,null,q);if(!q)q={};$=n7($||a7);var{_writableState:Q,_readableState:x}=_,X=q.readable||q.readable!==!1&&_.readable,V=q.writable||q.writable!==!1&&_.writable,J=!1,K=function(){if(!_.writable)G()},G=function(){if(V=!1,!X)$.call(_)},Z=function(){if(X=!1,!V)$.call(_)},Y=function(M){$.call(_,M?Error("exited with error code: "+M):null)},H=function(M){$.call(_,M)},w=function(){o7(L)},L=function(){if(J)return;if(X&&!(x&&(x.ended&&!x.destroyed)))return $.call(_,Error("premature close"));if(V&&!(Q&&(Q.ended&&!Q.destroyed)))return $.call(_,Error("premature close"))},z=function(){_.req.on("finish",G)};if(t7(_))if(_.on("complete",G),_.on("abort",w),_.req)z();else _.on("request",z);else if(V&&!Q)_.on("end",K),_.on("close",K);if(r7(_))_.on("exit",Y);if(_.on("end",Z),_.on("finish",G),q.error!==!1)_.on("error",H);return _.on("close",w),function(){if(J=!0,_.removeListener("complete",G),_.removeListener("abort",w),_.removeListener("request",z),_.req)_.req.removeListener("finish",G);_.removeListener("end",K),_.removeListener("close",K),_.removeListener("finish",G),_.removeListener("exit",Y),_.removeListener("end",Z),_.removeListener("error",H),_.removeListener("close",w)}};r3.exports=t3});var $8=I((gX,q8)=>{var e7=n2(),_q=e3(),X1;try{X1=j("fs")}catch(_){}var $6=function(){},qq=typeof process>"u"?!1:/^v?\.0/.test(process.version),V1=function(_){return typeof _==="function"},$q=function(_){if(!qq)return!1;if(!X1)return!1;return(_ instanceof(X1.ReadStream||$6)||_ instanceof(X1.WriteStream||$6))&&V1(_.close)},Qq=function(_){return _.setHeader&&V1(_.abort)},xq=function(_,q,$,Q){Q=e7(Q);var x=!1;_.on("close",function(){x=!0}),_q(_,{readable:q,writable:$},function(V){if(V)return Q(V);x=!0,Q()});var X=!1;return function(V){if(x)return;if(X)return;if(X=!0,$q(_))return _.close($6);if(Qq(_))return _.abort();if(V1(_.destroy))return _.destroy();Q(V||Error("stream was destroyed"))}},_8=function(_){_()},Xq=function(_,q){return _.pipe(q)},Vq=function(){var _=Array.prototype.slice.call(arguments),q=V1(_[_.length-1]||$6)&&_.pop()||$6;if(Array.isArray(_[0]))_=_[0];if(_.length<2)throw Error("pump requires two streams per minimum");var $,Q=_.map(function(x,X){var V=X<_.length-1,J=X>0;return xq(x,V,J,function(K){if(!$)$=K;if(K)Q.forEach(_8);if(V)return;Q.forEach(_8),q($)})});return _.reduce(Xq)};q8.exports=Vq});var x8=I((yX,Q8)=>{var{PassThrough:Jq}=j("stream");Q8.exports=(_)=>{_={..._};let{array:q}=_,{encoding:$}=_,Q=$==="buffer",x=!1;if(q)x=!($||Q);else $=$||"utf8";if(Q)$=null;let X=new Jq({objectMode:x});if($)X.setEncoding($);let V=0,J=[];return X.on("data",(K)=>{if(J.push(K),x)V=J.length;else V+=K.length}),X.getBufferedValue=()=>{if(q)return J;return Q?Buffer.concat(J,V):J.join("")},X.getBufferedLength=()=>V,X}});var X8=I((uX,A_)=>{var{constants:Kq}=j("buffer"),Zq=$8(),Gq=x8();class a2 extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}}async function J1(_,q){if(!_)return Promise.reject(Error("Expected a stream"));q={maxBuffer:1/0,...q};let{maxBuffer:$}=q,Q;return await new Promise((x,X)=>{let V=(J)=>{if(J&&Q.getBufferedLength()<=Kq.MAX_LENGTH)J.bufferedData=Q.getBufferedValue();X(J)};Q=Zq(_,Gq(q),(J)=>{if(J){V(J);return}x()}),Q.on("data",()=>{if(Q.getBufferedLength()>$)V(new a2)})}),Q.getBufferedValue()}A_.exports=J1;A_.exports.default=J1;A_.exports.buffer=(_,q)=>J1(_,{...q,encoding:"buffer"});A_.exports.array=(_,q)=>J1(_,{...q,array:!0});A_.exports.MaxBufferError=a2});var Z8=I((kX,K8)=>{K8.exports=K1;function K1(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}K1.prototype.go=function(_){if(this.pending<this.max)J8(this,_);else this.waiting.push(_)};K1.prototype.wait=function(_){if(this.pending===0)_(this.error);else this.listeners.push(_)};K1.prototype.hold=function(){return V8(this)};function V8(_){_.pending+=1;var q=!1;return $;function $(x){if(q)throw Error("callback called twice");if(q=!0,_.error=_.error||x,_.pending-=1,_.waiting.length>0&&_.pending<_.max)J8(_,_.waiting.shift());else if(_.pending===0){var X=_.listeners;_.listeners=[],X.forEach(Q)}}function Q(x){x(_.error)}}function J8(_,q){q(V8(_))}});var Y8=I((wq)=>{var Q6=j("fs"),Z1=j("util"),o2=j("stream"),G8=o2.Readable,t2=o2.Writable,Yq=o2.PassThrough,Hq=Z8(),G1=j("events").EventEmitter;wq.createFromBuffer=vq;wq.createFromFd=Wq;wq.BufferSlicer=P0;wq.FdSlicer=M0;Z1.inherits(M0,G1);function M0(_,q){q=q||{},G1.call(this),this.fd=_,this.pend=new Hq,this.pend.max=1,this.refCount=0,this.autoClose=!!q.autoClose}M0.prototype.read=function(_,q,$,Q,x){var X=this;X.pend.go(function(V){Q6.read(X.fd,_,q,$,Q,function(J,K,G){V(),x(J,K,G)})})};M0.prototype.write=function(_,q,$,Q,x){var X=this;X.pend.go(function(V){Q6.write(X.fd,_,q,$,Q,function(J,K,G){V(),x(J,K,G)})})};M0.prototype.createReadStream=function(_){return new Y1(this,_)};M0.prototype.createWriteStream=function(_){return new H1(this,_)};M0.prototype.ref=function(){this.refCount+=1};M0.prototype.unref=function(){var _=this;if(_.refCount-=1,_.refCount>0)return;if(_.refCount<0)throw Error("invalid unref");if(_.autoClose)Q6.close(_.fd,q);function q($){if($)_.emit("error",$);else _.emit("close")}};Z1.inherits(Y1,G8);function Y1(_,q){q=q||{},G8.call(this,q),this.context=_,this.context.ref(),this.start=q.start||0,this.endOffset=q.end,this.pos=this.start,this.destroyed=!1}Y1.prototype._read=function(_){var q=this;if(q.destroyed)return;var $=Math.min(q._readableState.highWaterMark,_);if(q.endOffset!=null)$=Math.min($,q.endOffset-q.pos);if($<=0){q.destroyed=!0,q.push(null),q.context.unref();return}q.context.pend.go(function(Q){if(q.destroyed)return Q();var x=Buffer.allocUnsafe($);Q6.read(q.context.fd,x,0,$,q.pos,function(X,V){if(X)q.destroy(X);else if(V===0)q.destroyed=!0,q.push(null),q.context.unref();else q.pos+=V,q.push(x.slice(0,V));Q()})})};Y1.prototype.destroy=function(_){if(this.destroyed)return;_=_||Error("stream destroyed"),this.destroyed=!0,this.emit("error",_),this.context.unref()};Z1.inherits(H1,t2);function H1(_,q){q=q||{},t2.call(this,q),this.context=_,this.context.ref(),this.start=q.start||0,this.endOffset=q.end==null?1/0:+q.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}H1.prototype._write=function(_,q,$){var Q=this;if(Q.destroyed)return;if(Q.pos+_.length>Q.endOffset){var x=Error("maximum file length exceeded");x.code="ETOOBIG",Q.destroy(),$(x);return}Q.context.pend.go(function(X){if(Q.destroyed)return X();Q6.write(Q.context.fd,_,0,_.length,Q.pos,function(V,J){if(V)Q.destroy(),X(),$(V);else Q.bytesWritten+=J,Q.pos+=J,Q.emit("progress"),X(),$()})})};H1.prototype.destroy=function(){if(this.destroyed)return;this.destroyed=!0,this.context.unref()};Z1.inherits(P0,G1);function P0(_,q){G1.call(this),q=q||{},this.refCount=0,this.buffer=_,this.maxChunkSize=q.maxChunkSize||Number.MAX_SAFE_INTEGER}P0.prototype.read=function(_,q,$,Q,x){if(!(0<=q&&q<=_.length))throw RangeError("offset outside buffer: 0 <= "+q+" <= "+_.length);if(Q<0)throw RangeError("position is negative: "+Q);if(q+$>_.length)$=_.length-q;if(Q+$>this.buffer.length)$=this.buffer.length-Q;if($<=0){setImmediate(function(){x(null,0)});return}this.buffer.copy(_,q,Q,Q+$),setImmediate(function(){x(null,$)})};P0.prototype.write=function(_,q,$,Q,x){_.copy(this.buffer,Q,q,q+$),setImmediate(function(){x(null,$,_)})};P0.prototype.createReadStream=function(_){_=_||{};var q=new Yq(_);q.destroyed=!1,q.start=_.start||0,q.endOffset=_.end,q.pos=q.endOffset||this.buffer.length;var $=this.buffer.slice(q.start,q.pos),Q=0;while(!0){var x=Q+this.maxChunkSize;if(x>=$.length){if(Q<$.length)q.write($.slice(Q,$.length));break}q.write($.slice(Q,x)),Q=x}return q.end(),q.destroy=function(){q.destroyed=!0},q};P0.prototype.createWriteStream=function(_){var q=this;_=_||{};var $=new t2(_);return $.start=_.start||0,$.endOffset=_.end==null?this.buffer.length:+_.end,$.bytesWritten=0,$.pos=$.start,$.destroyed=!1,$._write=function(Q,x,X){if($.destroyed)return;var V=$.pos+Q.length;if(V>$.endOffset){var J=Error("maximum file length exceeded");J.code="ETOOBIG",$.destroyed=!0,X(J);return}Q.copy(q.buffer,$.pos,0,Q.length),$.bytesWritten+=Q.length,$.pos=V,$.emit("progress"),X()},$.destroy=function(){$.destroyed=!0},$};P0.prototype.ref=function(){this.refCount+=1};P0.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw Error("invalid unref")};function vq(_,q){return new P0(_,q)}function Wq(_,q){return new M0(_,q)}});var W8=I((EX,v8)=>{var k0=j("buffer").Buffer,r2=[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,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];if(typeof Int32Array<"u")r2=new Int32Array(r2);function H8(_){if(k0.isBuffer(_))return _;var q=typeof k0.alloc==="function"&&typeof k0.from==="function";if(typeof _==="number")return q?k0.alloc(_):new k0(_);else if(typeof _==="string")return q?k0.from(_):new k0(_);else throw Error("input must be buffer, number, or string, received "+typeof _)}function Uq(_){var q=H8(4);return q.writeInt32BE(_,0),q}function e2(_,q){if(_=H8(_),k0.isBuffer(q))q=q.readUInt32BE(0);var $=~~q^-1;for(var Q=0;Q<_.length;Q++)$=r2[($^_[Q])&255]^$>>>8;return $^-1}function _9(){return Uq(e2.apply(null,arguments))}_9.signed=function(){return e2.apply(null,arguments)};_9.unsigned=function(){return e2.apply(null,arguments)>>>0};v8.exports=_9});var B8=I((Tq)=>{var q9=j("fs"),Cq=j("zlib"),w8=Y8(),Oq=W8(),w1=j("util"),L1=j("events").EventEmitter,L8=j("stream").Transform,Q9=j("stream").PassThrough,jq=j("stream").Writable;Tq.open=Bq;Tq.fromFd=z8;Tq.fromBuffer=Iq;Tq.fromRandomAccessReader=x9;Tq.dosDateTimeToDate=U8;Tq.getFileNameLowLevel=C8;Tq.validateFileName=O8;Tq.parseExtraFields=j8;Tq.ZipFile=G0;Tq.Entry=x6;Tq.LocalFileHeader=P8;Tq.RandomAccessReader=m0;function Bq(_,q,$){if(typeof q==="function")$=q,q=null;if(q==null)q={};if(q.autoClose==null)q.autoClose=!0;if(q.lazyEntries==null)q.lazyEntries=!1;if(q.decodeStrings==null)q.decodeStrings=!0;if(q.validateEntrySizes==null)q.validateEntrySizes=!0;if(q.strictFileNames==null)q.strictFileNames=!1;if($==null)$=W1;q9.open(_,"r",function(Q,x){if(Q)return $(Q);z8(x,q,function(X,V){if(X)q9.close(x,W1);$(X,V)})})}function z8(_,q,$){if(typeof q==="function")$=q,q=null;if(q==null)q={};if(q.autoClose==null)q.autoClose=!1;if(q.lazyEntries==null)q.lazyEntries=!1;if(q.decodeStrings==null)q.decodeStrings=!0;if(q.validateEntrySizes==null)q.validateEntrySizes=!0;if(q.strictFileNames==null)q.strictFileNames=!1;if($==null)$=W1;q9.fstat(_,function(Q,x){if(Q)return $(Q);var X=w8.createFromFd(_,{autoClose:!0});x9(X,x.size,q,$)})}function Iq(_,q,$){if(typeof q==="function")$=q,q=null;if(q==null)q={};if(q.autoClose=!1,q.lazyEntries==null)q.lazyEntries=!1;if(q.decodeStrings==null)q.decodeStrings=!0;if(q.validateEntrySizes==null)q.validateEntrySizes=!0;if(q.strictFileNames==null)q.strictFileNames=!1;var Q=w8.createFromBuffer(_,{maxChunkSize:65536});x9(Q,_.length,q,$)}function x9(_,q,$,Q){if(typeof $==="function")Q=$,$=null;if($==null)$={};if($.autoClose==null)$.autoClose=!0;if($.lazyEntries==null)$.lazyEntries=!1;if($.decodeStrings==null)$.decodeStrings=!0;var x=!!$.decodeStrings;if($.validateEntrySizes==null)$.validateEntrySizes=!0;if($.strictFileNames==null)$.strictFileNames=!1;if(Q==null)Q=W1;if(typeof q!=="number")throw Error("expected totalSize parameter to be a number");if(q>Number.MAX_SAFE_INTEGER)throw 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.");_.ref();var X=22,V=20,J=65535,K=Math.min(V+X+J,q),G=U0(K),Z=q-G.length;F_(_,G,0,K,Z,function(Y){if(Y)return Q(Y);for(var H=K-X;H>=0;H-=1){if(G.readUInt32LE(H)!==101010256)continue;var w=G.subarray(H),L=w.readUInt16LE(4),z=w.readUInt16LE(10),M=w.readUInt32LE(16),y=w.readUInt16LE(20),d=w.length-X;if(y!==d)return Q(Error("Invalid comment length. Expected: "+d+". Found: "+y+". Are there extra bytes at the end of the file? Or is the end of central dir signature `PK☺☻` in the comment?"));var J6=x?v1(w.subarray(22),!1):w.subarray(22);if(H-V>=0&&G.readUInt32LE(H-V)===117853008){var V_=G.subarray(H-V,H-V+V),M9=T_(V_,8),$0=U0(56);return F_(_,$0,0,$0.length,M9,function(K6){if(K6)return Q(K6);if($0.readUInt32LE(0)!==101075792)return Q(Error("invalid zip64 end of central directory record signature"));if(L=$0.readUInt32LE(16),L!==0)return Q(Error("multi-disk zip files are not supported: found disk number: "+L));return z=T_($0,32),M=T_($0,48),Q(null,new G0(_,M,q,z,J6,$.autoClose,$.lazyEntries,x,$.validateEntrySizes,$.strictFileNames))})}if(L!==0)return Q(Error("multi-disk zip files are not supported: found disk number: "+L));return Q(null,new G0(_,M,q,z,J6,$.autoClose,$.lazyEntries,x,$.validateEntrySizes,$.strictFileNames))}Q(Error("End of central directory record signature not found. Either not a zip file, or file is truncated."))})}w1.inherits(G0,L1);function G0(_,q,$,Q,x,X,V,J,K,G){var Z=this;if(L1.call(Z),Z.reader=_,Z.reader.on("error",function(Y){M8(Z,Y)}),Z.reader.once("close",function(){Z.emit("close")}),Z.readEntryCursor=q,Z.fileSize=$,Z.entryCount=Q,Z.comment=x,Z.entriesRead=0,Z.autoClose=!!X,Z.lazyEntries=!!V,Z.decodeStrings=!!J,Z.validateEntrySizes=!!K,Z.strictFileNames=!!G,Z.isOpen=!0,Z.emittedError=!1,!Z.lazyEntries)Z._readEntry()}G0.prototype.close=function(){if(!this.isOpen)return;this.isOpen=!1,this.reader.unref()};function Z0(_,q){if(_.autoClose)_.close();M8(_,q)}function M8(_,q){if(_.emittedError)return;_.emittedError=!0,_.emit("error",q)}G0.prototype.readEntry=function(){if(!this.lazyEntries)throw Error("readEntry() called without lazyEntries:true");this._readEntry()};G0.prototype._readEntry=function(){var _=this;if(_.entryCount===_.entriesRead){setImmediate(function(){if(_.autoClose)_.close();if(_.emittedError)return;_.emit("end")});return}if(_.emittedError)return;var q=U0(46);F_(_.reader,q,0,q.length,_.readEntryCursor,function($){if($)return Z0(_,$);if(_.emittedError)return;var Q=new x6,x=q.readUInt32LE(0);if(x!==33639248)return Z0(_,Error("invalid central directory file header signature: 0x"+x.toString(16)));if(Q.versionMadeBy=q.readUInt16LE(4),Q.versionNeededToExtract=q.readUInt16LE(6),Q.generalPurposeBitFlag=q.readUInt16LE(8),Q.compressionMethod=q.readUInt16LE(10),Q.lastModFileTime=q.readUInt16LE(12),Q.lastModFileDate=q.readUInt16LE(14),Q.crc32=q.readUInt32LE(16),Q.compressedSize=q.readUInt32LE(20),Q.uncompressedSize=q.readUInt32LE(24),Q.fileNameLength=q.readUInt16LE(28),Q.extraFieldLength=q.readUInt16LE(30),Q.fileCommentLength=q.readUInt16LE(32),Q.internalFileAttributes=q.readUInt16LE(36),Q.externalFileAttributes=q.readUInt32LE(38),Q.relativeOffsetOfLocalHeader=q.readUInt32LE(42),Q.generalPurposeBitFlag&64)return Z0(_,Error("strong encryption is not supported"));_.readEntryCursor+=46,q=U0(Q.fileNameLength+Q.extraFieldLength+Q.fileCommentLength),F_(_.reader,q,0,q.length,_.readEntryCursor,function(X){if(X)return Z0(_,X);if(_.emittedError)return;Q.fileNameRaw=q.subarray(0,Q.fileNameLength);var V=Q.fileNameLength+Q.extraFieldLength;Q.extraFieldRaw=q.subarray(Q.fileNameLength,V),Q.fileCommentRaw=q.subarray(V,V+Q.fileCommentLength);try{Q.extraFields=j8(Q.extraFieldRaw)}catch(z){return Z0(_,z)}if(_.decodeStrings){var J=(Q.generalPurposeBitFlag&2048)!==0;Q.fileComment=v1(Q.fileCommentRaw,J),Q.fileName=C8(Q.generalPurposeBitFlag,Q.fileNameRaw,Q.extraFields,_.strictFileNames);var K=O8(Q.fileName);if(K!=null)return Z0(_,Error(K))}else Q.fileComment=Q.fileCommentRaw,Q.fileName=Q.fileNameRaw;Q.comment=Q.fileComment,_.readEntryCursor+=q.length,_.entriesRead+=1;for(var G=0;G<Q.extraFields.length;G++){var Z=Q.extraFields[G];if(Z.id!==1)continue;var Y=Z.data,H=0;if(Q.uncompressedSize===4294967295){if(H+8>Y.length)return Z0(_,Error("zip64 extended information extra field does not include uncompressed size"));Q.uncompressedSize=T_(Y,H),H+=8}if(Q.compressedSize===4294967295){if(H+8>Y.length)return Z0(_,Error("zip64 extended information extra field does not include compressed size"));Q.compressedSize=T_(Y,H),H+=8}if(Q.relativeOffsetOfLocalHeader===4294967295){if(H+8>Y.length)return Z0(_,Error("zip64 extended information extra field does not include relative header offset"));Q.relativeOffsetOfLocalHeader=T_(Y,H),H+=8}break}if(_.validateEntrySizes&&Q.compressionMethod===0){var w=Q.uncompressedSize;if(Q.isEncrypted())w+=12;if(Q.compressedSize!==w){var L="compressed/uncompressed size mismatch for stored file: "+Q.compressedSize+" != "+Q.uncompressedSize;return Z0(_,Error(L))}}if(_.emit("entry",Q),!_.lazyEntries)_._readEntry()})})};G0.prototype.openReadStream=function(_,q,$){var Q=this,x=0,X=_.compressedSize;if($==null)$=q,q=null;if(q==null)q={};else{if(q.decrypt!=null){if(!_.isEncrypted())throw Error("options.decrypt can only be specified for encrypted entries");if(q.decrypt!==!1)throw Error("invalid options.decrypt value: "+q.decrypt);if(_.isCompressed()){if(q.decompress!==!1)throw Error("entry is encrypted and compressed, and options.decompress !== false")}}if(q.decompress!=null){if(!_.isCompressed())throw Error("options.decompress can only be specified for compressed entries");if(!(q.decompress===!1||q.decompress===!0))throw Error("invalid options.decompress value: "+q.decompress)}if(q.start!=null||q.end!=null){if(_.isCompressed()&&q.decompress!==!1)throw Error("start/end range not allowed for compressed entry without options.decompress === false");if(_.isEncrypted()&&q.decrypt!==!1)throw Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(q.start!=null){if(x=q.start,x<0)throw Error("options.start < 0");if(x>_.compressedSize)throw Error("options.start > entry.compressedSize")}if(q.end!=null){if(X=q.end,X<0)throw Error("options.end < 0");if(X>_.compressedSize)throw Error("options.end > entry.compressedSize");if(X<x)throw Error("options.end < options.start")}}if(!Q.isOpen)return $(Error("closed"));if(_.isEncrypted()){if(q.decrypt!==!1)return $(Error("entry is encrypted, and options.decrypt !== false"))}var V;if(_.compressionMethod===0)V=!1;else if(_.compressionMethod===8)V=q.decompress!=null?q.decompress:!0;else return $(Error("unsupported compression method: "+_.compressionMethod));Q.readLocalFileHeader(_,{minimal:!0},function(J,K){if(J)return $(J);Q.openReadStreamLowLevel(K.fileDataStart,_.compressedSize,x,X,V,_.uncompressedSize,$)})};G0.prototype.openReadStreamLowLevel=function(_,q,$,Q,x,X,V){var J=this,K=_+q,G=J.reader.createReadStream({start:_+$,end:_+Q}),Z=G;if(x){var Y=!1,H=Cq.createInflateRaw();if(G.on("error",function(w){setImmediate(function(){if(!Y)H.emit("error",w)})}),G.pipe(H),J.validateEntrySizes)Z=new X6(X),H.on("error",function(w){setImmediate(function(){if(!Y)Z.emit("error",w)})}),H.pipe(Z);else Z=H;$9(Z,function(){if(Y=!0,H!==Z)H.unpipe(Z);G.unpipe(H),G.destroy()})}V(null,Z)};G0.prototype.readLocalFileHeader=function(_,q,$){var Q=this;if($==null)$=q,q=null;if(q==null)q={};Q.reader.ref();var x=U0(30);F_(Q.reader,x,0,x.length,_.relativeOffsetOfLocalHeader,function(X){try{if(X)return $(X);var V=x.readUInt32LE(0);if(V!==67324752)return $(Error("invalid local file header signature: 0x"+V.toString(16)));var J=x.readUInt16LE(26),K=x.readUInt16LE(28),G=_.relativeOffsetOfLocalHeader+30+J+K;if(G+_.compressedSize>Q.fileSize)return $(Error("file data overflows file bounds: "+G+" + "+_.compressedSize+" > "+Q.fileSize));if(q.minimal)return $(null,{fileDataStart:G});var Z=new P8;Z.fileDataStart=G,Z.versionNeededToExtract=x.readUInt16LE(4),Z.generalPurposeBitFlag=x.readUInt16LE(6),Z.compressionMethod=x.readUInt16LE(8),Z.lastModFileTime=x.readUInt16LE(10),Z.lastModFileDate=x.readUInt16LE(12),Z.crc32=x.readUInt32LE(14),Z.compressedSize=x.readUInt32LE(18),Z.uncompressedSize=x.readUInt32LE(22),Z.fileNameLength=J,Z.extraFieldLength=K,x=U0(J+K),Q.reader.ref(),F_(Q.reader,x,0,x.length,_.relativeOffsetOfLocalHeader+30,function(Y){try{if(Y)return $(Y);return Z.fileName=x.subarray(0,J),Z.extraField=x.subarray(J),$(null,Z)}finally{Q.reader.unref()}})}finally{Q.reader.unref()}})};function x6(){}x6.prototype.getLastModDate=function(_){if(_==null)_={};if(!_.forceDosFormat)for(var q=0;q<this.extraFields.length;q++){var $=this.extraFields[q];if($.id===21589){var Q=$.data;if(Q.length<5)continue;var x=Q[0],X=1;if(!(x&X))continue;var V=Q.readInt32LE(1);return new Date(V*1000)}else if($.id===10){var Q=$.data,J=4;while(J<Q.length+4){var K=Q.readUInt16LE(J);J+=2;var G=Q.readUInt16LE(J);if(J+=2,K!==1){J+=G;continue}if(G<8||J+G>Q.length)break;var Z=4294967296*Q.readInt32LE(J+4)+Q.readUInt32LE(J),Y=Z/1e4-11644473600000;return new Date(Y)}}}return U8(this.lastModFileDate,this.lastModFileTime,_.timezone)};x6.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};x6.prototype.isCompressed=function(){return this.compressionMethod===8};function P8(){}function U8(_,q,$){var Q=_&31,x=(_>>5&15)-1,X=(_>>9&127)+1980,V=0,J=(q&31)*2,K=q>>5&63,G=q>>11&31;if($==null||$==="local")return new Date(X,x,Q,G,K,J,V);else if($==="UTC")return new Date(Date.UTC(X,x,Q,G,K,J,V));else throw Error("unrecognized options.timezone: "+options.timezone)}function C8(_,q,$,Q){var x=null;for(var X=0;X<$.length;X++){var V=$[X];if(V.id===28789){if(V.data.length<6)continue;if(V.data.readUInt8(0)!==1)continue;var J=V.data.readUInt32LE(1);if(Oq.unsigned(q)!==J)continue;x=v1(V.data.subarray(5),!0);break}}if(x==null){var K=(_&2048)!==0;x=v1(q,K)}if(!Q)x=x.replace(/\\/g,"/");return x}function O8(_){if(_.indexOf("\\")!==-1)return"invalid characters in fileName: "+_;if(/^[a-zA-Z]:/.test(_)||/^\//.test(_))return"absolute path: "+_;if(_.split("/").indexOf("..")!==-1)return"invalid relative path: "+_;return null}function j8(_){var q=[],$=0;while($<_.length-3){var Q=_.readUInt16LE($+0),x=_.readUInt16LE($+2),X=$+4,V=X+x;if(V>_.length)throw Error("extra field length exceeds extra field buffer size");var J=_.subarray(X,V);q.push({id:Q,data:J}),$=V}return q}function F_(_,q,$,Q,x,X){if(Q===0)return setImmediate(function(){X(null,U0(0))});_.read(q,$,Q,x,function(V,J){if(V)return X(V);if(J<Q)return X(Error("unexpected EOF"));X()})}w1.inherits(X6,L8);function X6(_){L8.call(this),this.actualByteCount=0,this.expectedByteCount=_}X6.prototype._transform=function(_,q,$){if(this.actualByteCount+=_.length,this.actualByteCount>this.expectedByteCount){var Q="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return $(Error(Q))}$(null,_)};X6.prototype._flush=function(_){if(this.actualByteCount<this.expectedByteCount){var q="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return _(Error(q))}_()};w1.inherits(m0,L1);function m0(){L1.call(this),this.refCount=0}m0.prototype.ref=function(){this.refCount+=1};m0.prototype.unref=function(){var _=this;if(_.refCount-=1,_.refCount>0)return;if(_.refCount<0)throw Error("invalid unref");_.close(q);function q($){if($)return _.emit("error",$);_.emit("close")}};m0.prototype.createReadStream=function(_){if(_==null)_={};var{start:q,end:$}=_;if(q===$){var Q=new Q9;return setImmediate(function(){Q.end()}),Q}var x=this._readStreamForRange(q,$),X=!1,V=new z1(this);x.on("error",function(K){setImmediate(function(){if(!X)V.emit("error",K)})}),$9(V,function(){x.unpipe(V),V.unref(),x.destroy()});var J=new X6($-q);return V.on("error",function(K){setImmediate(function(){if(!X)J.emit("error",K)})}),$9(J,function(){X=!0,V.unpipe(J),V.destroy()}),x.pipe(V).pipe(J)};m0.prototype._readStreamForRange=function(_,q){throw Error("not implemented")};m0.prototype.read=function(_,q,$,Q,x){var X=this.createReadStream({start:Q,end:Q+$}),V=new jq,J=0;V._write=function(K,G,Z){K.copy(_,q+J,0,K.length),J+=K.length,Z()},V.on("finish",x),X.on("error",function(K){x(K)}),X.pipe(V)};m0.prototype.close=function(_){setImmediate(_)};w1.inherits(z1,Q9);function z1(_){Q9.call(this),this.context=_,this.context.ref(),this.unreffedYet=!1}z1.prototype._flush=function(_){this.unref(),_()};z1.prototype.unref=function(_){if(this.unreffedYet)return;this.unreffedYet=!0,this.context.unref()};var Aq="\x00☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ";function v1(_,q){if(q)return _.toString("utf8");else{var $="";for(var Q=0;Q<_.length;Q++)$+=Aq[_[Q]];return $}}function T_(_,q){var $=_.readUInt32LE(q),Q=_.readUInt32LE(q+4);return Q*4294967296+$}var U0;if(typeof Buffer.allocUnsafe==="function")U0=function(_){return Buffer.allocUnsafe(_)};else U0=function(_){return new Buffer(_)};function $9(_,q){if(typeof _.destroy==="function")_._destroy=function($,Q){if(q(),Q!=null)Q($)};else _.destroy=q}function W1(_){if(_)throw _}});var T8=I((cX,A8)=>{var _0=i3()("extract-zip"),{createWriteStream:bq,promises:R_}=j("fs"),cq=X8(),x_=j("path"),{promisify:X9}=j("util"),lq=j("stream"),dq=B8(),fq=X9(dq.open),iq=X9(lq.pipeline);class I8{constructor(_,q){this.zipPath=_,this.opts=q}async extract(){return _0("opening",this.zipPath,"with opts",this.opts),this.zipfile=await fq(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((_,q)=>{this.zipfile.on("error",($)=>{this.canceled=!0,q($)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{if(!this.canceled)_0("zip extraction complete"),_()}),this.zipfile.on("entry",async($)=>{if(this.canceled){_0("skipping entry",$.fileName,{cancelled:this.canceled});return}if(_0("zipfile entry",$.fileName),$.fileName.startsWith("__MACOSX/")){this.zipfile.readEntry();return}let Q=x_.dirname(x_.join(this.opts.dir,$.fileName));try{await R_.mkdir(Q,{recursive:!0});let x=await R_.realpath(Q);if(x_.relative(this.opts.dir,x).split(x_.sep).includes(".."))throw Error(`Out of bound path "${x}" found while processing file ${$.fileName}`);await this.extractEntry($),_0("finished processing",$.fileName),this.zipfile.readEntry()}catch(x){this.canceled=!0,this.zipfile.close(),q(x)}})})}async extractEntry(_){if(this.canceled){_0("skipping entry extraction",_.fileName,{cancelled:this.canceled});return}if(this.opts.onEntry)this.opts.onEntry(_,this.zipfile);let q=x_.join(this.opts.dir,_.fileName),$=_.externalFileAttributes>>16&65535,Q=61440,x=16384,X=40960,V=($&Q)===X,J=($&Q)===x;if(!J&&_.fileName.endsWith("/"))J=!0;let K=_.versionMadeBy>>8;if(!J)J=K===0&&_.externalFileAttributes===16;_0("extracting entry",{filename:_.fileName,isDir:J,isSymlink:V});let G=this.getExtractedMode($,J)&511,Z=J?q:x_.dirname(q),Y={recursive:!0};if(J)Y.mode=G;if(_0("mkdir",{dir:Z,...Y}),await R_.mkdir(Z,Y),J)return;_0("opening read stream",q);let H=await X9(this.zipfile.openReadStream.bind(this.zipfile))(_);if(V){let w=await cq(H);_0("creating symlink",w,q),await R_.symlink(w,q)}else await iq(H,bq(q,{mode:G}))}getExtractedMode(_,q){let $=_;if($===0)if(q){if(this.opts.defaultDirMode)$=parseInt(this.opts.defaultDirMode,10);if(!$)$=493}else{if(this.opts.defaultFileMode)$=parseInt(this.opts.defaultFileMode,10);if(!$)$=420}return $}}A8.exports=async function(_,q){if(_0("creating target directory",q.dir),!x_.isAbsolute(q.dir))throw Error("Target directory is expected to be absolute");return await R_.mkdir(q.dir,{recursive:!0}),q.dir=await R_.realpath(q.dir),new I8(_,q).extract()}});var V9=I((lX,F8)=>{var pq=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(..._)=>console.error("SEMVER",..._):()=>{};F8.exports=pq});var J9=I((dX,R8)=>{var sq=Number.MAX_SAFE_INTEGER||9007199254740991,nq=["major","premajor","minor","preminor","patch","prepatch","prerelease"];R8.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:sq,RELEASE_TYPES:nq,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var D8=I((Y0,S8)=>{var{MAX_SAFE_COMPONENT_LENGTH:K9,MAX_SAFE_BUILD_LENGTH:aq,MAX_LENGTH:oq}=J9(),tq=V9();Y0=S8.exports={};var rq=Y0.re=[],eq=Y0.safeRe=[],v=Y0.src=[],_$=Y0.safeSrc=[],W=Y0.t={},q$=0,Z9="[a-zA-Z0-9-]",$$=[["\\s",1],["\\d",oq],[Z9,aq]],Q$=(_)=>{for(let[q,$]of $$)_=_.split(`${q}*`).join(`${q}{0,${$}}`).split(`${q}+`).join(`${q}{1,${$}}`);return _},P=(_,q,$)=>{let Q=Q$(q),x=q$++;tq(_,x,q),W[_]=x,v[x]=q,_$[x]=Q,rq[x]=new RegExp(q,$?"g":void 0),eq[x]=new RegExp(Q,$?"g":void 0)};P("NUMERICIDENTIFIER","0|[1-9]\\d*");P("NUMERICIDENTIFIERLOOSE","\\d+");P("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Z9}*`);P("MAINVERSION",`(${v[W.NUMERICIDENTIFIER]})\\.(${v[W.NUMERICIDENTIFIER]})\\.(${v[W.NUMERICIDENTIFIER]})`);P("MAINVERSIONLOOSE",`(${v[W.NUMERICIDENTIFIERLOOSE]})\\.(${v[W.NUMERICIDENTIFIERLOOSE]})\\.(${v[W.NUMERICIDENTIFIERLOOSE]})`);P("PRERELEASEIDENTIFIER",`(?:${v[W.NONNUMERICIDENTIFIER]}|${v[W.NUMERICIDENTIFIER]})`);P("PRERELEASEIDENTIFIERLOOSE",`(?:${v[W.NONNUMERICIDENTIFIER]}|${v[W.NUMERICIDENTIFIERLOOSE]})`);P("PRERELEASE",`(?:-(${v[W.PRERELEASEIDENTIFIER]}(?:\\.${v[W.PRERELEASEIDENTIFIER]})*))`);P("PRERELEASELOOSE",`(?:-?(${v[W.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${v[W.PRERELEASEIDENTIFIERLOOSE]})*))`);P("BUILDIDENTIFIER",`${Z9}+`);P("BUILD",`(?:\\+(${v[W.BUILDIDENTIFIER]}(?:\\.${v[W.BUILDIDENTIFIER]})*))`);P("FULLPLAIN",`v?${v[W.MAINVERSION]}${v[W.PRERELEASE]}?${v[W.BUILD]}?`);P("FULL",`^${v[W.FULLPLAIN]}$`);P("LOOSEPLAIN",`[v=\\s]*${v[W.MAINVERSIONLOOSE]}${v[W.PRERELEASELOOSE]}?${v[W.BUILD]}?`);P("LOOSE",`^${v[W.LOOSEPLAIN]}$`);P("GTLT","((?:<|>)?=?)");P("XRANGEIDENTIFIERLOOSE",`${v[W.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);P("XRANGEIDENTIFIER",`${v[W.NUMERICIDENTIFIER]}|x|X|\\*`);P("XRANGEPLAIN",`[v=\\s]*(${v[W.XRANGEIDENTIFIER]})(?:\\.(${v[W.XRANGEIDENTIFIER]})(?:\\.(${v[W.XRANGEIDENTIFIER]})(?:${v[W.PRERELEASE]})?${v[W.BUILD]}?)?)?`);P("XRANGEPLAINLOOSE",`[v=\\s]*(${v[W.XRANGEIDENTIFIERLOOSE]})(?:\\.(${v[W.XRANGEIDENTIFIERLOOSE]})(?:\\.(${v[W.XRANGEIDENTIFIERLOOSE]})(?:${v[W.PRERELEASELOOSE]})?${v[W.BUILD]}?)?)?`);P("XRANGE",`^${v[W.GTLT]}\\s*${v[W.XRANGEPLAIN]}$`);P("XRANGELOOSE",`^${v[W.GTLT]}\\s*${v[W.XRANGEPLAINLOOSE]}$`);P("COERCEPLAIN",`(^|[^\\d])(\\d{1,${K9}})(?:\\.(\\d{1,${K9}}))?(?:\\.(\\d{1,${K9}}))?`);P("COERCE",`${v[W.COERCEPLAIN]}(?:$|[^\\d])`);P("COERCEFULL",v[W.COERCEPLAIN]+`(?:${v[W.PRERELEASE]})?(?:${v[W.BUILD]})?(?:$|[^\\d])`);P("COERCERTL",v[W.COERCE],!0);P("COERCERTLFULL",v[W.COERCEFULL],!0);P("LONETILDE","(?:~>?)");P("TILDETRIM",`(\\s*)${v[W.LONETILDE]}\\s+`,!0);Y0.tildeTrimReplace="$1~";P("TILDE",`^${v[W.LONETILDE]}${v[W.XRANGEPLAIN]}$`);P("TILDELOOSE",`^${v[W.LONETILDE]}${v[W.XRANGEPLAINLOOSE]}$`);P("LONECARET","(?:\\^)");P("CARETTRIM",`(\\s*)${v[W.LONECARET]}\\s+`,!0);Y0.caretTrimReplace="$1^";P("CARET",`^${v[W.LONECARET]}${v[W.XRANGEPLAIN]}$`);P("CARETLOOSE",`^${v[W.LONECARET]}${v[W.XRANGEPLAINLOOSE]}$`);P("COMPARATORLOOSE",`^${v[W.GTLT]}\\s*(${v[W.LOOSEPLAIN]})$|^$`);P("COMPARATOR",`^${v[W.GTLT]}\\s*(${v[W.FULLPLAIN]})$|^$`);P("COMPARATORTRIM",`(\\s*)${v[W.GTLT]}\\s*(${v[W.LOOSEPLAIN]}|${v[W.XRANGEPLAIN]})`,!0);Y0.comparatorTrimReplace="$1$2$3";P("HYPHENRANGE",`^\\s*(${v[W.XRANGEPLAIN]})\\s+-\\s+(${v[W.XRANGEPLAIN]})\\s*$`);P("HYPHENRANGELOOSE",`^\\s*(${v[W.XRANGEPLAINLOOSE]})\\s+-\\s+(${v[W.XRANGEPLAINLOOSE]})\\s*$`);P("STAR","(<|>)?=?\\s*\\*");P("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");P("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var h8=I((fX,N8)=>{var x$=Object.freeze({loose:!0}),X$=Object.freeze({}),V$=(_)=>{if(!_)return X$;if(typeof _!=="object")return x$;return _};N8.exports=V$});var k8=I((iX,u8)=>{var g8=/^[0-9]+$/,y8=(_,q)=>{if(typeof _==="number"&&typeof q==="number")return _===q?0:_<q?-1:1;let $=g8.test(_),Q=g8.test(q);if($&&Q)_=+_,q=+q;return _===q?0:$&&!Q?-1:Q&&!$?1:_<q?-1:1},J$=(_,q)=>y8(q,_);u8.exports={compareIdentifiers:y8,rcompareIdentifiers:J$}});var b8=I((pX,E8)=>{var M1=V9(),{MAX_LENGTH:m8,MAX_SAFE_INTEGER:P1}=J9(),{safeRe:U1,t:C1}=D8(),K$=h8(),{compareIdentifiers:G9}=k8();class q0{constructor(_,q){if(q=K$(q),_ instanceof q0)if(_.loose===!!q.loose&&_.includePrerelease===!!q.includePrerelease)return _;else _=_.version;else if(typeof _!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof _}".`);if(_.length>m8)throw TypeError(`version is longer than ${m8} characters`);M1("SemVer",_,q),this.options=q,this.loose=!!q.loose,this.includePrerelease=!!q.includePrerelease;let $=_.trim().match(q.loose?U1[C1.LOOSE]:U1[C1.FULL]);if(!$)throw TypeError(`Invalid Version: ${_}`);if(this.raw=_,this.major=+$[1],this.minor=+$[2],this.patch=+$[3],this.major>P1||this.major<0)throw TypeError("Invalid major version");if(this.minor>P1||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>P1||this.patch<0)throw TypeError("Invalid patch version");if(!$[4])this.prerelease=[];else this.prerelease=$[4].split(".").map((Q)=>{if(/^[0-9]+$/.test(Q)){let x=+Q;if(x>=0&&x<P1)return x}return Q});this.build=$[5]?$[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare(_){if(M1("SemVer.compare",this.version,this.options,_),!(_ instanceof q0)){if(typeof _==="string"&&_===this.version)return 0;_=new q0(_,this.options)}if(_.version===this.version)return 0;return this.compareMain(_)||this.comparePre(_)}compareMain(_){if(!(_ instanceof q0))_=new q0(_,this.options);if(this.major<_.major)return-1;if(this.major>_.major)return 1;if(this.minor<_.minor)return-1;if(this.minor>_.minor)return 1;if(this.patch<_.patch)return-1;if(this.patch>_.patch)return 1;return 0}comparePre(_){if(!(_ instanceof q0))_=new q0(_,this.options);if(this.prerelease.length&&!_.prerelease.length)return-1;else if(!this.prerelease.length&&_.prerelease.length)return 1;else if(!this.prerelease.length&&!_.prerelease.length)return 0;let q=0;do{let $=this.prerelease[q],Q=_.prerelease[q];if(M1("prerelease compare",q,$,Q),$===void 0&&Q===void 0)return 0;else if(Q===void 0)return 1;else if($===void 0)return-1;else if($===Q)continue;else return G9($,Q)}while(++q)}compareBuild(_){if(!(_ instanceof q0))_=new q0(_,this.options);let q=0;do{let $=this.build[q],Q=_.build[q];if(M1("build compare",q,$,Q),$===void 0&&Q===void 0)return 0;else if(Q===void 0)return 1;else if($===void 0)return-1;else if($===Q)continue;else return G9($,Q)}while(++q)}inc(_,q,$){if(_.startsWith("pre")){if(!q&&$===!1)throw Error("invalid increment argument: identifier is empty");if(q){let Q=`-${q}`.match(this.options.loose?U1[C1.PRERELEASELOOSE]:U1[C1.PRERELEASE]);if(!Q||Q[1]!==q)throw Error(`invalid identifier: ${q}`)}}switch(_){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",q,$);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",q,$);break;case"prepatch":this.prerelease.length=0,this.inc("patch",q,$),this.inc("pre",q,$);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",q,$);this.inc("pre",q,$);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let Q=Number($)?1:0;if(this.prerelease.length===0)this.prerelease=[Q];else{let x=this.prerelease.length;while(--x>=0)if(typeof this.prerelease[x]==="number")this.prerelease[x]++,x=-2;if(x===-1){if(q===this.prerelease.join(".")&&$===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(Q)}}if(q){let x=[q,Q];if($===!1)x=[q];if(G9(this.prerelease[0],q)===0){if(isNaN(this.prerelease[1]))this.prerelease=x}else this.prerelease=x}break}default:throw Error(`invalid increment argument: ${_}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}E8.exports=q0});var d8=I((sX,l8)=>{var c8=b8(),Z$=(_,q,$)=>new c8(_,$).compare(new c8(q,$));l8.exports=Z$});var i8=I((nX,f8)=>{var G$=d8(),Y$=(_,q,$)=>G$(_,q,$)<0;f8.exports=Y$});import g$ from"os";import y$ from"child_process";var a8=Z6(B1(),1);import z$ from"path";import M$ from"fs";import o8 from"fs/promises";import j1 from"os";import u4 from"events";import m from"fs";import{EventEmitter as S1}from"node:events";import S9 from"node:stream";import{StringDecoder as A4}from"node:string_decoder";var A9=typeof process==="object"&&process?process:{stdout:null,stderr:null},T4=(_)=>!!_&&typeof _==="object"&&(_ instanceof b||_ instanceof S9||F4(_)||R4(_)),F4=(_)=>!!_&&typeof _==="object"&&_ instanceof S1&&typeof _.pipe==="function"&&_.pipe!==S9.Writable.prototype.pipe,R4=(_)=>!!_&&typeof _==="object"&&_ instanceof S1&&typeof _.write==="function"&&typeof _.end==="function",H0=Symbol("EOF"),v0=Symbol("maybeEmitEnd"),C0=Symbol("emittedEnd"),H6=Symbol("emittingEnd"),S_=Symbol("emittedError"),v6=Symbol("closed"),T9=Symbol("read"),W6=Symbol("flush"),F9=Symbol("flushChunk"),a=Symbol("encoding"),K_=Symbol("decoder"),S=Symbol("flowing"),D_=Symbol("paused"),Z_=Symbol("resume"),D=Symbol("buffer"),k=Symbol("pipes"),N=Symbol("bufferLength"),I1=Symbol("bufferPush"),w6=Symbol("bufferShift"),h=Symbol("objectMode"),T=Symbol("destroyed"),A1=Symbol("error"),T1=Symbol("emitData"),R9=Symbol("emitEnd"),F1=Symbol("emitEnd2"),Q0=Symbol("async"),R1=Symbol("abort"),L6=Symbol("aborted"),N_=Symbol("signal"),b0=Symbol("dataListeners"),E=Symbol("discarded"),h_=(_)=>Promise.resolve().then(_),S4=(_)=>_(),D4=(_)=>_==="end"||_==="finish"||_==="prefinish",N4=(_)=>_ instanceof ArrayBuffer||!!_&&typeof _==="object"&&_.constructor&&_.constructor.name==="ArrayBuffer"&&_.byteLength>=0,h4=(_)=>!Buffer.isBuffer(_)&&ArrayBuffer.isView(_);class D1{src;dest;opts;ondrain;constructor(_,q,$){this.src=_,this.dest=q,this.opts=$,this.ondrain=()=>_[Z_](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(_){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class D9 extends D1{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(_,q,$){super(_,q,$);this.proxyErrors=(Q)=>q.emit("error",Q),_.on("error",this.proxyErrors)}}var g4=(_)=>!!_.objectMode,y4=(_)=>!_.objectMode&&!!_.encoding&&_.encoding!=="buffer";class b extends S1{[S]=!1;[D_]=!1;[k]=[];[D]=[];[h];[a];[Q0];[K_];[H0]=!1;[C0]=!1;[H6]=!1;[v6]=!1;[S_]=null;[N]=0;[T]=!1;[N_];[L6]=!1;[b0]=0;[E]=!1;writable=!0;readable=!0;constructor(..._){let q=_[0]||{};super();if(q.objectMode&&typeof q.encoding==="string")throw TypeError("Encoding and objectMode may not be used together");if(g4(q))this[h]=!0,this[a]=null;else if(y4(q))this[a]=q.encoding,this[h]=!1;else this[h]=!1,this[a]=null;if(this[Q0]=!!q.async,this[K_]=this[a]?new A4(this[a]):null,q&&q.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[D]});if(q&&q.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[k]});let{signal:$}=q;if($)if(this[N_]=$,$.aborted)this[R1]();else $.addEventListener("abort",()=>this[R1]())}get bufferLength(){return this[N]}get encoding(){return this[a]}set encoding(_){throw Error("Encoding must be set at instantiation time")}setEncoding(_){throw Error("Encoding must be set at instantiation time")}get objectMode(){return this[h]}set objectMode(_){throw Error("objectMode must be set at instantiation time")}get["async"](){return this[Q0]}set["async"](_){this[Q0]=this[Q0]||!!_}[R1](){this[L6]=!0,this.emit("abort",this[N_]?.reason),this.destroy(this[N_]?.reason)}get aborted(){return this[L6]}set aborted(_){}write(_,q,$){if(this[L6])return!1;if(this[H0])throw Error("write after end");if(this[T])return this.emit("error",Object.assign(Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof q==="function")$=q,q="utf8";if(!q)q="utf8";let Q=this[Q0]?h_:S4;if(!this[h]&&!Buffer.isBuffer(_)){if(h4(_))_=Buffer.from(_.buffer,_.byteOffset,_.byteLength);else if(N4(_))_=Buffer.from(_);else if(typeof _!=="string")throw Error("Non-contiguous data written to non-objectMode stream")}if(this[h]){if(this[S]&&this[N]!==0)this[W6](!0);if(this[S])this.emit("data",_);else this[I1](_);if(this[N]!==0)this.emit("readable");if($)Q($);return this[S]}if(!_.length){if(this[N]!==0)this.emit("readable");if($)Q($);return this[S]}if(typeof _==="string"&&!(q===this[a]&&!this[K_]?.lastNeed))_=Buffer.from(_,q);if(Buffer.isBuffer(_)&&this[a])_=this[K_].write(_);if(this[S]&&this[N]!==0)this[W6](!0);if(this[S])this.emit("data",_);else this[I1](_);if(this[N]!==0)this.emit("readable");if($)Q($);return this[S]}read(_){if(this[T])return null;if(this[E]=!1,this[N]===0||_===0||_&&_>this[N])return this[v0](),null;if(this[h])_=null;if(this[D].length>1&&!this[h])this[D]=[this[a]?this[D].join(""):Buffer.concat(this[D],this[N])];let q=this[T9](_||null,this[D][0]);return this[v0](),q}[T9](_,q){if(this[h])this[w6]();else{let $=q;if(_===$.length||_===null)this[w6]();else if(typeof $==="string")this[D][0]=$.slice(_),q=$.slice(0,_),this[N]-=_;else this[D][0]=$.subarray(_),q=$.subarray(0,_),this[N]-=_}if(this.emit("data",q),!this[D].length&&!this[H0])this.emit("drain");return q}end(_,q,$){if(typeof _==="function")$=_,_=void 0;if(typeof q==="function")$=q,q="utf8";if(_!==void 0)this.write(_,q);if($)this.once("end",$);if(this[H0]=!0,this.writable=!1,this[S]||!this[D_])this[v0]();return this}[Z_](){if(this[T])return;if(!this[b0]&&!this[k].length)this[E]=!0;if(this[D_]=!1,this[S]=!0,this.emit("resume"),this[D].length)this[W6]();else if(this[H0])this[v0]();else this.emit("drain")}resume(){return this[Z_]()}pause(){this[S]=!1,this[D_]=!0,this[E]=!1}get destroyed(){return this[T]}get flowing(){return this[S]}get paused(){return this[D_]}[I1](_){if(this[h])this[N]+=1;else this[N]+=_.length;this[D].push(_)}[w6](){if(this[h])this[N]-=1;else this[N]-=this[D][0].length;return this[D].shift()}[W6](_=!1){do;while(this[F9](this[w6]())&&this[D].length);if(!_&&!this[D].length&&!this[H0])this.emit("drain")}[F9](_){return this.emit("data",_),this[S]}pipe(_,q){if(this[T])return _;this[E]=!1;let $=this[C0];if(q=q||{},_===A9.stdout||_===A9.stderr)q.end=!1;else q.end=q.end!==!1;if(q.proxyErrors=!!q.proxyErrors,$){if(q.end)_.end()}else if(this[k].push(!q.proxyErrors?new D1(this,_,q):new D9(this,_,q)),this[Q0])h_(()=>this[Z_]());else this[Z_]();return _}unpipe(_){let q=this[k].find(($)=>$.dest===_);if(q){if(this[k].length===1){if(this[S]&&this[b0]===0)this[S]=!1;this[k]=[]}else this[k].splice(this[k].indexOf(q),1);q.unpipe()}}addListener(_,q){return this.on(_,q)}on(_,q){let $=super.on(_,q);if(_==="data"){if(this[E]=!1,this[b0]++,!this[k].length&&!this[S])this[Z_]()}else if(_==="readable"&&this[N]!==0)super.emit("readable");else if(D4(_)&&this[C0])super.emit(_),this.removeAllListeners(_);else if(_==="error"&&this[S_]){let Q=q;if(this[Q0])h_(()=>Q.call(this,this[S_]));else Q.call(this,this[S_])}return $}removeListener(_,q){return this.off(_,q)}off(_,q){let $=super.off(_,q);if(_==="data"){if(this[b0]=this.listeners("data").length,this[b0]===0&&!this[E]&&!this[k].length)this[S]=!1}return $}removeAllListeners(_){let q=super.removeAllListeners(_);if(_==="data"||_===void 0){if(this[b0]=0,!this[E]&&!this[k].length)this[S]=!1}return q}get emittedEnd(){return this[C0]}[v0](){if(!this[H6]&&!this[C0]&&!this[T]&&this[D].length===0&&this[H0]){if(this[H6]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[v6])this.emit("close");this[H6]=!1}}emit(_,...q){let $=q[0];if(_!=="error"&&_!=="close"&&_!==T&&this[T])return!1;else if(_==="data")return!this[h]&&!$?!1:this[Q0]?(h_(()=>this[T1]($)),!0):this[T1]($);else if(_==="end")return this[R9]();else if(_==="close"){if(this[v6]=!0,!this[C0]&&!this[T])return!1;let x=super.emit("close");return this.removeAllListeners("close"),x}else if(_==="error"){this[S_]=$,super.emit(A1,$);let x=!this[N_]||this.listeners("error").length?super.emit("error",$):!1;return this[v0](),x}else if(_==="resume"){let x=super.emit("resume");return this[v0](),x}else if(_==="finish"||_==="prefinish"){let x=super.emit(_);return this.removeAllListeners(_),x}let Q=super.emit(_,...q);return this[v0](),Q}[T1](_){for(let $ of this[k])if($.dest.write(_)===!1)this.pause();let q=this[E]?!1:super.emit("data",_);return this[v0](),q}[R9](){if(this[C0])return!1;return this[C0]=!0,this.readable=!1,this[Q0]?(h_(()=>this[F1]()),!0):this[F1]()}[F1](){if(this[K_]){let q=this[K_].end();if(q){for(let $ of this[k])$.dest.write(q);if(!this[E])super.emit("data",q)}}for(let q of this[k])q.end();let _=super.emit("end");return this.removeAllListeners("end"),_}async collect(){let _=Object.assign([],{dataLength:0});if(!this[h])_.dataLength=0;let q=this.promise();return this.on("data",($)=>{if(_.push($),!this[h])_.dataLength+=$.length}),await q,_}async concat(){if(this[h])throw Error("cannot concat in objectMode");let _=await this.collect();return this[a]?_.join(""):Buffer.concat(_,_.dataLength)}async promise(){return new Promise((_,q)=>{this.on(T,()=>q(Error("stream destroyed"))),this.on("error",($)=>q($)),this.on("end",()=>_())})}[Symbol.asyncIterator](){this[E]=!1;let _=!1,q=async()=>{return this.pause(),_=!0,{value:void 0,done:!0}};return{next:()=>{if(_)return q();let Q=this.read();if(Q!==null)return Promise.resolve({done:!1,value:Q});if(this[H0])return q();let x,X,V=(Z)=>{this.off("data",J),this.off("end",K),this.off(T,G),q(),X(Z)},J=(Z)=>{this.off("error",V),this.off("end",K),this.off(T,G),this.pause(),x({value:Z,done:!!this[H0]})},K=()=>{this.off("error",V),this.off("data",J),this.off(T,G),q(),x({done:!0,value:void 0})},G=()=>V(Error("stream destroyed"));return new Promise((Z,Y)=>{X=Y,x=Z,this.once(T,G),this.once("error",V),this.once("end",K),this.once("data",J)})},throw:q,return:q,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[E]=!1;let _=!1,q=()=>{return this.pause(),this.off(A1,q),this.off(T,q),this.off("end",q),_=!0,{done:!0,value:void 0}},$=()=>{if(_)return q();let Q=this.read();return Q===null?q():{done:!1,value:Q}};return this.once("end",q),this.once(A1,q),this.once(T,q),{next:$,throw:q,return:q,[Symbol.iterator](){return this}}}destroy(_){if(this[T]){if(_)this.emit("error",_);else this.emit(T);return this}this[T]=!0,this[E]=!0,this[D].length=0,this[N]=0;let q=this;if(typeof q.close==="function"&&!this[v6])q.close();if(_)this.emit("error",_);else this.emit(T);return this}static get isStream(){return T4}}var k4=m.writev,j0=Symbol("_autoClose"),t=Symbol("_close"),g_=Symbol("_ended"),O=Symbol("_fd"),N1=Symbol("_finished"),w0=Symbol("_flags"),h1=Symbol("_flush"),k1=Symbol("_handleChunk"),m1=Symbol("_makeBuf"),u_=Symbol("_mode"),z6=Symbol("_needDrain"),H_=Symbol("_onerror"),v_=Symbol("_onopen"),g1=Symbol("_onread"),G_=Symbol("_onwrite"),B0=Symbol("_open"),o=Symbol("_path"),O0=Symbol("_pos"),x0=Symbol("_queue"),Y_=Symbol("_read"),y1=Symbol("_readSize"),W0=Symbol("_reading"),y_=Symbol("_remain"),u1=Symbol("_size"),M6=Symbol("_write"),c0=Symbol("_writing"),P6=Symbol("_defaultFlag"),l0=Symbol("_errored");class W_ extends b{[l0]=!1;[O];[o];[y1];[W0]=!1;[u1];[y_];[j0];constructor(_,q){q=q||{};super(q);if(this.readable=!0,this.writable=!1,typeof _!=="string")throw TypeError("path must be a string");if(this[l0]=!1,this[O]=typeof q.fd==="number"?q.fd:void 0,this[o]=_,this[y1]=q.readSize||16777216,this[W0]=!1,this[u1]=typeof q.size==="number"?q.size:1/0,this[y_]=this[u1],this[j0]=typeof q.autoClose==="boolean"?q.autoClose:!0,typeof this[O]==="number")this[Y_]();else this[B0]()}get fd(){return this[O]}get path(){return this[o]}write(){throw TypeError("this is a readable stream")}end(){throw TypeError("this is a readable stream")}[B0](){m.open(this[o],"r",(_,q)=>this[v_](_,q))}[v_](_,q){if(_)this[H_](_);else this[O]=q,this.emit("open",q),this[Y_]()}[m1](){return Buffer.allocUnsafe(Math.min(this[y1],this[y_]))}[Y_](){if(!this[W0]){this[W0]=!0;let _=this[m1]();if(_.length===0)return process.nextTick(()=>this[g1](null,0,_));m.read(this[O],_,0,_.length,null,(q,$,Q)=>this[g1](q,$,Q))}}[g1](_,q,$){if(this[W0]=!1,_)this[H_](_);else if(this[k1](q,$))this[Y_]()}[t](){if(this[j0]&&typeof this[O]==="number"){let _=this[O];this[O]=void 0,m.close(_,(q)=>q?this.emit("error",q):this.emit("close"))}}[H_](_){this[W0]=!0,this[t](),this.emit("error",_)}[k1](_,q){let $=!1;if(this[y_]-=_,_>0)$=super.write(_<q.length?q.subarray(0,_):q);if(_===0||this[y_]<=0)$=!1,this[t](),super.end();return $}emit(_,...q){switch(_){case"prefinish":case"finish":return!1;case"drain":if(typeof this[O]==="number")this[Y_]();return!1;case"error":if(this[l0])return!1;return this[l0]=!0,super.emit(_,...q);default:return super.emit(_,...q)}}}class E1 extends W_{[B0](){let _=!0;try{this[v_](null,m.openSync(this[o],"r")),_=!1}finally{if(_)this[t]()}}[Y_](){let _=!0;try{if(!this[W0]){this[W0]=!0;do{let q=this[m1](),$=q.length===0?0:m.readSync(this[O],q,0,q.length,null);if(!this[k1]($,q))break}while(!0);this[W0]=!1}_=!1}finally{if(_)this[t]()}}[t](){if(this[j0]&&typeof this[O]==="number"){let _=this[O];this[O]=void 0,m.closeSync(_),this.emit("close")}}}class I0 extends u4{readable=!1;writable=!0;[l0]=!1;[c0]=!1;[g_]=!1;[x0]=[];[z6]=!1;[o];[u_];[j0];[O];[P6];[w0];[N1]=!1;[O0];constructor(_,q){q=q||{};super(q);this[o]=_,this[O]=typeof q.fd==="number"?q.fd:void 0,this[u_]=q.mode===void 0?438:q.mode,this[O0]=typeof q.start==="number"?q.start:void 0,this[j0]=typeof q.autoClose==="boolean"?q.autoClose:!0;let $=this[O0]!==void 0?"r+":"w";if(this[P6]=q.flags===void 0,this[w0]=q.flags===void 0?$:q.flags,this[O]===void 0)this[B0]()}emit(_,...q){if(_==="error"){if(this[l0])return!1;this[l0]=!0}return super.emit(_,...q)}get fd(){return this[O]}get path(){return this[o]}[H_](_){this[t](),this[c0]=!0,this.emit("error",_)}[B0](){m.open(this[o],this[w0],this[u_],(_,q)=>this[v_](_,q))}[v_](_,q){if(this[P6]&&this[w0]==="r+"&&_&&_.code==="ENOENT")this[w0]="w",this[B0]();else if(_)this[H_](_);else if(this[O]=q,this.emit("open",q),!this[c0])this[h1]()}end(_,q){if(_)this.write(_,q);if(this[g_]=!0,!this[c0]&&!this[x0].length&&typeof this[O]==="number")this[G_](null,0);return this}write(_,q){if(typeof _==="string")_=Buffer.from(_,q);if(this[g_])return this.emit("error",Error("write() after end()")),!1;if(this[O]===void 0||this[c0]||this[x0].length)return this[x0].push(_),this[z6]=!0,!1;return this[c0]=!0,this[M6](_),!0}[M6](_){m.write(this[O],_,0,_.length,this[O0],(q,$)=>this[G_](q,$))}[G_](_,q){if(_)this[H_](_);else{if(this[O0]!==void 0&&typeof q==="number")this[O0]+=q;if(this[x0].length)this[h1]();else if(this[c0]=!1,this[g_]&&!this[N1])this[N1]=!0,this[t](),this.emit("finish");else if(this[z6])this[z6]=!1,this.emit("drain")}}[h1](){if(this[x0].length===0){if(this[g_])this[G_](null,0)}else if(this[x0].length===1)this[M6](this[x0].pop());else{let _=this[x0];this[x0]=[],k4(this[O],_,this[O0],(q,$)=>this[G_](q,$))}}[t](){if(this[j0]&&typeof this[O]==="number"){let _=this[O];this[O]=void 0,m.close(_,(q)=>q?this.emit("error",q):this.emit("close"))}}}class k_ extends I0{[B0](){let _;if(this[P6]&&this[w0]==="r+")try{_=m.openSync(this[o],this[w0],this[u_])}catch(q){if(q?.code==="ENOENT")return this[w0]="w",this[B0]();else throw q}else _=m.openSync(this[o],this[w0],this[u_]);this[v_](null,_)}[t](){if(this[j0]&&typeof this[O]==="number"){let _=this[O];this[O]=void 0,m.closeSync(_),this.emit("close")}}[M6](_){let q=!0;try{this[G_](null,m.writeSync(this[O],_,0,_.length,this[O0])),q=!1}finally{if(q)try{this[t]()}catch{}}}}import G3 from"node:path";import z_ from"node:fs";import{dirname as W5,parse as w5}from"path";var m4=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),N9=(_)=>!!_.sync&&!!_.file,h9=(_)=>!_.sync&&!!_.file,g9=(_)=>!!_.sync&&!_.file,y9=(_)=>!_.sync&&!_.file;var u9=(_)=>!!_.file;var E4=(_)=>{let q=m4.get(_);if(q)return q;return _},m_=(_={})=>{if(!_)return{};let q={};for(let[$,Q]of Object.entries(_)){let x=E4($);q[x]=Q}if(q.chmod===void 0&&q.noChmod===!1)q.chmod=!0;return delete q.noChmod,q};var X0=(_,q,$,Q,x)=>{return Object.assign((X=[],V,J)=>{if(Array.isArray(X))V=X,X={};if(typeof V==="function")J=V,V=void 0;if(!V)V=[];else V=Array.from(V);let K=m_(X);if(x?.(K,V),N9(K)){if(typeof J==="function")throw TypeError("callback not supported for sync tar functions");return _(K,V)}else if(h9(K)){let G=q(K,V),Z=J?J:void 0;return Z?G.then(()=>Z(),Z):G}else if(g9(K)){if(typeof J==="function")throw TypeError("callback not supported for sync tar functions");return $(K,V)}else if(y9(K)){if(typeof J==="function")throw TypeError("callback only supported with file option");return Q(K,V)}else throw Error("impossible options??")},{syncFile:_,asyncFile:q,syncNoFile:$,asyncNoFile:Q,validate:x})};import{EventEmitter as G5}from"events";import d1 from"assert";import{Buffer as d0}from"buffer";import*as k9 from"zlib";import b4 from"zlib";var c4=b4.constants||{ZLIB_VERNUM:4736},f=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},c4));var l4=d0.concat,m9=Object.getOwnPropertyDescriptor(d0,"concat"),d4=(_)=>_,c1=m9?.writable===!0||m9?.set!==void 0?(_)=>{d0.concat=_?d4:l4}:(_)=>{},f0=Symbol("_superWrite");class E_ extends Error{code;errno;constructor(_,q){super("zlib: "+_.message,{cause:_});if(this.code=_.code,this.errno=_.errno,!this.code)this.code="ZLIB_ERROR";this.message="zlib: "+_.message,Error.captureStackTrace(this,q??this.constructor)}get name(){return"ZlibError"}}var l1=Symbol("flushFlag");class U6 extends b{#_=!1;#$=!1;#Q;#X;#x;#q;#V;get sawError(){return this.#_}get handle(){return this.#q}get flushFlag(){return this.#Q}constructor(_,q){if(!_||typeof _!=="object")throw TypeError("invalid options for ZlibBase constructor");super(_);if(this.#Q=_.flush??0,this.#X=_.finishFlush??0,this.#x=_.fullFlushFlag??0,typeof k9[q]!=="function")throw TypeError("Compression method not supported: "+q);try{this.#q=new k9[q](_)}catch($){throw new E_($,this.constructor)}this.#V=($)=>{if(this.#_)return;this.#_=!0,this.close(),this.emit("error",$)},this.#q?.on("error",($)=>this.#V(new E_($))),this.once("end",()=>this.close)}close(){if(this.#q)this.#q.close(),this.#q=void 0,this.emit("close")}reset(){if(!this.#_)return d1(this.#q,"zlib binding closed"),this.#q.reset?.()}flush(_){if(this.ended)return;if(typeof _!=="number")_=this.#x;this.write(Object.assign(d0.alloc(0),{[l1]:_}))}end(_,q,$){if(typeof _==="function")$=_,q=void 0,_=void 0;if(typeof q==="function")$=q,q=void 0;if(_)if(q)this.write(_,q);else this.write(_);return this.flush(this.#X),this.#$=!0,super.end($)}get ended(){return this.#$}[f0](_){return super.write(_)}write(_,q,$){if(typeof q==="function")$=q,q="utf8";if(typeof _==="string")_=d0.from(_,q);if(this.#_)return;d1(this.#q,"zlib binding closed");let Q=this.#q._handle,x=Q.close;Q.close=()=>{};let X=this.#q.close;this.#q.close=()=>{},c1(!0);let V=void 0;try{let K=typeof _[l1]==="number"?_[l1]:this.#Q;V=this.#q._processChunk(_,K),c1(!1)}catch(K){c1(!1),this.#V(new E_(K,this.write))}finally{if(this.#q)this.#q._handle=Q,Q.close=x,this.#q.close=X,this.#q.removeAllListeners("error")}if(this.#q)this.#q.on("error",(K)=>this.#V(new E_(K,this.write)));let J;if(V)if(Array.isArray(V)&&V.length>0){let K=V[0];J=this[f0](d0.from(K));for(let G=1;G<V.length;G++)J=this[f0](V[G])}else J=this[f0](d0.from(V));if($)$();return J}}class f1 extends U6{#_;#$;constructor(_,q){_=_||{},_.flush=_.flush||f.Z_NO_FLUSH,_.finishFlush=_.finishFlush||f.Z_FINISH,_.fullFlushFlag=f.Z_FULL_FLUSH;super(_,q);this.#_=_.level,this.#$=_.strategy}params(_,q){if(this.sawError)return;if(!this.handle)throw Error("cannot switch params when binding is closed");if(!this.handle.params)throw Error("not supported in this implementation");if(this.#_!==_||this.#$!==q){this.flush(f.Z_SYNC_FLUSH),d1(this.handle,"zlib binding closed");let $=this.handle.flush;this.handle.flush=(Q,x)=>{if(typeof Q==="function")x=Q,Q=this.flushFlag;this.flush(Q),x?.()};try{this.handle.params(_,q)}finally{this.handle.flush=$}if(this.handle)this.#_=_,this.#$=q}}}class i1 extends f1{#_;constructor(_){super(_,"Gzip");this.#_=_&&!!_.portable}[f0](_){if(!this.#_)return super[f0](_);return this.#_=!1,_[9]=255,super[f0](_)}}class p1 extends f1{constructor(_){super(_,"Unzip")}}class s1 extends U6{constructor(_,q){_=_||{},_.flush=_.flush||f.BROTLI_OPERATION_PROCESS,_.finishFlush=_.finishFlush||f.BROTLI_OPERATION_FINISH,_.fullFlushFlag=f.BROTLI_OPERATION_FLUSH;super(_,q)}}class n1 extends s1{constructor(_){super(_,"BrotliCompress")}}class a1 extends s1{constructor(_){super(_,"BrotliDecompress")}}class o1 extends U6{constructor(_,q){_=_||{},_.flush=_.flush||f.ZSTD_e_continue,_.finishFlush=_.finishFlush||f.ZSTD_e_end,_.fullFlushFlag=f.ZSTD_e_flush;super(_,q)}}class t1 extends o1{constructor(_){super(_,"ZstdCompress")}}class r1 extends o1{constructor(_){super(_,"ZstdDecompress")}}import{posix as w_}from"node:path";var E9=(_,q)=>{if(!Number.isSafeInteger(_))throw Error("cannot encode number outside of javascript safe integer range");else if(_<0)p4(_,q);else i4(_,q);return q},i4=(_,q)=>{q[0]=128;for(var $=q.length;$>1;$--)q[$-1]=_&255,_=Math.floor(_/256)},p4=(_,q)=>{q[0]=255;var $=!1;_=_*-1;for(var Q=q.length;Q>1;Q--){var x=_&255;if(_=Math.floor(_/256),$)q[Q-1]=c9(x);else if(x===0)q[Q-1]=0;else $=!0,q[Q-1]=l9(x)}},b9=(_)=>{let q=_[0],$=q===128?n4(_.subarray(1,_.length)):q===255?s4(_):null;if($===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger($))throw Error("parsed number outside of javascript safe integer range");return $},s4=(_)=>{var q=_.length,$=0,Q=!1;for(var x=q-1;x>-1;x--){var X=Number(_[x]),V;if(Q)V=c9(X);else if(X===0)V=X;else Q=!0,V=l9(X);if(V!==0)$-=V*Math.pow(256,q-x-1)}return $},n4=(_)=>{var q=_.length,$=0;for(var Q=q-1;Q>-1;Q--){var x=Number(_[Q]);if(x!==0)$+=x*Math.pow(256,q-Q-1)}return $},c9=(_)=>(255^_)&255,l9=(_)=>(255^_)+1&255;var C6=(_)=>O6.has(_);var O6=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),d9=new Map(Array.from(O6).map((_)=>[_[1],_[0]]));class i{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#_="Unsupported";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(_,q=0,$,Q){if(Buffer.isBuffer(_))this.decode(_,q||0,$,Q);else if(_)this.#$(_)}decode(_,q,$,Q){if(!q)q=0;if(!_||!(_.length>=q+512))throw Error("need 512 bytes for header");if(this.path=$?.path??i0(_,q,100),this.mode=$?.mode??Q?.mode??A0(_,q+100,8),this.uid=$?.uid??Q?.uid??A0(_,q+108,8),this.gid=$?.gid??Q?.gid??A0(_,q+116,8),this.size=$?.size??Q?.size??A0(_,q+124,12),this.mtime=$?.mtime??Q?.mtime??e1(_,q+136,12),this.cksum=A0(_,q+148,12),Q)this.#$(Q,!0);if($)this.#$($);let x=i0(_,q+156,1);if(C6(x))this.#_=x||"0";if(this.#_==="0"&&this.path.slice(-1)==="/")this.#_="5";if(this.#_==="5")this.size=0;if(this.linkpath=i0(_,q+157,100),_.subarray(q+257,q+265).toString()==="ustar\x0000")if(this.uname=$?.uname??Q?.uname??i0(_,q+265,32),this.gname=$?.gname??Q?.gname??i0(_,q+297,32),this.devmaj=$?.devmaj??Q?.devmaj??A0(_,q+329,8)??0,this.devmin=$?.devmin??Q?.devmin??A0(_,q+337,8)??0,_[q+475]!==0){let V=i0(_,q+345,155);this.path=V+"/"+this.path}else{let V=i0(_,q+345,130);if(V)this.path=V+"/"+this.path;this.atime=$?.atime??Q?.atime??e1(_,q+476,12),this.ctime=$?.ctime??Q?.ctime??e1(_,q+488,12)}let X=256;for(let V=q;V<q+148;V++)X+=_[V];for(let V=q+156;V<q+512;V++)X+=_[V];if(this.cksumValid=X===this.cksum,this.cksum===void 0&&X===256)this.nullBlock=!0}#$(_,q=!1){Object.assign(this,Object.fromEntries(Object.entries(_).filter(([$,Q])=>{return!(Q===null||Q===void 0||$==="path"&&q||$==="linkpath"&&q||$==="global")})))}encode(_,q=0){if(!_)_=this.block=Buffer.alloc(512);if(this.#_==="Unsupported")this.#_="0";if(!(_.length>=q+512))throw Error("need 512 bytes for header");let $=this.ctime||this.atime?130:155,Q=o4(this.path||"",$),x=Q[0],X=Q[1];if(this.needPax=!!Q[2],this.needPax=p0(_,q,100,x)||this.needPax,this.needPax=T0(_,q+100,8,this.mode)||this.needPax,this.needPax=T0(_,q+108,8,this.uid)||this.needPax,this.needPax=T0(_,q+116,8,this.gid)||this.needPax,this.needPax=T0(_,q+124,12,this.size)||this.needPax,this.needPax=_2(_,q+136,12,this.mtime)||this.needPax,_[q+156]=this.#_.charCodeAt(0),this.needPax=p0(_,q+157,100,this.linkpath)||this.needPax,_.write("ustar\x0000",q+257,8),this.needPax=p0(_,q+265,32,this.uname)||this.needPax,this.needPax=p0(_,q+297,32,this.gname)||this.needPax,this.needPax=T0(_,q+329,8,this.devmaj)||this.needPax,this.needPax=T0(_,q+337,8,this.devmin)||this.needPax,this.needPax=p0(_,q+345,$,X)||this.needPax,_[q+475]!==0)this.needPax=p0(_,q+345,155,X)||this.needPax;else this.needPax=p0(_,q+345,130,X)||this.needPax,this.needPax=_2(_,q+476,12,this.atime)||this.needPax,this.needPax=_2(_,q+488,12,this.ctime)||this.needPax;let V=256;for(let J=q;J<q+148;J++)V+=_[J];for(let J=q+156;J<q+512;J++)V+=_[J];return this.cksum=V,T0(_,q+148,8,this.cksum),this.cksumValid=!0,this.needPax}get type(){return this.#_==="Unsupported"?this.#_:O6.get(this.#_)}get typeKey(){return this.#_}set type(_){let q=String(d9.get(_));if(C6(q)||q==="Unsupported")this.#_=q;else if(C6(_))this.#_=_;else throw TypeError("invalid entry type: "+_)}}var o4=(_,q)=>{let Q=_,x="",X=void 0,V=w_.parse(_).root||".";if(Buffer.byteLength(Q)<100)X=[Q,x,!1];else{x=w_.dirname(Q),Q=w_.basename(Q);do if(Buffer.byteLength(Q)<=100&&Buffer.byteLength(x)<=q)X=[Q,x,!1];else if(Buffer.byteLength(Q)>100&&Buffer.byteLength(x)<=q)X=[Q.slice(0,99),x,!0];else Q=w_.join(w_.basename(x),Q),x=w_.dirname(x);while(x!==V&&X===void 0);if(!X)X=[_.slice(0,99),"",!0]}return X},i0=(_,q,$)=>_.subarray(q,q+$).toString("utf8").replace(/\0.*/,""),e1=(_,q,$)=>t4(A0(_,q,$)),t4=(_)=>_===void 0?void 0:new Date(_*1000),A0=(_,q,$)=>Number(_[q])&128?b9(_.subarray(q,q+$)):e4(_,q,$),r4=(_)=>isNaN(_)?void 0:_,e4=(_,q,$)=>r4(parseInt(_.subarray(q,q+$).toString("utf8").replace(/\0.*$/,"").trim(),8)),_5={12:8589934591,8:2097151},T0=(_,q,$,Q)=>Q===void 0?!1:Q>_5[$]||Q<0?(E9(Q,_.subarray(q,q+$)),!0):(q5(_,q,$,Q),!1),q5=(_,q,$,Q)=>_.write($5(Q,$),q,$,"ascii"),$5=(_,q)=>Q5(Math.floor(_).toString(8),q),Q5=(_,q)=>(_.length===q-1?_:Array(q-_.length-1).join("0")+_+" ")+"\x00",_2=(_,q,$,Q)=>Q===void 0?!1:T0(_,q,$,Q.getTime()/1000),x5=Array(156).join("\x00"),p0=(_,q,$,Q)=>Q===void 0?!1:(_.write(Q+x5,q,$,"utf8"),Q.length!==Buffer.byteLength(Q)||Q.length>$);import{basename as X5}from"node:path";class F0{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(_,q=!1){this.atime=_.atime,this.charset=_.charset,this.comment=_.comment,this.ctime=_.ctime,this.dev=_.dev,this.gid=_.gid,this.global=q,this.gname=_.gname,this.ino=_.ino,this.linkpath=_.linkpath,this.mtime=_.mtime,this.nlink=_.nlink,this.path=_.path,this.size=_.size,this.uid=_.uid,this.uname=_.uname}encode(){let _=this.encodeBody();if(_==="")return Buffer.allocUnsafe(0);let q=Buffer.byteLength(_),$=512*Math.ceil(1+q/512),Q=Buffer.allocUnsafe($);for(let x=0;x<512;x++)Q[x]=0;new i({path:("PaxHeader/"+X5(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:q,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(Q),Q.write(_,512,q,"utf8");for(let x=q+512;x<Q.length;x++)Q[x]=0;return Q}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(_){if(this[_]===void 0)return"";let q=this[_],$=q instanceof Date?q.getTime()/1000:q,Q=" "+(_==="dev"||_==="ino"||_==="nlink"?"SCHILY.":"")+_+"="+$+`
7
- `,x=Buffer.byteLength(Q),X=Math.floor(Math.log(x)/Math.log(10))+1;if(x+X>=Math.pow(10,X))X+=1;return X+x+Q}static parse(_,q,$=!1){return new F0(V5(J5(_),q),$)}}var V5=(_,q)=>q?Object.assign({},q,_):_,J5=(_)=>_.replace(/\n$/,"").split(`
8
- `).reduce(K5,Object.create(null)),K5=(_,q)=>{let $=parseInt(q,10);if($!==Buffer.byteLength(q)+1)return _;q=q.slice(($+" ").length);let Q=q.split("="),x=Q.shift();if(!x)return _;let X=x.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),V=Q.join("=");return _[X]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(X)?new Date(Number(V)*1000):/^[0-9]+$/.test(V)?+V:V,_};var Z5=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,U=Z5!=="win32"?(_)=>_:(_)=>_&&_.replace(/\\/g,"/");class b_ extends b{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(_,q,$){super({});switch(this.pause(),this.extended=q,this.globalExtended=$,this.header=_,this.remain=_.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=_.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!_.path)throw Error("no path provided for tar.ReadEntry");if(this.path=U(_.path),this.mode=_.mode,this.mode)this.mode=this.mode&4095;if(this.uid=_.uid,this.gid=_.gid,this.uname=_.uname,this.gname=_.gname,this.size=this.remain,this.mtime=_.mtime,this.atime=_.atime,this.ctime=_.ctime,this.linkpath=_.linkpath?U(_.linkpath):void 0,this.uname=_.uname,this.gname=_.gname,q)this.#_(q);if($)this.#_($,!0)}write(_){let q=_.length;if(q>this.blockRemain)throw Error("writing more to entry than is appropriate");let $=this.remain,Q=this.blockRemain;if(this.remain=Math.max(0,$-q),this.blockRemain=Math.max(0,Q-q),this.ignore)return!0;if($>=q)return super.write(_);return super.write(_.subarray(0,$))}#_(_,q=!1){if(_.path)_.path=U(_.path);if(_.linkpath)_.linkpath=U(_.linkpath);Object.assign(this,Object.fromEntries(Object.entries(_).filter(([$,Q])=>{return!(Q===null||Q===void 0||$==="path"&&q)})))}}var s0=(_,q,$,Q={})=>{if(_.file)Q.file=_.file;if(_.cwd)Q.cwd=_.cwd;if(Q.code=$ instanceof Error&&$.code||q,Q.tarCode=q,!_.strict&&Q.recoverable!==!1){if($ instanceof Error)Q=Object.assign($,Q),$=$.message;_.emit("warn",q,$,Q)}else if($ instanceof Error)_.emit("error",Object.assign($,Q));else _.emit("error",Object.assign(Error(`${q}: ${$}`),Q))};var Y5=1048576,X2=Buffer.from([31,139]),V2=Buffer.from([40,181,47,253]),H5=Math.max(X2.length,V2.length),p=Symbol("state"),n0=Symbol("writeEntry"),L0=Symbol("readEntry"),q2=Symbol("nextEntry"),i9=Symbol("processEntry"),V0=Symbol("extendedHeader"),c_=Symbol("globalExtendedHeader"),R0=Symbol("meta"),p9=Symbol("emitMeta"),B=Symbol("buffer"),z0=Symbol("queue"),S0=Symbol("ended"),$2=Symbol("emittedEnd"),a0=Symbol("emit"),F=Symbol("unzip"),j6=Symbol("consumeChunk"),B6=Symbol("consumeChunkSub"),Q2=Symbol("consumeBody"),s9=Symbol("consumeMeta"),n9=Symbol("consumeHeader"),l_=Symbol("consuming"),x2=Symbol("bufferConcat"),I6=Symbol("maybeEnd"),L_=Symbol("writing"),D0=Symbol("aborted"),A6=Symbol("onDone"),o0=Symbol("sawValidEntry"),T6=Symbol("sawNullBlock"),F6=Symbol("sawEOF"),a9=Symbol("closeStream"),v5=()=>!0;class N0 extends G5{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[z0]=[];[B];[L0];[n0];[p]="begin";[R0]="";[V0];[c_];[S0]=!1;[F];[D0]=!1;[o0];[T6]=!1;[F6]=!1;[L_]=!1;[l_]=!1;[$2]=!1;constructor(_={}){super();if(this.file=_.file||"",this.on(A6,()=>{if(this[p]==="begin"||this[o0]===!1)this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),_.ondone)this.on(A6,_.ondone);else this.on(A6,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")});this.strict=!!_.strict,this.maxMetaEntrySize=_.maxMetaEntrySize||Y5,this.filter=typeof _.filter==="function"?_.filter:v5;let q=_.file&&(_.file.endsWith(".tar.br")||_.file.endsWith(".tbr"));this.brotli=!(_.gzip||_.zstd)&&_.brotli!==void 0?_.brotli:q?void 0:!1;let $=_.file&&(_.file.endsWith(".tar.zst")||_.file.endsWith(".tzst"));if(this.zstd=!(_.gzip||_.brotli)&&_.zstd!==void 0?_.zstd:$?!0:void 0,this.on("end",()=>this[a9]()),typeof _.onwarn==="function")this.on("warn",_.onwarn);if(typeof _.onReadEntry==="function")this.on("entry",_.onReadEntry)}warn(_,q,$={}){s0(this,_,q,$)}[n9](_,q){if(this[o0]===void 0)this[o0]=!1;let $;try{$=new i(_,q,this[V0],this[c_])}catch(Q){return this.warn("TAR_ENTRY_INVALID",Q)}if($.nullBlock)if(this[T6]){if(this[F6]=!0,this[p]==="begin")this[p]="header";this[a0]("eof")}else this[T6]=!0,this[a0]("nullBlock");else if(this[T6]=!1,!$.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:$});else if(!$.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:$});else{let Q=$.type;if(/^(Symbolic)?Link$/.test(Q)&&!$.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:$});else if(!/^(Symbolic)?Link$/.test(Q)&&!/^(Global)?ExtendedHeader$/.test(Q)&&$.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:$});else{let x=this[n0]=new b_($,this[V0],this[c_]);if(!this[o0])if(x.remain){let X=()=>{if(!x.invalid)this[o0]=!0};x.on("end",X)}else this[o0]=!0;if(x.meta){if(x.size>this.maxMetaEntrySize)x.ignore=!0,this[a0]("ignoredEntry",x),this[p]="ignore",x.resume();else if(x.size>0)this[R0]="",x.on("data",(X)=>this[R0]+=X),this[p]="meta"}else if(this[V0]=void 0,x.ignore=x.ignore||!this.filter(x.path,x),x.ignore)this[a0]("ignoredEntry",x),this[p]=x.remain?"ignore":"header",x.resume();else{if(x.remain)this[p]="body";else this[p]="header",x.end();if(!this[L0])this[z0].push(x),this[q2]();else this[z0].push(x)}}}}[a9](){queueMicrotask(()=>this.emit("close"))}[i9](_){let q=!0;if(!_)this[L0]=void 0,q=!1;else if(Array.isArray(_)){let[$,...Q]=_;this.emit($,...Q)}else if(this[L0]=_,this.emit("entry",_),!_.emittedEnd)_.on("end",()=>this[q2]()),q=!1;return q}[q2](){do;while(this[i9](this[z0].shift()));if(!this[z0].length){let _=this[L0];if(!_||_.flowing||_.size===_.remain){if(!this[L_])this.emit("drain")}else _.once("drain",()=>this.emit("drain"))}}[Q2](_,q){let $=this[n0];if(!$)throw Error("attempt to consume body without entry??");let Q=$.blockRemain??0,x=Q>=_.length&&q===0?_:_.subarray(q,q+Q);if($.write(x),!$.blockRemain)this[p]="header",this[n0]=void 0,$.end();return x.length}[s9](_,q){let $=this[n0],Q=this[Q2](_,q);if(!this[n0]&&$)this[p9]($);return Q}[a0](_,q,$){if(!this[z0].length&&!this[L0])this.emit(_,q,$);else this[z0].push([_,q,$])}[p9](_){switch(this[a0]("meta",this[R0]),_.type){case"ExtendedHeader":case"OldExtendedHeader":this[V0]=F0.parse(this[R0],this[V0],!1);break;case"GlobalExtendedHeader":this[c_]=F0.parse(this[R0],this[c_],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let q=this[V0]??Object.create(null);this[V0]=q,q.path=this[R0].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let q=this[V0]||Object.create(null);this[V0]=q,q.linkpath=this[R0].replace(/\0.*/,"");break}default:throw Error("unknown meta: "+_.type)}}abort(_){this[D0]=!0,this.emit("abort",_),this.warn("TAR_ABORT",_,{recoverable:!1})}write(_,q,$){if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,typeof q==="string"?q:"utf8");if(this[D0])return $?.(),!1;if((this[F]===void 0||this.brotli===void 0&&this[F]===!1)&&_){if(this[B])_=Buffer.concat([this[B],_]),this[B]=void 0;if(_.length<H5)return this[B]=_,$?.(),!0;for(let J=0;this[F]===void 0&&J<X2.length;J++)if(_[J]!==X2[J])this[F]=!1;let X=!1;if(this[F]===!1&&this.zstd!==!1){X=!0;for(let J=0;J<V2.length;J++)if(_[J]!==V2[J]){X=!1;break}}let V=this.brotli===void 0&&!X;if(this[F]===!1&&V)if(_.length<512)if(this[S0])this.brotli=!0;else return this[B]=_,$?.(),!0;else try{new i(_.subarray(0,512)),this.brotli=!1}catch(J){this.brotli=!0}if(this[F]===void 0||this[F]===!1&&(this.brotli||X)){let J=this[S0];this[S0]=!1,this[F]=this[F]===void 0?new p1({}):X?new r1({}):new a1({}),this[F].on("data",(G)=>this[j6](G)),this[F].on("error",(G)=>this.abort(G)),this[F].on("end",()=>{this[S0]=!0,this[j6]()}),this[L_]=!0;let K=!!this[F][J?"end":"write"](_);return this[L_]=!1,$?.(),K}}if(this[L_]=!0,this[F])this[F].write(_);else this[j6](_);this[L_]=!1;let x=this[z0].length?!1:this[L0]?this[L0].flowing:!0;if(!x&&!this[z0].length)this[L0]?.once("drain",()=>this.emit("drain"));return $?.(),x}[x2](_){if(_&&!this[D0])this[B]=this[B]?Buffer.concat([this[B],_]):_}[I6](){if(this[S0]&&!this[$2]&&!this[D0]&&!this[l_]){this[$2]=!0;let _=this[n0];if(_&&_.blockRemain){let q=this[B]?this[B].length:0;if(this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${_.blockRemain} more bytes, only ${q} available)`,{entry:_}),this[B])_.write(this[B]);_.end()}this[a0](A6)}}[j6](_){if(this[l_]&&_)this[x2](_);else if(!_&&!this[B])this[I6]();else if(_){if(this[l_]=!0,this[B]){this[x2](_);let q=this[B];this[B]=void 0,this[B6](q)}else this[B6](_);while(this[B]&&this[B]?.length>=512&&!this[D0]&&!this[F6]){let q=this[B];this[B]=void 0,this[B6](q)}this[l_]=!1}if(!this[B]||this[S0])this[I6]()}[B6](_){let q=0,$=_.length;while(q+512<=$&&!this[D0]&&!this[F6])switch(this[p]){case"begin":case"header":this[n9](_,q),q+=512;break;case"ignore":case"body":q+=this[Q2](_,q);break;case"meta":q+=this[s9](_,q);break;default:throw Error("invalid state: "+this[p])}if(q<$)if(this[B])this[B]=Buffer.concat([_.subarray(q),this[B]]);else this[B]=_.subarray(q)}end(_,q,$){if(typeof _==="function")$=_,q=void 0,_=void 0;if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,q);if($)this.once("finish",$);if(!this[D0])if(this[F]){if(_)this[F].write(_);this[F].end()}else{if(this[S0]=!0,this.brotli===void 0||this.zstd===void 0)_=_||Buffer.alloc(0);if(_)this.write(_);this[I6]()}return this}}var h0=(_)=>{let q=_.length-1,$=-1;while(q>-1&&_.charAt(q)==="/")$=q,q--;return $===-1?_:_.slice(0,$)};var L5=(_)=>{let q=_.onReadEntry;_.onReadEntry=q?($)=>{q($),$.resume()}:($)=>$.resume()},J2=(_,q)=>{let $=new Map(q.map((X)=>[h0(X),!0])),Q=_.filter,x=(X,V="")=>{let J=V||w5(X).root||".",K;if(X===J)K=!1;else{let G=$.get(X);if(G!==void 0)K=G;else K=x(W5(X),J)}return $.set(X,K),K};_.filter=Q?(X,V)=>Q(X,V)&&x(h0(X)):(X)=>x(h0(X))},z5=(_)=>{let q=new N0(_),$=_.file,Q;try{Q=z_.openSync($,"r");let x=z_.fstatSync(Q),X=_.maxReadSize||16777216;if(x.size<X){let V=Buffer.allocUnsafe(x.size),J=z_.readSync(Q,V,0,x.size,0);q.end(J===V.byteLength?V:V.subarray(0,J))}else{let V=0,J=Buffer.allocUnsafe(X);while(V<x.size){let K=z_.readSync(Q,J,0,X,V);if(K===0)break;V+=K,q.write(J.subarray(0,K))}q.end()}}finally{if(typeof Q==="number")try{z_.closeSync(Q)}catch(x){}}},M5=(_,q)=>{let $=new N0(_),Q=_.maxReadSize||16777216,x=_.file;return new Promise((V,J)=>{$.on("error",J),$.on("end",V),z_.stat(x,(K,G)=>{if(K)J(K);else{let Z=new W_(x,{readSize:Q,size:G.size});Z.on("error",J),Z.pipe($)}})})},t0=X0(z5,M5,(_)=>new N0(_),(_)=>new N0(_),(_,q)=>{if(q?.length)J2(_,q);if(!_.noResume)L5(_)});import b6 from"fs";import J0 from"fs";import e9 from"path";var K2=(_,q,$)=>{if(_&=4095,$)_=(_|384)&-19;if(q){if(_&256)_|=64;if(_&32)_|=8;if(_&4)_|=1}return _};import{win32 as P5}from"node:path";var{isAbsolute:U5,parse:o9}=P5,d_=(_)=>{let q="",$=o9(_);while(U5(_)||$.root){let Q=_.charAt(0)==="/"&&_.slice(0,4)!=="//?/"?"/":$.root;_=_.slice(Q.length),q+=Q,$=o9(_)}return[q,_]};var R6=["|","<",">","?",":"],Z2=R6.map((_)=>String.fromCharCode(61440+_.charCodeAt(0))),C5=new Map(R6.map((_,q)=>[_,Z2[q]])),O5=new Map(Z2.map((_,q)=>[_,R6[q]])),G2=(_)=>R6.reduce((q,$)=>q.split($).join(C5.get($)),_),t9=(_)=>Z2.reduce((q,$)=>q.split($).join(O5.get($)),_);var x3=(_,q)=>{if(!q)return U(_);return _=U(_).replace(/^\.(\/|$)/,""),h0(q)+"/"+_},j5=16777216,_3=Symbol("process"),q3=Symbol("file"),$3=Symbol("directory"),H2=Symbol("symlink"),Q3=Symbol("hardlink"),f_=Symbol("header"),S6=Symbol("read"),v2=Symbol("lstat"),D6=Symbol("onlstat"),W2=Symbol("onread"),w2=Symbol("onreadlink"),L2=Symbol("openfile"),z2=Symbol("onopenfile"),g0=Symbol("close"),N6=Symbol("mode"),M2=Symbol("awaitDrain"),Y2=Symbol("ondrain"),K0=Symbol("prefix");class h6 extends b{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#_=!1;constructor(_,q={}){let $=m_(q);super();if(this.path=U(_),this.portable=!!$.portable,this.maxReadSize=$.maxReadSize||j5,this.linkCache=$.linkCache||new Map,this.statCache=$.statCache||new Map,this.preservePaths=!!$.preservePaths,this.cwd=U($.cwd||process.cwd()),this.strict=!!$.strict,this.noPax=!!$.noPax,this.noMtime=!!$.noMtime,this.mtime=$.mtime,this.prefix=$.prefix?U($.prefix):void 0,this.onWriteEntry=$.onWriteEntry,typeof $.onwarn==="function")this.on("warn",$.onwarn);let Q=!1;if(!this.preservePaths){let[X,V]=d_(this.path);if(X&&typeof V==="string")this.path=V,Q=X}if(this.win32=!!$.win32||process.platform==="win32",this.win32)this.path=t9(this.path.replace(/\\/g,"/")),_=_.replace(/\\/g,"/");if(this.absolute=U($.absolute||e9.resolve(this.cwd,_)),this.path==="")this.path="./";if(Q)this.warn("TAR_ENTRY_INFO",`stripping ${Q} from absolute path`,{entry:this,path:Q+this.path});let x=this.statCache.get(this.absolute);if(x)this[D6](x);else this[v2]()}warn(_,q,$={}){return s0(this,_,q,$)}emit(_,...q){if(_==="error")this.#_=!0;return super.emit(_,...q)}[v2](){J0.lstat(this.absolute,(_,q)=>{if(_)return this.emit("error",_);this[D6](q)})}[D6](_){if(this.statCache.set(this.absolute,_),this.stat=_,!_.isFile())_.size=0;this.type=B5(_),this.emit("stat",_),this[_3]()}[_3](){switch(this.type){case"File":return this[q3]();case"Directory":return this[$3]();case"SymbolicLink":return this[H2]();default:return this.end()}}[N6](_){return K2(_,this.type==="Directory",this.portable)}[K0](_){return x3(_,this.prefix)}[f_](){if(!this.stat)throw Error("cannot write header before stat");if(this.type==="Directory"&&this.portable)this.noMtime=!0;if(this.onWriteEntry?.(this),this.header=new i({path:this[K0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[K0](this.linkpath):this.linkpath,mode:this[N6](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax)super.write(new F0({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[K0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[K0](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let _=this.header?.block;if(!_)throw Error("failed to encode header");super.write(_)}[$3](){if(!this.stat)throw Error("cannot create directory entry without stat");if(this.path.slice(-1)!=="/")this.path+="/";this.stat.size=0,this[f_](),this.end()}[H2](){J0.readlink(this.absolute,(_,q)=>{if(_)return this.emit("error",_);this[w2](q)})}[w2](_){this.linkpath=U(_),this[f_](),this.end()}[Q3](_){if(!this.stat)throw Error("cannot create link entry without stat");this.type="Link",this.linkpath=U(e9.relative(this.cwd,_)),this.stat.size=0,this[f_](),this.end()}[q3](){if(!this.stat)throw Error("cannot create file entry without stat");if(this.stat.nlink>1){let _=`${this.stat.dev}:${this.stat.ino}`,q=this.linkCache.get(_);if(q?.indexOf(this.cwd)===0)return this[Q3](q);this.linkCache.set(_,this.absolute)}if(this[f_](),this.stat.size===0)return this.end();this[L2]()}[L2](){J0.open(this.absolute,"r",(_,q)=>{if(_)return this.emit("error",_);this[z2](q)})}[z2](_){if(this.fd=_,this.#_)return this[g0]();if(!this.stat)throw Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let q=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(q),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[S6]()}[S6](){let{fd:_,buf:q,offset:$,length:Q,pos:x}=this;if(_===void 0||q===void 0)throw Error("cannot read file without first opening");J0.read(_,q,$,Q,x,(X,V)=>{if(X)return this[g0](()=>this.emit("error",X));this[W2](V)})}[g0](_=()=>{}){if(this.fd!==void 0)J0.close(this.fd,_)}[W2](_){if(_<=0&&this.remain>0){let Q=Object.assign(Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[g0](()=>this.emit("error",Q))}if(_>this.remain){let Q=Object.assign(Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[g0](()=>this.emit("error",Q))}if(!this.buf)throw Error("should have created buffer prior to reading");if(_===this.remain)for(let Q=_;Q<this.length&&_<this.blockRemain;Q++)this.buf[Q+this.offset]=0,_++,this.remain++;let q=this.offset===0&&_===this.buf.length?this.buf:this.buf.subarray(this.offset,this.offset+_);if(!this.write(q))this[M2](()=>this[Y2]());else this[Y2]()}[M2](_){this.once("drain",_)}write(_,q,$){if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,typeof q==="string"?q:"utf8");if(this.blockRemain<_.length){let Q=Object.assign(Error("writing more data than expected"),{path:this.absolute});return this.emit("error",Q)}return this.remain-=_.length,this.blockRemain-=_.length,this.pos+=_.length,this.offset+=_.length,super.write(_,null,$)}[Y2](){if(!this.remain){if(this.blockRemain)super.write(Buffer.alloc(this.blockRemain));return this[g0]((_)=>_?this.emit("error",_):this.end())}if(!this.buf)throw Error("buffer lost somehow in ONDRAIN");if(this.offset>=this.length)this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0;this.length=this.buf.length-this.offset,this[S6]()}}class P2 extends h6{sync=!0;[v2](){this[D6](J0.lstatSync(this.absolute))}[H2](){this[w2](J0.readlinkSync(this.absolute))}[L2](){this[z2](J0.openSync(this.absolute,"r"))}[S6](){let _=!0;try{let{fd:q,buf:$,offset:Q,length:x,pos:X}=this;if(q===void 0||$===void 0)throw Error("fd and buf must be set in READ method");let V=J0.readSync(q,$,Q,x,X);this[W2](V),_=!1}finally{if(_)try{this[g0](()=>{})}catch(q){}}}[M2](_){_()}[g0](_=()=>{}){if(this.fd!==void 0)J0.closeSync(this.fd);_()}}class U2 extends b{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(_,q,$={}){return s0(this,_,q,$)}constructor(_,q={}){let $=m_(q);super();this.preservePaths=!!$.preservePaths,this.portable=!!$.portable,this.strict=!!$.strict,this.noPax=!!$.noPax,this.noMtime=!!$.noMtime,this.onWriteEntry=$.onWriteEntry,this.readEntry=_;let{type:Q}=_;if(Q==="Unsupported")throw Error("writing entry that should be ignored");if(this.type=Q,this.type==="Directory"&&this.portable)this.noMtime=!0;if(this.prefix=$.prefix,this.path=U(_.path),this.mode=_.mode!==void 0?this[N6](_.mode):void 0,this.uid=this.portable?void 0:_.uid,this.gid=this.portable?void 0:_.gid,this.uname=this.portable?void 0:_.uname,this.gname=this.portable?void 0:_.gname,this.size=_.size,this.mtime=this.noMtime?void 0:$.mtime||_.mtime,this.atime=this.portable?void 0:_.atime,this.ctime=this.portable?void 0:_.ctime,this.linkpath=_.linkpath!==void 0?U(_.linkpath):void 0,typeof $.onwarn==="function")this.on("warn",$.onwarn);let x=!1;if(!this.preservePaths){let[V,J]=d_(this.path);if(V&&typeof J==="string")this.path=J,x=V}if(this.remain=_.size,this.blockRemain=_.startBlockSize,this.onWriteEntry?.(this),this.header=new i({path:this[K0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[K0](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),x)this.warn("TAR_ENTRY_INFO",`stripping ${x} from absolute path`,{entry:this,path:x+this.path});if(this.header.encode()&&!this.noPax)super.write(new F0({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[K0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[K0](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let X=this.header?.block;if(!X)throw Error("failed to encode header");super.write(X),_.pipe(this)}[K0](_){return x3(_,this.prefix)}[N6](_){return K2(_,this.type==="Directory",this.portable)}write(_,q,$){if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,typeof q==="string"?q:"utf8");let Q=_.length;if(Q>this.blockRemain)throw Error("writing more to entry than is appropriate");return this.blockRemain-=Q,super.write(_,$)}end(_,q,$){if(this.blockRemain)super.write(Buffer.alloc(this.blockRemain));if(typeof _==="function")$=_,q=void 0,_=void 0;if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,q??"utf8");if($)this.once("finish",$);return _?super.end(_,$):super.end($),this}}var B5=(_)=>_.isFile()?"File":_.isDirectory()?"Directory":_.isSymbolicLink()?"SymbolicLink":"Unsupported";class y0{tail;head;length=0;static create(_=[]){return new y0(_)}constructor(_=[]){for(let q of _)this.push(q)}*[Symbol.iterator](){for(let _=this.head;_;_=_.next)yield _.value}removeNode(_){if(_.list!==this)throw Error("removing node which does not belong to this list");let{next:q,prev:$}=_;if(q)q.prev=$;if($)$.next=q;if(_===this.head)this.head=q;if(_===this.tail)this.tail=$;return this.length--,_.next=void 0,_.prev=void 0,_.list=void 0,q}unshiftNode(_){if(_===this.head)return;if(_.list)_.list.removeNode(_);let q=this.head;if(_.list=this,_.next=q,q)q.prev=_;if(this.head=_,!this.tail)this.tail=_;this.length++}pushNode(_){if(_===this.tail)return;if(_.list)_.list.removeNode(_);let q=this.tail;if(_.list=this,_.prev=q,q)q.next=_;if(this.tail=_,!this.head)this.head=_;this.length++}push(..._){for(let q=0,$=_.length;q<$;q++)A5(this,_[q]);return this.length}unshift(..._){for(var q=0,$=_.length;q<$;q++)T5(this,_[q]);return this.length}pop(){if(!this.tail)return;let _=this.tail.value,q=this.tail;if(this.tail=this.tail.prev,this.tail)this.tail.next=void 0;else this.head=void 0;return q.list=void 0,this.length--,_}shift(){if(!this.head)return;let _=this.head.value,q=this.head;if(this.head=this.head.next,this.head)this.head.prev=void 0;else this.tail=void 0;return q.list=void 0,this.length--,_}forEach(_,q){q=q||this;for(let $=this.head,Q=0;$;Q++)_.call(q,$.value,Q,this),$=$.next}forEachReverse(_,q){q=q||this;for(let $=this.tail,Q=this.length-1;$;Q--)_.call(q,$.value,Q,this),$=$.prev}get(_){let q=0,$=this.head;for(;!!$&&q<_;q++)$=$.next;if(q===_&&!!$)return $.value}getReverse(_){let q=0,$=this.tail;for(;!!$&&q<_;q++)$=$.prev;if(q===_&&!!$)return $.value}map(_,q){q=q||this;let $=new y0;for(let Q=this.head;Q;)$.push(_.call(q,Q.value,this)),Q=Q.next;return $}mapReverse(_,q){q=q||this;var $=new y0;for(let Q=this.tail;Q;)$.push(_.call(q,Q.value,this)),Q=Q.prev;return $}reduce(_,q){let $,Q=this.head;if(arguments.length>1)$=q;else if(this.head)Q=this.head.next,$=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var x=0;Q;x++)$=_($,Q.value,x),Q=Q.next;return $}reduceReverse(_,q){let $,Q=this.tail;if(arguments.length>1)$=q;else if(this.tail)Q=this.tail.prev,$=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(let x=this.length-1;Q;x--)$=_($,Q.value,x),Q=Q.prev;return $}toArray(){let _=Array(this.length);for(let q=0,$=this.head;$;q++)_[q]=$.value,$=$.next;return _}toArrayReverse(){let _=Array(this.length);for(let q=0,$=this.tail;$;q++)_[q]=$.value,$=$.prev;return _}slice(_=0,q=this.length){if(q<0)q+=this.length;if(_<0)_+=this.length;let $=new y0;if(q<_||q<0)return $;if(_<0)_=0;if(q>this.length)q=this.length;let Q=this.head,x=0;for(x=0;!!Q&&x<_;x++)Q=Q.next;for(;!!Q&&x<q;x++,Q=Q.next)$.push(Q.value);return $}sliceReverse(_=0,q=this.length){if(q<0)q+=this.length;if(_<0)_+=this.length;let $=new y0;if(q<_||q<0)return $;if(_<0)_=0;if(q>this.length)q=this.length;let Q=this.length,x=this.tail;for(;!!x&&Q>q;Q--)x=x.prev;for(;!!x&&Q>_;Q--,x=x.prev)$.push(x.value);return $}splice(_,q=0,...$){if(_>this.length)_=this.length-1;if(_<0)_=this.length+_;let Q=this.head;for(let X=0;!!Q&&X<_;X++)Q=Q.next;let x=[];for(let X=0;!!Q&&X<q;X++)x.push(Q.value),Q=this.removeNode(Q);if(!Q)Q=this.tail;else if(Q!==this.tail)Q=Q.prev;for(let X of $)Q=I5(this,Q,X);return x}reverse(){let _=this.head,q=this.tail;for(let $=_;$;$=$.prev){let Q=$.prev;$.prev=$.next,$.next=Q}return this.head=q,this.tail=_,this}}function I5(_,q,$){let Q=q,x=q?q.next:_.head,X=new g6($,Q,x,_);if(X.next===void 0)_.tail=X;if(X.prev===void 0)_.head=X;return _.length++,X}function A5(_,q){if(_.tail=new g6(q,_.tail,void 0,_),!_.head)_.head=_.tail;_.length++}function T5(_,q){if(_.head=new g6(q,void 0,_.head,_),!_.tail)_.tail=_.head;_.length++}class g6{list;next;prev;value;constructor(_,q,$,Q){if(this.list=Q,this.value=_,q)q.next=this,this.prev=q;else this.prev=void 0;if($)$.prev=this,this.next=$;else this.next=void 0}}import K3 from"path";class I2{path;absolute;entry;stat;readdir;pending=!1;ignore=!1;piped=!1;constructor(_,q){this.path=_||"./",this.absolute=q}}var X3=Buffer.alloc(1024),y6=Symbol("onStat"),i_=Symbol("ended"),r=Symbol("queue"),r0=Symbol("current"),e0=Symbol("process"),p_=Symbol("processing"),C2=Symbol("processJob"),e=Symbol("jobs"),O2=Symbol("jobDone"),u6=Symbol("addFSEntry"),V3=Symbol("addTarEntry"),A2=Symbol("stat"),T2=Symbol("readdir"),k6=Symbol("onreaddir"),m6=Symbol("pipe"),J3=Symbol("entry"),j2=Symbol("entryOpt"),E6=Symbol("writeEntryClass"),Z3=Symbol("write"),B2=Symbol("ondrain");class __ extends b{sync=!1;opt;cwd;maxReadSize;preservePaths;strict;noPax;prefix;linkCache;statCache;file;portable;zip;readdirCache;noDirRecurse;follow;noMtime;mtime;filter;jobs;[E6];onWriteEntry;[r];[e]=0;[p_]=!1;[i_]=!1;constructor(_={}){super();if(this.opt=_,this.file=_.file||"",this.cwd=_.cwd||process.cwd(),this.maxReadSize=_.maxReadSize,this.preservePaths=!!_.preservePaths,this.strict=!!_.strict,this.noPax=!!_.noPax,this.prefix=U(_.prefix||""),this.linkCache=_.linkCache||new Map,this.statCache=_.statCache||new Map,this.readdirCache=_.readdirCache||new Map,this.onWriteEntry=_.onWriteEntry,this[E6]=h6,typeof _.onwarn==="function")this.on("warn",_.onwarn);if(this.portable=!!_.portable,_.gzip||_.brotli||_.zstd){if((_.gzip?1:0)+(_.brotli?1:0)+(_.zstd?1:0)>1)throw TypeError("gzip, brotli, zstd are mutually exclusive");if(_.gzip){if(typeof _.gzip!=="object")_.gzip={};if(this.portable)_.gzip.portable=!0;this.zip=new i1(_.gzip)}if(_.brotli){if(typeof _.brotli!=="object")_.brotli={};this.zip=new n1(_.brotli)}if(_.zstd){if(typeof _.zstd!=="object")_.zstd={};this.zip=new t1(_.zstd)}if(!this.zip)throw Error("impossible");let q=this.zip;q.on("data",($)=>super.write($)),q.on("end",()=>super.end()),q.on("drain",()=>this[B2]()),this.on("resume",()=>q.resume())}else this.on("drain",this[B2]);if(this.noDirRecurse=!!_.noDirRecurse,this.follow=!!_.follow,this.noMtime=!!_.noMtime,_.mtime)this.mtime=_.mtime;this.filter=typeof _.filter==="function"?_.filter:()=>!0,this[r]=new y0,this[e]=0,this.jobs=Number(_.jobs)||4,this[p_]=!1,this[i_]=!1}[Z3](_){return super.write(_)}add(_){return this.write(_),this}end(_,q,$){if(typeof _==="function")$=_,_=void 0;if(typeof q==="function")$=q,q=void 0;if(_)this.add(_);if(this[i_]=!0,this[e0](),$)$();return this}write(_){if(this[i_])throw Error("write after end");if(_ instanceof b_)this[V3](_);else this[u6](_);return this.flowing}[V3](_){let q=U(K3.resolve(this.cwd,_.path));if(!this.filter(_.path,_))_.resume();else{let $=new I2(_.path,q);$.entry=new U2(_,this[j2]($)),$.entry.on("end",()=>this[O2]($)),this[e]+=1,this[r].push($)}this[e0]()}[u6](_){let q=U(K3.resolve(this.cwd,_));this[r].push(new I2(_,q)),this[e0]()}[A2](_){_.pending=!0,this[e]+=1;let q=this.follow?"stat":"lstat";b6[q](_.absolute,($,Q)=>{if(_.pending=!1,this[e]-=1,$)this.emit("error",$);else this[y6](_,Q)})}[y6](_,q){if(this.statCache.set(_.absolute,q),_.stat=q,!this.filter(_.path,q))_.ignore=!0;else if(q.isFile()&&q.nlink>1&&_===this[r0]&&!this.linkCache.get(`${q.dev}:${q.ino}`)&&!this.sync)this[C2](_);this[e0]()}[T2](_){_.pending=!0,this[e]+=1,b6.readdir(_.absolute,(q,$)=>{if(_.pending=!1,this[e]-=1,q)return this.emit("error",q);this[k6](_,$)})}[k6](_,q){this.readdirCache.set(_.absolute,q),_.readdir=q,this[e0]()}[e0](){if(this[p_])return;this[p_]=!0;for(let _=this[r].head;!!_&&this[e]<this.jobs;_=_.next)if(this[C2](_.value),_.value.ignore){let q=_.next;this[r].removeNode(_),_.next=q}if(this[p_]=!1,this[i_]&&!this[r].length&&this[e]===0)if(this.zip)this.zip.end(X3);else super.write(X3),super.end()}get[r0](){return this[r]&&this[r].head&&this[r].head.value}[O2](_){this[r].shift(),this[e]-=1,this[e0]()}[C2](_){if(_.pending)return;if(_.entry){if(_===this[r0]&&!_.piped)this[m6](_);return}if(!_.stat){let q=this.statCache.get(_.absolute);if(q)this[y6](_,q);else this[A2](_)}if(!_.stat)return;if(_.ignore)return;if(!this.noDirRecurse&&_.stat.isDirectory()&&!_.readdir){let q=this.readdirCache.get(_.absolute);if(q)this[k6](_,q);else this[T2](_);if(!_.readdir)return}if(_.entry=this[J3](_),!_.entry){_.ignore=!0;return}if(_===this[r0]&&!_.piped)this[m6](_)}[j2](_){return{onwarn:(q,$,Q)=>this.warn(q,$,Q),noPax:this.noPax,cwd:this.cwd,absolute:_.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[J3](_){this[e]+=1;try{return new this[E6](_.path,this[j2](_)).on("end",()=>this[O2](_)).on("error",($)=>this.emit("error",$))}catch(q){this.emit("error",q)}}[B2](){if(this[r0]&&this[r0].entry)this[r0].entry.resume()}[m6](_){if(_.piped=!0,_.readdir)_.readdir.forEach((Q)=>{let x=_.path,X=x==="./"?"":x.replace(/\/*$/,"/");this[u6](X+Q)});let q=_.entry,$=this.zip;if(!q)throw Error("cannot pipe without source");if($)q.on("data",(Q)=>{if(!$.write(Q))q.pause()});else q.on("data",(Q)=>{if(!super.write(Q))q.pause()})}pause(){if(this.zip)this.zip.pause();return super.pause()}warn(_,q,$={}){s0(this,_,q,$)}}class M_ extends __{sync=!0;constructor(_){super(_);this[E6]=P2}pause(){}resume(){}[A2](_){let q=this.follow?"statSync":"lstatSync";this[y6](_,b6[q](_.absolute))}[T2](_){this[k6](_,b6.readdirSync(_.absolute))}[m6](_){let q=_.entry,$=this.zip;if(_.readdir)_.readdir.forEach((Q)=>{let x=_.path,X=x==="./"?"":x.replace(/\/*$/,"/");this[u6](X+Q)});if(!q)throw Error("Cannot pipe without source");if($)q.on("data",(Q)=>{$.write(Q)});else q.on("data",(Q)=>{super[Z3](Q)})}}var F5=(_,q)=>{let $=new M_(_),Q=new k_(_.file,{mode:_.mode||438});$.pipe(Q),Y3($,q)},R5=(_,q)=>{let $=new __(_),Q=new I0(_.file,{mode:_.mode||438});$.pipe(Q);let x=new Promise((X,V)=>{Q.on("error",V),Q.on("close",X),$.on("error",V)});return H3($,q),x},Y3=(_,q)=>{q.forEach(($)=>{if($.charAt(0)==="@")t0({file:G3.resolve(_.cwd,$.slice(1)),sync:!0,noResume:!0,onReadEntry:(Q)=>_.add(Q)});else _.add($)}),_.end()},H3=async(_,q)=>{for(let $=0;$<q.length;$++){let Q=String(q[$]);if(Q.charAt(0)==="@")await t0({file:G3.resolve(String(_.cwd),Q.slice(1)),noResume:!0,onReadEntry:(x)=>{_.add(x)}});else _.add(Q)}_.end()},S5=(_,q)=>{let $=new M_(_);return Y3($,q),$},D5=(_,q)=>{let $=new __(_);return H3($,q),$},N5=X0(F5,R5,S5,D5,(_,q)=>{if(!q?.length)throw TypeError("no paths specified to add to archive")});import R3 from"node:fs";import a5 from"node:assert";import{randomBytes as F3}from"node:crypto";import C from"node:fs";import s from"node:path";import v3 from"fs";var h5=process.env.__FAKE_PLATFORM__||process.platform,g5=h5==="win32",{O_CREAT:y5,O_TRUNC:u5,O_WRONLY:k5}=v3.constants,W3=Number(process.env.__FAKE_FS_O_FILENAME__)||v3.constants.UV_FS_O_FILEMAP||0,m5=g5&&!!W3,E5=524288,b5=W3|u5|y5|k5,F2=!m5?()=>"w":(_)=>_<E5?b5:"w";import l6 from"node:fs";import s_ from"node:path";var R2=(_,q,$)=>{try{return l6.lchownSync(_,q,$)}catch(Q){if(Q?.code!=="ENOENT")throw Q}},c6=(_,q,$,Q)=>{l6.lchown(_,q,$,(x)=>{Q(x&&x?.code!=="ENOENT"?x:null)})},c5=(_,q,$,Q,x)=>{if(q.isDirectory())S2(s_.resolve(_,q.name),$,Q,(X)=>{if(X)return x(X);let V=s_.resolve(_,q.name);c6(V,$,Q,x)});else{let X=s_.resolve(_,q.name);c6(X,$,Q,x)}},S2=(_,q,$,Q)=>{l6.readdir(_,{withFileTypes:!0},(x,X)=>{if(x){if(x.code==="ENOENT")return Q();else if(x.code!=="ENOTDIR"&&x.code!=="ENOTSUP")return Q(x)}if(x||!X.length)return c6(_,q,$,Q);let V=X.length,J=null,K=(G)=>{if(J)return;if(G)return Q(J=G);if(--V===0)return c6(_,q,$,Q)};for(let G of X)c5(_,G,q,$,K)})},l5=(_,q,$,Q)=>{if(q.isDirectory())D2(s_.resolve(_,q.name),$,Q);R2(s_.resolve(_,q.name),$,Q)},D2=(_,q,$)=>{let Q;try{Q=l6.readdirSync(_,{withFileTypes:!0})}catch(x){let X=x;if(X?.code==="ENOENT")return;else if(X?.code==="ENOTDIR"||X?.code==="ENOTSUP")return R2(_,q,$);else throw X}for(let x of Q)l5(_,x,q,$);return R2(_,q,$)};import c from"node:fs";import d5 from"node:fs/promises";import i6 from"node:path";class d6 extends Error{path;code;syscall="chdir";constructor(_,q){super(`${q}: Cannot cd into '${_}'`);this.path=_,this.code=q}get name(){return"CwdError"}}class f6 extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(_,q){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link");this.symlink=_,this.path=q}get name(){return"SymlinkError"}}var f5=(_,q)=>{c.stat(_,($,Q)=>{if($||!Q.isDirectory())$=new d6(_,$?.code||"ENOTDIR");q($)})},w3=(_,q,$)=>{_=U(_);let Q=q.umask??18,x=q.mode|448,X=(x&Q)!==0,V=q.uid,J=q.gid,K=typeof V==="number"&&typeof J==="number"&&(V!==q.processUid||J!==q.processGid),G=q.preserve,Z=q.unlink,Y=U(q.cwd),H=(z,M)=>{if(z)$(z);else if(M&&K)S2(M,V,J,(y)=>H(y));else if(X)c.chmod(_,x,$);else $()};if(_===Y)return f5(_,H);if(G)return d5.mkdir(_,{mode:x,recursive:!0}).then((z)=>H(null,z??void 0),H);let L=U(i6.relative(Y,_)).split("/");N2(Y,L,x,Z,Y,void 0,H)},N2=(_,q,$,Q,x,X,V)=>{if(!q.length)return V(null,X);let J=q.shift(),K=U(i6.resolve(_+"/"+J));c.mkdir(K,$,L3(K,q,$,Q,x,X,V))},L3=(_,q,$,Q,x,X,V)=>(J)=>{if(J)c.lstat(_,(K,G)=>{if(K)K.path=K.path&&U(K.path),V(K);else if(G.isDirectory())N2(_,q,$,Q,x,X,V);else if(Q)c.unlink(_,(Z)=>{if(Z)return V(Z);c.mkdir(_,$,L3(_,q,$,Q,x,X,V))});else if(G.isSymbolicLink())return V(new f6(_,_+"/"+q.join("/")));else V(J)});else X=X||_,N2(_,q,$,Q,x,X,V)},i5=(_)=>{let q=!1,$=void 0;try{q=c.statSync(_).isDirectory()}catch(Q){$=Q?.code}finally{if(!q)throw new d6(_,$??"ENOTDIR")}},z3=(_,q)=>{_=U(_);let $=q.umask??18,Q=q.mode|448,x=(Q&$)!==0,X=q.uid,V=q.gid,J=typeof X==="number"&&typeof V==="number"&&(X!==q.processUid||V!==q.processGid),K=q.preserve,G=q.unlink,Z=U(q.cwd),Y=(z)=>{if(z&&J)D2(z,X,V);if(x)c.chmodSync(_,Q)};if(_===Z)return i5(Z),Y();if(K)return Y(c.mkdirSync(_,{mode:Q,recursive:!0})??void 0);let w=U(i6.relative(Z,_)).split("/"),L=void 0;for(let z=w.shift(),M=Z;z&&(M+="/"+z);z=w.shift()){M=U(i6.resolve(M));try{c.mkdirSync(M,Q),L=L||M}catch(y){let d=c.lstatSync(M);if(d.isDirectory())continue;else if(G){c.unlinkSync(M),c.mkdirSync(M,Q),L=L||M;continue}else if(d.isSymbolicLink())return new f6(M,M+"/"+w.join("/"))}}return Y(L)};import{join as P3}from"node:path";var h2=Object.create(null);var P_=new Set,M3=(_)=>{if(!P_.has(_))h2[_]=_.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en");else P_.delete(_);P_.add(_);let q=h2[_],$=P_.size-1e4;if($>1000){for(let Q of P_)if(P_.delete(Q),delete h2[Q],--$<=0)break}return q};var p5=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,s5=p5==="win32",n5=(_)=>{return _.split("/").slice(0,-1).reduce(($,Q)=>{let x=$[$.length-1];if(x!==void 0)Q=P3(x,Q);return $.push(Q||"/"),$},[])};class g2{#_=new Map;#$=new Map;#Q=new Set;reserve(_,q){_=s5?["win32 parallelization disabled"]:_.map((Q)=>{return h0(P3(M3(Q)))});let $=new Set(_.map((Q)=>n5(Q)).reduce((Q,x)=>Q.concat(x)));this.#$.set(q,{dirs:$,paths:_});for(let Q of _){let x=this.#_.get(Q);if(!x)this.#_.set(Q,[q]);else x.push(q)}for(let Q of $){let x=this.#_.get(Q);if(!x)this.#_.set(Q,[new Set([q])]);else{let X=x[x.length-1];if(X instanceof Set)X.add(q);else x.push(new Set([q]))}}return this.#x(q)}#X(_){let q=this.#$.get(_);if(!q)throw Error("function does not have any path reservations");return{paths:q.paths.map(($)=>this.#_.get($)),dirs:[...q.dirs].map(($)=>this.#_.get($))}}check(_){let{paths:q,dirs:$}=this.#X(_);return q.every((Q)=>Q&&Q[0]===_)&&$.every((Q)=>Q&&Q[0]instanceof Set&&Q[0].has(_))}#x(_){if(this.#Q.has(_)||!this.check(_))return!1;return this.#Q.add(_),_(()=>this.#q(_)),!0}#q(_){if(!this.#Q.has(_))return!1;let q=this.#$.get(_);if(!q)throw Error("invalid reservation");let{paths:$,dirs:Q}=q,x=new Set;for(let X of $){let V=this.#_.get(X);if(!V||V?.[0]!==_)continue;let J=V[1];if(!J){this.#_.delete(X);continue}if(V.shift(),typeof J==="function")x.add(J);else for(let K of J)x.add(K)}for(let X of Q){let V=this.#_.get(X),J=V?.[0];if(!V||!(J instanceof Set))continue;if(J.size===1&&V.length===1){this.#_.delete(X);continue}else if(J.size===1){V.shift();let K=V[0];if(typeof K==="function")x.add(K)}else J.delete(_)}return this.#Q.delete(_),x.forEach((X)=>this.#x(X)),!0}}var U3=Symbol("onEntry"),m2=Symbol("checkFs"),C3=Symbol("checkFs2"),E2=Symbol("isReusable"),n=Symbol("makeFs"),b2=Symbol("file"),c2=Symbol("directory"),n6=Symbol("link"),O3=Symbol("symlink"),j3=Symbol("hardlink"),B3=Symbol("unsupported"),I3=Symbol("checkPath"),y2=Symbol("stripAbsolutePath"),u0=Symbol("mkdir"),g=Symbol("onError"),p6=Symbol("pending"),A3=Symbol("pend"),U_=Symbol("unpend"),u2=Symbol("ended"),k2=Symbol("maybeClose"),l2=Symbol("skip"),n_=Symbol("doChown"),a_=Symbol("uid"),o_=Symbol("gid"),t_=Symbol("checkedCwd"),o5=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,r_=o5==="win32",t5=1024,r5=(_,q)=>{if(!r_)return C.unlink(_,q);let $=_+".DELETE."+F3(16).toString("hex");C.rename(_,$,(Q)=>{if(Q)return q(Q);C.unlink($,q)})},e5=(_)=>{if(!r_)return C.unlinkSync(_);let q=_+".DELETE."+F3(16).toString("hex");C.renameSync(_,q),C.unlinkSync(q)},T3=(_,q,$)=>_!==void 0&&_===_>>>0?_:q!==void 0&&q===q>>>0?q:$;class e_ extends N0{[u2]=!1;[t_]=!1;[p6]=0;reservations=new g2;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(_={}){_.ondone=()=>{this[u2]=!0,this[k2]()};super(_);if(this.transform=_.transform,this.chmod=!!_.chmod,typeof _.uid==="number"||typeof _.gid==="number"){if(typeof _.uid!=="number"||typeof _.gid!=="number")throw TypeError("cannot set owner without number uid and gid");if(_.preserveOwner)throw TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=_.uid,this.gid=_.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;if(_.preserveOwner===void 0&&typeof _.uid!=="number")this.preserveOwner=!!(process.getuid&&process.getuid()===0);else this.preserveOwner=!!_.preserveOwner;this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof _.maxDepth==="number"?_.maxDepth:t5,this.forceChown=_.forceChown===!0,this.win32=!!_.win32||r_,this.newer=!!_.newer,this.keep=!!_.keep,this.noMtime=!!_.noMtime,this.preservePaths=!!_.preservePaths,this.unlink=!!_.unlink,this.cwd=U(s.resolve(_.cwd||process.cwd())),this.strip=Number(_.strip)||0,this.processUmask=!this.chmod?0:typeof _.processUmask==="number"?_.processUmask:process.umask(),this.umask=typeof _.umask==="number"?_.umask:this.processUmask,this.dmode=_.dmode||511&~this.umask,this.fmode=_.fmode||438&~this.umask,this.on("entry",(q)=>this[U3](q))}warn(_,q,$={}){if(_==="TAR_BAD_ARCHIVE"||_==="TAR_ABORT")$.recoverable=!1;return super.warn(_,q,$)}[k2](){if(this[u2]&&this[p6]===0)this.emit("prefinish"),this.emit("finish"),this.emit("end")}[y2](_,q){let $=_[q];if(!$||this.preservePaths)return!0;let Q=$.split("/");if(Q.includes("..")||r_&&/^[a-z]:\.\.$/i.test(Q[0]??""))if(q==="path")return this.warn("TAR_ENTRY_ERROR",`${q} contains '..'`,{entry:_,[q]:$}),!1;else{let V=s.posix.dirname(_.path),J=s.posix.normalize(s.posix.join(V,$));if(J.startsWith("../")||J==="..")return this.warn("TAR_ENTRY_ERROR",`${q} escapes extraction directory`,{entry:_,[q]:$}),!1}let[x,X]=d_($);if(x)_[q]=String(X),this.warn("TAR_ENTRY_INFO",`stripping ${x} from absolute ${q}`,{entry:_,[q]:$});return!0}[I3](_){let q=U(_.path),$=q.split("/");if(this.strip){if($.length<this.strip)return!1;if(_.type==="Link"){let Q=U(String(_.linkpath)).split("/");if(Q.length>=this.strip)_.linkpath=Q.slice(this.strip).join("/");else return!1}$.splice(0,this.strip),_.path=$.join("/")}if(isFinite(this.maxDepth)&&$.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:_,path:q,depth:$.length,maxDepth:this.maxDepth}),!1;if(!this[y2](_,"path")||!this[y2](_,"linkpath"))return!1;if(s.isAbsolute(_.path))_.absolute=U(s.resolve(_.path));else _.absolute=U(s.resolve(this.cwd,_.path));if(!this.preservePaths&&typeof _.absolute==="string"&&_.absolute.indexOf(this.cwd+"/")!==0&&_.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:_,path:U(_.path),resolvedPath:_.absolute,cwd:this.cwd}),!1;if(_.absolute===this.cwd&&_.type!=="Directory"&&_.type!=="GNUDumpDir")return!1;if(this.win32){let{root:Q}=s.win32.parse(String(_.absolute));_.absolute=Q+G2(String(_.absolute).slice(Q.length));let{root:x}=s.win32.parse(_.path);_.path=x+G2(_.path.slice(x.length))}return!0}[U3](_){if(!this[I3](_))return _.resume();switch(a5.equal(typeof _.absolute,"string"),_.type){case"Directory":case"GNUDumpDir":if(_.mode)_.mode=_.mode|448;case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[m2](_);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[B3](_)}}[g](_,q){if(_.name==="CwdError")this.emit("error",_);else this.warn("TAR_ENTRY_ERROR",_,{entry:q}),this[U_](),q.resume()}[u0](_,q,$){w3(U(_),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:q},$)}[n_](_){return this.forceChown||this.preserveOwner&&(typeof _.uid==="number"&&_.uid!==this.processUid||typeof _.gid==="number"&&_.gid!==this.processGid)||typeof this.uid==="number"&&this.uid!==this.processUid||typeof this.gid==="number"&&this.gid!==this.processGid}[a_](_){return T3(this.uid,_.uid,this.processUid)}[o_](_){return T3(this.gid,_.gid,this.processGid)}[b2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.fmode,Q=new I0(String(_.absolute),{flags:F2(_.size),mode:$,autoClose:!1});Q.on("error",(J)=>{if(Q.fd)C.close(Q.fd,()=>{});Q.write=()=>!0,this[g](J,_),q()});let x=1,X=(J)=>{if(J){if(Q.fd)C.close(Q.fd,()=>{});this[g](J,_),q();return}if(--x===0){if(Q.fd!==void 0)C.close(Q.fd,(K)=>{if(K)this[g](K,_);else this[U_]();q()})}};Q.on("finish",()=>{let J=String(_.absolute),K=Q.fd;if(typeof K==="number"&&_.mtime&&!this.noMtime){x++;let G=_.atime||new Date,Z=_.mtime;C.futimes(K,G,Z,(Y)=>Y?C.utimes(J,G,Z,(H)=>X(H&&Y)):X())}if(typeof K==="number"&&this[n_](_)){x++;let G=this[a_](_),Z=this[o_](_);if(typeof G==="number"&&typeof Z==="number")C.fchown(K,G,Z,(Y)=>Y?C.chown(J,G,Z,(H)=>X(H&&Y)):X())}X()});let V=this.transform?this.transform(_)||_:_;if(V!==_)V.on("error",(J)=>{this[g](J,_),q()}),_.pipe(V);V.pipe(Q)}[c2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.dmode;this[u0](String(_.absolute),$,(Q)=>{if(Q){this[g](Q,_),q();return}let x=1,X=()=>{if(--x===0)q(),this[U_](),_.resume()};if(_.mtime&&!this.noMtime)x++,C.utimes(String(_.absolute),_.atime||new Date,_.mtime,X);if(this[n_](_))x++,C.chown(String(_.absolute),Number(this[a_](_)),Number(this[o_](_)),X);X()})}[B3](_){_.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${_.type}`,{entry:_}),_.resume()}[O3](_,q){this[n6](_,String(_.linkpath),"symlink",q)}[j3](_,q){let $=U(s.resolve(this.cwd,String(_.linkpath)));this[n6](_,$,"link",q)}[A3](){this[p6]++}[U_](){this[p6]--,this[k2]()}[l2](_){this[U_](),_.resume()}[E2](_,q){return _.type==="File"&&!this.unlink&&q.isFile()&&q.nlink<=1&&!r_}[m2](_){this[A3]();let q=[_.path];if(_.linkpath)q.push(_.linkpath);this.reservations.reserve(q,($)=>this[C3](_,$))}[C3](_,q){let $=(V)=>{q(V)},Q=()=>{this[u0](this.cwd,this.dmode,(V)=>{if(V){this[g](V,_),$();return}this[t_]=!0,x()})},x=()=>{if(_.absolute!==this.cwd){let V=U(s.dirname(String(_.absolute)));if(V!==this.cwd)return this[u0](V,this.dmode,(J)=>{if(J){this[g](J,_),$();return}X()})}X()},X=()=>{C.lstat(String(_.absolute),(V,J)=>{if(J&&(this.keep||this.newer&&J.mtime>(_.mtime??J.mtime))){this[l2](_),$();return}if(V||this[E2](_,J))return this[n](null,_,$);if(J.isDirectory()){if(_.type==="Directory"){let K=this.chmod&&_.mode&&(J.mode&4095)!==_.mode,G=(Z)=>this[n](Z??null,_,$);if(!K)return G();return C.chmod(String(_.absolute),Number(_.mode),G)}if(_.absolute!==this.cwd)return C.rmdir(String(_.absolute),(K)=>this[n](K??null,_,$))}if(_.absolute===this.cwd)return this[n](null,_,$);r5(String(_.absolute),(K)=>this[n](K??null,_,$))})};if(this[t_])x();else Q()}[n](_,q,$){if(_){this[g](_,q),$();return}switch(q.type){case"File":case"OldFile":case"ContiguousFile":return this[b2](q,$);case"Link":return this[j3](q,$);case"SymbolicLink":return this[O3](q,$);case"Directory":case"GNUDumpDir":return this[c2](q,$)}}[n6](_,q,$,Q){C[$](q,String(_.absolute),(x)=>{if(x)this[g](x,_);else this[U_](),_.resume();Q()})}}var s6=(_)=>{try{return[null,_()]}catch(q){return[q,null]}};class a6 extends e_{sync=!0;[n](_,q){return super[n](_,q,()=>{})}[m2](_){if(!this[t_]){let x=this[u0](this.cwd,this.dmode);if(x)return this[g](x,_);this[t_]=!0}if(_.absolute!==this.cwd){let x=U(s.dirname(String(_.absolute)));if(x!==this.cwd){let X=this[u0](x,this.dmode);if(X)return this[g](X,_)}}let[q,$]=s6(()=>C.lstatSync(String(_.absolute)));if($&&(this.keep||this.newer&&$.mtime>(_.mtime??$.mtime)))return this[l2](_);if(q||this[E2](_,$))return this[n](null,_);if($.isDirectory()){if(_.type==="Directory"){let X=this.chmod&&_.mode&&($.mode&4095)!==_.mode,[V]=X?s6(()=>{C.chmodSync(String(_.absolute),Number(_.mode))}):[];return this[n](V,_)}let[x]=s6(()=>C.rmdirSync(String(_.absolute)));this[n](x,_)}let[Q]=_.absolute===this.cwd?[]:s6(()=>e5(String(_.absolute)));this[n](Q,_)}[b2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.fmode,Q=(V)=>{let J;try{C.closeSync(x)}catch(K){J=K}if(V||J)this[g](V||J,_);q()},x;try{x=C.openSync(String(_.absolute),F2(_.size),$)}catch(V){return Q(V)}let X=this.transform?this.transform(_)||_:_;if(X!==_)X.on("error",(V)=>this[g](V,_)),_.pipe(X);X.on("data",(V)=>{try{C.writeSync(x,V,0,V.length)}catch(J){Q(J)}}),X.on("end",()=>{let V=null;if(_.mtime&&!this.noMtime){let J=_.atime||new Date,K=_.mtime;try{C.futimesSync(x,J,K)}catch(G){try{C.utimesSync(String(_.absolute),J,K)}catch(Z){V=G}}}if(this[n_](_)){let J=this[a_](_),K=this[o_](_);try{C.fchownSync(x,Number(J),Number(K))}catch(G){try{C.chownSync(String(_.absolute),Number(J),Number(K))}catch(Z){V=V||G}}}Q(V)})}[c2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.dmode,Q=this[u0](String(_.absolute),$);if(Q){this[g](Q,_),q();return}if(_.mtime&&!this.noMtime)try{C.utimesSync(String(_.absolute),_.atime||new Date,_.mtime)}catch(x){}if(this[n_](_))try{C.chownSync(String(_.absolute),Number(this[a_](_)),Number(this[o_](_)))}catch(x){}q(),_.resume()}[u0](_,q){try{return z3(U(_),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:q})}catch($){return $}}[n6](_,q,$,Q){let x=`${$}Sync`;try{C[x](q,String(_.absolute)),Q(),_.resume()}catch(X){return this[g](X,_)}}}var _7=(_)=>{let q=new a6(_),$=_.file,Q=R3.statSync($),x=_.maxReadSize||16777216;new E1($,{readSize:x,size:Q.size}).pipe(q)},q7=(_,q)=>{let $=new e_(_),Q=_.maxReadSize||16777216,x=_.file;return new Promise((V,J)=>{$.on("error",J),$.on("close",V),R3.stat(x,(K,G)=>{if(K)J(K);else{let Z=new W_(x,{readSize:Q,size:G.size});Z.on("error",J),Z.pipe($)}})})},_6=X0(_7,q7,(_)=>new a6(_),(_)=>new e_(_),(_,q)=>{if(q?.length)J2(_,q)});import l from"node:fs";import S3 from"node:path";var $7=(_,q)=>{let $=new M_(_),Q=!0,x,X;try{try{x=l.openSync(_.file,"r+")}catch(K){if(K?.code==="ENOENT")x=l.openSync(_.file,"w+");else throw K}let V=l.fstatSync(x),J=Buffer.alloc(512);_:for(X=0;X<V.size;X+=512){for(let Z=0,Y=0;Z<512;Z+=Y){if(Y=l.readSync(x,J,Z,J.length-Z,X+Z),X===0&&J[0]===31&&J[1]===139)throw Error("cannot append to compressed archives");if(!Y)break _}let K=new i(J);if(!K.cksumValid)break;let G=512*Math.ceil((K.size||0)/512);if(X+G+512>V.size)break;if(X+=G,_.mtimeCache&&K.mtime)_.mtimeCache.set(String(K.path),K.mtime)}Q=!1,Q7(_,$,X,x,q)}finally{if(Q)try{l.closeSync(x)}catch(V){}}},Q7=(_,q,$,Q,x)=>{let X=new k_(_.file,{fd:Q,start:$});q.pipe(X),X7(q,x)},x7=(_,q)=>{q=Array.from(q);let $=new __(_),Q=(X,V,J)=>{let K=(w,L)=>{if(w)l.close(X,(z)=>J(w));else J(null,L)},G=0;if(V===0)return K(null,0);let Z=0,Y=Buffer.alloc(512),H=(w,L)=>{if(w||typeof L>"u")return K(w);if(Z+=L,Z<512&&L)return l.read(X,Y,Z,Y.length-Z,G+Z,H);if(G===0&&Y[0]===31&&Y[1]===139)return K(Error("cannot append to compressed archives"));if(Z<512)return K(null,G);let z=new i(Y);if(!z.cksumValid)return K(null,G);let M=512*Math.ceil((z.size??0)/512);if(G+M+512>V)return K(null,G);if(G+=M+512,G>=V)return K(null,G);if(_.mtimeCache&&z.mtime)_.mtimeCache.set(String(z.path),z.mtime);Z=0,l.read(X,Y,0,512,G,H)};l.read(X,Y,0,512,G,H)};return new Promise((X,V)=>{$.on("error",V);let J="r+",K=(G,Z)=>{if(G&&G.code==="ENOENT"&&J==="r+")return J="w+",l.open(_.file,J,K);if(G||!Z)return V(G);l.fstat(Z,(Y,H)=>{if(Y)return l.close(Z,()=>V(Y));Q(Z,H.size,(w,L)=>{if(w)return V(w);let z=new I0(_.file,{fd:Z,start:L});$.pipe(z),z.on("error",V),z.on("close",X),V7($,q)})})};l.open(_.file,J,K)})},X7=(_,q)=>{q.forEach(($)=>{if($.charAt(0)==="@")t0({file:S3.resolve(_.cwd,$.slice(1)),sync:!0,noResume:!0,onReadEntry:(Q)=>_.add(Q)});else _.add($)}),_.end()},V7=async(_,q)=>{for(let $=0;$<q.length;$++){let Q=String(q[$]);if(Q.charAt(0)==="@")await t0({file:S3.resolve(String(_.cwd),Q.slice(1)),noResume:!0,onReadEntry:(x)=>_.add(x)});else _.add(Q)}_.end()},q_=X0($7,x7,()=>{throw TypeError("file is required")},()=>{throw TypeError("file is required")},(_,q)=>{if(!u9(_))throw TypeError("file is required");if(_.gzip||_.brotli||_.zstd||_.file.endsWith(".br")||_.file.endsWith(".tbr"))throw TypeError("cannot append to compressed archives");if(!q?.length)throw TypeError("no paths specified to add/replace")});var J7=X0(q_.syncFile,q_.asyncFile,q_.syncNoFile,q_.asyncNoFile,(_,q=[])=>{q_.validate?.(_,q),K7(_)}),K7=(_)=>{let q=_.filter;if(!_.mtimeCache)_.mtimeCache=new Map;_.filter=q?($,Q)=>q($,Q)&&!((_.mtimeCache?.get($)??Q.mtime??0)>(Q.mtime??0)):($,Q)=>!((_.mtimeCache?.get($)??Q.mtime??0)>(Q.mtime??0))};var A={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"};import O_,{join as G7}from"path";var D3={name:"@abacus-ai/cli",description:"AbacusAI's powerful CLI AI assistant with agentic browsing, listening, and coding capabilities.",appName:"AbacusAI",binName:"abacusai",version:"1.106.2609",nodeVersion:"22.19.0",author:{name:"Abacus AI"},license:"Proprietary",main:"./dist/index.js",module:"./dist/index.js",source:"./src/index.ts",type:"module",homepage:"https://desktop.abacus.ai/",files:["dist"],bugs:{url:"mailto:support@abacus.ai"},bin:{abacusai:"./dist/index.js"},scripts:{"build.tsc":"tsc --noEmit --pretty","build.bun":"bun build ./src/index.ts --minify --target=node --outdir=dist",build:"run-p build.*","watch.tsc":"tsc --watch --noEmit --pretty","watch.bun":"bun build ./src/index.ts --sourcemap --target=node --outdir=dist --watch --external=extract-zip --external=node-downloader-helper --external=semver --external=tar",watch:"run-p watch.*",test:"tsc -p ./test/tsconfig.json && bun test"},devDependencies:{"@inquirer/prompts":"^7.9.0","@tsconfig/strictest":"^2.0.7","@types/color-name":"^2.0.0","@types/glob":"^9.0.0","@types/minimatch":"^6.0.0","@types/node":"^24.9.2","@types/bun":"^1.2.2","@types/semver":"^7.7.1","extract-zip":"^2.0.1","node-downloader-helper":"^2.1.9",semver:"^7.7.3",tar:"^7.5.2",typescript:"^6.0.0-dev.20251031","npm-run-all2":"^8.0.4"},overrides:{yauzl:"3.2.0"}};import{fileURLToPath as Y7}from"url";import t6 from"os";import C_ from"fs/promises";import H7 from"fs";var r6=O_.dirname(Y7(import.meta.url)),o6=D3,d2=".abacusai-cli";async function e6(_){return O_.join(await h3(),`${_.binName}-${_.version}-${t6.platform()}-${t6.arch()}`)}async function h3(){let _=O_.join(r6,d2);if(await N3(_))return _;console.log(`Using home directory as ${_} is not writable.`);let q=O_.join(t6.homedir(),d2);if(await N3(q))return q;console.error(`No writable directory found under ${_} or ${q}. Using a temporary directory instead.`);let $=G7(t6.tmpdir(),d2);try{await C_.mkdir($,{recursive:!0})}catch{}return $}async function N3(_){let q=O_.join(_,`.writable-${process.pid}-${Date.now()}`);try{return await C_.mkdir(_,{recursive:!0}),await C_.writeFile(q,"true"),!0}catch($){return!1}finally{try{await C_.unlink(q)}catch{}}}async function g3(){try{let _=await y3(o6);if(!H7.existsSync(_))return await f2(o6,_),o6;return await v7(_)}catch{return o6}}async function f2(_,q){try{if(q===void 0)q=await y3(_);return await C_.writeFile(q,JSON.stringify(_,null,2)),q}catch($){return console.error(`Failed to write package data file ${q}: ${$ instanceof Error?$.message:String($)}`),null}}async function v7(_){return JSON.parse(await C_.readFile(_,"utf8"))}async function y3(_){return O_.join(await h3(),`${_.binName}-package.json`)}var p8=Z6(T8(),1),s8=Z6(B1(),1),n8=Z6(i8(),1);import Y9 from"fs";import V6 from"fs/promises";import X_ from"os";import H9 from"path";function H$(_){let q=process.versions.node;if(n8.default(q,_))return!1;return!0}function v$(_){let q=X_.platform(),$=X_.arch(),x={x64:"x64",arm64:"arm64",ia32:"x86"}[$]||$;if(q==="win32")return`https://nodejs.org/dist/v${_}/node-v${_}-win-${x}.${$==="x64"||$==="ia32"?"zip":"7z"}`;else if(q==="darwin")return`https://nodejs.org/dist/v${_}/node-v${_}-darwin-${x}.tar.gz`;else return`https://nodejs.org/dist/v${_}/node-v${_}-linux-${x}.tar.gz`}function W$(_){let q=X_.platform(),$=X_.arch(),x={x64:"x64",arm64:"arm64",ia32:"x86"}[$]||$;if(q==="win32")return`node-v${_}-win-${x}.${$==="x64"||$==="ia32"?"zip":"7z"}`;else if(q==="darwin")return`node-v${_}-darwin-${x}.tar.gz`;else return`node-v${_}-linux-${x}.tar.gz`}async function O1(_,q,$=!1){try{if(!$){if(H$(q))return process.execPath}let Q=X_.platform()==="win32"?"node.exe":"node",x=H9.join(_,Q);if(Y9.existsSync(x))return x;let X=H9.join(X_.homedir(),`node-${q}`),V=H9.join(X,"bin",Q);if(Y9.existsSync(V))return await V6.copyFile(V,x),x;console.log(`${A.dim}Downloading Node.js ${q}...${A.reset}`);let J=v$(q),K=W$(q),G=new s8.DownloaderHelper(J,X_.tmpdir(),{fileName:K});G.on("error",async(Y)=>{console.error(`${A.red}Failed to download Node.js from ${J}: ${Y}${A.reset}`),await G.stop()}),await G.start();let Z=G.getDownloadPath();if(!Y9.existsSync(X))await V6.mkdir(X);if(console.log(`${A.dim}Extracting Node.js ${q} to ${X}...${A.reset}`),K.endsWith(".tar.gz"))await L$(Z,X);else await w$(Z,X);return await V6.copyFile(V,x),x}catch(Q){return console.error(`${A.red}Failed to download Node.js: ${Q instanceof Error?Q.message:String(Q)}
9
- Please download and install Node.js ${q} from https://nodejs.org/`),process.execPath}}async function w$(_,q){await V6.mkdir(q,{recursive:!0}),await p8.default(_,{dir:q})}async function L$(_,q){await V6.mkdir(q,{recursive:!0}),await _6({file:_,cwd:q,strip:1})}function P$(_){let{appName:q,binName:$,version:Q}=_,x=`${q.toLowerCase()}-agent-cli-${j1.platform()}-${j1.arch()}-${Q}.tar.gz`;return{url:`https://static.abacus.ai/${$}/releases/${Q}/${x}`,fileName:x}}async function t8(_,q=!1){let{appName:$,binName:Q,version:x,homepage:X}=_;try{let{url:V,fileName:J}=P$(_),K=new a8.DownloaderHelper(V,j1.tmpdir(),{fileName:J});K.on("error",async(H)=>{console.error(`Failed to download ${V}: ${H}`),await K.stop()}),console.log(`${A.dim}Downloading ${$} ${x}...${A.reset}`),await K.start();let G=K.getDownloadPath(),Z=await e6(_);console.log(`${A.dim}Extracting ${$} ${x} to ${Z}...${A.reset}`),await U$(G,Z),await o8.rm(G);let Y=z$.join(Z,"bin",`${Q}${j1.platform()==="win32"?".cmd":""}`);if(!M$.existsSync(Y)){let H=`${$} command not found at ${Y}}`;throw console.error(H),Error(H)}return console.log(`${A.dim}${$} ${x} downloaded to ${Z}${A.reset}`),await O1(Z,_.nodeVersion,q),Y}catch(V){throw console.error(V instanceof Error?V.message:String(V)),Error(`Could not download ${$}. Please install ${$} from ${X} and re-run ${Q}.`)}}async function U$(_,q){await o8.mkdir(q,{recursive:!0}),await _6({file:_,cwd:q,strip:1})}import W9 from"fs";import r8 from"fs/promises";import v9 from"os";import R from"path";var e8="code-oss-dev";async function _4(_){try{let q=v9.platform(),$=[await O$(R.dirname(R.dirname(r6))),R.dirname(R.dirname(R.dirname(r6))),await e6(_),...C$(_.appName,q)].filter((Q)=>Q!==void 0);return await Promise.any($.map(async(Q)=>{try{let x=JSON.parse(await r8.readFile(R.join(Q,"package.json"),"utf8")),X=x.name===e8;if(!X&&!(("version"in x)&&typeof x.version==="string"&&x.version===_.version))throw Error(`Invalid version in package.json: ${x.version} (expected ${_.version})`);let V=q4(Q);if(V!==void 0){let K=q==="win32"?"node.exe":"node";return{command:X?K:R.join(Q,K),args:X?[V,Q,"agent"]:[V,"agent"],directory:Q,isCommandNode:!X,env:X?{...process.env,NODE_ENV:"development",VSCODE_DEV:"1"}:process.env}}let J=R.join(Q,"bin",`${_.binName}${q==="win32"?".cmd":""}`);if(W9.existsSync(J))return{command:J,args:[],directory:Q,isCommandNode:!1,env:process.env};throw Error(`${_.appName} command not found: ${J}`)}catch(x){let X=x instanceof Error?x.message:String(x);throw Error(`${_.appName} not found in ${Q}: ${X}`)}}))}catch(q){if(!(q instanceof AggregateError)){let $=q instanceof Error?q.message:String(q);console.info(`${A.dim}Could not find installed ${_.appName}: ${$}${A.reset}`)}return}}function C$(_,q=v9.platform()){let $=v9.homedir();if(q==="darwin")return[`/Applications/${_}.app/Contents/Resources/app`,R.join($,`Applications/${_}.app/Contents/Resources/app`)];else if(q==="win32"){let Q=process.env.ProgramFiles||"C:\\Program Files",x=process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)",X=process.env.LOCALAPPDATA||R.join($,"AppData","Local"),V=process.env.APPDATA||R.join($,"AppData","Roaming");return[R.join(Q,_),R.join(x,_),R.join(X,"Programs",_),R.join(V,_)]}else return[`/usr/share/${_.toLowerCase()}`]}async function O$(_){let q=_;while(q!==R.parse(q).root){if(q4(q)!==void 0){let Q=await B$(q);if(Q!==void 0&&j$(Q))return q}q=R.dirname(q)}return}function q4(_){let q=R.join(_,"out","cli.js");if(W9.existsSync(q))return q;return}function j$(_){return _.name===e8}async function B$(_){let q=R.join(_,"package.json");if(!W9.existsSync(q))return;let $=await r8.readFile(q,"utf8"),Q=JSON.parse($);if("name"in Q&&typeof Q.name==="string"&&"version"in Q&&typeof Q.version==="string")return Q;return}import{execFile as T$}from"child_process";import V4 from"process";import{promisify as F$}from"util";import I$ from"https";import $4 from"os";async function Q4(){return new Promise((_,q)=>{try{let $=I$.get(`https://abacus.ai/api/v0/_getCodeLlmVersion?platform=${$4.platform()}-${$4.arch()}&quality=stable`);if($.on("error",(Q)=>{let x=Q instanceof Error?Q.message:String(Q);q(Error(`Failed to find latest version from API: ${x}`))}),$.errored||$.closed){q(Error("Failed to find latest version from API: request failed immediately"));return}$.on("response",(Q)=>{let x="";Q.on("data",(X)=>{x+=X}),Q.on("end",()=>{let{statusCode:X,statusMessage:V}=Q;if(X!==200){q(Error(`API request failed: ${X} ${V}`));return}try{let J=JSON.parse(x);_(J.result)}catch(J){let K=J instanceof Error?J.message:String(J);q(Error(`Failed to parse API response as JSON: ${K}`))}})})}catch($){let Q=$ instanceof Error?$.message:String($);q(Error(`Failed to find latest version from API: ${Q}`))}})}function x4(){return X4(process.env.ABACUSAI_CLI_ADD_INDEPENDENT_FLAG)}function w9(){return A$(process.env.ABACUSAI_CLI_FORCE_NODE_DOWNLOAD)}function L9(){return X4(process.env.ABACUSAI_CLI_AUTO_UPDATE)}function A$(_){return _==="true"||_==="1"}function X4(_){return _!=="false"&&_!=="0"}var R$=F$(T$),S$="@abacus-ai/cli";async function J4(_){try{let q={..._,name:S$},$=await D$(q);if($!==null)await N$(q,$)}catch(q){throw Error(`Failed to auto upgrade ${_.appName}. To update, install the latest version from ${_.homepage}`)}}async function D$(_){try{if(!L9())return null;let q=await Q4();if(q.productVersion!==_.version)return q.productVersion;return null}catch(q){return null}}async function N$(_,q="latest"){if(!L9())return;let $={..._,version:q};try{await f2($)}catch(Q){console.log(`Failed to update package data file: ${Q instanceof Error?Q.message:String(Q)}.`)}try{let{command:Q,args:x}=await h$($);console.log(`${A.dim}Upgrading ${$.appName} to ${$.version} via \`${Q} ${x.join(" ")}\`${A.reset}`);let{stdout:X,stderr:V}=await R$(Q,x);if(console.log(X),V)console.error(V);console.log(`${A.dim}${$.name}@${$.version} installed successfully${A.reset}`)}catch(Q){}}async function h$({name:_,version:q}){try{let $=V4.env.npm_package_json,Q=V4.env.npm_config_user_agent;if(Boolean(Q?.startsWith("npm"))||Boolean($?.endsWith("package.json")))return{command:"npm",args:["install","-g",`${_}@${q}`]};if(Boolean(Q?.startsWith("yarn")))return{command:"yarn",args:["global","add",`${_}@${q}`]};if(Boolean(Q?.startsWith("pnpm")))return{command:"pnpm",args:["install","-g",`${_}@${q}`]};if(Boolean(Q?.startsWith("bun")))return{command:"bun",args:["install","-g",`${_}@${q}`]}}catch($){}return{command:"npm",args:["install","-g",`${_}@${q}`]}}var z9=g$.platform();async function Z4(){let _=await g3();J4(_).catch((Q)=>{console.error(Q)});let q=await _4(_);if(q!==void 0){let Q=await O1(q.directory,_.nodeVersion,w9()),x=q.isCommandNode?Q:q.command;return K4(_,x,q.args,void 0,q.env)}let $=await t8(_,w9());return K4(_,$,[])}function u$(_){if(!x4())return _;return _.includes("--independent")?_:["--independent",..._]}function K4(_,q,$,Q,x){let X=Q??process.argv.slice(2),V=[...$,...u$(X)],J=q;if(z9==="win32"&&q.includes(" "))J=`"${q}"`;let K=y$.spawn(J,V,{stdio:"inherit",shell:z9==="win32",windowsVerbatimArguments:z9==="win32",env:x??process.env});K.on("error",(G)=>{console.error(`Failed to start ${_.appName}:`,G),process.exit(1)}),K.on("exit",(G,Z)=>{if(Z)process.kill(process.pid,Z);else process.exit(G??1)})}Z4().catch((_)=>{console.error(_),process.exit(1)});
4
+ `+X),_.push(x+"m+"+J1.exports.humanize(this.diff)+"\x1B[0m")}else _[0]=e5()+q+" "+_[0]}function e5(){if(e3.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function _q(..._){return process.stderr.write(V1.formatWithOptions(e3.inspectOpts,..._)+`
5
+ `)}function qq(_){if(_)process.env.DEBUG=_;else delete process.env.DEBUG}function $q(){return process.env.DEBUG}function Qq(_){_.inspectOpts={};let q=Object.keys(e3.inspectOpts);for(let $=0;$<q.length;$++)_.inspectOpts[q[$]]=e3.inspectOpts[q[$]]}J1.exports=a2()(e3);var{formatters:r3}=J1.exports;r3.o=function(_){return this.inspectOpts.colors=this.useColors,V1.inspect(_,this.inspectOpts).split(`
6
+ `).map((q)=>q.trim()).join(" ")};r3.O=function(_){return this.inspectOpts.colors=this.useColors,V1.inspect(_,this.inspectOpts)}});var $8=I((oX,r2)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)r2.exports=n3();else r2.exports=q8()});var X8=I((tX,x8)=>{x8.exports=Q8;function Q8(_,q){if(_&&q)return Q8(_)(q);if(typeof _!=="function")throw TypeError("need wrapper function");return Object.keys(_).forEach(function(Q){$[Q]=_[Q]}),$;function $(){var Q=Array(arguments.length);for(var x=0;x<Q.length;x++)Q[x]=arguments[x];var X=_.apply(this,Q),V=Q[Q.length-1];if(typeof X==="function"&&X!==V)Object.keys(V).forEach(function(J){X[J]=V[J]});return X}}});var _9=I((rX,e2)=>{var V8=X8();e2.exports=V8(K1);e2.exports.strict=V8(J8);K1.proto=K1(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return K1(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return J8(this)},configurable:!0})});function K1(_){var q=function(){if(q.called)return q.value;return q.called=!0,q.value=_.apply(this,arguments)};return q.called=!1,q}function J8(_){var q=function(){if(q.called)throw Error(q.onceError);return q.called=!0,q.value=_.apply(this,arguments)},$=_.name||"Function wrapped with `once`";return q.onceError=$+" shouldn't be called more than once",q.called=!1,q}});var G8=I((eX,Z8)=>{var Yq=_9(),Hq=function(){},Wq=global.Bare?queueMicrotask:process.nextTick.bind(process),vq=function(_){return _.setHeader&&typeof _.abort==="function"},wq=function(_){return _.stdio&&Array.isArray(_.stdio)&&_.stdio.length===3},K8=function(_,q,$){if(typeof q==="function")return K8(_,null,q);if(!q)q={};$=Yq($||Hq);var{_writableState:Q,_readableState:x}=_,X=q.readable||q.readable!==!1&&_.readable,V=q.writable||q.writable!==!1&&_.writable,J=!1,K=function(){if(!_.writable)G()},G=function(){if(V=!1,!X)$.call(_)},Z=function(){if(X=!1,!V)$.call(_)},Y=function(M){$.call(_,M?Error("exited with error code: "+M):null)},H=function(M){$.call(_,M)},w=function(){Wq(L)},L=function(){if(J)return;if(X&&!(x&&(x.ended&&!x.destroyed)))return $.call(_,Error("premature close"));if(V&&!(Q&&(Q.ended&&!Q.destroyed)))return $.call(_,Error("premature close"))},z=function(){_.req.on("finish",G)};if(vq(_))if(_.on("complete",G),_.on("abort",w),_.req)z();else _.on("request",z);else if(V&&!Q)_.on("end",K),_.on("close",K);if(wq(_))_.on("exit",Y);if(_.on("end",Z),_.on("finish",G),q.error!==!1)_.on("error",H);return _.on("close",w),function(){if(J=!0,_.removeListener("complete",G),_.removeListener("abort",w),_.removeListener("request",z),_.req)_.req.removeListener("finish",G);_.removeListener("end",K),_.removeListener("close",K),_.removeListener("finish",G),_.removeListener("exit",Y),_.removeListener("end",Z),_.removeListener("error",H),_.removeListener("close",w)}};Z8.exports=K8});var W8=I((_V,H8)=>{var Lq=_9(),zq=G8(),Z1;try{Z1=C("fs")}catch(_){}var X6=function(){},Mq=typeof process>"u"?!1:/^v?\.0/.test(process.version),G1=function(_){return typeof _==="function"},Pq=function(_){if(!Mq)return!1;if(!Z1)return!1;return(_ instanceof(Z1.ReadStream||X6)||_ instanceof(Z1.WriteStream||X6))&&G1(_.close)},Uq=function(_){return _.setHeader&&G1(_.abort)},Oq=function(_,q,$,Q){Q=Lq(Q);var x=!1;_.on("close",function(){x=!0}),zq(_,{readable:q,writable:$},function(V){if(V)return Q(V);x=!0,Q()});var X=!1;return function(V){if(x)return;if(X)return;if(X=!0,Pq(_))return _.close(X6);if(Uq(_))return _.abort();if(G1(_.destroy))return _.destroy();Q(V||Error("stream was destroyed"))}},Y8=function(_){_()},jq=function(_,q){return _.pipe(q)},Cq=function(){var _=Array.prototype.slice.call(arguments),q=G1(_[_.length-1]||X6)&&_.pop()||X6;if(Array.isArray(_[0]))_=_[0];if(_.length<2)throw Error("pump requires two streams per minimum");var $,Q=_.map(function(x,X){var V=X<_.length-1,J=X>0;return Oq(x,V,J,function(K){if(!$)$=K;if(K)Q.forEach(Y8);if(V)return;Q.forEach(Y8),q($)})});return _.reduce(jq)};H8.exports=Cq});var w8=I((qV,v8)=>{var{PassThrough:Bq}=C("stream");v8.exports=(_)=>{_={..._};let{array:q}=_,{encoding:$}=_,Q=$==="buffer",x=!1;if(q)x=!($||Q);else $=$||"utf8";if(Q)$=null;let X=new Bq({objectMode:x});if($)X.setEncoding($);let V=0,J=[];return X.on("data",(K)=>{if(J.push(K),x)V=J.length;else V+=K.length}),X.getBufferedValue=()=>{if(q)return J;return Q?Buffer.concat(J,V):J.join("")},X.getBufferedLength=()=>V,X}});var L8=I(($V,F_)=>{var{constants:Iq}=C("buffer"),Aq=W8(),Tq=w8();class q9 extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}}async function Y1(_,q){if(!_)return Promise.reject(Error("Expected a stream"));q={maxBuffer:1/0,...q};let{maxBuffer:$}=q,Q;return await new Promise((x,X)=>{let V=(J)=>{if(J&&Q.getBufferedLength()<=Iq.MAX_LENGTH)J.bufferedData=Q.getBufferedValue();X(J)};Q=Aq(_,Tq(q),(J)=>{if(J){V(J);return}x()}),Q.on("data",()=>{if(Q.getBufferedLength()>$)V(new q9)})}),Q.getBufferedValue()}F_.exports=Y1;F_.exports.default=Y1;F_.exports.buffer=(_,q)=>Y1(_,{...q,encoding:"buffer"});F_.exports.array=(_,q)=>Y1(_,{...q,array:!0});F_.exports.MaxBufferError=q9});var U8=I((QV,P8)=>{P8.exports=H1;function H1(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}H1.prototype.go=function(_){if(this.pending<this.max)M8(this,_);else this.waiting.push(_)};H1.prototype.wait=function(_){if(this.pending===0)_(this.error);else this.listeners.push(_)};H1.prototype.hold=function(){return z8(this)};function z8(_){_.pending+=1;var q=!1;return $;function $(x){if(q)throw Error("callback called twice");if(q=!0,_.error=_.error||x,_.pending-=1,_.waiting.length>0&&_.pending<_.max)M8(_,_.waiting.shift());else if(_.pending===0){var X=_.listeners;_.listeners=[],X.forEach(Q)}}function Q(x){x(_.error)}}function M8(_,q){q(z8(_))}});var j8=I((Nq)=>{var V6=C("fs"),W1=C("util"),$9=C("stream"),O8=$9.Readable,Q9=$9.Writable,Fq=$9.PassThrough,Rq=U8(),v1=C("events").EventEmitter;Nq.createFromBuffer=Dq;Nq.createFromFd=Sq;Nq.BufferSlicer=O0;Nq.FdSlicer=U0;W1.inherits(U0,v1);function U0(_,q){q=q||{},v1.call(this),this.fd=_,this.pend=new Rq,this.pend.max=1,this.refCount=0,this.autoClose=!!q.autoClose}U0.prototype.read=function(_,q,$,Q,x){var X=this;X.pend.go(function(V){V6.read(X.fd,_,q,$,Q,function(J,K,G){V(),x(J,K,G)})})};U0.prototype.write=function(_,q,$,Q,x){var X=this;X.pend.go(function(V){V6.write(X.fd,_,q,$,Q,function(J,K,G){V(),x(J,K,G)})})};U0.prototype.createReadStream=function(_){return new w1(this,_)};U0.prototype.createWriteStream=function(_){return new L1(this,_)};U0.prototype.ref=function(){this.refCount+=1};U0.prototype.unref=function(){var _=this;if(_.refCount-=1,_.refCount>0)return;if(_.refCount<0)throw Error("invalid unref");if(_.autoClose)V6.close(_.fd,q);function q($){if($)_.emit("error",$);else _.emit("close")}};W1.inherits(w1,O8);function w1(_,q){q=q||{},O8.call(this,q),this.context=_,this.context.ref(),this.start=q.start||0,this.endOffset=q.end,this.pos=this.start,this.destroyed=!1}w1.prototype._read=function(_){var q=this;if(q.destroyed)return;var $=Math.min(q._readableState.highWaterMark,_);if(q.endOffset!=null)$=Math.min($,q.endOffset-q.pos);if($<=0){q.destroyed=!0,q.push(null),q.context.unref();return}q.context.pend.go(function(Q){if(q.destroyed)return Q();var x=Buffer.allocUnsafe($);V6.read(q.context.fd,x,0,$,q.pos,function(X,V){if(X)q.destroy(X);else if(V===0)q.destroyed=!0,q.push(null),q.context.unref();else q.pos+=V,q.push(x.slice(0,V));Q()})})};w1.prototype.destroy=function(_){if(this.destroyed)return;_=_||Error("stream destroyed"),this.destroyed=!0,this.emit("error",_),this.context.unref()};W1.inherits(L1,Q9);function L1(_,q){q=q||{},Q9.call(this,q),this.context=_,this.context.ref(),this.start=q.start||0,this.endOffset=q.end==null?1/0:+q.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}L1.prototype._write=function(_,q,$){var Q=this;if(Q.destroyed)return;if(Q.pos+_.length>Q.endOffset){var x=Error("maximum file length exceeded");x.code="ETOOBIG",Q.destroy(),$(x);return}Q.context.pend.go(function(X){if(Q.destroyed)return X();V6.write(Q.context.fd,_,0,_.length,Q.pos,function(V,J){if(V)Q.destroy(),X(),$(V);else Q.bytesWritten+=J,Q.pos+=J,Q.emit("progress"),X(),$()})})};L1.prototype.destroy=function(){if(this.destroyed)return;this.destroyed=!0,this.context.unref()};W1.inherits(O0,v1);function O0(_,q){v1.call(this),q=q||{},this.refCount=0,this.buffer=_,this.maxChunkSize=q.maxChunkSize||Number.MAX_SAFE_INTEGER}O0.prototype.read=function(_,q,$,Q,x){if(!(0<=q&&q<=_.length))throw RangeError("offset outside buffer: 0 <= "+q+" <= "+_.length);if(Q<0)throw RangeError("position is negative: "+Q);if(q+$>_.length)$=_.length-q;if(Q+$>this.buffer.length)$=this.buffer.length-Q;if($<=0){setImmediate(function(){x(null,0)});return}this.buffer.copy(_,q,Q,Q+$),setImmediate(function(){x(null,$)})};O0.prototype.write=function(_,q,$,Q,x){_.copy(this.buffer,Q,q,q+$),setImmediate(function(){x(null,$,_)})};O0.prototype.createReadStream=function(_){_=_||{};var q=new Fq(_);q.destroyed=!1,q.start=_.start||0,q.endOffset=_.end,q.pos=q.endOffset||this.buffer.length;var $=this.buffer.slice(q.start,q.pos),Q=0;while(!0){var x=Q+this.maxChunkSize;if(x>=$.length){if(Q<$.length)q.write($.slice(Q,$.length));break}q.write($.slice(Q,x)),Q=x}return q.end(),q.destroy=function(){q.destroyed=!0},q};O0.prototype.createWriteStream=function(_){var q=this;_=_||{};var $=new Q9(_);return $.start=_.start||0,$.endOffset=_.end==null?this.buffer.length:+_.end,$.bytesWritten=0,$.pos=$.start,$.destroyed=!1,$._write=function(Q,x,X){if($.destroyed)return;var V=$.pos+Q.length;if(V>$.endOffset){var J=Error("maximum file length exceeded");J.code="ETOOBIG",$.destroyed=!0,X(J);return}Q.copy(q.buffer,$.pos,0,Q.length),$.bytesWritten+=Q.length,$.pos=V,$.emit("progress"),X()},$.destroy=function(){$.destroyed=!0},$};O0.prototype.ref=function(){this.refCount+=1};O0.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw Error("invalid unref")};function Dq(_,q){return new O0(_,q)}function Sq(_,q){return new U0(_,q)}});var I8=I((XV,B8)=>{var E0=C("buffer").Buffer,x9=[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,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];if(typeof Int32Array<"u")x9=new Int32Array(x9);function C8(_){if(E0.isBuffer(_))return _;var q=typeof E0.alloc==="function"&&typeof E0.from==="function";if(typeof _==="number")return q?E0.alloc(_):new E0(_);else if(typeof _==="string")return q?E0.from(_):new E0(_);else throw Error("input must be buffer, number, or string, received "+typeof _)}function kq(_){var q=C8(4);return q.writeInt32BE(_,0),q}function X9(_,q){if(_=C8(_),E0.isBuffer(q))q=q.readUInt32BE(0);var $=~~q^-1;for(var Q=0;Q<_.length;Q++)$=x9[($^_[Q])&255]^$>>>8;return $^-1}function V9(){return kq(X9.apply(null,arguments))}V9.signed=function(){return X9.apply(null,arguments)};V9.unsigned=function(){return X9.apply(null,arguments)>>>0};B8.exports=V9});var y8=I((fq)=>{var J9=C("fs"),mq=C("zlib"),A8=j8(),Eq=I8(),P1=C("util"),U1=C("events").EventEmitter,T8=C("stream").Transform,Z9=C("stream").PassThrough,bq=C("stream").Writable;fq.open=cq;fq.fromFd=F8;fq.fromBuffer=lq;fq.fromRandomAccessReader=G9;fq.dosDateTimeToDate=S8;fq.getFileNameLowLevel=N8;fq.validateFileName=h8;fq.parseExtraFields=g8;fq.ZipFile=H0;fq.Entry=J6;fq.LocalFileHeader=D8;fq.RandomAccessReader=b0;function cq(_,q,$){if(typeof q==="function")$=q,q=null;if(q==null)q={};if(q.autoClose==null)q.autoClose=!0;if(q.lazyEntries==null)q.lazyEntries=!1;if(q.decodeStrings==null)q.decodeStrings=!0;if(q.validateEntrySizes==null)q.validateEntrySizes=!0;if(q.strictFileNames==null)q.strictFileNames=!1;if($==null)$=M1;J9.open(_,"r",function(Q,x){if(Q)return $(Q);F8(x,q,function(X,V){if(X)J9.close(x,M1);$(X,V)})})}function F8(_,q,$){if(typeof q==="function")$=q,q=null;if(q==null)q={};if(q.autoClose==null)q.autoClose=!1;if(q.lazyEntries==null)q.lazyEntries=!1;if(q.decodeStrings==null)q.decodeStrings=!0;if(q.validateEntrySizes==null)q.validateEntrySizes=!0;if(q.strictFileNames==null)q.strictFileNames=!1;if($==null)$=M1;J9.fstat(_,function(Q,x){if(Q)return $(Q);var X=A8.createFromFd(_,{autoClose:!0});G9(X,x.size,q,$)})}function lq(_,q,$){if(typeof q==="function")$=q,q=null;if(q==null)q={};if(q.autoClose=!1,q.lazyEntries==null)q.lazyEntries=!1;if(q.decodeStrings==null)q.decodeStrings=!0;if(q.validateEntrySizes==null)q.validateEntrySizes=!0;if(q.strictFileNames==null)q.strictFileNames=!1;var Q=A8.createFromBuffer(_,{maxChunkSize:65536});G9(Q,_.length,q,$)}function G9(_,q,$,Q){if(typeof $==="function")Q=$,$=null;if($==null)$={};if($.autoClose==null)$.autoClose=!0;if($.lazyEntries==null)$.lazyEntries=!1;if($.decodeStrings==null)$.decodeStrings=!0;var x=!!$.decodeStrings;if($.validateEntrySizes==null)$.validateEntrySizes=!0;if($.strictFileNames==null)$.strictFileNames=!1;if(Q==null)Q=M1;if(typeof q!=="number")throw Error("expected totalSize parameter to be a number");if(q>Number.MAX_SAFE_INTEGER)throw 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.");_.ref();var X=22,V=20,J=65535,K=Math.min(V+X+J,q),G=j0(K),Z=q-G.length;D_(_,G,0,K,Z,function(Y){if(Y)return Q(Y);for(var H=K-X;H>=0;H-=1){if(G.readUInt32LE(H)!==101010256)continue;var w=G.subarray(H),L=w.readUInt16LE(4),z=w.readUInt16LE(10),M=w.readUInt32LE(16),u=w.readUInt16LE(20),f=w.length-X;if(u!==f)return Q(Error("Invalid comment length. Expected: "+f+". Found: "+u+". Are there extra bytes at the end of the file? Or is the end of central dir signature `PK☺☻` in the comment?"));var G6=x?z1(w.subarray(22),!1):w.subarray(22);if(H-V>=0&&G.readUInt32LE(H-V)===117853008){var K_=G.subarray(H-V,H-V+V),B9=R_(K_,8),x0=j0(56);return D_(_,x0,0,x0.length,B9,function(Y6){if(Y6)return Q(Y6);if(x0.readUInt32LE(0)!==101075792)return Q(Error("invalid zip64 end of central directory record signature"));if(L=x0.readUInt32LE(16),L!==0)return Q(Error("multi-disk zip files are not supported: found disk number: "+L));return z=R_(x0,32),M=R_(x0,48),Q(null,new H0(_,M,q,z,G6,$.autoClose,$.lazyEntries,x,$.validateEntrySizes,$.strictFileNames))})}if(L!==0)return Q(Error("multi-disk zip files are not supported: found disk number: "+L));return Q(null,new H0(_,M,q,z,G6,$.autoClose,$.lazyEntries,x,$.validateEntrySizes,$.strictFileNames))}Q(Error("End of central directory record signature not found. Either not a zip file, or file is truncated."))})}P1.inherits(H0,U1);function H0(_,q,$,Q,x,X,V,J,K,G){var Z=this;if(U1.call(Z),Z.reader=_,Z.reader.on("error",function(Y){R8(Z,Y)}),Z.reader.once("close",function(){Z.emit("close")}),Z.readEntryCursor=q,Z.fileSize=$,Z.entryCount=Q,Z.comment=x,Z.entriesRead=0,Z.autoClose=!!X,Z.lazyEntries=!!V,Z.decodeStrings=!!J,Z.validateEntrySizes=!!K,Z.strictFileNames=!!G,Z.isOpen=!0,Z.emittedError=!1,!Z.lazyEntries)Z._readEntry()}H0.prototype.close=function(){if(!this.isOpen)return;this.isOpen=!1,this.reader.unref()};function Y0(_,q){if(_.autoClose)_.close();R8(_,q)}function R8(_,q){if(_.emittedError)return;_.emittedError=!0,_.emit("error",q)}H0.prototype.readEntry=function(){if(!this.lazyEntries)throw Error("readEntry() called without lazyEntries:true");this._readEntry()};H0.prototype._readEntry=function(){var _=this;if(_.entryCount===_.entriesRead){setImmediate(function(){if(_.autoClose)_.close();if(_.emittedError)return;_.emit("end")});return}if(_.emittedError)return;var q=j0(46);D_(_.reader,q,0,q.length,_.readEntryCursor,function($){if($)return Y0(_,$);if(_.emittedError)return;var Q=new J6,x=q.readUInt32LE(0);if(x!==33639248)return Y0(_,Error("invalid central directory file header signature: 0x"+x.toString(16)));if(Q.versionMadeBy=q.readUInt16LE(4),Q.versionNeededToExtract=q.readUInt16LE(6),Q.generalPurposeBitFlag=q.readUInt16LE(8),Q.compressionMethod=q.readUInt16LE(10),Q.lastModFileTime=q.readUInt16LE(12),Q.lastModFileDate=q.readUInt16LE(14),Q.crc32=q.readUInt32LE(16),Q.compressedSize=q.readUInt32LE(20),Q.uncompressedSize=q.readUInt32LE(24),Q.fileNameLength=q.readUInt16LE(28),Q.extraFieldLength=q.readUInt16LE(30),Q.fileCommentLength=q.readUInt16LE(32),Q.internalFileAttributes=q.readUInt16LE(36),Q.externalFileAttributes=q.readUInt32LE(38),Q.relativeOffsetOfLocalHeader=q.readUInt32LE(42),Q.generalPurposeBitFlag&64)return Y0(_,Error("strong encryption is not supported"));_.readEntryCursor+=46,q=j0(Q.fileNameLength+Q.extraFieldLength+Q.fileCommentLength),D_(_.reader,q,0,q.length,_.readEntryCursor,function(X){if(X)return Y0(_,X);if(_.emittedError)return;Q.fileNameRaw=q.subarray(0,Q.fileNameLength);var V=Q.fileNameLength+Q.extraFieldLength;Q.extraFieldRaw=q.subarray(Q.fileNameLength,V),Q.fileCommentRaw=q.subarray(V,V+Q.fileCommentLength);try{Q.extraFields=g8(Q.extraFieldRaw)}catch(z){return Y0(_,z)}if(_.decodeStrings){var J=(Q.generalPurposeBitFlag&2048)!==0;Q.fileComment=z1(Q.fileCommentRaw,J),Q.fileName=N8(Q.generalPurposeBitFlag,Q.fileNameRaw,Q.extraFields,_.strictFileNames);var K=h8(Q.fileName);if(K!=null)return Y0(_,Error(K))}else Q.fileComment=Q.fileCommentRaw,Q.fileName=Q.fileNameRaw;Q.comment=Q.fileComment,_.readEntryCursor+=q.length,_.entriesRead+=1;for(var G=0;G<Q.extraFields.length;G++){var Z=Q.extraFields[G];if(Z.id!==1)continue;var Y=Z.data,H=0;if(Q.uncompressedSize===4294967295){if(H+8>Y.length)return Y0(_,Error("zip64 extended information extra field does not include uncompressed size"));Q.uncompressedSize=R_(Y,H),H+=8}if(Q.compressedSize===4294967295){if(H+8>Y.length)return Y0(_,Error("zip64 extended information extra field does not include compressed size"));Q.compressedSize=R_(Y,H),H+=8}if(Q.relativeOffsetOfLocalHeader===4294967295){if(H+8>Y.length)return Y0(_,Error("zip64 extended information extra field does not include relative header offset"));Q.relativeOffsetOfLocalHeader=R_(Y,H),H+=8}break}if(_.validateEntrySizes&&Q.compressionMethod===0){var w=Q.uncompressedSize;if(Q.isEncrypted())w+=12;if(Q.compressedSize!==w){var L="compressed/uncompressed size mismatch for stored file: "+Q.compressedSize+" != "+Q.uncompressedSize;return Y0(_,Error(L))}}if(_.emit("entry",Q),!_.lazyEntries)_._readEntry()})})};H0.prototype.openReadStream=function(_,q,$){var Q=this,x=0,X=_.compressedSize;if($==null)$=q,q=null;if(q==null)q={};else{if(q.decrypt!=null){if(!_.isEncrypted())throw Error("options.decrypt can only be specified for encrypted entries");if(q.decrypt!==!1)throw Error("invalid options.decrypt value: "+q.decrypt);if(_.isCompressed()){if(q.decompress!==!1)throw Error("entry is encrypted and compressed, and options.decompress !== false")}}if(q.decompress!=null){if(!_.isCompressed())throw Error("options.decompress can only be specified for compressed entries");if(!(q.decompress===!1||q.decompress===!0))throw Error("invalid options.decompress value: "+q.decompress)}if(q.start!=null||q.end!=null){if(_.isCompressed()&&q.decompress!==!1)throw Error("start/end range not allowed for compressed entry without options.decompress === false");if(_.isEncrypted()&&q.decrypt!==!1)throw Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(q.start!=null){if(x=q.start,x<0)throw Error("options.start < 0");if(x>_.compressedSize)throw Error("options.start > entry.compressedSize")}if(q.end!=null){if(X=q.end,X<0)throw Error("options.end < 0");if(X>_.compressedSize)throw Error("options.end > entry.compressedSize");if(X<x)throw Error("options.end < options.start")}}if(!Q.isOpen)return $(Error("closed"));if(_.isEncrypted()){if(q.decrypt!==!1)return $(Error("entry is encrypted, and options.decrypt !== false"))}var V;if(_.compressionMethod===0)V=!1;else if(_.compressionMethod===8)V=q.decompress!=null?q.decompress:!0;else return $(Error("unsupported compression method: "+_.compressionMethod));Q.readLocalFileHeader(_,{minimal:!0},function(J,K){if(J)return $(J);Q.openReadStreamLowLevel(K.fileDataStart,_.compressedSize,x,X,V,_.uncompressedSize,$)})};H0.prototype.openReadStreamLowLevel=function(_,q,$,Q,x,X,V){var J=this,K=_+q,G=J.reader.createReadStream({start:_+$,end:_+Q}),Z=G;if(x){var Y=!1,H=mq.createInflateRaw();if(G.on("error",function(w){setImmediate(function(){if(!Y)H.emit("error",w)})}),G.pipe(H),J.validateEntrySizes)Z=new K6(X),H.on("error",function(w){setImmediate(function(){if(!Y)Z.emit("error",w)})}),H.pipe(Z);else Z=H;K9(Z,function(){if(Y=!0,H!==Z)H.unpipe(Z);G.unpipe(H),G.destroy()})}V(null,Z)};H0.prototype.readLocalFileHeader=function(_,q,$){var Q=this;if($==null)$=q,q=null;if(q==null)q={};Q.reader.ref();var x=j0(30);D_(Q.reader,x,0,x.length,_.relativeOffsetOfLocalHeader,function(X){try{if(X)return $(X);var V=x.readUInt32LE(0);if(V!==67324752)return $(Error("invalid local file header signature: 0x"+V.toString(16)));var J=x.readUInt16LE(26),K=x.readUInt16LE(28),G=_.relativeOffsetOfLocalHeader+30+J+K;if(G+_.compressedSize>Q.fileSize)return $(Error("file data overflows file bounds: "+G+" + "+_.compressedSize+" > "+Q.fileSize));if(q.minimal)return $(null,{fileDataStart:G});var Z=new D8;Z.fileDataStart=G,Z.versionNeededToExtract=x.readUInt16LE(4),Z.generalPurposeBitFlag=x.readUInt16LE(6),Z.compressionMethod=x.readUInt16LE(8),Z.lastModFileTime=x.readUInt16LE(10),Z.lastModFileDate=x.readUInt16LE(12),Z.crc32=x.readUInt32LE(14),Z.compressedSize=x.readUInt32LE(18),Z.uncompressedSize=x.readUInt32LE(22),Z.fileNameLength=J,Z.extraFieldLength=K,x=j0(J+K),Q.reader.ref(),D_(Q.reader,x,0,x.length,_.relativeOffsetOfLocalHeader+30,function(Y){try{if(Y)return $(Y);return Z.fileName=x.subarray(0,J),Z.extraField=x.subarray(J),$(null,Z)}finally{Q.reader.unref()}})}finally{Q.reader.unref()}})};function J6(){}J6.prototype.getLastModDate=function(_){if(_==null)_={};if(!_.forceDosFormat)for(var q=0;q<this.extraFields.length;q++){var $=this.extraFields[q];if($.id===21589){var Q=$.data;if(Q.length<5)continue;var x=Q[0],X=1;if(!(x&X))continue;var V=Q.readInt32LE(1);return new Date(V*1000)}else if($.id===10){var Q=$.data,J=4;while(J<Q.length+4){var K=Q.readUInt16LE(J);J+=2;var G=Q.readUInt16LE(J);if(J+=2,K!==1){J+=G;continue}if(G<8||J+G>Q.length)break;var Z=4294967296*Q.readInt32LE(J+4)+Q.readUInt32LE(J),Y=Z/1e4-11644473600000;return new Date(Y)}}}return S8(this.lastModFileDate,this.lastModFileTime,_.timezone)};J6.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};J6.prototype.isCompressed=function(){return this.compressionMethod===8};function D8(){}function S8(_,q,$){var Q=_&31,x=(_>>5&15)-1,X=(_>>9&127)+1980,V=0,J=(q&31)*2,K=q>>5&63,G=q>>11&31;if($==null||$==="local")return new Date(X,x,Q,G,K,J,V);else if($==="UTC")return new Date(Date.UTC(X,x,Q,G,K,J,V));else throw Error("unrecognized options.timezone: "+options.timezone)}function N8(_,q,$,Q){var x=null;for(var X=0;X<$.length;X++){var V=$[X];if(V.id===28789){if(V.data.length<6)continue;if(V.data.readUInt8(0)!==1)continue;var J=V.data.readUInt32LE(1);if(Eq.unsigned(q)!==J)continue;x=z1(V.data.subarray(5),!0);break}}if(x==null){var K=(_&2048)!==0;x=z1(q,K)}if(!Q)x=x.replace(/\\/g,"/");return x}function h8(_){if(_.indexOf("\\")!==-1)return"invalid characters in fileName: "+_;if(/^[a-zA-Z]:/.test(_)||/^\//.test(_))return"absolute path: "+_;if(_.split("/").indexOf("..")!==-1)return"invalid relative path: "+_;return null}function g8(_){var q=[],$=0;while($<_.length-3){var Q=_.readUInt16LE($+0),x=_.readUInt16LE($+2),X=$+4,V=X+x;if(V>_.length)throw Error("extra field length exceeds extra field buffer size");var J=_.subarray(X,V);q.push({id:Q,data:J}),$=V}return q}function D_(_,q,$,Q,x,X){if(Q===0)return setImmediate(function(){X(null,j0(0))});_.read(q,$,Q,x,function(V,J){if(V)return X(V);if(J<Q)return X(Error("unexpected EOF"));X()})}P1.inherits(K6,T8);function K6(_){T8.call(this),this.actualByteCount=0,this.expectedByteCount=_}K6.prototype._transform=function(_,q,$){if(this.actualByteCount+=_.length,this.actualByteCount>this.expectedByteCount){var Q="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return $(Error(Q))}$(null,_)};K6.prototype._flush=function(_){if(this.actualByteCount<this.expectedByteCount){var q="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return _(Error(q))}_()};P1.inherits(b0,U1);function b0(){U1.call(this),this.refCount=0}b0.prototype.ref=function(){this.refCount+=1};b0.prototype.unref=function(){var _=this;if(_.refCount-=1,_.refCount>0)return;if(_.refCount<0)throw Error("invalid unref");_.close(q);function q($){if($)return _.emit("error",$);_.emit("close")}};b0.prototype.createReadStream=function(_){if(_==null)_={};var{start:q,end:$}=_;if(q===$){var Q=new Z9;return setImmediate(function(){Q.end()}),Q}var x=this._readStreamForRange(q,$),X=!1,V=new O1(this);x.on("error",function(K){setImmediate(function(){if(!X)V.emit("error",K)})}),K9(V,function(){x.unpipe(V),V.unref(),x.destroy()});var J=new K6($-q);return V.on("error",function(K){setImmediate(function(){if(!X)J.emit("error",K)})}),K9(J,function(){X=!0,V.unpipe(J),V.destroy()}),x.pipe(V).pipe(J)};b0.prototype._readStreamForRange=function(_,q){throw Error("not implemented")};b0.prototype.read=function(_,q,$,Q,x){var X=this.createReadStream({start:Q,end:Q+$}),V=new bq,J=0;V._write=function(K,G,Z){K.copy(_,q+J,0,K.length),J+=K.length,Z()},V.on("finish",x),X.on("error",function(K){x(K)}),X.pipe(V)};b0.prototype.close=function(_){setImmediate(_)};P1.inherits(O1,Z9);function O1(_){Z9.call(this),this.context=_,this.context.ref(),this.unreffedYet=!1}O1.prototype._flush=function(_){this.unref(),_()};O1.prototype.unref=function(_){if(this.unreffedYet)return;this.unreffedYet=!0,this.context.unref()};var dq="\x00☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ";function z1(_,q){if(q)return _.toString("utf8");else{var $="";for(var Q=0;Q<_.length;Q++)$+=dq[_[Q]];return $}}function R_(_,q){var $=_.readUInt32LE(q),Q=_.readUInt32LE(q+4);return Q*4294967296+$}var j0;if(typeof Buffer.allocUnsafe==="function")j0=function(_){return Buffer.allocUnsafe(_)};else j0=function(_){return new Buffer(_)};function K9(_,q){if(typeof _.destroy==="function")_._destroy=function($,Q){if(q(),Q!=null)Q($)};else _.destroy=q}function M1(_){if(_)throw _}});var m8=I((JV,k8)=>{var $0=$8()("extract-zip"),{createWriteStream:Q$,promises:S_}=C("fs"),x$=L8(),V_=C("path"),{promisify:Y9}=C("util"),X$=C("stream"),V$=y8(),J$=Y9(V$.open),K$=Y9(X$.pipeline);class u8{constructor(_,q){this.zipPath=_,this.opts=q}async extract(){return $0("opening",this.zipPath,"with opts",this.opts),this.zipfile=await J$(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((_,q)=>{this.zipfile.on("error",($)=>{this.canceled=!0,q($)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{if(!this.canceled)$0("zip extraction complete"),_()}),this.zipfile.on("entry",async($)=>{if(this.canceled){$0("skipping entry",$.fileName,{cancelled:this.canceled});return}if($0("zipfile entry",$.fileName),$.fileName.startsWith("__MACOSX/")){this.zipfile.readEntry();return}let Q=V_.dirname(V_.join(this.opts.dir,$.fileName));try{await S_.mkdir(Q,{recursive:!0});let x=await S_.realpath(Q);if(V_.relative(this.opts.dir,x).split(V_.sep).includes(".."))throw Error(`Out of bound path "${x}" found while processing file ${$.fileName}`);await this.extractEntry($),$0("finished processing",$.fileName),this.zipfile.readEntry()}catch(x){this.canceled=!0,this.zipfile.close(),q(x)}})})}async extractEntry(_){if(this.canceled){$0("skipping entry extraction",_.fileName,{cancelled:this.canceled});return}if(this.opts.onEntry)this.opts.onEntry(_,this.zipfile);let q=V_.join(this.opts.dir,_.fileName),$=_.externalFileAttributes>>16&65535,Q=61440,x=16384,X=40960,V=($&Q)===X,J=($&Q)===x;if(!J&&_.fileName.endsWith("/"))J=!0;let K=_.versionMadeBy>>8;if(!J)J=K===0&&_.externalFileAttributes===16;$0("extracting entry",{filename:_.fileName,isDir:J,isSymlink:V});let G=this.getExtractedMode($,J)&511,Z=J?q:V_.dirname(q),Y={recursive:!0};if(J)Y.mode=G;if($0("mkdir",{dir:Z,...Y}),await S_.mkdir(Z,Y),J)return;$0("opening read stream",q);let H=await Y9(this.zipfile.openReadStream.bind(this.zipfile))(_);if(V){let w=await x$(H);$0("creating symlink",w,q),await S_.symlink(w,q)}else await K$(H,Q$(q,{mode:G}))}getExtractedMode(_,q){let $=_;if($===0)if(q){if(this.opts.defaultDirMode)$=parseInt(this.opts.defaultDirMode,10);if(!$)$=493}else{if(this.opts.defaultFileMode)$=parseInt(this.opts.defaultFileMode,10);if(!$)$=420}return $}}k8.exports=async function(_,q){if($0("creating target directory",q.dir),!V_.isAbsolute(q.dir))throw Error("Target directory is expected to be absolute");return await S_.mkdir(q.dir,{recursive:!0}),q.dir=await S_.realpath(q.dir),new u8(_,q).extract()}});var H9=I((KV,E8)=>{var Z$=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(..._)=>console.error("SEMVER",..._):()=>{};E8.exports=Z$});var W9=I((ZV,b8)=>{var G$=Number.MAX_SAFE_INTEGER||9007199254740991,Y$=["major","premajor","minor","preminor","patch","prepatch","prerelease"];b8.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:G$,RELEASE_TYPES:Y$,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var l8=I((W0,c8)=>{var{MAX_SAFE_COMPONENT_LENGTH:v9,MAX_SAFE_BUILD_LENGTH:H$,MAX_LENGTH:W$}=W9(),v$=H9();W0=c8.exports={};var w$=W0.re=[],L$=W0.safeRe=[],W=W0.src=[],z$=W0.safeSrc=[],v=W0.t={},M$=0,w9="[a-zA-Z0-9-]",P$=[["\\s",1],["\\d",W$],[w9,H$]],U$=(_)=>{for(let[q,$]of P$)_=_.split(`${q}*`).join(`${q}{0,${$}}`).split(`${q}+`).join(`${q}{1,${$}}`);return _},P=(_,q,$)=>{let Q=U$(q),x=M$++;v$(_,x,q),v[_]=x,W[x]=q,z$[x]=Q,w$[x]=new RegExp(q,$?"g":void 0),L$[x]=new RegExp(Q,$?"g":void 0)};P("NUMERICIDENTIFIER","0|[1-9]\\d*");P("NUMERICIDENTIFIERLOOSE","\\d+");P("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${w9}*`);P("MAINVERSION",`(${W[v.NUMERICIDENTIFIER]})\\.(${W[v.NUMERICIDENTIFIER]})\\.(${W[v.NUMERICIDENTIFIER]})`);P("MAINVERSIONLOOSE",`(${W[v.NUMERICIDENTIFIERLOOSE]})\\.(${W[v.NUMERICIDENTIFIERLOOSE]})\\.(${W[v.NUMERICIDENTIFIERLOOSE]})`);P("PRERELEASEIDENTIFIER",`(?:${W[v.NONNUMERICIDENTIFIER]}|${W[v.NUMERICIDENTIFIER]})`);P("PRERELEASEIDENTIFIERLOOSE",`(?:${W[v.NONNUMERICIDENTIFIER]}|${W[v.NUMERICIDENTIFIERLOOSE]})`);P("PRERELEASE",`(?:-(${W[v.PRERELEASEIDENTIFIER]}(?:\\.${W[v.PRERELEASEIDENTIFIER]})*))`);P("PRERELEASELOOSE",`(?:-?(${W[v.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${W[v.PRERELEASEIDENTIFIERLOOSE]})*))`);P("BUILDIDENTIFIER",`${w9}+`);P("BUILD",`(?:\\+(${W[v.BUILDIDENTIFIER]}(?:\\.${W[v.BUILDIDENTIFIER]})*))`);P("FULLPLAIN",`v?${W[v.MAINVERSION]}${W[v.PRERELEASE]}?${W[v.BUILD]}?`);P("FULL",`^${W[v.FULLPLAIN]}$`);P("LOOSEPLAIN",`[v=\\s]*${W[v.MAINVERSIONLOOSE]}${W[v.PRERELEASELOOSE]}?${W[v.BUILD]}?`);P("LOOSE",`^${W[v.LOOSEPLAIN]}$`);P("GTLT","((?:<|>)?=?)");P("XRANGEIDENTIFIERLOOSE",`${W[v.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);P("XRANGEIDENTIFIER",`${W[v.NUMERICIDENTIFIER]}|x|X|\\*`);P("XRANGEPLAIN",`[v=\\s]*(${W[v.XRANGEIDENTIFIER]})(?:\\.(${W[v.XRANGEIDENTIFIER]})(?:\\.(${W[v.XRANGEIDENTIFIER]})(?:${W[v.PRERELEASE]})?${W[v.BUILD]}?)?)?`);P("XRANGEPLAINLOOSE",`[v=\\s]*(${W[v.XRANGEIDENTIFIERLOOSE]})(?:\\.(${W[v.XRANGEIDENTIFIERLOOSE]})(?:\\.(${W[v.XRANGEIDENTIFIERLOOSE]})(?:${W[v.PRERELEASELOOSE]})?${W[v.BUILD]}?)?)?`);P("XRANGE",`^${W[v.GTLT]}\\s*${W[v.XRANGEPLAIN]}$`);P("XRANGELOOSE",`^${W[v.GTLT]}\\s*${W[v.XRANGEPLAINLOOSE]}$`);P("COERCEPLAIN",`(^|[^\\d])(\\d{1,${v9}})(?:\\.(\\d{1,${v9}}))?(?:\\.(\\d{1,${v9}}))?`);P("COERCE",`${W[v.COERCEPLAIN]}(?:$|[^\\d])`);P("COERCEFULL",W[v.COERCEPLAIN]+`(?:${W[v.PRERELEASE]})?(?:${W[v.BUILD]})?(?:$|[^\\d])`);P("COERCERTL",W[v.COERCE],!0);P("COERCERTLFULL",W[v.COERCEFULL],!0);P("LONETILDE","(?:~>?)");P("TILDETRIM",`(\\s*)${W[v.LONETILDE]}\\s+`,!0);W0.tildeTrimReplace="$1~";P("TILDE",`^${W[v.LONETILDE]}${W[v.XRANGEPLAIN]}$`);P("TILDELOOSE",`^${W[v.LONETILDE]}${W[v.XRANGEPLAINLOOSE]}$`);P("LONECARET","(?:\\^)");P("CARETTRIM",`(\\s*)${W[v.LONECARET]}\\s+`,!0);W0.caretTrimReplace="$1^";P("CARET",`^${W[v.LONECARET]}${W[v.XRANGEPLAIN]}$`);P("CARETLOOSE",`^${W[v.LONECARET]}${W[v.XRANGEPLAINLOOSE]}$`);P("COMPARATORLOOSE",`^${W[v.GTLT]}\\s*(${W[v.LOOSEPLAIN]})$|^$`);P("COMPARATOR",`^${W[v.GTLT]}\\s*(${W[v.FULLPLAIN]})$|^$`);P("COMPARATORTRIM",`(\\s*)${W[v.GTLT]}\\s*(${W[v.LOOSEPLAIN]}|${W[v.XRANGEPLAIN]})`,!0);W0.comparatorTrimReplace="$1$2$3";P("HYPHENRANGE",`^\\s*(${W[v.XRANGEPLAIN]})\\s+-\\s+(${W[v.XRANGEPLAIN]})\\s*$`);P("HYPHENRANGELOOSE",`^\\s*(${W[v.XRANGEPLAINLOOSE]})\\s+-\\s+(${W[v.XRANGEPLAINLOOSE]})\\s*$`);P("STAR","(<|>)?=?\\s*\\*");P("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");P("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var f8=I((GV,d8)=>{var O$=Object.freeze({loose:!0}),j$=Object.freeze({}),C$=(_)=>{if(!_)return j$;if(typeof _!=="object")return O$;return _};d8.exports=C$});var n8=I((YV,s8)=>{var i8=/^[0-9]+$/,p8=(_,q)=>{if(typeof _==="number"&&typeof q==="number")return _===q?0:_<q?-1:1;let $=i8.test(_),Q=i8.test(q);if($&&Q)_=+_,q=+q;return _===q?0:$&&!Q?-1:Q&&!$?1:_<q?-1:1},B$=(_,q)=>p8(q,_);s8.exports={compareIdentifiers:p8,rcompareIdentifiers:B$}});var t8=I((HV,o8)=>{var j1=H9(),{MAX_LENGTH:a8,MAX_SAFE_INTEGER:C1}=W9(),{safeRe:B1,t:I1}=l8(),I$=f8(),{compareIdentifiers:L9}=n8();class Q0{constructor(_,q){if(q=I$(q),_ instanceof Q0)if(_.loose===!!q.loose&&_.includePrerelease===!!q.includePrerelease)return _;else _=_.version;else if(typeof _!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof _}".`);if(_.length>a8)throw TypeError(`version is longer than ${a8} characters`);j1("SemVer",_,q),this.options=q,this.loose=!!q.loose,this.includePrerelease=!!q.includePrerelease;let $=_.trim().match(q.loose?B1[I1.LOOSE]:B1[I1.FULL]);if(!$)throw TypeError(`Invalid Version: ${_}`);if(this.raw=_,this.major=+$[1],this.minor=+$[2],this.patch=+$[3],this.major>C1||this.major<0)throw TypeError("Invalid major version");if(this.minor>C1||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>C1||this.patch<0)throw TypeError("Invalid patch version");if(!$[4])this.prerelease=[];else this.prerelease=$[4].split(".").map((Q)=>{if(/^[0-9]+$/.test(Q)){let x=+Q;if(x>=0&&x<C1)return x}return Q});this.build=$[5]?$[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare(_){if(j1("SemVer.compare",this.version,this.options,_),!(_ instanceof Q0)){if(typeof _==="string"&&_===this.version)return 0;_=new Q0(_,this.options)}if(_.version===this.version)return 0;return this.compareMain(_)||this.comparePre(_)}compareMain(_){if(!(_ instanceof Q0))_=new Q0(_,this.options);if(this.major<_.major)return-1;if(this.major>_.major)return 1;if(this.minor<_.minor)return-1;if(this.minor>_.minor)return 1;if(this.patch<_.patch)return-1;if(this.patch>_.patch)return 1;return 0}comparePre(_){if(!(_ instanceof Q0))_=new Q0(_,this.options);if(this.prerelease.length&&!_.prerelease.length)return-1;else if(!this.prerelease.length&&_.prerelease.length)return 1;else if(!this.prerelease.length&&!_.prerelease.length)return 0;let q=0;do{let $=this.prerelease[q],Q=_.prerelease[q];if(j1("prerelease compare",q,$,Q),$===void 0&&Q===void 0)return 0;else if(Q===void 0)return 1;else if($===void 0)return-1;else if($===Q)continue;else return L9($,Q)}while(++q)}compareBuild(_){if(!(_ instanceof Q0))_=new Q0(_,this.options);let q=0;do{let $=this.build[q],Q=_.build[q];if(j1("build compare",q,$,Q),$===void 0&&Q===void 0)return 0;else if(Q===void 0)return 1;else if($===void 0)return-1;else if($===Q)continue;else return L9($,Q)}while(++q)}inc(_,q,$){if(_.startsWith("pre")){if(!q&&$===!1)throw Error("invalid increment argument: identifier is empty");if(q){let Q=`-${q}`.match(this.options.loose?B1[I1.PRERELEASELOOSE]:B1[I1.PRERELEASE]);if(!Q||Q[1]!==q)throw Error(`invalid identifier: ${q}`)}}switch(_){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",q,$);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",q,$);break;case"prepatch":this.prerelease.length=0,this.inc("patch",q,$),this.inc("pre",q,$);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",q,$);this.inc("pre",q,$);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let Q=Number($)?1:0;if(this.prerelease.length===0)this.prerelease=[Q];else{let x=this.prerelease.length;while(--x>=0)if(typeof this.prerelease[x]==="number")this.prerelease[x]++,x=-2;if(x===-1){if(q===this.prerelease.join(".")&&$===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(Q)}}if(q){let x=[q,Q];if($===!1)x=[q];if(L9(this.prerelease[0],q)===0){if(isNaN(this.prerelease[1]))this.prerelease=x}else this.prerelease=x}break}default:throw Error(`invalid increment argument: ${_}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}o8.exports=Q0});var _4=I((WV,e8)=>{var r8=t8(),A$=(_,q,$)=>new r8(_,$).compare(new r8(q,$));e8.exports=A$});var $4=I((vV,q4)=>{var T$=_4(),F$=(_,q,$)=>T$(_,q,$)<0;q4.exports=F$});import r$ from"os";import e$ from"child_process";var V4=H6(F1(),1);import g$ from"path";import y$ from"fs";import J4 from"fs/promises";import T1 from"os";import s4 from"events";import E from"fs";import{EventEmitter as g1}from"node:events";import m9 from"node:stream";import{StringDecoder as k4}from"node:string_decoder";var g9=typeof process==="object"&&process?process:{stdout:null,stderr:null},m4=(_)=>!!_&&typeof _==="object"&&(_ instanceof c||_ instanceof m9||E4(_)||b4(_)),E4=(_)=>!!_&&typeof _==="object"&&_ instanceof g1&&typeof _.pipe==="function"&&_.pipe!==m9.Writable.prototype.pipe,b4=(_)=>!!_&&typeof _==="object"&&_ instanceof g1&&typeof _.write==="function"&&typeof _.end==="function",v0=Symbol("EOF"),w0=Symbol("maybeEmitEnd"),C0=Symbol("emittedEnd"),w6=Symbol("emittingEnd"),h_=Symbol("emittedError"),L6=Symbol("closed"),y9=Symbol("read"),z6=Symbol("flush"),u9=Symbol("flushChunk"),t=Symbol("encoding"),G_=Symbol("decoder"),S=Symbol("flowing"),g_=Symbol("paused"),Y_=Symbol("resume"),N=Symbol("buffer"),m=Symbol("pipes"),h=Symbol("bufferLength"),R1=Symbol("bufferPush"),M6=Symbol("bufferShift"),g=Symbol("objectMode"),F=Symbol("destroyed"),D1=Symbol("error"),S1=Symbol("emitData"),k9=Symbol("emitEnd"),N1=Symbol("emitEnd2"),X0=Symbol("async"),h1=Symbol("abort"),P6=Symbol("aborted"),y_=Symbol("signal"),l0=Symbol("dataListeners"),b=Symbol("discarded"),u_=(_)=>Promise.resolve().then(_),c4=(_)=>_(),l4=(_)=>_==="end"||_==="finish"||_==="prefinish",d4=(_)=>_ instanceof ArrayBuffer||!!_&&typeof _==="object"&&_.constructor&&_.constructor.name==="ArrayBuffer"&&_.byteLength>=0,f4=(_)=>!Buffer.isBuffer(_)&&ArrayBuffer.isView(_);class y1{src;dest;opts;ondrain;constructor(_,q,$){this.src=_,this.dest=q,this.opts=$,this.ondrain=()=>_[Y_](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(_){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class E9 extends y1{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(_,q,$){super(_,q,$);this.proxyErrors=(Q)=>q.emit("error",Q),_.on("error",this.proxyErrors)}}var i4=(_)=>!!_.objectMode,p4=(_)=>!_.objectMode&&!!_.encoding&&_.encoding!=="buffer";class c extends g1{[S]=!1;[g_]=!1;[m]=[];[N]=[];[g];[t];[X0];[G_];[v0]=!1;[C0]=!1;[w6]=!1;[L6]=!1;[h_]=null;[h]=0;[F]=!1;[y_];[P6]=!1;[l0]=0;[b]=!1;writable=!0;readable=!0;constructor(..._){let q=_[0]||{};super();if(q.objectMode&&typeof q.encoding==="string")throw TypeError("Encoding and objectMode may not be used together");if(i4(q))this[g]=!0,this[t]=null;else if(p4(q))this[t]=q.encoding,this[g]=!1;else this[g]=!1,this[t]=null;if(this[X0]=!!q.async,this[G_]=this[t]?new k4(this[t]):null,q&&q.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[N]});if(q&&q.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[m]});let{signal:$}=q;if($)if(this[y_]=$,$.aborted)this[h1]();else $.addEventListener("abort",()=>this[h1]())}get bufferLength(){return this[h]}get encoding(){return this[t]}set encoding(_){throw Error("Encoding must be set at instantiation time")}setEncoding(_){throw Error("Encoding must be set at instantiation time")}get objectMode(){return this[g]}set objectMode(_){throw Error("objectMode must be set at instantiation time")}get["async"](){return this[X0]}set["async"](_){this[X0]=this[X0]||!!_}[h1](){this[P6]=!0,this.emit("abort",this[y_]?.reason),this.destroy(this[y_]?.reason)}get aborted(){return this[P6]}set aborted(_){}write(_,q,$){if(this[P6])return!1;if(this[v0])throw Error("write after end");if(this[F])return this.emit("error",Object.assign(Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof q==="function")$=q,q="utf8";if(!q)q="utf8";let Q=this[X0]?u_:c4;if(!this[g]&&!Buffer.isBuffer(_)){if(f4(_))_=Buffer.from(_.buffer,_.byteOffset,_.byteLength);else if(d4(_))_=Buffer.from(_);else if(typeof _!=="string")throw Error("Non-contiguous data written to non-objectMode stream")}if(this[g]){if(this[S]&&this[h]!==0)this[z6](!0);if(this[S])this.emit("data",_);else this[R1](_);if(this[h]!==0)this.emit("readable");if($)Q($);return this[S]}if(!_.length){if(this[h]!==0)this.emit("readable");if($)Q($);return this[S]}if(typeof _==="string"&&!(q===this[t]&&!this[G_]?.lastNeed))_=Buffer.from(_,q);if(Buffer.isBuffer(_)&&this[t])_=this[G_].write(_);if(this[S]&&this[h]!==0)this[z6](!0);if(this[S])this.emit("data",_);else this[R1](_);if(this[h]!==0)this.emit("readable");if($)Q($);return this[S]}read(_){if(this[F])return null;if(this[b]=!1,this[h]===0||_===0||_&&_>this[h])return this[w0](),null;if(this[g])_=null;if(this[N].length>1&&!this[g])this[N]=[this[t]?this[N].join(""):Buffer.concat(this[N],this[h])];let q=this[y9](_||null,this[N][0]);return this[w0](),q}[y9](_,q){if(this[g])this[M6]();else{let $=q;if(_===$.length||_===null)this[M6]();else if(typeof $==="string")this[N][0]=$.slice(_),q=$.slice(0,_),this[h]-=_;else this[N][0]=$.subarray(_),q=$.subarray(0,_),this[h]-=_}if(this.emit("data",q),!this[N].length&&!this[v0])this.emit("drain");return q}end(_,q,$){if(typeof _==="function")$=_,_=void 0;if(typeof q==="function")$=q,q="utf8";if(_!==void 0)this.write(_,q);if($)this.once("end",$);if(this[v0]=!0,this.writable=!1,this[S]||!this[g_])this[w0]();return this}[Y_](){if(this[F])return;if(!this[l0]&&!this[m].length)this[b]=!0;if(this[g_]=!1,this[S]=!0,this.emit("resume"),this[N].length)this[z6]();else if(this[v0])this[w0]();else this.emit("drain")}resume(){return this[Y_]()}pause(){this[S]=!1,this[g_]=!0,this[b]=!1}get destroyed(){return this[F]}get flowing(){return this[S]}get paused(){return this[g_]}[R1](_){if(this[g])this[h]+=1;else this[h]+=_.length;this[N].push(_)}[M6](){if(this[g])this[h]-=1;else this[h]-=this[N][0].length;return this[N].shift()}[z6](_=!1){do;while(this[u9](this[M6]())&&this[N].length);if(!_&&!this[N].length&&!this[v0])this.emit("drain")}[u9](_){return this.emit("data",_),this[S]}pipe(_,q){if(this[F])return _;this[b]=!1;let $=this[C0];if(q=q||{},_===g9.stdout||_===g9.stderr)q.end=!1;else q.end=q.end!==!1;if(q.proxyErrors=!!q.proxyErrors,$){if(q.end)_.end()}else if(this[m].push(!q.proxyErrors?new y1(this,_,q):new E9(this,_,q)),this[X0])u_(()=>this[Y_]());else this[Y_]();return _}unpipe(_){let q=this[m].find(($)=>$.dest===_);if(q){if(this[m].length===1){if(this[S]&&this[l0]===0)this[S]=!1;this[m]=[]}else this[m].splice(this[m].indexOf(q),1);q.unpipe()}}addListener(_,q){return this.on(_,q)}on(_,q){let $=super.on(_,q);if(_==="data"){if(this[b]=!1,this[l0]++,!this[m].length&&!this[S])this[Y_]()}else if(_==="readable"&&this[h]!==0)super.emit("readable");else if(l4(_)&&this[C0])super.emit(_),this.removeAllListeners(_);else if(_==="error"&&this[h_]){let Q=q;if(this[X0])u_(()=>Q.call(this,this[h_]));else Q.call(this,this[h_])}return $}removeListener(_,q){return this.off(_,q)}off(_,q){let $=super.off(_,q);if(_==="data"){if(this[l0]=this.listeners("data").length,this[l0]===0&&!this[b]&&!this[m].length)this[S]=!1}return $}removeAllListeners(_){let q=super.removeAllListeners(_);if(_==="data"||_===void 0){if(this[l0]=0,!this[b]&&!this[m].length)this[S]=!1}return q}get emittedEnd(){return this[C0]}[w0](){if(!this[w6]&&!this[C0]&&!this[F]&&this[N].length===0&&this[v0]){if(this[w6]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[L6])this.emit("close");this[w6]=!1}}emit(_,...q){let $=q[0];if(_!=="error"&&_!=="close"&&_!==F&&this[F])return!1;else if(_==="data")return!this[g]&&!$?!1:this[X0]?(u_(()=>this[S1]($)),!0):this[S1]($);else if(_==="end")return this[k9]();else if(_==="close"){if(this[L6]=!0,!this[C0]&&!this[F])return!1;let x=super.emit("close");return this.removeAllListeners("close"),x}else if(_==="error"){this[h_]=$,super.emit(D1,$);let x=!this[y_]||this.listeners("error").length?super.emit("error",$):!1;return this[w0](),x}else if(_==="resume"){let x=super.emit("resume");return this[w0](),x}else if(_==="finish"||_==="prefinish"){let x=super.emit(_);return this.removeAllListeners(_),x}let Q=super.emit(_,...q);return this[w0](),Q}[S1](_){for(let $ of this[m])if($.dest.write(_)===!1)this.pause();let q=this[b]?!1:super.emit("data",_);return this[w0](),q}[k9](){if(this[C0])return!1;return this[C0]=!0,this.readable=!1,this[X0]?(u_(()=>this[N1]()),!0):this[N1]()}[N1](){if(this[G_]){let q=this[G_].end();if(q){for(let $ of this[m])$.dest.write(q);if(!this[b])super.emit("data",q)}}for(let q of this[m])q.end();let _=super.emit("end");return this.removeAllListeners("end"),_}async collect(){let _=Object.assign([],{dataLength:0});if(!this[g])_.dataLength=0;let q=this.promise();return this.on("data",($)=>{if(_.push($),!this[g])_.dataLength+=$.length}),await q,_}async concat(){if(this[g])throw Error("cannot concat in objectMode");let _=await this.collect();return this[t]?_.join(""):Buffer.concat(_,_.dataLength)}async promise(){return new Promise((_,q)=>{this.on(F,()=>q(Error("stream destroyed"))),this.on("error",($)=>q($)),this.on("end",()=>_())})}[Symbol.asyncIterator](){this[b]=!1;let _=!1,q=async()=>{return this.pause(),_=!0,{value:void 0,done:!0}};return{next:()=>{if(_)return q();let Q=this.read();if(Q!==null)return Promise.resolve({done:!1,value:Q});if(this[v0])return q();let x,X,V=(Z)=>{this.off("data",J),this.off("end",K),this.off(F,G),q(),X(Z)},J=(Z)=>{this.off("error",V),this.off("end",K),this.off(F,G),this.pause(),x({value:Z,done:!!this[v0]})},K=()=>{this.off("error",V),this.off("data",J),this.off(F,G),q(),x({done:!0,value:void 0})},G=()=>V(Error("stream destroyed"));return new Promise((Z,Y)=>{X=Y,x=Z,this.once(F,G),this.once("error",V),this.once("end",K),this.once("data",J)})},throw:q,return:q,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[b]=!1;let _=!1,q=()=>{return this.pause(),this.off(D1,q),this.off(F,q),this.off("end",q),_=!0,{done:!0,value:void 0}},$=()=>{if(_)return q();let Q=this.read();return Q===null?q():{done:!1,value:Q}};return this.once("end",q),this.once(D1,q),this.once(F,q),{next:$,throw:q,return:q,[Symbol.iterator](){return this}}}destroy(_){if(this[F]){if(_)this.emit("error",_);else this.emit(F);return this}this[F]=!0,this[b]=!0,this[N].length=0,this[h]=0;let q=this;if(typeof q.close==="function"&&!this[L6])q.close();if(_)this.emit("error",_);else this.emit(F);return this}static get isStream(){return m4}}var n4=E.writev,I0=Symbol("_autoClose"),e=Symbol("_close"),k_=Symbol("_ended"),j=Symbol("_fd"),u1=Symbol("_finished"),z0=Symbol("_flags"),k1=Symbol("_flush"),c1=Symbol("_handleChunk"),l1=Symbol("_makeBuf"),E_=Symbol("_mode"),U6=Symbol("_needDrain"),v_=Symbol("_onerror"),w_=Symbol("_onopen"),m1=Symbol("_onread"),H_=Symbol("_onwrite"),A0=Symbol("_open"),r=Symbol("_path"),B0=Symbol("_pos"),V0=Symbol("_queue"),W_=Symbol("_read"),E1=Symbol("_readSize"),L0=Symbol("_reading"),m_=Symbol("_remain"),b1=Symbol("_size"),O6=Symbol("_write"),d0=Symbol("_writing"),j6=Symbol("_defaultFlag"),f0=Symbol("_errored");class L_ extends c{[f0]=!1;[j];[r];[E1];[L0]=!1;[b1];[m_];[I0];constructor(_,q){q=q||{};super(q);if(this.readable=!0,this.writable=!1,typeof _!=="string")throw TypeError("path must be a string");if(this[f0]=!1,this[j]=typeof q.fd==="number"?q.fd:void 0,this[r]=_,this[E1]=q.readSize||16777216,this[L0]=!1,this[b1]=typeof q.size==="number"?q.size:1/0,this[m_]=this[b1],this[I0]=typeof q.autoClose==="boolean"?q.autoClose:!0,typeof this[j]==="number")this[W_]();else this[A0]()}get fd(){return this[j]}get path(){return this[r]}write(){throw TypeError("this is a readable stream")}end(){throw TypeError("this is a readable stream")}[A0](){E.open(this[r],"r",(_,q)=>this[w_](_,q))}[w_](_,q){if(_)this[v_](_);else this[j]=q,this.emit("open",q),this[W_]()}[l1](){return Buffer.allocUnsafe(Math.min(this[E1],this[m_]))}[W_](){if(!this[L0]){this[L0]=!0;let _=this[l1]();if(_.length===0)return process.nextTick(()=>this[m1](null,0,_));E.read(this[j],_,0,_.length,null,(q,$,Q)=>this[m1](q,$,Q))}}[m1](_,q,$){if(this[L0]=!1,_)this[v_](_);else if(this[c1](q,$))this[W_]()}[e](){if(this[I0]&&typeof this[j]==="number"){let _=this[j];this[j]=void 0,E.close(_,(q)=>q?this.emit("error",q):this.emit("close"))}}[v_](_){this[L0]=!0,this[e](),this.emit("error",_)}[c1](_,q){let $=!1;if(this[m_]-=_,_>0)$=super.write(_<q.length?q.subarray(0,_):q);if(_===0||this[m_]<=0)$=!1,this[e](),super.end();return $}emit(_,...q){switch(_){case"prefinish":case"finish":return!1;case"drain":if(typeof this[j]==="number")this[W_]();return!1;case"error":if(this[f0])return!1;return this[f0]=!0,super.emit(_,...q);default:return super.emit(_,...q)}}}class d1 extends L_{[A0](){let _=!0;try{this[w_](null,E.openSync(this[r],"r")),_=!1}finally{if(_)this[e]()}}[W_](){let _=!0;try{if(!this[L0]){this[L0]=!0;do{let q=this[l1](),$=q.length===0?0:E.readSync(this[j],q,0,q.length,null);if(!this[c1]($,q))break}while(!0);this[L0]=!1}_=!1}finally{if(_)this[e]()}}[e](){if(this[I0]&&typeof this[j]==="number"){let _=this[j];this[j]=void 0,E.closeSync(_),this.emit("close")}}}class T0 extends s4{readable=!1;writable=!0;[f0]=!1;[d0]=!1;[k_]=!1;[V0]=[];[U6]=!1;[r];[E_];[I0];[j];[j6];[z0];[u1]=!1;[B0];constructor(_,q){q=q||{};super(q);this[r]=_,this[j]=typeof q.fd==="number"?q.fd:void 0,this[E_]=q.mode===void 0?438:q.mode,this[B0]=typeof q.start==="number"?q.start:void 0,this[I0]=typeof q.autoClose==="boolean"?q.autoClose:!0;let $=this[B0]!==void 0?"r+":"w";if(this[j6]=q.flags===void 0,this[z0]=q.flags===void 0?$:q.flags,this[j]===void 0)this[A0]()}emit(_,...q){if(_==="error"){if(this[f0])return!1;this[f0]=!0}return super.emit(_,...q)}get fd(){return this[j]}get path(){return this[r]}[v_](_){this[e](),this[d0]=!0,this.emit("error",_)}[A0](){E.open(this[r],this[z0],this[E_],(_,q)=>this[w_](_,q))}[w_](_,q){if(this[j6]&&this[z0]==="r+"&&_&&_.code==="ENOENT")this[z0]="w",this[A0]();else if(_)this[v_](_);else if(this[j]=q,this.emit("open",q),!this[d0])this[k1]()}end(_,q){if(_)this.write(_,q);if(this[k_]=!0,!this[d0]&&!this[V0].length&&typeof this[j]==="number")this[H_](null,0);return this}write(_,q){if(typeof _==="string")_=Buffer.from(_,q);if(this[k_])return this.emit("error",Error("write() after end()")),!1;if(this[j]===void 0||this[d0]||this[V0].length)return this[V0].push(_),this[U6]=!0,!1;return this[d0]=!0,this[O6](_),!0}[O6](_){E.write(this[j],_,0,_.length,this[B0],(q,$)=>this[H_](q,$))}[H_](_,q){if(_)this[v_](_);else{if(this[B0]!==void 0&&typeof q==="number")this[B0]+=q;if(this[V0].length)this[k1]();else if(this[d0]=!1,this[k_]&&!this[u1])this[u1]=!0,this[e](),this.emit("finish");else if(this[U6])this[U6]=!1,this.emit("drain")}}[k1](){if(this[V0].length===0){if(this[k_])this[H_](null,0)}else if(this[V0].length===1)this[O6](this[V0].pop());else{let _=this[V0];this[V0]=[],n4(this[j],_,this[B0],(q,$)=>this[H_](q,$))}}[e](){if(this[I0]&&typeof this[j]==="number"){let _=this[j];this[j]=void 0,E.close(_,(q)=>q?this.emit("error",q):this.emit("close"))}}}class b_ extends T0{[A0](){let _;if(this[j6]&&this[z0]==="r+")try{_=E.openSync(this[r],this[z0],this[E_])}catch(q){if(q?.code==="ENOENT")return this[z0]="w",this[A0]();else throw q}else _=E.openSync(this[r],this[z0],this[E_]);this[w_](null,_)}[e](){if(this[I0]&&typeof this[j]==="number"){let _=this[j];this[j]=void 0,E.closeSync(_),this.emit("close")}}[O6](_){let q=!0;try{this[H_](null,E.writeSync(this[j],_,0,_.length,this[B0])),q=!1}finally{if(q)try{this[e]()}catch{}}}}import M3 from"node:path";import P_ from"node:fs";import{dirname as I7,parse as A7}from"path";var a4=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),b9=(_)=>!!_.sync&&!!_.file,c9=(_)=>!_.sync&&!!_.file,l9=(_)=>!!_.sync&&!_.file,d9=(_)=>!_.sync&&!_.file;var f9=(_)=>!!_.file;var o4=(_)=>{let q=a4.get(_);if(q)return q;return _},c_=(_={})=>{if(!_)return{};let q={};for(let[$,Q]of Object.entries(_)){let x=o4($);q[x]=Q}if(q.chmod===void 0&&q.noChmod===!1)q.chmod=!0;return delete q.noChmod,q};var J0=(_,q,$,Q,x)=>{return Object.assign((X=[],V,J)=>{if(Array.isArray(X))V=X,X={};if(typeof V==="function")J=V,V=void 0;if(!V)V=[];else V=Array.from(V);let K=c_(X);if(x?.(K,V),b9(K)){if(typeof J==="function")throw TypeError("callback not supported for sync tar functions");return _(K,V)}else if(c9(K)){let G=q(K,V),Z=J?J:void 0;return Z?G.then(()=>Z(),Z):G}else if(l9(K)){if(typeof J==="function")throw TypeError("callback not supported for sync tar functions");return $(K,V)}else if(d9(K)){if(typeof J==="function")throw TypeError("callback only supported with file option");return Q(K,V)}else throw Error("impossible options??")},{syncFile:_,asyncFile:q,syncNoFile:$,asyncNoFile:Q,validate:x})};import{EventEmitter as O7}from"events";import s1 from"assert";import{Buffer as i0}from"buffer";import*as i9 from"zlib";import t4 from"zlib";var r4=t4.constants||{ZLIB_VERNUM:4736},i=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},r4));var e4=i0.concat,p9=Object.getOwnPropertyDescriptor(i0,"concat"),_7=(_)=>_,i1=p9?.writable===!0||p9?.set!==void 0?(_)=>{i0.concat=_?_7:e4}:(_)=>{},p0=Symbol("_superWrite");class l_ extends Error{code;errno;constructor(_,q){super("zlib: "+_.message,{cause:_});if(this.code=_.code,this.errno=_.errno,!this.code)this.code="ZLIB_ERROR";this.message="zlib: "+_.message,Error.captureStackTrace(this,q??this.constructor)}get name(){return"ZlibError"}}var p1=Symbol("flushFlag");class C6 extends c{#_=!1;#$=!1;#Q;#X;#x;#q;#V;get sawError(){return this.#_}get handle(){return this.#q}get flushFlag(){return this.#Q}constructor(_,q){if(!_||typeof _!=="object")throw TypeError("invalid options for ZlibBase constructor");super(_);if(this.#Q=_.flush??0,this.#X=_.finishFlush??0,this.#x=_.fullFlushFlag??0,typeof i9[q]!=="function")throw TypeError("Compression method not supported: "+q);try{this.#q=new i9[q](_)}catch($){throw new l_($,this.constructor)}this.#V=($)=>{if(this.#_)return;this.#_=!0,this.close(),this.emit("error",$)},this.#q?.on("error",($)=>this.#V(new l_($))),this.once("end",()=>this.close)}close(){if(this.#q)this.#q.close(),this.#q=void 0,this.emit("close")}reset(){if(!this.#_)return s1(this.#q,"zlib binding closed"),this.#q.reset?.()}flush(_){if(this.ended)return;if(typeof _!=="number")_=this.#x;this.write(Object.assign(i0.alloc(0),{[p1]:_}))}end(_,q,$){if(typeof _==="function")$=_,q=void 0,_=void 0;if(typeof q==="function")$=q,q=void 0;if(_)if(q)this.write(_,q);else this.write(_);return this.flush(this.#X),this.#$=!0,super.end($)}get ended(){return this.#$}[p0](_){return super.write(_)}write(_,q,$){if(typeof q==="function")$=q,q="utf8";if(typeof _==="string")_=i0.from(_,q);if(this.#_)return;s1(this.#q,"zlib binding closed");let Q=this.#q._handle,x=Q.close;Q.close=()=>{};let X=this.#q.close;this.#q.close=()=>{},i1(!0);let V=void 0;try{let K=typeof _[p1]==="number"?_[p1]:this.#Q;V=this.#q._processChunk(_,K),i1(!1)}catch(K){i1(!1),this.#V(new l_(K,this.write))}finally{if(this.#q)this.#q._handle=Q,Q.close=x,this.#q.close=X,this.#q.removeAllListeners("error")}if(this.#q)this.#q.on("error",(K)=>this.#V(new l_(K,this.write)));let J;if(V)if(Array.isArray(V)&&V.length>0){let K=V[0];J=this[p0](i0.from(K));for(let G=1;G<V.length;G++)J=this[p0](V[G])}else J=this[p0](i0.from(V));if($)$();return J}}class n1 extends C6{#_;#$;constructor(_,q){_=_||{},_.flush=_.flush||i.Z_NO_FLUSH,_.finishFlush=_.finishFlush||i.Z_FINISH,_.fullFlushFlag=i.Z_FULL_FLUSH;super(_,q);this.#_=_.level,this.#$=_.strategy}params(_,q){if(this.sawError)return;if(!this.handle)throw Error("cannot switch params when binding is closed");if(!this.handle.params)throw Error("not supported in this implementation");if(this.#_!==_||this.#$!==q){this.flush(i.Z_SYNC_FLUSH),s1(this.handle,"zlib binding closed");let $=this.handle.flush;this.handle.flush=(Q,x)=>{if(typeof Q==="function")x=Q,Q=this.flushFlag;this.flush(Q),x?.()};try{this.handle.params(_,q)}finally{this.handle.flush=$}if(this.handle)this.#_=_,this.#$=q}}}class a1 extends n1{#_;constructor(_){super(_,"Gzip");this.#_=_&&!!_.portable}[p0](_){if(!this.#_)return super[p0](_);return this.#_=!1,_[9]=255,super[p0](_)}}class o1 extends n1{constructor(_){super(_,"Unzip")}}class t1 extends C6{constructor(_,q){_=_||{},_.flush=_.flush||i.BROTLI_OPERATION_PROCESS,_.finishFlush=_.finishFlush||i.BROTLI_OPERATION_FINISH,_.fullFlushFlag=i.BROTLI_OPERATION_FLUSH;super(_,q)}}class r1 extends t1{constructor(_){super(_,"BrotliCompress")}}class e1 extends t1{constructor(_){super(_,"BrotliDecompress")}}class _2 extends C6{constructor(_,q){_=_||{},_.flush=_.flush||i.ZSTD_e_continue,_.finishFlush=_.finishFlush||i.ZSTD_e_end,_.fullFlushFlag=i.ZSTD_e_flush;super(_,q)}}class q2 extends _2{constructor(_){super(_,"ZstdCompress")}}class $2 extends _2{constructor(_){super(_,"ZstdDecompress")}}import{posix as z_}from"node:path";var s9=(_,q)=>{if(!Number.isSafeInteger(_))throw Error("cannot encode number outside of javascript safe integer range");else if(_<0)Q7(_,q);else $7(_,q);return q},$7=(_,q)=>{q[0]=128;for(var $=q.length;$>1;$--)q[$-1]=_&255,_=Math.floor(_/256)},Q7=(_,q)=>{q[0]=255;var $=!1;_=_*-1;for(var Q=q.length;Q>1;Q--){var x=_&255;if(_=Math.floor(_/256),$)q[Q-1]=a9(x);else if(x===0)q[Q-1]=0;else $=!0,q[Q-1]=o9(x)}},n9=(_)=>{let q=_[0],$=q===128?X7(_.subarray(1,_.length)):q===255?x7(_):null;if($===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger($))throw Error("parsed number outside of javascript safe integer range");return $},x7=(_)=>{var q=_.length,$=0,Q=!1;for(var x=q-1;x>-1;x--){var X=Number(_[x]),V;if(Q)V=a9(X);else if(X===0)V=X;else Q=!0,V=o9(X);if(V!==0)$-=V*Math.pow(256,q-x-1)}return $},X7=(_)=>{var q=_.length,$=0;for(var Q=q-1;Q>-1;Q--){var x=Number(_[Q]);if(x!==0)$+=x*Math.pow(256,q-Q-1)}return $},a9=(_)=>(255^_)&255,o9=(_)=>(255^_)+1&255;var B6=(_)=>I6.has(_);var I6=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),t9=new Map(Array.from(I6).map((_)=>[_[1],_[0]]));class p{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#_="Unsupported";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(_,q=0,$,Q){if(Buffer.isBuffer(_))this.decode(_,q||0,$,Q);else if(_)this.#$(_)}decode(_,q,$,Q){if(!q)q=0;if(!_||!(_.length>=q+512))throw Error("need 512 bytes for header");if(this.path=$?.path??s0(_,q,100),this.mode=$?.mode??Q?.mode??F0(_,q+100,8),this.uid=$?.uid??Q?.uid??F0(_,q+108,8),this.gid=$?.gid??Q?.gid??F0(_,q+116,8),this.size=$?.size??Q?.size??F0(_,q+124,12),this.mtime=$?.mtime??Q?.mtime??Q2(_,q+136,12),this.cksum=F0(_,q+148,12),Q)this.#$(Q,!0);if($)this.#$($);let x=s0(_,q+156,1);if(B6(x))this.#_=x||"0";if(this.#_==="0"&&this.path.slice(-1)==="/")this.#_="5";if(this.#_==="5")this.size=0;if(this.linkpath=s0(_,q+157,100),_.subarray(q+257,q+265).toString()==="ustar\x0000")if(this.uname=$?.uname??Q?.uname??s0(_,q+265,32),this.gname=$?.gname??Q?.gname??s0(_,q+297,32),this.devmaj=$?.devmaj??Q?.devmaj??F0(_,q+329,8)??0,this.devmin=$?.devmin??Q?.devmin??F0(_,q+337,8)??0,_[q+475]!==0){let V=s0(_,q+345,155);this.path=V+"/"+this.path}else{let V=s0(_,q+345,130);if(V)this.path=V+"/"+this.path;this.atime=$?.atime??Q?.atime??Q2(_,q+476,12),this.ctime=$?.ctime??Q?.ctime??Q2(_,q+488,12)}let X=256;for(let V=q;V<q+148;V++)X+=_[V];for(let V=q+156;V<q+512;V++)X+=_[V];if(this.cksumValid=X===this.cksum,this.cksum===void 0&&X===256)this.nullBlock=!0}#$(_,q=!1){Object.assign(this,Object.fromEntries(Object.entries(_).filter(([$,Q])=>{return!(Q===null||Q===void 0||$==="path"&&q||$==="linkpath"&&q||$==="global")})))}encode(_,q=0){if(!_)_=this.block=Buffer.alloc(512);if(this.#_==="Unsupported")this.#_="0";if(!(_.length>=q+512))throw Error("need 512 bytes for header");let $=this.ctime||this.atime?130:155,Q=J7(this.path||"",$),x=Q[0],X=Q[1];if(this.needPax=!!Q[2],this.needPax=n0(_,q,100,x)||this.needPax,this.needPax=R0(_,q+100,8,this.mode)||this.needPax,this.needPax=R0(_,q+108,8,this.uid)||this.needPax,this.needPax=R0(_,q+116,8,this.gid)||this.needPax,this.needPax=R0(_,q+124,12,this.size)||this.needPax,this.needPax=x2(_,q+136,12,this.mtime)||this.needPax,_[q+156]=this.#_.charCodeAt(0),this.needPax=n0(_,q+157,100,this.linkpath)||this.needPax,_.write("ustar\x0000",q+257,8),this.needPax=n0(_,q+265,32,this.uname)||this.needPax,this.needPax=n0(_,q+297,32,this.gname)||this.needPax,this.needPax=R0(_,q+329,8,this.devmaj)||this.needPax,this.needPax=R0(_,q+337,8,this.devmin)||this.needPax,this.needPax=n0(_,q+345,$,X)||this.needPax,_[q+475]!==0)this.needPax=n0(_,q+345,155,X)||this.needPax;else this.needPax=n0(_,q+345,130,X)||this.needPax,this.needPax=x2(_,q+476,12,this.atime)||this.needPax,this.needPax=x2(_,q+488,12,this.ctime)||this.needPax;let V=256;for(let J=q;J<q+148;J++)V+=_[J];for(let J=q+156;J<q+512;J++)V+=_[J];return this.cksum=V,R0(_,q+148,8,this.cksum),this.cksumValid=!0,this.needPax}get type(){return this.#_==="Unsupported"?this.#_:I6.get(this.#_)}get typeKey(){return this.#_}set type(_){let q=String(t9.get(_));if(B6(q)||q==="Unsupported")this.#_=q;else if(B6(_))this.#_=_;else throw TypeError("invalid entry type: "+_)}}var J7=(_,q)=>{let Q=_,x="",X=void 0,V=z_.parse(_).root||".";if(Buffer.byteLength(Q)<100)X=[Q,x,!1];else{x=z_.dirname(Q),Q=z_.basename(Q);do if(Buffer.byteLength(Q)<=100&&Buffer.byteLength(x)<=q)X=[Q,x,!1];else if(Buffer.byteLength(Q)>100&&Buffer.byteLength(x)<=q)X=[Q.slice(0,99),x,!0];else Q=z_.join(z_.basename(x),Q),x=z_.dirname(x);while(x!==V&&X===void 0);if(!X)X=[_.slice(0,99),"",!0]}return X},s0=(_,q,$)=>_.subarray(q,q+$).toString("utf8").replace(/\0.*/,""),Q2=(_,q,$)=>K7(F0(_,q,$)),K7=(_)=>_===void 0?void 0:new Date(_*1000),F0=(_,q,$)=>Number(_[q])&128?n9(_.subarray(q,q+$)):G7(_,q,$),Z7=(_)=>isNaN(_)?void 0:_,G7=(_,q,$)=>Z7(parseInt(_.subarray(q,q+$).toString("utf8").replace(/\0.*$/,"").trim(),8)),Y7={12:8589934591,8:2097151},R0=(_,q,$,Q)=>Q===void 0?!1:Q>Y7[$]||Q<0?(s9(Q,_.subarray(q,q+$)),!0):(H7(_,q,$,Q),!1),H7=(_,q,$,Q)=>_.write(W7(Q,$),q,$,"ascii"),W7=(_,q)=>v7(Math.floor(_).toString(8),q),v7=(_,q)=>(_.length===q-1?_:Array(q-_.length-1).join("0")+_+" ")+"\x00",x2=(_,q,$,Q)=>Q===void 0?!1:R0(_,q,$,Q.getTime()/1000),w7=Array(156).join("\x00"),n0=(_,q,$,Q)=>Q===void 0?!1:(_.write(Q+w7,q,$,"utf8"),Q.length!==Buffer.byteLength(Q)||Q.length>$);import{basename as L7}from"node:path";class D0{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(_,q=!1){this.atime=_.atime,this.charset=_.charset,this.comment=_.comment,this.ctime=_.ctime,this.dev=_.dev,this.gid=_.gid,this.global=q,this.gname=_.gname,this.ino=_.ino,this.linkpath=_.linkpath,this.mtime=_.mtime,this.nlink=_.nlink,this.path=_.path,this.size=_.size,this.uid=_.uid,this.uname=_.uname}encode(){let _=this.encodeBody();if(_==="")return Buffer.allocUnsafe(0);let q=Buffer.byteLength(_),$=512*Math.ceil(1+q/512),Q=Buffer.allocUnsafe($);for(let x=0;x<512;x++)Q[x]=0;new p({path:("PaxHeader/"+L7(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:q,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(Q),Q.write(_,512,q,"utf8");for(let x=q+512;x<Q.length;x++)Q[x]=0;return Q}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(_){if(this[_]===void 0)return"";let q=this[_],$=q instanceof Date?q.getTime()/1000:q,Q=" "+(_==="dev"||_==="ino"||_==="nlink"?"SCHILY.":"")+_+"="+$+`
7
+ `,x=Buffer.byteLength(Q),X=Math.floor(Math.log(x)/Math.log(10))+1;if(x+X>=Math.pow(10,X))X+=1;return X+x+Q}static parse(_,q,$=!1){return new D0(z7(M7(_),q),$)}}var z7=(_,q)=>q?Object.assign({},q,_):_,M7=(_)=>_.replace(/\n$/,"").split(`
8
+ `).reduce(P7,Object.create(null)),P7=(_,q)=>{let $=parseInt(q,10);if($!==Buffer.byteLength(q)+1)return _;q=q.slice(($+" ").length);let Q=q.split("="),x=Q.shift();if(!x)return _;let X=x.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),V=Q.join("=");return _[X]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(X)?new Date(Number(V)*1000):/^[0-9]+$/.test(V)?+V:V,_};var U7=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,U=U7!=="win32"?(_)=>_:(_)=>_&&_.replace(/\\/g,"/");class d_ extends c{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(_,q,$){super({});switch(this.pause(),this.extended=q,this.globalExtended=$,this.header=_,this.remain=_.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=_.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!_.path)throw Error("no path provided for tar.ReadEntry");if(this.path=U(_.path),this.mode=_.mode,this.mode)this.mode=this.mode&4095;if(this.uid=_.uid,this.gid=_.gid,this.uname=_.uname,this.gname=_.gname,this.size=this.remain,this.mtime=_.mtime,this.atime=_.atime,this.ctime=_.ctime,this.linkpath=_.linkpath?U(_.linkpath):void 0,this.uname=_.uname,this.gname=_.gname,q)this.#_(q);if($)this.#_($,!0)}write(_){let q=_.length;if(q>this.blockRemain)throw Error("writing more to entry than is appropriate");let $=this.remain,Q=this.blockRemain;if(this.remain=Math.max(0,$-q),this.blockRemain=Math.max(0,Q-q),this.ignore)return!0;if($>=q)return super.write(_);return super.write(_.subarray(0,$))}#_(_,q=!1){if(_.path)_.path=U(_.path);if(_.linkpath)_.linkpath=U(_.linkpath);Object.assign(this,Object.fromEntries(Object.entries(_).filter(([$,Q])=>{return!(Q===null||Q===void 0||$==="path"&&q)})))}}var a0=(_,q,$,Q={})=>{if(_.file)Q.file=_.file;if(_.cwd)Q.cwd=_.cwd;if(Q.code=$ instanceof Error&&$.code||q,Q.tarCode=q,!_.strict&&Q.recoverable!==!1){if($ instanceof Error)Q=Object.assign($,Q),$=$.message;_.emit("warn",q,$,Q)}else if($ instanceof Error)_.emit("error",Object.assign($,Q));else _.emit("error",Object.assign(Error(`${q}: ${$}`),Q))};var j7=1048576,Z2=Buffer.from([31,139]),G2=Buffer.from([40,181,47,253]),C7=Math.max(Z2.length,G2.length),s=Symbol("state"),o0=Symbol("writeEntry"),M0=Symbol("readEntry"),X2=Symbol("nextEntry"),e9=Symbol("processEntry"),K0=Symbol("extendedHeader"),f_=Symbol("globalExtendedHeader"),S0=Symbol("meta"),_3=Symbol("emitMeta"),B=Symbol("buffer"),P0=Symbol("queue"),N0=Symbol("ended"),V2=Symbol("emittedEnd"),t0=Symbol("emit"),R=Symbol("unzip"),A6=Symbol("consumeChunk"),T6=Symbol("consumeChunkSub"),J2=Symbol("consumeBody"),q3=Symbol("consumeMeta"),$3=Symbol("consumeHeader"),i_=Symbol("consuming"),K2=Symbol("bufferConcat"),F6=Symbol("maybeEnd"),M_=Symbol("writing"),h0=Symbol("aborted"),R6=Symbol("onDone"),r0=Symbol("sawValidEntry"),D6=Symbol("sawNullBlock"),S6=Symbol("sawEOF"),Q3=Symbol("closeStream"),B7=()=>!0;class g0 extends O7{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[P0]=[];[B];[M0];[o0];[s]="begin";[S0]="";[K0];[f_];[N0]=!1;[R];[h0]=!1;[r0];[D6]=!1;[S6]=!1;[M_]=!1;[i_]=!1;[V2]=!1;constructor(_={}){super();if(this.file=_.file||"",this.on(R6,()=>{if(this[s]==="begin"||this[r0]===!1)this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),_.ondone)this.on(R6,_.ondone);else this.on(R6,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")});this.strict=!!_.strict,this.maxMetaEntrySize=_.maxMetaEntrySize||j7,this.filter=typeof _.filter==="function"?_.filter:B7;let q=_.file&&(_.file.endsWith(".tar.br")||_.file.endsWith(".tbr"));this.brotli=!(_.gzip||_.zstd)&&_.brotli!==void 0?_.brotli:q?void 0:!1;let $=_.file&&(_.file.endsWith(".tar.zst")||_.file.endsWith(".tzst"));if(this.zstd=!(_.gzip||_.brotli)&&_.zstd!==void 0?_.zstd:$?!0:void 0,this.on("end",()=>this[Q3]()),typeof _.onwarn==="function")this.on("warn",_.onwarn);if(typeof _.onReadEntry==="function")this.on("entry",_.onReadEntry)}warn(_,q,$={}){a0(this,_,q,$)}[$3](_,q){if(this[r0]===void 0)this[r0]=!1;let $;try{$=new p(_,q,this[K0],this[f_])}catch(Q){return this.warn("TAR_ENTRY_INVALID",Q)}if($.nullBlock)if(this[D6]){if(this[S6]=!0,this[s]==="begin")this[s]="header";this[t0]("eof")}else this[D6]=!0,this[t0]("nullBlock");else if(this[D6]=!1,!$.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:$});else if(!$.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:$});else{let Q=$.type;if(/^(Symbolic)?Link$/.test(Q)&&!$.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:$});else if(!/^(Symbolic)?Link$/.test(Q)&&!/^(Global)?ExtendedHeader$/.test(Q)&&$.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:$});else{let x=this[o0]=new d_($,this[K0],this[f_]);if(!this[r0])if(x.remain){let X=()=>{if(!x.invalid)this[r0]=!0};x.on("end",X)}else this[r0]=!0;if(x.meta){if(x.size>this.maxMetaEntrySize)x.ignore=!0,this[t0]("ignoredEntry",x),this[s]="ignore",x.resume();else if(x.size>0)this[S0]="",x.on("data",(X)=>this[S0]+=X),this[s]="meta"}else if(this[K0]=void 0,x.ignore=x.ignore||!this.filter(x.path,x),x.ignore)this[t0]("ignoredEntry",x),this[s]=x.remain?"ignore":"header",x.resume();else{if(x.remain)this[s]="body";else this[s]="header",x.end();if(!this[M0])this[P0].push(x),this[X2]();else this[P0].push(x)}}}}[Q3](){queueMicrotask(()=>this.emit("close"))}[e9](_){let q=!0;if(!_)this[M0]=void 0,q=!1;else if(Array.isArray(_)){let[$,...Q]=_;this.emit($,...Q)}else if(this[M0]=_,this.emit("entry",_),!_.emittedEnd)_.on("end",()=>this[X2]()),q=!1;return q}[X2](){do;while(this[e9](this[P0].shift()));if(!this[P0].length){let _=this[M0];if(!_||_.flowing||_.size===_.remain){if(!this[M_])this.emit("drain")}else _.once("drain",()=>this.emit("drain"))}}[J2](_,q){let $=this[o0];if(!$)throw Error("attempt to consume body without entry??");let Q=$.blockRemain??0,x=Q>=_.length&&q===0?_:_.subarray(q,q+Q);if($.write(x),!$.blockRemain)this[s]="header",this[o0]=void 0,$.end();return x.length}[q3](_,q){let $=this[o0],Q=this[J2](_,q);if(!this[o0]&&$)this[_3]($);return Q}[t0](_,q,$){if(!this[P0].length&&!this[M0])this.emit(_,q,$);else this[P0].push([_,q,$])}[_3](_){switch(this[t0]("meta",this[S0]),_.type){case"ExtendedHeader":case"OldExtendedHeader":this[K0]=D0.parse(this[S0],this[K0],!1);break;case"GlobalExtendedHeader":this[f_]=D0.parse(this[S0],this[f_],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let q=this[K0]??Object.create(null);this[K0]=q,q.path=this[S0].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let q=this[K0]||Object.create(null);this[K0]=q,q.linkpath=this[S0].replace(/\0.*/,"");break}default:throw Error("unknown meta: "+_.type)}}abort(_){this[h0]=!0,this.emit("abort",_),this.warn("TAR_ABORT",_,{recoverable:!1})}write(_,q,$){if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,typeof q==="string"?q:"utf8");if(this[h0])return $?.(),!1;if((this[R]===void 0||this.brotli===void 0&&this[R]===!1)&&_){if(this[B])_=Buffer.concat([this[B],_]),this[B]=void 0;if(_.length<C7)return this[B]=_,$?.(),!0;for(let J=0;this[R]===void 0&&J<Z2.length;J++)if(_[J]!==Z2[J])this[R]=!1;let X=!1;if(this[R]===!1&&this.zstd!==!1){X=!0;for(let J=0;J<G2.length;J++)if(_[J]!==G2[J]){X=!1;break}}let V=this.brotli===void 0&&!X;if(this[R]===!1&&V)if(_.length<512)if(this[N0])this.brotli=!0;else return this[B]=_,$?.(),!0;else try{new p(_.subarray(0,512)),this.brotli=!1}catch(J){this.brotli=!0}if(this[R]===void 0||this[R]===!1&&(this.brotli||X)){let J=this[N0];this[N0]=!1,this[R]=this[R]===void 0?new o1({}):X?new $2({}):new e1({}),this[R].on("data",(G)=>this[A6](G)),this[R].on("error",(G)=>this.abort(G)),this[R].on("end",()=>{this[N0]=!0,this[A6]()}),this[M_]=!0;let K=!!this[R][J?"end":"write"](_);return this[M_]=!1,$?.(),K}}if(this[M_]=!0,this[R])this[R].write(_);else this[A6](_);this[M_]=!1;let x=this[P0].length?!1:this[M0]?this[M0].flowing:!0;if(!x&&!this[P0].length)this[M0]?.once("drain",()=>this.emit("drain"));return $?.(),x}[K2](_){if(_&&!this[h0])this[B]=this[B]?Buffer.concat([this[B],_]):_}[F6](){if(this[N0]&&!this[V2]&&!this[h0]&&!this[i_]){this[V2]=!0;let _=this[o0];if(_&&_.blockRemain){let q=this[B]?this[B].length:0;if(this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${_.blockRemain} more bytes, only ${q} available)`,{entry:_}),this[B])_.write(this[B]);_.end()}this[t0](R6)}}[A6](_){if(this[i_]&&_)this[K2](_);else if(!_&&!this[B])this[F6]();else if(_){if(this[i_]=!0,this[B]){this[K2](_);let q=this[B];this[B]=void 0,this[T6](q)}else this[T6](_);while(this[B]&&this[B]?.length>=512&&!this[h0]&&!this[S6]){let q=this[B];this[B]=void 0,this[T6](q)}this[i_]=!1}if(!this[B]||this[N0])this[F6]()}[T6](_){let q=0,$=_.length;while(q+512<=$&&!this[h0]&&!this[S6])switch(this[s]){case"begin":case"header":this[$3](_,q),q+=512;break;case"ignore":case"body":q+=this[J2](_,q);break;case"meta":q+=this[q3](_,q);break;default:throw Error("invalid state: "+this[s])}if(q<$)if(this[B])this[B]=Buffer.concat([_.subarray(q),this[B]]);else this[B]=_.subarray(q)}end(_,q,$){if(typeof _==="function")$=_,q=void 0,_=void 0;if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,q);if($)this.once("finish",$);if(!this[h0])if(this[R]){if(_)this[R].write(_);this[R].end()}else{if(this[N0]=!0,this.brotli===void 0||this.zstd===void 0)_=_||Buffer.alloc(0);if(_)this.write(_);this[F6]()}return this}}var y0=(_)=>{let q=_.length-1,$=-1;while(q>-1&&_.charAt(q)==="/")$=q,q--;return $===-1?_:_.slice(0,$)};var T7=(_)=>{let q=_.onReadEntry;_.onReadEntry=q?($)=>{q($),$.resume()}:($)=>$.resume()},Y2=(_,q)=>{let $=new Map(q.map((X)=>[y0(X),!0])),Q=_.filter,x=(X,V="")=>{let J=V||A7(X).root||".",K;if(X===J)K=!1;else{let G=$.get(X);if(G!==void 0)K=G;else K=x(I7(X),J)}return $.set(X,K),K};_.filter=Q?(X,V)=>Q(X,V)&&x(y0(X)):(X)=>x(y0(X))},F7=(_)=>{let q=new g0(_),$=_.file,Q;try{Q=P_.openSync($,"r");let x=P_.fstatSync(Q),X=_.maxReadSize||16777216;if(x.size<X){let V=Buffer.allocUnsafe(x.size),J=P_.readSync(Q,V,0,x.size,0);q.end(J===V.byteLength?V:V.subarray(0,J))}else{let V=0,J=Buffer.allocUnsafe(X);while(V<x.size){let K=P_.readSync(Q,J,0,X,V);if(K===0)break;V+=K,q.write(J.subarray(0,K))}q.end()}}finally{if(typeof Q==="number")try{P_.closeSync(Q)}catch(x){}}},R7=(_,q)=>{let $=new g0(_),Q=_.maxReadSize||16777216,x=_.file;return new Promise((V,J)=>{$.on("error",J),$.on("end",V),P_.stat(x,(K,G)=>{if(K)J(K);else{let Z=new L_(x,{readSize:Q,size:G.size});Z.on("error",J),Z.pipe($)}})})},e0=J0(F7,R7,(_)=>new g0(_),(_)=>new g0(_),(_,q)=>{if(q?.length)Y2(_,q);if(!_.noResume)T7(_)});import d6 from"fs";import Z0 from"fs";import J3 from"path";var H2=(_,q,$)=>{if(_&=4095,$)_=(_|384)&-19;if(q){if(_&256)_|=64;if(_&32)_|=8;if(_&4)_|=1}return _};import{win32 as D7}from"node:path";var{isAbsolute:S7,parse:x3}=D7,p_=(_)=>{let q="",$=x3(_);while(S7(_)||$.root){let Q=_.charAt(0)==="/"&&_.slice(0,4)!=="//?/"?"/":$.root;_=_.slice(Q.length),q+=Q,$=x3(_)}return[q,_]};var N6=["|","<",">","?",":"],W2=N6.map((_)=>String.fromCharCode(61440+_.charCodeAt(0))),N7=new Map(N6.map((_,q)=>[_,W2[q]])),h7=new Map(W2.map((_,q)=>[_,N6[q]])),v2=(_)=>N6.reduce((q,$)=>q.split($).join(N7.get($)),_),X3=(_)=>W2.reduce((q,$)=>q.split($).join(h7.get($)),_);var H3=(_,q)=>{if(!q)return U(_);return _=U(_).replace(/^\.(\/|$)/,""),y0(q)+"/"+_},g7=16777216,K3=Symbol("process"),Z3=Symbol("file"),G3=Symbol("directory"),L2=Symbol("symlink"),Y3=Symbol("hardlink"),s_=Symbol("header"),h6=Symbol("read"),z2=Symbol("lstat"),g6=Symbol("onlstat"),M2=Symbol("onread"),P2=Symbol("onreadlink"),U2=Symbol("openfile"),O2=Symbol("onopenfile"),u0=Symbol("close"),y6=Symbol("mode"),j2=Symbol("awaitDrain"),w2=Symbol("ondrain"),G0=Symbol("prefix");class u6 extends c{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#_=!1;constructor(_,q={}){let $=c_(q);super();if(this.path=U(_),this.portable=!!$.portable,this.maxReadSize=$.maxReadSize||g7,this.linkCache=$.linkCache||new Map,this.statCache=$.statCache||new Map,this.preservePaths=!!$.preservePaths,this.cwd=U($.cwd||process.cwd()),this.strict=!!$.strict,this.noPax=!!$.noPax,this.noMtime=!!$.noMtime,this.mtime=$.mtime,this.prefix=$.prefix?U($.prefix):void 0,this.onWriteEntry=$.onWriteEntry,typeof $.onwarn==="function")this.on("warn",$.onwarn);let Q=!1;if(!this.preservePaths){let[X,V]=p_(this.path);if(X&&typeof V==="string")this.path=V,Q=X}if(this.win32=!!$.win32||process.platform==="win32",this.win32)this.path=X3(this.path.replace(/\\/g,"/")),_=_.replace(/\\/g,"/");if(this.absolute=U($.absolute||J3.resolve(this.cwd,_)),this.path==="")this.path="./";if(Q)this.warn("TAR_ENTRY_INFO",`stripping ${Q} from absolute path`,{entry:this,path:Q+this.path});let x=this.statCache.get(this.absolute);if(x)this[g6](x);else this[z2]()}warn(_,q,$={}){return a0(this,_,q,$)}emit(_,...q){if(_==="error")this.#_=!0;return super.emit(_,...q)}[z2](){Z0.lstat(this.absolute,(_,q)=>{if(_)return this.emit("error",_);this[g6](q)})}[g6](_){if(this.statCache.set(this.absolute,_),this.stat=_,!_.isFile())_.size=0;this.type=y7(_),this.emit("stat",_),this[K3]()}[K3](){switch(this.type){case"File":return this[Z3]();case"Directory":return this[G3]();case"SymbolicLink":return this[L2]();default:return this.end()}}[y6](_){return H2(_,this.type==="Directory",this.portable)}[G0](_){return H3(_,this.prefix)}[s_](){if(!this.stat)throw Error("cannot write header before stat");if(this.type==="Directory"&&this.portable)this.noMtime=!0;if(this.onWriteEntry?.(this),this.header=new p({path:this[G0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[G0](this.linkpath):this.linkpath,mode:this[y6](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax)super.write(new D0({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[G0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[G0](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let _=this.header?.block;if(!_)throw Error("failed to encode header");super.write(_)}[G3](){if(!this.stat)throw Error("cannot create directory entry without stat");if(this.path.slice(-1)!=="/")this.path+="/";this.stat.size=0,this[s_](),this.end()}[L2](){Z0.readlink(this.absolute,(_,q)=>{if(_)return this.emit("error",_);this[P2](q)})}[P2](_){this.linkpath=U(_),this[s_](),this.end()}[Y3](_){if(!this.stat)throw Error("cannot create link entry without stat");this.type="Link",this.linkpath=U(J3.relative(this.cwd,_)),this.stat.size=0,this[s_](),this.end()}[Z3](){if(!this.stat)throw Error("cannot create file entry without stat");if(this.stat.nlink>1){let _=`${this.stat.dev}:${this.stat.ino}`,q=this.linkCache.get(_);if(q?.indexOf(this.cwd)===0)return this[Y3](q);this.linkCache.set(_,this.absolute)}if(this[s_](),this.stat.size===0)return this.end();this[U2]()}[U2](){Z0.open(this.absolute,"r",(_,q)=>{if(_)return this.emit("error",_);this[O2](q)})}[O2](_){if(this.fd=_,this.#_)return this[u0]();if(!this.stat)throw Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let q=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(q),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[h6]()}[h6](){let{fd:_,buf:q,offset:$,length:Q,pos:x}=this;if(_===void 0||q===void 0)throw Error("cannot read file without first opening");Z0.read(_,q,$,Q,x,(X,V)=>{if(X)return this[u0](()=>this.emit("error",X));this[M2](V)})}[u0](_=()=>{}){if(this.fd!==void 0)Z0.close(this.fd,_)}[M2](_){if(_<=0&&this.remain>0){let Q=Object.assign(Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[u0](()=>this.emit("error",Q))}if(_>this.remain){let Q=Object.assign(Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[u0](()=>this.emit("error",Q))}if(!this.buf)throw Error("should have created buffer prior to reading");if(_===this.remain)for(let Q=_;Q<this.length&&_<this.blockRemain;Q++)this.buf[Q+this.offset]=0,_++,this.remain++;let q=this.offset===0&&_===this.buf.length?this.buf:this.buf.subarray(this.offset,this.offset+_);if(!this.write(q))this[j2](()=>this[w2]());else this[w2]()}[j2](_){this.once("drain",_)}write(_,q,$){if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,typeof q==="string"?q:"utf8");if(this.blockRemain<_.length){let Q=Object.assign(Error("writing more data than expected"),{path:this.absolute});return this.emit("error",Q)}return this.remain-=_.length,this.blockRemain-=_.length,this.pos+=_.length,this.offset+=_.length,super.write(_,null,$)}[w2](){if(!this.remain){if(this.blockRemain)super.write(Buffer.alloc(this.blockRemain));return this[u0]((_)=>_?this.emit("error",_):this.end())}if(!this.buf)throw Error("buffer lost somehow in ONDRAIN");if(this.offset>=this.length)this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0;this.length=this.buf.length-this.offset,this[h6]()}}class C2 extends u6{sync=!0;[z2](){this[g6](Z0.lstatSync(this.absolute))}[L2](){this[P2](Z0.readlinkSync(this.absolute))}[U2](){this[O2](Z0.openSync(this.absolute,"r"))}[h6](){let _=!0;try{let{fd:q,buf:$,offset:Q,length:x,pos:X}=this;if(q===void 0||$===void 0)throw Error("fd and buf must be set in READ method");let V=Z0.readSync(q,$,Q,x,X);this[M2](V),_=!1}finally{if(_)try{this[u0](()=>{})}catch(q){}}}[j2](_){_()}[u0](_=()=>{}){if(this.fd!==void 0)Z0.closeSync(this.fd);_()}}class B2 extends c{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(_,q,$={}){return a0(this,_,q,$)}constructor(_,q={}){let $=c_(q);super();this.preservePaths=!!$.preservePaths,this.portable=!!$.portable,this.strict=!!$.strict,this.noPax=!!$.noPax,this.noMtime=!!$.noMtime,this.onWriteEntry=$.onWriteEntry,this.readEntry=_;let{type:Q}=_;if(Q==="Unsupported")throw Error("writing entry that should be ignored");if(this.type=Q,this.type==="Directory"&&this.portable)this.noMtime=!0;if(this.prefix=$.prefix,this.path=U(_.path),this.mode=_.mode!==void 0?this[y6](_.mode):void 0,this.uid=this.portable?void 0:_.uid,this.gid=this.portable?void 0:_.gid,this.uname=this.portable?void 0:_.uname,this.gname=this.portable?void 0:_.gname,this.size=_.size,this.mtime=this.noMtime?void 0:$.mtime||_.mtime,this.atime=this.portable?void 0:_.atime,this.ctime=this.portable?void 0:_.ctime,this.linkpath=_.linkpath!==void 0?U(_.linkpath):void 0,typeof $.onwarn==="function")this.on("warn",$.onwarn);let x=!1;if(!this.preservePaths){let[V,J]=p_(this.path);if(V&&typeof J==="string")this.path=J,x=V}if(this.remain=_.size,this.blockRemain=_.startBlockSize,this.onWriteEntry?.(this),this.header=new p({path:this[G0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[G0](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),x)this.warn("TAR_ENTRY_INFO",`stripping ${x} from absolute path`,{entry:this,path:x+this.path});if(this.header.encode()&&!this.noPax)super.write(new D0({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[G0](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[G0](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let X=this.header?.block;if(!X)throw Error("failed to encode header");super.write(X),_.pipe(this)}[G0](_){return H3(_,this.prefix)}[y6](_){return H2(_,this.type==="Directory",this.portable)}write(_,q,$){if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,typeof q==="string"?q:"utf8");let Q=_.length;if(Q>this.blockRemain)throw Error("writing more to entry than is appropriate");return this.blockRemain-=Q,super.write(_,$)}end(_,q,$){if(this.blockRemain)super.write(Buffer.alloc(this.blockRemain));if(typeof _==="function")$=_,q=void 0,_=void 0;if(typeof q==="function")$=q,q=void 0;if(typeof _==="string")_=Buffer.from(_,q??"utf8");if($)this.once("finish",$);return _?super.end(_,$):super.end($),this}}var y7=(_)=>_.isFile()?"File":_.isDirectory()?"Directory":_.isSymbolicLink()?"SymbolicLink":"Unsupported";class k0{tail;head;length=0;static create(_=[]){return new k0(_)}constructor(_=[]){for(let q of _)this.push(q)}*[Symbol.iterator](){for(let _=this.head;_;_=_.next)yield _.value}removeNode(_){if(_.list!==this)throw Error("removing node which does not belong to this list");let{next:q,prev:$}=_;if(q)q.prev=$;if($)$.next=q;if(_===this.head)this.head=q;if(_===this.tail)this.tail=$;return this.length--,_.next=void 0,_.prev=void 0,_.list=void 0,q}unshiftNode(_){if(_===this.head)return;if(_.list)_.list.removeNode(_);let q=this.head;if(_.list=this,_.next=q,q)q.prev=_;if(this.head=_,!this.tail)this.tail=_;this.length++}pushNode(_){if(_===this.tail)return;if(_.list)_.list.removeNode(_);let q=this.tail;if(_.list=this,_.prev=q,q)q.next=_;if(this.tail=_,!this.head)this.head=_;this.length++}push(..._){for(let q=0,$=_.length;q<$;q++)k7(this,_[q]);return this.length}unshift(..._){for(var q=0,$=_.length;q<$;q++)m7(this,_[q]);return this.length}pop(){if(!this.tail)return;let _=this.tail.value,q=this.tail;if(this.tail=this.tail.prev,this.tail)this.tail.next=void 0;else this.head=void 0;return q.list=void 0,this.length--,_}shift(){if(!this.head)return;let _=this.head.value,q=this.head;if(this.head=this.head.next,this.head)this.head.prev=void 0;else this.tail=void 0;return q.list=void 0,this.length--,_}forEach(_,q){q=q||this;for(let $=this.head,Q=0;$;Q++)_.call(q,$.value,Q,this),$=$.next}forEachReverse(_,q){q=q||this;for(let $=this.tail,Q=this.length-1;$;Q--)_.call(q,$.value,Q,this),$=$.prev}get(_){let q=0,$=this.head;for(;!!$&&q<_;q++)$=$.next;if(q===_&&!!$)return $.value}getReverse(_){let q=0,$=this.tail;for(;!!$&&q<_;q++)$=$.prev;if(q===_&&!!$)return $.value}map(_,q){q=q||this;let $=new k0;for(let Q=this.head;Q;)$.push(_.call(q,Q.value,this)),Q=Q.next;return $}mapReverse(_,q){q=q||this;var $=new k0;for(let Q=this.tail;Q;)$.push(_.call(q,Q.value,this)),Q=Q.prev;return $}reduce(_,q){let $,Q=this.head;if(arguments.length>1)$=q;else if(this.head)Q=this.head.next,$=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var x=0;Q;x++)$=_($,Q.value,x),Q=Q.next;return $}reduceReverse(_,q){let $,Q=this.tail;if(arguments.length>1)$=q;else if(this.tail)Q=this.tail.prev,$=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(let x=this.length-1;Q;x--)$=_($,Q.value,x),Q=Q.prev;return $}toArray(){let _=Array(this.length);for(let q=0,$=this.head;$;q++)_[q]=$.value,$=$.next;return _}toArrayReverse(){let _=Array(this.length);for(let q=0,$=this.tail;$;q++)_[q]=$.value,$=$.prev;return _}slice(_=0,q=this.length){if(q<0)q+=this.length;if(_<0)_+=this.length;let $=new k0;if(q<_||q<0)return $;if(_<0)_=0;if(q>this.length)q=this.length;let Q=this.head,x=0;for(x=0;!!Q&&x<_;x++)Q=Q.next;for(;!!Q&&x<q;x++,Q=Q.next)$.push(Q.value);return $}sliceReverse(_=0,q=this.length){if(q<0)q+=this.length;if(_<0)_+=this.length;let $=new k0;if(q<_||q<0)return $;if(_<0)_=0;if(q>this.length)q=this.length;let Q=this.length,x=this.tail;for(;!!x&&Q>q;Q--)x=x.prev;for(;!!x&&Q>_;Q--,x=x.prev)$.push(x.value);return $}splice(_,q=0,...$){if(_>this.length)_=this.length-1;if(_<0)_=this.length+_;let Q=this.head;for(let X=0;!!Q&&X<_;X++)Q=Q.next;let x=[];for(let X=0;!!Q&&X<q;X++)x.push(Q.value),Q=this.removeNode(Q);if(!Q)Q=this.tail;else if(Q!==this.tail)Q=Q.prev;for(let X of $)Q=u7(this,Q,X);return x}reverse(){let _=this.head,q=this.tail;for(let $=_;$;$=$.prev){let Q=$.prev;$.prev=$.next,$.next=Q}return this.head=q,this.tail=_,this}}function u7(_,q,$){let Q=q,x=q?q.next:_.head,X=new k6($,Q,x,_);if(X.next===void 0)_.tail=X;if(X.prev===void 0)_.head=X;return _.length++,X}function k7(_,q){if(_.tail=new k6(q,_.tail,void 0,_),!_.head)_.head=_.tail;_.length++}function m7(_,q){if(_.head=new k6(q,void 0,_.head,_),!_.tail)_.tail=_.head;_.length++}class k6{list;next;prev;value;constructor(_,q,$,Q){if(this.list=Q,this.value=_,q)q.next=this,this.prev=q;else this.prev=void 0;if($)$.prev=this,this.next=$;else this.next=void 0}}import L3 from"path";class R2{path;absolute;entry;stat;readdir;pending=!1;ignore=!1;piped=!1;constructor(_,q){this.path=_||"./",this.absolute=q}}var W3=Buffer.alloc(1024),m6=Symbol("onStat"),n_=Symbol("ended"),_0=Symbol("queue"),__=Symbol("current"),q_=Symbol("process"),a_=Symbol("processing"),I2=Symbol("processJob"),q0=Symbol("jobs"),A2=Symbol("jobDone"),E6=Symbol("addFSEntry"),v3=Symbol("addTarEntry"),D2=Symbol("stat"),S2=Symbol("readdir"),b6=Symbol("onreaddir"),c6=Symbol("pipe"),w3=Symbol("entry"),T2=Symbol("entryOpt"),l6=Symbol("writeEntryClass"),z3=Symbol("write"),F2=Symbol("ondrain");class $_ extends c{sync=!1;opt;cwd;maxReadSize;preservePaths;strict;noPax;prefix;linkCache;statCache;file;portable;zip;readdirCache;noDirRecurse;follow;noMtime;mtime;filter;jobs;[l6];onWriteEntry;[_0];[q0]=0;[a_]=!1;[n_]=!1;constructor(_={}){super();if(this.opt=_,this.file=_.file||"",this.cwd=_.cwd||process.cwd(),this.maxReadSize=_.maxReadSize,this.preservePaths=!!_.preservePaths,this.strict=!!_.strict,this.noPax=!!_.noPax,this.prefix=U(_.prefix||""),this.linkCache=_.linkCache||new Map,this.statCache=_.statCache||new Map,this.readdirCache=_.readdirCache||new Map,this.onWriteEntry=_.onWriteEntry,this[l6]=u6,typeof _.onwarn==="function")this.on("warn",_.onwarn);if(this.portable=!!_.portable,_.gzip||_.brotli||_.zstd){if((_.gzip?1:0)+(_.brotli?1:0)+(_.zstd?1:0)>1)throw TypeError("gzip, brotli, zstd are mutually exclusive");if(_.gzip){if(typeof _.gzip!=="object")_.gzip={};if(this.portable)_.gzip.portable=!0;this.zip=new a1(_.gzip)}if(_.brotli){if(typeof _.brotli!=="object")_.brotli={};this.zip=new r1(_.brotli)}if(_.zstd){if(typeof _.zstd!=="object")_.zstd={};this.zip=new q2(_.zstd)}if(!this.zip)throw Error("impossible");let q=this.zip;q.on("data",($)=>super.write($)),q.on("end",()=>super.end()),q.on("drain",()=>this[F2]()),this.on("resume",()=>q.resume())}else this.on("drain",this[F2]);if(this.noDirRecurse=!!_.noDirRecurse,this.follow=!!_.follow,this.noMtime=!!_.noMtime,_.mtime)this.mtime=_.mtime;this.filter=typeof _.filter==="function"?_.filter:()=>!0,this[_0]=new k0,this[q0]=0,this.jobs=Number(_.jobs)||4,this[a_]=!1,this[n_]=!1}[z3](_){return super.write(_)}add(_){return this.write(_),this}end(_,q,$){if(typeof _==="function")$=_,_=void 0;if(typeof q==="function")$=q,q=void 0;if(_)this.add(_);if(this[n_]=!0,this[q_](),$)$();return this}write(_){if(this[n_])throw Error("write after end");if(_ instanceof d_)this[v3](_);else this[E6](_);return this.flowing}[v3](_){let q=U(L3.resolve(this.cwd,_.path));if(!this.filter(_.path,_))_.resume();else{let $=new R2(_.path,q);$.entry=new B2(_,this[T2]($)),$.entry.on("end",()=>this[A2]($)),this[q0]+=1,this[_0].push($)}this[q_]()}[E6](_){let q=U(L3.resolve(this.cwd,_));this[_0].push(new R2(_,q)),this[q_]()}[D2](_){_.pending=!0,this[q0]+=1;let q=this.follow?"stat":"lstat";d6[q](_.absolute,($,Q)=>{if(_.pending=!1,this[q0]-=1,$)this.emit("error",$);else this[m6](_,Q)})}[m6](_,q){if(this.statCache.set(_.absolute,q),_.stat=q,!this.filter(_.path,q))_.ignore=!0;else if(q.isFile()&&q.nlink>1&&_===this[__]&&!this.linkCache.get(`${q.dev}:${q.ino}`)&&!this.sync)this[I2](_);this[q_]()}[S2](_){_.pending=!0,this[q0]+=1,d6.readdir(_.absolute,(q,$)=>{if(_.pending=!1,this[q0]-=1,q)return this.emit("error",q);this[b6](_,$)})}[b6](_,q){this.readdirCache.set(_.absolute,q),_.readdir=q,this[q_]()}[q_](){if(this[a_])return;this[a_]=!0;for(let _=this[_0].head;!!_&&this[q0]<this.jobs;_=_.next)if(this[I2](_.value),_.value.ignore){let q=_.next;this[_0].removeNode(_),_.next=q}if(this[a_]=!1,this[n_]&&!this[_0].length&&this[q0]===0)if(this.zip)this.zip.end(W3);else super.write(W3),super.end()}get[__](){return this[_0]&&this[_0].head&&this[_0].head.value}[A2](_){this[_0].shift(),this[q0]-=1,this[q_]()}[I2](_){if(_.pending)return;if(_.entry){if(_===this[__]&&!_.piped)this[c6](_);return}if(!_.stat){let q=this.statCache.get(_.absolute);if(q)this[m6](_,q);else this[D2](_)}if(!_.stat)return;if(_.ignore)return;if(!this.noDirRecurse&&_.stat.isDirectory()&&!_.readdir){let q=this.readdirCache.get(_.absolute);if(q)this[b6](_,q);else this[S2](_);if(!_.readdir)return}if(_.entry=this[w3](_),!_.entry){_.ignore=!0;return}if(_===this[__]&&!_.piped)this[c6](_)}[T2](_){return{onwarn:(q,$,Q)=>this.warn(q,$,Q),noPax:this.noPax,cwd:this.cwd,absolute:_.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[w3](_){this[q0]+=1;try{return new this[l6](_.path,this[T2](_)).on("end",()=>this[A2](_)).on("error",($)=>this.emit("error",$))}catch(q){this.emit("error",q)}}[F2](){if(this[__]&&this[__].entry)this[__].entry.resume()}[c6](_){if(_.piped=!0,_.readdir)_.readdir.forEach((Q)=>{let x=_.path,X=x==="./"?"":x.replace(/\/*$/,"/");this[E6](X+Q)});let q=_.entry,$=this.zip;if(!q)throw Error("cannot pipe without source");if($)q.on("data",(Q)=>{if(!$.write(Q))q.pause()});else q.on("data",(Q)=>{if(!super.write(Q))q.pause()})}pause(){if(this.zip)this.zip.pause();return super.pause()}warn(_,q,$={}){a0(this,_,q,$)}}class U_ extends $_{sync=!0;constructor(_){super(_);this[l6]=C2}pause(){}resume(){}[D2](_){let q=this.follow?"statSync":"lstatSync";this[m6](_,d6[q](_.absolute))}[S2](_){this[b6](_,d6.readdirSync(_.absolute))}[c6](_){let q=_.entry,$=this.zip;if(_.readdir)_.readdir.forEach((Q)=>{let x=_.path,X=x==="./"?"":x.replace(/\/*$/,"/");this[E6](X+Q)});if(!q)throw Error("Cannot pipe without source");if($)q.on("data",(Q)=>{$.write(Q)});else q.on("data",(Q)=>{super[z3](Q)})}}var E7=(_,q)=>{let $=new U_(_),Q=new b_(_.file,{mode:_.mode||438});$.pipe(Q),P3($,q)},b7=(_,q)=>{let $=new $_(_),Q=new T0(_.file,{mode:_.mode||438});$.pipe(Q);let x=new Promise((X,V)=>{Q.on("error",V),Q.on("close",X),$.on("error",V)});return U3($,q),x},P3=(_,q)=>{q.forEach(($)=>{if($.charAt(0)==="@")e0({file:M3.resolve(_.cwd,$.slice(1)),sync:!0,noResume:!0,onReadEntry:(Q)=>_.add(Q)});else _.add($)}),_.end()},U3=async(_,q)=>{for(let $=0;$<q.length;$++){let Q=String(q[$]);if(Q.charAt(0)==="@")await e0({file:M3.resolve(String(_.cwd),Q.slice(1)),noResume:!0,onReadEntry:(x)=>{_.add(x)}});else _.add(Q)}_.end()},c7=(_,q)=>{let $=new U_(_);return P3($,q),$},l7=(_,q)=>{let $=new $_(_);return U3($,q),$},d7=J0(E7,b7,c7,l7,(_,q)=>{if(!q?.length)throw TypeError("no paths specified to add to archive")});import k3 from"node:fs";import V5 from"node:assert";import{randomBytes as u3}from"node:crypto";import O from"node:fs";import n from"node:path";import O3 from"fs";var f7=process.env.__FAKE_PLATFORM__||process.platform,i7=f7==="win32",{O_CREAT:p7,O_TRUNC:s7,O_WRONLY:n7}=O3.constants,j3=Number(process.env.__FAKE_FS_O_FILENAME__)||O3.constants.UV_FS_O_FILEMAP||0,a7=i7&&!!j3,o7=524288,t7=j3|s7|p7|n7,N2=!a7?()=>"w":(_)=>_<o7?t7:"w";import i6 from"node:fs";import o_ from"node:path";var h2=(_,q,$)=>{try{return i6.lchownSync(_,q,$)}catch(Q){if(Q?.code!=="ENOENT")throw Q}},f6=(_,q,$,Q)=>{i6.lchown(_,q,$,(x)=>{Q(x&&x?.code!=="ENOENT"?x:null)})},r7=(_,q,$,Q,x)=>{if(q.isDirectory())g2(o_.resolve(_,q.name),$,Q,(X)=>{if(X)return x(X);let V=o_.resolve(_,q.name);f6(V,$,Q,x)});else{let X=o_.resolve(_,q.name);f6(X,$,Q,x)}},g2=(_,q,$,Q)=>{i6.readdir(_,{withFileTypes:!0},(x,X)=>{if(x){if(x.code==="ENOENT")return Q();else if(x.code!=="ENOTDIR"&&x.code!=="ENOTSUP")return Q(x)}if(x||!X.length)return f6(_,q,$,Q);let V=X.length,J=null,K=(G)=>{if(J)return;if(G)return Q(J=G);if(--V===0)return f6(_,q,$,Q)};for(let G of X)r7(_,G,q,$,K)})},e7=(_,q,$,Q)=>{if(q.isDirectory())y2(o_.resolve(_,q.name),$,Q);h2(o_.resolve(_,q.name),$,Q)},y2=(_,q,$)=>{let Q;try{Q=i6.readdirSync(_,{withFileTypes:!0})}catch(x){let X=x;if(X?.code==="ENOENT")return;else if(X?.code==="ENOTDIR"||X?.code==="ENOTSUP")return h2(_,q,$);else throw X}for(let x of Q)e7(_,x,q,$);return h2(_,q,$)};import l from"node:fs";import _5 from"node:fs/promises";import n6 from"node:path";class p6 extends Error{path;code;syscall="chdir";constructor(_,q){super(`${q}: Cannot cd into '${_}'`);this.path=_,this.code=q}get name(){return"CwdError"}}class s6 extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(_,q){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link");this.symlink=_,this.path=q}get name(){return"SymlinkError"}}var q5=(_,q)=>{l.stat(_,($,Q)=>{if($||!Q.isDirectory())$=new p6(_,$?.code||"ENOTDIR");q($)})},C3=(_,q,$)=>{_=U(_);let Q=q.umask??18,x=q.mode|448,X=(x&Q)!==0,V=q.uid,J=q.gid,K=typeof V==="number"&&typeof J==="number"&&(V!==q.processUid||J!==q.processGid),G=q.preserve,Z=q.unlink,Y=U(q.cwd),H=(z,M)=>{if(z)$(z);else if(M&&K)g2(M,V,J,(u)=>H(u));else if(X)l.chmod(_,x,$);else $()};if(_===Y)return q5(_,H);if(G)return _5.mkdir(_,{mode:x,recursive:!0}).then((z)=>H(null,z??void 0),H);let L=U(n6.relative(Y,_)).split("/");u2(Y,L,x,Z,Y,void 0,H)},u2=(_,q,$,Q,x,X,V)=>{if(!q.length)return V(null,X);let J=q.shift(),K=U(n6.resolve(_+"/"+J));l.mkdir(K,$,B3(K,q,$,Q,x,X,V))},B3=(_,q,$,Q,x,X,V)=>(J)=>{if(J)l.lstat(_,(K,G)=>{if(K)K.path=K.path&&U(K.path),V(K);else if(G.isDirectory())u2(_,q,$,Q,x,X,V);else if(Q)l.unlink(_,(Z)=>{if(Z)return V(Z);l.mkdir(_,$,B3(_,q,$,Q,x,X,V))});else if(G.isSymbolicLink())return V(new s6(_,_+"/"+q.join("/")));else V(J)});else X=X||_,u2(_,q,$,Q,x,X,V)},$5=(_)=>{let q=!1,$=void 0;try{q=l.statSync(_).isDirectory()}catch(Q){$=Q?.code}finally{if(!q)throw new p6(_,$??"ENOTDIR")}},I3=(_,q)=>{_=U(_);let $=q.umask??18,Q=q.mode|448,x=(Q&$)!==0,X=q.uid,V=q.gid,J=typeof X==="number"&&typeof V==="number"&&(X!==q.processUid||V!==q.processGid),K=q.preserve,G=q.unlink,Z=U(q.cwd),Y=(z)=>{if(z&&J)y2(z,X,V);if(x)l.chmodSync(_,Q)};if(_===Z)return $5(Z),Y();if(K)return Y(l.mkdirSync(_,{mode:Q,recursive:!0})??void 0);let w=U(n6.relative(Z,_)).split("/"),L=void 0;for(let z=w.shift(),M=Z;z&&(M+="/"+z);z=w.shift()){M=U(n6.resolve(M));try{l.mkdirSync(M,Q),L=L||M}catch(u){let f=l.lstatSync(M);if(f.isDirectory())continue;else if(G){l.unlinkSync(M),l.mkdirSync(M,Q),L=L||M;continue}else if(f.isSymbolicLink())return new s6(M,M+"/"+w.join("/"))}}return Y(L)};import{join as T3}from"node:path";var k2=Object.create(null);var O_=new Set,A3=(_)=>{if(!O_.has(_))k2[_]=_.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en");else O_.delete(_);O_.add(_);let q=k2[_],$=O_.size-1e4;if($>1000){for(let Q of O_)if(O_.delete(Q),delete k2[Q],--$<=0)break}return q};var Q5=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,x5=Q5==="win32",X5=(_)=>{return _.split("/").slice(0,-1).reduce(($,Q)=>{let x=$[$.length-1];if(x!==void 0)Q=T3(x,Q);return $.push(Q||"/"),$},[])};class m2{#_=new Map;#$=new Map;#Q=new Set;reserve(_,q){_=x5?["win32 parallelization disabled"]:_.map((Q)=>{return y0(T3(A3(Q)))});let $=new Set(_.map((Q)=>X5(Q)).reduce((Q,x)=>Q.concat(x)));this.#$.set(q,{dirs:$,paths:_});for(let Q of _){let x=this.#_.get(Q);if(!x)this.#_.set(Q,[q]);else x.push(q)}for(let Q of $){let x=this.#_.get(Q);if(!x)this.#_.set(Q,[new Set([q])]);else{let X=x[x.length-1];if(X instanceof Set)X.add(q);else x.push(new Set([q]))}}return this.#x(q)}#X(_){let q=this.#$.get(_);if(!q)throw Error("function does not have any path reservations");return{paths:q.paths.map(($)=>this.#_.get($)),dirs:[...q.dirs].map(($)=>this.#_.get($))}}check(_){let{paths:q,dirs:$}=this.#X(_);return q.every((Q)=>Q&&Q[0]===_)&&$.every((Q)=>Q&&Q[0]instanceof Set&&Q[0].has(_))}#x(_){if(this.#Q.has(_)||!this.check(_))return!1;return this.#Q.add(_),_(()=>this.#q(_)),!0}#q(_){if(!this.#Q.has(_))return!1;let q=this.#$.get(_);if(!q)throw Error("invalid reservation");let{paths:$,dirs:Q}=q,x=new Set;for(let X of $){let V=this.#_.get(X);if(!V||V?.[0]!==_)continue;let J=V[1];if(!J){this.#_.delete(X);continue}if(V.shift(),typeof J==="function")x.add(J);else for(let K of J)x.add(K)}for(let X of Q){let V=this.#_.get(X),J=V?.[0];if(!V||!(J instanceof Set))continue;if(J.size===1&&V.length===1){this.#_.delete(X);continue}else if(J.size===1){V.shift();let K=V[0];if(typeof K==="function")x.add(K)}else J.delete(_)}return this.#Q.delete(_),x.forEach((X)=>this.#x(X)),!0}}var F3=Symbol("onEntry"),l2=Symbol("checkFs"),R3=Symbol("checkFs2"),d2=Symbol("isReusable"),a=Symbol("makeFs"),f2=Symbol("file"),i2=Symbol("directory"),t6=Symbol("link"),D3=Symbol("symlink"),S3=Symbol("hardlink"),N3=Symbol("unsupported"),h3=Symbol("checkPath"),E2=Symbol("stripAbsolutePath"),m0=Symbol("mkdir"),y=Symbol("onError"),a6=Symbol("pending"),g3=Symbol("pend"),j_=Symbol("unpend"),b2=Symbol("ended"),c2=Symbol("maybeClose"),p2=Symbol("skip"),t_=Symbol("doChown"),r_=Symbol("uid"),e_=Symbol("gid"),_6=Symbol("checkedCwd"),J5=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,q6=J5==="win32",K5=1024,Z5=(_,q)=>{if(!q6)return O.unlink(_,q);let $=_+".DELETE."+u3(16).toString("hex");O.rename(_,$,(Q)=>{if(Q)return q(Q);O.unlink($,q)})},G5=(_)=>{if(!q6)return O.unlinkSync(_);let q=_+".DELETE."+u3(16).toString("hex");O.renameSync(_,q),O.unlinkSync(q)},y3=(_,q,$)=>_!==void 0&&_===_>>>0?_:q!==void 0&&q===q>>>0?q:$;class $6 extends g0{[b2]=!1;[_6]=!1;[a6]=0;reservations=new m2;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(_={}){_.ondone=()=>{this[b2]=!0,this[c2]()};super(_);if(this.transform=_.transform,this.chmod=!!_.chmod,typeof _.uid==="number"||typeof _.gid==="number"){if(typeof _.uid!=="number"||typeof _.gid!=="number")throw TypeError("cannot set owner without number uid and gid");if(_.preserveOwner)throw TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=_.uid,this.gid=_.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;if(_.preserveOwner===void 0&&typeof _.uid!=="number")this.preserveOwner=!!(process.getuid&&process.getuid()===0);else this.preserveOwner=!!_.preserveOwner;this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof _.maxDepth==="number"?_.maxDepth:K5,this.forceChown=_.forceChown===!0,this.win32=!!_.win32||q6,this.newer=!!_.newer,this.keep=!!_.keep,this.noMtime=!!_.noMtime,this.preservePaths=!!_.preservePaths,this.unlink=!!_.unlink,this.cwd=U(n.resolve(_.cwd||process.cwd())),this.strip=Number(_.strip)||0,this.processUmask=!this.chmod?0:typeof _.processUmask==="number"?_.processUmask:process.umask(),this.umask=typeof _.umask==="number"?_.umask:this.processUmask,this.dmode=_.dmode||511&~this.umask,this.fmode=_.fmode||438&~this.umask,this.on("entry",(q)=>this[F3](q))}warn(_,q,$={}){if(_==="TAR_BAD_ARCHIVE"||_==="TAR_ABORT")$.recoverable=!1;return super.warn(_,q,$)}[c2](){if(this[b2]&&this[a6]===0)this.emit("prefinish"),this.emit("finish"),this.emit("end")}[E2](_,q){let $=_[q];if(!$||this.preservePaths)return!0;let Q=$.split("/");if(Q.includes("..")||q6&&/^[a-z]:\.\.$/i.test(Q[0]??""))if(q==="path")return this.warn("TAR_ENTRY_ERROR",`${q} contains '..'`,{entry:_,[q]:$}),!1;else{let V=n.posix.dirname(_.path),J=n.posix.normalize(n.posix.join(V,$));if(J.startsWith("../")||J==="..")return this.warn("TAR_ENTRY_ERROR",`${q} escapes extraction directory`,{entry:_,[q]:$}),!1}let[x,X]=p_($);if(x)_[q]=String(X),this.warn("TAR_ENTRY_INFO",`stripping ${x} from absolute ${q}`,{entry:_,[q]:$});return!0}[h3](_){let q=U(_.path),$=q.split("/");if(this.strip){if($.length<this.strip)return!1;if(_.type==="Link"){let Q=U(String(_.linkpath)).split("/");if(Q.length>=this.strip)_.linkpath=Q.slice(this.strip).join("/");else return!1}$.splice(0,this.strip),_.path=$.join("/")}if(isFinite(this.maxDepth)&&$.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:_,path:q,depth:$.length,maxDepth:this.maxDepth}),!1;if(!this[E2](_,"path")||!this[E2](_,"linkpath"))return!1;if(n.isAbsolute(_.path))_.absolute=U(n.resolve(_.path));else _.absolute=U(n.resolve(this.cwd,_.path));if(!this.preservePaths&&typeof _.absolute==="string"&&_.absolute.indexOf(this.cwd+"/")!==0&&_.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:_,path:U(_.path),resolvedPath:_.absolute,cwd:this.cwd}),!1;if(_.absolute===this.cwd&&_.type!=="Directory"&&_.type!=="GNUDumpDir")return!1;if(this.win32){let{root:Q}=n.win32.parse(String(_.absolute));_.absolute=Q+v2(String(_.absolute).slice(Q.length));let{root:x}=n.win32.parse(_.path);_.path=x+v2(_.path.slice(x.length))}return!0}[F3](_){if(!this[h3](_))return _.resume();switch(V5.equal(typeof _.absolute,"string"),_.type){case"Directory":case"GNUDumpDir":if(_.mode)_.mode=_.mode|448;case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[l2](_);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[N3](_)}}[y](_,q){if(_.name==="CwdError")this.emit("error",_);else this.warn("TAR_ENTRY_ERROR",_,{entry:q}),this[j_](),q.resume()}[m0](_,q,$){C3(U(_),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:q},$)}[t_](_){return this.forceChown||this.preserveOwner&&(typeof _.uid==="number"&&_.uid!==this.processUid||typeof _.gid==="number"&&_.gid!==this.processGid)||typeof this.uid==="number"&&this.uid!==this.processUid||typeof this.gid==="number"&&this.gid!==this.processGid}[r_](_){return y3(this.uid,_.uid,this.processUid)}[e_](_){return y3(this.gid,_.gid,this.processGid)}[f2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.fmode,Q=new T0(String(_.absolute),{flags:N2(_.size),mode:$,autoClose:!1});Q.on("error",(J)=>{if(Q.fd)O.close(Q.fd,()=>{});Q.write=()=>!0,this[y](J,_),q()});let x=1,X=(J)=>{if(J){if(Q.fd)O.close(Q.fd,()=>{});this[y](J,_),q();return}if(--x===0){if(Q.fd!==void 0)O.close(Q.fd,(K)=>{if(K)this[y](K,_);else this[j_]();q()})}};Q.on("finish",()=>{let J=String(_.absolute),K=Q.fd;if(typeof K==="number"&&_.mtime&&!this.noMtime){x++;let G=_.atime||new Date,Z=_.mtime;O.futimes(K,G,Z,(Y)=>Y?O.utimes(J,G,Z,(H)=>X(H&&Y)):X())}if(typeof K==="number"&&this[t_](_)){x++;let G=this[r_](_),Z=this[e_](_);if(typeof G==="number"&&typeof Z==="number")O.fchown(K,G,Z,(Y)=>Y?O.chown(J,G,Z,(H)=>X(H&&Y)):X())}X()});let V=this.transform?this.transform(_)||_:_;if(V!==_)V.on("error",(J)=>{this[y](J,_),q()}),_.pipe(V);V.pipe(Q)}[i2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.dmode;this[m0](String(_.absolute),$,(Q)=>{if(Q){this[y](Q,_),q();return}let x=1,X=()=>{if(--x===0)q(),this[j_](),_.resume()};if(_.mtime&&!this.noMtime)x++,O.utimes(String(_.absolute),_.atime||new Date,_.mtime,X);if(this[t_](_))x++,O.chown(String(_.absolute),Number(this[r_](_)),Number(this[e_](_)),X);X()})}[N3](_){_.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${_.type}`,{entry:_}),_.resume()}[D3](_,q){this[t6](_,String(_.linkpath),"symlink",q)}[S3](_,q){let $=U(n.resolve(this.cwd,String(_.linkpath)));this[t6](_,$,"link",q)}[g3](){this[a6]++}[j_](){this[a6]--,this[c2]()}[p2](_){this[j_](),_.resume()}[d2](_,q){return _.type==="File"&&!this.unlink&&q.isFile()&&q.nlink<=1&&!q6}[l2](_){this[g3]();let q=[_.path];if(_.linkpath)q.push(_.linkpath);this.reservations.reserve(q,($)=>this[R3](_,$))}[R3](_,q){let $=(V)=>{q(V)},Q=()=>{this[m0](this.cwd,this.dmode,(V)=>{if(V){this[y](V,_),$();return}this[_6]=!0,x()})},x=()=>{if(_.absolute!==this.cwd){let V=U(n.dirname(String(_.absolute)));if(V!==this.cwd)return this[m0](V,this.dmode,(J)=>{if(J){this[y](J,_),$();return}X()})}X()},X=()=>{O.lstat(String(_.absolute),(V,J)=>{if(J&&(this.keep||this.newer&&J.mtime>(_.mtime??J.mtime))){this[p2](_),$();return}if(V||this[d2](_,J))return this[a](null,_,$);if(J.isDirectory()){if(_.type==="Directory"){let K=this.chmod&&_.mode&&(J.mode&4095)!==_.mode,G=(Z)=>this[a](Z??null,_,$);if(!K)return G();return O.chmod(String(_.absolute),Number(_.mode),G)}if(_.absolute!==this.cwd)return O.rmdir(String(_.absolute),(K)=>this[a](K??null,_,$))}if(_.absolute===this.cwd)return this[a](null,_,$);Z5(String(_.absolute),(K)=>this[a](K??null,_,$))})};if(this[_6])x();else Q()}[a](_,q,$){if(_){this[y](_,q),$();return}switch(q.type){case"File":case"OldFile":case"ContiguousFile":return this[f2](q,$);case"Link":return this[S3](q,$);case"SymbolicLink":return this[D3](q,$);case"Directory":case"GNUDumpDir":return this[i2](q,$)}}[t6](_,q,$,Q){O[$](q,String(_.absolute),(x)=>{if(x)this[y](x,_);else this[j_](),_.resume();Q()})}}var o6=(_)=>{try{return[null,_()]}catch(q){return[q,null]}};class r6 extends $6{sync=!0;[a](_,q){return super[a](_,q,()=>{})}[l2](_){if(!this[_6]){let x=this[m0](this.cwd,this.dmode);if(x)return this[y](x,_);this[_6]=!0}if(_.absolute!==this.cwd){let x=U(n.dirname(String(_.absolute)));if(x!==this.cwd){let X=this[m0](x,this.dmode);if(X)return this[y](X,_)}}let[q,$]=o6(()=>O.lstatSync(String(_.absolute)));if($&&(this.keep||this.newer&&$.mtime>(_.mtime??$.mtime)))return this[p2](_);if(q||this[d2](_,$))return this[a](null,_);if($.isDirectory()){if(_.type==="Directory"){let X=this.chmod&&_.mode&&($.mode&4095)!==_.mode,[V]=X?o6(()=>{O.chmodSync(String(_.absolute),Number(_.mode))}):[];return this[a](V,_)}let[x]=o6(()=>O.rmdirSync(String(_.absolute)));this[a](x,_)}let[Q]=_.absolute===this.cwd?[]:o6(()=>G5(String(_.absolute)));this[a](Q,_)}[f2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.fmode,Q=(V)=>{let J;try{O.closeSync(x)}catch(K){J=K}if(V||J)this[y](V||J,_);q()},x;try{x=O.openSync(String(_.absolute),N2(_.size),$)}catch(V){return Q(V)}let X=this.transform?this.transform(_)||_:_;if(X!==_)X.on("error",(V)=>this[y](V,_)),_.pipe(X);X.on("data",(V)=>{try{O.writeSync(x,V,0,V.length)}catch(J){Q(J)}}),X.on("end",()=>{let V=null;if(_.mtime&&!this.noMtime){let J=_.atime||new Date,K=_.mtime;try{O.futimesSync(x,J,K)}catch(G){try{O.utimesSync(String(_.absolute),J,K)}catch(Z){V=G}}}if(this[t_](_)){let J=this[r_](_),K=this[e_](_);try{O.fchownSync(x,Number(J),Number(K))}catch(G){try{O.chownSync(String(_.absolute),Number(J),Number(K))}catch(Z){V=V||G}}}Q(V)})}[i2](_,q){let $=typeof _.mode==="number"?_.mode&4095:this.dmode,Q=this[m0](String(_.absolute),$);if(Q){this[y](Q,_),q();return}if(_.mtime&&!this.noMtime)try{O.utimesSync(String(_.absolute),_.atime||new Date,_.mtime)}catch(x){}if(this[t_](_))try{O.chownSync(String(_.absolute),Number(this[r_](_)),Number(this[e_](_)))}catch(x){}q(),_.resume()}[m0](_,q){try{return I3(U(_),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:q})}catch($){return $}}[t6](_,q,$,Q){let x=`${$}Sync`;try{O[x](q,String(_.absolute)),Q(),_.resume()}catch(X){return this[y](X,_)}}}var Y5=(_)=>{let q=new r6(_),$=_.file,Q=k3.statSync($),x=_.maxReadSize||16777216;new d1($,{readSize:x,size:Q.size}).pipe(q)},H5=(_,q)=>{let $=new $6(_),Q=_.maxReadSize||16777216,x=_.file;return new Promise((V,J)=>{$.on("error",J),$.on("close",V),k3.stat(x,(K,G)=>{if(K)J(K);else{let Z=new L_(x,{readSize:Q,size:G.size});Z.on("error",J),Z.pipe($)}})})},Q6=J0(Y5,H5,(_)=>new r6(_),(_)=>new $6(_),(_,q)=>{if(q?.length)Y2(_,q)});import d from"node:fs";import m3 from"node:path";var W5=(_,q)=>{let $=new U_(_),Q=!0,x,X;try{try{x=d.openSync(_.file,"r+")}catch(K){if(K?.code==="ENOENT")x=d.openSync(_.file,"w+");else throw K}let V=d.fstatSync(x),J=Buffer.alloc(512);_:for(X=0;X<V.size;X+=512){for(let Z=0,Y=0;Z<512;Z+=Y){if(Y=d.readSync(x,J,Z,J.length-Z,X+Z),X===0&&J[0]===31&&J[1]===139)throw Error("cannot append to compressed archives");if(!Y)break _}let K=new p(J);if(!K.cksumValid)break;let G=512*Math.ceil((K.size||0)/512);if(X+G+512>V.size)break;if(X+=G,_.mtimeCache&&K.mtime)_.mtimeCache.set(String(K.path),K.mtime)}Q=!1,v5(_,$,X,x,q)}finally{if(Q)try{d.closeSync(x)}catch(V){}}},v5=(_,q,$,Q,x)=>{let X=new b_(_.file,{fd:Q,start:$});q.pipe(X),L5(q,x)},w5=(_,q)=>{q=Array.from(q);let $=new $_(_),Q=(X,V,J)=>{let K=(w,L)=>{if(w)d.close(X,(z)=>J(w));else J(null,L)},G=0;if(V===0)return K(null,0);let Z=0,Y=Buffer.alloc(512),H=(w,L)=>{if(w||typeof L>"u")return K(w);if(Z+=L,Z<512&&L)return d.read(X,Y,Z,Y.length-Z,G+Z,H);if(G===0&&Y[0]===31&&Y[1]===139)return K(Error("cannot append to compressed archives"));if(Z<512)return K(null,G);let z=new p(Y);if(!z.cksumValid)return K(null,G);let M=512*Math.ceil((z.size??0)/512);if(G+M+512>V)return K(null,G);if(G+=M+512,G>=V)return K(null,G);if(_.mtimeCache&&z.mtime)_.mtimeCache.set(String(z.path),z.mtime);Z=0,d.read(X,Y,0,512,G,H)};d.read(X,Y,0,512,G,H)};return new Promise((X,V)=>{$.on("error",V);let J="r+",K=(G,Z)=>{if(G&&G.code==="ENOENT"&&J==="r+")return J="w+",d.open(_.file,J,K);if(G||!Z)return V(G);d.fstat(Z,(Y,H)=>{if(Y)return d.close(Z,()=>V(Y));Q(Z,H.size,(w,L)=>{if(w)return V(w);let z=new T0(_.file,{fd:Z,start:L});$.pipe(z),z.on("error",V),z.on("close",X),z5($,q)})})};d.open(_.file,J,K)})},L5=(_,q)=>{q.forEach(($)=>{if($.charAt(0)==="@")e0({file:m3.resolve(_.cwd,$.slice(1)),sync:!0,noResume:!0,onReadEntry:(Q)=>_.add(Q)});else _.add($)}),_.end()},z5=async(_,q)=>{for(let $=0;$<q.length;$++){let Q=String(q[$]);if(Q.charAt(0)==="@")await e0({file:m3.resolve(String(_.cwd),Q.slice(1)),noResume:!0,onReadEntry:(x)=>_.add(x)});else _.add(Q)}_.end()},Q_=J0(W5,w5,()=>{throw TypeError("file is required")},()=>{throw TypeError("file is required")},(_,q)=>{if(!f9(_))throw TypeError("file is required");if(_.gzip||_.brotli||_.zstd||_.file.endsWith(".br")||_.file.endsWith(".tbr"))throw TypeError("cannot append to compressed archives");if(!q?.length)throw TypeError("no paths specified to add/replace")});var M5=J0(Q_.syncFile,Q_.asyncFile,Q_.syncNoFile,Q_.asyncNoFile,(_,q=[])=>{Q_.validate?.(_,q),P5(_)}),P5=(_)=>{let q=_.filter;if(!_.mtimeCache)_.mtimeCache=new Map;_.filter=q?($,Q)=>q($,Q)&&!((_.mtimeCache?.get($)??Q.mtime??0)>(Q.mtime??0)):($,Q)=>!((_.mtimeCache?.get($)??Q.mtime??0)>(Q.mtime??0))};var A={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"};import B_,{join as O5}from"path";var E3={name:"@abacus-ai/cli",description:"AbacusAI's powerful CLI AI assistant with agentic browsing, listening, and coding capabilities.",appName:"AbacusAI",binName:"abacusai",version:"1.106.2714",nodeVersion:"22.19.0",author:{name:"Abacus AI"},license:"Proprietary",main:"./dist/index.js",module:"./dist/index.js",source:"./src/index.ts",type:"module",homepage:"https://desktop.abacus.ai/",files:["dist"],bugs:{url:"mailto:support@abacus.ai"},bin:{abacusai:"./dist/index.js"},scripts:{"build.tsc":"tsc --noEmit --pretty","build.bun":"bun build ./src/index.ts --minify --target=node --outdir=dist",build:"run-p build.*","watch.tsc":"tsc --watch --noEmit --pretty","watch.bun":"bun build ./src/index.ts --sourcemap --target=node --outdir=dist --watch --external=extract-zip --external=node-downloader-helper --external=semver --external=tar",watch:"run-p watch.*",test:"tsc -p ./test/tsconfig.json && bun test"},devDependencies:{"@inquirer/prompts":"^7.9.0","@tsconfig/strictest":"^2.0.7","@types/color-name":"^2.0.0","@types/glob":"^9.0.0","@types/minimatch":"^6.0.0","@types/node":"^24.9.2","@types/bun":"^1.2.2","@types/semver":"^7.7.1","extract-zip":"^2.0.1","node-downloader-helper":"^2.1.9",semver:"^7.7.3",tar:"^7.5.2",typescript:"^6.0.0-dev.20251031","npm-run-all2":"^8.0.4"},overrides:{yauzl:"3.2.0"}};import{fileURLToPath as j5}from"url";import _1 from"os";import C_ from"fs/promises";import C5 from"fs";var q1=B_.dirname(j5(import.meta.url)),e6=E3,s2=".abacusai-cli";async function $1(_){return B_.join(await c3(),`${_.binName}-${_.version}-${_1.platform()}-${_1.arch()}`)}async function c3(){let _=B_.join(q1,s2);if(await b3(_))return _;console.log(`Using home directory as ${_} is not writable.`);let q=B_.join(_1.homedir(),s2);if(await b3(q))return q;console.error(`No writable directory found under ${_} or ${q}. Using a temporary directory instead.`);let $=O5(_1.tmpdir(),s2);try{await C_.mkdir($,{recursive:!0})}catch{}return $}async function b3(_){let q=B_.join(_,`.writable-${process.pid}-${Date.now()}`);try{return await C_.mkdir(_,{recursive:!0}),await C_.writeFile(q,"true"),!0}catch($){return!1}finally{try{await C_.unlink(q)}catch{}}}async function l3(){try{let _=await d3(e6);if(!C5.existsSync(_))return await n2(e6,_),e6;return await B5(_)}catch{return e6}}async function n2(_,q){try{if(q===void 0)q=await d3(_);return await C_.writeFile(q,JSON.stringify(_,null,2)),q}catch($){return console.error(`Failed to write package data file ${q}: ${$ instanceof Error?$.message:String($)}`),null}}async function B5(_){return JSON.parse(await C_.readFile(_,"utf8"))}async function d3(_){return B_.join(await c3(),`${_.binName}-package.json`)}var Q4=H6(m8(),1),x4=H6(F1(),1),X4=H6($4(),1);import z9 from"fs";import Z6 from"fs/promises";import J_ from"os";import M9 from"path";function R$(_){let q=process.versions.node;if(X4.default(q,_))return!1;return!0}function D$(_){let q=J_.platform(),$=J_.arch(),x={x64:"x64",arm64:"arm64",ia32:"x86"}[$]||$;if(q==="win32")return`https://nodejs.org/dist/v${_}/node-v${_}-win-${x}.${$==="x64"||$==="ia32"?"zip":"7z"}`;else if(q==="darwin")return`https://nodejs.org/dist/v${_}/node-v${_}-darwin-${x}.tar.gz`;else return`https://nodejs.org/dist/v${_}/node-v${_}-linux-${x}.tar.gz`}function S$(_){let q=J_.platform(),$=J_.arch(),x={x64:"x64",arm64:"arm64",ia32:"x86"}[$]||$;if(q==="win32")return`node-v${_}-win-${x}.${$==="x64"||$==="ia32"?"zip":"7z"}`;else if(q==="darwin")return`node-v${_}-darwin-${x}.tar.gz`;else return`node-v${_}-linux-${x}.tar.gz`}async function A1(_,q,$=!1){try{if(!$){if(R$(q))return process.execPath}let Q=J_.platform()==="win32"?"node.exe":"node",x=M9.join(_,Q);if(z9.existsSync(x))return x;let X=M9.join(J_.homedir(),`node-${q}`),V=M9.join(X,"bin",Q);if(z9.existsSync(V))return await Z6.copyFile(V,x),x;console.log(`${A.dim}Downloading Node.js ${q}...${A.reset}`);let J=D$(q),K=S$(q),G=new x4.DownloaderHelper(J,J_.tmpdir(),{fileName:K});G.on("error",async(Y)=>{console.error(`${A.red}Failed to download Node.js from ${J}: ${Y}${A.reset}`),await G.stop()}),await G.start();let Z=G.getDownloadPath();if(!z9.existsSync(X))await Z6.mkdir(X);if(console.log(`${A.dim}Extracting Node.js ${q} to ${X}...${A.reset}`),K.endsWith(".tar.gz"))await h$(Z,X);else await N$(Z,X);return await Z6.copyFile(V,x),x}catch(Q){return console.error(`${A.red}Failed to download Node.js: ${Q instanceof Error?Q.message:String(Q)}
9
+ Please download and install Node.js ${q} from https://nodejs.org/`),process.execPath}}async function N$(_,q){await Z6.mkdir(q,{recursive:!0}),await Q4.default(_,{dir:q})}async function h$(_,q){await Z6.mkdir(q,{recursive:!0}),await Q6({file:_,cwd:q,strip:1})}function u$(_){let{appName:q,binName:$,version:Q}=_,x=`${q.toLowerCase()}-agent-cli-${T1.platform()}-${T1.arch()}-${Q}.tar.gz`;return{url:`https://static.abacus.ai/${$}/releases/${Q}/${x}`,fileName:x}}async function K4(_,q=!1){let{appName:$,binName:Q,version:x,homepage:X}=_;try{let{url:V,fileName:J}=u$(_),K=new V4.DownloaderHelper(V,T1.tmpdir(),{fileName:J});K.on("error",async(H)=>{console.error(`Failed to download ${V}: ${H}`),await K.stop()}),console.log(`${A.dim}Downloading ${$} ${x}...${A.reset}`),await K.start();let G=K.getDownloadPath(),Z=await $1(_);console.log(`${A.dim}Extracting ${$} ${x} to ${Z}...${A.reset}`),await k$(G,Z),await J4.rm(G);let Y=g$.join(Z,"bin",`${Q}${T1.platform()==="win32"?".cmd":""}`);if(!y$.existsSync(Y)){let H=`${$} command not found at ${Y}}`;throw console.error(H),Error(H)}return console.log(`${A.dim}${$} ${x} downloaded to ${Z}${A.reset}`),await A1(Z,_.nodeVersion,q),Y}catch(V){throw console.error(V instanceof Error?V.message:String(V)),Error(`Could not download ${$}. Please install ${$} from ${X} and re-run ${Q}.`)}}async function k$(_,q){await J4.mkdir(q,{recursive:!0}),await Q6({file:_,cwd:q,strip:1})}import U9 from"fs";import Z4 from"fs/promises";import P9 from"os";import D from"path";var G4="code-oss-dev";async function Y4(_){try{let q=P9.platform(),$=[await E$(D.dirname(D.dirname(q1))),D.dirname(D.dirname(D.dirname(q1))),await $1(_),...m$(_.appName,q)].filter((Q)=>Q!==void 0);return await Promise.any($.map(async(Q)=>{try{let x=JSON.parse(await Z4.readFile(D.join(Q,"package.json"),"utf8")),X=x.name===G4;if(!X&&!(("version"in x)&&typeof x.version==="string"&&x.version===_.version))throw Error(`Invalid version in package.json: ${x.version} (expected ${_.version})`);let V=H4(Q);if(V!==void 0){let K=q==="win32"?"node.exe":"node";return{command:X?K:D.join(Q,K),args:X?[V,Q,"agent"]:[V,"agent"],directory:Q,isCommandNode:!X,env:X?{...process.env,NODE_ENV:"development",VSCODE_DEV:"1"}:process.env}}let J=D.join(Q,"bin",`${_.binName}${q==="win32"?".cmd":""}`);if(U9.existsSync(J))return{command:J,args:[],directory:Q,isCommandNode:!1,env:process.env};throw Error(`${_.appName} command not found: ${J}`)}catch(x){let X=x instanceof Error?x.message:String(x);throw Error(`${_.appName} not found in ${Q}: ${X}`)}}))}catch(q){if(!(q instanceof AggregateError)){let $=q instanceof Error?q.message:String(q);console.info(`${A.dim}Could not find installed ${_.appName}: ${$}${A.reset}`)}return}}function m$(_,q=P9.platform()){let $=P9.homedir();if(q==="darwin")return[`/Applications/${_}.app/Contents/Resources/app`,D.join($,`Applications/${_}.app/Contents/Resources/app`)];else if(q==="win32"){let Q=process.env.ProgramFiles||"C:\\Program Files",x=process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)",X=process.env.LOCALAPPDATA||D.join($,"AppData","Local"),V=process.env.APPDATA||D.join($,"AppData","Roaming");return[D.join(Q,_),D.join(x,_),D.join(X,"Programs",_),D.join(V,_)]}else return[`/usr/share/${_.toLowerCase()}`]}async function E$(_){let q=_;while(q!==D.parse(q).root){if(H4(q)!==void 0){let Q=await c$(q);if(Q!==void 0&&b$(Q))return q}q=D.dirname(q)}return}function H4(_){let q=D.join(_,"out","cli.js");if(U9.existsSync(q))return q;return}function b$(_){return _.name===G4}async function c$(_){let q=D.join(_,"package.json");if(!U9.existsSync(q))return;let $=await Z4.readFile(q,"utf8"),Q=JSON.parse($);if("name"in Q&&typeof Q.name==="string"&&"version"in Q&&typeof Q.version==="string")return Q;return}import{execFile as i$}from"child_process";import w4 from"process";import{promisify as p$}from"util";import l$ from"https";import W4 from"os";async function v4(){return new Promise((_,q)=>{try{let $=l$.get(`https://abacus.ai/api/v0/_getCodeLlmVersion?platform=${W4.platform()}-${W4.arch()}&quality=stable`);if($.on("error",(Q)=>{let x=Q instanceof Error?Q.message:String(Q);q(Error(`Failed to find latest version from API: ${x}`))}),$.errored||$.closed){q(Error("Failed to find latest version from API: request failed immediately"));return}$.on("response",(Q)=>{let x="";Q.on("data",(X)=>{x+=X}),Q.on("end",()=>{let{statusCode:X,statusMessage:V}=Q;if(X!==200){q(Error(`API request failed: ${X} ${V}`));return}try{let J=JSON.parse(x);_(J.result)}catch(J){let K=J instanceof Error?J.message:String(J);q(Error(`Failed to parse API response as JSON: ${K}`))}})})}catch($){let Q=$ instanceof Error?$.message:String($);q(Error(`Failed to find latest version from API: ${Q}`))}})}function O9(){return d$(process.env.ABACUSAI_CLI_FORCE_NODE_DOWNLOAD)}function j9(){return f$(process.env.ABACUSAI_CLI_AUTO_UPDATE)}function d$(_){return _==="true"||_==="1"}function f$(_){return _!=="false"&&_!=="0"}var s$=p$(i$),n$="@abacus-ai/cli";async function L4(_){try{let q={..._,name:n$},$=await a$(q);if($!==null)await o$(q,$)}catch(q){throw Error(`Failed to auto upgrade ${_.appName}. To update, install the latest version from ${_.homepage}`)}}async function a$(_){try{if(!j9())return null;let q=await v4();if(q.productVersion!==_.version)return q.productVersion;return null}catch(q){return null}}async function o$(_,q="latest"){if(!j9())return;let $={..._,version:q};try{await n2($)}catch(Q){console.log(`Failed to update package data file: ${Q instanceof Error?Q.message:String(Q)}.`)}try{let{command:Q,args:x}=await t$($);console.log(`${A.dim}Upgrading ${$.appName} to ${$.version} via \`${Q} ${x.join(" ")}\`${A.reset}`);let{stdout:X,stderr:V}=await s$(Q,x);if(console.log(X),V)console.error(V);console.log(`${A.dim}${$.name}@${$.version} installed successfully${A.reset}`)}catch(Q){}}async function t$({name:_,version:q}){try{let $=w4.env.npm_package_json,Q=w4.env.npm_config_user_agent;if(Boolean(Q?.startsWith("npm"))||Boolean($?.endsWith("package.json")))return{command:"npm",args:["install","-g",`${_}@${q}`]};if(Boolean(Q?.startsWith("yarn")))return{command:"yarn",args:["global","add",`${_}@${q}`]};if(Boolean(Q?.startsWith("pnpm")))return{command:"pnpm",args:["install","-g",`${_}@${q}`]};if(Boolean(Q?.startsWith("bun")))return{command:"bun",args:["install","-g",`${_}@${q}`]}}catch($){}return{command:"npm",args:["install","-g",`${_}@${q}`]}}var C9=r$.platform();async function M4(){let _=await l3();L4(_).catch((Q)=>{console.error(Q)});let q=await Y4(_);if(q!==void 0){let Q=await A1(q.directory,_.nodeVersion,O9()),x=q.isCommandNode?Q:q.command;return z4(_,x,q.args,void 0,q.env)}let $=await K4(_,O9());return z4(_,$,[])}function z4(_,q,$,Q,x){let X=Q??process.argv.slice(2),V=[...$,...X],J=q;if(C9==="win32"&&q.includes(" "))J=`"${q}"`;let K=e$.spawn(J,V,{stdio:"inherit",shell:C9==="win32",windowsVerbatimArguments:C9==="win32",env:x??process.env});K.on("error",(G)=>{console.error(`Failed to start ${_.appName}:`,G),process.exit(1)}),K.on("exit",(G,Z)=>{if(Z)process.kill(process.pid,Z);else process.exit(G??1)})}M4().catch((_)=>{console.error(_),process.exit(1)});
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "AbacusAI's powerful CLI AI assistant with agentic browsing, listening, and coding capabilities.",
4
4
  "appName": "AbacusAI",
5
5
  "binName": "abacusai",
6
- "version": "1.106.2609",
6
+ "version": "1.106.2714",
7
7
  "nodeVersion": "22.19.0",
8
8
  "author": {
9
9
  "name": "Abacus AI"
package/dist/index.js.map DELETED
@@ -1,19 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/main.ts", "../src/download.ts", "../src/colors.ts", "../src/package.ts", "../src/node.ts", "../src/installed.ts", "../src/auto-update.ts", "../src/api.ts", "../src/envs.ts", "../src/index.ts"],
4
- "sourcesContent": [
5
- "import os from 'os';\nimport cp from 'child_process';\nimport { downloadAbacusAI } from \"./download.js\";\nimport { findInstalledAbacusAI } from './installed.js';\nimport { autoUpgradeAbacusAI } from './auto-update.js';\nimport { getPkg, type Pkg } from './package.js';\nimport { downloadNodejsIfNeeded } from './node.js';\nimport { shouldAddIndependentFlag, shouldForceNodeDownload } from './envs.js';\n\nconst platform = os.platform();\n\n/**\n * Main function that orchestrates the CLI execution\n * Exported for testing\n */\nexport async function main() {\n\tconst pkg = await getPkg();\n\n\t// auto upgrade abacusai-cli in the background\n\tautoUpgradeAbacusAI(pkg)\n\t\t.catch((err) => {\n\t\t\tconsole.error(err);\n\t\t});\n\n\t// check if abacusai is already installed\n\tconst installedAbacusAI = await findInstalledAbacusAI(pkg);\n\n\t// if found, spawn it\n\tif (installedAbacusAI !== undefined) {\n\t\tconst nodePath = await downloadNodejsIfNeeded(installedAbacusAI.directory, pkg.nodeVersion, shouldForceNodeDownload());\n\t\tconst command = installedAbacusAI.isCommandNode ? nodePath : installedAbacusAI.command;\n\t\treturn spawnAbacusAI(pkg, command, installedAbacusAI.args, undefined, installedAbacusAI.env);\n\t}\n\n\t// download it and spawn it\n\tconst downloadedPath = await downloadAbacusAI(pkg, shouldForceNodeDownload());\n\treturn spawnAbacusAI(pkg, downloadedPath, []);\n}\n\n/**\n * Process arguments to add --independent if enabled and not already present\n * Exported for testing\n * @param userArgs User arguments\n * @returns Processed arguments with --independent added if not present\n */\nexport function processArgs(userArgs: string[]): string[] {\n\tif (!shouldAddIndependentFlag()) {\n\t\treturn userArgs;\n\t}\n\n\t// if --independent is already present, return the original arguments\n\treturn userArgs.includes('--independent')\n\t\t? userArgs\n\t\t: ['--independent', ...userArgs];\n}\n\n/**\n * Spawn the AbacusAI process with the given command\n * Exported for testing\n * @param pkg Package information\n * @param command Command to spawn\n * @param commandArgs Arguments to pass to the command before the user arguments\n * @param userArgs Optional arguments to pass. If not provided, uses process.argv.slice(2)\n * @param env Optional environment variables to pass to the spawned process\n */\nexport function spawnAbacusAI(pkg: Pkg, command: string, commandArgs: string[], userArgs?: string[], env?: NodeJS.ProcessEnv) {\n\t// Add --independent parameter for the CLI internally if not already present\n\tconst argsToUse = userArgs ?? process.argv.slice(2);\n\tconst args = [...commandArgs, ...processArgs(argsToUse)];\n\n\t// Quote the command if it contains spaces on Windows\n\t// This prevents cmd.exe from splitting paths like \"C:\\Users\\John Doe\\...\" at the space\n\tlet effectiveCommand = command;\n\tif (platform === 'win32' && command.includes(' ')) {\n\t\teffectiveCommand = `\"${command}\"`;\n\t}\n\n\tconst child = cp.spawn(effectiveCommand, args, {\n\t\tstdio: 'inherit',\n\t\tshell: platform === 'win32',\n\t\twindowsVerbatimArguments: platform === 'win32',\n\t\tenv: env ?? process.env,\n\t});\n\n\tchild.on('error', (error) => {\n\t\tconsole.error(`Failed to start ${pkg.appName}:`, error);\n\t\tprocess.exit(1);\n\t});\n\n\tchild.on('exit', (code, signal) => {\n\t\tif (signal) {\n\t\t\tprocess.kill(process.pid, signal);\n\t\t} else {\n\t\t\tprocess.exit(code ?? 1);\n\t\t}\n\t});\n}\n",
6
- "import { DownloaderHelper } from \"node-downloader-helper\"\nimport path from 'path';\nimport fs from 'fs';\nimport fsp from 'fs/promises';\nimport os from 'os';\nimport { extract as extractTar } from 'tar';\nimport { colors } from './colors.js';\nimport { getPkgInstallDir, type Pkg } from \"./package.js\";\nimport { downloadNodejsIfNeeded } from \"./node.js\";\n\nexport function getDownloadUrl(pkg: Pkg) {\n\tconst { appName, binName, version } = pkg;\n\tconst fileName = `${appName.toLowerCase()}-agent-cli-${os.platform()}-${os.arch()}-${version}.tar.gz`;\n\tconst url = `https://static.abacus.ai/${binName}/releases/${version}/${fileName}`;\n\n\treturn { url, fileName };\n}\n\nexport async function downloadAbacusAI(pkg: Pkg, forceNodeDownload: boolean = false) {\n\tconst { appName, binName, version, homepage } = pkg;\n\n\ttry {\n\t\tconst { url, fileName } = getDownloadUrl(pkg);\n\n\t\tconst dl = new DownloaderHelper(url, os.tmpdir(), { fileName })\n\t\tdl.on(\"error\", async (dlErr) => {\n\t\t\tconsole.error(`Failed to download ${url}: ${dlErr}`)\n\t\t\tawait dl.stop()\n\t\t})\n\t\tconsole.log(`${colors.dim}Downloading ${appName} ${version}...${colors.reset}`);\n\t\tawait dl.start()\n\n\t\tconst downloadPath = dl.getDownloadPath();\n\n\t\t// get the installation directory\n\t\tconst extractPath = await getPkgInstallDir(pkg);\n\n\t\t// extract the archive\n\t\tconsole.log(`${colors.dim}Extracting ${appName} ${version} to ${extractPath}...${colors.reset}`);\n\t\tawait extractTarGz(downloadPath, extractPath);\n\n\t\t// remove the archive after extraction\n\t\tawait fsp.rm(downloadPath);\n\n\t\tconst command = path.join(extractPath, 'bin', `${binName}${os.platform() === 'win32' ? '.cmd' : ''}`);\n\t\tif (!fs.existsSync(command)) {\n\t\t\tconst err = `${appName} command not found at ${command}}`;\n\t\t\tconsole.error(err);\n\t\t\tthrow new Error(err);\n\t\t}\n\t\tconsole.log(`${colors.dim}${appName} ${version} downloaded to ${extractPath}${colors.reset}`);\n\n\t\t// download node.js if not present\n\t\tawait downloadNodejsIfNeeded(extractPath, pkg.nodeVersion, forceNodeDownload);\n\n\t\treturn command;\n\t} catch (error) {\n\t\tconsole.error(error instanceof Error ? error.message : String(error));\n\t\tthrow new Error(`Could not download ${appName}. Please install ${appName} from ${homepage} and re-run ${binName}.`);\n\t}\n}\n\nasync function extractTarGz(tarPath: string, extractPath: string) {\n\tawait fsp.mkdir(extractPath, { recursive: true });\n\tawait extractTar({\n\t\tfile: tarPath,\n\t\tcwd: extractPath,\n\t\tstrip: 1 // This removes the top-level directory from the archive\n\t});\n}\n",
7
- "export const colors = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n}\n",
8
- "import path, { join } from 'path';\nimport packageJson from '../package.json' with { type: 'json' };\nimport { fileURLToPath } from 'url';\nimport os from 'os';\nimport fsp from 'fs/promises';\nimport fs from 'fs';\n\nexport const __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = packageJson;\nexport type Pkg = typeof pkg;\n\nconst PKGS_DIR = '.abacusai-cli';\n\n/**\n * Get the installation directory for the package under the dist directory\n */\nexport async function getPkgInstallDir(pkg: Pkg) {\n return path.join(await getPkgsDir(), `${pkg.binName}-${pkg.version}-${os.platform()}-${os.arch()}`);\n}\n\n/**\n * Get the packages directory. It first checks the __dirname, if it is not writable, it falls back to the home directory.\n * Exported for testing\n */\nexport async function getPkgsDir() {\n const distDir = path.join(__dirname, PKGS_DIR);\n if (await isWritableDir(distDir)) {\n return distDir;\n }\n console.log(`Using home directory as ${distDir} is not writable.`);\n\n // if not writable by the current user, use the home directory\n const homeDir = path.join(os.homedir(), PKGS_DIR);\n if (await isWritableDir(homeDir)) {\n return homeDir;\n }\n\n console.error(`No writable directory found under ${distDir} or ${homeDir}. Using a temporary directory instead.`);\n const tmpDir = join(os.tmpdir(), PKGS_DIR);\n try {\n await fsp.mkdir(tmpDir, { recursive: true });\n } catch {\n // ignore\n }\n\n return tmpDir;\n}\n\n/**\n * Check if a directory is writable\n * Exported for testing\n */\nexport async function isWritableDir(dir: string) {\n const writableTestFile = path.join(\n dir,\n `.writable-${process.pid}-${Date.now()}`\n );\n try {\n // try to create the directory if it doesn't exist\n await fsp.mkdir(dir, { recursive: true });\n // try to write to the directory to check if it is writable by the current user\n await fsp.writeFile(writableTestFile, 'true');\n return true;\n } catch (error) {\n return false;\n } finally {\n // best-effort cleanup of the test file; ignore errors\n try {\n await fsp.unlink(writableTestFile);\n } catch {\n // ignore\n }\n }\n}\n\n/**\n * Get the data of the installed package in pkgs directory or fallback to package.json\n * This allows to sync the CLI version across different installation channels (e.g. npm, VSCode, etc.)\n * And also allows auto-updates in case of immutable file systems without permission issues.\n */\nexport async function getPkg(): Promise<Pkg> {\n try {\n const pkgDataPath = await getPkgDataPath(pkg);\n\n // write the package data file if it doesn't exist\n if (!fs.existsSync(pkgDataPath)) {\n await writePackageDataFile(pkg, pkgDataPath);\n return pkg;\n }\n\n // read the package data file\n return (await readPackageDataFile(pkgDataPath));\n } catch {\n // fallback to package.json\n return pkg;\n }\n}\n\n/**\n * Write the package data file to the packages directory\n * On successful write, this causes the auto-update to be triggered in the next run.\n */\nexport async function writePackageDataFile(pkg: Pkg, pkgDataPath?: string) {\n try {\n if (pkgDataPath === undefined) {\n pkgDataPath = await getPkgDataPath(pkg);\n }\n\n await fsp.writeFile(pkgDataPath, JSON.stringify(pkg, null, 2));\n return pkgDataPath;\n } catch (error) {\n console.error(`Failed to write package data file ${pkgDataPath}: ${error instanceof Error ? error.message : String(error)}`);\n return null;\n }\n}\n\n/**\n * Read package data file\n * Exported for testing\n */\nexport async function readPackageDataFile(pkgDataPath: string): Promise<Pkg> {\n return JSON.parse(await fsp.readFile(pkgDataPath, 'utf8')) as Pkg;\n}\n\n/**\n * Get the path to the package data file\n * Exported for testing\n */\nexport async function getPkgDataPath(pkg: Pkg) {\n return path.join(await getPkgsDir(), `${pkg.binName}-package.json`);\n}\n",
9
- "import extract from 'extract-zip';\nimport fs from 'fs';\nimport fsp from 'fs/promises';\nimport { DownloaderHelper } from 'node-downloader-helper';\nimport os from 'os';\nimport path from 'path';\nimport semverLt from 'semver/functions/lt.js';\nimport { extract as extractTar } from 'tar';\nimport { colors } from './colors.js';\n\n/**\n * Check if the current Node.js version meets the requirement\n * Exported for testing\n */\nexport function checkNodejsVersion(pkgNodeVersion: string) {\n\tconst nodeVersion = process.versions.node;\n\tif (semverLt(nodeVersion, pkgNodeVersion)) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Get the download URL for Node.js\n * Exported for testing\n */\nexport function getNodejsDownloadUrl(version: string): string {\n\tconst platform = os.platform();\n\tconst arch = os.arch();\n\n\t// Map Node.js architecture names\n\tconst archMap: Record<string, string> = {\n\t\t'x64': 'x64',\n\t\t'arm64': 'arm64',\n\t\t'ia32': 'x86',\n\t};\n\n\tconst nodeArch = archMap[arch] || arch;\n\n\t// Construct the download URL based on platform\n\tif (platform === 'win32') {\n\t\tconst ext = arch === 'x64' || arch === 'ia32' ? 'zip' : '7z';\n\t\treturn `https://nodejs.org/dist/v${version}/node-v${version}-win-${nodeArch}.${ext}`;\n\t} else if (platform === 'darwin') {\n\t\treturn `https://nodejs.org/dist/v${version}/node-v${version}-darwin-${nodeArch}.tar.gz`;\n\t} else {\n\t\t// Linux and other Unix-like systems\n\t\treturn `https://nodejs.org/dist/v${version}/node-v${version}-linux-${nodeArch}.tar.gz`;\n\t}\n}\n\n/**\n * Get the filename for Node.js download\n * Exported for testing\n */\nexport function getNodejsFileName(version: string): string {\n\tconst platform = os.platform();\n\tconst arch = os.arch();\n\n\tconst archMap: Record<string, string> = {\n\t\t'x64': 'x64',\n\t\t'arm64': 'arm64',\n\t\t'ia32': 'x86',\n\t};\n\n\tconst nodeArch = archMap[arch] || arch;\n\n\tif (platform === 'win32') {\n\t\tconst ext = arch === 'x64' || arch === 'ia32' ? 'zip' : '7z';\n\t\treturn `node-v${version}-win-${nodeArch}.${ext}`;\n\t} else if (platform === 'darwin') {\n\t\treturn `node-v${version}-darwin-${nodeArch}.tar.gz`;\n\t} else {\n\t\treturn `node-v${version}-linux-${nodeArch}.tar.gz`;\n\t}\n}\n\n/**\n * Download Node.js if not present and return the path to the node binary\n * @returns The path to the node binary\n */\nexport async function downloadNodejsIfNeeded(packagePath: string, pkgNodeVersion: string, forceDownload: boolean = false): Promise<string> {\n\ttry {\n\t\tif (!forceDownload) {\n\t\t\t// check if running with a supported Node.js version\n\t\t\tconst isSupported = checkNodejsVersion(pkgNodeVersion);\n\t\t\tif (isSupported) {\n\t\t\t\treturn process.execPath;\n\t\t\t}\n\t\t}\n\n\t\tconst nodeExe = os.platform() === 'win32' ? 'node.exe' : 'node';\n\n\t\t// check if the node binary is present in the package path\n\t\tconst nodeBin = path.join(packagePath, nodeExe);\n\t\tif (fs.existsSync(nodeBin)) {\n\t\t\treturn nodeBin;\n\t\t}\n\n\t\t// if a node installation is present, use it\n\t\tconst installPath = path.join(os.homedir(), `node-${pkgNodeVersion}`);\n\t\tconst installedNodeBin = path.join(installPath, 'bin', nodeExe);\n\t\tif (fs.existsSync(installedNodeBin)) {\n\t\t\tawait fsp.copyFile(installedNodeBin, nodeBin);\n\t\t\treturn nodeBin;\n\t\t}\n\n\t\t// if no node installation is present, download it\n\t\tconsole.log(`${colors.dim}Downloading Node.js ${pkgNodeVersion}...${colors.reset}`);\n\t\tconst url = getNodejsDownloadUrl(pkgNodeVersion);\n\t\tconst downloadFileName = getNodejsFileName(pkgNodeVersion);\n\t\tconst dl = new DownloaderHelper(url, os.tmpdir(), { fileName: downloadFileName });\n\n\t\tdl.on('error', async (dlErr) => {\n\t\t\tconsole.error(`${colors.red}Failed to download Node.js from ${url}: ${dlErr}${colors.reset}`);\n\t\t\tawait dl.stop();\n\t\t});\n\n\t\tawait dl.start();\n\t\tconst downloadPath = dl.getDownloadPath();\n\n\t\tif (!fs.existsSync(installPath)) {\n\t\t\tawait fsp.mkdir(installPath);\n\t\t}\n\n\t\t// Extract the archive\n\t\tconsole.log(`${colors.dim}Extracting Node.js ${pkgNodeVersion} to ${installPath}...${colors.reset}`);\n\n\t\tif (downloadFileName.endsWith('.tar.gz')) {\n\t\t\tawait unTarGiz(downloadPath, installPath);\n\t\t} else {\n\t\t\tawait unZip(downloadPath, installPath);\n\t\t}\n\n\t\t// copy the node binary to the package path\n\t\tawait fsp.copyFile(installedNodeBin, nodeBin);\n\t\treturn nodeBin;\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`${colors.red}Failed to download Node.js: ${error instanceof Error ? error.message : String(error)}\nPlease download and install Node.js ${pkgNodeVersion} from https://nodejs.org/`);\n\t\t// return the current node\n\t\treturn process.execPath;\n\t}\n}\n\nasync function unZip(zipPath: string, unzipPath: string) {\n\tawait fsp.mkdir(unzipPath, { recursive: true });\n\tawait extract(zipPath, { dir: unzipPath });\n}\n\nasync function unTarGiz(tarPath: string, extractPath: string) {\n\tawait fsp.mkdir(extractPath, { recursive: true });\n\tawait extractTar({\n\t\tfile: tarPath,\n\t\tcwd: extractPath,\n\t\tstrip: 1 // This removes the top-level directory from the archive\n\t});\n}\n",
10
- "import fs from 'fs';\nimport fsp from 'fs/promises';\nimport os from 'os';\nimport path from 'path';\nimport { colors } from './colors';\nimport { getPkgInstallDir, type Pkg } from \"./package.js\";\nimport { __dirname } from './package.js';\n\nexport interface InstalledAbacusAI {\n\tcommand: string;\n\tisCommandNode: boolean;\n\targs: string[];\n\tdirectory: string;\n\tenv: NodeJS.ProcessEnv;\n}\n\ntype PackageJson = { name?: string; version?: string; };\n\nconst DEV_PKG_NAME = 'code-oss-dev';\n\nexport async function findInstalledAbacusAI(pkg: Pkg): Promise<InstalledAbacusAI | undefined> {\n\ttry {\n\t\tconst platform = os.platform();\n\n\t\tconst possiblePaths = [\n\t\t\t// dev CLI installation\n\t\t\t(await findDevCliPath(path.dirname(path.dirname(__dirname)))),\n\t\t\t// local package in the repository root/packages/abacusai-cli/dist|src -> root\n\t\t\tpath.dirname(path.dirname(path.dirname(__dirname))),\n\t\t\t// installed by the npm pkg\n\t\t\tawait getPkgInstallDir(pkg),\n\t\t\t// installed by the OS\n\t\t\t...osInstalledPaths(pkg.appName, platform),\n\t\t].filter((candidate): candidate is string => candidate !== undefined);\n\n\t\t// find the first installation that exists\n\t\treturn await Promise.any(possiblePaths.map(async (candidate) => {\n\t\t\ttry {\n\t\t\t\t// try to read the version from the package.json if it exists\n\t\t\t\tconst packageJson = JSON.parse(await fsp.readFile(path.join(candidate, 'package.json'), 'utf8')) as PackageJson;\n\n\t\t\t\tconst isDev = packageJson.name === DEV_PKG_NAME;\n\n\t\t\t\t// check if the version is the expected one (skip if dev build)\n\t\t\t\tif (!isDev && !('version' in packageJson && typeof packageJson.version === 'string' && packageJson.version === pkg.version)) {\n\t\t\t\t\tthrow new Error(`Invalid version in package.json: ${packageJson.version} (expected ${pkg.version})`);\n\t\t\t\t}\n\n\t\t\t\t// check if out/cli.js exists, if so try to launch it with node\n\t\t\t\t// Mimics scripts/code-cli-agent.sh: node out/cli.js $ROOT agent \"$@\"\n\t\t\t\tconst cliScript = getCliOutJsPath(candidate);\n\t\t\t\tif (cliScript !== undefined) {\n\t\t\t\t\tconst node = platform === 'win32' ? 'node.exe' : 'node';\n\n\t\t\t\t\t// use system node for dev, otherwise use candidate directory's node binary\n\t\t\t\t\tconst command = isDev\n\t\t\t\t\t\t? node\n\t\t\t\t\t\t: path.join(candidate, node);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcommand,\n\t\t\t\t\t\targs: isDev ? [cliScript, candidate, 'agent'] : [cliScript, 'agent'],\n\t\t\t\t\t\tdirectory: candidate,\n\t\t\t\t\t\tisCommandNode: !isDev,\n\t\t\t\t\t\tenv: isDev ? { ...process.env, NODE_ENV: 'development', VSCODE_DEV: '1' } : process.env,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// check if the abacusai bash/cmd command exists\n\t\t\t\tconst command = path.join(candidate, 'bin', `${pkg.binName}${platform === 'win32' ? '.cmd' : ''}`);\n\t\t\t\tif (fs.existsSync(command)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcommand,\n\t\t\t\t\t\targs: [],\n\t\t\t\t\t\tdirectory: candidate,\n\t\t\t\t\t\tisCommandNode: false,\n\t\t\t\t\t\tenv: process.env,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(`${pkg.appName} command not found: ${command}`);\n\t\t\t} catch (err) {\n\t\t\t\t// does not exist or version mismatch\n\t\t\t\tconst errorMessage = err instanceof Error ? err.message : String(err);\n\t\t\t\tthrow new Error(`${pkg.appName} not found in ${candidate}: ${errorMessage}`);\n\t\t\t}\n\t\t}));\n\t} catch (error) {\n\t\tif (!(error instanceof AggregateError)) {\n\t\t\tconst errMessage = error instanceof Error ? error.message : String(error);\n\t\t\tconsole.info(`${colors.dim}Could not find installed ${pkg.appName}: ${errMessage}${colors.reset}`);\n\t\t}\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Get the paths to the installed AbacusAI on the OS\n * @param appName The name of the application\n * @param platform The platform to check for installed AbacusAI\n * @returns The paths to the installed AbacusAI\n * Exported for testing\n */\nexport function osInstalledPaths(appName: string, platform = os.platform()) {\n\tconst homedir = os.homedir();\n\n\tif (platform === 'darwin') {\n\t\t// macOS paths\n\t\treturn [\n\t\t\t`/Applications/${appName}.app/Contents/Resources/app`,\n\t\t\tpath.join(homedir, `Applications/${appName}.app/Contents/Resources/app`)\n\t\t];\n\t} else if (platform === 'win32') {\n\t\t// Windows paths\n\t\tconst programFiles = process.env['ProgramFiles'] || 'C:\\\\Program Files';\n\t\tconst programFilesX86 = process.env['ProgramFiles(x86)'] || 'C:\\\\Program Files (x86)';\n\t\tconst localAppData = process.env['LOCALAPPDATA'] || path.join(homedir, 'AppData', 'Local');\n\t\tconst appData = process.env['APPDATA'] || path.join(homedir, 'AppData', 'Roaming');\n\n\t\treturn [\n\t\t\tpath.join(programFiles, appName),\n\t\t\tpath.join(programFilesX86, appName),\n\t\t\tpath.join(localAppData, 'Programs', appName),\n\t\t\tpath.join(appData, appName)\n\t\t];\n\t} else {\n\t\t// Linux and other Unix-like systems\n\t\treturn [\n\t\t\t`/usr/share/${appName.toLowerCase()}`\n\t\t];\n\t}\n}\n\n/**\n * Since the abacusai launcher might be installed in a node_modules directory, we need to walk up the directory tree to find the repo root\n*/\nexport async function findDevCliPath(startDir: string): Promise<string | undefined> {\n\tlet dir = startDir;\n\twhile (dir !== path.parse(dir).root) {\n\t\tconst cliOutJsPath = getCliOutJsPath(dir);\n\t\tif (cliOutJsPath !== undefined) {\n\t\t\tconst packageJson = await readPackageJson(dir);\n\t\t\tif (packageJson !== undefined && isDevRepository(packageJson)) {\n\t\t\t\treturn dir;\n\t\t\t}\n\t\t}\n\t\tdir = path.dirname(dir);\n\t}\n\treturn undefined;\n}\n\nfunction getCliOutJsPath(dir: string): string | undefined {\n\tconst cliOutJsPath = path.join(dir, 'out', 'cli.js');\n\tif (fs.existsSync(cliOutJsPath)) {\n\t\treturn cliOutJsPath;\n\t}\n\treturn undefined;\n}\n\nfunction isDevRepository(packageJson: PackageJson): boolean {\n\treturn packageJson.name === DEV_PKG_NAME;\n}\n\nasync function readPackageJson(dir: string): Promise<PackageJson | undefined> {\n\tconst packageJsonPath = path.join(dir, 'package.json');\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\treturn undefined;\n\t}\n\n\tconst text = await fsp.readFile(packageJsonPath, 'utf8');\n\tconst packageJson = JSON.parse(text);\n\n\t// validate the package.json\n\tif ('name' in packageJson && typeof packageJson.name === 'string' && 'version' in packageJson && typeof packageJson.version === 'string') {\n\t\treturn packageJson;\n\t}\n\n\treturn undefined;\n}\n",
11
- "import { execFile } from \"child_process\";\nimport process from 'process';\nimport { promisify } from \"util\";\nimport { colors } from \"./colors.js\";\nimport { writePackageDataFile, type Pkg } from \"./package.js\";\nimport { getLatestVersion } from \"./api.js\";\nimport { isAutoUpdateEnabled } from './envs.js';\n\nconst execFileAsync = promisify(execFile)\n\nconst targetPkgName = '@abacus-ai/cli';\n\n// auto self update notifier\nexport async function autoUpgradeAbacusAI(currentPkg: Pkg) {\n\ttry {\n\t\t// override the target package name\n\t\tconst pkg = { ...currentPkg, name: targetPkgName };\n\n\t\tconst targetVersion = await getUpdateVersion(pkg)\n\t\tif (targetVersion !== null) {\n\t\t\tawait upgradeAbacusAI(pkg, targetVersion)\n\t\t}\n\t} catch (err) {\n\t\t// console.log(err instanceof Error ? err.message : String(err))\n\t\tthrow new Error(`Failed to auto upgrade ${currentPkg.appName}. To update, install the latest version from ${currentPkg.homepage}`)\n\t}\n}\n\n/**\n * Get the update version for the current package or null if no update is available\n * Exported for testing\n */\nexport async function getUpdateVersion(currentPkg: Pkg) {\n\ttry {\n\t\tif (!isAutoUpdateEnabled()) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// check if the latest version via API is different from the current version\n\t\tconst latestVersion = await getLatestVersion();\n\t\tif (latestVersion.productVersion !== currentPkg.version) {\n\t\t\treturn latestVersion.productVersion;\n\t\t}\n\t\treturn null;\n\t} catch (err) {\n\t\treturn null;\n\t}\n}\n\n/**\n * Upgrade AbacusAI to the target version\n * Exported for testing\n */\nexport async function upgradeAbacusAI(pkg: Pkg, targetVersion: string = 'latest') {\n\tif (!isAutoUpdateEnabled()) {\n\t\treturn;\n\t}\n\n\tconst newPkg = { ...pkg, version: targetVersion };\n\n\t// Update the package data file to trigger the auto-update in the next run\n\ttry {\n\t\tawait writePackageDataFile(newPkg);\n\t} catch (err) {\n\t\tconsole.log(`Failed to update package data file: ${err instanceof Error ? err.message : String(err)}.`)\n\t}\n\n\t// Try to update the npm package to the target version for the next run\n\ttry {\n\t\tconst { command, args } = await getInstallCommand(newPkg)\n\n\t\tconsole.log(`${colors.dim}Upgrading ${newPkg.appName} to ${newPkg.version} via \\`${command} ${args.join(' ')}\\`${colors.reset}`)\n\t\tconst { stdout, stderr } = await execFileAsync(command, args)\n\t\tconsole.log(stdout);\n\t\tif (stderr) {\n\t\t\tconsole.error(stderr);\n\t\t}\n\n\t\tconsole.log(`${colors.dim}${newPkg.name}@${newPkg.version} installed successfully${colors.reset}`)\n\t} catch (err) {\n\t\t// console.log(`Failed to upgrade ${pkg.appName}@${targetVersion} via npm: ${err instanceof Error ? err.message : String(err)}.`)\n\t}\n}\n\n/**\n * Get the install command for a package manager\n * Exported for testing\n */\nexport async function getInstallCommand({ name, version }: Pkg) {\n\ttry {\n\t\tconst packageJson = process.env.npm_package_json;\n\t\tconst userAgent = process.env.npm_config_user_agent;\n\n\t\tconst isNpm =\n\t\t\tBoolean(userAgent?.startsWith('npm')) ||\n\t\t\tBoolean(packageJson?.endsWith('package.json'));\n\n\t\tif (isNpm) {\n\t\t\treturn { command: \"npm\", args: [\"install\", \"-g\", `${name}@${version}`] }\n\t\t}\n\n\t\tconst isYarn = Boolean(userAgent?.startsWith('yarn'));\n\t\tif (isYarn) {\n\t\t\treturn { command: \"yarn\", args: [\"global\", \"add\", `${name}@${version}`] }\n\t\t}\n\n\t\tconst isPnpm = Boolean(userAgent?.startsWith('pnpm'));\n\t\tif (isPnpm) {\n\t\t\treturn { command: \"pnpm\", args: [\"install\", \"-g\", `${name}@${version}`] }\n\t\t}\n\n\t\tconst isBun = Boolean(userAgent?.startsWith('bun'));\n\t\tif (isBun) {\n\t\t\treturn { command: \"bun\", args: [\"install\", \"-g\", `${name}@${version}`] }\n\t\t}\n\t} catch (err) {\n\t\t// default to npm\n\t}\n\treturn { command: \"npm\", args: [\"install\", \"-g\", `${name}@${version}`] }\n}\n",
12
- "import https from 'https';\nimport os from 'os';\n\nexport interface VersionInfo {\n url: string;\n name: string;\n version: string;\n productVersion: string;\n hash: string;\n timestamp: string;\n sha256hash: string;\n}\n\nexport interface ApiResponse {\n success: boolean;\n result: VersionInfo;\n}\n\nexport async function getLatestVersion(): Promise<VersionInfo> {\n return new Promise<VersionInfo>((resolve, reject) => {\n try {\n const request = https.get(`https://abacus.ai/api/v0/_getCodeLlmVersion?platform=${os.platform()}-${os.arch()}&quality=stable`);\n \n // Register error handler immediately to catch early errors (e.g., DNS failures)\n request.on('error', (error) => {\n const errMessage = error instanceof Error ? error.message : String(error);\n reject(new Error(`Failed to find latest version from API: ${errMessage}`));\n });\n \n // Check if request already errored or closed before handlers were attached\n if (request.errored || request.closed) {\n reject(new Error(`Failed to find latest version from API: request failed immediately`));\n return;\n }\n \n request.on('response', (response) => {\n let data = '';\n response.on('data', (chunk) => {\n data += chunk;\n });\n response.on('end', () => {\n const { statusCode, statusMessage } = response;\n if (statusCode !== 200) {\n reject(new Error(`API request failed: ${statusCode} ${statusMessage}`));\n return;\n }\n try {\n const apiResponse = JSON.parse(data) as ApiResponse;\n resolve(apiResponse.result);\n } catch (parseError) {\n const message =\n parseError instanceof Error ? parseError.message : String(parseError);\n reject(new Error(`Failed to parse API response as JSON: ${message}`));\n }\n });\n });\n } catch (error) {\n const errMessage = error instanceof Error ? error.message : String(error);\n reject(new Error(`Failed to find latest version from API: ${errMessage}`));\n }\n });\n}\n",
13
- "/**\n * Environment flags that configure the CLI launch behavior\n */\nexport enum EnvFlags {\n\tForceNodeDownload = 'ABACUSAI_CLI_FORCE_NODE_DOWNLOAD',\n\tAutoUpdate = 'ABACUSAI_CLI_AUTO_UPDATE',\n\tAddIndependentFlag = 'ABACUSAI_CLI_ADD_INDEPENDENT_FLAG',\n}\n\n/**\n * Check if the independent flag is enabled\n * @returns Will add --independent flag if the flag is not set to false or 0\n */\nexport function shouldAddIndependentFlag(): boolean {\n\treturn isNotEnvFalsy(process.env[EnvFlags.AddIndependentFlag]);\n}\n\n/**\n * Check if node download should be forced instead of using the current Node.js version\n * @returns Will force node download if the flag is set to true or 1\n */\nexport function shouldForceNodeDownload(): boolean {\n\treturn isEnvTruthy(process.env[EnvFlags.ForceNodeDownload]);\n}\n\n/**\n * Check if auto-update is enabled configurable via `ABACUSAI_CLI_AUTO_UPDATE` environment variable\n * @returns Will enable auto-update if the flag is not set to false or 0\n */\nexport function isAutoUpdateEnabled(): boolean {\n\treturn isNotEnvFalsy(process.env[EnvFlags.AutoUpdate]);\n}\n\nfunction isEnvTruthy(flag: string | undefined): boolean {\n\treturn flag === 'true' || flag === '1';\n}\n\nfunction isNotEnvFalsy(flag: string | undefined): boolean {\n\treturn flag !== 'false' && flag !== '0';\n}\n",
14
- "#!/usr/bin/env node\n\nimport { main } from './main.js';\n\nmain().catch((err) => {\n console.error(err);\n process.exit(1);\n});\n"
15
- ],
16
- "mappings": ";;;AAAA;AACA;;;ACDA,6BAAS;AACT;AACA;AACA;AACA;AACA,oBAAS;;;ACLF,IAAM,SAAS;AAAA,EACpB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AACT;;;ACbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AAEO,IAAM,aAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;AAEpE,IAAM,MAAM;AAGZ,IAAM,WAAW;AAKjB,eAAsB,gBAAgB,CAAC,MAAU;AAAA,EAC/C,OAAO,KAAK,KAAK,MAAM,WAAW,GAAG,GAAG,KAAI,WAAW,KAAI,WAAW,GAAG,SAAS,KAAK,GAAG,KAAK,GAAG;AAAA;AAOpG,eAAsB,UAAU,GAAG;AAAA,EACjC,MAAM,UAAU,KAAK,KAAK,YAAW,QAAQ;AAAA,EAC7C,IAAI,MAAM,cAAc,OAAO,GAAG;AAAA,IAChC,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,IAAI,2BAA2B,0BAA0B;AAAA,EAGjE,MAAM,UAAU,KAAK,KAAK,GAAG,QAAQ,GAAG,QAAQ;AAAA,EAChD,IAAI,MAAM,cAAc,OAAO,GAAG;AAAA,IAChC,OAAO;AAAA,EACT;AAAA,EAEA,QAAQ,MAAM,qCAAqC,cAAc,+CAA+C;AAAA,EAChH,MAAM,SAAS,KAAK,GAAG,OAAO,GAAG,QAAQ;AAAA,EACzC,IAAI;AAAA,IACF,MAAM,IAAI,MAAM,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,IAC3C,MAAM;AAAA,EAIR,OAAO;AAAA;AAOT,eAAsB,aAAa,CAAC,KAAa;AAAA,EAC/C,MAAM,mBAAmB,KAAK,KAC5B,KACA,aAAa,QAAQ,OAAO,KAAK,IAAI,GACvC;AAAA,EACA,IAAI;AAAA,IAEF,MAAM,IAAI,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,IAExC,MAAM,IAAI,UAAU,kBAAkB,MAAM;AAAA,IAC5C,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IACd,OAAO;AAAA,YACP;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,IAAI,OAAO,gBAAgB;AAAA,MACjC,MAAM;AAAA;AAAA;AAWZ,eAAsB,MAAM,GAAiB;AAAA,EAC3C,IAAI;AAAA,IACF,MAAM,cAAc,MAAM,eAAe,GAAG;AAAA,IAG5C,IAAI,CAAC,GAAG,WAAW,WAAW,GAAG;AAAA,MAC/B,MAAM,qBAAqB,KAAK,WAAW;AAAA,MAC3C,OAAO;AAAA,IACT;AAAA,IAGA,OAAQ,MAAM,oBAAoB,WAAW;AAAA,IAC7C,MAAM;AAAA,IAEN,OAAO;AAAA;AAAA;AAQX,eAAsB,oBAAoB,CAAC,MAAU,aAAsB;AAAA,EACzE,IAAI;AAAA,IACF,IAAI,gBAAgB,WAAW;AAAA,MAC7B,cAAc,MAAM,eAAe,IAAG;AAAA,IACxC;AAAA,IAEA,MAAM,IAAI,UAAU,aAAa,KAAK,UAAU,MAAK,MAAM,CAAC,CAAC;AAAA,IAC7D,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IACd,QAAQ,MAAM,qCAAqC,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;AAAA,IAC3H,OAAO;AAAA;AAAA;AAQX,eAAsB,mBAAmB,CAAC,aAAmC;AAAA,EAC3E,OAAO,KAAK,MAAM,MAAM,IAAI,SAAS,aAAa,MAAM,CAAC;AAAA;AAO3D,eAAsB,cAAc,CAAC,MAAU;AAAA,EAC7C,OAAO,KAAK,KAAK,MAAM,WAAW,GAAG,GAAG,KAAI,sBAAsB;AAAA;;;AClIpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAS;AAOF,SAAS,kBAAkB,CAAC,gBAAwB;AAAA,EAC1D,MAAM,cAAc,QAAQ,SAAS;AAAA,EACrC,IAAI,SAAS,aAAa,cAAc,GAAG;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AAOD,SAAS,oBAAoB,CAAC,SAAyB;AAAA,EAC7D,MAAM,WAAW,IAAG,SAAS;AAAA,EAC7B,MAAM,OAAO,IAAG,KAAK;AAAA,EAGrB,MAAM,UAAkC;AAAA,IACvC,KAAO;AAAA,IACP,OAAS;AAAA,IACT,MAAQ;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,QAAQ,SAAS;AAAA,EAGlC,IAAI,aAAa,SAAS;AAAA,IACzB,MAAM,MAAM,SAAS,SAAS,SAAS,SAAS,QAAQ;AAAA,IACxD,OAAO,4BAA4B,iBAAiB,eAAe,YAAY;AAAA,EAChF,EAAO,SAAI,aAAa,UAAU;AAAA,IACjC,OAAO,4BAA4B,iBAAiB,kBAAkB;AAAA,EACvE,EAAO;AAAA,IAEN,OAAO,4BAA4B,iBAAiB,iBAAiB;AAAA;AAAA;AAQhE,SAAS,iBAAiB,CAAC,SAAyB;AAAA,EAC1D,MAAM,WAAW,IAAG,SAAS;AAAA,EAC7B,MAAM,OAAO,IAAG,KAAK;AAAA,EAErB,MAAM,UAAkC;AAAA,IACvC,KAAO;AAAA,IACP,OAAS;AAAA,IACT,MAAQ;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,QAAQ,SAAS;AAAA,EAElC,IAAI,aAAa,SAAS;AAAA,IACzB,MAAM,MAAM,SAAS,SAAS,SAAS,SAAS,QAAQ;AAAA,IACxD,OAAO,SAAS,eAAe,YAAY;AAAA,EAC5C,EAAO,SAAI,aAAa,UAAU;AAAA,IACjC,OAAO,SAAS,kBAAkB;AAAA,EACnC,EAAO;AAAA,IACN,OAAO,SAAS,iBAAiB;AAAA;AAAA;AAQnC,eAAsB,sBAAsB,CAAC,aAAqB,gBAAwB,gBAAyB,OAAwB;AAAA,EAC1I,IAAI;AAAA,IACH,IAAI,CAAC,eAAe;AAAA,MAEnB,MAAM,cAAc,mBAAmB,cAAc;AAAA,MACrD,IAAI,aAAa;AAAA,QAChB,OAAO,QAAQ;AAAA,MAChB;AAAA,IACD;AAAA,IAEA,MAAM,UAAU,IAAG,SAAS,MAAM,UAAU,aAAa;AAAA,IAGzD,MAAM,UAAU,MAAK,KAAK,aAAa,OAAO;AAAA,IAC9C,IAAI,IAAG,WAAW,OAAO,GAAG;AAAA,MAC3B,OAAO;AAAA,IACR;AAAA,IAGA,MAAM,cAAc,MAAK,KAAK,IAAG,QAAQ,GAAG,QAAQ,gBAAgB;AAAA,IACpE,MAAM,mBAAmB,MAAK,KAAK,aAAa,OAAO,OAAO;AAAA,IAC9D,IAAI,IAAG,WAAW,gBAAgB,GAAG;AAAA,MACpC,MAAM,KAAI,SAAS,kBAAkB,OAAO;AAAA,MAC5C,OAAO;AAAA,IACR;AAAA,IAGA,QAAQ,IAAI,GAAG,OAAO,0BAA0B,oBAAoB,OAAO,OAAO;AAAA,IAClF,MAAM,MAAM,qBAAqB,cAAc;AAAA,IAC/C,MAAM,mBAAmB,kBAAkB,cAAc;AAAA,IACzD,MAAM,KAAK,IAAI,iBAAiB,KAAK,IAAG,OAAO,GAAG,EAAE,UAAU,iBAAiB,CAAC;AAAA,IAEhF,GAAG,GAAG,SAAS,OAAO,UAAU;AAAA,MAC/B,QAAQ,MAAM,GAAG,OAAO,sCAAsC,QAAQ,QAAQ,OAAO,OAAO;AAAA,MAC5F,MAAM,GAAG,KAAK;AAAA,KACd;AAAA,IAED,MAAM,GAAG,MAAM;AAAA,IACf,MAAM,eAAe,GAAG,gBAAgB;AAAA,IAExC,IAAI,CAAC,IAAG,WAAW,WAAW,GAAG;AAAA,MAChC,MAAM,KAAI,MAAM,WAAW;AAAA,IAC5B;AAAA,IAGA,QAAQ,IAAI,GAAG,OAAO,yBAAyB,qBAAqB,iBAAiB,OAAO,OAAO;AAAA,IAEnG,IAAI,iBAAiB,SAAS,SAAS,GAAG;AAAA,MACzC,MAAM,SAAS,cAAc,WAAW;AAAA,IACzC,EAAO;AAAA,MACN,MAAM,MAAM,cAAc,WAAW;AAAA;AAAA,IAItC,MAAM,KAAI,SAAS,kBAAkB,OAAO;AAAA,IAC5C,OAAO;AAAA,IACN,OAAO,OAAO;AAAA,IACf,QAAQ,MACP,GAAG,OAAO,kCAAkC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,sCAC9D,yCAAyC;AAAA,IAE7E,OAAO,QAAQ;AAAA;AAAA;AAIjB,eAAe,KAAK,CAAC,SAAiB,WAAmB;AAAA,EACxD,MAAM,KAAI,MAAM,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAC9C,MAAM,QAAQ,SAAS,EAAE,KAAK,UAAU,CAAC;AAAA;AAG1C,eAAe,QAAQ,CAAC,SAAiB,aAAqB;AAAA,EAC7D,MAAM,KAAI,MAAM,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,EAChD,MAAM,WAAW;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACR,CAAC;AAAA;;;AHpJK,SAAS,cAAc,CAAC,MAAU;AAAA,EACxC,QAAQ,SAAS,SAAS,YAAY;AAAA,EACtC,MAAM,WAAW,GAAG,QAAQ,YAAY,eAAe,IAAG,SAAS,KAAK,IAAG,KAAK,KAAK;AAAA,EACrF,MAAM,MAAM,4BAA4B,oBAAoB,WAAW;AAAA,EAEvE,OAAO,EAAE,KAAK,SAAS;AAAA;AAGxB,eAAsB,gBAAgB,CAAC,MAAU,oBAA6B,OAAO;AAAA,EACpF,QAAQ,SAAS,SAAS,SAAS,aAAa;AAAA,EAEhD,IAAI;AAAA,IACH,QAAQ,KAAK,aAAa,eAAe,IAAG;AAAA,IAE5C,MAAM,KAAK,IAAI,kBAAiB,KAAK,IAAG,OAAO,GAAG,EAAE,SAAS,CAAC;AAAA,IAC9D,GAAG,GAAG,SAAS,OAAO,UAAU;AAAA,MAC/B,QAAQ,MAAM,sBAAsB,QAAQ,OAAO;AAAA,MACnD,MAAM,GAAG,KAAK;AAAA,KACd;AAAA,IACD,QAAQ,IAAI,GAAG,OAAO,kBAAkB,WAAW,aAAa,OAAO,OAAO;AAAA,IAC9E,MAAM,GAAG,MAAM;AAAA,IAEf,MAAM,eAAe,GAAG,gBAAgB;AAAA,IAGxC,MAAM,cAAc,MAAM,iBAAiB,IAAG;AAAA,IAG9C,QAAQ,IAAI,GAAG,OAAO,iBAAiB,WAAW,cAAc,iBAAiB,OAAO,OAAO;AAAA,IAC/F,MAAM,aAAa,cAAc,WAAW;AAAA,IAG5C,MAAM,KAAI,GAAG,YAAY;AAAA,IAEzB,MAAM,UAAU,MAAK,KAAK,aAAa,OAAO,GAAG,UAAU,IAAG,SAAS,MAAM,UAAU,SAAS,IAAI;AAAA,IACpG,IAAI,CAAC,IAAG,WAAW,OAAO,GAAG;AAAA,MAC5B,MAAM,MAAM,GAAG,gCAAgC;AAAA,MAC/C,QAAQ,MAAM,GAAG;AAAA,MACjB,MAAM,IAAI,MAAM,GAAG;AAAA,IACpB;AAAA,IACA,QAAQ,IAAI,GAAG,OAAO,MAAM,WAAW,yBAAyB,cAAc,OAAO,OAAO;AAAA,IAG5F,MAAM,uBAAuB,aAAa,KAAI,aAAa,iBAAiB;AAAA,IAE5E,OAAO;AAAA,IACN,OAAO,OAAO;AAAA,IACf,QAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,IACpE,MAAM,IAAI,MAAM,sBAAsB,2BAA2B,gBAAgB,uBAAuB,UAAU;AAAA;AAAA;AAIpH,eAAe,YAAY,CAAC,SAAiB,aAAqB;AAAA,EACjE,MAAM,KAAI,MAAM,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,EAChD,MAAM,YAAW;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACR,CAAC;AAAA;;;AIpEF;AACA;AACA;AACA;AAeA,IAAM,eAAe;AAErB,eAAsB,qBAAqB,CAAC,MAAkD;AAAA,EAC7F,IAAI;AAAA,IACH,MAAM,WAAW,IAAG,SAAS;AAAA,IAE7B,MAAM,gBAAgB;AAAA,MAEpB,MAAM,eAAe,MAAK,QAAQ,MAAK,QAAQ,UAAS,CAAC,CAAC;AAAA,MAE3D,MAAK,QAAQ,MAAK,QAAQ,MAAK,QAAQ,UAAS,CAAC,CAAC;AAAA,MAElD,MAAM,iBAAiB,IAAG;AAAA,MAE1B,GAAG,iBAAiB,KAAI,SAAS,QAAQ;AAAA,IAC1C,EAAE,OAAO,CAAC,cAAmC,cAAc,SAAS;AAAA,IAGpE,OAAO,MAAM,QAAQ,IAAI,cAAc,IAAI,OAAO,cAAc;AAAA,MAC/D,IAAI;AAAA,QAEH,MAAM,cAAc,KAAK,MAAM,MAAM,KAAI,SAAS,MAAK,KAAK,WAAW,cAAc,GAAG,MAAM,CAAC;AAAA,QAE/F,MAAM,QAAQ,YAAY,SAAS;AAAA,QAGnC,IAAI,CAAC,SAAS,GAAE,aAAa,gBAAe,OAAO,YAAY,YAAY,YAAY,YAAY,YAAY,KAAI,UAAU;AAAA,UAC5H,MAAM,IAAI,MAAM,oCAAoC,YAAY,qBAAqB,KAAI,UAAU;AAAA,QACpG;AAAA,QAIA,MAAM,YAAY,gBAAgB,SAAS;AAAA,QAC3C,IAAI,cAAc,WAAW;AAAA,UAC5B,MAAM,OAAO,aAAa,UAAU,aAAa;AAAA,UAGjD,MAAM,WAAU,QACb,OACA,MAAK,KAAK,WAAW,IAAI;AAAA,UAC5B,OAAO;AAAA,YACN;AAAA,YACA,MAAM,QAAQ,CAAC,WAAW,WAAW,OAAO,IAAI,CAAC,WAAW,OAAO;AAAA,YACnE,WAAW;AAAA,YACX,eAAe,CAAC;AAAA,YAChB,KAAK,QAAQ,KAAK,QAAQ,KAAK,UAAU,eAAe,YAAY,IAAI,IAAI,QAAQ;AAAA,UACrF;AAAA,QACD;AAAA,QAGA,MAAM,UAAU,MAAK,KAAK,WAAW,OAAO,GAAG,KAAI,UAAU,aAAa,UAAU,SAAS,IAAI;AAAA,QACjG,IAAI,IAAG,WAAW,OAAO,GAAG;AAAA,UAC3B,OAAO;AAAA,YACN;AAAA,YACA,MAAM,CAAC;AAAA,YACP,WAAW;AAAA,YACX,eAAe;AAAA,YACf,KAAK,QAAQ;AAAA,UACd;AAAA,QACD;AAAA,QAEA,MAAM,IAAI,MAAM,GAAG,KAAI,8BAA8B,SAAS;AAAA,QAC7D,OAAO,KAAK;AAAA,QAEb,MAAM,eAAe,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,QACpE,MAAM,IAAI,MAAM,GAAG,KAAI,wBAAwB,cAAc,cAAc;AAAA;AAAA,KAE5E,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,IACf,IAAI,EAAE,iBAAiB,iBAAiB;AAAA,MACvC,MAAM,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACxE,QAAQ,KAAK,GAAG,OAAO,+BAA+B,KAAI,YAAY,aAAa,OAAO,OAAO;AAAA,IAClG;AAAA,IACA;AAAA;AAAA;AAWK,SAAS,gBAAgB,CAAC,SAAiB,WAAW,IAAG,SAAS,GAAG;AAAA,EAC3E,MAAM,UAAU,IAAG,QAAQ;AAAA,EAE3B,IAAI,aAAa,UAAU;AAAA,IAE1B,OAAO;AAAA,MACN,iBAAiB;AAAA,MACjB,MAAK,KAAK,SAAS,gBAAgB,oCAAoC;AAAA,IACxE;AAAA,EACD,EAAO,SAAI,aAAa,SAAS;AAAA,IAEhC,MAAM,eAAe,QAAQ,IAAI,mBAAmB;AAAA,IACpD,MAAM,kBAAkB,QAAQ,IAAI,wBAAwB;AAAA,IAC5D,MAAM,eAAe,QAAQ,IAAI,mBAAmB,MAAK,KAAK,SAAS,WAAW,OAAO;AAAA,IACzF,MAAM,UAAU,QAAQ,IAAI,cAAc,MAAK,KAAK,SAAS,WAAW,SAAS;AAAA,IAEjF,OAAO;AAAA,MACN,MAAK,KAAK,cAAc,OAAO;AAAA,MAC/B,MAAK,KAAK,iBAAiB,OAAO;AAAA,MAClC,MAAK,KAAK,cAAc,YAAY,OAAO;AAAA,MAC3C,MAAK,KAAK,SAAS,OAAO;AAAA,IAC3B;AAAA,EACD,EAAO;AAAA,IAEN,OAAO;AAAA,MACN,cAAc,QAAQ,YAAY;AAAA,IACnC;AAAA;AAAA;AAOF,eAAsB,cAAc,CAAC,UAA+C;AAAA,EACnF,IAAI,MAAM;AAAA,EACV,OAAO,QAAQ,MAAK,MAAM,GAAG,EAAE,MAAM;AAAA,IACpC,MAAM,eAAe,gBAAgB,GAAG;AAAA,IACxC,IAAI,iBAAiB,WAAW;AAAA,MAC/B,MAAM,cAAc,MAAM,gBAAgB,GAAG;AAAA,MAC7C,IAAI,gBAAgB,aAAa,gBAAgB,WAAW,GAAG;AAAA,QAC9D,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,MAAM,MAAK,QAAQ,GAAG;AAAA,EACvB;AAAA,EACA;AAAA;AAGD,SAAS,eAAe,CAAC,KAAiC;AAAA,EACzD,MAAM,eAAe,MAAK,KAAK,KAAK,OAAO,QAAQ;AAAA,EACnD,IAAI,IAAG,WAAW,YAAY,GAAG;AAAA,IAChC,OAAO;AAAA,EACR;AAAA,EACA;AAAA;AAGD,SAAS,eAAe,CAAC,aAAmC;AAAA,EAC3D,OAAO,YAAY,SAAS;AAAA;AAG7B,eAAe,eAAe,CAAC,KAA+C;AAAA,EAC7E,MAAM,kBAAkB,MAAK,KAAK,KAAK,cAAc;AAAA,EACrD,IAAI,CAAC,IAAG,WAAW,eAAe,GAAG;AAAA,IACpC;AAAA,EACD;AAAA,EAEA,MAAM,OAAO,MAAM,KAAI,SAAS,iBAAiB,MAAM;AAAA,EACvD,MAAM,cAAc,KAAK,MAAM,IAAI;AAAA,EAGnC,IAAI,UAAU,eAAe,OAAO,YAAY,SAAS,YAAY,aAAa,eAAe,OAAO,YAAY,YAAY,UAAU;AAAA,IACzI,OAAO;AAAA,EACR;AAAA,EAEA;AAAA;;;AChLD;AACA;AACA;;;ACFA;AACA;AAiBA,eAAsB,gBAAgB,GAAyB;AAAA,EAC7D,OAAO,IAAI,QAAqB,CAAC,SAAS,WAAW;AAAA,IACnD,IAAI;AAAA,MACF,MAAM,UAAU,MAAM,IAAI,wDAAwD,IAAG,SAAS,KAAK,IAAG,KAAK,kBAAkB;AAAA,MAG7H,QAAQ,GAAG,SAAS,CAAC,UAAU;AAAA,QAC7B,MAAM,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QACxE,OAAO,IAAI,MAAM,2CAA2C,YAAY,CAAC;AAAA,OAC1E;AAAA,MAGD,IAAI,QAAQ,WAAW,QAAQ,QAAQ;AAAA,QACrC,OAAO,IAAI,MAAM,oEAAoE,CAAC;AAAA,QACtF;AAAA,MACF;AAAA,MAEA,QAAQ,GAAG,YAAY,CAAC,aAAa;AAAA,QACnC,IAAI,OAAO;AAAA,QACX,SAAS,GAAG,QAAQ,CAAC,UAAU;AAAA,UAC7B,QAAQ;AAAA,SACT;AAAA,QACD,SAAS,GAAG,OAAO,MAAM;AAAA,UACvB,QAAQ,YAAY,kBAAkB;AAAA,UACtC,IAAI,eAAe,KAAK;AAAA,YACtB,OAAO,IAAI,MAAM,uBAAuB,cAAc,eAAe,CAAC;AAAA,YACtE;AAAA,UACF;AAAA,UACA,IAAI;AAAA,YACF,MAAM,cAAc,KAAK,MAAM,IAAI;AAAA,YACnC,QAAQ,YAAY,MAAM;AAAA,YAC1B,OAAO,YAAY;AAAA,YACnB,MAAM,UACJ,sBAAsB,QAAQ,WAAW,UAAU,OAAO,UAAU;AAAA,YACtE,OAAO,IAAI,MAAM,yCAAyC,SAAS,CAAC;AAAA;AAAA,SAEvE;AAAA,OACF;AAAA,MACD,OAAO,OAAO;AAAA,MACd,MAAM,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACxE,OAAO,IAAI,MAAM,2CAA2C,YAAY,CAAC;AAAA;AAAA,GAE5E;AAAA;;;AC/CI,SAAS,wBAAwB,GAAY;AAAA,EACnD,OAAO,cAAc,QAAQ,IAAI,6DAA4B;AAAA;AAOvD,SAAS,uBAAuB,GAAY;AAAA,EAClD,OAAO,YAAY,QAAQ,IAAI,2DAA2B;AAAA;AAOpD,SAAS,mBAAmB,GAAY;AAAA,EAC9C,OAAO,cAAc,QAAQ,IAAI,4CAAoB;AAAA;AAGtD,SAAS,WAAW,CAAC,MAAmC;AAAA,EACvD,OAAO,SAAS,UAAU,SAAS;AAAA;AAGpC,SAAS,aAAa,CAAC,MAAmC;AAAA,EACzD,OAAO,SAAS,WAAW,SAAS;AAAA;;;AF9BrC,IAAM,gBAAgB,UAAU,QAAQ;AAExC,IAAM,gBAAgB;AAGtB,eAAsB,mBAAmB,CAAC,YAAiB;AAAA,EAC1D,IAAI;AAAA,IAEH,MAAM,OAAM,KAAK,YAAY,MAAM,cAAc;AAAA,IAEjD,MAAM,gBAAgB,MAAM,iBAAiB,IAAG;AAAA,IAChD,IAAI,kBAAkB,MAAM;AAAA,MAC3B,MAAM,gBAAgB,MAAK,aAAa;AAAA,IACzC;AAAA,IACC,OAAO,KAAK;AAAA,IAEb,MAAM,IAAI,MAAM,0BAA0B,WAAW,uDAAuD,WAAW,UAAU;AAAA;AAAA;AAQnI,eAAsB,gBAAgB,CAAC,YAAiB;AAAA,EACvD,IAAI;AAAA,IACH,IAAI,CAAC,oBAAoB,GAAG;AAAA,MAC3B,OAAO;AAAA,IACR;AAAA,IAGA,MAAM,gBAAgB,MAAM,iBAAiB;AAAA,IAC7C,IAAI,cAAc,mBAAmB,WAAW,SAAS;AAAA,MACxD,OAAO,cAAc;AAAA,IACtB;AAAA,IACA,OAAO;AAAA,IACN,OAAO,KAAK;AAAA,IACb,OAAO;AAAA;AAAA;AAQT,eAAsB,eAAe,CAAC,MAAU,gBAAwB,UAAU;AAAA,EACjF,IAAI,CAAC,oBAAoB,GAAG;AAAA,IAC3B;AAAA,EACD;AAAA,EAEA,MAAM,SAAS,KAAK,MAAK,SAAS,cAAc;AAAA,EAGhD,IAAI;AAAA,IACH,MAAM,qBAAqB,MAAM;AAAA,IAChC,OAAO,KAAK;AAAA,IACb,QAAQ,IAAI,uCAAuC,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,IAAI;AAAA;AAAA,EAIvG,IAAI;AAAA,IACH,QAAQ,SAAS,SAAS,MAAM,kBAAkB,MAAM;AAAA,IAExD,QAAQ,IAAI,GAAG,OAAO,gBAAgB,OAAO,cAAc,OAAO,iBAAiB,WAAW,KAAK,KAAK,GAAG,MAAM,OAAO,OAAO;AAAA,IAC/H,QAAQ,QAAQ,WAAW,MAAM,cAAc,SAAS,IAAI;AAAA,IAC5D,QAAQ,IAAI,MAAM;AAAA,IAClB,IAAI,QAAQ;AAAA,MACX,QAAQ,MAAM,MAAM;AAAA,IACrB;AAAA,IAEA,QAAQ,IAAI,GAAG,OAAO,MAAM,OAAO,QAAQ,OAAO,iCAAiC,OAAO,OAAO;AAAA,IAChG,OAAO,KAAK;AAAA;AASf,eAAsB,iBAAiB,GAAG,MAAM,WAAgB;AAAA,EAC/D,IAAI;AAAA,IACH,MAAM,cAAc,SAAQ,IAAI;AAAA,IAChC,MAAM,YAAY,SAAQ,IAAI;AAAA,IAE9B,MAAM,QACL,QAAQ,WAAW,WAAW,KAAK,CAAC,KACpC,QAAQ,aAAa,SAAS,cAAc,CAAC;AAAA,IAE9C,IAAI,OAAO;AAAA,MACV,OAAO,EAAE,SAAS,OAAO,MAAM,CAAC,WAAW,MAAM,GAAG,QAAQ,SAAS,EAAE;AAAA,IACxE;AAAA,IAEA,MAAM,SAAS,QAAQ,WAAW,WAAW,MAAM,CAAC;AAAA,IACpD,IAAI,QAAQ;AAAA,MACX,OAAO,EAAE,SAAS,QAAQ,MAAM,CAAC,UAAU,OAAO,GAAG,QAAQ,SAAS,EAAE;AAAA,IACzE;AAAA,IAEA,MAAM,SAAS,QAAQ,WAAW,WAAW,MAAM,CAAC;AAAA,IACpD,IAAI,QAAQ;AAAA,MACX,OAAO,EAAE,SAAS,QAAQ,MAAM,CAAC,WAAW,MAAM,GAAG,QAAQ,SAAS,EAAE;AAAA,IACzE;AAAA,IAEA,MAAM,QAAQ,QAAQ,WAAW,WAAW,KAAK,CAAC;AAAA,IAClD,IAAI,OAAO;AAAA,MACV,OAAO,EAAE,SAAS,OAAO,MAAM,CAAC,WAAW,MAAM,GAAG,QAAQ,SAAS,EAAE;AAAA,IACxE;AAAA,IACC,OAAO,KAAK;AAAA,EAGd,OAAO,EAAE,SAAS,OAAO,MAAM,CAAC,WAAW,MAAM,GAAG,QAAQ,SAAS,EAAE;AAAA;;;AN7GxE,IAAM,WAAW,IAAG,SAAS;AAM7B,eAAsB,IAAI,GAAG;AAAA,EAC5B,MAAM,OAAM,MAAM,OAAO;AAAA,EAGzB,oBAAoB,IAAG,EACrB,MAAM,CAAC,QAAQ;AAAA,IACf,QAAQ,MAAM,GAAG;AAAA,GACjB;AAAA,EAGF,MAAM,oBAAoB,MAAM,sBAAsB,IAAG;AAAA,EAGzD,IAAI,sBAAsB,WAAW;AAAA,IACpC,MAAM,WAAW,MAAM,uBAAuB,kBAAkB,WAAW,KAAI,aAAa,wBAAwB,CAAC;AAAA,IACrH,MAAM,UAAU,kBAAkB,gBAAgB,WAAW,kBAAkB;AAAA,IAC/E,OAAO,cAAc,MAAK,SAAS,kBAAkB,MAAM,WAAW,kBAAkB,GAAG;AAAA,EAC5F;AAAA,EAGA,MAAM,iBAAiB,MAAM,iBAAiB,MAAK,wBAAwB,CAAC;AAAA,EAC5E,OAAO,cAAc,MAAK,gBAAgB,CAAC,CAAC;AAAA;AAStC,SAAS,WAAW,CAAC,UAA8B;AAAA,EACzD,IAAI,CAAC,yBAAyB,GAAG;AAAA,IAChC,OAAO;AAAA,EACR;AAAA,EAGA,OAAO,SAAS,SAAS,eAAe,IACrC,WACA,CAAC,iBAAiB,GAAG,QAAQ;AAAA;AAY1B,SAAS,aAAa,CAAC,MAAU,SAAiB,aAAuB,UAAqB,KAAyB;AAAA,EAE7H,MAAM,YAAY,YAAY,QAAQ,KAAK,MAAM,CAAC;AAAA,EAClD,MAAM,OAAO,CAAC,GAAG,aAAa,GAAG,YAAY,SAAS,CAAC;AAAA,EAIvD,IAAI,mBAAmB;AAAA,EACvB,IAAI,aAAa,WAAW,QAAQ,SAAS,GAAG,GAAG;AAAA,IAClD,mBAAmB,IAAI;AAAA,EACxB;AAAA,EAEA,MAAM,QAAQ,GAAG,MAAM,kBAAkB,MAAM;AAAA,IAC9C,OAAO;AAAA,IACP,OAAO,aAAa;AAAA,IACpB,0BAA0B,aAAa;AAAA,IACvC,KAAK,OAAO,QAAQ;AAAA,EACrB,CAAC;AAAA,EAED,MAAM,GAAG,SAAS,CAAC,UAAU;AAAA,IAC5B,QAAQ,MAAM,mBAAmB,KAAI,YAAY,KAAK;AAAA,IACtD,QAAQ,KAAK,CAAC;AAAA,GACd;AAAA,EAED,MAAM,GAAG,QAAQ,CAAC,MAAM,WAAW;AAAA,IAClC,IAAI,QAAQ;AAAA,MACX,QAAQ,KAAK,QAAQ,KAAK,MAAM;AAAA,IACjC,EAAO;AAAA,MACN,QAAQ,KAAK,QAAQ,CAAC;AAAA;AAAA,GAEvB;AAAA;;;AS3FF,KAAK,EAAE,MAAM,CAAC,QAAQ;AAAA,EACpB,QAAQ,MAAM,GAAG;AAAA,EACjB,QAAQ,KAAK,CAAC;AAAA,CACf;",
17
- "debugId": "09158E74A969A26D64756E2164756E21",
18
- "names": []
19
- }