{"_id":"localstorage-fs","_rev":"26-851f975b0c7591e779b6c3fcea69831a","name":"localstorage-fs","description":"node's fs module for the browser backed by localStorage","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.0":{"name":"localstorage-fs","version":"0.0.0","description":"node's fs module for the browser backed by localStorage","dependencies":{"process":"~0.5.1","fs-stats":"~0.0.0","inherits":"~2.0.1"},"scripts":{"exemplify":"browserify example/index.js > example/bundle.js"},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"license":"WTFPL","readme":"# localstorage-fs\nnode's fs module for the browser backed by [localStorage](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)\n\n## why\nthere is [this](https://github.com/juliangruber/level-fs-browser), but i needed sync methods\n\n## how\nbrowserify and use it like you would in node land\n\n## api\nsame as in node but a bunch of methods are not implemented yet, view the [source](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L203)\n\n## implementation details\n* file data and file metadata are stored under two prefixes: 'file://' and 'file-meta://' respectively\n* raw file data is stored as base64 encoded strings under the file:// prefix\n* directory listings are indexed as comma separated lists of file names under the file:// prefix\n* stats are indexed under the file-meta:// prefix\n* `fs.WriteStream` and `fs.ReadStream` are unavailable until you call `fs.create[Read|Write]Stream`\n* `process.chdir`, `process.cwd` and `process.umask` are shimmed by this module for now\n\n## example\nthere is a *very* simple example: do `npm run exemplify` then open example/index.html in your browser console\n\n## test\nno tests yet - maybe node's fs tests would work?\n\n## license\nWTFPL","readmeFilename":"readme.md","_id":"localstorage-fs@0.0.0","dist":{"shasum":"23ce099ab558533ec50b8e1538da6e41b9ceaf38","tarball":"https://registry.npmjs.org/localstorage-fs/-/localstorage-fs-0.0.0.tgz","integrity":"sha512-OzlwIPBf/oLLEmmLKkHV8rsWvBkvShUHasGUYFkiMv18j3bqn9UaKck/tDdtNQrE2wIZ8U+CefDvEfOmSZAUMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDms5f6EXSh+Km+JG2soyBsfpwDy8Uaiolhu79x/wE0mQIgRP27djWNWAjuZpuYqYOZCr3Qoewjjuwna/W3IBhVcA8="}]},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}],"directories":{}},"0.0.1":{"name":"localstorage-fs","version":"0.0.1","description":"node's fs module for the browser backed by localStorage","dependencies":{"process":"~0.5.1","fs-stats":"~0.0.0","inherits":"~2.0.1"},"scripts":{"exemplify":"browserify example/index.js > example/bundle.js"},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"license":"WTFPL","readme":"# localstorage-fs\nnode's [`fs`](http://nodejs.org/api/fs.html) module backed by [`localStorage`](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)\n\n## why\n[this](https://github.com/juliangruber/level-fs-browser) would be way better, but i needed the sync methods\n\n## how\nbrowserify and use like you would in node land\n\n## api\nthe highest level methods are supported, though many others could probably be implemented: here is a [list](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L203)\n\n## example\na very simple example: do `npm run exemplify`, then open example/index.html in your browser and inspect. `window.fs` should be defined so you can play around in the console\n\n## test\ntodo\n\n## implementation\n* file data and directory listings are keyed by `'/path/name'` under the prefix: `'file://'`\n* meta data (also keyed by path name) is stored as JSON stringified `fs.Stats` instances under `'file-meta://'`\n* file contents are stored as base64 encoded strings which means binary files work\n* directory listings are stored as newline delimited plain strings (like `ls(1)`)\n\n## caveat\n* `fs.WriteStream` and `fs.ReadStream` are unavailable until you call `fs.create[Read|Write]Stream()` at least 1x\n* some fs related [`process`](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L441) methods are shimmed out by this module for now\n\n## license\nWTFPL","readmeFilename":"readme.md","_id":"localstorage-fs@0.0.1","dist":{"shasum":"4a0f28970b71efc155049528f7d158f4e8a48c22","tarball":"https://registry.npmjs.org/localstorage-fs/-/localstorage-fs-0.0.1.tgz","integrity":"sha512-HkX4WUQ9nvw1xkk10z44cmXfS71cXhMuPBf0wqV2Jf7714kS3T4JKfS5hvUV6K/0Iaajgxqn4GqpGgL7BCB10A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPnun1urYAfgmbafrNGnsf0qTtX64jlb6xazBvxrEVIwIgH59Ter+AkMXt27TlrWGfatakQZZRXyAhJ5A/+xeUrM0="}]},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}],"directories":{}},"0.0.2":{"name":"localstorage-fs","version":"0.0.2","description":"node's fs module for the browser backed by localStorage","dependencies":{"process":"~0.5.1","fs-stats":"~0.0.0","inherits":"~2.0.1"},"devDependencies":{"tape":"2.3.2"},"scripts":{"test":"browserify test/index.js > test/bundle.js && { [ -x \"$(which open)\" ] && open test/index.html || xdg-open test/index.html; }","exemplify":"browserify example/index.js > example/bundle.js"},"testling":{"files":"test/index.js","browsers":["ie/8","ie/9","ie/10","ie/latest","chrome/15","chrome/latest","firefox/10","firefox/latest","safari/latest","opera/latest"]},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"license":"WTFPL","readme":"# localstorage-fs\nnode's [`fs`](http://nodejs.org/api/fs.html) module backed by [`localStorage`](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)\n\n[![Browser Support](http://ci.testling.com/jessetane/localstorage-fs.png)](http://ci.testling.com/jessetane/localstorage-fs)\n\n## why\n[this](https://github.com/juliangruber/level-fs-browser) would be way better, but i needed the sync methods\n\n## how\nbrowserify and use like you would in node land\n\n## api\nthe highest level methods are supported, though many others could probably be implemented: here is a [list](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L235)\n\n## example\na very simple example: do `npm run exemplify`, then open example/index.html in your browser and inspect. `window.fs` should be defined so you can play around in the console\n\n## test\ndo `npm test` if you have bash, otherwise `browserify test/index.js -o test/bundle.js` and open test/index.html in your browser\n\n## implementation\n* file data and directory listings are keyed by `'/path/name'` under the prefix: `'file://'`\n* meta data (also keyed by path name) is stored as JSON stringified `fs.Stats` instances under `'file-meta://'`\n* file contents are stored as base64 encoded strings which means binary files work\n* directory listings are stored as newline delimited plain strings (like `ls(1)`)\n\n## caveat\n* `fs.WriteStream` and `fs.ReadStream` are unavailable until you call `fs.create[Read|Write]Stream()` at least 1x\n* some `fs` related [`process`](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L547) methods are shimmed out by this module for now\n\n## license\nWTFPL","readmeFilename":"readme.md","_id":"localstorage-fs@0.0.2","dist":{"shasum":"77a010c2618a55956e76e3da70b59af35a69915e","tarball":"https://registry.npmjs.org/localstorage-fs/-/localstorage-fs-0.0.2.tgz","integrity":"sha512-qODoFiYRDrriBvSvKYsd4ePSQVOOu3+ibWPvatCLspyjdF78/HknlLGFZsbbvZ55Bsclcqt5wVO2MjynuuMdIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZoYs7Iqygm/DxfynuTmTWnY+1fgQsSOwh2WENPykO8gIgKn6N8DQtszXxPRdrNC9VRVzItmuYTJSmzghBh5k9iaY="}]},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}]},"0.0.3":{"name":"localstorage-fs","version":"0.0.3","description":"node's fs module for the browser backed by localStorage","dependencies":{"process":"~0.5.1","fs-stats":"~0.0.0","inherits":"~2.0.1"},"devDependencies":{"tape":"2.3.2"},"scripts":{"test":"browserify test/index.js > test/bundle.js && { [ -x \"$(which open)\" ] && open test/index.html || xdg-open test/index.html; }","exemplify":"browserify example/index.js > example/bundle.js"},"testling":{"files":"test/index.js","browsers":["ie/8","ie/9","ie/10","ie/latest","chrome/15","chrome/latest","firefox/10","firefox/latest","safari/latest","opera/latest"]},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"license":"WTFPL","readme":"# localstorage-fs\nnode's [`fs`](http://nodejs.org/api/fs.html) module backed by [`localStorage`](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)\n\n[![Browser Support](http://ci.testling.com/jessetane/localstorage-fs.png)](http://ci.testling.com/jessetane/localstorage-fs)\n\n## why\n[this](https://github.com/juliangruber/level-fs-browser) would be way better, but i needed the sync methods\n\n## how\nbrowserify and use like you would in node land\n\n## api\nthe highest level methods are supported, though many others could probably be implemented: here is a [list](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L235)\n\n## example\na very simple example: do `npm run exemplify`, then open example/index.html in your browser and inspect. `window.fs` should be defined so you can play around in the console\n\n## test\ndo `npm test` if you have bash, otherwise `browserify test/index.js -o test/bundle.js` and open test/index.html in your browser\n\n## implementation\n* file data and directory listings are keyed by `'/path/name'` under the prefix: `'file://'`\n* meta data (also keyed by path name) is stored as JSON stringified `fs.Stats` instances under `'file-meta://'`\n* file contents are stored as base64 encoded strings which means binary files work\n* directory listings are stored as newline delimited plain strings (like `ls(1)`)\n\n## caveat\n* `fs.WriteStream` and `fs.ReadStream` are unavailable until you call `fs.create[Read|Write]Stream()` at least 1x\n* some `fs` related [`process`](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L547) methods are shimmed out by this module for now\n\n## license\nWTFPL","readmeFilename":"readme.md","_id":"localstorage-fs@0.0.3","dist":{"shasum":"d3fcb4bfd5356fb6267ceb71d41088a3a92b5c0d","tarball":"https://registry.npmjs.org/localstorage-fs/-/localstorage-fs-0.0.3.tgz","integrity":"sha512-OxJNIYqsWijIDp6GGbiqrsgrK7dnK2qsXw7Y79iwDdUMk03lOl3l6AAcSxkZ3rYIhVKDwVxk0sIzgfmcSeXRLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEapzWppWSY7hM9zeNPi51CWa8D56wkQ8ck4VX5AvbgFAiEA1MtNZ5EJnsCJg6PIN8JONwlNz2VClO9/NIhzWYuljdY="}]},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}]},"0.1.0":{"name":"localstorage-fs","version":"0.1.0","description":"node's fs module for the browser backed by localStorage","dependencies":{"process":"~0.5.1","fs-stats":"~0.0.0","inherits":"~2.0.1"},"devDependencies":{"tape":"2.3.2"},"scripts":{"example":"browserify example/index.js > example/bundle.js && { [ -x \"$(which open)\" ] && open example/index.html || xdg-open example/index.html; }","test":"browserify test/index.js > test/bundle.js && { [ -x \"$(which open)\" ] && open test/index.html || xdg-open test/index.html; }"},"testling":{"files":"test/index.js","browsers":["ie/8","ie/9","ie/10","ie/latest","chrome/15","chrome/latest","firefox/10","firefox/latest","safari/latest","opera/latest"]},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"license":"WTFPL","readme":"# localstorage-fs\nnode's [`fs`](http://nodejs.org/api/fs.html) module backed by [`localStorage`](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)\n\n[![Browser Support](http://ci.testling.com/jessetane/localstorage-fs.png)](http://ci.testling.com/jessetane/localstorage-fs)\n\n## why\n[this](https://github.com/juliangruber/level-fs-browser) would be way better, but i needed the sync methods\n\n## how\nbrowserify and use like you would in node land\n\n## api coverage\n* `fs.rename(oldPath, newPath, callback)`\n* `fs.renameSync(oldPath, newPath)`\n* `fs.truncate(path, len, callback)`\n* `fs.truncateSync(path, len)`\n* `fs.chmod(path, mode, callback)`\n* `fs.chmodSync(path, mode)`\n* `fs.stat(path, callback)`\n* `fs.statSync(path)`\n* `fs.unlink(path, callback)`\n* `fs.unlinkSync(path)`\n* `fs.rmdir(path, callback)`\n* `fs.rmdirSync(path)`\n* `fs.mkdir(path, callback)`\n* `fs.mkdirSync(path, mode)`\n* `fs.readdir(path, callback)`\n* `fs.readdirSync(path)`\n* `fs.readFile(path, options, callback)`\n* `fs.readFileSync(path, options)`\n* `fs.writeFile(path, data, options, callback)`\n* `fs.writeFileSync(path, data, options)`\n* `fs.appendFile(path, data, options, callback)`\n* `fs.appendFileSync(path, data, options)`\n* `fs.exists(path, callback)`\n* `fs.existsSync(path)`\n* `fs.createWriteStream(path, options)`\n* `fs.createReadStream(path, options)`\n\nothers that could probably be implemented [here](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L235)\n\n## tests / example\n* get browserify\n* get bash\n* `npm run test`\n* `npm run example`\n\n## implementation\n* file data and directory listings are keyed by `'/path/name'` under the prefix: `'file://'`\n* meta data (also keyed by path name) is stored as JSON stringified `fs.Stats` instances under `'file-meta://'`\n* file contents are stored as base64 encoded strings which means binary files work\n* directory listings are stored as newline delimited plain strings (like `ls(1)`)\n* async methods are faked with `process.nextTick`\n* streams are faked by buffering into memory\n\n## notes\n* some `fs` related [`process`](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L547) methods are shimmed out by this module for now\n\n## license\nWTFPL","readmeFilename":"readme.md","_id":"localstorage-fs@0.1.0","dist":{"shasum":"0daa13aad97333992b6e87dfd47ce84b28aad302","tarball":"https://registry.npmjs.org/localstorage-fs/-/localstorage-fs-0.1.0.tgz","integrity":"sha512-7qti/EOKp4/+zFpV38tCLUGp+EOxj6V+oy9HLxDoq0KFmY1qV9e/WAxgZDt/Yqun1zy6txo5sqWIOmx+CAxcdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF8J+2gGuaQJ6HGzmwF+eCeXIjxudfLJQMiNJ9geztXuAiEAvaeg4+4atpcW0rVKZgc4JPPgtbpdiq4R5hoS5IaFwmo="}]},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}]}},"readme":"# localstorage-fs\nnode's fs module for the browser backed by [localStorage](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)\n\n## why\nthere is [this](https://github.com/juliangruber/level-fs-browser), but i needed sync methods\n\n## how\nbrowserify and use it like you would in node land\n\n## api\nsame as in node but a bunch of methods are not implemented yet, view the [source](https://github.com/jessetane/localstorage-fs/blob/master/index.js#L203)\n\n## implementation details\n* file data and file metadata are stored under two prefixes: 'file://' and 'file-meta://' respectively\n* raw file data is stored as base64 encoded strings under the file:// prefix\n* directory listings are indexed as comma separated lists of file names under the file:// prefix\n* stats are indexed under the file-meta:// prefix\n* `fs.WriteStream` and `fs.ReadStream` are unavailable until you call `fs.create[Read|Write]Stream`\n* `process.chdir`, `process.cwd` and `process.umask` are shimmed by this module for now\n\n## example\nthere is a *very* simple example: do `npm run exemplify` then open example/index.html in your browser console\n\n## test\nno tests yet - maybe node's fs tests would work?\n\n## license\nWTFPL","maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}],"time":{"modified":"2022-06-19T13:23:00.127Z","created":"2014-01-05T09:14:01.631Z","0.0.0":"2014-01-05T09:14:02.198Z","0.0.1":"2014-01-05T13:28:48.131Z","0.0.2":"2014-01-07T01:03:13.692Z","0.0.3":"2014-01-07T01:15:47.249Z","0.1.0":"2014-01-08T05:18:15.571Z"},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"users":{"meadowcottage":true}}