"use strict";Object.defineProperty(exports,"__esModule",{value:!0});varr=Symbol?Symbol("__ES6-PROMISIFY--CUSTOM-ARGUMENTS__"):"__ES6-PROMISIFY--CUSTOM-ARGUMENTS__";functiono(e){if("function"!=typeofe)thrownewTypeError("Argument to promisify must be a function");varn=e[r],t=o.Promise||Promise;if("function"!=typeoft)thrownewError("No Promise implementation found; do you need a polyfill?");returnfunction(){for(varr=this,o=arguments.length,i=Array(o),f=0;f<o;f++)i[f]=arguments[f];returnnewt(function(o,t){i.push(function(r){if(r)returnt(r);for(vare=arguments.length,i=Array(e>1?e-1:0),f=1;f<e;f++)i[f-1]=arguments[f];if(1===i.length||!n)returno(i[0]);varu={};i.forEach(function(r,o){vare=n[o];e&&(u[e]=r)}),o(u)}),e.call.apply(e,[r].concat(i))})}}o.argumentNames=r,o.Promise=void0,exports.promisify=o;
vart,e,n=module.exports={};functionr(){thrownewError("setTimeout has not been defined")}functiono(){thrownewError("clearTimeout has not been defined")}functioni(e){if(t===setTimeout)returnsetTimeout(e,0);if((t===r||!t)&&setTimeout)returnt=setTimeout,setTimeout(e,0);try{returnt(e,0)}catch(n){try{returnt.call(null,e,0)}catch(n){returnt.call(this,e,0)}}}functionu(t){if(e===clearTimeout)returnclearTimeout(t);if((e===o||!e)&&clearTimeout)returne=clearTimeout,clearTimeout(t);try{returne(t)}catch(n){try{returne.call(null,t)}catch(n){returne.call(this,t)}}}!function(){try{t="function"==typeofsetTimeout?setTimeout:r}catch(n){t=r}try{e="function"==typeofclearTimeout?clearTimeout:o}catch(n){e=o}}();varc,s=[],l=!1,a=-1;functionf(){l&&c&&(l=!1,c.length?s=c.concat(s):a=-1,s.length&&h())}functionh(){if(!l){vart=i(f);l=!0;for(vare=s.length;e;){for(c=s,s=[];++a<e;)c&&c[a].run();a=-1,e=s.length}c=null,l=!1,u(t)}}functionm(t,e){this.fun=t,this.array=e}functionp(){}n.nextTick=function(t){vare=newArray(arguments.length-1);if(arguments.length>1)for(varn=1;n<arguments.length;n++)e[n-1]=arguments[n];s.push(newm(t,e)),1!==s.length||l||i(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(t){return[]},n.binding=function(t){thrownewError("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(t){thrownewError("process.chdir is not supported")},n.umask=function(){return0};
},{}],"UUq2":[function(require,module,exports){
varprocess=require("process");
varr=require("process");functiont(r,t){for(vare=0,n=r.length-1;n>=0;n--){vars=r[n];"."===s?r.splice(n,1):".."===s?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e--;e)r.unshift("..");returnr}vare=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,n=function(r){returne.exec(r).slice(1)};functions(r,t){if(r.filter)returnr.filter(t);for(vare=[],n=0;n<r.length;n++)t(r[n],n,r)&&e.push(r[n]);returne}exports.resolve=function(){for(vare="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){vari=o>=0?arguments[o]:r.cwd();if("string"!=typeofi)thrownewTypeError("Arguments to path.resolve must be strings");i&&(e=i+"/"+e,n="/"===i.charAt(0))}return(n?"/":"")+(e=t(s(e.split("/"),function(r){return!!r}),!n).join("/"))||"."},exports.normalize=function(r){vare=exports.isAbsolute(r),n="/"===o(r,-1);return(r=t(s(r.split("/"),function(r){return!!r}),!e).join("/"))||e||(r="."),r&&n&&(r+="/"),(e?"/":"")+r},exports.isAbsolute=function(r){return"/"===r.charAt(0)},exports.join=function(){varr=Array.prototype.slice.call(arguments,0);returnexports.normalize(s(r,function(r,t){if("string"!=typeofr)thrownewTypeError("Arguments to path.join must be strings");returnr}).join("/"))},exports.relative=function(r,t){functione(r){for(vart=0;t<r.length&&""===r[t];t++);for(vare=r.length-1;e>=0&&""===r[e];e--);returnt>e?[]:r.slice(t,e-t+1)}r=exports.resolve(r).substr(1),t=exports.resolve(t).substr(1);for(varn=e(r.split("/")),s=e(t.split("/")),o=Math.min(n.length,s.length),i=o,u=0;u<o;u++)if(n[u]!==s[u]){i=u;break}varl=[];for(u=i;u<n.length;u++)l.push("..");return(l=l.concat(s.slice(i))).join("/")},exports.sep="/",exports.delimiter=":",exports.dirname=function(r){vart=n(r),e=t[0],s=t[1];returne||s?(s&&(s=s.substr(0,s.length-1)),e+s):"."},exports.basename=function(r,t){vare=n(r)[2];returnt&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},exports.extname=function(r){returnn(r)[3]};varo="b"==="ab".substr(-1)?function(r,t,e){returnr.substr(t,e)}:function(r,t,e){returnt<0&&(t=r.length+t),r.substr(t,e)};
"use strict";exports.byteLength=u,exports.toByteArray=i,exports.fromByteArray=d;for(varr=[],t=[],e="undefined"!=typeofUint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,a=n.length;o<a;++o)r[o]=n[o],t[n.charCodeAt(o)]=o;functionh(r){vart=r.length;if(t%4>0)thrownewError("Invalid string. Length must be a multiple of 4");vare=r.indexOf("=");return-1===e&&(e=t),[e,e===t?0:4-e%4]}functionu(r){vart=h(r),e=t[0],n=t[1];return3*(e+n)/4-n}functionc(r,t,e){return3*(t+e)/4-e}functioni(r){for(varn,o=h(r),a=o[0],u=o[1],i=newe(c(r,a,u)),f=0,A=u>0?a-4:a,d=0;d<A;d+=4)n=t[r.charCodeAt(d)]<<18|t[r.charCodeAt(d+1)]<<12|t[r.charCodeAt(d+2)]<<6|t[r.charCodeAt(d+3)],i[f++]=n>>16&255,i[f++]=n>>8&255,i[f++]=255&n;return2===u&&(n=t[r.charCodeAt(d)]<<2|t[r.charCodeAt(d+1)]>>4,i[f++]=255&n),1===u&&(n=t[r.charCodeAt(d)]<<10|t[r.charCodeAt(d+1)]<<4|t[r.charCodeAt(d+2)]>>2,i[f++]=n>>8&255,i[f++]=255&n),i}functionf(t){returnr[t>>18&63]+r[t>>12&63]+r[t>>6&63]+r[63&t]}functionA(r,t,e){for(varn,o=[],a=t;a<e;a+=3)n=(r[a]<<16&16711680)+(r[a+1]<<8&65280)+(255&r[a+2]),o.push(f(n));returno.join("")}functiond(t){for(vare,n=t.length,o=n%3,a=[],h=0,u=n-o;h<u;h+=16383)a.push(A(t,h,h+16383>u?u:h+16383));return1===o?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===o&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")}t["-".charCodeAt(0)]=62,t["_".charCodeAt(0)]=63;
vart=arguments[3],r=require("base64-js"),e=require("ieee754"),n=require("isarray");functioni(){try{vart=newUint8Array(1);returnt.__proto__={__proto__:Uint8Array.prototype,foo:function(){return42}},42===t.foo()&&"function"==typeoft.subarray&&0===t.subarray(1,1).byteLength}catch(r){return!1}}functiono(){returnf.TYPED_ARRAY_SUPPORT?2147483647:1073741823}functionu(t,r){if(o()<r)thrownewRangeError("Invalid typed array length");returnf.TYPED_ARRAY_SUPPORT?(t=newUint8Array(r)).__proto__=f.prototype:(null===t&&(t=newf(r)),t.length=r),t}functionf(t,r,e){if(!(f.TYPED_ARRAY_SUPPORT||thisinstanceoff))returnnewf(t,r,e);if("number"==typeoft){if("string"==typeofr)thrownewError("If encoding is specified then the first argument must be a string");returnc(this,t)}returns(this,t,r,e)}functions(t,r,e,n){if("number"==typeofr)thrownewTypeError('"value" argument must not be a number');return"undefined"!=typeofArrayBuffer&&rinstanceofArrayBuffer?g(t,r,e,n):"string"==typeofr?l(t,r,e):y(t,r)}functionh(t){if("number"!=typeoft)thrownewTypeError('"size" argument must be a number');if(t<0)thrownewRangeError('"size" argument must not be negative')}functiona(t,r,e,n){returnh(r),r<=0?u(t,r):void0!==e?"string"==typeofn?u(t,r).fill(e,n):u(t,r).fill(e):u(t,r)}functionc(t,r){if(h(r),t=u(t,r<0?0:0|w(r)),!f.TYPED_ARRAY_SUPPORT)for(vare=0;e<r;++e)t[e]=0;returnt}functionl(t,r,e){if("string"==typeofe&&""!==e||(e="utf8"),!f.isEncoding(e))thrownewTypeError('"encoding" must be a valid string encoding');varn=0|v(r,e),i=(t=u(t,n)).write(r,e);returni!==n&&(t=t.slice(0,i)),t}functionp(t,r){vare=r.length<0?0:0|w(r.length);t=u(t,e);for(varn=0;n<e;n+=1)t[n]=255&r[n];returnt}functiong(t,r,e,n){if(r.byteLength,e<0||r.byteLength<e)thrownewRangeError("'offset' is out of bounds");if(r.byteLength<e+(n||0))thrownewRangeError("'length' is out of bounds");returnr=void0===e&&void0===n?newUint8Array(r):void0===n?newUint8Array(r,e):newUint8Array(r,e,n),f.TYPED_ARRAY_SUPPORT?(t=r).__proto__=f.prototype:t=p(t,r),t}functiony(t,r){if(f.isBuffer(r)){vare=0|w(r.length);return0===(t=u(t,e)).length?t:(r.copy(t,0,0,e),t)}if(r){if("undefined"!=typeofArrayBuffer&&r.bufferinstanceofArrayBuffer||"length"inr)return"number"!=typeofr.length||W(r.length)?u(t,0):p(t,r);if("Buffer"===r.type&&n(r.data))returnp(t,r.data)}thrownewTypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}functionw(t){if(t>=o())thrownewRangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return0|t}functiond(t){return+t!=t&&(t=0),f.alloc(+t)}functionv(t,r){if(f.isBuffer(t))returnt.length;if("undefined"!=typeofArrayBuffer&&"function"==typeofArrayBuffer.isView&&(ArrayBuffer.isView(t)||tinstanceofArrayBuffer))returnt.byteLength;"string"!=typeoft&&(t=""+t);vare=t.length;if(0===e)return0;for(varn=!1;;)switch(r){case"ascii":case"latin1":case"binary":returne;case"utf8":case"utf-8":casevoid0:return$(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return2*e;case"hex":returne>>>1;case"base64":returnK(t).length;default:if(n)return$(t).length;r=(""+r).toLowerCase(),n=!0}}functionE(t,r,e){varn=!1;if((void0===r||r<0)&&(r=0),r>this.length)return"";if((void0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":returnx(this,r,e);case"utf8":case"utf-8":returnY(this,r,e);case"ascii":returnL(this,r,e);case"latin1":case"binary":returnD(this,r,e);case"base64":returnS(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":returnC(this,r,e);default:if(n)thrownewTypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}functionb(t,r,e){varn=t[r];t[r]=t[e],t[e]=n}functionR(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeofe?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}elseif(e<0){if(!i)return-1;e=0}if("string"==typeofr&&(r=f.from(r,n)),f.
vart={};["3:EACCES:permission denied","9:EBADF:bad file descriptor","10:EBUSY:resource busy or locked","18:EINVAL:invalid argument","27:ENOTDIR:not a directory","28:EISDIR:illegal operation on a directory","34:ENOENT:no such file or directory","47:EEXIST:file already exists","50:EPERM:operation not permitted","51:ELOOP:too many symbolic links encountered","53:ENOTEMPTY:directory not empty","55:EIO:i/o error","1000:ENOTMOUNTED:not mounted","1001:EFILESYSTEMERROR:missing super node, use 'FORMAT' flag to format filesystem.","1002:ENOATTR:attribute does not exist"].forEach(function(e){varo=+(e=e.split(":"))[0],r=e[1],i=e[2];functions(t,e){Error.call(this),this.name=r,this.code=r,this.errno=o,this.message=t||i,e&&(this.path=e),this.stack=newError(this.message).stack}s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,s.prototype.toString=function(){vart=this.path?", '"+this.path+"'":"";returnthis.name+": "+this.message+t},t[r]=t[o]=s}),module.exports=t;
vart=require("buffer").Buffer,n=arguments[3],e=require("../constants.js").FILE_SYSTEM_NAME,i=require("../constants.js").FILE_STORE_NAME,o=require("../constants.js").WSQL_VERSION,r=require("../constants.js").WSQL_SIZE,u=require("../constants.js").WSQL_DESC,a=require("../errors.js"),c=require("base64-arraybuffer");functions(t,n){vare=this;this.getTransaction=function(i){e.transaction?i(e.transaction):t[n?"readTransaction":"transaction"](function(t){e.transaction=t,i(t)})}}functionf(t,n,e){functiono(t,n){vari=0===n.rows.length?null:n.rows.item(0).data;e(null,i)}functionr(t,n){e(n)}t(function(t){t.executeSql("SELECT data FROM "+i+" WHERE id = ? LIMIT 1;",[n],o,r)})}functionE(t,n,e,o){functionr(){o(null)}functionu(t,n){o(n)}t(function(t){t.executeSql("INSERT OR REPLACE INTO "+i+" (id, data) VALUES (?, ?);",[n,e],r,u)})}functiond(t){this.name=t||e,this.db=null}s.prototype.clear=function(t){functionn(n,e){t(e)}functione(){t(null)}this.getTransaction(function(t){t.executeSql("DELETE FROM "+i+";",[],e,n)})},s.prototype.getObject=function(t,n){f(this.getTransaction,t,function(t,e){if(t)returnn(t);try{e&&(e=JSON.parse(e))}catch(i){returnn(i)}n(null,e)})},s.prototype.getBuffer=function(n,e){f(this.getTransaction,n,function(n,i){if(n)returne(n);if(i||""===i){varo=c.decode(i);i=t.from(o)}e(null,i)})},s.prototype.putObject=function(t,n,e){vari=JSON.stringify(n);E(this.getTransaction,t,i,e)},s.prototype.putBuffer=function(t,n,e){vari=c.encode(n.buffer);E(this.getTransaction,t,i,e)},s.prototype.delete=function(t,n){functione(){n(null)}functiono(t,e){n(e)}this.getTransaction(function(n){n.executeSql("DELETE FROM "+i+" WHERE id = ?;",[t],e,o)})},d.isSupported=function(){return!!n.openDatabase},d.prototype.open=function(t){vare=this;if(e.db)returnt();varc=n.openDatabase(e.name,o,u,r);functions(n,e){5===e.code&&t(newa.EINVAL("WebSQL cannot be accessed. If private browsing is enabled, disable it.")),t(e)}functionf(){e.db=c,t()}c?c.transaction(function(t){t.executeSql("CREATE TABLE IF NOT EXISTS "+i+" (id unique, data TEXT);",[],function(t){t.executeSql("CREATE INDEX IF NOT EXISTS idx_"+i+"_id on "+i+" (id);",[],f,s)},s)}):t("[WebSQL] Unable to open database.")},d.prototype.getReadOnlyContext=function(){returnnews(this.db,!0)},d.prototype.getReadWriteContext=function(){returnnews(this.db,!1)},module.exports=d;
vart=require("../constants.js").FILE_SYSTEM_NAME,e=require("../../lib/async.js").setImmediate,o=function(){vart={};returnfunction(e){returnt.hasOwnProperty(e)||(t[e]={}),t[e]}}();functionn(t,e){this.readOnly=e,this.objectStore=t}functionr(e){this.name=e||t}n.prototype.clear=function(t){if(this.readOnly)e(function(){t("[MemoryContext] Error: write operation on read only context")});else{varo=this.objectStore;Object.keys(o).forEach(function(t){deleteo[t]}),e(t)}},n.prototype.getObject=n.prototype.getBuffer=function(t,o){varn=this;e(function(){o(null,n.objectStore[t])})},n.prototype.putObject=n.prototype.putBuffer=function(t,o,n){this.readOnly?e(function(){n("[MemoryContext] Error: write operation on read only context")}):(this.objectStore[t]=o,e(n))},n.prototype.delete=function(t,o){this.readOnly?e(function(){o("[MemoryContext] Error: write operation on read only context")}):(deletethis.objectStore[t],e(o))},r.isSupported=function(){return!0},r.prototype.open=function(t){this.db=o(this.name),e(t)},r.prototype.getReadOnlyContext=function(){returnnewn(this.db,!0)},r.prototype.getReadWriteContext=function(){returnnewn(this.db,!1)},module.exports=r;
varr=require("./indexeddb.js"),e=require("./websql.js"),o=require("./memory.js");module.exports={IndexedDB:r,WebSQL:e,Memory:o,Default:r,Fallback:function(){if(r.isSupported())returnr;if(e.isSupported())returne;functiono(){throw"[Filer Error] Your browser doesn't support IndexedDB or WebSQL."}returno.isSupported=function(){return!1},o}()};
vare=require("../lib/eventemitter.js"),t=require("./path.js"),n=require("../lib/intercom.js");functionr(){e.call(this);varr,i,o=this,s=!1;functionc(e){(i===e||s&&0===e.indexOf(r))&&o.trigger("change","change",e)}o.start=function(e,o,a){if(!i){if(t.isNull(e))thrownewError("Path must be a string without null bytes.");i=t.normalize(e),(s=!0===a)&&(r="/"===i?"/":i+"/"),n.getInstance().on("change",c)}},o.close=function(){n.getInstance().off("change",c),o.removeAllListeners("change")}}r.prototype=newe,r.prototype.constructor=r,module.exports=r;
functiont(t,i){if(!(tinstanceofi))thrownewTypeError("Cannot call a class as a function")}functioni(t,i){for(vars=0;s<i.length;s++){vare=i[s];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"ine&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}functions(t,s,e){returns&&i(t.prototype,s),e&&i(t,e),t}vare=require("./constants"),n=e.NODE_TYPE_FILE,r=e.NODE_TYPE_DIRECTORY,a=e.NODE_TYPE_SYMBOLIC_LINK,o=e.DEFAULT_FILE_PERMISSIONS,u=e.DEFAULT_DIR_PERMISSIONS,h=require("./constants").fsConstants,c=h.S_IFREG,f=h.S_IFDIR,m=h.S_IFLNK;functiond(t,i,s){if(t[i])returns();t.guid(function(e,n){if(e)returns(e);t[i]=n,s()})}functionl(t,i){switch(t){caser:return(i||u)|f;casea:return(i||o)|m;casen:default:return(i||o)|c}}varp=function(){functioni(s){t(this,i);vare=Date.now();this.id=s.id,this.data=s.data,this.size=s.size||0,this.atime=s.atime||e,this.ctime=s.ctime||e,this.mtime=s.mtime||e,this.flags=s.flags||[],this.xattrs=s.xattrs||{},this.nlinks=s.nlinks||0,"string"==typeofs.type?this.type=s.type:"string"==typeofs.mode?this.type=s.mode:this.type=n,this.permissions=s.permissions||l(this.type),this.uid=s.uid||0,this.gid=s.gid||0}returns(i,[{key:"toJSON",value:function(){return{id:this.id,data:this.data,size:this.size,atime:this.atime,ctime:this.ctime,mtime:this.ctime,flags:this.flags,xattrs:this.xattrs,nlinks:this.nlinks,mode:this.type,permissions:this.permissions,uid:this.uid,gid:this.gid}}},{key:"mode",get:function(){returnl(this.type,this.permissions)},set:function(t){this.permissions=t}}]),i}();module.exports.create=function(t,i){d(t,"id",function(s){if(s)returni(s);d(t,"data",function(s){if(s)returni(s);i(null,newp(t))})})};
varn=require("buffer").Buffer;functione(n){return(e="function"==typeofSymbol&&"symbol"==typeofSymbol.iterator?function(n){returntypeofn}:function(n){returnn&&"function"==typeofSymbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeofn})(n)}vart=require("../path.js"),i=t.normalize,o=t.dirname,u=t.basename,r=t.isAbsolute,a=t.isNull,f=require("../shared.js"),c=require("../constants.js"),s=c.NODE_TYPE_FILE,l=c.NODE_TYPE_DIRECTORY,d=c.NODE_TYPE_SYMBOLIC_LINK,p=c.NODE_TYPE_META,m=c.FULL_READ_WRITE_EXEC_PERMISSIONS,E=c.ROOT_DIRECTORY_NAME,w=c.SUPER_NODE_ID,g=c.SYMLOOP_MAX,O=c.O_READ,b=c.O_WRITE,v=c.O_CREATE,y=c.O_EXCLUSIVE,N=c.O_APPEND,I=c.O_FLAGS,h=c.XATTR_CREATE,A=c.XATTR_REPLACE,D=c.FS_NOMTIME,T=c.FS_NOCTIME,j=require("../encoding.js"),L=require("../errors.js"),R=require("../directory-entry.js"),_=require("../open-file-description.js"),F=require("../super-node.js"),V=require("../node.js"),P=require("../stats.js");functionS(n,e,t,i,o){varu=n.flags;u.includes(T)&&deletei.ctime,u.includes(D)&&deletei.mtime;varr=!1;functiona(t){n.changes.push({event:"change",path:e}),o(t)}i.ctime&&(t.ctime=i.ctime,t.atime=i.ctime,r=!0),i.atime&&(t.atime=i.atime,r=!0),i.mtime&&(t.mtime=i.mtime,r=!0),r?n.putObject(t.id,t,a):a()}functionB(n,e,t,r){if(t!==l&&t!==s)returnr(newL.EINVAL("type must be a directory or file",e));e=i(e);vara,f,c,d=u(e),p=o(e);functionm(t,i){!t&&i?r(newL.EEXIST("path name already exists",e)):!t||tinstanceofL.ENOENT?n.getObject(a.data,E):r(t)}functionE(e,i){e?r(e):(f=i,V.create({guid:n.guid,type:t},function(e,t){e?r(e):((c=t).nlinks+=1,n.putObject(c.id,c,g))}))}functionw(e){if(e)r(e);else{vart=Date.now();S(n,p,c,{mtime:t,ctime:t},r)}}functiong(e){e?r(e):(f[d]=newR(c.id,t),n.putObject(a.data,f,w))}x(n,p,function(t,i){t?r(t):i.type!==l?r(newL.ENOTDIR("a component of the path prefix is not a directory",e)):(a=i,x(n,e,m))})}functionx(n,e,t){if(!(e=i(e)))returnt(newL.ENOENT("path is an empty string"));varr=u(e),a=o(e),f=0;functionc(e,i){if(e)returnt(e);varo=newF(i);o&&o.type===p&&o.rnode?n.getObject(o.rnode,s):t(newL.EFILESYSTEMERROR)}functions(n,e){n?t(n):e?V.create(e,t):t(newL.ENOENT)}functionm(i,o){i?t(i):o.type===l&&o.data?n.getObject(o.data,O):t(newL.ENOTDIR("a component of the path prefix is not a directory",e))}functionO(i,o){if(i)t(i);elseif(o.hasOwnProperty(r)){varu=o[r].id;n.getObject(u,b)}elset(newL.ENOENT(null,e))}functionb(n,e){if(n)returnt(n);V.create(e,v)}functionv(s,l){varp;s?t(s):l.type===d?++f>g?t(newL.ELOOP(null,e)):(p=l.data,p=i(p),a=o(p),r=u(p),E===r?n.getObject(w,c):x(n,a,m)):t(null,l)}E===r?n.getObject(w,c):x(n,a,m)}functionC(n,e,t,i,o,u,r){vara=t.xattrs;u===h&&a.hasOwnProperty(i)?r(newL.EEXIST("attribute already exists",e)):u!==A||a.hasOwnProperty(i)?(a[i]=o,n.putObject(t.id,t,function(i){i?r(i):S(n,e,t,{ctime:Date.now()},r)})):r(newL.ENOATTR(null,e))}functionk(n,e){vart,i,o;functionu(o){o?e(o):V.create({guid:n.guid,id:t.rnode,type:l},function(t,o){t?e(t):((i=o).nlinks+=1,n.putObject(i.id,i,r))})}functionr(t){t?e(t):(o={},n.putObject(i.data,o,e))}n.getObject(w,function(i,o){!i&&o?e():!i||iinstanceofL.ENOENT?F.create({guid:n.guid},function(i,o){i?e(i):(t=o,n.putObject(t.id,t,u))}):e(i)})}functionX(n,e,t){e=i(e);varr,a,f,c,s=u(e),d=o(e);functionp(e,i){e?t(e):(f=i,n.getObject(f.data,m))}functionm(e,i){e?t(e):(c=i,V.create({guid:n.guid,type:l},function(e,i){e?t(e):((r=i).nlinks+=1,n.putObject(r.id,r,E))}))}functionE(e){e?t(e):(a={},n.putObject(r.data,a,g))}functionw(e){if(e)t(e);else{vari=Date.now();S(n,d,f,{mtime:i,ctime:i},t)}}functiong(e){e?t(e):(c[s]=newR(r.id,l),n.putObject(f.data,c,w))}x(n,e,function(i,o){!i&&o?t(newL.EEXIST(null,e)):!i||iinstanceofL.ENOENT?x(n,d,p):t(i)})}functionM(n,e,t,o){x(n,e=i(e),function(n,i){returnn?o(n):t===c.F_OK?o(null):!(t&c.X_OK)||i.mode&(c.fsConstants.S_IXUSR|c.fsConstants.S_IXGRP|c.fsConstants.S_IXOTH)?o(null):voido(newL.EACCES("permission denied",e))})}functionq(n,e,t){e=i(e);varr,a,f,c,s=u(e),d=o(e);functionp(i,o){i?t(i):E===s?t(newL.EBUSY(null,e)):o.hasOwnProperty(s)?(r=(c=o)[s
vare=require("es6-promisify"),n=e.promisify,r=require("../path.js").isNull,t=require("../shared.js").nop,i=require("../constants.js"),o=i.FILE_SYSTEM_NAME,s=i.FS_FORMAT,a=i.FS_READY,m=i.FS_PENDING,u=i.FS_ERROR,c=i.FS_NODUPEIDCHECK,p=require("../providers/index.js"),l=require("../shell/shell.js"),f=require("../../lib/intercom.js"),d=require("../fs-watcher.js"),h=require("../errors.js"),v=require("../shared.js").guid,y=i.STDIN,R=i.STDOUT,g=i.STDERR,E=i.FIRST_DESCRIPTOR,S=require("./implementation.js");functionw(e){return"function"==typeofe?e:function(e){if(e)throwe}}functionx(e){e&&console.error("Filer error: ",e)}functionF(e,q){q=q||x;varD=(e=e||{}).flags||[],O=e.guid?e.guid:v,j=e.provider||newp.Default(e.name||o),C=e.name||j.name,T=D.includes(s),b=this;b.readyState=m,b.name=C,b.error=null,b.stdin=y,b.stdout=R,b.stderr=g,b.constants=i.fsConstants,this.Shell=l.bind(void0,this);vark={},I=E;Object.defineProperty(this,"openFiles",{get:function(){returnk}}),this.allocDescriptor=function(e){varn=I++;returnk[n]=e,n},this.releaseDescriptor=function(e){deletek[e]};var_=[];functionN(e){returnfunction(n){D.includes(c)?n(null,O()):functionn(r){vart=O();e.getObject(t,function(e,i){e?r(e):i?n(r):r(null,t)})}(n)}}this.queueOrRun=function(e){varn;returna===b.readyState?e.call(b):u===b.readyState?n=newh.EFILESYSTEMERROR("unknown error"):_.push(e),n},this.watch=function(e,n,i){if(r(e))thrownewError("Path must be a string without null bytes.");"function"==typeofn&&(i=n,n={}),n=n||{},i=i||t;varo=newd;returno.start(e,!1,n.recursive),o.on("change",i),o},j.open(function(e){functionn(e){functionn(e){varn=j[e]();returnn.flags=D,n.changes=[],n.guid=N(n),n.close=function(){vare=n.changes;!function(e){if(e.length){varn=f.getInstance();e.forEach(function(e){n.emit(e.event,e.path)})}}(e),e.length=0},n}b.provider={openReadWriteContext:function(){returnn("getReadWriteContext")},openReadOnlyContext:function(){returnn("getReadOnlyContext")}},b.readyState=e?u:a,_.forEach(function(e){e.call(this)}.bind(b)),_=null,q(e,b)}if(e)returnn(e);varr=j.getReadWriteContext();r.guid=N(r),T?r.clear(function(e){if(e)returnn(e);S.ensureRootDirectory(r,n)}):S.ensureRootDirectory(r,n)}),F.prototype.promises={},[{name:"open",promises:!0},{name:"access",promises:!0},{name:"chmod",promises:!0},{name:"fchmod"},{name:"chown",promises:!0},{name:"fchown"},{name:"close"},{name:"mknod",promises:!0},{name:"mkdir",promises:!0},{name:"mkdtemp",promises:!0},{name:"rmdir",promises:!0},{name:"stat",promises:!0},{name:"fstat"},{name:"fsync"},{name:"link",promises:!0},{name:"unlink",promises:!0},{name:"read"},{name:"readFile",promises:!0},{name:"write"},{name:"writeFile",promises:!0},{name:"appendFile",promises:!0},{name:"exists"},{name:"lseek"},{name:"readdir",promises:!0},{name:"rename",promises:!0},{name:"readlink",promises:!0},{name:"symlink",promises:!0},{name:"lstat",promises:!0},{name:"truncate",promises:!0},{name:"ftruncate"},{name:"utimes",promises:!0},{name:"futimes"},{name:"setxattr",promises:!0},{name:"getxattr",promises:!0},{name:"fsetxattr"},{name:"fgetxattr"},{name:"removexattr",promises:!0},{name:"fremovexattr"}].forEach(function(e){varr=e.name,t=!0===e.promises;F.prototype[r]=function(){vare=this,n=Array.prototype.slice.call(arguments,0),t=n.length-1,i="function"!=typeofn[t],o=w(n[t]),s=e.queueOrRun(function(){vars=e.provider.openReadWriteContext();if(u===e.readyState){vara=newh.EFILESYSTEMERROR("filesystem unavailable, operation canceled");returno.call(e,a)}functionm(){s.close(),o.apply(e,arguments)}i?n.push(m):n[t]=m;varc=[e,s].concat(n);S[r].apply(null,c)});s&&o(s)},t&&(F.prototype.promises[r]=n(F.prototype[r].bind(b)))})}F.providers=p,module.exports=F;