diff --git a/htdocs/tplfs.mjs b/htdocs/tplfs.mjs index 9348deb..3a03223 100644 --- a/htdocs/tplfs.mjs +++ b/htdocs/tplfs.mjs @@ -116,13 +116,13 @@ export function TplFS(client, parent, desc) { this.update = async (path, data) => { if((typeof path === 'string') || (path instanceof String)) path = path.split('/'); - if(path.length > 0) return await (await this.open(path)).update([], data); + if((path) && (path.length > 0)) return await (await this.open(path)).update([], data); else return await this.raw_update(data); }; - this.cat = async (path=[]) => { + this.cat = async (path) => { if((typeof path === 'string') || (path instanceof String)) path = path.split('/'); - if(path.length > 0) return await (await this.open(path)).raw_cat(); + if((path) && (path.length > 0)) return await (await this.open(path)).raw_cat(); else return await this.raw_cat(); }; @@ -279,13 +279,17 @@ EncFS.fromPassword = async function(fs, password) { return String.fromCharCode.apply(null, new Uint8Array(res)); } async function path_encrypt(data) { - if((data) && (data.constructor === Array)) return await Promise.all(data.map(x => path_component_encrypt(x))); - else return (await Promise.all(data.split('/').map(x => path_component_encrypt(x)))).join('/'); + if(data) { + if(data.constructor === Array) return await Promise.all(data.map(x => path_component_encrypt(x))); + else return (await Promise.all(data.split('/').map(x => path_component_encrypt(x)))).join('/'); + } else return data; } async function path_decrypt(data) { - if((data) && (data.constructor === Array)) return await Promise.all(data.map(x => path_component_decrypt(x))); - else if(data.startsWith('/')) return '/' + await path_decrypt(data.replace(/^\/+/g, '')); - else return (await Promise.all(data.split('/').map(x => path_component_decrypt(x)))).join('/'); + if(data) { + if(data.constructor === Array) return await Promise.all(data.map(x => path_component_decrypt(x))); + else if(data.startsWith('/')) return '/' + await path_decrypt(data.replace(/^\/+/g, '')); + else return (await Promise.all(data.split('/').map(x => path_component_decrypt(x)))).join('/'); + } else return data; } return new EncFS((await fs.mkdir('ZZZE ' + uint8array_to_b64(new Uint8Array(await digest('SHA-1', password))))).chroot(), data_encrypt, data_decrypt, path_encrypt, path_decrypt); };