UNPKG

stormflow

Version:

StormFlow is a versatile Node.js data management library designed for efficient data management.

3 lines 88.1 kB
var Ir=Object.create;var pt=Object.defineProperty;var Fr=Object.getOwnPropertyDescriptor;var Br=Object.getOwnPropertyNames;var Cr=Object.getPrototypeOf,Mr=Object.prototype.hasOwnProperty;var Pr=(e,t)=>{for(var i in t)pt(e,i,{get:t[i],enumerable:!0})},ys=(e,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Br(t))!Mr.call(e,r)&&r!==i&&pt(e,r,{get:()=>t[r],enumerable:!(s=Fr(t,r))||s.enumerable});return e};var y=(e,t,i)=>(i=e!=null?Ir(Cr(e)):{},ys(t||!e||!e.__esModule?pt(i,"default",{value:e,enumerable:!0}):i,e)),zr=e=>ys(pt({},"__esModule",{value:!0}),e);var Uh={};Pr(Uh,{default:()=>zh});module.exports=zr(Uh);var Te=y(require("fs/promises"),1),Le=y(require("path"),1);var Ks=y(require("events"),1),A=y(require("fs"),1),Gt=require("node:events"),Ki=y(require("node:stream"),1),Xs=require("node:string_decoder"),qi=y(require("node:path"),1),Re=y(require("node:fs"),1),Vt=require("path"),Qs=require("events"),Ht=y(require("assert"),1),ae=require("buffer"),vs=y(require("zlib"),1),er=y(require("zlib"),1),ve=require("node:path"),or=require("node:path"),dt=y(require("fs"),1),z=y(require("fs"),1),Di=y(require("path"),1),cr=require("node:path"),zi=y(require("path"),1),ns=y(require("node:fs"),1),wr=y(require("node:assert"),1),hs=require("node:crypto"),u=y(require("node:fs"),1),R=y(require("node:path"),1),os=y(require("fs"),1),ft=y(require("node:fs"),1),Pe=y(require("node:path"),1),N=y(require("node:fs"),1),Tr=y(require("node:fs/promises"),1),ct=y(require("node:path"),1),as=require("node:path"),D=y(require("node:fs"),1),ds=y(require("node:path"),1),Ur=Object.defineProperty,jr=(e,t)=>{for(var i in t)Ur(e,i,{get:t[i],enumerable:!0})},bs=typeof process=="object"&&process?process:{stdout:null,stderr:null},Hr=e=>!!e&&typeof e=="object"&&(e instanceof ke||e instanceof Ki.default||Zr(e)||$r(e)),Zr=e=>!!e&&typeof e=="object"&&e instanceof Gt.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==Ki.default.Writable.prototype.pipe,$r=e=>!!e&&typeof e=="object"&&e instanceof Gt.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Y=Symbol("EOF"),V=Symbol("maybeEmitEnd"),Q=Symbol("emittedEnd"),yt=Symbol("emittingEnd"),je=Symbol("emittedError"),bt=Symbol("closed"),ws=Symbol("read"),wt=Symbol("flush"),gs=Symbol("flushChunk"),C=Symbol("encoding"),xe=Symbol("decoder"),S=Symbol("flowing"),He=Symbol("paused"),Ie=Symbol("resume"),_=Symbol("buffer"),x=Symbol("pipes"),O=Symbol("bufferLength"),ti=Symbol("bufferPush"),gt=Symbol("bufferShift"),L=Symbol("objectMode"),g=Symbol("destroyed"),ii=Symbol("error"),si=Symbol("emitData"),Es=Symbol("emitEnd"),ri=Symbol("emitEnd2"),H=Symbol("async"),ni=Symbol("abort"),Et=Symbol("aborted"),Ze=Symbol("signal"),fe=Symbol("dataListeners"),I=Symbol("discarded"),$e=e=>Promise.resolve().then(e),Wr=e=>e(),Gr=e=>e==="end"||e==="finish"||e==="prefinish",Yr=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,Vr=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),qs=class{src;dest;opts;ondrain;constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Ie](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Kr=class extends qs{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=s=>this.dest.emit("error",s),e.on("error",this.proxyErrors)}},Xr=e=>!!e.objectMode,qr=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",ke=class extends Gt.EventEmitter{[S]=!1;[He]=!1;[x]=[];[_]=[];[L];[C];[H];[xe];[Y]=!1;[Q]=!1;[yt]=!1;[bt]=!1;[je]=null;[O]=0;[g]=!1;[Ze];[Et]=!1;[fe]=0;[I]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");Xr(t)?(this[L]=!0,this[C]=null):qr(t)?(this[C]=t.encoding,this[L]=!1):(this[L]=!1,this[C]=null),this[H]=!!t.async,this[xe]=this[C]?new Xs.StringDecoder(this[C]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[_]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[x]});let{signal:i}=t;i&&(this[Ze]=i,i.aborted?this[ni]():i.addEventListener("abort",()=>this[ni]()))}get bufferLength(){return this[O]}get encoding(){return this[C]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[L]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[H]}set async(e){this[H]=this[H]||!!e}[ni](){this[Et]=!0,this.emit("abort",this[Ze]?.reason),this.destroy(this[Ze]?.reason)}get aborted(){return this[Et]}set aborted(e){}write(e,t,i){if(this[Et])return!1;if(this[Y])throw new Error("write after end");if(this[g])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let s=this[H]?$e:Wr;if(!this[L]&&!Buffer.isBuffer(e)){if(Vr(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(Yr(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[L]?(this[S]&&this[O]!==0&&this[wt](!0),this[S]?this.emit("data",e):this[ti](e),this[O]!==0&&this.emit("readable"),i&&s(i),this[S]):e.length?(typeof e=="string"&&!(t===this[C]&&!this[xe]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[C]&&(e=this[xe].write(e)),this[S]&&this[O]!==0&&this[wt](!0),this[S]?this.emit("data",e):this[ti](e),this[O]!==0&&this.emit("readable"),i&&s(i),this[S]):(this[O]!==0&&this.emit("readable"),i&&s(i),this[S])}read(e){if(this[g])return null;if(this[I]=!1,this[O]===0||e===0||e&&e>this[O])return this[V](),null;this[L]&&(e=null),this[_].length>1&&!this[L]&&(this[_]=[this[C]?this[_].join(""):Buffer.concat(this[_],this[O])]);let t=this[ws](e||null,this[_][0]);return this[V](),t}[ws](e,t){if(this[L])this[gt]();else{let i=t;e===i.length||e===null?this[gt]():typeof i=="string"?(this[_][0]=i.slice(e),t=i.slice(0,e),this[O]-=e):(this[_][0]=i.subarray(e),t=i.subarray(0,e),this[O]-=e)}return this.emit("data",t),!this[_].length&&!this[Y]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=void 0),typeof t=="function"&&(i=t,t="utf8"),e!==void 0&&this.write(e,t),i&&this.once("end",i),this[Y]=!0,this.writable=!1,(this[S]||!this[He])&&this[V](),this}[Ie](){this[g]||(!this[fe]&&!this[x].length&&(this[I]=!0),this[He]=!1,this[S]=!0,this.emit("resume"),this[_].length?this[wt]():this[Y]?this[V]():this.emit("drain"))}resume(){return this[Ie]()}pause(){this[S]=!1,this[He]=!0,this[I]=!1}get destroyed(){return this[g]}get flowing(){return this[S]}get paused(){return this[He]}[ti](e){this[L]?this[O]+=1:this[O]+=e.length,this[_].push(e)}[gt](){return this[L]?this[O]-=1:this[O]-=this[_][0].length,this[_].shift()}[wt](e=!1){do;while(this[gs](this[gt]())&&this[_].length);!e&&!this[_].length&&!this[Y]&&this.emit("drain")}[gs](e){return this.emit("data",e),this[S]}pipe(e,t){if(this[g])return e;this[I]=!1;let i=this[Q];return t=t||{},e===bs.stdout||e===bs.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this[x].push(t.proxyErrors?new Kr(this,e,t):new qs(this,e,t)),this[H]?$e(()=>this[Ie]()):this[Ie]()),e}unpipe(e){let t=this[x].find(i=>i.dest===e);t&&(this[x].length===1?(this[S]&&this[fe]===0&&(this[S]=!1),this[x]=[]):this[x].splice(this[x].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);if(e==="data")this[I]=!1,this[fe]++,!this[x].length&&!this[S]&&this[Ie]();else if(e==="readable"&&this[O]!==0)super.emit("readable");else if(Gr(e)&&this[Q])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[je]){let s=t;this[H]?$e(()=>s.call(this,this[je])):s.call(this,this[je])}return i}removeListener(e,t){return this.off(e,t)}off(e,t){let i=super.off(e,t);return e==="data"&&(this[fe]=this.listeners("data").length,this[fe]===0&&!this[I]&&!this[x].length&&(this[S]=!1)),i}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[fe]=0,!this[I]&&!this[x].length&&(this[S]=!1)),t}get emittedEnd(){return this[Q]}[V](){!this[yt]&&!this[Q]&&!this[g]&&this[_].length===0&&this[Y]&&(this[yt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[bt]&&this.emit("close"),this[yt]=!1)}emit(e,...t){let i=t[0];if(e!=="error"&&e!=="close"&&e!==g&&this[g])return!1;if(e==="data")return!this[L]&&!i?!1:this[H]?($e(()=>this[si](i)),!0):this[si](i);if(e==="end")return this[Es]();if(e==="close"){if(this[bt]=!0,!this[Q]&&!this[g])return!1;let r=super.emit("close");return this.removeAllListeners("close"),r}else if(e==="error"){this[je]=i,super.emit(ii,i);let r=!this[Ze]||this.listeners("error").length?super.emit("error",i):!1;return this[V](),r}else if(e==="resume"){let r=super.emit("resume");return this[V](),r}else if(e==="finish"||e==="prefinish"){let r=super.emit(e);return this.removeAllListeners(e),r}let s=super.emit(e,...t);return this[V](),s}[si](e){for(let i of this[x])i.dest.write(e)===!1&&this.pause();let t=this[I]?!1:super.emit("data",e);return this[V](),t}[Es](){return this[Q]?!1:(this[Q]=!0,this.readable=!1,this[H]?($e(()=>this[ri]()),!0):this[ri]())}[ri](){if(this[xe]){let t=this[xe].end();if(t){for(let i of this[x])i.dest.write(t);this[I]||super.emit("data",t)}}for(let t of this[x])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[L]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[L]||(e.dataLength+=i.length)}),await t,e}async concat(){if(this[L])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[C]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(g,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[I]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[Y])return t();let s,r,n=l=>{this.off("data",h),this.off("end",o),this.off(g,a),t(),r(l)},h=l=>{this.off("error",n),this.off("end",o),this.off(g,a),this.pause(),s({value:l,done:!!this[Y]})},o=()=>{this.off("error",n),this.off("data",h),this.off(g,a),t(),s({done:!0,value:void 0})},a=()=>n(new Error("stream destroyed"));return new Promise((l,d)=>{r=d,s=l,this.once(g,a),this.once("error",n),this.once("end",o),this.once("data",h)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[I]=!1;let e=!1,t=()=>(this.pause(),this.off(ii,t),this.off(g,t),this.off("end",t),e=!0,{done:!0,value:void 0}),i=()=>{if(e)return t();let s=this.read();return s===null?t():{done:!1,value:s}};return this.once("end",t),this.once(ii,t),this.once(g,t),{next:i,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[g])return e?this.emit("error",e):this.emit(g),this;this[g]=!0,this[I]=!0,this[_].length=0,this[O]=0;let t=this;return typeof t.close=="function"&&!this[bt]&&t.close(),e?this.emit("error",e):this.emit(g),this}static get isStream(){return Hr}},Jr=A.default.writev,de=Symbol("_autoClose"),j=Symbol("_close"),We=Symbol("_ended"),p=Symbol("_fd"),hi=Symbol("_finished"),J=Symbol("_flags"),oi=Symbol("_flush"),Ti=Symbol("_handleChunk"),Li=Symbol("_makeBuf"),it=Symbol("_mode"),vt=Symbol("_needDrain"),Me=Symbol("_onerror"),ze=Symbol("_onopen"),ai=Symbol("_onread"),Fe=Symbol("_onwrite"),ce=Symbol("_open"),U=Symbol("_path"),re=Symbol("_pos"),Z=Symbol("_queue"),Be=Symbol("_read"),li=Symbol("_readSize"),q=Symbol("_reading"),Ge=Symbol("_remain"),di=Symbol("_size"),Dt=Symbol("_write"),me=Symbol("_writing"),Nt=Symbol("_defaultFlag"),Se=Symbol("_errored"),Xi=class extends ke{[Se]=!1;[p];[U];[li];[q]=!1;[di];[Ge];[de];constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Se]=!1,this[p]=typeof t.fd=="number"?t.fd:void 0,this[U]=e,this[li]=t.readSize||16*1024*1024,this[q]=!1,this[di]=typeof t.size=="number"?t.size:1/0,this[Ge]=this[di],this[de]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[p]=="number"?this[Be]():this[ce]()}get fd(){return this[p]}get path(){return this[U]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[ce](){A.default.open(this[U],"r",(e,t)=>this[ze](e,t))}[ze](e,t){e?this[Me](e):(this[p]=t,this.emit("open",t),this[Be]())}[Li](){return Buffer.allocUnsafe(Math.min(this[li],this[Ge]))}[Be](){if(!this[q]){this[q]=!0;let e=this[Li]();if(e.length===0)return process.nextTick(()=>this[ai](null,0,e));A.default.read(this[p],e,0,e.length,null,(t,i,s)=>this[ai](t,i,s))}}[ai](e,t,i){this[q]=!1,e?this[Me](e):this[Ti](t,i)&&this[Be]()}[j](){if(this[de]&&typeof this[p]=="number"){let e=this[p];this[p]=void 0,A.default.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[Me](e){this[q]=!0,this[j](),this.emit("error",e)}[Ti](e,t){let i=!1;return this[Ge]-=e,e>0&&(i=super.write(e<t.length?t.subarray(0,e):t)),(e===0||this[Ge]<=0)&&(i=!1,this[j](),super.end()),i}emit(e,...t){switch(e){case"prefinish":case"finish":return!1;case"drain":return typeof this[p]=="number"&&this[Be](),!1;case"error":return this[Se]?!1:(this[Se]=!0,super.emit(e,...t));default:return super.emit(e,...t)}}},Qr=class extends Xi{[ce](){let e=!0;try{this[ze](null,A.default.openSync(this[U],"r")),e=!1}finally{e&&this[j]()}}[Be](){let e=!0;try{if(!this[q]){this[q]=!0;do{let t=this[Li](),i=t.length===0?0:A.default.readSync(this[p],t,0,t.length,null);if(!this[Ti](i,t))break}while(!0);this[q]=!1}e=!1}finally{e&&this[j]()}}[j](){if(this[de]&&typeof this[p]=="number"){let e=this[p];this[p]=void 0,A.default.closeSync(e),this.emit("close")}}},Yt=class extends Ks.default{readable=!1;writable=!0;[Se]=!1;[me]=!1;[We]=!1;[Z]=[];[vt]=!1;[U];[it];[de];[p];[Nt];[J];[hi]=!1;[re];constructor(e,t){t=t||{},super(t),this[U]=e,this[p]=typeof t.fd=="number"?t.fd:void 0,this[it]=t.mode===void 0?438:t.mode,this[re]=typeof t.start=="number"?t.start:void 0,this[de]=typeof t.autoClose=="boolean"?t.autoClose:!0;let i=this[re]!==void 0?"r+":"w";this[Nt]=t.flags===void 0,this[J]=t.flags===void 0?i:t.flags,this[p]===void 0&&this[ce]()}emit(e,...t){if(e==="error"){if(this[Se])return!1;this[Se]=!0}return super.emit(e,...t)}get fd(){return this[p]}get path(){return this[U]}[Me](e){this[j](),this[me]=!0,this.emit("error",e)}[ce](){A.default.open(this[U],this[J],this[it],(e,t)=>this[ze](e,t))}[ze](e,t){this[Nt]&&this[J]==="r+"&&e&&e.code==="ENOENT"?(this[J]="w",this[ce]()):e?this[Me](e):(this[p]=t,this.emit("open",t),this[me]||this[oi]())}end(e,t){return e&&this.write(e,t),this[We]=!0,!this[me]&&!this[Z].length&&typeof this[p]=="number"&&this[Fe](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[We]?(this.emit("error",new Error("write() after end()")),!1):this[p]===void 0||this[me]||this[Z].length?(this[Z].push(e),this[vt]=!0,!1):(this[me]=!0,this[Dt](e),!0)}[Dt](e){A.default.write(this[p],e,0,e.length,this[re],(t,i)=>this[Fe](t,i))}[Fe](e,t){e?this[Me](e):(this[re]!==void 0&&typeof t=="number"&&(this[re]+=t),this[Z].length?this[oi]():(this[me]=!1,this[We]&&!this[hi]?(this[hi]=!0,this[j](),this.emit("finish")):this[vt]&&(this[vt]=!1,this.emit("drain"))))}[oi](){if(this[Z].length===0)this[We]&&this[Fe](null,0);else if(this[Z].length===1)this[Dt](this[Z].pop());else{let e=this[Z];this[Z]=[],Jr(this[p],e,this[re],(t,i)=>this[Fe](t,i))}}[j](){if(this[de]&&typeof this[p]=="number"){let e=this[p];this[p]=void 0,A.default.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},Js=class extends Yt{[ce](){let e;if(this[Nt]&&this[J]==="r+")try{e=A.default.openSync(this[U],this[J],this[it])}catch(t){if(t?.code==="ENOENT")return this[J]="w",this[ce]();throw t}else e=A.default.openSync(this[U],this[J],this[it]);this[ze](null,e)}[j](){if(this[de]&&typeof this[p]=="number"){let e=this[p];this[p]=void 0,A.default.closeSync(e),this.emit("close")}}[Dt](e){let t=!0;try{this[Fe](null,A.default.writeSync(this[p],e,0,e.length,this[re])),t=!1}finally{if(t)try{this[j]()}catch{}}}},en=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"]]),tn=e=>!!e.sync&&!!e.file,sn=e=>!e.sync&&!!e.file,rn=e=>!!e.sync&&!e.file,nn=e=>!e.sync&&!e.file,hn=e=>!!e.file,on=e=>en.get(e)||e,Ji=(e={})=>{if(!e)return{};let t={};for(let[i,s]of Object.entries(e)){let r=on(i);t[r]=s}return t.chmod===void 0&&t.noChmod===!1&&(t.chmod=!0),delete t.noChmod,t},ut=(e,t,i,s,r)=>Object.assign((n=[],h,o)=>{Array.isArray(n)&&(h=n,n={}),typeof h=="function"&&(o=h,h=void 0),h=h?Array.from(h):[];let a=Ji(n);if(r?.(a,h),tn(a)){if(typeof o=="function")throw new TypeError("callback not supported for sync tar functions");return e(a,h)}else if(sn(a)){let l=t(a,h);return o?l.then(()=>o(),o):l}else if(rn(a)){if(typeof o=="function")throw new TypeError("callback not supported for sync tar functions");return i(a,h)}else if(nn(a)){if(typeof o=="function")throw new TypeError("callback only supported with file option");return s(a,h)}throw new Error("impossible options??")},{syncFile:e,asyncFile:t,syncNoFile:i,asyncNoFile:s,validate:r}),an=er.default.constants||{ZLIB_VERNUM:4736},G=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},an)),ln=ae.Buffer.concat,Rs=Object.getOwnPropertyDescriptor(ae.Buffer,"concat"),dn=e=>e,ci=Rs?.writable===!0||Rs?.set!==void 0?e=>{ae.Buffer.concat=e?dn:ln}:e=>{},_e=Symbol("_superWrite"),Rt=class extends Error{code;errno;constructor(e,t){super("zlib: "+e.message,{cause:e}),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,t??this.constructor)}get name(){return"ZlibError"}},ui=Symbol("flushFlag"),Qi=class extends ke{#e=!1;#i=!1;#s;#n;#r;#t;#h;get sawError(){return this.#e}get handle(){return this.#t}get flushFlag(){return this.#s}constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(e),this.#s=e.flush??0,this.#n=e.finishFlush??0,this.#r=e.fullFlushFlag??0,typeof vs[t]!="function")throw new TypeError("Compression method not supported: "+t);try{this.#t=new vs[t](e)}catch(i){throw new Rt(i,this.constructor)}this.#h=i=>{this.#e||(this.#e=!0,this.close(),this.emit("error",i))},this.#t?.on("error",i=>this.#h(new Rt(i))),this.once("end",()=>this.close)}close(){this.#t&&(this.#t.close(),this.#t=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,Ht.default)(this.#t,"zlib binding closed"),this.#t.reset?.()}flush(e){this.ended||(typeof e!="number"&&(e=this.#r),this.write(Object.assign(ae.Buffer.alloc(0),{[ui]:e})))}end(e,t,i){return typeof e=="function"&&(i=e,t=void 0,e=void 0),typeof t=="function"&&(i=t,t=void 0),e&&(t?this.write(e,t):this.write(e)),this.flush(this.#n),this.#i=!0,super.end(i)}get ended(){return this.#i}[_e](e){return super.write(e)}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=ae.Buffer.from(e,t)),this.#e)return;(0,Ht.default)(this.#t,"zlib binding closed");let s=this.#t._handle,r=s.close;s.close=()=>{};let n=this.#t.close;this.#t.close=()=>{},ci(!0);let h;try{let a=typeof e[ui]=="number"?e[ui]:this.#s;h=this.#t._processChunk(e,a),ci(!1)}catch(a){ci(!1),this.#h(new Rt(a,this.write))}finally{this.#t&&(this.#t._handle=s,s.close=r,this.#t.close=n,this.#t.removeAllListeners("error"))}this.#t&&this.#t.on("error",a=>this.#h(new Rt(a,this.write)));let o;if(h)if(Array.isArray(h)&&h.length>0){let a=h[0];o=this[_e](ae.Buffer.from(a));for(let l=1;l<h.length;l++)o=this[_e](h[l])}else o=this[_e](ae.Buffer.from(h));return i&&i(),o}},tr=class extends Qi{#e;#i;constructor(e,t){e=e||{},e.flush=e.flush||G.Z_NO_FLUSH,e.finishFlush=e.finishFlush||G.Z_FINISH,e.fullFlushFlag=G.Z_FULL_FLUSH,super(e,t),this.#e=e.level,this.#i=e.strategy}params(e,t){if(!this.sawError){if(!this.handle)throw new Error("cannot switch params when binding is closed");if(!this.handle.params)throw new Error("not supported in this implementation");if(this.#e!==e||this.#i!==t){this.flush(G.Z_SYNC_FLUSH),(0,Ht.default)(this.handle,"zlib binding closed");let i=this.handle.flush;this.handle.flush=(s,r)=>{typeof s=="function"&&(r=s,s=this.flushFlag),this.flush(s),r?.()};try{this.handle.params(e,t)}finally{this.handle.flush=i}this.handle&&(this.#e=e,this.#i=t)}}}},cn=class extends tr{#e;constructor(e){super(e,"Gzip"),this.#e=e&&!!e.portable}[_e](e){return this.#e?(this.#e=!1,e[9]=255,super[_e](e)):super[_e](e)}},un=class extends tr{constructor(e){super(e,"Unzip")}},ir=class extends Qi{constructor(e,t){e=e||{},e.flush=e.flush||G.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||G.BROTLI_OPERATION_FINISH,e.fullFlushFlag=G.BROTLI_OPERATION_FLUSH,super(e,t)}},fn=class extends ir{constructor(e){super(e,"BrotliCompress")}},mn=class extends ir{constructor(e){super(e,"BrotliDecompress")}},sr=class extends Qi{constructor(e,t){e=e||{},e.flush=e.flush||G.ZSTD_e_continue,e.finishFlush=e.finishFlush||G.ZSTD_e_end,e.fullFlushFlag=G.ZSTD_e_flush,super(e,t)}},pn=class extends sr{constructor(e){super(e,"ZstdCompress")}},yn=class extends sr{constructor(e){super(e,"ZstdDecompress")}},bn=(e,t)=>{if(Number.isSafeInteger(e))e<0?gn(e,t):wn(e,t);else throw Error("cannot encode number outside of javascript safe integer range");return t},wn=(e,t)=>{t[0]=128;for(var i=t.length;i>1;i--)t[i-1]=e&255,e=Math.floor(e/256)},gn=(e,t)=>{t[0]=255;var i=!1;e=e*-1;for(var s=t.length;s>1;s--){var r=e&255;e=Math.floor(e/256),i?t[s-1]=rr(r):r===0?t[s-1]=0:(i=!0,t[s-1]=nr(r))}},En=e=>{let t=e[0],i=t===128?Rn(e.subarray(1,e.length)):t===255?vn(e):null;if(i===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},vn=e=>{for(var t=e.length,i=0,s=!1,r=t-1;r>-1;r--){var n=Number(e[r]),h;s?h=rr(n):n===0?h=n:(s=!0,h=nr(n)),h!==0&&(i-=h*Math.pow(256,t-r-1))}return i},Rn=e=>{for(var t=e.length,i=0,s=t-1;s>-1;s--){var r=Number(e[s]);r!==0&&(i+=r*Math.pow(256,t-s-1))}return i},rr=e=>(255^e)&255,nr=e=>(255^e)+1&255,Sn={};jr(Sn,{code:()=>es,isCode:()=>It,isName:()=>_n,name:()=>Kt,normalFsTypes:()=>hr});var It=e=>Kt.has(e),_n=e=>es.has(e),hr=new Set(["0","","1","2","3","4","5","6","7","D"]),Kt=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"]]),es=new Map(Array.from(Kt).map(e=>[e[1],e[0]])),Oe=class{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#e="Unsupported";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(e,t=0,i,s){Buffer.isBuffer(e)?this.decode(e,t||0,i,s):e&&this.#i(e)}decode(e,t,i,s){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");let r=pe(e,t+156,1),n=hr.has(r),h=n?i:void 0,o=n?s:void 0;if(this.path=h?.path??pe(e,t,100),this.mode=h?.mode??o?.mode??ne(e,t+100,8),this.uid=h?.uid??o?.uid??ne(e,t+108,8),this.gid=h?.gid??o?.gid??ne(e,t+116,8),this.size=h?.size??o?.size??ne(e,t+124,12),this.mtime=h?.mtime??o?.mtime??fi(e,t+136,12),this.cksum=ne(e,t+148,12),o&&this.#i(o,!0),h&&this.#i(h),It(r)&&(this.#e=r||"0"),this.#e==="0"&&this.path.slice(-1)==="/"&&(this.#e="5"),this.#e==="5"&&(this.size=0),this.linkpath=pe(e,t+157,100),e.subarray(t+257,t+265).toString()==="ustar\x0000")if(this.uname=h?.uname??o?.uname??pe(e,t+265,32),this.gname=h?.gname??o?.gname??pe(e,t+297,32),this.devmaj=h?.devmaj??o?.devmaj??ne(e,t+329,8)??0,this.devmin=h?.devmin??o?.devmin??ne(e,t+337,8)??0,e[t+475]!==0){let l=pe(e,t+345,155);this.path=l+"/"+this.path}else{let l=pe(e,t+345,130);l&&(this.path=l+"/"+this.path),this.atime=i?.atime??s?.atime??fi(e,t+476,12),this.ctime=i?.ctime??s?.ctime??fi(e,t+488,12)}let a=256;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];this.cksumValid=a===this.cksum,this.cksum===void 0&&a===256&&(this.nullBlock=!0)}#i(e,t=!1){Object.assign(this,Object.fromEntries(Object.entries(e).filter(([i,s])=>!(s==null||i==="path"&&t||i==="linkpath"&&t||i==="global"))))}encode(e,t=0){if(e||(e=this.block=Buffer.alloc(512)),this.#e==="Unsupported"&&(this.#e="0"),!(e.length>=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,s=On(this.path||"",i),r=s[0],n=s[1];this.needPax=!!s[2],this.needPax=ye(e,t,100,r)||this.needPax,this.needPax=he(e,t+100,8,this.mode)||this.needPax,this.needPax=he(e,t+108,8,this.uid)||this.needPax,this.needPax=he(e,t+116,8,this.gid)||this.needPax,this.needPax=he(e,t+124,12,this.size)||this.needPax,this.needPax=mi(e,t+136,12,this.mtime)||this.needPax,e[t+156]=Number(this.#e.codePointAt(0)),this.needPax=ye(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=ye(e,t+265,32,this.uname)||this.needPax,this.needPax=ye(e,t+297,32,this.gname)||this.needPax,this.needPax=he(e,t+329,8,this.devmaj)||this.needPax,this.needPax=he(e,t+337,8,this.devmin)||this.needPax,this.needPax=ye(e,t+345,i,n)||this.needPax,e[t+475]!==0?this.needPax=ye(e,t+345,155,n)||this.needPax:(this.needPax=ye(e,t+345,130,n)||this.needPax,this.needPax=mi(e,t+476,12,this.atime)||this.needPax,this.needPax=mi(e,t+488,12,this.ctime)||this.needPax);let h=256;for(let o=t;o<t+148;o++)h+=e[o];for(let o=t+156;o<t+512;o++)h+=e[o];return this.cksum=h,he(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}get type(){return this.#e==="Unsupported"?this.#e:Kt.get(this.#e)}get typeKey(){return this.#e}set type(e){let t=String(es.get(e));if(It(t)||t==="Unsupported")this.#e=t;else if(It(e))this.#e=e;else throw new TypeError("invalid entry type: "+e)}},On=(e,t)=>{let i=e,s="",r,n=ve.posix.parse(e).root||".";if(Buffer.byteLength(i)<100)r=[i,s,!1];else{s=ve.posix.dirname(i),i=ve.posix.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(s)<=t?r=[i,s,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(s)<=t?r=[i.slice(0,99),s,!0]:(i=ve.posix.join(ve.posix.basename(s),i),s=ve.posix.dirname(s));while(s!==n&&r===void 0);r||(r=[e.slice(0,99),"",!0])}return r},pe=(e,t,i)=>e.subarray(t,t+i).toString("utf8").replace(/\0.*/,""),fi=(e,t,i)=>kn(ne(e,t,i)),kn=e=>e===void 0?void 0:new Date(e*1e3),ne=(e,t,i)=>Number(e[t])&128?En(e.subarray(t,t+i)):Ln(e,t,i),Tn=e=>isNaN(e)?void 0:e,Ln=(e,t,i)=>Tn(parseInt(e.subarray(t,t+i).toString("utf8").replace(/\0.*$/,"").trim(),8)),xn={12:8589934591,8:2097151},he=(e,t,i,s)=>s===void 0?!1:s>xn[i]||s<0?(bn(s,e.subarray(t,t+i)),!0):(An(e,t,i,s),!1),An=(e,t,i,s)=>e.write(Dn(s,i),t,i,"ascii"),Dn=(e,t)=>Nn(Math.floor(e).toString(8),t),Nn=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",mi=(e,t,i,s)=>s===void 0?!1:he(e,t,i,s.getTime()/1e3),In=new Array(156).join("\0"),ye=(e,t,i,s)=>s===void 0?!1:(e.write(s+In,t,i,"utf8"),s.length!==Buffer.byteLength(s)||s.length>i),Zt=class ar{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(t,i=!1){this.atime=t.atime,this.charset=t.charset,this.comment=t.comment,this.ctime=t.ctime,this.dev=t.dev,this.gid=t.gid,this.global=i,this.gname=t.gname,this.ino=t.ino,this.linkpath=t.linkpath,this.mtime=t.mtime,this.nlink=t.nlink,this.path=t.path,this.size=t.size,this.uid=t.uid,this.uname=t.uname}encode(){let t=this.encodeBody();if(t==="")return Buffer.allocUnsafe(0);let i=Buffer.byteLength(t),s=512*Math.ceil(1+i/512),r=Buffer.allocUnsafe(s);for(let n=0;n<512;n++)r[n]=0;new Oe({path:("PaxHeader/"+(0,or.basename)(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:i,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(r),r.write(t,512,i,"utf8");for(let n=i+512;n<r.length;n++)r[n]=0;return r}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(t){if(this[t]===void 0)return"";let i=this[t],s=i instanceof Date?i.getTime()/1e3:i,r=" "+(t==="dev"||t==="ino"||t==="nlink"?"SCHILY.":"")+t+"="+s+` `,n=Buffer.byteLength(r),h=Math.floor(Math.log(n)/Math.log(10))+1;return n+h>=Math.pow(10,h)&&(h+=1),h+n+r}static parse(t,i,s=!1){return new ar(Fn(Bn(t),i),s)}},Fn=(e,t)=>t?Object.assign({},t,e):e,Bn=e=>e.replace(/\n$/,"").split(` `).reduce(Cn,Object.create(null)),Cn=(e,t)=>{let i=parseInt(t,10);if(i!==Buffer.byteLength(t)+1)return e;t=t.slice((i+" ").length);let s=t.split("="),r=s.shift();if(!r)return e;let n=r.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),h=s.join("=").replace(/\0.*/,"");return e[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(Number(h)*1e3):/^[0-9]+$/.test(h)?+h:h,e},Mn=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,c=Mn!=="win32"?e=>e:e=>e&&e.replaceAll(/\\/g,"/"),Pn=class extends ke{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(e,t,i){switch(super({}),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.remain=e.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=e.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(!e.path)throw new Error("no path provided for tar.ReadEntry");this.path=c(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=this.remain,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath?c(e.linkpath):void 0,this.uname=e.uname,this.gname=e.gname,t&&this.#e(t),i&&this.#e(i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,s=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,s-t),this.ignore?!0:i>=t?super.write(e):super.write(e.subarray(0,i))}#e(e,t=!1){e.path&&(e.path=c(e.path)),e.linkpath&&(e.linkpath=c(e.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(e).filter(([i,s])=>!(s==null||i==="path"&&t))))}},Xt=(e,t,i,s={})=>{e.file&&(s.file=e.file),e.cwd&&(s.cwd=e.cwd),s.code=i instanceof Error&&i.code||t,s.tarCode=t,!e.strict&&s.recoverable!==!1?(i instanceof Error&&(s=Object.assign(i,s),i=i.message),e.emit("warn",t,i,s)):i instanceof Error?e.emit("error",Object.assign(i,s)):e.emit("error",Object.assign(new Error(`${t}: ${i}`),s))},zn=1024*1024,xi=Buffer.from([31,139]),Ai=Buffer.from([40,181,47,253]),Un=Math.max(xi.length,Ai.length),F=Symbol("state"),be=Symbol("writeEntry"),K=Symbol("readEntry"),pi=Symbol("nextEntry"),Ss=Symbol("processEntry"),$=Symbol("extendedHeader"),Ye=Symbol("globalExtendedHeader"),ee=Symbol("meta"),_s=Symbol("emitMeta"),b=Symbol("buffer"),X=Symbol("queue"),te=Symbol("ended"),yi=Symbol("emittedEnd"),we=Symbol("emit"),v=Symbol("unzip"),St=Symbol("consumeChunk"),_t=Symbol("consumeChunkSub"),bi=Symbol("consumeBody"),Os=Symbol("consumeMeta"),ks=Symbol("consumeHeader"),Ve=Symbol("consuming"),wi=Symbol("bufferConcat"),Ot=Symbol("maybeEnd"),Ae=Symbol("writing"),ie=Symbol("aborted"),kt=Symbol("onDone"),ge=Symbol("sawValidEntry"),Tt=Symbol("sawNullBlock"),Lt=Symbol("sawEOF"),Ts=Symbol("closeStream"),jn=()=>!0,lt=class extends Qs.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[X]=[];[b];[K];[be];[F]="begin";[ee]="";[$];[Ye];[te]=!1;[v];[ie]=!1;[ge];[Tt]=!1;[Lt]=!1;[Ae]=!1;[Ve]=!1;[yi]=!1;constructor(e={}){super(),this.file=e.file||"",this.on(kt,()=>{(this[F]==="begin"||this[ge]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(kt,e.ondone):this.on(kt,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||zn,this.filter=typeof e.filter=="function"?e.filter:jn;let t=e.file&&(e.file.endsWith(".tar.br")||e.file.endsWith(".tbr"));this.brotli=!(e.gzip||e.zstd)&&e.brotli!==void 0?e.brotli:t?void 0:!1;let i=e.file&&(e.file.endsWith(".tar.zst")||e.file.endsWith(".tzst"));this.zstd=!(e.gzip||e.brotli)&&e.zstd!==void 0?e.zstd:i?!0:void 0,this.on("end",()=>this[Ts]()),typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onReadEntry=="function"&&this.on("entry",e.onReadEntry)}warn(e,t,i={}){Xt(this,e,t,i)}[ks](e,t){this[ge]===void 0&&(this[ge]=!1);let i;try{i=new Oe(e,t,this[$],this[Ye])}catch(s){return this.warn("TAR_ENTRY_INVALID",s)}if(i.nullBlock)this[Tt]?(this[Lt]=!0,this[F]==="begin"&&(this[F]="header"),this[we]("eof")):(this[Tt]=!0,this[we]("nullBlock"));else if(this[Tt]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let s=i.type;if(/^(Symbolic)?Link$/.test(s)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(s)&&!/^(Global)?ExtendedHeader$/.test(s)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let r=this[be]=new Pn(i,this[$],this[Ye]);if(!this[ge])if(r.remain){let n=()=>{r.invalid||(this[ge]=!0)};r.on("end",n)}else this[ge]=!0;r.meta?r.size>this.maxMetaEntrySize?(r.ignore=!0,this[we]("ignoredEntry",r),this[F]="ignore",r.resume()):r.size>0&&(this[ee]="",r.on("data",n=>this[ee]+=n),this[F]="meta"):(this[$]=void 0,r.ignore=r.ignore||!this.filter(r.path,r),r.ignore?(this[we]("ignoredEntry",r),this[F]=r.remain?"ignore":"header",r.resume()):(r.remain?this[F]="body":(this[F]="header",r.end()),this[K]?this[X].push(r):(this[X].push(r),this[pi]())))}}}[Ts](){queueMicrotask(()=>this.emit("close"))}[Ss](e){let t=!0;if(!e)this[K]=void 0,t=!1;else if(Array.isArray(e)){let[i,...s]=e;this.emit(i,...s)}else this[K]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",()=>this[pi]()),t=!1);return t}[pi](){do;while(this[Ss](this[X].shift()));if(this[X].length===0){let e=this[K];!e||e.flowing||e.size===e.remain?this[Ae]||this.emit("drain"):e.once("drain",()=>this.emit("drain"))}}[bi](e,t){let i=this[be];if(!i)throw new Error("attempt to consume body without entry??");let s=i.blockRemain??0,r=s>=e.length&&t===0?e:e.subarray(t,t+s);return i.write(r),i.blockRemain||(this[F]="header",this[be]=void 0,i.end()),r.length}[Os](e,t){let i=this[be],s=this[bi](e,t);return!this[be]&&i&&this[_s](i),s}[we](e,t,i){this[X].length===0&&!this[K]?this.emit(e,t,i):this[X].push([e,t,i])}[_s](e){switch(this[we]("meta",this[ee]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[$]=Zt.parse(this[ee],this[$],!1);break;case"GlobalExtendedHeader":this[Ye]=Zt.parse(this[ee],this[Ye],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let t=this[$]??Object.create(null);this[$]=t,t.path=this[ee].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let t=this[$]||Object.create(null);this[$]=t,t.linkpath=this[ee].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+e.type)}}abort(e){this[ie]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e,t,i){if(typeof t=="function"&&(i=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8")),this[ie])return i?.(),!1;if((this[v]===void 0||this.brotli===void 0&&this[v]===!1)&&e){if(this[b]&&(e=Buffer.concat([this[b],e]),this[b]=void 0),e.length<Un)return this[b]=e,i?.(),!0;for(let h=0;this[v]===void 0&&h<xi.length;h++)e[h]!==xi[h]&&(this[v]=!1);let r=!1;if(this[v]===!1&&this.zstd!==!1){r=!0;for(let h=0;h<Ai.length;h++)if(e[h]!==Ai[h]){r=!1;break}}let n=this.brotli===void 0&&!r;if(this[v]===!1&&n)if(e.length<512)if(this[te])this.brotli=!0;else return this[b]=e,i?.(),!0;else try{new Oe(e.subarray(0,512)),this.brotli=!1}catch{this.brotli=!0}if(this[v]===void 0||this[v]===!1&&(this.brotli||r)){let h=this[te];this[te]=!1,this[v]=this[v]===void 0?new un({}):r?new yn({}):new mn({}),this[v].on("data",a=>this[St](a)),this[v].on("error",a=>this.abort(a)),this[v].on("end",()=>{this[te]=!0,this[St]()}),this[Ae]=!0;let o=!!this[v][h?"end":"write"](e);return this[Ae]=!1,i?.(),o}}this[Ae]=!0,this[v]?this[v].write(e):this[St](e),this[Ae]=!1;let s=this[X].length>0?!1:this[K]?this[K].flowing:!0;return!s&&this[X].length===0&&this[K]?.once("drain",()=>this.emit("drain")),i?.(),s}[wi](e){e&&!this[ie]&&(this[b]=this[b]?Buffer.concat([this[b],e]):e)}[Ot](){if(this[te]&&!this[yi]&&!this[ie]&&!this[Ve]){this[yi]=!0;let e=this[be];if(e&&e.blockRemain){let t=this[b]?this[b].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[b]&&e.write(this[b]),e.end()}this[we](kt)}}[St](e){if(this[Ve]&&e)this[wi](e);else if(!e&&!this[b])this[Ot]();else if(e){if(this[Ve]=!0,this[b]){this[wi](e);let t=this[b];this[b]=void 0,this[_t](t)}else this[_t](e);for(;this[b]&&this[b]?.length>=512&&!this[ie]&&!this[Lt];){let t=this[b];this[b]=void 0,this[_t](t)}this[Ve]=!1}(!this[b]||this[te])&&this[Ot]()}[_t](e){let t=0,i=e.length;for(;t+512<=i&&!this[ie]&&!this[Lt];)switch(this[F]){case"begin":case"header":this[ks](e,t),t+=512;break;case"ignore":case"body":t+=this[bi](e,t);break;case"meta":t+=this[Os](e,t);break;default:throw new Error("invalid state: "+this[F])}t<i&&(this[b]=this[b]?Buffer.concat([e.subarray(t),this[b]]):e.subarray(t))}end(e,t,i){return typeof e=="function"&&(i=e,t=void 0,e=void 0),typeof t=="function"&&(i=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,t)),i&&this.once("finish",i),this[ie]||(this[v]?(e&&this[v].write(e),this[v].end()):(this[te]=!0,(this.brotli===void 0||this.zstd===void 0)&&(e=e||Buffer.alloc(0)),e&&this.write(e),this[Ot]())),this}},st=e=>{let t=e.length-1,i=-1;for(;t>-1&&e.charAt(t)==="/";)i=t,t--;return i===-1?e:e.slice(0,i)},Hn=e=>{let t=e.onReadEntry;e.onReadEntry=t?i=>{t(i),i.resume()}:i=>i.resume()},lr=(e,t)=>{let i=new Map(t.map(n=>[st(n),!0])),s=e.filter,r=(n,h="")=>{let o=h||(0,Vt.parse)(n).root||".",a;if(n===o)a=!1;else{let l=i.get(n);a=l!==void 0?l:r((0,Vt.dirname)(n),o)}return i.set(n,a),a};e.filter=s?(n,h)=>s(n,h)&&r(st(n)):n=>r(st(n))},Zn=e=>{let t=new lt(e),i=e.file,s;try{s=Re.default.openSync(i,"r");let r=Re.default.fstatSync(s),n=e.maxReadSize||16*1024*1024;if(r.size<n){let h=Buffer.allocUnsafe(r.size),o=Re.default.readSync(s,h,0,r.size,0);t.end(o===h.byteLength?h:h.subarray(0,o))}else{let h=0,o=Buffer.allocUnsafe(n);for(;h<r.size;){let a=Re.default.readSync(s,o,0,n,h);if(a===0)break;h+=a,t.write(o.subarray(0,a))}t.end()}}finally{if(typeof s=="number")try{Re.default.closeSync(s)}catch{}}},$n=(e,t)=>{let i=new lt(e),s=e.maxReadSize||16*1024*1024,r=e.file;return new Promise((n,h)=>{i.on("error",h),i.on("end",n),Re.default.stat(r,(o,a)=>{if(o)h(o);else{let l=new Xi(r,{readSize:s,size:a.size});l.on("error",h),l.pipe(i)}})})},qt=ut(Zn,$n,e=>new lt(e),e=>new lt(e),(e,t)=>{t?.length&&lr(e,t),e.noResume||Hn(e)}),dr=(e,t,i)=>(e&=4095,i&&(e=(e|384)&-19),t&&(e&256&&(e|=64),e&32&&(e|=8),e&4&&(e|=1)),e),{isAbsolute:Wn,parse:Ls}=cr.win32,ts=e=>{let t="",i=Ls(e);for(;Wn(e)||i.root;){let s=e.charAt(0)==="/"&&e.slice(0,4)!=="//?/"?"/":i.root;e=e.slice(s.length),t+=s,i=Ls(e)}return[t,e]},Jt=["|","<",">","?",":"],is=Jt.map(e=>String.fromCodePoint(61440+Number(e.codePointAt(0)))),Gn=new Map(Jt.map((e,t)=>[e,is[t]])),Yn=new Map(is.map((e,t)=>[e,Jt[t]])),xs=e=>Jt.reduce((t,i)=>t.split(i).join(Gn.get(i)),e),Vn=e=>is.reduce((t,i)=>t.split(i).join(Yn.get(i)),e),ur=(e,t)=>t?(e=c(e).replace(/^\.(\/|$)/,""),st(t)+"/"+e):c(e),Kn=16*1024*1024,As=Symbol("process"),Ds=Symbol("file"),Ns=Symbol("directory"),Ni=Symbol("symlink"),Is=Symbol("hardlink"),Ke=Symbol("header"),Ft=Symbol("read"),Ii=Symbol("lstat"),Bt=Symbol("onlstat"),Fi=Symbol("onread"),Bi=Symbol("onreadlink"),Ci=Symbol("openfile"),Mi=Symbol("onopenfile"),oe=Symbol("close"),$t=Symbol("mode"),Pi=Symbol("awaitDrain"),gi=Symbol("ondrain"),W=Symbol("prefix"),fr=class extends ke{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;#e=!1;constructor(e,t={}){let i=Ji(t);super(),this.path=c(e),this.portable=!!i.portable,this.maxReadSize=i.maxReadSize||Kn,this.linkCache=i.linkCache||new Map,this.statCache=i.statCache||new Map,this.preservePaths=!!i.preservePaths,this.cwd=c(i.cwd||process.cwd()),this.strict=!!i.strict,this.noPax=!!i.noPax,this.noMtime=!!i.noMtime,this.mtime=i.mtime,this.prefix=i.prefix?c(i.prefix):void 0,this.onWriteEntry=i.onWriteEntry,typeof i.onwarn=="function"&&this.on("warn",i.onwarn);let s=!1;if(!this.preservePaths){let[n,h]=ts(this.path);n&&typeof h=="string"&&(this.path=h,s=n)}this.win32=!!i.win32||process.platform==="win32",this.win32&&(this.path=Vn(this.path.replaceAll(/\\/g,"/")),e=e.replaceAll(/\\/g,"/")),this.absolute=c(i.absolute||Di.default.resolve(this.cwd,e)),this.path===""&&(this.path="./"),s&&this.warn("TAR_ENTRY_INFO",`stripping ${s} from absolute path`,{entry:this,path:s+this.path});let r=this.statCache.get(this.absolute);r?this[Bt](r):this[Ii]()}warn(e,t,i={}){return Xt(this,e,t,i)}emit(e,...t){return e==="error"&&(this.#e=!0),super.emit(e,...t)}[Ii](){z.default.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[Bt](t)})}[Bt](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Jn(e),this.emit("stat",e),this[As]()}[As](){switch(this.type){case"File":return this[Ds]();case"Directory":return this[Ns]();case"SymbolicLink":return this[Ni]();default:return this.end()}}[$t](e){return dr(e,this.type==="Directory",this.portable)}[W](e){return ur(e,this.prefix)}[Ke](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new Oe({path:this[W](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[W](this.linkpath):this.linkpath,mode:this[$t](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 Zt({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[W](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[W](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 e=this.header?.block;if(!e)throw new Error("failed to encode header");super.write(e)}[Ns](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[Ke](),this.end()}[Ni](){z.default.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[Bi](t)})}[Bi](e){this.linkpath=c(e),this[Ke](),this.end()}[Is](e){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=c(Di.default.relative(this.cwd,e)),this.stat.size=0,this[Ke](),this.end()}[Ds](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let e=`${this.stat.dev}:${this.stat.ino}`,t=this.linkCache.get(e);if(t?.indexOf(this.cwd)===0)return this[Is](t);this.linkCache.set(e,this.absolute)}if(this[Ke](),this.stat.size===0)return this.end();this[Ci]()}[Ci](){z.default.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[Mi](t)})}[Mi](e){if(this.fd=e,this.#e)return this[oe]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Ft]()}[Ft](){let{fd:e,buf:t,offset:i,length:s,pos:r}=this;if(e===void 0||t===void 0)throw new Error("cannot read file without first opening");z.default.read(e,t,i,s,r,(n,h)=>{if(n)return this[oe](()=>this.emit("error",n));this[Fi](h)})}[oe](e=()=>{}){this.fd!==void 0&&z.default.close(this.fd,e)}[Fi](e){if(e<=0&&this.remain>0){let i=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[oe](()=>this.emit("error",i))}if(e>this.remain){let i=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[oe](()=>this.emit("error",i))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(e===this.remain)for(let i=e;i<this.length&&e<this.blockRemain;i++)this.buf[i+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.subarray(this.offset,this.offset+e);this.write(t)?this[gi]():this[Pi](()=>this[gi]())}[Pi](e){this.once("drain",e)}write(e,t,i){if(typeof t=="function"&&(i=t,t=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof t=="string"?t:"utf8")),this.blockRemain<e.length){let s=Object.assign(new Error("writing more data than expected"),{path:this.absolute});return this.emit("error",s)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.len