{"bugs":{"url":"https://github.com/dominictarr/level-manifest/issues"},"dist":{"shasum":"06200d3a768bfd6b5181b27bfa9b0efcbb06fe55","tarball":"https://registry.npmjs.org/level-manifest/-/level-manifest-1.2.0.tgz","integrity":"sha512-jGdep4kbv+yW40hx5F453hi0jcyoDvfqH5kNP7A19xHLvjlTCuB5WLk8+jvTKpBaIh4UjALngQeGst0Z11SHdg==","signatures":[{"sig":"MEUCIQDWmemwQtEa6kpzeff8UiO71QIoVGKb+TBVFQ0bJa441QIgVbgROmCQz4Um2jIG6ur8Y0IW6WKJxMD2m3fpWyNs7js=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"name":"level-manifest","_from":".","author":{"url":"http://dominictarr.com","name":"Dominic Tarr","email":"dominic.tarr@gmail.com"},"readme":"# level-manifest\n\nDescribe the functions that multilevel should provide access to on the client.\n\n[![Build Status](https://travis-ci.org/dominictarr/level-manifest.png?branch=master)](https://travis-ci.org/dominictarr/level-manifest)\n\n## Example\n\nSuppose you implement a levelup plugin that adds some cool new features to a\n[sublevel](https://github.com/dominictarr/level-sublevel)\n\nretrive a js object describing what methods a client protocol should be able\nto access.\n``` js\nvar manifest = require('level-manifest')\n\nvar m = manifest(db)\n```\n\n`manifest` build a tree of sublevels.\n\n``` js\n{\n  methods:   {},\n  sublevels: {\n    foo: {\n      methods: {},\n      sublevels: {}\n    }\n  }\n}\n```\n\nPlugins extending a sublevel should add a `methods` property that describes\nany new methods that can be used by a remote client.\n\nfor example, the default methods are specified like this:\n\n``` js\nvar methods = {\n  createReadStream  : {type: 'readable'},\n  readStream        : {type: 'readable'},\n  createValueStream : {type: 'readable'},\n  valueStream       : {type: 'readable'},\n  createKeyStream   : {type: 'readable'},\n  keyStream         : {type: 'readable'},\n  createWriteStream : {type: 'writable'},\n  writeStream       : {type: 'writable'},\n  isOpen            : {type: 'sync'},\n  isClosed          : {type: 'sync'},\n  put               : {type: 'async'},\n  get               : {type: 'async'},\n  del               : {type: 'async'},\n  batch             : {type: 'async'},\n  approximateSize   : {type: 'async'}\n}\n```\n\n`readable`, and `writable` mean readable or writable streams,\n(use `duplex` for a stream that is both readable and writable.)\n\nA client should also provide support for these types:\n``` js\nvar other = {\n  error        : {type: 'error', message: 'not-supported'},\n  createStream : {type: 'duplex'},\n  nested       : {type: 'object', methods: {get: {type: 'async'}}}\n}\n```\n`error` is used when a method has been disabled.\n\n## License\n\nMIT\n","license":"MIT","scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"homepage":"https://github.com/dominictarr/level-manifest","repository":{"url":"git://github.com/dominictarr/level-manifest.git","type":"git"},"_npmVersion":"1.3.11","description":"describe a levelup plugin for remote access","directories":{},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"dependencies":{"deep-extend":"~0.2.5"},"readmeFilename":"README.md","devDependencies":{"tape":"~2.3.0"},"_id":"level-manifest@1.2.0","version":"1.2.0"}