{"_id":"bidar","_rev":"50-59493a8e09d0a0b342afd095548b8a1d","name":"bidar","dist-tags":{"latest":"0.4.5"},"versions":{"0.1.0":{"name":"bidar","version":"0.1.0","main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.0","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"f675048de99af2db40f26f1bd277e10517d3ffc7","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.0.tgz","integrity":"sha512-PrNJKj6WkXei7Mp78uZ9Do2L6mmktZD1Rx7S1QL1EhSqX9tJwYtT/saAR1XuJhVxkx7s9lAXYAz61oN91OIyWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDFrqvp6pjf0zbJoPtR5Xo4sfxQUOs4yv8FfPb1eA896AiAc/JfJ9ikz5337MWo7G+7iyWHlMGGetNol0/IZkrtCkw=="}]},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}]},"0.1.1":{"name":"bidar","version":"0.1.1","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.1","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"9a2987131d3c331a8035912ca454cf512d19445f","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.1.tgz","integrity":"sha512-c+S4WHqLkhjXfviJMeBSjhy6CGKN9bG47t+XQ3bBIZdFoYJbfO725/fKWpWLzhzbvZRUj4XoxQdwFCo0HURW8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFk8si/f8642RfauXfeLXe/FAsNmkRwtNJKrM2B6h4+hAiEA0ZSZiMtjMamei8aq2ptnL3SI7phk0gtYtJhGb0w1Nys="}]}},"0.1.2":{"name":"bidar","version":"0.1.2","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.2","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"d48399d230ead07cd5430b210fc49d4ab0f7baf2","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.2.tgz","integrity":"sha512-RgTYjsp1qlTfF/MKSqShKtt85+XHVacm+BnjwiOjUhqbjAu+wpSwbhvD+Dvw8hspf3xBKK7QN+z+sam70xnSSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkDdxY0I4KCLE8iOZGtyWDR5YpmSuhIj0f2YtVfvuVvgIhAI+IUXOHVr44xG0XcwHDFFKKfr9S3D+7tyAZI7yjzopB"}]}},"0.1.3":{"name":"bidar","version":"0.1.3","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.3","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"300982c2f9b833c07d7ccece4150da7e3ce900ee","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.3.tgz","integrity":"sha512-FrHh4F8mdn8nW/UXny6GUCCaqXHer1mXg9NBxs9Ae8sUk+ATq+k8+fUP5GG6kBXv+F5afli79PqaVw6kWI+XgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDnylEeMSkvqadDHa2O7QG/BDtr6cALgPwqACA130EbQAiBF3ceMUite/0kKsp2cgcyL/MLubr7AI66CJSlsSSPXng=="}]}},"0.1.5":{"name":"bidar","version":"0.1.5","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.5","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"8bb4edb6bd25a7de74a31e0d49a5e8d312557921","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.5.tgz","integrity":"sha512-IFxVdK96ywV2MbbO7esGR2FoOqfsXMUJ+/J7/p6VeQcP7OC0q5eGuxvp+eB78MyAr1cNDLG+FmDa/ZUrsoo2MA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfPdcHJMzoY3n86L/X8ZATt8Sx/PyOODT+Zz+ydz8oBAiA5lCguuqpCeV2twqDN70j4BttoMQX+tAg+hnDdNzmImg=="}]}},"0.1.6":{"name":"bidar","version":"0.1.6","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.6","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"02f09130295563b9b6a24eb87f1d958fa35ff514","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.6.tgz","integrity":"sha512-NeZBg3rvVyxWt5XumOGh5xhmUu/rLBBqPxhGL4RfJl82mGtQBWqwjB01hHG/MsLiY+Ia3cWHqRY8uUvm0KRDPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBWRb7lsVi1kA9yXqFBFlQsL9X11CdYHYmKkx4ZfTKMlAiAGWt5GhHnkbue6pIvT/QOpyfbaWpPPJbxAE2xb0C5LUQ=="}]}},"0.1.7":{"name":"bidar","version":"0.1.7","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.7","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"24332eac955002728b825e3e96a39afcad61f535","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.7.tgz","integrity":"sha512-f0eR7fyJrHYvuL0AGZI1gdCbLjRbVzlgmIEvbnwnqmpTjVFHF46bVe2U95Apvc0v3pgEkzHVrau2K59H0BZAXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/muZoaz1Y9RVlL9RIhlM1lHbhK8jnqoIWlF3IVZTBBAiBz856uENeB38It4Ot25n18rtR9ZeJum3DEX5TO3Xu/6A=="}]}},"0.1.8":{"name":"bidar","version":"0.1.8","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.8","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"5d2a56b6ca92b4a88f7cdc3c3710b5c05ffa9055","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.8.tgz","integrity":"sha512-o0PZEJGmd5Q/Q1RNWZH79h65t79UNGpLIU+OllVR7PEosdvA2xzDuzTaoAtzPpp5mp8FcUjQEm9rO8WFofuKzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMZuivNr61d8hqbjujRR3mlJal8HNHhlbyX9Jn+Icx8AIgL6U+0fU9rJWvFlQSUqGLbuyw7KT2i841Rw+u9LHlL2I="}]}},"0.1.9":{"name":"bidar","version":"0.1.9","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.1.9","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"90142908866443559c5b64c6e925d2c3806c3335","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.1.9.tgz","integrity":"sha512-M9CnRBDPtIP7pXSrlsJeNMpo+3un9zGEpRK3VmPG8I/M2MEF6Rpu/D1rqFpNPjh6Ocruat6EL7iY8QKqtdYZCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApFHPtIs7DwTqzs8KaXfGJeUmAomgI0hq7Z+CZ23P8GAiEAzfB6aNqO6LpRuX87HpYJcQXFIPREK9CifxDTNgLw8Cw="}]}},"0.2.0":{"name":"bidar","version":"0.2.0","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.2.0","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"491be177d5c990b444d5e9cc733d1a3c84ea628c","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.2.0.tgz","integrity":"sha512-2yV81mnYuApiLXajghDGYRsgAKtLzYRlTPyhciNHbKQpwRK3rQy6h5VVu9QHxpXwkLvmmYj6OdosqYo0rbWNeg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqrP7TPom+lbBGECHGLX3domqeoAxvGvpdaMv2wklrrAiEA51oxcEicxXNw678+G2uTdgqrPVa2G9X08AHgDn7HqvM="}]}},"0.2.1":{"name":"bidar","version":"0.2.1","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.2.1","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"870df1aedfb4327eae91a1a6a38e40718e7ce7b6","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.2.1.tgz","integrity":"sha512-73SCVmiXCr38ckMCJlw0ytyCf1MfsN2FL8VLk9iYSTxyX4Pvv6JQWN6YWMGPPt6UBmNc1h7C0Ya/GpeISKRGRA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz5RGaRnIH1lEB/8aSjVoU3Uybc4P79GlhiZ0ocJkgwwIgcNLDqgcSits47sLsG8UZ+JuC77LcVjegO7kxiYu0w0Q="}]}},"0.2.2":{"name":"bidar","version":"0.2.2","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.2.2","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"f963d908afcf62bbba06d9635ea3841e805dc7c4","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.2.2.tgz","integrity":"sha512-yK0CSrHVflLNPetE93jhZxItS36JCTrclcey5eNx9Z/W9mn7VebFqJuMufaZPQ8ndybLSRSXaCAKKeKHBPlewg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUvGnz2T7twmgNBqBTEEG2be3aP7RSmcdw1RPdzMw3mwIgBzrAtU/lw5Hzxk8NUSP3fCI6z74C+lG0BrTWps7OHUk="}]}},"0.3.0":{"name":"bidar","version":"0.3.0","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.3.0","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"b876532d2b5a64240fab9a761043237e3d75c1a7","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.3.0.tgz","integrity":"sha512-ml4LeLJja+0QEJNSrcSnBfkRqxB+lRbb6CFaoGMBpysPwfRjp4cvmw6ZdyyyEDf2ej1qFgm94Ihw5gbBNZVk1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyNCE+zFCtoFaFglpKnsbAovLU5KC/V+mz6QGVwC66gAiEA8cDEL7XrIEfmh6HSUrnYBrILeRbX5mTbZjlEF+mEY0A="}]}},"0.3.1":{"name":"bidar","version":"0.3.1","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.3.1","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.15","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"156c3015fa2946a6e71adf6385135d17a583c14c","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.3.1.tgz","integrity":"sha512-ZsyV6oNBaXnOY/nh6datuinXjjPrTR2zrpdZ2pOVdggTLXjlez/g8OPWYxZsLO72pKrkHyjWZOGnpO+N2AIqew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID8fI+wM+JYfOmtwHCg9rQfRE1LL/hDpKHJKg3nAOuUoAiBvB5qvkA+gnZfYQlFwo9O1bFLQ1bR7zvMKxb9YZmbA2w=="}]}},"0.3.2":{"name":"bidar","version":"0.3.2","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.3.2","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.18","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"772d178e3f896df130dcf58fdeaf9e8cee6fa817","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.3.2.tgz","integrity":"sha512-Q0TDuhINANXfdgiyaJjQNl1QT6w89RLHUkeDLuO3fEwAzU0Z3n606RLYC4AUj2N8bGreg7JSQ00LxNr8UARx5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRi2pe+Z7bexvCvTWWLuDDrQDOPc9q53cjl1vzDOz+wAIgax0+M99sc/aaMhjgcAMZPsbwiM1TvWn9oPoYqPVw3wc="}]}},"0.3.3":{"name":"bidar","version":"0.3.3","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.3.3","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.18","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"043ac1b0260640c741f4fb6b499c81baf5c9c5c5","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.3.3.tgz","integrity":"sha512-o+/sMi25gzCKD1w6gh6BvSOrpaeI28TCPiezBb+M7rE9HEwHomlKuRMvfTxHCSgvec0K9CPNKg7fFPkeSgWvCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEsXSd4eOAxcpSIEVEjGOMVo5GDuMMTlFUyzVhzfsbSVAiAqfI0DwOKbUzKriYcO90RTV2y+aqE2fKcJQOdeu0P9lg=="}]}},"0.4.0":{"name":"bidar","version":"0.4.0","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5","typ":"~0.5.1"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.4.0","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"5cca7c34656fa2adddf25d2ce0ef2eedb497af9b","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.4.0.tgz","integrity":"sha512-sMiu+SvZ0DAY5wk72Z4QbDRpT2NaEBKnlJ1JSfZ8lHnCVIeJY3KPNijJ+5iKxsXQolPWgiWBHL3RdEnYIlwWQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAdNIr51yJX9nxxP43WkCZJTVuYHR+vwbr6d0ZNMlZruAiEAnQ4PTLs2oCcEL5IwHFTOwDiJ4IeLDgQvSLgARGNFmBQ="}]}},"0.4.1":{"name":"bidar","version":"0.4.1","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5","typ":"~0.6.0"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.4.1","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"6e077a21c3ca9c602e7f0e5e97f9a781ec20a782","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.4.1.tgz","integrity":"sha512-GOjduGN34rHp/4o1Uswn3l3dGmCE0lIONEbRpw5P+T1w4QfYqMz8hk24p4h8j/wadWszsF9AnLfbeZfJcAlbxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE+KP/3wkYyLNvRBXYpfLyGyjdUXf8kr90YQ0Km2rCfvAiEA1yrTe6YAasak0Uhl4YcgGkT9Cj47hf/vkWQlGI+Cgeo="}]}},"0.4.2":{"name":"bidar","version":"0.4.2","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5","typ":"~0.6.1"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.4.2","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"dbf35712fbbfcd2eb4c56e100095de7ec4cc1ee1","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.4.2.tgz","integrity":"sha512-vMMdbaztuls5GP5j9BA0e1crau39Wxi+4Mkt6+ZDDOj6Qg1BwrWouGVJ3CiWhM22Ndc22TLIshyTWtJNTvlVow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrhA1nWee4ZOBSXJ3O7YC7VuPgEH6/pbz16N0Obxp3ygIhAL8WhK1gw+mO8FbHnD/5ory1Wrg9V39hisH1MBoLKwkK"}]}},"0.4.3":{"name":"bidar","version":"0.4.3","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5","typ":"~0.6.1"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.4.3","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"b3316434833ab1f8697afff452aaff6dee229ca8","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.4.3.tgz","integrity":"sha512-gUXbElkx+PpCOs4sTwaEy/4RvqY9VLOPjwJU0aOOj4gVdZIy4F+s1G6vGDlLTxzyqc5JU0v5SCi2Nzfrr7Itmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6JjHZL6PxyBxag0CjSRcMxYm1y1J1qF5erpdbchnmOgIgJFqFXONmpuQD3NZoIMTk/4gV5DCflicfJIN7omEO5ic="}]}},"0.4.4":{"name":"bidar","version":"0.4.4","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"git://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5","typ":"~0.6.1"},"scripts":{"test":"node test/test.js"},"_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"},"_id":"bidar@0.4.4","devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"4c788f743c4946959ce17ef2769c0d463165a7b4","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.4.4.tgz","integrity":"sha512-Kjwr8dfsZ5v3YC2mKL125P/z0YFKLR5CAYtdrlwA7dObwxcX/lNPHPqLZrv/2U0UWHQXBnAsSKLV91hVtQaSBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHORLlBRrl+g46Ms6F+QlKWIgNMSJLVkWzXLEO0OsbIsAiEA6NO8WLGUgsGWVMtXVWdo9gO/9NkxzqXurKIjq1MXtoE="}]}},"0.4.5":{"name":"bidar","version":"0.4.5","keywords":["object","serialization","data","graph"],"description":"Binary Data Representation (serialization format)","homepage":"https://github.com/Obvious/bidar","repository":{"type":"git","url":"https://github.com/Obvious/bidar.git"},"licenses":[{"type":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}],"author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"}],"main":"lib/bidar.js","engine":{"node":">=0.6.0"},"dependencies":{"oid":"~0.4.5","typ":"~0.6.1"},"scripts":{"test":"node test/test.js"},"readme":"Bidar: Binary Data Representation.\n==================================\n\nOh no! Not another BSON?!?!\n\nActually, yes.\n\nThe fact of the proliferation of serialized data formats, and of\nbinary JSON-like formats in particular, is a fiat demonstration\nthat there isn't actually a solid consensus for a single unified and\nuniversal format. As such, I (Danfuzz) think it's a reasonable and\nprudent idea to continue the exploration of the design of these\nthings.\n\nTo be clear, I am not about to claim that the format defined here is\nthe One True Serialized JavaScript-Like Object Format. What I *will*\nclaim, though, is that this one is at a significantly different spot\nin the coordinate-space of possible serialization formats compared to\nthe other ones that showed up on my radar. As such, this one may turn\nout to be useful to folks in cases where the other existing solutions\ndon't seem to be particularly apropos.\n\nHere are the properties being aimed for here:\n\n* reasonably space-efficient\n\n* single-representation (non-equal binary forms implies\n  non-isomorphic / non-equal object forms)\n\n* without gratuitous quoting (e.g., look what happens when you put a\n  JSON-encoded string inside another JSON-encoded string; avoid\n  that!)\n\n* supports a buffer (binary blob) type\n\n* embraces as much of the JavaScript data model as is reasonably\n  possible. For example, this format differentiates `null` and\n  `undefined`. Why? Because you can tell the difference between them\n  in the purely-local case, and you shouldn't necessarily have to\n  change your code if you decide to interpose serialization (e.g., a\n  machine boundary). I have no love of `undefined` myself and wish I\n  could do away with it, but I'm not about to try to do so wishfully.\n\n* supports \"holes\" where non-pure-data elements may be filled in.\n  More specifically, supports clients that want to be able to set\n  up function/callback-like things for over-the-wire communication.\n\n* supports non-tree graphs of objects. This includes both circular\n  structures and arbitrary acyclic graphs. Non-cycles might be\n  tempting to convert to trees on serialization, but that would have\n  poor interplay with the idea of \"holes\" (above). That is, once you\n  have \"holes,\" object identity starts to matter a lot more.\n\nNon-Goals:\n\n* partially streamable. If you want to incrementally stream a (notionally)\n  single structure, that can be done by defining a layer above this one.\n\n* random-access. If you need an index into a structure, then (as with the\n  previous item) it can be built as an additional layer.\n\nA few references:\n\n* [ASN.1](http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One)\n* [BSON](http://bsonspec.org/)\n* [BJSON](http://bjson.org/)\n* [JSON](http://www.json.org/) *(a classic)*\n* [MessagePack](http://msgpack.org/)\n* [Protocol Buffers](http://code.google.com/p/protobuf/)\n* [Smile](http://wiki.fasterxml.com/SmileFormatSpec)\n* [Thrift](http://thrift.apache.org/)\n* [Universal Binary JSON](http://ubjson.org/)\n\n### Bonus\n\nThough not directly about serialization, this module also provides\na generic object iterator, which is handy for all sorts of things.\n\nExample\n-------\n\nOne of the major reasons for the development of this module was to\nhave the ability to sensibly manage and manipulate non-data \"holes\" in\nwhat is otherwise a graph of data objects, particularly so that two\nsides of a communication link can succeed in communicating about at\nleast some \"non-data-y things\" despite not being able to actually\nshare an address space.\n\nIn this example, imagine that the two sides (serializing and parsing)\ndo a bit more than the trivial transformations here. Hopefully, this\nis enough to give a flavor of things.\n\n(You can find this example in the `example` directory.)\n\n```javascript\nvar bidar = require(\"../\");\n\nfunction muffins() {\n  return \"muffins\";\n}\n\nfunction are() {\n  return \"!are\";\n}\n\nfunction tasty() {\n  return \"tasty\";\n}\n\nfunction holeFilter(hole) {\n  var replacement = hole();\n  if (replacement[0] === \"!\") {\n    return { value: replacement.substr(1) };\n  } else {\n    return { data: \"[\" + hole() + \"]\" };\n  }\n}\n\nfunction holeReverser(hole) {\n  return \"<\" + hole + \">\";\n}\n\nvar message = [ muffins, are, \"very\", tasty ];\n\n// The \"sending\" side.\nvar serialized = bidar.serialize(message, holeFilter);\n\n// The \"receiving\" side.\nvar parsed = bidar.parse(serialized, holeReverser);\nconsole.log(parsed);\n```\n\nHere is a transcript of running it:\n\n```shell\n$ node example/transform.js\n[ '<[muffins]>', 'are', 'very', '<[tasty]>' ]\n```\n\n\nFormat Details\n--------------\n\nThe format will be more fully described once it has baked a bit and\nseems stable. In the mean time, refer to the source. (It's got comments.)\n\n\nUsage\n-----\n\nThis library provides just a few top-level functions.\n\n### serialize(root, [holeFilter])\n\nSerialize an object graph, rooted at the given object, into binary form.\nReturns a buffer of the result. The hole filter, if provided is used as\na transformation on \"holes\" encoutered in the object graph.\n\nA \"hole\" is any object that is not representable as pure data. This\nincludes:\n\n* functions\n\n* non-array non-buffer objects whose prototype is not the default\n  object prototype\n\n* objects that define any dynamic properties (getters or setters)\n\nThe hole filter is called with a single argument -- the original\n\"hole\" object encountered in the graph -- and is expected to return a\nserializable replacement object in response tagged as either\nhole-replacement `data` or a simple `value` replacement, indicated by\nbeing a single-property object `{ data: theHoleData }` or `{ value:\ntheValueReplacement }`. In the `data` case, that hole is marked\nexplicitly as a hole in the serialized output, and upon parsing the\ncorresponding \"hole filler\" will be called with that replacement data\nas its argument. In the latter `value` case, the would-be hole turns\ninto a simple value in the serialized form, which needs no special\ncode in order to parse it on the receiving side. If this is confusing,\nthe example code may shed some light.\n\nIt is possible for a hole replacement to itself have holes in it. This\nis fine, so long as the hole replacer can successfully replace all the\nholes, eventually bottoming out at pure data in some form.\n\n### parse(buf, [holeFiller])\n\nParse a serialized form into an object graph, returning the root of the\ngraph as originally serialized. The `holeFiller`, if specified, is a\nfunction which is consulted to transform \"hole replacements\" (see the\ndescription of `serialize()` for more details) back into directly-usable\nobjects.\n\nThe entire contents of the given buffer are expeceted to be consulted\nin the process of parsing. If there is extra data at the end of the\nbuffer that is not needed, then this function throws an exception.\n\nThis will also throw an exception if there is insufficient data to\ncomplete the operation.\n\nAnd finally, this will throw an exception if given a serialized form\nthat has holes, if `holeFiller` was not specified.\n\n### parsePartial(buf, [startIndex], [holeFiller])\n\nThis is like `parse()`, except that only a portion of the input buffer\nis expected to be used. The `startIndex` (defaults to `0`) is the\nindex into the buffer at which to begin parsing. The optional `holeFilter`\nis the same as with `parse()`.\n\nThe return value of this call is a map of two values: `root` is bound\nto the root of the parsed object graph. `bytesConsumed` is bound to the\nnumber of bytes that were read from the buffer during the parse operation.\n\n### parseNoHead(buf, [holeFiller])\n### parsePartialNoHead(buf, [startIndex], [holeFiller])\n### serializeNoHead(root, [holeFilter])\n\nThese perform equivalent functions to their non-\"no head\" companions, but\nthese variants neither produce nor expect either a fixed header or footer\nsection.\n\nThese are useful if one is going to embed bidar-encoded data inside some\nother container, where that other container can unambiguously identify\nboth itself and where to find the bidar-encoded data it contains.\n\n### iterate(root, visitor, [includeHidden])\n\nStarting at the given root object, iterate through all references\nreachable from it, calling various `visit*` methods on the given\nvisitor.\n\nSome of the visit methods define an `innerVisitor` parameter. This is\na function to call in order to continue the iteration into the element\nindicated by the original call. For example, when `visitObject(x,\ninnerVisitor)` is called, the `innerVisitor` it is passed will iterate\nover the prototype and name bindings of `x`. If `innerVisitor` is not\ncalled, then `x`'s contents will not be iterated over. `innerVisitor`\nmay either be called with no arguments, in which case further\ncallbacks get made to the original `visitor` passed in to `iterate()`,\nor with a single argument to use as a replacement visitor.\n\nThe `includeHidden` argument, if specified, is taken to be a boolean\nand indicates whether (`true`) or not (`false`) to include hidden\n(non-enumerable) object properties in the iteration. It defaults to\n`false`. Note that, even when `true`, the `length` property of\narrays will never get included. (It's particularly special.)\n\nHere is a rundown of the various called methods:\n\n* `visitObject(obj, innerVisitor)` -- called on non-array non-function\n  objects.\n\n* `visitObjectPrototype(obj, proto, innerVisitor)` -- called for\n  non-array non-function object prototypes as part of the inner visit\n  to an object. It *won't* be called for the default object prototype\n  (e.g. the prototype of the object returned by `{}`). If called, it will\n  be the first call made during an inner visit.\n\n* `visitObjectBinding(obj, name, props, innerVisitor)` -- called for\n  arbitrary non-index bindings of any object (regular, array, or function).\n  Always called in sorted order of binding names. `props` is the return\n  value from a call to `Object.getOwnPropertyDescriptor`.\n\n* `visitObjectGetter(obj, name, getter, innerVisitor)` -- called for\n  synthetic object properties that have a defined getter. `getter` is\n  the getter function. This is called from an object binding inner\n  visitor.\n\n* `visitObjectSetter(obj, name, setter, innerVisitor)` -- called for\n  synthetic object properties that have a defined setter. `setter` is\n  the setter function. This is called from an object binding inner\n  visitor.\n\n* `visitArray(arr, innerVisitor)` -- called on array objects.\n\n* `visitArrayElement(arr, index, value, innerVisitor, missing)` --\n  called on array elements, in index order. This is called multiple\n  times from an array inner visitor, and is always called before\n  `visitObjectBinding()` is called for the named object bindings. The\n  `missing` parameter (placed after `innerVisitor` both so that it\n  is easily ignored and so that the `innerVisitor` is always the\n  fourth argument for object binding iteration calls) is a boolean\n  that indicates if an array element is actually missing (as opposed\n  to being set to `undefined`); it will only ever be `true` if `value`\n  is `undefined`.\n\n* `visitFunction(func, innerVisitor)` -- called on function objects.\n\n* `visitString(str)` -- called on strings.\n\n* `visitNumber(num)` -- called on numbers.\n\n* `visitBoolean(bool)` -- called on booleans.\n\n* `visitUndefined()` -- called when the `undefined` value is encountered.\n\n* `visitNull()` -- called when the `null` value is encountered.\n\n### createVisitorProxy(proxyFunction)\n\nConstruct an iteration visitor proxy which calls through to the given\nfunction for every visitor method. See `iterate()` above for details\non the visitor methods.\n\nThe proxy function is always called as `proxyFunction(name, args)`\nwhere `name` is the original visitor function name and `args` is an\narray (per se) of the original arguments to the visitor.\n\nThis is useful if you want to implement homogeneous visitor behavior\n(e.g. wrapping some other visitor).\n\n\nBuilding and Installing\n-----------------------\n\n```shell\nnpm install bidar\n```\n\nOr grab the source and\n\n```shell\nnpm install\n```\n\n\nTesting\n-------\n\n```shell\nnpm test\n```\n\nOr\n\n```shell\nnode ./test/test.js\n```\n\n\nTo Do\n-----\n\nKnown Deficiencies:\n\n* If there are extra properties on Buffer objects, they get silently\n  ignored. E.g.: On serialization, `foo` will get dropped with this\n  definition of `x`: `x = new Buffer(10); x.foo = \"bar\";`\n\n* Regex objects are currently considered holes. They should perhaps be\n  handled specially (as Buffer objects currently are).\n\n* Date objects are currently considered holes. They should perhaps be\n  handled specially (as Buffer objects currently are).\n\n\nContributing\n------------\n\nQuestions, comments, bug reports, and pull requests are all welcome.\nSubmit them at [the project on GitHub](https://github.com/Obvious/bidar/).\n\nBug reports that include steps-to-reproduce (including code) are the\nbest. Even better, make them in the form of pull requests that update\nthe test suite. Thanks!\n\n\nAuthor\n------\n\n[Dan Bornstein](https://github.com/danfuzz)\n([personal website](http://www.milk.com/)), supported by\n[The Obvious Corporation](http://obvious.com/).\n\n\nLicense\n-------\n\nCopyright 2012 [The Obvious Corporation](http://obvious.com/).\n\nLicensed under the Apache License, Version 2.0.\nSee the top-level file `LICENSE.txt` and\n(http://www.apache.org/licenses/LICENSE-2.0).\n","_id":"bidar@0.4.5","dist":{"shasum":"9b58cb5983e5164ddc3c19207e49c33bbfa61244","tarball":"https://registry.npmjs.org/bidar/-/bidar-0.4.5.tgz","integrity":"sha512-cz8JJf9A8nKo8icPZt1ZYExX32dTtKbywApGpm0ZXU8pct91ntH/W5t6tfIFrE6Bqub2ijO4afDRUDxQ0yIv+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkaggKoJLkMT0/L1mGWtb+cL9d4DmfziwpVPONbaUVHQIhAJbF8nMAFxfYl20q1jC2TIA6X6/JbNVxi1hXTfTt1/e4"}]},"_npmVersion":"1.1.59","_npmUser":{"name":"danfuzz","email":"danfuzz@milk.com"}}},"readme":"Bidar: Binary Data Representation.\n==================================\n\nOh no! Not another BSON?!?!\n\nActually, yes.\n\nThe fact of the proliferation of serialized data formats, and of\nbinary JSON-like formats in particular, is a fiat demonstration\nthat there isn't actually a solid consensus for a single unified and\nuniversal format. As such, I (Danfuzz) think it's a reasonable and\nprudent idea to continue the exploration of the design of these\nthings.\n\nTo be clear, I am not about to claim that the format defined here is\nthe One True Serialized JavaScript-Like Object Format. What I *will*\nclaim, though, is that this one is at a significantly different spot\nin the coordinate-space of possible serialization formats compared to\nthe other ones that showed up on my radar. As such, this one may turn\nout to be useful to folks in cases where the other existing solutions\ndon't seem to be particularly apropos.\n\nHere are the properties being aimed for here:\n\n* reasonably space-efficient\n\n* single-representation (non-equal binary forms implies\n  non-isomorphic / non-equal object forms)\n\n* without gratuitous quoting (e.g., look what happens when you put a\n  JSON-encoded string inside another JSON-encoded string; avoid\n  that!)\n\n* supports a buffer (binary blob) type\n\n* embraces as much of the JavaScript data model as is reasonably\n  possible. For example, this format differentiates `null` and\n  `undefined`. Why? Because you can tell the difference between them\n  in the purely-local case, and you shouldn't necessarily have to\n  change your code if you decide to interpose a serialization (e.g., a\n  machine boundary). I have no love of `undefined` myself and wish I\n  could do away with it, but I'm not about to try to do so wishfully.\n\n* supports \"holes\" where non-pure-data elements may be filled in.\n  More specifically, supports clients that want to be able to set\n  up function/callback-like things for over-the-wire communication.\n\n* supports non-tree graphs of objects. This includes both circular\n  structures and arbitrary acyclic graphs. Non-cycles might be\n  tempting to convert to trees on serialization, but that would have\n  poor interplay with the idea of \"holes\" (above). That is, once you\n  have \"holes,\" object identity starts to matter a lot more.\n\nNon-Goals:\n\n* partially streamable. If you want to incrementally stream a (notionally)\n  single structure, that can be done by defining a layer above this one.\n\n* random-access. If you need an index into a structure, then (as with the\n  previous item) it can be built as an additional layer.\n\nA few references:\n\n* [ASN.1](http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One)\n* [BSON](http://bsonspec.org/)\n* [BJSON](http://bjson.org/)\n* [JSON](http://www.json.org/) *(a classic)*\n* [MessagePack](http://msgpack.org/)\n* [Protocol Buffers](http://code.google.com/p/protobuf/)\n* [Smile](http://wiki.fasterxml.com/SmileFormatSpec)\n* [Thrift](http://thrift.apache.org/)\n* [Universal Binary JSON](http://ubjson.org/)\n\n\nExample\n-------\n\nOne of the major reasons for the development of this module was to\nhave the ability to sensibly manage and manipulate non-data \"holes\" in\nwhat is otherwise a graph of data objects, particularly so that two\nsides of a communication link can succeed in communicating about at\nleast some \"non-data-y things\" despite not being able to actually\nshare an address space.\n\nIn this example, imagine that the two sides (serializing and parsing)\ndo a bit more than the trivial transformations here. Hopefully, this\nis enough to give a flavor of things.\n\n(You can find this example in the `example` directory.)\n\n```javascript\nvar bidar = require(\"../\");\n\nfunction muffins() {\n    return \"muffins\";\n}\n\nfunction are() {\n    return \"are\";\n}\n\nfunction tasty() {\n    return \"tasty\";\n}\n\nfunction holeFilter(hole) {\n    return \"[\" + hole() + \"]\";\n}\n\nfunction holeReverser(hole) {\n    return \"<\" + hole + \">\";\n}\n\nvar message = [ muffins, are, \"very\", tasty ];\n\n// The \"sending\" side.\nvar serialized = bidar.serialize(message, holeFilter);\n\n// The \"receiving\" side.\nvar parsed = bidar.parse(serialized, holeReverser);\nconsole.log(parsed);\n```\n\nHere is a transcript of running it:\n\n```shell\n$ node example/transform.js\n[ '<[muffins]>', '<[are]>', 'very', '<[tasty]>' ]\n```\n\n\nFormat Details\n--------------\n\nThe format will be more fully described once it has baked a bit and\nseems stable. In the mean time, refer to the source. (It's got comments.)\n\n\nUsage\n-----\n\nThis library provides just a few top-level functions.\n\n### serialize(root, [holeFilter])\n\nSerialize an object graph, rooted at the given object, into binary form.\nReturns a buffer of the result. The hole filter, if provided is used as\na transformation on \"holes\" encoutered in the object graph.\n\nA \"hole\" is any object that is not representable as pure data. This\nincludes functions and (non-array, non-buffer) objects whose prototype\nis not the default object prototype.\n\nThe hole filter is called with a single argument -- the original\n\"hole\" object encountered in the graph -- and is expected to return a\nserializable pure data object in response. That object is marked as\na \"hole replacement\" in the serialized output.\n\n### function parse(buf, [holeFiller])\n\nParse a serialized form into an object graph, returning the root of the\ngraph as originally serialized. The `holeFiller`, if specified, is a\nfunction which is consulted to transform \"hole replacements\" (see the\ndescription of `serialize()` for more details) back into directly-usable\nobjects.\n\nThe entire contents of the given buffer are expeceted to be consulted\nin the process of parsing. If there is extra data at the end of the\nbuffer that is not needed, then this function throws an exception.\n\nThis will also throw an exception if there is insufficient data to\ncomplete the operation.\n\nAnd finally, this will throw an exception if given a serialized form\nthat has holes, if `holeFiller` was not specified.\n\n### parsePartial(buf, [startIndex], [holeFiller])\n\nThis is like `parse()`, except that only a portion of the input buffer\nis expected to be used. The `startIndex` (defaults to `0`) is the\nindex into the buffer at which to begin parsing. The optional `holeFilter`\nis the same as with `parse()`.\n\nThe return value of this call is a map of two values: `root` is bound\nto the root of the parsed object graph. `bytesConsumed` is bound to the\nnumber of bytes that were read from the buffer during the parse operation.\n\n### type\n\nThis is a sub-module that contains convenient utilities for type\ndetermination and related assertions. The author does not particularly\nrecommend the use of this module. It may drastically change over time,\nor may simply disappear.\n\n\nBuilding and Installing\n-----------------------\n\n```shell\nnpm install bidar\n```\n\nOr grab the source and\n\n```shell\nnode-waf configure build\n```\n\n\nTesting\n-------\n\n```shell\nnpm test\n```\n\nOr\n\n```shell\nnode ./test/test.js\n```\n\n\nTo Do\n-----\n\nKnown Deficiencies:\n\n* If there are extra properties on Buffer objects, they get silently\n  ignored. E.g.: On serialization, `foo` will get dropped with this\n  definition of `x`: `x = new Buffer(10); x.foo = \"bar\";`\n\n* Regex objects are currently considered holes. They should perhaps be\n  handled specially (as Buffer objects currently are).\n\n* Date objects are currently considered holes. They should perhaps be\n  handled specially (as Buffer objects currently are).\n\n\nContributing\n------------\n\nQuestions, comments, bug reports, and pull requests are all welcome.\nSubmit them at [the project on GitHub](https://github.com/Obvious/bidar/).\n\nBug reports that include steps-to-reproduce (including code) are the\nbest. Even better, make them in the form of pull requests that update\nthe test suite. Thanks!\n\n\nAuthor\n------\n\n[Dan Bornstein](https://github.com/danfuzz)\n([personal website](http://www.milk.com/)), supported by\n[The Obvious Corporation](http://obvious.com/).\n\n\nLicense\n-------\n\nCopyright 2012 [The Obvious Corporation](http://obvious.com/).\n\nLicensed under the Apache License, Version 2.0. \nSee the top-level file `LICENSE.txt` and\n(http://www.apache.org/licenses/LICENSE-2.0).\n","maintainers":[{"name":"danfuzz","email":"danfuzz@milk.com"},{"name":"dpup","email":"dan@pupi.us"},{"name":"nicks","email":"nicholas.j.santos@gmail.com"},{"name":"azulus","email":"jeremy@obvious.com"}],"time":{"modified":"2022-06-13T04:35:37.549Z","created":"2012-03-28T16:50:32.830Z","0.1.0":"2012-03-28T16:50:33.928Z","0.1.1":"2012-03-28T17:03:05.253Z","0.1.2":"2012-03-29T01:09:16.459Z","0.1.3":"2012-03-29T01:16:41.440Z","0.1.5":"2012-03-29T01:24:36.653Z","0.1.6":"2012-03-30T00:18:00.865Z","0.1.7":"2012-04-02T16:50:08.331Z","0.1.8":"2012-04-02T23:50:47.593Z","0.1.9":"2012-04-05T03:41:02.243Z","0.2.0":"2012-04-08T20:15:49.831Z","0.2.1":"2012-04-09T19:29:48.563Z","0.2.2":"2012-04-09T22:01:35.500Z","0.3.0":"2012-04-09T22:57:46.186Z","0.3.1":"2012-04-10T06:41:58.589Z","0.3.2":"2012-05-03T18:30:58.462Z","0.3.3":"2012-05-26T21:29:39.715Z","0.4.0":"2012-06-25T23:57:54.415Z","0.4.1":"2012-06-29T19:40:50.620Z","0.4.2":"2012-07-02T18:08:21.434Z","0.4.3":"2012-07-02T18:34:38.553Z","0.4.4":"2012-07-02T18:42:06.388Z","0.4.5":"2012-10-10T17:31:36.747Z"},"description":"Binary Data Representation (serialization format)","author":{"name":"Dan Bornstein","email":"danfuzz@milk.com","url":"http://www.milk.com/"},"repository":{"type":"git","url":"https://github.com/Obvious/bidar.git"}}