@zenfs/core 0.0.10 → 0.0.11
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/browser.min.js +1 -1
- package/dist/browser.min.js.map +2 -2
- package/dist/utils.d.ts +1 -7
- package/dist/utils.js +2 -2
- package/package.json +1 -1
package/dist/browser.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var ZenFS=(()=>{var Et=Object.defineProperty,mi=Object.defineProperties,fi=Object.getOwnPropertyDescriptor,hi=Object.getOwnPropertyDescriptors,pi=Object.getOwnPropertyNames,We=Object.getOwnPropertySymbols,gi=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty,yi=Object.prototype.propertyIsEnumerable,bi=Reflect.get;var ee=Math.pow,Ke=(n,e,t)=>e in n?Et(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Y=(n,e)=>{for(var t in e||(e={}))je.call(e,t)&&Ke(n,t,e[t]);if(We)for(var t of We(e))yi.call(e,t)&&Ke(n,t,e[t]);return n},H=(n,e)=>mi(n,hi(e)),a=(n,e)=>Et(n,"name",{value:e,configurable:!0});var Dt=(n,e)=>{for(var t in e)Et(n,t,{get:e[t],enumerable:!0})},Si=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pi(e))!je.call(n,r)&&r!==t&&Et(n,r,{get:()=>e[r],enumerable:!(i=fi(e,r))||i.enumerable});return n};var wi=n=>Si(Et({},"__esModule",{value:!0}),n);var $e=(n,e,t)=>bi(gi(n),t,e);var u=(n,e,t)=>new Promise((i,r)=>{var s=d=>{try{l(t.next(d))}catch(m){r(m)}},o=d=>{try{l(t.throw(d))}catch(m){r(m)}},l=d=>d.done?i(d.value):Promise.resolve(d.value).then(s,o);l((t=t.apply(n,e)).next())});var Rr={};Dt(Rr,{ActionType:()=>zt,ApiError:()=>c,AsyncKeyValueFile:()=>xt,AsyncKeyValueFileSystem:()=>te,AsyncMirror:()=>tt,BaseFile:()=>Ct,BaseFileSystem:()=>K,Cred:()=>E,ErrorCode:()=>D,ErrorStrings:()=>P,FileFlag:()=>S,FileIndex:()=>vt,FileSystem:()=>st,FileType:()=>C,FolderAdapter:()=>J,InMemory:()=>j,IndexDirInode:()=>it,IndexFileInode:()=>It,NoSyncFile:()=>Mt,OverlayFS:()=>Z,PreloadFile:()=>L,ROOT_NODE_ID:()=>V,SimpleSyncRWTransaction:()=>yt,Stats:()=>k,SyncKeyValueFile:()=>bt,SyncKeyValueFileSystem:()=>St,SynchronousFileSystem:()=>ot,backends:()=>Zt,checkOptions:()=>ne,configure:()=>Ar,decode:()=>G,default:()=>Dr,encode:()=>w,fs:()=>qt,getFileSystem:()=>di,initialize:()=>ui,isIndexDirInode:()=>Me,isIndexFileInode:()=>ci,mkdirpSync:()=>Je,randomUUID:()=>dt,registerBackend:()=>ai,setImmediate:()=>_i,toPromise:()=>Ci,wait:()=>Ei});var Ue={};Dt(Ue,{_toUnixTimestamp:()=>He,access:()=>Hn,accessSync:()=>Nr,appendFile:()=>_n,appendFileSync:()=>ar,chmod:()=>$n,chmodSync:()=>_r,chown:()=>Kn,chownSync:()=>Er,close:()=>On,closeSync:()=>lr,constants:()=>pt,createReadStream:()=>tr,createWriteStream:()=>er,exists:()=>bn,existsSync:()=>ti,fchmod:()=>Rn,fchmodSync:()=>gr,fchown:()=>Dn,fchownSync:()=>pr,fdatasync:()=>Pn,fdatasyncSync:()=>mr,fstat:()=>kn,fstatSync:()=>cr,fsync:()=>Nn,fsyncSync:()=>dr,ftruncate:()=>Tn,ftruncateSync:()=>ur,futimes:()=>Bn,futimesSync:()=>yr,getMount:()=>gt,getMounts:()=>Ze,initialize:()=>Qe,lchmod:()=>Yn,lchmodSync:()=>kr,lchown:()=>jn,lchownSync:()=>Cr,link:()=>zn,linkSync:()=>Fr,lstat:()=>wn,lstatSync:()=>rr,lutimes:()=>Jn,lutimesSync:()=>Tr,mkdir:()=>Ln,mkdirSync:()=>Sr,mount:()=>Kt,open:()=>vn,openSync:()=>or,promises:()=>kt,read:()=>An,readFile:()=>En,readFileSync:()=>ii,readSync:()=>hr,readdir:()=>Mn,readdirSync:()=>wr,readlink:()=>Wn,readlinkSync:()=>vr,realpath:()=>qn,realpathSync:()=>Be,rename:()=>yn,renameSync:()=>ir,rmdir:()=>Un,rmdirSync:()=>br,stat:()=>Sn,statSync:()=>nr,symlink:()=>Vn,symlinkSync:()=>xr,truncate:()=>Fn,truncateSync:()=>sr,umount:()=>ae,unlink:()=>xn,unlinkSync:()=>ei,unwatchFile:()=>Zn,utimes:()=>Xn,utimesSync:()=>Or,watch:()=>Qn,watchFile:()=>Gn,write:()=>In,writeFile:()=>Cn,writeFileSync:()=>ni,writeSync:()=>fr});var Fi="/",ut="/";function nt(n,e){if(typeof n!="string")throw new TypeError(`"${e}" is not a string`)}a(nt,"validateString");function Ye(n,e){let t="",i=0,r=-1,s=0,o="\0";for(let l=0;l<=n.length;++l){if(l<n.length)o=n[l];else{if(o=="/")break;o="/"}if(o=="/"){if(!(r===l-1||s===1))if(s===2){if(t.length<2||i!==2||t.at(-1)!=="."||t.at(-2)!=="."){if(t.length>2){let d=t.lastIndexOf("/");d===-1?(t="",i=0):(t=t.slice(0,d),i=t.length-1-t.lastIndexOf("/")),r=l,s=0;continue}else if(t.length!==0){t="",i=0,r=l,s=0;continue}}e&&(t+=t.length>0?"/..":"..",i=2)}else t.length>0?t+="/"+n.slice(r+1,l):t=n.slice(r+1,l),i=l-r-1;r=l,s=0}else o==="."&&s!==-1?++s:s=-1}return t}a(Ye,"normalizeString");function I(...n){let e="",t=!1;for(let i=n.length-1;i>=-1&&!t;i--){let r=i>=0?n[i]:Fi;nt(r,`paths[${i}]`),r.length!==0&&(e=`${r}/${e}`,t=r[0]==="/")}return e=Ye(e,!t),t?`/${e}`:e.length>0?e:"."}a(I,"resolve");function xi(n){if(nt(n,"path"),n.length===0)return".";let e=n[0]==="/",t=n.at(-1)==="/";return n=Ye(n,!e),n.length===0?e?"/":t?"./":".":(t&&(n+="/"),e?`/${n}`:n)}a(xi,"normalize");function R(...n){if(n.length===0)return".";let e;for(let t=0;t<n.length;++t){let i=n[t];nt(i,"path"),i.length>0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?".":xi(e)}a(R,"join");function Xe(n,e){if(nt(n,"from"),nt(e,"to"),n===e||(n=I(n),e=I(e),n===e))return"";let t=1,i=n.length,r=i-t,s=1,o=e.length-s,l=r<o?r:o,d=-1,m=0;for(;m<l;m++){let h=n[t+m];if(h!==e[s+m])break;h==="/"&&(d=m)}if(m===l)if(o>l){if(e[s+m]==="/")return e.slice(s+m+1);if(m===0)return e.slice(s+m)}else r>l&&(n[t+m]==="/"?d=m:m===0&&(d=0));let f="";for(m=t+d+1;m<=i;++m)(m===i||n[m]==="/")&&(f+=f.length===0?"..":"/..");return`${f}${e.slice(s+d)}`}a(Xe,"relative");function F(n){if(nt(n,"path"),n.length===0)return".";let e=n[0]==="/",t=-1,i=!0;for(let r=n.length-1;r>=1;--r)if(n[r]==="/"){if(!i){t=r;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":n.slice(0,t)}a(F,"dirname");function A(n,e){e!==void 0&&nt(e,"ext"),nt(n,"path");let t=0,i=-1,r=!0;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let s=e.length-1,o=-1;for(let l=n.length-1;l>=0;--l)if(n[l]==="/"){if(!r){t=l+1;break}}else o===-1&&(r=!1,o=l+1),s>=0&&(n[l]===e[s]?--s===-1&&(i=l):(s=-1,i=o));return t===i?i=o:i===-1&&(i=n.length),n.slice(t,i)}for(let s=n.length-1;s>=0;--s)if(n[s]==="/"){if(!r){t=s+1;break}}else i===-1&&(r=!1,i=s+1);return i===-1?"":n.slice(t,i)}a(A,"basename");function Je(n,e,t,i){i.existsSync(n,t)||(Je(F(n),e,t,i),i.mkdirSync(n,e,t))}a(Je,"mkdirpSync");function Rt(n,e,t,i,r){return Math.min(n+1,e+1,t+1,i===r?e:e+1)}a(Rt,"_min");function vi(n,e){if(n===e)return 0;n.length>e.length&&([n,e]=[e,n]);let t=n.length,i=e.length;for(;t>0&&n.charCodeAt(t-1)===e.charCodeAt(i-1);)t--,i--;let r=0;for(;r<t&&n.charCodeAt(r)===e.charCodeAt(r);)r++;if(t-=r,i-=r,t===0||i===1)return i;let s=new Array(t<<1);for(let y=0;y<t;)s[t+y]=n.charCodeAt(r+y),s[y]=++y;let o,l,d,m,f;for(o=0;o+3<i;){let y=e.charCodeAt(r+(l=o)),v=e.charCodeAt(r+(d=o+1)),x=e.charCodeAt(r+(m=o+2)),g=e.charCodeAt(r+(f=o+3)),q=o+=4;for(let ht=0;ht<t;){let At=s[t+ht],Ve=s[ht];l=Rt(Ve,l,d,y,At),d=Rt(l,d,m,v,At),m=Rt(d,m,f,x,At),q=Rt(m,f,q,g,At),s[ht++]=q,f=m,m=d,d=l,l=Ve}}let h=0;for(;o<i;){let y=e.charCodeAt(r+(l=o));h=++o;for(let v=0;v<t;v++){let x=s[v];s[v]=h=x<l||h<l?x>h?h+1:x+1:y===s[t+v]?l:l+1,l=x}}return h}a(vi,"levenshtein");function ne(n,e){return u(this,null,function*(){let t=n.Options,i=n.Name,r=0,s=!1,o=!1;for(let l in t)if(Object.prototype.hasOwnProperty.call(t,l)){let d=t[l],m=e&&e[l];if(m==null){if(!d.optional){let f=Object.keys(e).filter(h=>!(h in t)).map(h=>({str:h,distance:vi(l,h)})).filter(h=>h.distance<5).sort((h,y)=>h.distance-y.distance);if(s)return;throw s=!0,new c(22,`[${i}] Required option '${l}' not provided.${f.length>0?` You provided unrecognized option '${f[0].str}'; perhaps you meant to type '${l}'.`:""}
|
|
2
2
|
Option description: ${d.description}`)}}else{let f=!1;if(Array.isArray(d.type)?f=d.type.indexOf(typeof m)!==-1:f=typeof m===d.type,f){if(d.validator){r++;try{yield d.validator(m)}catch(h){if(!s){if(h)throw s=!0,h;if(r--,r===0&&o)return}}}}else{if(s)return;throw s=!0,new c(22,`[${i}] Value provided for option ${l} is not the proper type. Expected ${Array.isArray(d.type)?`one of {${d.type.join(", ")}}`:d.type}, but received ${typeof m}
|
|
3
|
-
Option description: ${d.description}`)}}}o=!0})}a(ne,"checkOptions");function Ei(n){return new Promise(e=>{setTimeout(e,n)})}a(Ei,"wait");function Ci(n){return function(...e){return new Promise((t,i)=>{e.push((r,...s)=>{r?i(r):t(s[0])}),n(...e)})}}a(Ci,"toPromise");var _i=typeof globalThis.setImmediate=="function"?globalThis.setImmediate:n=>setTimeout(n,0),V="/",w=new TextEncoder().encode,G=new TextDecoder().decode;function dt(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){let e=Math.random()*16|0;return(n==="x"?e:e&3|8).toString(16)})}a(dt,"randomUUID");var D=(g=>(g[g.EPERM=1]="EPERM",g[g.ENOENT=2]="ENOENT",g[g.EIO=5]="EIO",g[g.EBADF=9]="EBADF",g[g.EACCES=13]="EACCES",g[g.EBUSY=16]="EBUSY",g[g.EEXIST=17]="EEXIST",g[g.ENOTDIR=20]="ENOTDIR",g[g.EISDIR=21]="EISDIR",g[g.EINVAL=22]="EINVAL",g[g.EFBIG=27]="EFBIG",g[g.ENOSPC=28]="ENOSPC",g[g.EROFS=30]="EROFS",g[g.ENOTEMPTY=39]="ENOTEMPTY",g[g.ENOTSUP=95]="ENOTSUP",g))(D||{}),P={};P[1]="Operation not permitted.";P[2]="No such file or directory.";P[5]="Input/output error.";P[9]="Bad file descriptor.";P[13]="Permission denied.";P[16]="Resource busy or locked.";P[17]="File exists.";P[20]="File is not a directory.";P[21]="File is a directory.";P[22]="Invalid argument.";P[27]="File is too big.";P[28]="No space left on disk.";P[30]="Cannot modify a read-only file system.";P[39]="Directory is not empty.";P[95]="Operation is not supported.";var c=class extends Error{constructor(t,i=P[t],r){super(i);this.syscall="";this.errno=t,this.code=D[t],this.path=r,this.message=`Error: ${this.code}: ${i}${this.path?`, '${this.path}'`:""}`}static fromJSON(t){let i=new c(t.errno,t.message,t.path);return i.code=t.code,i.stack=t.stack,i}static Derserialize(t,i=0){let r=new DataView("buffer"in t?t.buffer:t),s=G(r.buffer.slice(i+4,i+4+r.getUint32(i,!0)));return c.fromJSON(JSON.parse(s))}static FileError(t,i){return new c(t,P[t],i)}static EACCES(t){return this.FileError(13,t)}static ENOENT(t){return this.FileError(2,t)}static EEXIST(t){return this.FileError(17,t)}static EISDIR(t){return this.FileError(21,t)}static ENOTDIR(t){return this.FileError(20,t)}static EPERM(t){return this.FileError(1,t)}static ENOTEMPTY(t){return this.FileError(39,t)}toString(){return this.message}toJSON(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message}}serialize(t=new Uint8Array(this.bufferSize()),i=0){let r=new DataView("buffer"in t?t.buffer:t),s=new Uint8Array(r.buffer),o=w(JSON.stringify(this.toJSON()));return s.set(o),r.setUint32(i,o.byteLength,!0),s}bufferSize(){return 4+JSON.stringify(this.toJSON()).length}};a(c,"ApiError");var re=class{constructor(e,t,i,r,s,o){this.uid=e;this.gid=t;this.suid=i;this.sgid=r;this.euid=s;this.egid=o}},E=re;a(E,"Cred"),E.Root=new re(0,0,0,0,0,0);var pt={};Dt(pt,{COPYFILE_EXCL:()=>Ti,COPYFILE_FICLONE:()=>Ni,COPYFILE_FICLONE_FORCE:()=>Pi,F_OK:()=>ki,O_APPEND:()=>Mi,O_CREAT:()=>Ri,O_DIRECT:()=>Yi,O_DIRECTORY:()=>zi,O_DSYNC:()=>ji,O_EXCL:()=>Bi,O_NOATIME:()=>Vi,O_NOCTTY:()=>Ui,O_NOFOLLOW:()=>Wi,O_NONBLOCK:()=>Xi,O_RDONLY:()=>Ii,O_RDWR:()=>Di,O_SYMLINK:()=>$i,O_SYNC:()=>Ki,O_TRUNC:()=>Li,O_WRONLY:()=>Ai,R_OK:()=>Q,S_IFBLK:()=>qi,S_IFCHR:()=>Ji,S_IFDIR:()=>Ut,S_IFIFO:()=>Hi,S_IFLNK:()=>Lt,S_IFMT:()=>W,S_IFREG:()=>Bt,S_IFSOCK:()=>Gi,S_IRGRP:()=>rn,S_IROTH:()=>cn,S_IRUSR:()=>Qi,S_IRWXG:()=>nn,S_IRWXO:()=>an,S_IRWXU:()=>Zi,S_IWGRP:()=>sn,S_IWOTH:()=>ln,S_IWUSR:()=>tn,S_IXGRP:()=>on,S_IXOTH:()=>un,S_IXUSR:()=>en,W_OK:()=>rt,X_OK:()=>Oi});var ki=0,Q=4,rt=2,Oi=1,Ti=1,Ni=2,Pi=4,Ii=0,Ai=1,Di=2,Ri=64,Bi=128,Ui=256,Li=512,Mi=1024,zi=65536,Vi=262144,Wi=131072,Ki=1052672,ji=4096,$i=32768,Yi=16384,Xi=2048,W=61440,Bt=32768,Ut=16384,Ji=8192,qi=24576,Hi=4096,Lt=40960,Gi=49152,Zi=448,Qi=256,tn=128,en=64,nn=56,rn=32,sn=16,on=8,an=7,cn=4,ln=2,un=1;var C=(i=>(i[i.FILE=32768]="FILE",i[i.DIRECTORY=16384]="DIRECTORY",i[i.SYMLINK=40960]="SYMLINK",i))(C||{}),k=class{constructor(e,t,i,r,s,o,l,d,m){this.dev=0;this.ino=0;this.rdev=0;this.nlink=1;this.blksize=4096;this.uid=0;this.gid=0;this.fileData=null;this.size=t;let f=0;if(typeof r!="number"&&(f=Date.now(),r=f),typeof s!="number"&&(f||(f=Date.now()),s=f),typeof o!="number"&&(f||(f=Date.now()),o=f),typeof m!="number"&&(f||(f=Date.now()),m=f),typeof l!="number"&&(l=0),typeof d!="number"&&(d=0),this.atimeMs=r,this.ctimeMs=o,this.mtimeMs=s,this.birthtimeMs=m,i)this.mode=i;else switch(e){case C.FILE:this.mode=420;break;case C.DIRECTORY:default:this.mode=511}this.blocks=Math.ceil(t/512),this.mode&61440||(this.mode|=e)}static Deserialize(e){let t=new DataView("buffer"in e?e.buffer:e),i=t.getUint32(0,!0),r=t.getUint32(4,!0),s=t.getFloat64(8,!0),o=t.getFloat64(16,!0),l=t.getFloat64(24,!0),d=t.getUint32(32,!0),m=t.getUint32(36,!0);return new k(r&61440,i,r&-61441,s,o,l,d,m)}static clone(e){return new k(e.mode&61440,e.size,e.mode&-61441,e.atimeMs,e.mtimeMs,e.ctimeMs,e.uid,e.gid,e.birthtimeMs)}get atime(){return new Date(this.atimeMs)}get mtime(){return new Date(this.mtimeMs)}get ctime(){return new Date(this.ctimeMs)}get birthtime(){return new Date(this.birthtimeMs)}serialize(){let e=new Uint8Array(32),t=new DataView(e.buffer);return t.setUint32(0,this.size,!0),t.setUint32(4,this.mode,!0),t.setFloat64(8,this.atime.getTime(),!0),t.setFloat64(16,this.mtime.getTime(),!0),t.setFloat64(24,this.ctime.getTime(),!0),t.setUint32(32,this.uid,!0),t.setUint32(36,this.gid,!0),e}isFile(){return(this.mode&61440)===32768}isDirectory(){return(this.mode&61440)===16384}isSymbolicLink(){return(this.mode&61440)===40960}hasAccess(e,t){if(t.euid===0||t.egid===0)return!0;let i=this.mode&-61441,r=15,s=15,o=15;if(t.euid==this.uid){let m=(3840&i)>>8;r=(e^m)&e}if(t.egid==this.gid){let m=(240&i)>>4;s=(e^m)&e}let l=15&i;return o=(e^l)&e,!(r&s&o)}getCred(e=this.uid,t=this.gid){return new E(e,t,this.uid,this.gid,e,t)}chmod(e){this.mode=this.mode&61440|e}chown(e,t){!isNaN(+e)&&0<=+e&&+e<ee(2,32)&&(this.uid=e),!isNaN(+t)&&0<=+t&&+t<ee(2,32)&&(this.gid=t)}isSocket(){return!1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isFIFO(){return!1}};a(k,"Stats");var zt=(r=>(r[r.NOP=0]="NOP",r[r.THROW_EXCEPTION=1]="THROW_EXCEPTION",r[r.TRUNCATE_FILE=2]="TRUNCATE_FILE",r[r.CREATE_FILE=3]="CREATE_FILE",r))(zt||{}),mt=class{static getFileFlag(e){return mt.flagCache.has(e)||mt.flagCache.set(e,new mt(e)),mt.flagCache.get(e)}constructor(e){if(this.flagStr=e,mt.validFlagStrs.indexOf(e)<0)throw new c(22,"Invalid flag: "+e)}getFlagString(){return this.flagStr}getMode(){let e=0;return e<<=1,e+=+this.isReadable(),e<<=1,e+=+this.isWriteable(),e<<=1,e}isReadable(){return this.flagStr.indexOf("r")!==-1||this.flagStr.indexOf("+")!==-1}isWriteable(){return this.flagStr.indexOf("w")!==-1||this.flagStr.indexOf("a")!==-1||this.flagStr.indexOf("+")!==-1}isTruncating(){return this.flagStr.indexOf("w")!==-1}isAppendable(){return this.flagStr.indexOf("a")!==-1}isSynchronous(){return this.flagStr.indexOf("s")!==-1}isExclusive(){return this.flagStr.indexOf("x")!==-1}pathExistsAction(){return this.isExclusive()?1:this.isTruncating()?2:0}pathNotExistsAction(){return(this.isWriteable()||this.isAppendable())&&this.flagStr!=="r+"?3:1}},S=mt;a(S,"FileFlag"),S.flagCache=new Map,S.validFlagStrs=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];var Ct=class{sync(){return u(this,null,function*(){throw new c(95)})}syncSync(){throw new c(95)}datasync(){return u(this,null,function*(){return this.sync()})}datasyncSync(){return this.syncSync()}chown(e,t){return u(this,null,function*(){throw new c(95)})}chownSync(e,t){throw new c(95)}chmod(e){return u(this,null,function*(){throw new c(95)})}chmodSync(e){throw new c(95)}utimes(e,t){return u(this,null,function*(){throw new c(95)})}utimesSync(e,t){throw new c(95)}};a(Ct,"BaseFile");var L=class extends Ct{constructor(t,i,r,s,o){super();this._pos=0;this._dirty=!1;if(this._fs=t,this._path=i,this._flag=r,this._stat=s,this._buffer=o||new Uint8Array(0),this._stat.size!==this._buffer.length&&this._flag.isReadable())throw new Error(`Invalid buffer: Uint8Array is ${this._buffer.length} long, yet Stats object specifies that file is ${this._stat.size} long.`)}getBuffer(){return this._buffer}getStats(){return this._stat}getFlag(){return this._flag}getPath(){return this._path}getPos(){return this._flag.isAppendable()?this._stat.size:this._pos}advancePos(t){return this._pos+=t}setPos(t){return this._pos=t}sync(){return u(this,null,function*(){this.syncSync()})}syncSync(){throw new c(95)}close(){return u(this,null,function*(){this.closeSync()})}closeSync(){throw new c(95)}stat(){return u(this,null,function*(){return k.clone(this._stat)})}statSync(){return k.clone(this._stat)}truncate(t){if(this.truncateSync(t),this._flag.isSynchronous()&&!gt("/").metadata.synchronous)return this.sync()}truncateSync(t){if(this._dirty=!0,!this._flag.isWriteable())throw new c(1,"File not opened with a writeable mode.");if(this._stat.mtimeMs=Date.now(),t>this._buffer.length){let i=new Uint8Array(t-this._buffer.length);this.writeSync(i,0,i.length,this._buffer.length),this._flag.isSynchronous()&>("/").metadata.synchronous&&this.syncSync();return}this._stat.size=t,this._buffer=this._buffer.subarray(0,t),this._flag.isSynchronous()&>("/").metadata.synchronous&&this.syncSync()}write(t,i,r,s){return u(this,null,function*(){return this.writeSync(t,i,r,s)})}writeSync(t,i,r,s){if(this._dirty=!0,s==null&&(s=this.getPos()),!this._flag.isWriteable())throw new c(1,"File not opened with a writeable mode.");let o=s+r;if(o>this._stat.size&&(this._stat.size=o,o>this._buffer.length)){let d=new Uint8Array(o);d.set(this._buffer),this._buffer=d}this._buffer.set(t.slice(i,i+r),s);let l=this._buffer.length;return this._stat.mtimeMs=Date.now(),this._flag.isSynchronous()?(this.syncSync(),l):(this.setPos(s+l),l)}read(t,i,r,s){return u(this,null,function*(){return{bytesRead:this.readSync(t,i,r,s),buffer:t}})}readSync(t,i,r,s){if(!this._flag.isReadable())throw new c(1,"File not opened with a readable mode.");return s==null&&(s=this.getPos()),s+r>this._stat.size&&(r=this._stat.size-s),this._buffer.set(t.slice(i,i+r),s),this._stat.atimeMs=Date.now(),this._pos=s+r,this._buffer.length}chmod(t){return u(this,null,function*(){this.chmodSync(t)})}chmodSync(t){if(!this._fs.metadata.supportsProperties)throw new c(95);this._dirty=!0,this._stat.chmod(t),this.syncSync()}chown(t,i){return u(this,null,function*(){this.chownSync(t,i)})}chownSync(t,i){if(!this._fs.metadata.supportsProperties)throw new c(95);this._dirty=!0,this._stat.chown(t,i),this.syncSync()}isDirty(){return this._dirty}resetDirty(){this._dirty=!1}};a(L,"PreloadFile");var Mt=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}sync(){return u(this,null,function*(){})}syncSync(){}close(){return u(this,null,function*(){})}closeSync(){}};a(Mt,"NoSyncFile");var st=class{constructor(e){}};a(st,"FileSystem");var se=class extends st{constructor(t){super();this._ready=Promise.resolve(this)}get metadata(){return{name:this.constructor.name,readonly:!1,synchronous:!1,supportsProperties:!1,supportsLinks:!1,totalSpace:0,freeSpace:0}}whenReady(){return this._ready}openFile(t,i,r){return u(this,null,function*(){throw new c(95)})}createFile(t,i,r,s){return u(this,null,function*(){throw new c(95)})}open(t,i,r,s){return u(this,null,function*(){try{let o=yield this.stat(t,s);switch(i.pathExistsAction()){case 1:throw c.EEXIST(t);case 2:let l=yield this.openFile(t,i,s);if(!l)throw new Error("BFS has reached an impossible code path; please file a bug.");return yield l.truncate(0),yield l.sync(),l;case 0:return this.openFile(t,i,s);default:throw new c(22,"Invalid FileFlag object.")}}catch(o){switch(i.pathNotExistsAction()){case 3:let l=yield this.stat(F(t),s);if(l&&!l.isDirectory())throw c.ENOTDIR(F(t));return this.createFile(t,i,r,s);case 1:throw c.ENOENT(t);default:throw new c(22,"Invalid FileFlag object.")}}})}access(t,i,r){return u(this,null,function*(){throw new c(95)})}accessSync(t,i,r){throw new c(95)}rename(t,i,r){return u(this,null,function*(){throw new c(95)})}renameSync(t,i,r){throw new c(95)}stat(t,i){return u(this,null,function*(){throw new c(95)})}statSync(t,i){throw new c(95)}openFileSync(t,i,r){throw new c(95)}createFileSync(t,i,r,s){throw new c(95)}openSync(t,i,r,s){let o;try{o=this.statSync(t,s)}catch(l){switch(i.pathNotExistsAction()){case 3:if(!this.statSync(F(t),s).isDirectory())throw c.ENOTDIR(F(t));return this.createFileSync(t,i,r,s);case 1:throw c.ENOENT(t);default:throw new c(22,"Invalid FileFlag object.")}}if(!o.hasAccess(r,s))throw c.EACCES(t);switch(i.pathExistsAction()){case 1:throw c.EEXIST(t);case 2:return this.unlinkSync(t,s),this.createFileSync(t,i,o.mode,s);case 0:return this.openFileSync(t,i,s);default:throw new c(22,"Invalid FileFlag object.")}}unlink(t,i){return u(this,null,function*(){throw new c(95)})}unlinkSync(t,i){throw new c(95)}rmdir(t,i){return u(this,null,function*(){throw new c(95)})}rmdirSync(t,i){throw new c(95)}mkdir(t,i,r){return u(this,null,function*(){throw new c(95)})}mkdirSync(t,i,r){throw new c(95)}readdir(t,i){return u(this,null,function*(){throw new c(95)})}readdirSync(t,i){throw new c(95)}exists(t,i){return u(this,null,function*(){try{return yield this.stat(t,i),!0}catch(r){return!1}})}existsSync(t,i){try{return this.statSync(t,i),!0}catch(r){return!1}}realpath(t,i){return u(this,null,function*(){if(this.metadata.supportsLinks){let r=t.split(ut);for(let s=0;s<r.length;s++){let o=r.slice(0,s+1);r[s]=R(...o)}return r.join(ut)}else{if(!(yield this.exists(t,i)))throw c.ENOENT(t);return t}})}realpathSync(t,i){if(this.metadata.supportsLinks){let r=t.split(ut);for(let s=0;s<r.length;s++){let o=r.slice(0,s+1);r[s]=R(...o)}return r.join(ut)}else{if(this.existsSync(t,i))return t;throw c.ENOENT(t)}}truncate(t,i,r){return u(this,null,function*(){let s=yield this.open(t,S.getFileFlag("r+"),420,r);try{yield s.truncate(i)}finally{yield s.close()}})}truncateSync(t,i,r){let s=this.openSync(t,S.getFileFlag("r+"),420,r);try{s.truncateSync(i)}finally{s.closeSync()}}readFile(t,i,r,s){return u(this,null,function*(){let o=yield this.open(t,r,420,s);try{let l=yield o.stat(),d=new Uint8Array(l.size);return yield o.read(d,0,l.size,0),yield o.close(),i===null?d:G(d)}finally{yield o.close()}})}readFileSync(t,i,r,s){let o=this.openSync(t,r,420,s);try{let l=o.statSync(),d=new Uint8Array(l.size);return o.readSync(d,0,l.size,0),o.closeSync(),i===null?d:G(d)}finally{o.closeSync()}}writeFile(t,i,r,s,o,l){return u(this,null,function*(){let d=yield this.open(t,s,o,l);try{typeof i=="string"&&(i=w(i)),yield d.write(i,0,i.length,0)}finally{yield d.close()}})}writeFileSync(t,i,r,s,o,l){let d=this.openSync(t,s,o,l);try{typeof i=="string"&&(i=w(i)),d.writeSync(i,0,i.length,0)}finally{d.closeSync()}}appendFile(t,i,r,s,o,l){return u(this,null,function*(){let d=yield this.open(t,s,o,l);try{typeof i=="string"&&(i=w(i)),yield d.write(i,0,i.length,null)}finally{yield d.close()}})}appendFileSync(t,i,r,s,o,l){let d=this.openSync(t,s,o,l);try{typeof i=="string"&&(i=w(i)),d.writeSync(i,0,i.length,null)}finally{d.closeSync()}}chmod(t,i,r){return u(this,null,function*(){throw new c(95)})}chmodSync(t,i,r){throw new c(95)}chown(t,i,r,s){return u(this,null,function*(){throw new c(95)})}chownSync(t,i,r,s){throw new c(95)}utimes(t,i,r,s){return u(this,null,function*(){throw new c(95)})}utimesSync(t,i,r,s){throw new c(95)}link(t,i,r){return u(this,null,function*(){throw new c(95)})}linkSync(t,i,r){throw new c(95)}symlink(t,i,r,s){return u(this,null,function*(){throw new c(95)})}symlinkSync(t,i,r,s){throw new c(95)}readlink(t,i){return u(this,null,function*(){throw new c(95)})}readlinkSync(t,i){throw new c(95)}},K=se;a(K,"BaseFileSystem"),K.Name=se.name;var ot=class extends K{get metadata(){return H(Y({},super.metadata),{synchronous:!0})}access(e,t,i){return u(this,null,function*(){return this.accessSync(e,t,i)})}rename(e,t,i){return u(this,null,function*(){return this.renameSync(e,t,i)})}stat(e,t){return u(this,null,function*(){return this.statSync(e,t)})}open(e,t,i,r){return u(this,null,function*(){return this.openSync(e,t,i,r)})}unlink(e,t){return u(this,null,function*(){return this.unlinkSync(e,t)})}rmdir(e,t){return u(this,null,function*(){return this.rmdirSync(e,t)})}mkdir(e,t,i){return u(this,null,function*(){return this.mkdirSync(e,t,i)})}readdir(e,t){return u(this,null,function*(){return this.readdirSync(e,t)})}chmod(e,t,i){return u(this,null,function*(){return this.chmodSync(e,t,i)})}chown(e,t,i,r){return u(this,null,function*(){return this.chownSync(e,t,i,r)})}utimes(e,t,i,r){return u(this,null,function*(){return this.utimesSync(e,t,i,r)})}link(e,t,i){return u(this,null,function*(){return this.linkSync(e,t,i)})}symlink(e,t,i,r){return u(this,null,function*(){return this.symlinkSync(e,t,i,r)})}readlink(e,t){return u(this,null,function*(){return this.readlinkSync(e,t)})}};a(ot,"SynchronousFileSystem");var B=class{constructor(e,t,i,r,s,o,l,d){this.id=e;this.size=t;this.mode=i;this.atime=r;this.mtime=s;this.ctime=o;this.uid=l;this.gid=d}static Deserialize(e){let t=new DataView("buffer"in e?e.buffer:e);return new B(G(t.buffer.slice(38)),t.getUint32(0,!0),t.getUint16(4,!0),t.getFloat64(6,!0),t.getFloat64(14,!0),t.getFloat64(22,!0),t.getUint32(30,!0),t.getUint32(34,!0))}toStats(){return new k((this.mode&61440)===C.DIRECTORY?C.DIRECTORY:C.FILE,this.size,this.mode,this.atime,this.mtime,this.ctime,this.uid,this.gid)}getSize(){return 38+this.id.length}serialize(e=new Uint8Array(this.getSize())){let t=new DataView("buffer"in e?e.buffer:e);t.setUint32(0,this.size,!0),t.setUint16(4,this.mode,!0),t.setFloat64(6,this.atime,!0),t.setFloat64(14,this.mtime,!0),t.setFloat64(22,this.ctime,!0),t.setUint32(30,this.uid,!0),t.setUint32(34,this.gid,!0);let i=new Uint8Array(t.buffer);return i.set(w(this.id),38),i}update(e){let t=!1;this.size!==e.size&&(this.size=e.size,t=!0),this.mode!==e.mode&&(this.mode=e.mode,t=!0);let i=e.atime.getTime();this.atime!==i&&(this.atime=i,t=!0);let r=e.mtime.getTime();this.mtime!==r&&(this.mtime=r,t=!0);let s=e.ctime.getTime();return this.ctime!==s&&(this.ctime=s,t=!0),this.uid!==e.uid&&(this.uid=e.uid,t=!0),this.uid!==e.uid&&(this.uid=e.uid,t=!0),t}isFile(){return(this.mode&61440)===C.FILE}isDirectory(){return(this.mode&61440)===C.DIRECTORY}};a(B,"Inode");var yt=class{constructor(e){this.store=e;this.originalData={};this.modifiedKeys=[]}get(e){let t=this.store.get(e);return this.stashOldValue(e,t),t}put(e,t,i){return this.markModified(e),this.store.put(e,t,i)}del(e){this.markModified(e),this.store.del(e)}commit(){}abort(){for(let e of this.modifiedKeys){let t=this.originalData[e];t?this.store.put(e,t,!0):this.store.del(e)}}_has(e){return Object.prototype.hasOwnProperty.call(this.originalData,e)}stashOldValue(e,t){this._has(e)||(this.originalData[e]=t)}markModified(e){this.modifiedKeys.indexOf(e)===-1&&(this.modifiedKeys.push(e),this._has(e)||(this.originalData[e]=this.store.get(e)))}};a(yt,"SimpleSyncRWTransaction");var bt=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}syncSync(){this.isDirty()&&(this._fs._syncSync(this.getPath(),this.getBuffer(),this.getStats()),this.resetDirty())}closeSync(){this.syncSync()}};a(bt,"SyncKeyValueFile");var St=class extends ot{constructor(t){super();this.store=t.store,this.makeRootDirectory()}static isAvailable(){return!0}getName(){return this.store.name()}isReadOnly(){return!1}supportsSymlinks(){return!1}supportsProps(){return!0}supportsSynch(){return!0}empty(){this.store.clear(),this.makeRootDirectory()}accessSync(t,i,r){let s=this.store.beginTransaction("readonly");if(!this.findINode(s,t).toStats().hasAccess(i,r))throw c.EACCES(t)}renameSync(t,i,r){let s=this.store.beginTransaction("readwrite"),o=F(t),l=A(t),d=F(i),m=A(i),f=this.findINode(s,o),h=this.getDirListing(s,o,f);if(!f.toStats().hasAccess(2,r))throw c.EACCES(t);if(!h[l])throw c.ENOENT(t);let y=h[l];if(delete h[l],(d+"/").indexOf(t+"/")===0)throw new c(16,o);let v,x;if(d===o?(v=f,x=h):(v=this.findINode(s,d),x=this.getDirListing(s,d,v)),x[m]){let g=this.getINode(s,i,x[m]);if(g.isFile())try{s.del(g.id),s.del(x[m])}catch(q){throw s.abort(),q}else throw c.EPERM(i)}x[m]=y;try{s.put(f.id,w(JSON.stringify(h)),!0),s.put(v.id,w(JSON.stringify(x)),!0)}catch(g){throw s.abort(),g}s.commit()}statSync(t,i){let r=this.findINode(this.store.beginTransaction("readonly"),t).toStats();if(!r.hasAccess(4,i))throw c.EACCES(t);return r}createFileSync(t,i,r,s){let o=this.store.beginTransaction("readwrite"),l=new Uint8Array(0),d=this.commitNewFile(o,t,C.FILE,r,s,l);return new bt(this,t,i,d.toStats(),l)}openFileSync(t,i,r){let s=this.store.beginTransaction("readonly"),o=this.findINode(s,t),l=s.get(o.id);if(!o.toStats().hasAccess(i.getMode(),r))throw c.EACCES(t);if(l===void 0)throw c.ENOENT(t);return new bt(this,t,i,o.toStats(),l)}unlinkSync(t,i){this.removeEntry(t,!1,i)}rmdirSync(t,i){if(this.readdirSync(t,i).length>0)throw c.ENOTEMPTY(t);this.removeEntry(t,!0,i)}mkdirSync(t,i,r){let s=this.store.beginTransaction("readwrite"),o=w("{}");this.commitNewFile(s,t,C.DIRECTORY,i,r,o)}readdirSync(t,i){let r=this.store.beginTransaction("readonly"),s=this.findINode(r,t);if(!s.toStats().hasAccess(4,i))throw c.EACCES(t);return Object.keys(this.getDirListing(r,t,s))}chmodSync(t,i,r){this.openFileSync(t,S.getFileFlag("r+"),r).chmodSync(i)}chownSync(t,i,r,s){this.openFileSync(t,S.getFileFlag("r+"),s).chownSync(i,r)}_syncSync(t,i,r){let s=this.store.beginTransaction("readwrite"),o=this._findINode(s,F(t),A(t)),l=this.getINode(s,t,o),d=l.update(r);try{s.put(l.id,i,!0),d&&s.put(o,l.serialize(),!0)}catch(m){throw s.abort(),m}s.commit()}makeRootDirectory(){let t=this.store.beginTransaction("readwrite");if(t.get(V)===void 0){let i=new Date().getTime(),r=new B(dt(),4096,511|C.DIRECTORY,i,i,i,0,0);t.put(r.id,w("{}"),!1),t.put(V,r.serialize(),!1),t.commit()}}_findINode(t,i,r,s=new Set){let o=R(i,r);if(s.has(o))throw new c(5,"Infinite loop detected while finding inode",o);s.add(o);let l=a(d=>{let m=this.getDirListing(t,i,d);if(m[r])return m[r];throw c.ENOENT(I(i,r))},"readDirectory");return i==="/"?r===""?V:l(this.getINode(t,i,V)):l(this.getINode(t,i+ut+r,this._findINode(t,F(i),A(i),s)))}findINode(t,i){return this.getINode(t,i,this._findINode(t,F(i),A(i)))}getINode(t,i,r){let s=t.get(r);if(s===void 0)throw c.ENOENT(i);return B.Deserialize(s)}getDirListing(t,i,r){if(!r.isDirectory())throw c.ENOTDIR(i);let s=t.get(r.id);if(s===void 0)throw c.ENOENT(i);return JSON.parse(s.toString())}addNewNode(t,i){let s;for(;0<5;)try{return s=dt(),t.put(s,i,!1),s}catch(o){}throw new c(5,"Unable to commit data to key-value store.")}commitNewFile(t,i,r,s,o,l){let d=F(i),m=A(i),f=this.findINode(t,d),h=this.getDirListing(t,d,f),y=new Date().getTime();if(!f.toStats().hasAccess(4,o))throw c.EACCES(i);if(i==="/")throw c.EEXIST(i);if(h[m])throw c.EEXIST(i);let v;try{let x=this.addNewNode(t,l);v=new B(x,l.length,s|r,y,y,y,o.uid,o.gid);let g=this.addNewNode(t,v.serialize());h[m]=g,t.put(f.id,w(JSON.stringify(h)),!0)}catch(x){throw t.abort(),x}return t.commit(),v}removeEntry(t,i,r){let s=this.store.beginTransaction("readwrite"),o=F(t),l=this.findINode(s,o),d=this.getDirListing(s,o,l),m=A(t);if(!d[m])throw c.ENOENT(t);let f=d[m],h=this.getINode(s,t,f);if(!h.toStats().hasAccess(2,r))throw c.EACCES(t);if(delete d[m],!i&&h.isDirectory())throw c.EISDIR(t);if(i&&!h.isDirectory())throw c.ENOTDIR(t);try{s.del(h.id),s.del(f),s.put(l.id,w(JSON.stringify(d)),!0)}catch(y){throw s.abort(),y}s.commit()}};a(St,"SyncKeyValueFileSystem");function at(n,e){e=typeof n=="function"?n:e,ne(this,n);let t=new this(typeof n=="function"?{}:n);if(typeof e!="function")return t.whenReady();t.whenReady().then(i=>e(null,i)).catch(i=>e(i))}a(at,"CreateBackend");var Vt=class{constructor(){this.store=new Map}name(){return j.Name}clear(){this.store.clear()}beginTransaction(e){return new yt(this)}get(e){return this.store.get(e)}put(e,t,i){return!i&&this.store.has(e)?!1:(this.store.set(e,t),!0)}del(e){this.store.delete(e)}};a(Vt,"InMemoryStore");var oe=class extends St{constructor(){super({store:new Vt})}},j=oe;a(j,"InMemoryFileSystem"),j.Name="InMemory",j.Create=at.bind(oe),j.Options={};function He(n){if(typeof n=="number")return n;if(n instanceof Date)return n.getTime()/1e3;throw new Error("Cannot parse time: "+n)}a(He,"_toUnixTimestamp");function M(n,e){switch(typeof n){case"number":return n;case"string":let t=parseInt(n,8);return isNaN(t)?e:t;default:return e}}a(M,"normalizeMode");function U(n){if(n instanceof Date)return n;if(typeof n=="number")return new Date(n*1e3);throw new c(22,"Invalid time.")}a(U,"normalizeTime");function O(n){if(n.indexOf("\0")>=0)throw new c(22,"Path must be a string without null bytes.");if(n==="")throw new c(22,"Path must not be empty.");return n=n.replaceAll(/\/+/g,"/"),I(n)}a(O,"normalizePath");function ct(n,e,t,i){switch(n===null?"null":typeof n){case"object":return{encoding:typeof n.encoding!="undefined"?n.encoding:e,flag:typeof n.flag!="undefined"?n.flag:t,mode:M(n.mode,i)};case"string":return{encoding:n,flag:t,mode:i};case"null":case"undefined":case"function":return{encoding:e,flag:t,mode:i};default:throw new TypeError(`"options" must be a string or an object, got ${typeof n} instead.`)}}a(ct,"normalizeOptions");function b(){}a(b,"nop");var p=E.Root;function Ge(n){p=n}a(Ge,"setCred");var ft=new Map,dn=100;function Wt(n){let e=dn++;return ft.set(e,n),e}a(Wt,"getFdForFile");function _(n){if(!ft.has(n))throw new c(9,"Invalid file descriptor.");return ft.get(n)}a(_,"fd2file");var X=new Map;j.Create().then(n=>Kt("/",n));function gt(n){return X.get(n)}a(gt,"getMount");function Ze(){return Object.fromEntries(X.entries())}a(Ze,"getMounts");function Kt(n,e){if(n[0]!=="/"&&(n="/"+n),n=I(n),X.has(n))throw new c(22,"Mount point "+n+" is already in use.");X.set(n,e)}a(Kt,"mount");function ae(n){if(n[0]!=="/"&&(n=`/${n}`),n=I(n),!X.has(n))throw new c(22,"Mount point "+n+" is already unmounted.");X.delete(n)}a(ae,"umount");function $(n){let e=[...X].sort((t,i)=>t[0].length>i[0].length?-1:1);for(let[t,i]of e)if(t.length<=n.length&&n.startsWith(t))return n=n.slice(t.length>1?t.length:0),n===""&&(n="/"),{fs:i,path:n,mountPoint:t};throw new c(5,"ZenFS not initialized with a file system")}a($,"resolveFS");function qe(n,e){for(let[t,i]of Object.entries(e))n=n.replaceAll(t,i);return n}a(qe,"fixPaths");function lt(n,e){return n.stack=qe(n.stack,e),n.message=qe(n.message,e),n}a(lt,"fixError");function Qe(n){n["/"]&&ae("/");for(let[e,t]of Object.entries(n)){if(!t.constructor.isAvailable())throw new c(22,`Can not mount "${e}" since the filesystem is unavailable.`);Kt(e,t)}}a(Qe,"initialize");var kt={};Dt(kt,{access:()=>Re,appendFile:()=>fe,chmod:()=>Pe,chown:()=>Te,close:()=>pe,constants:()=>pt,createReadStream:()=>pn,createWriteStream:()=>gn,exists:()=>jt,fchmod:()=>Fe,fchown:()=>we,fdatasync:()=>be,fstat:()=>he,fsync:()=>ye,ftruncate:()=>ge,futimes:()=>xe,lchmod:()=>Ie,lchown:()=>Ne,link:()=>_e,lstat:()=>ue,lutimes:()=>De,mkdir:()=>Ee,open:()=>me,read:()=>Se,readFile:()=>Yt,readdir:()=>Ce,readlink:()=>Oe,realpath:()=>_t,rename:()=>ce,rmdir:()=>ve,stat:()=>le,symlink:()=>ke,truncate:()=>de,unlink:()=>$t,unwatchFile:()=>fn,utimes:()=>Ae,watch:()=>hn,watchFile:()=>mn,write:()=>Jt,writeFile:()=>Xt});function T(){return u(this,arguments,function*(...[n,e,t,...i]){t=O(t);let{fs:r,path:s}=$(e&&(yield jt(t))?yield _t(t):t);try{return r[n](s,...i)}catch(o){throw lt(o,{[s]:t})}})}a(T,"doOp");function ce(n,e){return u(this,null,function*(){n=O(n),e=O(e);let t=$(n),i=$(e),r={[t.path]:n,[i.path]:e};try{if(t===i)return t.fs.rename(t.path,i.path,p);let s=yield Yt(n);yield Xt(e,s),yield $t(n)}catch(s){throw lt(s,r)}})}a(ce,"rename");function jt(n){return u(this,null,function*(){n=O(n);try{let{fs:e,path:t}=$(n);return e.exists(t,p)}catch(e){if(e.errno==2)return!1;throw e}})}a(jt,"exists");function le(n){return u(this,null,function*(){return T("stat",!0,n,p)})}a(le,"stat");function ue(n){return u(this,null,function*(){return T("stat",!1,n,p)})}a(ue,"lstat");function de(n,e=0){return u(this,null,function*(){if(e<0)throw new c(22);return T("truncate",!0,n,e,p)})}a(de,"truncate");function $t(n){return u(this,null,function*(){return T("unlink",!1,n,p)})}a($t,"unlink");function me(n,e,t=420){return u(this,null,function*(){let i=yield T("open",!0,n,S.getFileFlag(e),M(t,420),p);return Wt(i)})}a(me,"open");function Yt(t){return u(this,arguments,function*(n,e={}){let i=ct(e,null,"r",null),r=S.getFileFlag(i.flag);if(!r.isReadable())throw new c(22,"Flag passed to readFile must allow for reading.");return T("readFile",!0,n,i.encoding,r,p)})}a(Yt,"readFile");function Xt(n,e,t){return u(this,null,function*(){let i=ct(t,"utf8","w",420),r=S.getFileFlag(i.flag);if(!r.isWriteable())throw new c(22,"Flag passed to writeFile must allow for writing.");return T("writeFile",!0,n,e,i.encoding,r,i.mode,p)})}a(Xt,"writeFile");function fe(n,e,t){return u(this,null,function*(){let i=ct(t,"utf8","a",420),r=S.getFileFlag(i.flag);if(!r.isAppendable())throw new c(22,"Flag passed to appendFile must allow for appending.");return T("appendFile",!0,n,e,i.encoding,r,i.mode,p)})}a(fe,"appendFile");function he(n){return u(this,null,function*(){return _(n).stat()})}a(he,"fstat");function pe(n){return u(this,null,function*(){yield _(n).close(),ft.delete(n)})}a(pe,"close");function ge(n,e=0){return u(this,null,function*(){let t=_(n);if(e<0)throw new c(22);return t.truncate(e)})}a(ge,"ftruncate");function ye(n){return u(this,null,function*(){return _(n).sync()})}a(ye,"fsync");function be(n){return u(this,null,function*(){return _(n).datasync()})}a(be,"fdatasync");function Jt(n,e,t,i,r){return u(this,null,function*(){let s,o=0,l,d;if(typeof e=="string"){d=typeof t=="number"?t:null;let f=typeof i=="string"?i:"utf8";o=0,s=w(e),l=s.length}else s=e,o=t,l=i,d=typeof r=="number"?r:null;let m=_(n);return d==null&&(d=m.getPos()),m.write(s,o,l,d)})}a(Jt,"write");function Se(n,e,t,i,r){return u(this,null,function*(){let s=_(n);return isNaN(+r)&&(r=s.getPos()),s.read(e,t,i,r)})}a(Se,"read");function we(n,e,t){return u(this,null,function*(){return _(n).chown(e,t)})}a(we,"fchown");function Fe(n,e){return u(this,null,function*(){let t=typeof e=="string"?parseInt(e,8):e;return _(n).chmod(t)})}a(Fe,"fchmod");function xe(n,e,t){return u(this,null,function*(){return _(n).utimes(U(e),U(t))})}a(xe,"futimes");function ve(n){return u(this,null,function*(){return T("rmdir",!0,n,p)})}a(ve,"rmdir");function Ee(n,e){return u(this,null,function*(){return T("mkdir",!0,n,M(e,511),p)})}a(Ee,"mkdir");function Ce(n){return u(this,null,function*(){n=O(n);let e=yield T("readdir",!0,n,p),t=[...X.keys()];for(let i of t)if(i.startsWith(n)){let r=i.slice(n.length);if(r.includes("/")||r.length==0)continue;e.push(r)}return e})}a(Ce,"readdir");function _e(n,e){return u(this,null,function*(){return e=O(e),T("link",!1,n,e,p)})}a(_e,"link");function ke(n,e,t="file"){return u(this,null,function*(){if(!["file","dir","junction"].includes(t))throw new c(22,"Invalid type: "+t);return e=O(e),T("symlink",!1,n,e,t,p)})}a(ke,"symlink");function Oe(n){return u(this,null,function*(){return T("readlink",!1,n,p)})}a(Oe,"readlink");function Te(n,e,t){return u(this,null,function*(){return T("chown",!0,n,e,t,p)})}a(Te,"chown");function Ne(n,e,t){return u(this,null,function*(){return T("chown",!1,n,e,t,p)})}a(Ne,"lchown");function Pe(n,e){return u(this,null,function*(){let t=M(e,-1);if(t<0)throw new c(22,"Invalid mode.");return T("chmod",!0,n,t,p)})}a(Pe,"chmod");function Ie(n,e){return u(this,null,function*(){let t=M(e,-1);if(t<1)throw new c(22,"Invalid mode.");return T("chmod",!1,O(n),t,p)})}a(Ie,"lchmod");function Ae(n,e,t){return u(this,null,function*(){return T("utimes",!0,n,U(e),U(t),p)})}a(Ae,"utimes");function De(n,e,t){return u(this,null,function*(){return T("utimes",!1,n,U(e),U(t),p)})}a(De,"lutimes");function _t(t){return u(this,arguments,function*(n,e={}){n=O(n);let{fs:i,path:r,mountPoint:s}=$(n);try{if(!(yield i.stat(r,p)).isSymbolicLink())return n;let l=s+O(yield i.readlink(r,p));return _t(l)}catch(o){throw lt(o,{[r]:n})}})}a(_t,"realpath");function mn(i,r){return u(this,arguments,function*(n,e,t=b){throw new c(95)})}a(mn,"watchFile");function fn(t){return u(this,arguments,function*(n,e=b){throw new c(95)})}a(fn,"unwatchFile");function hn(i,r){return u(this,arguments,function*(n,e,t=b){throw new c(95)})}a(hn,"watch");function Re(n,e=384){return u(this,null,function*(){return T("access",!0,n,e,p)})}a(Re,"access");function pn(n,e){return u(this,null,function*(){throw new c(95)})}a(pn,"createReadStream");function gn(n,e){return u(this,null,function*(){throw new c(95)})}a(gn,"createWriteStream");function yn(n,e,t=b){ce(n,e).then(()=>t()).catch(t)}a(yn,"rename");function bn(n,e=b){jt(n).then(e).catch(()=>e(!1))}a(bn,"exists");function Sn(n,e=b){le(n).then(t=>e(null,t)).catch(e)}a(Sn,"stat");function wn(n,e=b){ue(n).then(t=>e(null,t)).catch(e)}a(wn,"lstat");function Fn(n,e=0,t=b){t=typeof e=="function"?e:t,de(n,typeof e=="number"?e:0).then(()=>t()).catch(t)}a(Fn,"truncate");function xn(n,e=b){$t(n).then(()=>e()).catch(e)}a(xn,"unlink");function vn(n,e,t,i=b){let r=M(t,420);i=typeof t=="function"?t:i,me(n,e,r).then(s=>i(null,s)).catch(i)}a(vn,"open");function En(n,e={},t=b){t=typeof e=="function"?e:t,Yt(n,typeof e=="function"?null:e)}a(En,"readFile");function Cn(n,e,t={},i=b){i=typeof t=="function"?t:i,Xt(n,e,typeof t=="function"?void 0:t)}a(Cn,"writeFile");function _n(n,e,t,i=b){i=typeof t=="function"?t:i,fe(n,e,typeof t=="function"?null:t)}a(_n,"appendFile");function kn(n,e=b){he(n).then(t=>e(null,t)).catch(e)}a(kn,"fstat");function On(n,e=b){pe(n).then(()=>e()).catch(e)}a(On,"close");function Tn(n,e,t=b){let i=typeof e=="number"?e:0;t=typeof e=="function"?e:t,ge(n,i)}a(Tn,"ftruncate");function Nn(n,e=b){ye(n).then(()=>e()).catch(e)}a(Nn,"fsync");function Pn(n,e=b){be(n).then(()=>e()).catch(e)}a(Pn,"fdatasync");function In(n,e,t,i,r,s=b){let o,l,d,m=null,f;if(typeof e=="string"){switch(f="utf8",typeof t){case"function":s=t;break;case"number":m=t,f=typeof i=="string"?i:"utf8",s=typeof r=="function"?r:s;break;default:s=typeof i=="function"?i:typeof r=="function"?r:s,s(new c(22,"Invalid arguments."));return}o=w(e),l=0,d=o.length;let h=s;Jt(n,o,l,d,m).then(y=>h(null,y,G(o))).catch(h)}else{o=e,l=t,d=i,m=typeof r=="number"?r:null;let h=typeof r=="function"?r:s;Jt(n,o,l,d,m).then(y=>h(null,y,o)).catch(h)}}a(In,"write");function An(n,e,t,i,r,s=b){Se(n,e,t,i,r).then(({bytesRead:o,buffer:l})=>s(null,o,l)).catch(s)}a(An,"read");function Dn(n,e,t,i=b){we(n,e,t).then(()=>i()).catch(i)}a(Dn,"fchown");function Rn(n,e,t){Fe(n,e).then(()=>t()).catch(t)}a(Rn,"fchmod");function Bn(n,e,t,i=b){xe(n,e,t).then(()=>i()).catch(i)}a(Bn,"futimes");function Un(n,e=b){ve(n).then(()=>e()).catch(e)}a(Un,"rmdir");function Ln(n,e,t=b){Ee(n,e).then(()=>t()).catch(t)}a(Ln,"mkdir");function Mn(n,e=b){Ce(n).then(t=>e(null,t)).catch(e)}a(Mn,"readdir");function zn(n,e,t=b){_e(n,e).then(()=>t()).catch(t)}a(zn,"link");function Vn(n,e,t,i=b){let r=typeof t=="string"?t:"file";i=typeof t=="function"?t:i,ke(n,e,typeof t=="function"?null:t).then(()=>i()).catch(i)}a(Vn,"symlink");function Wn(n,e=b){Oe(n).then(t=>e(null,t)).catch(e)}a(Wn,"readlink");function Kn(n,e,t,i=b){Te(n,e,t).then(()=>i()).catch(i)}a(Kn,"chown");function jn(n,e,t,i=b){Ne(n,e,t).then(()=>i()).catch(i)}a(jn,"lchown");function $n(n,e,t=b){Pe(n,e).then(()=>t()).catch(t)}a($n,"chmod");function Yn(n,e,t=b){Ie(n,e).then(()=>t()).catch(t)}a(Yn,"lchmod");function Xn(n,e,t,i=b){Ae(n,e,t).then(()=>i()).catch(i)}a(Xn,"utimes");function Jn(n,e,t,i=b){De(n,e,t).then(()=>i()).catch(i)}a(Jn,"lutimes");function qn(n,e,t=b){let i=typeof e=="object"?e:{};t=typeof e=="function"?e:t,_t(n,typeof e=="function"?null:e).then(r=>t(null,r)).catch(t)}a(qn,"realpath");function Hn(n,e,t=b){let i=typeof e=="number"?e:4;t=typeof e=="function"?e:t,Re(n,typeof e=="function"?null:e).then(()=>t()).catch(t)}a(Hn,"access");function Gn(n,e,t=b){throw new c(95)}a(Gn,"watchFile");function Zn(n,e=b){throw new c(95)}a(Zn,"unwatchFile");function Qn(n,e,t=b){throw new c(95)}a(Qn,"watch");function tr(n,e){throw new c(95)}a(tr,"createReadStream");function er(n,e){throw new c(95)}a(er,"createWriteStream");function N(...[n,e,t,...i]){t=O(t);let{fs:r,path:s}=$(e&&ti(t)?Be(t):t);try{return r[n](s,...i)}catch(o){throw lt(o,{[s]:t})}}a(N,"doOp");function ir(n,e){n=O(n),e=O(e);let t=$(n),i=$(e),r={[t.path]:n,[i.path]:e};try{if(t===i)return t.fs.renameSync(t.path,i.path,p);let s=ii(n);ni(e,s),ei(n)}catch(s){throw lt(s,r)}}a(ir,"renameSync");function ti(n){n=O(n);try{let{fs:e,path:t}=$(n);return e.existsSync(t,p)}catch(e){if(e.errno==2)return!1;throw e}}a(ti,"existsSync");function nr(n){return N("statSync",!0,n,p)}a(nr,"statSync");function rr(n){return N("statSync",!1,n,p)}a(rr,"lstatSync");function sr(n,e=0){if(e<0)throw new c(22);return N("truncateSync",!0,n,e,p)}a(sr,"truncateSync");function ei(n){return N("unlinkSync",!1,n,p)}a(ei,"unlinkSync");function or(n,e,t=420){let i=N("openSync",!0,n,S.getFileFlag(e),M(t,420),p);return Wt(i)}a(or,"openSync");function ii(n,e={}){let t=ct(e,null,"r",null),i=S.getFileFlag(t.flag);if(!i.isReadable())throw new c(22,"Flag passed to readFile must allow for reading.");return N("readFileSync",!0,n,t.encoding,i,p)}a(ii,"readFileSync");function ni(n,e,t){let i=ct(t,"utf8","w",420),r=S.getFileFlag(i.flag);if(!r.isWriteable())throw new c(22,"Flag passed to writeFile must allow for writing.");return N("writeFileSync",!0,n,e,i.encoding,r,i.mode,p)}a(ni,"writeFileSync");function ar(n,e,t){let i=ct(t,"utf8","a",420),r=S.getFileFlag(i.flag);if(!r.isAppendable())throw new c(22,"Flag passed to appendFile must allow for appending.");return N("appendFileSync",!0,n,e,i.encoding,r,i.mode,p)}a(ar,"appendFileSync");function cr(n){return _(n).statSync()}a(cr,"fstatSync");function lr(n){_(n).closeSync(),ft.delete(n)}a(lr,"closeSync");function ur(n,e=0){let t=_(n);if(e<0)throw new c(22);t.truncateSync(e)}a(ur,"ftruncateSync");function dr(n){_(n).syncSync()}a(dr,"fsyncSync");function mr(n){_(n).datasyncSync()}a(mr,"fdatasyncSync");function fr(n,e,t,i,r){let s,o=0,l,d;if(typeof e=="string"){d=typeof t=="number"?t:null;let f=typeof i=="string"?i:"utf8";o=0,s=w(e),l=s.length}else s=e,o=t,l=i,d=typeof r=="number"?r:null;let m=_(n);return d==null&&(d=m.getPos()),m.writeSync(s,o,l,d)}a(fr,"writeSync");function hr(n,e,t,i,r){let s=_(n),o=t;return typeof t=="object"&&({offset:o,length:i,position:r}=t),isNaN(+r)&&(r=s.getPos()),s.readSync(e,o,i,r)}a(hr,"readSync");function pr(n,e,t){_(n).chownSync(e,t)}a(pr,"fchownSync");function gr(n,e){let t=typeof e=="string"?parseInt(e,8):e;_(n).chmodSync(t)}a(gr,"fchmodSync");function yr(n,e,t){_(n).utimesSync(U(e),U(t))}a(yr,"futimesSync");function br(n){return N("rmdirSync",!0,n,p)}a(br,"rmdirSync");function Sr(n,e){N("mkdirSync",!0,n,M(e,511),p)}a(Sr,"mkdirSync");function wr(n){n=O(n);let e=N("readdirSync",!0,n,p),t=[...X.keys()];for(let i of t)if(i.startsWith(n)){let r=i.slice(n.length);if(r.includes("/")||r.length==0)continue;e.push(r)}return e}a(wr,"readdirSync");function Fr(n,e){return e=O(e),N("linkSync",!1,n,e,p)}a(Fr,"linkSync");function xr(n,e,t){if(!["file","dir","junction"].includes(t))throw new c(22,"Invalid type: "+t);return e=O(e),N("symlinkSync",!1,n,e,t,p)}a(xr,"symlinkSync");function vr(n){return N("readlinkSync",!1,n,p)}a(vr,"readlinkSync");function Er(n,e,t){N("chownSync",!0,n,e,t,p)}a(Er,"chownSync");function Cr(n,e,t){N("chownSync",!1,n,e,t,p)}a(Cr,"lchownSync");function _r(n,e){let t=M(e,-1);if(t<0)throw new c(22,"Invalid mode.");N("chmodSync",!0,n,t,p)}a(_r,"chmodSync");function kr(n,e){let t=M(e,-1);if(t<1)throw new c(22,"Invalid mode.");N("chmodSync",!1,n,t,p)}a(kr,"lchmodSync");function Or(n,e,t){N("utimesSync",!0,n,U(e),U(t),p)}a(Or,"utimesSync");function Tr(n,e,t){N("utimesSync",!1,n,U(e),U(t),p)}a(Tr,"lutimesSync");function Be(n,e={}){n=O(n);let{fs:t,path:i,mountPoint:r}=$(n);try{if(!t.statSync(i,p).isSymbolicLink())return n;let o=O(r+t.readlinkSync(i,p));return Be(o)}catch(s){throw lt(s,{[i]:n})}}a(Be,"realpathSync");function Nr(n,e=384){return N("accessSync",!0,n,e,p)}a(Nr,"accessSync");var Pr=Ue,qt=Pr;var Ht=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}syncSync(){this.isDirty()&&(this._fs._syncSync(this),this.resetDirty())}closeSync(){this.syncSync()}};a(Ht,"MirrorFile");var Ot=class extends ot{constructor({sync:t,async:i}){super();this._queue=[];this._queueRunning=!1;this._isInitialized=!1;this._initializeCallbacks=[];this._sync=t,this._async=i,this._ready=this._initialize()}static isAvailable(){return!0}get metadata(){return H(Y({},super.metadata),{name:Ot.Name,synchronous:!0,supportsProperties:this._sync.metadata.supportsProperties&&this._async.metadata.supportsProperties})}_syncSync(t){let i=t.getStats();this._sync.writeFileSync(t.getPath(),t.getBuffer(),null,S.getFileFlag("w"),i.mode,i.getCred(0,0)),this.enqueueOp({apiMethod:"writeFile",arguments:[t.getPath(),t.getBuffer(),null,t.getFlag(),i.mode,i.getCred(0,0)]})}renameSync(t,i,r){this._sync.renameSync(t,i,r),this.enqueueOp({apiMethod:"rename",arguments:[t,i,r]})}statSync(t,i){return this._sync.statSync(t,i)}openSync(t,i,r,s){return this._sync.openSync(t,i,r,s).closeSync(),new Ht(this,t,i,this._sync.statSync(t,s),this._sync.readFileSync(t,null,S.getFileFlag("r"),s))}unlinkSync(t,i){this._sync.unlinkSync(t,i),this.enqueueOp({apiMethod:"unlink",arguments:[t,i]})}rmdirSync(t,i){this._sync.rmdirSync(t,i),this.enqueueOp({apiMethod:"rmdir",arguments:[t,i]})}mkdirSync(t,i,r){this._sync.mkdirSync(t,i,r),this.enqueueOp({apiMethod:"mkdir",arguments:[t,i,r]})}readdirSync(t,i){return this._sync.readdirSync(t,i)}existsSync(t,i){return this._sync.existsSync(t,i)}chmodSync(t,i,r){this._sync.chmodSync(t,i,r),this.enqueueOp({apiMethod:"chmod",arguments:[t,i,r]})}chownSync(t,i,r,s){this._sync.chownSync(t,i,r,s),this.enqueueOp({apiMethod:"chown",arguments:[t,i,r,s]})}utimesSync(t,i,r,s){this._sync.utimesSync(t,i,r,s),this.enqueueOp({apiMethod:"utimes",arguments:[t,i,r,s]})}_initialize(){return u(this,null,function*(){if(!this._isInitialized){let t=a((s,o)=>u(this,null,function*(){if(s!=="/"){let d=yield this._async.stat(s,E.Root);this._sync.mkdirSync(s,o,d.getCred())}let l=yield this._async.readdir(s,E.Root);for(let d of l)yield r(R(s,d))}),"copyDirectory"),i=a((s,o)=>u(this,null,function*(){let l=yield this._async.readFile(s,null,S.getFileFlag("r"),E.Root);this._sync.writeFileSync(s,l,null,S.getFileFlag("w"),o,E.Root)}),"copyFile"),r=a(s=>u(this,null,function*(){let o=yield this._async.stat(s,E.Root);o.isDirectory()?yield t(s,o.mode):yield i(s,o.mode)}),"copyItem");try{yield t("/",0),this._isInitialized=!0}catch(s){throw this._isInitialized=!1,s}}return this})}enqueueOp(t){if(this._queue.push(t),!this._queueRunning){this._queueRunning=!0;let i=a(r=>{if(r)throw new Error(`WARNING: File system has desynchronized. Received following error: ${r}
|
|
3
|
+
Option description: ${d.description}`)}}}o=!0})}a(ne,"checkOptions");function Ei(n){return new Promise(e=>{setTimeout(e,n)})}a(Ei,"wait");function Ci(n){return function(...e){return new Promise((t,i)=>{e.push((r,...s)=>{r?i(r):t(s[0])}),n(...e)})}}a(Ci,"toPromise");var _i=typeof globalThis.setImmediate=="function"?globalThis.setImmediate:n=>setTimeout(n,0),V="/",w=new globalThis.TextEncoder().encode,G=new globalThis.TextDecoder().decode;function dt(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){let e=Math.random()*16|0;return(n==="x"?e:e&3|8).toString(16)})}a(dt,"randomUUID");var D=(g=>(g[g.EPERM=1]="EPERM",g[g.ENOENT=2]="ENOENT",g[g.EIO=5]="EIO",g[g.EBADF=9]="EBADF",g[g.EACCES=13]="EACCES",g[g.EBUSY=16]="EBUSY",g[g.EEXIST=17]="EEXIST",g[g.ENOTDIR=20]="ENOTDIR",g[g.EISDIR=21]="EISDIR",g[g.EINVAL=22]="EINVAL",g[g.EFBIG=27]="EFBIG",g[g.ENOSPC=28]="ENOSPC",g[g.EROFS=30]="EROFS",g[g.ENOTEMPTY=39]="ENOTEMPTY",g[g.ENOTSUP=95]="ENOTSUP",g))(D||{}),P={};P[1]="Operation not permitted.";P[2]="No such file or directory.";P[5]="Input/output error.";P[9]="Bad file descriptor.";P[13]="Permission denied.";P[16]="Resource busy or locked.";P[17]="File exists.";P[20]="File is not a directory.";P[21]="File is a directory.";P[22]="Invalid argument.";P[27]="File is too big.";P[28]="No space left on disk.";P[30]="Cannot modify a read-only file system.";P[39]="Directory is not empty.";P[95]="Operation is not supported.";var c=class extends Error{constructor(t,i=P[t],r){super(i);this.syscall="";this.errno=t,this.code=D[t],this.path=r,this.message=`Error: ${this.code}: ${i}${this.path?`, '${this.path}'`:""}`}static fromJSON(t){let i=new c(t.errno,t.message,t.path);return i.code=t.code,i.stack=t.stack,i}static Derserialize(t,i=0){let r=new DataView("buffer"in t?t.buffer:t),s=G(r.buffer.slice(i+4,i+4+r.getUint32(i,!0)));return c.fromJSON(JSON.parse(s))}static FileError(t,i){return new c(t,P[t],i)}static EACCES(t){return this.FileError(13,t)}static ENOENT(t){return this.FileError(2,t)}static EEXIST(t){return this.FileError(17,t)}static EISDIR(t){return this.FileError(21,t)}static ENOTDIR(t){return this.FileError(20,t)}static EPERM(t){return this.FileError(1,t)}static ENOTEMPTY(t){return this.FileError(39,t)}toString(){return this.message}toJSON(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message}}serialize(t=new Uint8Array(this.bufferSize()),i=0){let r=new DataView("buffer"in t?t.buffer:t),s=new Uint8Array(r.buffer),o=w(JSON.stringify(this.toJSON()));return s.set(o),r.setUint32(i,o.byteLength,!0),s}bufferSize(){return 4+JSON.stringify(this.toJSON()).length}};a(c,"ApiError");var re=class{constructor(e,t,i,r,s,o){this.uid=e;this.gid=t;this.suid=i;this.sgid=r;this.euid=s;this.egid=o}},E=re;a(E,"Cred"),E.Root=new re(0,0,0,0,0,0);var pt={};Dt(pt,{COPYFILE_EXCL:()=>Ti,COPYFILE_FICLONE:()=>Ni,COPYFILE_FICLONE_FORCE:()=>Pi,F_OK:()=>ki,O_APPEND:()=>Mi,O_CREAT:()=>Ri,O_DIRECT:()=>Yi,O_DIRECTORY:()=>zi,O_DSYNC:()=>ji,O_EXCL:()=>Bi,O_NOATIME:()=>Vi,O_NOCTTY:()=>Ui,O_NOFOLLOW:()=>Wi,O_NONBLOCK:()=>Xi,O_RDONLY:()=>Ii,O_RDWR:()=>Di,O_SYMLINK:()=>$i,O_SYNC:()=>Ki,O_TRUNC:()=>Li,O_WRONLY:()=>Ai,R_OK:()=>Q,S_IFBLK:()=>qi,S_IFCHR:()=>Ji,S_IFDIR:()=>Ut,S_IFIFO:()=>Hi,S_IFLNK:()=>Lt,S_IFMT:()=>W,S_IFREG:()=>Bt,S_IFSOCK:()=>Gi,S_IRGRP:()=>rn,S_IROTH:()=>cn,S_IRUSR:()=>Qi,S_IRWXG:()=>nn,S_IRWXO:()=>an,S_IRWXU:()=>Zi,S_IWGRP:()=>sn,S_IWOTH:()=>ln,S_IWUSR:()=>tn,S_IXGRP:()=>on,S_IXOTH:()=>un,S_IXUSR:()=>en,W_OK:()=>rt,X_OK:()=>Oi});var ki=0,Q=4,rt=2,Oi=1,Ti=1,Ni=2,Pi=4,Ii=0,Ai=1,Di=2,Ri=64,Bi=128,Ui=256,Li=512,Mi=1024,zi=65536,Vi=262144,Wi=131072,Ki=1052672,ji=4096,$i=32768,Yi=16384,Xi=2048,W=61440,Bt=32768,Ut=16384,Ji=8192,qi=24576,Hi=4096,Lt=40960,Gi=49152,Zi=448,Qi=256,tn=128,en=64,nn=56,rn=32,sn=16,on=8,an=7,cn=4,ln=2,un=1;var C=(i=>(i[i.FILE=32768]="FILE",i[i.DIRECTORY=16384]="DIRECTORY",i[i.SYMLINK=40960]="SYMLINK",i))(C||{}),k=class{constructor(e,t,i,r,s,o,l,d,m){this.dev=0;this.ino=0;this.rdev=0;this.nlink=1;this.blksize=4096;this.uid=0;this.gid=0;this.fileData=null;this.size=t;let f=0;if(typeof r!="number"&&(f=Date.now(),r=f),typeof s!="number"&&(f||(f=Date.now()),s=f),typeof o!="number"&&(f||(f=Date.now()),o=f),typeof m!="number"&&(f||(f=Date.now()),m=f),typeof l!="number"&&(l=0),typeof d!="number"&&(d=0),this.atimeMs=r,this.ctimeMs=o,this.mtimeMs=s,this.birthtimeMs=m,i)this.mode=i;else switch(e){case C.FILE:this.mode=420;break;case C.DIRECTORY:default:this.mode=511}this.blocks=Math.ceil(t/512),this.mode&61440||(this.mode|=e)}static Deserialize(e){let t=new DataView("buffer"in e?e.buffer:e),i=t.getUint32(0,!0),r=t.getUint32(4,!0),s=t.getFloat64(8,!0),o=t.getFloat64(16,!0),l=t.getFloat64(24,!0),d=t.getUint32(32,!0),m=t.getUint32(36,!0);return new k(r&61440,i,r&-61441,s,o,l,d,m)}static clone(e){return new k(e.mode&61440,e.size,e.mode&-61441,e.atimeMs,e.mtimeMs,e.ctimeMs,e.uid,e.gid,e.birthtimeMs)}get atime(){return new Date(this.atimeMs)}get mtime(){return new Date(this.mtimeMs)}get ctime(){return new Date(this.ctimeMs)}get birthtime(){return new Date(this.birthtimeMs)}serialize(){let e=new Uint8Array(32),t=new DataView(e.buffer);return t.setUint32(0,this.size,!0),t.setUint32(4,this.mode,!0),t.setFloat64(8,this.atime.getTime(),!0),t.setFloat64(16,this.mtime.getTime(),!0),t.setFloat64(24,this.ctime.getTime(),!0),t.setUint32(32,this.uid,!0),t.setUint32(36,this.gid,!0),e}isFile(){return(this.mode&61440)===32768}isDirectory(){return(this.mode&61440)===16384}isSymbolicLink(){return(this.mode&61440)===40960}hasAccess(e,t){if(t.euid===0||t.egid===0)return!0;let i=this.mode&-61441,r=15,s=15,o=15;if(t.euid==this.uid){let m=(3840&i)>>8;r=(e^m)&e}if(t.egid==this.gid){let m=(240&i)>>4;s=(e^m)&e}let l=15&i;return o=(e^l)&e,!(r&s&o)}getCred(e=this.uid,t=this.gid){return new E(e,t,this.uid,this.gid,e,t)}chmod(e){this.mode=this.mode&61440|e}chown(e,t){!isNaN(+e)&&0<=+e&&+e<ee(2,32)&&(this.uid=e),!isNaN(+t)&&0<=+t&&+t<ee(2,32)&&(this.gid=t)}isSocket(){return!1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isFIFO(){return!1}};a(k,"Stats");var zt=(r=>(r[r.NOP=0]="NOP",r[r.THROW_EXCEPTION=1]="THROW_EXCEPTION",r[r.TRUNCATE_FILE=2]="TRUNCATE_FILE",r[r.CREATE_FILE=3]="CREATE_FILE",r))(zt||{}),mt=class{static getFileFlag(e){return mt.flagCache.has(e)||mt.flagCache.set(e,new mt(e)),mt.flagCache.get(e)}constructor(e){if(this.flagStr=e,mt.validFlagStrs.indexOf(e)<0)throw new c(22,"Invalid flag: "+e)}getFlagString(){return this.flagStr}getMode(){let e=0;return e<<=1,e+=+this.isReadable(),e<<=1,e+=+this.isWriteable(),e<<=1,e}isReadable(){return this.flagStr.indexOf("r")!==-1||this.flagStr.indexOf("+")!==-1}isWriteable(){return this.flagStr.indexOf("w")!==-1||this.flagStr.indexOf("a")!==-1||this.flagStr.indexOf("+")!==-1}isTruncating(){return this.flagStr.indexOf("w")!==-1}isAppendable(){return this.flagStr.indexOf("a")!==-1}isSynchronous(){return this.flagStr.indexOf("s")!==-1}isExclusive(){return this.flagStr.indexOf("x")!==-1}pathExistsAction(){return this.isExclusive()?1:this.isTruncating()?2:0}pathNotExistsAction(){return(this.isWriteable()||this.isAppendable())&&this.flagStr!=="r+"?3:1}},S=mt;a(S,"FileFlag"),S.flagCache=new Map,S.validFlagStrs=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];var Ct=class{sync(){return u(this,null,function*(){throw new c(95)})}syncSync(){throw new c(95)}datasync(){return u(this,null,function*(){return this.sync()})}datasyncSync(){return this.syncSync()}chown(e,t){return u(this,null,function*(){throw new c(95)})}chownSync(e,t){throw new c(95)}chmod(e){return u(this,null,function*(){throw new c(95)})}chmodSync(e){throw new c(95)}utimes(e,t){return u(this,null,function*(){throw new c(95)})}utimesSync(e,t){throw new c(95)}};a(Ct,"BaseFile");var L=class extends Ct{constructor(t,i,r,s,o){super();this._pos=0;this._dirty=!1;if(this._fs=t,this._path=i,this._flag=r,this._stat=s,this._buffer=o||new Uint8Array(0),this._stat.size!==this._buffer.length&&this._flag.isReadable())throw new Error(`Invalid buffer: Uint8Array is ${this._buffer.length} long, yet Stats object specifies that file is ${this._stat.size} long.`)}getBuffer(){return this._buffer}getStats(){return this._stat}getFlag(){return this._flag}getPath(){return this._path}getPos(){return this._flag.isAppendable()?this._stat.size:this._pos}advancePos(t){return this._pos+=t}setPos(t){return this._pos=t}sync(){return u(this,null,function*(){this.syncSync()})}syncSync(){throw new c(95)}close(){return u(this,null,function*(){this.closeSync()})}closeSync(){throw new c(95)}stat(){return u(this,null,function*(){return k.clone(this._stat)})}statSync(){return k.clone(this._stat)}truncate(t){if(this.truncateSync(t),this._flag.isSynchronous()&&!gt("/").metadata.synchronous)return this.sync()}truncateSync(t){if(this._dirty=!0,!this._flag.isWriteable())throw new c(1,"File not opened with a writeable mode.");if(this._stat.mtimeMs=Date.now(),t>this._buffer.length){let i=new Uint8Array(t-this._buffer.length);this.writeSync(i,0,i.length,this._buffer.length),this._flag.isSynchronous()&>("/").metadata.synchronous&&this.syncSync();return}this._stat.size=t,this._buffer=this._buffer.subarray(0,t),this._flag.isSynchronous()&>("/").metadata.synchronous&&this.syncSync()}write(t,i,r,s){return u(this,null,function*(){return this.writeSync(t,i,r,s)})}writeSync(t,i,r,s){if(this._dirty=!0,s==null&&(s=this.getPos()),!this._flag.isWriteable())throw new c(1,"File not opened with a writeable mode.");let o=s+r;if(o>this._stat.size&&(this._stat.size=o,o>this._buffer.length)){let d=new Uint8Array(o);d.set(this._buffer),this._buffer=d}this._buffer.set(t.slice(i,i+r),s);let l=this._buffer.length;return this._stat.mtimeMs=Date.now(),this._flag.isSynchronous()?(this.syncSync(),l):(this.setPos(s+l),l)}read(t,i,r,s){return u(this,null,function*(){return{bytesRead:this.readSync(t,i,r,s),buffer:t}})}readSync(t,i,r,s){if(!this._flag.isReadable())throw new c(1,"File not opened with a readable mode.");return s==null&&(s=this.getPos()),s+r>this._stat.size&&(r=this._stat.size-s),this._buffer.set(t.slice(i,i+r),s),this._stat.atimeMs=Date.now(),this._pos=s+r,this._buffer.length}chmod(t){return u(this,null,function*(){this.chmodSync(t)})}chmodSync(t){if(!this._fs.metadata.supportsProperties)throw new c(95);this._dirty=!0,this._stat.chmod(t),this.syncSync()}chown(t,i){return u(this,null,function*(){this.chownSync(t,i)})}chownSync(t,i){if(!this._fs.metadata.supportsProperties)throw new c(95);this._dirty=!0,this._stat.chown(t,i),this.syncSync()}isDirty(){return this._dirty}resetDirty(){this._dirty=!1}};a(L,"PreloadFile");var Mt=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}sync(){return u(this,null,function*(){})}syncSync(){}close(){return u(this,null,function*(){})}closeSync(){}};a(Mt,"NoSyncFile");var st=class{constructor(e){}};a(st,"FileSystem");var se=class extends st{constructor(t){super();this._ready=Promise.resolve(this)}get metadata(){return{name:this.constructor.name,readonly:!1,synchronous:!1,supportsProperties:!1,supportsLinks:!1,totalSpace:0,freeSpace:0}}whenReady(){return this._ready}openFile(t,i,r){return u(this,null,function*(){throw new c(95)})}createFile(t,i,r,s){return u(this,null,function*(){throw new c(95)})}open(t,i,r,s){return u(this,null,function*(){try{let o=yield this.stat(t,s);switch(i.pathExistsAction()){case 1:throw c.EEXIST(t);case 2:let l=yield this.openFile(t,i,s);if(!l)throw new Error("BFS has reached an impossible code path; please file a bug.");return yield l.truncate(0),yield l.sync(),l;case 0:return this.openFile(t,i,s);default:throw new c(22,"Invalid FileFlag object.")}}catch(o){switch(i.pathNotExistsAction()){case 3:let l=yield this.stat(F(t),s);if(l&&!l.isDirectory())throw c.ENOTDIR(F(t));return this.createFile(t,i,r,s);case 1:throw c.ENOENT(t);default:throw new c(22,"Invalid FileFlag object.")}}})}access(t,i,r){return u(this,null,function*(){throw new c(95)})}accessSync(t,i,r){throw new c(95)}rename(t,i,r){return u(this,null,function*(){throw new c(95)})}renameSync(t,i,r){throw new c(95)}stat(t,i){return u(this,null,function*(){throw new c(95)})}statSync(t,i){throw new c(95)}openFileSync(t,i,r){throw new c(95)}createFileSync(t,i,r,s){throw new c(95)}openSync(t,i,r,s){let o;try{o=this.statSync(t,s)}catch(l){switch(i.pathNotExistsAction()){case 3:if(!this.statSync(F(t),s).isDirectory())throw c.ENOTDIR(F(t));return this.createFileSync(t,i,r,s);case 1:throw c.ENOENT(t);default:throw new c(22,"Invalid FileFlag object.")}}if(!o.hasAccess(r,s))throw c.EACCES(t);switch(i.pathExistsAction()){case 1:throw c.EEXIST(t);case 2:return this.unlinkSync(t,s),this.createFileSync(t,i,o.mode,s);case 0:return this.openFileSync(t,i,s);default:throw new c(22,"Invalid FileFlag object.")}}unlink(t,i){return u(this,null,function*(){throw new c(95)})}unlinkSync(t,i){throw new c(95)}rmdir(t,i){return u(this,null,function*(){throw new c(95)})}rmdirSync(t,i){throw new c(95)}mkdir(t,i,r){return u(this,null,function*(){throw new c(95)})}mkdirSync(t,i,r){throw new c(95)}readdir(t,i){return u(this,null,function*(){throw new c(95)})}readdirSync(t,i){throw new c(95)}exists(t,i){return u(this,null,function*(){try{return yield this.stat(t,i),!0}catch(r){return!1}})}existsSync(t,i){try{return this.statSync(t,i),!0}catch(r){return!1}}realpath(t,i){return u(this,null,function*(){if(this.metadata.supportsLinks){let r=t.split(ut);for(let s=0;s<r.length;s++){let o=r.slice(0,s+1);r[s]=R(...o)}return r.join(ut)}else{if(!(yield this.exists(t,i)))throw c.ENOENT(t);return t}})}realpathSync(t,i){if(this.metadata.supportsLinks){let r=t.split(ut);for(let s=0;s<r.length;s++){let o=r.slice(0,s+1);r[s]=R(...o)}return r.join(ut)}else{if(this.existsSync(t,i))return t;throw c.ENOENT(t)}}truncate(t,i,r){return u(this,null,function*(){let s=yield this.open(t,S.getFileFlag("r+"),420,r);try{yield s.truncate(i)}finally{yield s.close()}})}truncateSync(t,i,r){let s=this.openSync(t,S.getFileFlag("r+"),420,r);try{s.truncateSync(i)}finally{s.closeSync()}}readFile(t,i,r,s){return u(this,null,function*(){let o=yield this.open(t,r,420,s);try{let l=yield o.stat(),d=new Uint8Array(l.size);return yield o.read(d,0,l.size,0),yield o.close(),i===null?d:G(d)}finally{yield o.close()}})}readFileSync(t,i,r,s){let o=this.openSync(t,r,420,s);try{let l=o.statSync(),d=new Uint8Array(l.size);return o.readSync(d,0,l.size,0),o.closeSync(),i===null?d:G(d)}finally{o.closeSync()}}writeFile(t,i,r,s,o,l){return u(this,null,function*(){let d=yield this.open(t,s,o,l);try{typeof i=="string"&&(i=w(i)),yield d.write(i,0,i.length,0)}finally{yield d.close()}})}writeFileSync(t,i,r,s,o,l){let d=this.openSync(t,s,o,l);try{typeof i=="string"&&(i=w(i)),d.writeSync(i,0,i.length,0)}finally{d.closeSync()}}appendFile(t,i,r,s,o,l){return u(this,null,function*(){let d=yield this.open(t,s,o,l);try{typeof i=="string"&&(i=w(i)),yield d.write(i,0,i.length,null)}finally{yield d.close()}})}appendFileSync(t,i,r,s,o,l){let d=this.openSync(t,s,o,l);try{typeof i=="string"&&(i=w(i)),d.writeSync(i,0,i.length,null)}finally{d.closeSync()}}chmod(t,i,r){return u(this,null,function*(){throw new c(95)})}chmodSync(t,i,r){throw new c(95)}chown(t,i,r,s){return u(this,null,function*(){throw new c(95)})}chownSync(t,i,r,s){throw new c(95)}utimes(t,i,r,s){return u(this,null,function*(){throw new c(95)})}utimesSync(t,i,r,s){throw new c(95)}link(t,i,r){return u(this,null,function*(){throw new c(95)})}linkSync(t,i,r){throw new c(95)}symlink(t,i,r,s){return u(this,null,function*(){throw new c(95)})}symlinkSync(t,i,r,s){throw new c(95)}readlink(t,i){return u(this,null,function*(){throw new c(95)})}readlinkSync(t,i){throw new c(95)}},K=se;a(K,"BaseFileSystem"),K.Name=se.name;var ot=class extends K{get metadata(){return H(Y({},super.metadata),{synchronous:!0})}access(e,t,i){return u(this,null,function*(){return this.accessSync(e,t,i)})}rename(e,t,i){return u(this,null,function*(){return this.renameSync(e,t,i)})}stat(e,t){return u(this,null,function*(){return this.statSync(e,t)})}open(e,t,i,r){return u(this,null,function*(){return this.openSync(e,t,i,r)})}unlink(e,t){return u(this,null,function*(){return this.unlinkSync(e,t)})}rmdir(e,t){return u(this,null,function*(){return this.rmdirSync(e,t)})}mkdir(e,t,i){return u(this,null,function*(){return this.mkdirSync(e,t,i)})}readdir(e,t){return u(this,null,function*(){return this.readdirSync(e,t)})}chmod(e,t,i){return u(this,null,function*(){return this.chmodSync(e,t,i)})}chown(e,t,i,r){return u(this,null,function*(){return this.chownSync(e,t,i,r)})}utimes(e,t,i,r){return u(this,null,function*(){return this.utimesSync(e,t,i,r)})}link(e,t,i){return u(this,null,function*(){return this.linkSync(e,t,i)})}symlink(e,t,i,r){return u(this,null,function*(){return this.symlinkSync(e,t,i,r)})}readlink(e,t){return u(this,null,function*(){return this.readlinkSync(e,t)})}};a(ot,"SynchronousFileSystem");var B=class{constructor(e,t,i,r,s,o,l,d){this.id=e;this.size=t;this.mode=i;this.atime=r;this.mtime=s;this.ctime=o;this.uid=l;this.gid=d}static Deserialize(e){let t=new DataView("buffer"in e?e.buffer:e);return new B(G(t.buffer.slice(38)),t.getUint32(0,!0),t.getUint16(4,!0),t.getFloat64(6,!0),t.getFloat64(14,!0),t.getFloat64(22,!0),t.getUint32(30,!0),t.getUint32(34,!0))}toStats(){return new k((this.mode&61440)===C.DIRECTORY?C.DIRECTORY:C.FILE,this.size,this.mode,this.atime,this.mtime,this.ctime,this.uid,this.gid)}getSize(){return 38+this.id.length}serialize(e=new Uint8Array(this.getSize())){let t=new DataView("buffer"in e?e.buffer:e);t.setUint32(0,this.size,!0),t.setUint16(4,this.mode,!0),t.setFloat64(6,this.atime,!0),t.setFloat64(14,this.mtime,!0),t.setFloat64(22,this.ctime,!0),t.setUint32(30,this.uid,!0),t.setUint32(34,this.gid,!0);let i=new Uint8Array(t.buffer);return i.set(w(this.id),38),i}update(e){let t=!1;this.size!==e.size&&(this.size=e.size,t=!0),this.mode!==e.mode&&(this.mode=e.mode,t=!0);let i=e.atime.getTime();this.atime!==i&&(this.atime=i,t=!0);let r=e.mtime.getTime();this.mtime!==r&&(this.mtime=r,t=!0);let s=e.ctime.getTime();return this.ctime!==s&&(this.ctime=s,t=!0),this.uid!==e.uid&&(this.uid=e.uid,t=!0),this.uid!==e.uid&&(this.uid=e.uid,t=!0),t}isFile(){return(this.mode&61440)===C.FILE}isDirectory(){return(this.mode&61440)===C.DIRECTORY}};a(B,"Inode");var yt=class{constructor(e){this.store=e;this.originalData={};this.modifiedKeys=[]}get(e){let t=this.store.get(e);return this.stashOldValue(e,t),t}put(e,t,i){return this.markModified(e),this.store.put(e,t,i)}del(e){this.markModified(e),this.store.del(e)}commit(){}abort(){for(let e of this.modifiedKeys){let t=this.originalData[e];t?this.store.put(e,t,!0):this.store.del(e)}}_has(e){return Object.prototype.hasOwnProperty.call(this.originalData,e)}stashOldValue(e,t){this._has(e)||(this.originalData[e]=t)}markModified(e){this.modifiedKeys.indexOf(e)===-1&&(this.modifiedKeys.push(e),this._has(e)||(this.originalData[e]=this.store.get(e)))}};a(yt,"SimpleSyncRWTransaction");var bt=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}syncSync(){this.isDirty()&&(this._fs._syncSync(this.getPath(),this.getBuffer(),this.getStats()),this.resetDirty())}closeSync(){this.syncSync()}};a(bt,"SyncKeyValueFile");var St=class extends ot{constructor(t){super();this.store=t.store,this.makeRootDirectory()}static isAvailable(){return!0}getName(){return this.store.name()}isReadOnly(){return!1}supportsSymlinks(){return!1}supportsProps(){return!0}supportsSynch(){return!0}empty(){this.store.clear(),this.makeRootDirectory()}accessSync(t,i,r){let s=this.store.beginTransaction("readonly");if(!this.findINode(s,t).toStats().hasAccess(i,r))throw c.EACCES(t)}renameSync(t,i,r){let s=this.store.beginTransaction("readwrite"),o=F(t),l=A(t),d=F(i),m=A(i),f=this.findINode(s,o),h=this.getDirListing(s,o,f);if(!f.toStats().hasAccess(2,r))throw c.EACCES(t);if(!h[l])throw c.ENOENT(t);let y=h[l];if(delete h[l],(d+"/").indexOf(t+"/")===0)throw new c(16,o);let v,x;if(d===o?(v=f,x=h):(v=this.findINode(s,d),x=this.getDirListing(s,d,v)),x[m]){let g=this.getINode(s,i,x[m]);if(g.isFile())try{s.del(g.id),s.del(x[m])}catch(q){throw s.abort(),q}else throw c.EPERM(i)}x[m]=y;try{s.put(f.id,w(JSON.stringify(h)),!0),s.put(v.id,w(JSON.stringify(x)),!0)}catch(g){throw s.abort(),g}s.commit()}statSync(t,i){let r=this.findINode(this.store.beginTransaction("readonly"),t).toStats();if(!r.hasAccess(4,i))throw c.EACCES(t);return r}createFileSync(t,i,r,s){let o=this.store.beginTransaction("readwrite"),l=new Uint8Array(0),d=this.commitNewFile(o,t,C.FILE,r,s,l);return new bt(this,t,i,d.toStats(),l)}openFileSync(t,i,r){let s=this.store.beginTransaction("readonly"),o=this.findINode(s,t),l=s.get(o.id);if(!o.toStats().hasAccess(i.getMode(),r))throw c.EACCES(t);if(l===void 0)throw c.ENOENT(t);return new bt(this,t,i,o.toStats(),l)}unlinkSync(t,i){this.removeEntry(t,!1,i)}rmdirSync(t,i){if(this.readdirSync(t,i).length>0)throw c.ENOTEMPTY(t);this.removeEntry(t,!0,i)}mkdirSync(t,i,r){let s=this.store.beginTransaction("readwrite"),o=w("{}");this.commitNewFile(s,t,C.DIRECTORY,i,r,o)}readdirSync(t,i){let r=this.store.beginTransaction("readonly"),s=this.findINode(r,t);if(!s.toStats().hasAccess(4,i))throw c.EACCES(t);return Object.keys(this.getDirListing(r,t,s))}chmodSync(t,i,r){this.openFileSync(t,S.getFileFlag("r+"),r).chmodSync(i)}chownSync(t,i,r,s){this.openFileSync(t,S.getFileFlag("r+"),s).chownSync(i,r)}_syncSync(t,i,r){let s=this.store.beginTransaction("readwrite"),o=this._findINode(s,F(t),A(t)),l=this.getINode(s,t,o),d=l.update(r);try{s.put(l.id,i,!0),d&&s.put(o,l.serialize(),!0)}catch(m){throw s.abort(),m}s.commit()}makeRootDirectory(){let t=this.store.beginTransaction("readwrite");if(t.get(V)===void 0){let i=new Date().getTime(),r=new B(dt(),4096,511|C.DIRECTORY,i,i,i,0,0);t.put(r.id,w("{}"),!1),t.put(V,r.serialize(),!1),t.commit()}}_findINode(t,i,r,s=new Set){let o=R(i,r);if(s.has(o))throw new c(5,"Infinite loop detected while finding inode",o);s.add(o);let l=a(d=>{let m=this.getDirListing(t,i,d);if(m[r])return m[r];throw c.ENOENT(I(i,r))},"readDirectory");return i==="/"?r===""?V:l(this.getINode(t,i,V)):l(this.getINode(t,i+ut+r,this._findINode(t,F(i),A(i),s)))}findINode(t,i){return this.getINode(t,i,this._findINode(t,F(i),A(i)))}getINode(t,i,r){let s=t.get(r);if(s===void 0)throw c.ENOENT(i);return B.Deserialize(s)}getDirListing(t,i,r){if(!r.isDirectory())throw c.ENOTDIR(i);let s=t.get(r.id);if(s===void 0)throw c.ENOENT(i);return JSON.parse(s.toString())}addNewNode(t,i){let s;for(;0<5;)try{return s=dt(),t.put(s,i,!1),s}catch(o){}throw new c(5,"Unable to commit data to key-value store.")}commitNewFile(t,i,r,s,o,l){let d=F(i),m=A(i),f=this.findINode(t,d),h=this.getDirListing(t,d,f),y=new Date().getTime();if(!f.toStats().hasAccess(4,o))throw c.EACCES(i);if(i==="/")throw c.EEXIST(i);if(h[m])throw c.EEXIST(i);let v;try{let x=this.addNewNode(t,l);v=new B(x,l.length,s|r,y,y,y,o.uid,o.gid);let g=this.addNewNode(t,v.serialize());h[m]=g,t.put(f.id,w(JSON.stringify(h)),!0)}catch(x){throw t.abort(),x}return t.commit(),v}removeEntry(t,i,r){let s=this.store.beginTransaction("readwrite"),o=F(t),l=this.findINode(s,o),d=this.getDirListing(s,o,l),m=A(t);if(!d[m])throw c.ENOENT(t);let f=d[m],h=this.getINode(s,t,f);if(!h.toStats().hasAccess(2,r))throw c.EACCES(t);if(delete d[m],!i&&h.isDirectory())throw c.EISDIR(t);if(i&&!h.isDirectory())throw c.ENOTDIR(t);try{s.del(h.id),s.del(f),s.put(l.id,w(JSON.stringify(d)),!0)}catch(y){throw s.abort(),y}s.commit()}};a(St,"SyncKeyValueFileSystem");function at(n,e){e=typeof n=="function"?n:e,ne(this,n);let t=new this(typeof n=="function"?{}:n);if(typeof e!="function")return t.whenReady();t.whenReady().then(i=>e(null,i)).catch(i=>e(i))}a(at,"CreateBackend");var Vt=class{constructor(){this.store=new Map}name(){return j.Name}clear(){this.store.clear()}beginTransaction(e){return new yt(this)}get(e){return this.store.get(e)}put(e,t,i){return!i&&this.store.has(e)?!1:(this.store.set(e,t),!0)}del(e){this.store.delete(e)}};a(Vt,"InMemoryStore");var oe=class extends St{constructor(){super({store:new Vt})}},j=oe;a(j,"InMemoryFileSystem"),j.Name="InMemory",j.Create=at.bind(oe),j.Options={};function He(n){if(typeof n=="number")return n;if(n instanceof Date)return n.getTime()/1e3;throw new Error("Cannot parse time: "+n)}a(He,"_toUnixTimestamp");function M(n,e){switch(typeof n){case"number":return n;case"string":let t=parseInt(n,8);return isNaN(t)?e:t;default:return e}}a(M,"normalizeMode");function U(n){if(n instanceof Date)return n;if(typeof n=="number")return new Date(n*1e3);throw new c(22,"Invalid time.")}a(U,"normalizeTime");function O(n){if(n.indexOf("\0")>=0)throw new c(22,"Path must be a string without null bytes.");if(n==="")throw new c(22,"Path must not be empty.");return n=n.replaceAll(/\/+/g,"/"),I(n)}a(O,"normalizePath");function ct(n,e,t,i){switch(n===null?"null":typeof n){case"object":return{encoding:typeof n.encoding!="undefined"?n.encoding:e,flag:typeof n.flag!="undefined"?n.flag:t,mode:M(n.mode,i)};case"string":return{encoding:n,flag:t,mode:i};case"null":case"undefined":case"function":return{encoding:e,flag:t,mode:i};default:throw new TypeError(`"options" must be a string or an object, got ${typeof n} instead.`)}}a(ct,"normalizeOptions");function b(){}a(b,"nop");var p=E.Root;function Ge(n){p=n}a(Ge,"setCred");var ft=new Map,dn=100;function Wt(n){let e=dn++;return ft.set(e,n),e}a(Wt,"getFdForFile");function _(n){if(!ft.has(n))throw new c(9,"Invalid file descriptor.");return ft.get(n)}a(_,"fd2file");var X=new Map;j.Create().then(n=>Kt("/",n));function gt(n){return X.get(n)}a(gt,"getMount");function Ze(){return Object.fromEntries(X.entries())}a(Ze,"getMounts");function Kt(n,e){if(n[0]!=="/"&&(n="/"+n),n=I(n),X.has(n))throw new c(22,"Mount point "+n+" is already in use.");X.set(n,e)}a(Kt,"mount");function ae(n){if(n[0]!=="/"&&(n=`/${n}`),n=I(n),!X.has(n))throw new c(22,"Mount point "+n+" is already unmounted.");X.delete(n)}a(ae,"umount");function $(n){let e=[...X].sort((t,i)=>t[0].length>i[0].length?-1:1);for(let[t,i]of e)if(t.length<=n.length&&n.startsWith(t))return n=n.slice(t.length>1?t.length:0),n===""&&(n="/"),{fs:i,path:n,mountPoint:t};throw new c(5,"ZenFS not initialized with a file system")}a($,"resolveFS");function qe(n,e){for(let[t,i]of Object.entries(e))n=n.replaceAll(t,i);return n}a(qe,"fixPaths");function lt(n,e){return n.stack=qe(n.stack,e),n.message=qe(n.message,e),n}a(lt,"fixError");function Qe(n){n["/"]&&ae("/");for(let[e,t]of Object.entries(n)){if(!t.constructor.isAvailable())throw new c(22,`Can not mount "${e}" since the filesystem is unavailable.`);Kt(e,t)}}a(Qe,"initialize");var kt={};Dt(kt,{access:()=>Re,appendFile:()=>fe,chmod:()=>Pe,chown:()=>Te,close:()=>pe,constants:()=>pt,createReadStream:()=>pn,createWriteStream:()=>gn,exists:()=>jt,fchmod:()=>Fe,fchown:()=>we,fdatasync:()=>be,fstat:()=>he,fsync:()=>ye,ftruncate:()=>ge,futimes:()=>xe,lchmod:()=>Ie,lchown:()=>Ne,link:()=>_e,lstat:()=>ue,lutimes:()=>De,mkdir:()=>Ee,open:()=>me,read:()=>Se,readFile:()=>Yt,readdir:()=>Ce,readlink:()=>Oe,realpath:()=>_t,rename:()=>ce,rmdir:()=>ve,stat:()=>le,symlink:()=>ke,truncate:()=>de,unlink:()=>$t,unwatchFile:()=>fn,utimes:()=>Ae,watch:()=>hn,watchFile:()=>mn,write:()=>Jt,writeFile:()=>Xt});function T(){return u(this,arguments,function*(...[n,e,t,...i]){t=O(t);let{fs:r,path:s}=$(e&&(yield jt(t))?yield _t(t):t);try{return r[n](s,...i)}catch(o){throw lt(o,{[s]:t})}})}a(T,"doOp");function ce(n,e){return u(this,null,function*(){n=O(n),e=O(e);let t=$(n),i=$(e),r={[t.path]:n,[i.path]:e};try{if(t===i)return t.fs.rename(t.path,i.path,p);let s=yield Yt(n);yield Xt(e,s),yield $t(n)}catch(s){throw lt(s,r)}})}a(ce,"rename");function jt(n){return u(this,null,function*(){n=O(n);try{let{fs:e,path:t}=$(n);return e.exists(t,p)}catch(e){if(e.errno==2)return!1;throw e}})}a(jt,"exists");function le(n){return u(this,null,function*(){return T("stat",!0,n,p)})}a(le,"stat");function ue(n){return u(this,null,function*(){return T("stat",!1,n,p)})}a(ue,"lstat");function de(n,e=0){return u(this,null,function*(){if(e<0)throw new c(22);return T("truncate",!0,n,e,p)})}a(de,"truncate");function $t(n){return u(this,null,function*(){return T("unlink",!1,n,p)})}a($t,"unlink");function me(n,e,t=420){return u(this,null,function*(){let i=yield T("open",!0,n,S.getFileFlag(e),M(t,420),p);return Wt(i)})}a(me,"open");function Yt(t){return u(this,arguments,function*(n,e={}){let i=ct(e,null,"r",null),r=S.getFileFlag(i.flag);if(!r.isReadable())throw new c(22,"Flag passed to readFile must allow for reading.");return T("readFile",!0,n,i.encoding,r,p)})}a(Yt,"readFile");function Xt(n,e,t){return u(this,null,function*(){let i=ct(t,"utf8","w",420),r=S.getFileFlag(i.flag);if(!r.isWriteable())throw new c(22,"Flag passed to writeFile must allow for writing.");return T("writeFile",!0,n,e,i.encoding,r,i.mode,p)})}a(Xt,"writeFile");function fe(n,e,t){return u(this,null,function*(){let i=ct(t,"utf8","a",420),r=S.getFileFlag(i.flag);if(!r.isAppendable())throw new c(22,"Flag passed to appendFile must allow for appending.");return T("appendFile",!0,n,e,i.encoding,r,i.mode,p)})}a(fe,"appendFile");function he(n){return u(this,null,function*(){return _(n).stat()})}a(he,"fstat");function pe(n){return u(this,null,function*(){yield _(n).close(),ft.delete(n)})}a(pe,"close");function ge(n,e=0){return u(this,null,function*(){let t=_(n);if(e<0)throw new c(22);return t.truncate(e)})}a(ge,"ftruncate");function ye(n){return u(this,null,function*(){return _(n).sync()})}a(ye,"fsync");function be(n){return u(this,null,function*(){return _(n).datasync()})}a(be,"fdatasync");function Jt(n,e,t,i,r){return u(this,null,function*(){let s,o=0,l,d;if(typeof e=="string"){d=typeof t=="number"?t:null;let f=typeof i=="string"?i:"utf8";o=0,s=w(e),l=s.length}else s=e,o=t,l=i,d=typeof r=="number"?r:null;let m=_(n);return d==null&&(d=m.getPos()),m.write(s,o,l,d)})}a(Jt,"write");function Se(n,e,t,i,r){return u(this,null,function*(){let s=_(n);return isNaN(+r)&&(r=s.getPos()),s.read(e,t,i,r)})}a(Se,"read");function we(n,e,t){return u(this,null,function*(){return _(n).chown(e,t)})}a(we,"fchown");function Fe(n,e){return u(this,null,function*(){let t=typeof e=="string"?parseInt(e,8):e;return _(n).chmod(t)})}a(Fe,"fchmod");function xe(n,e,t){return u(this,null,function*(){return _(n).utimes(U(e),U(t))})}a(xe,"futimes");function ve(n){return u(this,null,function*(){return T("rmdir",!0,n,p)})}a(ve,"rmdir");function Ee(n,e){return u(this,null,function*(){return T("mkdir",!0,n,M(e,511),p)})}a(Ee,"mkdir");function Ce(n){return u(this,null,function*(){n=O(n);let e=yield T("readdir",!0,n,p),t=[...X.keys()];for(let i of t)if(i.startsWith(n)){let r=i.slice(n.length);if(r.includes("/")||r.length==0)continue;e.push(r)}return e})}a(Ce,"readdir");function _e(n,e){return u(this,null,function*(){return e=O(e),T("link",!1,n,e,p)})}a(_e,"link");function ke(n,e,t="file"){return u(this,null,function*(){if(!["file","dir","junction"].includes(t))throw new c(22,"Invalid type: "+t);return e=O(e),T("symlink",!1,n,e,t,p)})}a(ke,"symlink");function Oe(n){return u(this,null,function*(){return T("readlink",!1,n,p)})}a(Oe,"readlink");function Te(n,e,t){return u(this,null,function*(){return T("chown",!0,n,e,t,p)})}a(Te,"chown");function Ne(n,e,t){return u(this,null,function*(){return T("chown",!1,n,e,t,p)})}a(Ne,"lchown");function Pe(n,e){return u(this,null,function*(){let t=M(e,-1);if(t<0)throw new c(22,"Invalid mode.");return T("chmod",!0,n,t,p)})}a(Pe,"chmod");function Ie(n,e){return u(this,null,function*(){let t=M(e,-1);if(t<1)throw new c(22,"Invalid mode.");return T("chmod",!1,O(n),t,p)})}a(Ie,"lchmod");function Ae(n,e,t){return u(this,null,function*(){return T("utimes",!0,n,U(e),U(t),p)})}a(Ae,"utimes");function De(n,e,t){return u(this,null,function*(){return T("utimes",!1,n,U(e),U(t),p)})}a(De,"lutimes");function _t(t){return u(this,arguments,function*(n,e={}){n=O(n);let{fs:i,path:r,mountPoint:s}=$(n);try{if(!(yield i.stat(r,p)).isSymbolicLink())return n;let l=s+O(yield i.readlink(r,p));return _t(l)}catch(o){throw lt(o,{[r]:n})}})}a(_t,"realpath");function mn(i,r){return u(this,arguments,function*(n,e,t=b){throw new c(95)})}a(mn,"watchFile");function fn(t){return u(this,arguments,function*(n,e=b){throw new c(95)})}a(fn,"unwatchFile");function hn(i,r){return u(this,arguments,function*(n,e,t=b){throw new c(95)})}a(hn,"watch");function Re(n,e=384){return u(this,null,function*(){return T("access",!0,n,e,p)})}a(Re,"access");function pn(n,e){return u(this,null,function*(){throw new c(95)})}a(pn,"createReadStream");function gn(n,e){return u(this,null,function*(){throw new c(95)})}a(gn,"createWriteStream");function yn(n,e,t=b){ce(n,e).then(()=>t()).catch(t)}a(yn,"rename");function bn(n,e=b){jt(n).then(e).catch(()=>e(!1))}a(bn,"exists");function Sn(n,e=b){le(n).then(t=>e(null,t)).catch(e)}a(Sn,"stat");function wn(n,e=b){ue(n).then(t=>e(null,t)).catch(e)}a(wn,"lstat");function Fn(n,e=0,t=b){t=typeof e=="function"?e:t,de(n,typeof e=="number"?e:0).then(()=>t()).catch(t)}a(Fn,"truncate");function xn(n,e=b){$t(n).then(()=>e()).catch(e)}a(xn,"unlink");function vn(n,e,t,i=b){let r=M(t,420);i=typeof t=="function"?t:i,me(n,e,r).then(s=>i(null,s)).catch(i)}a(vn,"open");function En(n,e={},t=b){t=typeof e=="function"?e:t,Yt(n,typeof e=="function"?null:e)}a(En,"readFile");function Cn(n,e,t={},i=b){i=typeof t=="function"?t:i,Xt(n,e,typeof t=="function"?void 0:t)}a(Cn,"writeFile");function _n(n,e,t,i=b){i=typeof t=="function"?t:i,fe(n,e,typeof t=="function"?null:t)}a(_n,"appendFile");function kn(n,e=b){he(n).then(t=>e(null,t)).catch(e)}a(kn,"fstat");function On(n,e=b){pe(n).then(()=>e()).catch(e)}a(On,"close");function Tn(n,e,t=b){let i=typeof e=="number"?e:0;t=typeof e=="function"?e:t,ge(n,i)}a(Tn,"ftruncate");function Nn(n,e=b){ye(n).then(()=>e()).catch(e)}a(Nn,"fsync");function Pn(n,e=b){be(n).then(()=>e()).catch(e)}a(Pn,"fdatasync");function In(n,e,t,i,r,s=b){let o,l,d,m=null,f;if(typeof e=="string"){switch(f="utf8",typeof t){case"function":s=t;break;case"number":m=t,f=typeof i=="string"?i:"utf8",s=typeof r=="function"?r:s;break;default:s=typeof i=="function"?i:typeof r=="function"?r:s,s(new c(22,"Invalid arguments."));return}o=w(e),l=0,d=o.length;let h=s;Jt(n,o,l,d,m).then(y=>h(null,y,G(o))).catch(h)}else{o=e,l=t,d=i,m=typeof r=="number"?r:null;let h=typeof r=="function"?r:s;Jt(n,o,l,d,m).then(y=>h(null,y,o)).catch(h)}}a(In,"write");function An(n,e,t,i,r,s=b){Se(n,e,t,i,r).then(({bytesRead:o,buffer:l})=>s(null,o,l)).catch(s)}a(An,"read");function Dn(n,e,t,i=b){we(n,e,t).then(()=>i()).catch(i)}a(Dn,"fchown");function Rn(n,e,t){Fe(n,e).then(()=>t()).catch(t)}a(Rn,"fchmod");function Bn(n,e,t,i=b){xe(n,e,t).then(()=>i()).catch(i)}a(Bn,"futimes");function Un(n,e=b){ve(n).then(()=>e()).catch(e)}a(Un,"rmdir");function Ln(n,e,t=b){Ee(n,e).then(()=>t()).catch(t)}a(Ln,"mkdir");function Mn(n,e=b){Ce(n).then(t=>e(null,t)).catch(e)}a(Mn,"readdir");function zn(n,e,t=b){_e(n,e).then(()=>t()).catch(t)}a(zn,"link");function Vn(n,e,t,i=b){let r=typeof t=="string"?t:"file";i=typeof t=="function"?t:i,ke(n,e,typeof t=="function"?null:t).then(()=>i()).catch(i)}a(Vn,"symlink");function Wn(n,e=b){Oe(n).then(t=>e(null,t)).catch(e)}a(Wn,"readlink");function Kn(n,e,t,i=b){Te(n,e,t).then(()=>i()).catch(i)}a(Kn,"chown");function jn(n,e,t,i=b){Ne(n,e,t).then(()=>i()).catch(i)}a(jn,"lchown");function $n(n,e,t=b){Pe(n,e).then(()=>t()).catch(t)}a($n,"chmod");function Yn(n,e,t=b){Ie(n,e).then(()=>t()).catch(t)}a(Yn,"lchmod");function Xn(n,e,t,i=b){Ae(n,e,t).then(()=>i()).catch(i)}a(Xn,"utimes");function Jn(n,e,t,i=b){De(n,e,t).then(()=>i()).catch(i)}a(Jn,"lutimes");function qn(n,e,t=b){let i=typeof e=="object"?e:{};t=typeof e=="function"?e:t,_t(n,typeof e=="function"?null:e).then(r=>t(null,r)).catch(t)}a(qn,"realpath");function Hn(n,e,t=b){let i=typeof e=="number"?e:4;t=typeof e=="function"?e:t,Re(n,typeof e=="function"?null:e).then(()=>t()).catch(t)}a(Hn,"access");function Gn(n,e,t=b){throw new c(95)}a(Gn,"watchFile");function Zn(n,e=b){throw new c(95)}a(Zn,"unwatchFile");function Qn(n,e,t=b){throw new c(95)}a(Qn,"watch");function tr(n,e){throw new c(95)}a(tr,"createReadStream");function er(n,e){throw new c(95)}a(er,"createWriteStream");function N(...[n,e,t,...i]){t=O(t);let{fs:r,path:s}=$(e&&ti(t)?Be(t):t);try{return r[n](s,...i)}catch(o){throw lt(o,{[s]:t})}}a(N,"doOp");function ir(n,e){n=O(n),e=O(e);let t=$(n),i=$(e),r={[t.path]:n,[i.path]:e};try{if(t===i)return t.fs.renameSync(t.path,i.path,p);let s=ii(n);ni(e,s),ei(n)}catch(s){throw lt(s,r)}}a(ir,"renameSync");function ti(n){n=O(n);try{let{fs:e,path:t}=$(n);return e.existsSync(t,p)}catch(e){if(e.errno==2)return!1;throw e}}a(ti,"existsSync");function nr(n){return N("statSync",!0,n,p)}a(nr,"statSync");function rr(n){return N("statSync",!1,n,p)}a(rr,"lstatSync");function sr(n,e=0){if(e<0)throw new c(22);return N("truncateSync",!0,n,e,p)}a(sr,"truncateSync");function ei(n){return N("unlinkSync",!1,n,p)}a(ei,"unlinkSync");function or(n,e,t=420){let i=N("openSync",!0,n,S.getFileFlag(e),M(t,420),p);return Wt(i)}a(or,"openSync");function ii(n,e={}){let t=ct(e,null,"r",null),i=S.getFileFlag(t.flag);if(!i.isReadable())throw new c(22,"Flag passed to readFile must allow for reading.");return N("readFileSync",!0,n,t.encoding,i,p)}a(ii,"readFileSync");function ni(n,e,t){let i=ct(t,"utf8","w",420),r=S.getFileFlag(i.flag);if(!r.isWriteable())throw new c(22,"Flag passed to writeFile must allow for writing.");return N("writeFileSync",!0,n,e,i.encoding,r,i.mode,p)}a(ni,"writeFileSync");function ar(n,e,t){let i=ct(t,"utf8","a",420),r=S.getFileFlag(i.flag);if(!r.isAppendable())throw new c(22,"Flag passed to appendFile must allow for appending.");return N("appendFileSync",!0,n,e,i.encoding,r,i.mode,p)}a(ar,"appendFileSync");function cr(n){return _(n).statSync()}a(cr,"fstatSync");function lr(n){_(n).closeSync(),ft.delete(n)}a(lr,"closeSync");function ur(n,e=0){let t=_(n);if(e<0)throw new c(22);t.truncateSync(e)}a(ur,"ftruncateSync");function dr(n){_(n).syncSync()}a(dr,"fsyncSync");function mr(n){_(n).datasyncSync()}a(mr,"fdatasyncSync");function fr(n,e,t,i,r){let s,o=0,l,d;if(typeof e=="string"){d=typeof t=="number"?t:null;let f=typeof i=="string"?i:"utf8";o=0,s=w(e),l=s.length}else s=e,o=t,l=i,d=typeof r=="number"?r:null;let m=_(n);return d==null&&(d=m.getPos()),m.writeSync(s,o,l,d)}a(fr,"writeSync");function hr(n,e,t,i,r){let s=_(n),o=t;return typeof t=="object"&&({offset:o,length:i,position:r}=t),isNaN(+r)&&(r=s.getPos()),s.readSync(e,o,i,r)}a(hr,"readSync");function pr(n,e,t){_(n).chownSync(e,t)}a(pr,"fchownSync");function gr(n,e){let t=typeof e=="string"?parseInt(e,8):e;_(n).chmodSync(t)}a(gr,"fchmodSync");function yr(n,e,t){_(n).utimesSync(U(e),U(t))}a(yr,"futimesSync");function br(n){return N("rmdirSync",!0,n,p)}a(br,"rmdirSync");function Sr(n,e){N("mkdirSync",!0,n,M(e,511),p)}a(Sr,"mkdirSync");function wr(n){n=O(n);let e=N("readdirSync",!0,n,p),t=[...X.keys()];for(let i of t)if(i.startsWith(n)){let r=i.slice(n.length);if(r.includes("/")||r.length==0)continue;e.push(r)}return e}a(wr,"readdirSync");function Fr(n,e){return e=O(e),N("linkSync",!1,n,e,p)}a(Fr,"linkSync");function xr(n,e,t){if(!["file","dir","junction"].includes(t))throw new c(22,"Invalid type: "+t);return e=O(e),N("symlinkSync",!1,n,e,t,p)}a(xr,"symlinkSync");function vr(n){return N("readlinkSync",!1,n,p)}a(vr,"readlinkSync");function Er(n,e,t){N("chownSync",!0,n,e,t,p)}a(Er,"chownSync");function Cr(n,e,t){N("chownSync",!1,n,e,t,p)}a(Cr,"lchownSync");function _r(n,e){let t=M(e,-1);if(t<0)throw new c(22,"Invalid mode.");N("chmodSync",!0,n,t,p)}a(_r,"chmodSync");function kr(n,e){let t=M(e,-1);if(t<1)throw new c(22,"Invalid mode.");N("chmodSync",!1,n,t,p)}a(kr,"lchmodSync");function Or(n,e,t){N("utimesSync",!0,n,U(e),U(t),p)}a(Or,"utimesSync");function Tr(n,e,t){N("utimesSync",!1,n,U(e),U(t),p)}a(Tr,"lutimesSync");function Be(n,e={}){n=O(n);let{fs:t,path:i,mountPoint:r}=$(n);try{if(!t.statSync(i,p).isSymbolicLink())return n;let o=O(r+t.readlinkSync(i,p));return Be(o)}catch(s){throw lt(s,{[i]:n})}}a(Be,"realpathSync");function Nr(n,e=384){return N("accessSync",!0,n,e,p)}a(Nr,"accessSync");var Pr=Ue,qt=Pr;var Ht=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}syncSync(){this.isDirty()&&(this._fs._syncSync(this),this.resetDirty())}closeSync(){this.syncSync()}};a(Ht,"MirrorFile");var Ot=class extends ot{constructor({sync:t,async:i}){super();this._queue=[];this._queueRunning=!1;this._isInitialized=!1;this._initializeCallbacks=[];this._sync=t,this._async=i,this._ready=this._initialize()}static isAvailable(){return!0}get metadata(){return H(Y({},super.metadata),{name:Ot.Name,synchronous:!0,supportsProperties:this._sync.metadata.supportsProperties&&this._async.metadata.supportsProperties})}_syncSync(t){let i=t.getStats();this._sync.writeFileSync(t.getPath(),t.getBuffer(),null,S.getFileFlag("w"),i.mode,i.getCred(0,0)),this.enqueueOp({apiMethod:"writeFile",arguments:[t.getPath(),t.getBuffer(),null,t.getFlag(),i.mode,i.getCred(0,0)]})}renameSync(t,i,r){this._sync.renameSync(t,i,r),this.enqueueOp({apiMethod:"rename",arguments:[t,i,r]})}statSync(t,i){return this._sync.statSync(t,i)}openSync(t,i,r,s){return this._sync.openSync(t,i,r,s).closeSync(),new Ht(this,t,i,this._sync.statSync(t,s),this._sync.readFileSync(t,null,S.getFileFlag("r"),s))}unlinkSync(t,i){this._sync.unlinkSync(t,i),this.enqueueOp({apiMethod:"unlink",arguments:[t,i]})}rmdirSync(t,i){this._sync.rmdirSync(t,i),this.enqueueOp({apiMethod:"rmdir",arguments:[t,i]})}mkdirSync(t,i,r){this._sync.mkdirSync(t,i,r),this.enqueueOp({apiMethod:"mkdir",arguments:[t,i,r]})}readdirSync(t,i){return this._sync.readdirSync(t,i)}existsSync(t,i){return this._sync.existsSync(t,i)}chmodSync(t,i,r){this._sync.chmodSync(t,i,r),this.enqueueOp({apiMethod:"chmod",arguments:[t,i,r]})}chownSync(t,i,r,s){this._sync.chownSync(t,i,r,s),this.enqueueOp({apiMethod:"chown",arguments:[t,i,r,s]})}utimesSync(t,i,r,s){this._sync.utimesSync(t,i,r,s),this.enqueueOp({apiMethod:"utimes",arguments:[t,i,r,s]})}_initialize(){return u(this,null,function*(){if(!this._isInitialized){let t=a((s,o)=>u(this,null,function*(){if(s!=="/"){let d=yield this._async.stat(s,E.Root);this._sync.mkdirSync(s,o,d.getCred())}let l=yield this._async.readdir(s,E.Root);for(let d of l)yield r(R(s,d))}),"copyDirectory"),i=a((s,o)=>u(this,null,function*(){let l=yield this._async.readFile(s,null,S.getFileFlag("r"),E.Root);this._sync.writeFileSync(s,l,null,S.getFileFlag("w"),o,E.Root)}),"copyFile"),r=a(s=>u(this,null,function*(){let o=yield this._async.stat(s,E.Root);o.isDirectory()?yield t(s,o.mode):yield i(s,o.mode)}),"copyItem");try{yield t("/",0),this._isInitialized=!0}catch(s){throw this._isInitialized=!1,s}}return this})}enqueueOp(t){if(this._queue.push(t),!this._queueRunning){this._queueRunning=!0;let i=a(r=>{if(r)throw new Error(`WARNING: File system has desynchronized. Received following error: ${r}
|
|
4
4
|
$`);if(this._queue.length>0){let s=this._queue.shift();s.arguments.push(i),this._async[s.apiMethod].apply(this._async,s.arguments)}else this._queueRunning=!1},"doNextOp");i()}}},tt=Ot;a(tt,"AsyncMirror"),tt.Name="AsyncMirror",tt.Create=at.bind(Ot),tt.Options={sync:{type:"object",description:"The synchronous file system to mirror the asynchronous file system to.",validator:t=>u(Ot,null,function*(){if(!(t!=null&&t.metadata.synchronous))throw new c(22,"'sync' option must be a file system that supports synchronous operations")})},async:{type:"object",description:"The asynchronous file system to mirror."}};var Le=class extends K{constructor({folder:t,wrapped:i}){super();this._folder=t,this._wrapped=i,this._ready=this._initialize()}static isAvailable(){return!0}get metadata(){return H(Y(Y({},super.metadata),this._wrapped.metadata),{supportsLinks:!1})}_initialize(){return u(this,null,function*(){if(!(yield this._wrapped.exists(this._folder,E.Root))&&this._wrapped.metadata.readonly)throw c.ENOENT(this._folder);return yield this._wrapped.mkdir(this._folder,511,E.Root),this})}},J=Le;a(J,"FolderAdapter"),J.Name="FolderAdapter",J.Create=at.bind(Le),J.Options={folder:{type:"string",description:"The folder to use as the root directory"},wrapped:{type:"object",description:"The file system to wrap"}};function ri(n,e){if(e!==null&&typeof e=="object"){let t=e,i=t.path;i&&(i="/"+Xe(n,i),t.message=t.message.replace(t.path,i),t.path=i)}return e}a(ri,"translateError");function Ir(n,e){return typeof e=="function"?function(t){arguments.length>0&&(arguments[0]=ri(n,t)),e.apply(null,arguments)}:e}a(Ir,"wrapCallback");function si(n,e,t){return n.slice(n.length-4)!=="Sync"?function(){return arguments.length>0&&(e&&(arguments[0]=R(this._folder,arguments[0])),t&&(arguments[1]=R(this._folder,arguments[1])),arguments[arguments.length-1]=Ir(this._folder,arguments[arguments.length-1])),this._wrapped[n].apply(this._wrapped,arguments)}:function(){try{return e&&(arguments[0]=R(this._folder,arguments[0])),t&&(arguments[1]=R(this._folder,arguments[1])),this._wrapped[n].apply(this._wrapped,arguments)}catch(i){throw ri(this._folder,i)}}}a(si,"wrapFunction");["diskSpace","stat","statSync","open","openSync","unlink","unlinkSync","rmdir","rmdirSync","mkdir","mkdirSync","readdir","readdirSync","exists","existsSync","realpath","realpathSync","truncate","truncateSync","readFile","readFileSync","writeFile","writeFileSync","appendFile","appendFileSync","chmod","chmodSync","chown","chownSync","utimes","utimesSync","readlink","readlinkSync"].forEach(n=>{J.prototype[n]=si(n,!0,!1)});["rename","renameSync","link","linkSync","symlink","symlinkSync"].forEach(n=>{J.prototype[n]=si(n,!0,!0)});var wt=class{constructor(){this._locks=new Map}lock(e){return new Promise(t=>{this._locks.has(e)?this._locks.get(e).push(t):this._locks.set(e,[])})}unlock(e){if(!this._locks.has(e))throw new Error("unlock of a non-locked mutex");let t=this._locks.get(e).shift();if(t){setTimeout(t,0);return}this._locks.delete(e)}tryLock(e){return this._locks.has(e)?!1:(this._locks.set(e,[]),!0)}isLocked(e){return this._locks.has(e)}};a(wt,"Mutex");var Ft=class{constructor(e){this._ready=Promise.resolve(this);this._fs=e,this._mu=new wt}whenReady(){return this._ready}get metadata(){return H(Y({},this._fs.metadata),{name:"LockedFS<"+this._fs.metadata.name+">"})}get fs(){return this._fs}rename(e,t,i){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.rename(e,t,i),this._mu.unlock(e)})}renameSync(e,t,i){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.renameSync(e,t,i)}stat(e,t){return u(this,null,function*(){yield this._mu.lock(e);let i=yield this._fs.stat(e,t);return this._mu.unlock(e),i})}statSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.statSync(e,t)}access(e,t,i){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.access(e,t,i),this._mu.unlock(e)})}accessSync(e,t,i){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.accessSync(e,t,i)}open(e,t,i,r){return u(this,null,function*(){yield this._mu.lock(e);let s=yield this._fs.open(e,t,i,r);return this._mu.unlock(e),s})}openSync(e,t,i,r){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.openSync(e,t,i,r)}unlink(e,t){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.unlink(e,t),this._mu.unlock(e)})}unlinkSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.unlinkSync(e,t)}rmdir(e,t){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.rmdir(e,t),this._mu.unlock(e)})}rmdirSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.rmdirSync(e,t)}mkdir(e,t,i){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.mkdir(e,t,i),this._mu.unlock(e)})}mkdirSync(e,t,i){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.mkdirSync(e,t,i)}readdir(e,t){return u(this,null,function*(){yield this._mu.lock(e);let i=yield this._fs.readdir(e,t);return this._mu.unlock(e),i})}readdirSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.readdirSync(e,t)}exists(e,t){return u(this,null,function*(){yield this._mu.lock(e);let i=yield this._fs.exists(e,t);return this._mu.unlock(e),i})}existsSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.existsSync(e,t)}realpath(e,t){return u(this,null,function*(){yield this._mu.lock(e);let i=yield this._fs.realpath(e,t);return this._mu.unlock(e),i})}realpathSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.realpathSync(e,t)}truncate(e,t,i){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.truncate(e,t,i),this._mu.unlock(e)})}truncateSync(e,t,i){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.truncateSync(e,t,i)}readFile(e,t,i,r){return u(this,null,function*(){yield this._mu.lock(e);let s=yield this._fs.readFile(e,t,i,r);return this._mu.unlock(e),s})}readFileSync(e,t,i,r){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.readFileSync(e,t,i,r)}writeFile(e,t,i,r,s,o){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.writeFile(e,t,i,r,s,o),this._mu.unlock(e)})}writeFileSync(e,t,i,r,s,o){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.writeFileSync(e,t,i,r,s,o)}appendFile(e,t,i,r,s,o){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.appendFile(e,t,i,r,s,o),this._mu.unlock(e)})}appendFileSync(e,t,i,r,s,o){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.appendFileSync(e,t,i,r,s,o)}chmod(e,t,i){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.chmod(e,t,i),this._mu.unlock(e)})}chmodSync(e,t,i){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.chmodSync(e,t,i)}chown(e,t,i,r){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.chown(e,t,i,r),this._mu.unlock(e)})}chownSync(e,t,i,r){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.chownSync(e,t,i,r)}utimes(e,t,i,r){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.utimes(e,t,i,r),this._mu.unlock(e)})}utimesSync(e,t,i,r){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.utimesSync(e,t,i,r)}link(e,t,i){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.link(e,t,i),this._mu.unlock(e)})}linkSync(e,t,i){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.linkSync(e,t,i)}symlink(e,t,i,r){return u(this,null,function*(){yield this._mu.lock(e),yield this._fs.symlink(e,t,i,r),this._mu.unlock(e)})}symlinkSync(e,t,i,r){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.symlinkSync(e,t,i,r)}readlink(e,t){return u(this,null,function*(){yield this._mu.lock(e);let i=yield this._fs.readlink(e,t);return this._mu.unlock(e),i})}readlinkSync(e,t){if(this._mu.isLocked(e))throw new Error("invalid sync call");return this._fs.readlinkSync(e,t)}};a(Ft,"LockedFS");var et="/.deletedFiles.log";function oi(n){return 146|n}a(oi,"makeModeWritable");function z(n){return S.getFileFlag(n)}a(z,"getFlag");var Tt=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}sync(){return u(this,null,function*(){this.isDirty()&&(yield this._fs._syncAsync(this),this.resetDirty())})}syncSync(){this.isDirty()&&(this._fs._syncSync(this),this.resetDirty())}close(){return u(this,null,function*(){yield this.sync()})}closeSync(){this.syncSync()}};a(Tt,"OverlayFile");var Nt=class extends K{constructor({writable:t,readable:i}){super();this._isInitialized=!1;this._deletedFiles={};this._deleteLog="";this._deleteLogUpdatePending=!1;this._deleteLogUpdateNeeded=!1;this._deleteLogError=null;if(this._writable=t,this._readable=i,this._writable.metadata.readonly)throw new c(22,"Writable file system must be writable.")}static isAvailable(){return!0}get metadata(){return H(Y({},super.metadata),{name:Z.Name,synchronous:this._readable.metadata.synchronous&&this._writable.metadata.synchronous,supportsProperties:this._readable.metadata.supportsProperties&&this._writable.metadata.supportsProperties})}getOverlayedFileSystems(){return{readable:this._readable,writable:this._writable}}_syncAsync(t){return u(this,null,function*(){let i=t.getStats();return yield this.createParentDirectoriesAsync(t.getPath(),i.getCred(0,0)),this._writable.writeFile(t.getPath(),t.getBuffer(),null,z("w"),i.mode,i.getCred(0,0))})}_syncSync(t){let i=t.getStats();this.createParentDirectories(t.getPath(),i.getCred(0,0)),this._writable.writeFileSync(t.getPath(),t.getBuffer(),null,z("w"),i.mode,i.getCred(0,0))}_initialize(){return u(this,null,function*(){if(!this._isInitialized){try{let t=yield this._writable.readFile(et,"utf8",z("r"),E.Root);this._deleteLog=t}catch(t){if(t.errno!==2)throw t}this._isInitialized=!0,this._reparseDeletionLog()}})}getDeletionLog(){return this._deleteLog}restoreDeletionLog(t,i){this._deleteLog=t,this._reparseDeletionLog(),this.updateLog("",i)}rename(t,i,r){return u(this,null,function*(){if(this.checkInitialized(),this.checkPath(t),this.checkPath(i),t===et||i===et)throw c.EPERM("Cannot rename deletion log.");let s=yield this.stat(t,r);if(s.isDirectory()){if(t===i)return;let o=511;if(yield this.exists(i,r)){let l=yield this.stat(i,r);if(o=l.mode,l.isDirectory()){if((yield this.readdir(i,r)).length>0)throw c.ENOTEMPTY(i)}else throw c.ENOTDIR(i)}if((yield this._writable.exists(t,r))?yield this._writable.rename(t,i,r):(yield this._writable.exists(i,r))||(yield this._writable.mkdir(i,o,r)),yield this._readable.exists(t,r))for(let l of yield this._readable.readdir(t,r))yield this.rename(I(t,l),I(i,l),r)}else{if((yield this.exists(i,r))&&(yield this.stat(i,r)).isDirectory())throw c.EISDIR(i);yield this.writeFile(i,yield this.readFile(t,null,z("r"),r),null,z("w"),s.mode,r)}t!==i&&(yield this.exists(t,r))&&(yield this.unlink(t,r))})}renameSync(t,i,r){if(this.checkInitialized(),this.checkPath(t),this.checkPath(i),t===et||i===et)throw c.EPERM("Cannot rename deletion log.");let s=this.statSync(t,r);if(s.isDirectory()){if(t===i)return;let o=511;if(this.existsSync(i,r)){let l=this.statSync(i,r);if(o=l.mode,l.isDirectory()){if(this.readdirSync(i,r).length>0)throw c.ENOTEMPTY(i)}else throw c.ENOTDIR(i)}this._writable.existsSync(t,r)?this._writable.renameSync(t,i,r):this._writable.existsSync(i,r)||this._writable.mkdirSync(i,o,r),this._readable.existsSync(t,r)&&this._readable.readdirSync(t,r).forEach(l=>{this.renameSync(I(t,l),I(i,l),r)})}else{if(this.existsSync(i,r)&&this.statSync(i,r).isDirectory())throw c.EISDIR(i);this.writeFileSync(i,this.readFileSync(t,null,z("r"),r),null,z("w"),s.mode,r)}t!==i&&this.existsSync(t,r)&&this.unlinkSync(t,r)}stat(t,i){return u(this,null,function*(){this.checkInitialized();try{return this._writable.stat(t,i)}catch(r){if(this._deletedFiles[t])throw c.ENOENT(t);let s=k.clone(yield this._readable.stat(t,i));return s.mode=oi(s.mode),s}})}statSync(t,i){this.checkInitialized();try{return this._writable.statSync(t,i)}catch(r){if(this._deletedFiles[t])throw c.ENOENT(t);let s=k.clone(this._readable.statSync(t,i));return s.mode=oi(s.mode),s}}open(t,i,r,s){return u(this,null,function*(){if(this.checkInitialized(),this.checkPath(t),t===et)throw c.EPERM("Cannot open deletion log.");if(yield this.exists(t,s))switch(i.pathExistsAction()){case 2:return yield this.createParentDirectoriesAsync(t,s),this._writable.open(t,i,r,s);case 0:if(yield this._writable.exists(t,s))return this._writable.open(t,i,r,s);{let o=yield this._readable.readFile(t,null,z("r"),s),l=k.clone(yield this._readable.stat(t,s));return l.mode=r,new Tt(this,t,i,l,o)}default:throw c.EEXIST(t)}else switch(i.pathNotExistsAction()){case 3:return yield this.createParentDirectoriesAsync(t,s),this._writable.open(t,i,r,s);default:throw c.ENOENT(t)}})}openSync(t,i,r,s){if(this.checkInitialized(),this.checkPath(t),t===et)throw c.EPERM("Cannot open deletion log.");if(this.existsSync(t,s))switch(i.pathExistsAction()){case 2:return this.createParentDirectories(t,s),this._writable.openSync(t,i,r,s);case 0:if(this._writable.existsSync(t,s))return this._writable.openSync(t,i,r,s);{let o=this._readable.readFileSync(t,null,z("r"),s),l=k.clone(this._readable.statSync(t,s));return l.mode=r,new Tt(this,t,i,l,o)}default:throw c.EEXIST(t)}else switch(i.pathNotExistsAction()){case 3:return this.createParentDirectories(t,s),this._writable.openSync(t,i,r,s);default:throw c.ENOENT(t)}}unlink(t,i){return u(this,null,function*(){if(this.checkInitialized(),this.checkPath(t),yield this.exists(t,i))(yield this._writable.exists(t,i))&&(yield this._writable.unlink(t,i)),(yield this.exists(t,i))&&this.deletePath(t,i);else throw c.ENOENT(t)})}unlinkSync(t,i){if(this.checkInitialized(),this.checkPath(t),this.existsSync(t,i))this._writable.existsSync(t,i)&&this._writable.unlinkSync(t,i),this.existsSync(t,i)&&this.deletePath(t,i);else throw c.ENOENT(t)}rmdir(t,i){return u(this,null,function*(){if(this.checkInitialized(),yield this.exists(t,i)){if((yield this._writable.exists(t,i))&&(yield this._writable.rmdir(t,i)),yield this.exists(t,i)){if((yield this.readdir(t,i)).length>0)throw c.ENOTEMPTY(t);this.deletePath(t,i)}}else throw c.ENOENT(t)})}rmdirSync(t,i){if(this.checkInitialized(),this.existsSync(t,i)){if(this._writable.existsSync(t,i)&&this._writable.rmdirSync(t,i),this.existsSync(t,i)){if(this.readdirSync(t,i).length>0)throw c.ENOTEMPTY(t);this.deletePath(t,i)}}else throw c.ENOENT(t)}mkdir(t,i,r){return u(this,null,function*(){if(this.checkInitialized(),yield this.exists(t,r))throw c.EEXIST(t);yield this.createParentDirectoriesAsync(t,r),yield this._writable.mkdir(t,i,r)})}mkdirSync(t,i,r){if(this.checkInitialized(),this.existsSync(t,r))throw c.EEXIST(t);this.createParentDirectories(t,r),this._writable.mkdirSync(t,i,r)}readdir(t,i){return u(this,null,function*(){if(this.checkInitialized(),!(yield this.stat(t,i)).isDirectory())throw c.ENOTDIR(t);let s=[];try{s=s.concat(yield this._writable.readdir(t,i))}catch(l){}try{s=s.concat((yield this._readable.readdir(t,i)).filter(l=>!this._deletedFiles[`${t}/${l}`]))}catch(l){}let o={};return s.filter(l=>{let d=!o[l];return o[l]=!0,d})})}readdirSync(t,i){if(this.checkInitialized(),!this.statSync(t,i).isDirectory())throw c.ENOTDIR(t);let s=[];try{s=s.concat(this._writable.readdirSync(t,i))}catch(l){}try{s=s.concat(this._readable.readdirSync(t,i).filter(l=>!this._deletedFiles[`${t}/${l}`]))}catch(l){}let o={};return s.filter(l=>{let d=!o[l];return o[l]=!0,d})}exists(t,i){return u(this,null,function*(){return this.checkInitialized(),(yield this._writable.exists(t,i))||(yield this._readable.exists(t,i))&&this._deletedFiles[t]!==!0})}existsSync(t,i){return this.checkInitialized(),this._writable.existsSync(t,i)||this._readable.existsSync(t,i)&&this._deletedFiles[t]!==!0}chmod(t,i,r){return u(this,null,function*(){this.checkInitialized(),yield this.operateOnWritableAsync(t,r),yield this._writable.chmod(t,i,r)})}chmodSync(t,i,r){this.checkInitialized(),this.operateOnWritable(t,r),this._writable.chmodSync(t,i,r)}chown(t,i,r,s){return u(this,null,function*(){this.checkInitialized(),yield this.operateOnWritableAsync(t,s),yield this._writable.chown(t,i,r,s)})}chownSync(t,i,r,s){this.checkInitialized(),this.operateOnWritable(t,s),this._writable.chownSync(t,i,r,s)}utimes(t,i,r,s){return u(this,null,function*(){this.checkInitialized(),yield this.operateOnWritableAsync(t,s),yield this._writable.utimes(t,i,r,s)})}utimesSync(t,i,r,s){this.checkInitialized(),this.operateOnWritable(t,s),this._writable.utimesSync(t,i,r,s)}deletePath(t,i){this._deletedFiles[t]=!0,this.updateLog(`d${t}
|
|
5
5
|
`,i)}updateLog(t,i){this._deleteLog+=t,this._deleteLogUpdatePending?this._deleteLogUpdateNeeded=!0:(this._deleteLogUpdatePending=!0,this._writable.writeFile(et,this._deleteLog,"utf8",S.getFileFlag("w"),420,i).then(()=>{this._deleteLogUpdateNeeded&&(this._deleteLogUpdateNeeded=!1,this.updateLog("",i))}).catch(r=>{this._deleteLogError=r}).finally(()=>{this._deleteLogUpdatePending=!1}))}_reparseDeletionLog(){this._deletedFiles={},this._deleteLog.split(`
|
|
6
6
|
`).forEach(t=>{this._deletedFiles[t.slice(1)]=t.slice(0,1)==="d"})}checkInitialized(){if(this._isInitialized){if(this._deleteLogError!==null){let t=this._deleteLogError;throw this._deleteLogError=null,t}}else throw new c(1,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.")}checkPath(t){if(t===et)throw c.EPERM(t)}createParentDirectories(t,i){let r=F(t),s=[];for(;!this._writable.existsSync(r,i);)s.push(r),r=F(r);s=s.reverse();for(let o of s)this._writable.mkdirSync(o,this.statSync(o,i).mode,i)}createParentDirectoriesAsync(t,i){return u(this,null,function*(){let r=F(t),s=[];for(;!(yield this._writable.exists(r,i));)s.push(r),r=F(r);s=s.reverse();for(let o of s){let l=yield this.stat(o,i);yield this._writable.mkdir(o,l.mode,i)}})}operateOnWritable(t,i){if(!this.existsSync(t,i))throw c.ENOENT(t);this._writable.existsSync(t,i)||this.copyToWritable(t,i)}operateOnWritableAsync(t,i){return u(this,null,function*(){if(!(yield this.exists(t,i)))throw c.ENOENT(t);if(!(yield this._writable.exists(t,i)))return this.copyToWritableAsync(t,i)})}copyToWritable(t,i){let r=this.statSync(t,i);r.isDirectory()?this._writable.mkdirSync(t,r.mode,i):this.writeFileSync(t,this._readable.readFileSync(t,null,z("r"),i),null,z("w"),r.mode,i)}copyToWritableAsync(t,i){return u(this,null,function*(){let r=yield this.stat(t,i);r.isDirectory()?yield this._writable.mkdir(t,r.mode,i):yield this.writeFile(t,yield this._readable.readFile(t,null,z("r"),i),null,z("w"),r.mode,i)})}};a(Nt,"UnlockedOverlayFS");var Gt=class extends Ft{static isAvailable(){return Nt.isAvailable()}constructor(e){super(new Nt(e)),this._ready=this._initialize()}getOverlayedFileSystems(){return super.fs.getOverlayedFileSystems()}getDeletionLog(){return super.fs.getDeletionLog()}resDeletionLog(){return super.fs.getDeletionLog()}unwrap(){return super.fs}_initialize(){return u(this,null,function*(){return yield $e(Gt.prototype,this,"fs")._initialize(),this})}},Z=Gt;a(Z,"OverlayFS"),Z.Name="OverlayFS",Z.Create=at.bind(Gt),Z.Options={writable:{type:"object",description:"The file system to write modified files to."},readable:{type:"object",description:"The file system that initially populates this file system."}};var Zt={};function ai(...n){for(let e of n)Zt[e.Name]=e}a(ai,"registerBackend");ai(tt,J,j,Z);var Pt=class{constructor(e,t){this.key=e;this.value=t;this.prev=null;this.next=null}};a(Pt,"LRUNode");var Qt=class{constructor(e){this.limit=e;this.size=0;this.map={};this.head=null;this.tail=null}set(e,t){let i=new Pt(e,t);this.map[e]?(this.map[e].value=i.value,this.remove(i.key)):this.size>=this.limit&&(delete this.map[this.tail.key],this.size--,this.tail=this.tail.prev,this.tail.next=null),this.setHead(i)}get(e){if(this.map[e]){let t=this.map[e].value,i=new Pt(e,t);return this.remove(e),this.setHead(i),t}else return null}remove(e){let t=this.map[e];t&&(t.prev!==null?t.prev.next=t.next:this.head=t.next,t.next!==null?t.next.prev=t.prev:this.tail=t.prev,delete this.map[e],this.size--)}removeAll(){this.size=0,this.map={},this.head=null,this.tail=null}setHead(e){e.next=this.head,e.prev=null,this.head!==null&&(this.head.prev=e),this.head=e,this.tail===null&&(this.tail=e),this.size++,this.map[e.key]=e}};a(Qt,"LRUCache");var xt=class extends L{constructor(e,t,i,r,s){super(e,t,i,r,s)}sync(){return u(this,null,function*(){this.isDirty()&&(yield this._fs._sync(this.getPath(),this.getBuffer(),this.getStats()),this.resetDirty())})}close(){return u(this,null,function*(){this.sync()})}};a(xt,"AsyncKeyValueFile");var te=class extends K{constructor(t){super();this._cache=null;t>0&&(this._cache=new Qt(t))}static isAvailable(){return!0}init(t){return u(this,null,function*(){this.store=t,yield this.makeRootDirectory()})}getName(){return this.store.name()}isReadOnly(){return!1}supportsSymlinks(){return!1}supportsProps(){return!0}supportsSynch(){return!1}empty(){return u(this,null,function*(){this._cache&&this._cache.removeAll(),yield this.store.clear(),yield this.makeRootDirectory()})}access(t,i,r){return u(this,null,function*(){let s=this.store.beginTransaction("readonly"),o=yield this.findINode(s,t);if(!o)throw c.ENOENT(t);if(!o.toStats().hasAccess(i,r))throw c.EACCES(t)})}rename(t,i,r){return u(this,null,function*(){let s=this._cache;this._cache&&(this._cache=null,s.removeAll());try{let o=this.store.beginTransaction("readwrite"),l=F(t),d=A(t),m=F(i),f=A(i),h=yield this.findINode(o,l),y=yield this.getDirListing(o,l,h);if(!h.toStats().hasAccess(2,r))throw c.EACCES(t);if(!y[d])throw c.ENOENT(t);let v=y[d];if(delete y[d],(m+"/").indexOf(t+"/")===0)throw new c(16,l);let x,g;if(m===l?(x=h,g=y):(x=yield this.findINode(o,m),g=yield this.getDirListing(o,m,x)),g[f]){let q=yield this.getINode(o,i,g[f]);if(q.isFile())try{yield o.del(q.id),yield o.del(g[f])}catch(ht){throw yield o.abort(),ht}else throw c.EPERM(i)}g[f]=v;try{yield o.put(h.id,w(JSON.stringify(y)),!0),yield o.put(x.id,w(JSON.stringify(g)),!0)}catch(q){throw yield o.abort(),q}yield o.commit()}finally{s&&(this._cache=s)}})}stat(t,i){return u(this,null,function*(){let r=this.store.beginTransaction("readonly"),o=(yield this.findINode(r,t)).toStats();if(!o.hasAccess(4,i))throw c.EACCES(t);return o})}createFile(t,i,r,s){return u(this,null,function*(){let o=this.store.beginTransaction("readwrite"),l=new Uint8Array(0),d=yield this.commitNewFile(o,t,C.FILE,r,s,l);return new xt(this,t,i,d.toStats(),l)})}openFile(t,i,r){return u(this,null,function*(){let s=this.store.beginTransaction("readonly"),o=yield this.findINode(s,t),l=yield s.get(o.id);if(!o.toStats().hasAccess(i.getMode(),r))throw c.EACCES(t);if(l===void 0)throw c.ENOENT(t);return new xt(this,t,i,o.toStats(),l)})}unlink(t,i){return u(this,null,function*(){return this.removeEntry(t,!1,i)})}rmdir(t,i){return u(this,null,function*(){if((yield this.readdir(t,i)).length>0)throw c.ENOTEMPTY(t);yield this.removeEntry(t,!0,i)})}mkdir(t,i,r){return u(this,null,function*(){let s=this.store.beginTransaction("readwrite"),o=w("{}");yield this.commitNewFile(s,t,C.DIRECTORY,i,r,o)})}readdir(t,i){return u(this,null,function*(){let r=this.store.beginTransaction("readonly"),s=yield this.findINode(r,t);if(!s.toStats().hasAccess(4,i))throw c.EACCES(t);return Object.keys(yield this.getDirListing(r,t,s))})}chmod(t,i,r){return u(this,null,function*(){yield(yield this.openFile(t,S.getFileFlag("r+"),r)).chmod(i)})}chown(t,i,r,s){return u(this,null,function*(){yield(yield this.openFile(t,S.getFileFlag("r+"),s)).chown(i,r)})}_sync(t,i,r){return u(this,null,function*(){let s=this.store.beginTransaction("readwrite"),o=yield this._findINode(s,F(t),A(t)),l=yield this.getINode(s,t,o),d=l.update(r);try{yield s.put(l.id,i,!0),d&&(yield s.put(o,l.serialize(),!0))}catch(m){throw yield s.abort(),m}yield s.commit()})}makeRootDirectory(){return u(this,null,function*(){let t=this.store.beginTransaction("readwrite");if((yield t.get(V))===void 0){let i=new Date().getTime(),r=new B(dt(),4096,511|C.DIRECTORY,i,i,i,0,0);yield t.put(r.id,w("{}"),!1),yield t.put(V,r.serialize(),!1),yield t.commit()}})}_findINode(o,l,d){return u(this,arguments,function*(t,i,r,s=new Set){let m=R(i,r);if(s.has(m))throw new c(5,"Infinite loop detected while finding inode",m);if(s.add(m),this._cache){let f=this._cache.get(m);if(f)return f}if(i==="/"){if(r==="")return this._cache&&this._cache.set(m,V),V;{let f=yield this.getINode(t,i,V),h=yield this.getDirListing(t,i,f);if(h[r]){let y=h[r];return this._cache&&this._cache.set(m,y),y}else throw c.ENOENT(I(i,r))}}else{let f=yield this.findINode(t,i,s),h=yield this.getDirListing(t,i,f);if(h[r]){let y=h[r];return this._cache&&this._cache.set(m,y),y}else throw c.ENOENT(I(i,r))}})}findINode(s,o){return u(this,arguments,function*(t,i,r=new Set){let l=yield this._findINode(t,F(i),A(i),r);return this.getINode(t,i,l)})}getINode(t,i,r){return u(this,null,function*(){let s=yield t.get(r);if(!s)throw c.ENOENT(i);return B.Deserialize(s)})}getDirListing(t,i,r){return u(this,null,function*(){if(!r.isDirectory())throw c.ENOTDIR(i);let s=yield t.get(r.id);try{return JSON.parse(s.toString())}catch(o){throw c.ENOENT(i)}})}addNewNode(t,i){return u(this,null,function*(){let r=0,s=a(()=>u(this,null,function*(){if(++r===5)throw new c(5,"Unable to commit data to key-value store.");{let o=dt();return(yield t.put(o,i,!1))?o:s()}}),"reroll");return s()})}commitNewFile(t,i,r,s,o,l){return u(this,null,function*(){let d=F(i),m=A(i),f=yield this.findINode(t,d),h=yield this.getDirListing(t,d,f),y=new Date().getTime();if(!f.toStats().hasAccess(2,o))throw c.EACCES(i);if(i==="/")throw c.EEXIST(i);if(h[m])throw yield t.abort(),c.EEXIST(i);try{let v=yield this.addNewNode(t,l),x=new B(v,l.length,s|r,y,y,y,o.uid,o.gid),g=yield this.addNewNode(t,x.serialize());return h[m]=g,yield t.put(f.id,w(JSON.stringify(h)),!0),yield t.commit(),x}catch(v){throw t.abort(),v}})}removeEntry(t,i,r){return u(this,null,function*(){this._cache&&this._cache.remove(t);let s=this.store.beginTransaction("readwrite"),o=F(t),l=yield this.findINode(s,o),d=yield this.getDirListing(s,o,l),m=A(t);if(!d[m])throw c.ENOENT(t);let f=d[m],h=yield this.getINode(s,t,f);if(!h.toStats().hasAccess(2,r))throw c.EACCES(t);if(delete d[m],!i&&h.isDirectory())throw c.EISDIR(t);if(i&&!h.isDirectory())throw c.ENOTDIR(t);try{yield s.del(h.id),yield s.del(f),yield s.put(l.id,w(JSON.stringify(d)),!0)}catch(y){throw yield s.abort(),y}yield s.commit()})}};a(te,"AsyncKeyValueFileSystem");var vt=class{static fromListing(e){let t=new vt,i=new it;t._index["/"]=i;let r=[["",e,i]];for(;r.length>0;){let s,o=r.pop(),l=o[0],d=o[1],m=o[2];for(let f in d)if(Object.prototype.hasOwnProperty.call(d,f)){let h=d[f],y=`${l}/${f}`;h?(t._index[y]=s=new it,r.push([y,h,s])):s=new It(new k(C.FILE,-1,365)),m&&(m._ls[f]=s)}}return t}constructor(){this._index={},this.addPath("/",new it)}fileIterator(e){for(let t in this._index)if(Object.prototype.hasOwnProperty.call(this._index,t)){let i=this._index[t],r=i.getListing();for(let s of r){let o=i.getItem(s);ci(o)&&e(o.getData())}}}addPath(e,t){if(!t)throw new Error("Inode must be specified");if(e[0]!=="/")throw new Error("Path must be absolute, got: "+e);if(Object.prototype.hasOwnProperty.call(this._index,e))return this._index[e]===t;let i=this._split_path(e),r=i[0],s=i[1],o=this._index[r];return o===void 0&&e!=="/"&&(o=new it,!this.addPath(r,o))||e!=="/"&&!o.addItem(s,t)?!1:(Me(t)&&(this._index[e]=t),!0)}addPathFast(e,t){let i=e.lastIndexOf("/"),r=i===0?"/":e.substring(0,i),s=e.substring(i+1),o=this._index[r];return o===void 0&&(o=new it,this.addPathFast(r,o)),o.addItem(s,t)?(t.isDir()&&(this._index[e]=t),!0):!1}removePath(e){let t=this._split_path(e),i=t[0],r=t[1],s=this._index[i];if(s===void 0)return null;let o=s.remItem(r);if(o===null)return null;if(Me(o)){let l=o.getListing();for(let d of l)this.removePath(e+"/"+d);e!=="/"&&delete this._index[e]}return o}ls(e){let t=this._index[e];return t===void 0?null:t.getListing()}getInode(e){let t=this._split_path(e),i=t[0],r=t[1],s=this._index[i];return s===void 0?null:i===e?s:s.getItem(r)}_split_path(e){let t=F(e),i=e.slice(t.length+(t==="/"?0:1));return[t,i]}};a(vt,"FileIndex");var It=class{constructor(e){this.data=e}isFile(){return!0}isDir(){return!1}getData(){return this.data}setData(e){this.data=e}toStats(){return new k(C.FILE,4096,438)}};a(It,"IndexFileInode");var it=class{constructor(e=null){this.data=e;this._ls={}}isFile(){return!1}isDir(){return!0}getData(){return this.data}getStats(){return new k(C.DIRECTORY,4096,365)}toStats(){return this.getStats()}getListing(){return Object.keys(this._ls)}getItem(e){let t=this._ls[e];return t||null}addItem(e,t){return e in this._ls?!1:(this._ls[e]=t,!0)}remItem(e){let t=this._ls[e];return t===void 0?null:(delete this._ls[e],t)}};a(it,"IndexDirInode");function ci(n){return!!n&&n.isFile()}a(ci,"isIndexFileInode");function Me(n){return!!n&&n.isDir()}a(Me,"isIndexDirInode");function ui(n,e=0,t=0){return Ge(new E(e,t,e,t,e,t)),qt.initialize(n)}a(ui,"initialize");function li(n){return u(this,null,function*(){("fs"in n||n instanceof st)&&(n={"/":n});for(let[e,t]of Object.entries(n))typeof t!="number"&&(e=e.toString(),!(t instanceof st)&&(typeof t=="string"&&(t={fs:t}),n[e]=yield di(t)));return ui(n)})}a(li,"_configure");function Ar(n,e){if(typeof e!="function")return li(n);li(n).then(()=>e()).catch(t=>e(t))}a(Ar,"configure");function ze(t){return u(this,arguments,function*({fs:n,options:e={}}){if(!n)throw new c(1,'Missing "fs" property on configuration object.');if(typeof e!="object"||e===null)throw new c(22,'Invalid "options" property on configuration object.');let i=Object.keys(e).filter(s=>s!="fs");for(let s of i){let o=e[s];if(o===null||typeof o!="object"||!("fs"in o))continue;let l=yield ze(o);e[s]=l}let r=Zt[n];if(r)return r.Create(e);throw new c(1,`File system ${n} is not available in ZenFS.`)})}a(ze,"_getFileSystem");function di(n,e){if(typeof e!="function")return ze(n);ze(n).then(t=>e(null,t)).catch(t=>e(t))}a(di,"getFileSystem");var Dr=qt;return wi(Rr);})();
|