mirror of
https://github.com/denoland/deno.git
synced 2024-12-14 19:37:59 -05:00
ce7dc2be92
Adds support for running npm package lifecycle scripts, opted into via a new `--allow-scripts` flag. With this PR, when running `deno cache` (or `DENO_FUTURE=1 deno install`) you can specify the `--allow-scripts=pkg1,pkg2` flag to run lifecycle scripts attached to the given packages. Note at the moment this only works when `nodeModulesDir` is true (using the local resolver). When a package with un-run lifecycle scripts is encountered, we emit a warning suggesting things may not work and to try running lifecycle scripts. Additionally, if a package script implicitly requires `node-gyp` and it's not found on the system, we emit a warning. Extra things in this PR: - Extracted out bits of `task.rs` into a separate module for reuse - Added a couple fields to `process.config` in order to support `node-gyp` (it relies on a few variables being there) - Drive by fix to downloading new npm packages to test registry --- TODO: - [x] validation for allow-scripts args (make sure it looks like an npm package) - [x] make allow-scripts matching smarter - [ ] figure out what issues this closes --- Review notes: - This adds a bunch of deps to our test registry due to using `node-gyp`, so it's pretty noisy
1 line
No EOL
85 KiB
JSON
1 line
No EOL
85 KiB
JSON
{"_id":"smart-buffer","_rev":"43-fbd74e056a4cd20f7dfc22d3d32058db","name":"smart-buffer","description":"smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.","dist-tags":{"latest":"4.2.0","beta":"4.0.0-beta.1"},"versions":{"1.0.0":{"name":"smart-buffer","version":"1.0.0","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","cursor","simple","packet","network","null terminated","growing"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"~1.7.2"},"_id":"smart-buffer@1.0.0","dist":{"shasum":"228f51a2e6c93e3430510ff4fac15ddbdea6f238","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.0.tgz","integrity":"sha512-nmarwciF3K0yjabhRdKGIxtKoPJsHCeIxUeoqL4l54qt8ncLo8+4WiCVL6c79GkQq+QYiaVNJV2Vn7IIobJu+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT8P7mPJS+uDFDYOV0TvlSOU6+X5GczMZ4C0PPx8/3zwIhAIVibejWJHKzirzicfDacoCl7K0SzU4FZE6tC3hdXGO+"}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"joshglazebrook","email":"josh@joshglazebrook.com"},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"directories":{}},"1.0.1":{"name":"smart-buffer","version":"1.0.1","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","cursor","simple","packet","network","null terminated","growing"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"~1.7.2"},"_id":"smart-buffer@1.0.1","dist":{"shasum":"3addf070aa2664a706021c82d9df98640cc773ef","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.1.tgz","integrity":"sha512-CVR4VDvL9BCs+l+WRfvNf6fu41u71aOc0cv9+mcuL9pduE8CtMmPHGxaze09By9/dG+SdDnciTUA1pNWPv58fQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfPrh6I1K/roiuK5MvDPjYp+8JP6VsfSpN9S8gQ8oDKAiArAe41DlvygUJIIqbo6hD7ORGW7bBPzkeOji7AHVyDbA=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"joshglazebrook","email":"josh@joshglazebrook.com"},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"directories":{}},"1.0.3":{"name":"smart-buffer","version":"1.0.3","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","cursor","simple","packet","network","null terminated","growing"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","mocha":"^2.2.3"},"dependencies":{},"scripts":{"test":"mocha test/test.js"},"gitHead":"d6d2d2c5e0c520dbe43e7fc90ff82adb510e4988","_id":"smart-buffer@1.0.3","_shasum":"0968621e5e8b849da26a3ed707f044ae39edd8f5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"dist":{"shasum":"0968621e5e8b849da26a3ed707f044ae39edd8f5","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.3.tgz","integrity":"sha512-cLRkxgmYv2RpA5wy95hIJUpu0tTZjsnaXhBgirBpUVJ4eiGt+iyIgtedfpoQoD6vwsenSIEE1zdlCdLfBOQ3FQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2BLZJL63biIMKOLdfWjvI8ZpgzjnYxMZsFqYWjjb1DQIhAMcbO5qSvBBi/sCoc6NNz/zLgd1S4Y61VZd3CBod1OIo"}]},"directories":{}},"1.0.4":{"name":"smart-buffer","version":"1.0.4","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","cursor","simple","packet","network","null terminated","growing"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","mocha":"^2.2.3"},"dependencies":{},"scripts":{"test":"mocha test/test.js"},"gitHead":"e774e9de62eb318c34e3e3b8d06bb94066ade265","_id":"smart-buffer@1.0.4","_shasum":"2cc20003c8be2f08082768a84cf2c684cca8a309","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.2.4","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"2cc20003c8be2f08082768a84cf2c684cca8a309","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.4.tgz","integrity":"sha512-pxobuvhcPAfpDsx2rQwztB9dv/90WqAjjwO1tauJ1anAOMnRu2NykTFxzYF6CtdwZFIhDKACGRMQeSGqhujZYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEEiQOnd+Oz3EucMv/YywyXIzq8mwoTw+/BhePqfr9WmAiAfnbh+++Ri74IwOh6sXfIF6sdKr+hmDMhWKhbrZ00WDg=="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.4.tgz_1459998369613_0.2185835971031338"},"directories":{}},"1.0.5":{"name":"smart-buffer","version":"1.0.5","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","cursor","simple","packet","network","null terminated","growing"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","mocha":"^2.2.3"},"dependencies":{},"scripts":{"test":"mocha test/test.js"},"gitHead":"0495c784e6daa6e58004bf1fa8c45d6a8914bce3","_id":"smart-buffer@1.0.5","_shasum":"c6a67e67f99be032f76e2ec0458df8aad545a4a5","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.2.4","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"c6a67e67f99be032f76e2ec0458df8aad545a4a5","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.5.tgz","integrity":"sha512-RbBBzArz6C2qsSC+ACaceKuP+ycp+G1TwgJvnVPfyV9jUSvZ+/JOqMZY/G1xrmU8MC3fcxmsMwYK0KIBuMNqXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCwQiram39waKToRHTrxiPADZ7KtWxCBtNuBdiuAD52wIgZOl5EKoYbTjNWrCb8oOIZ2qnP8WQKGSIGIxCHGiaMeY="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.5.tgz_1460439922008_0.2762503926642239"},"directories":{}},"1.0.6":{"name":"smart-buffer","version":"1.0.6","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha":"^2.2.3","mocha-lcov-reporter":"^1.2.0"},"dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"0df48691dd3a5284f1cf77531564cadf092e4a0d","_id":"smart-buffer@1.0.6","_shasum":"1093f46272c695f3e0d965058f6b37fa052bbce0","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"1093f46272c695f3e0d965058f6b37fa052bbce0","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.6.tgz","integrity":"sha512-dO8aFQw7cs2DgmDU1VexF0wmBT9zEWIn1GJRN+ycKGlw6/soMKXXpGlAhXk1bnLkDXb3QJC++KTh1lnWGow7SQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFCZNhEO+AAe4BepQfE+mK8W7BR8f066/vDM/C/kDQ5jAiBaBFhBWkQ9YgoQeauzwJkpo7/dAjpD6q4uZMdmvWT62w=="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.6.tgz_1462163802490_0.34737510420382023"},"directories":{}},"1.0.7":{"name":"smart-buffer","version":"1.0.7","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha":"^2.2.3","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"b36cd2fd269158b7bfd1de1f8fe47a3abab1ef1e","_id":"smart-buffer@1.0.7","_shasum":"3f8367e9ca6ff180de778f66d8d090c2a17b36da","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"3f8367e9ca6ff180de778f66d8d090c2a17b36da","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.7.tgz","integrity":"sha512-6aOSPm+0LownpKqprkhZqGXBlFAenMBoZEd/mEzCtcvJtbyFOzlNjJ9EnLCx4Fum9MeLu/7St6c7XPOKDmiS7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEeOQowsQmj33TrlNeu/VDn9GtWxsXa9EQY26cMSrvQ1AiEA2oM/qpm0Ghqb3qfNVYrkprP9AbD1NwkeaL2qUpqoio4="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.7.tgz_1462838033795_0.6188211771659553"},"directories":{}},"1.0.8":{"name":"smart-buffer","version":"1.0.8","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha":"^2.2.3","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"d01debf93e7b5ec425a6187bbe4f6ecbcdbb4d75","_id":"smart-buffer@1.0.8","_shasum":"a3bd577eea3b1b4228560b407787161cda6e5469","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"a3bd577eea3b1b4228560b407787161cda6e5469","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.8.tgz","integrity":"sha512-n6ejzvdYmJ7sZRPMVsjY41teQEmrlBAt/2rt1AVZHrjtP6rUUxmTV0NjlhqgA+EGN34B1aLlJvs0hE+S7hMR4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB88vy0AcK4i5ym2gLdoCBFv6m+0TJGSgLKpcUUFLWlWAiBGPwk/AxZl9p1HNF1hsaobBQ5gddKTmrSLrcP+8BMXdg=="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.8.tgz_1462838903702_0.9489340321160853"},"directories":{}},"1.0.9":{"name":"smart-buffer","version":"1.0.9","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha":"^2.2.3","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"5f584d1309bf2b6145b7158e69a4762d584aba3c","_id":"smart-buffer@1.0.9","_shasum":"9ae78719ac753026d098e1b5842f3087880dccf6","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"9ae78719ac753026d098e1b5842f3087880dccf6","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.9.tgz","integrity":"sha512-zW09emGHj3O+VZr6WvJUIbScJbRn5bE+FLowsdswCEpqjxN+NOr22jvGXG1hx/cSdF2DfuvVQf8J1z9xp+Mfgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9QJQVlm+QBIu/jmi+fuiJpz37lj/r9YpYGVZBvDRQhQIgRhyuHnHvSRxeytra51odxSo416wzGdOvWp9sv24g8oQ="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.9.tgz_1462843063889_0.997318351175636"},"directories":{}},"1.0.10":{"name":"smart-buffer","version":"1.0.10","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha":"^2.2.3","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"5518ebecba4d941e0d7d649ea98d5fdf7fc3d7c0","_id":"smart-buffer@1.0.10","_shasum":"822fd2f107f9e7ae6d1a2e35e4327d94dd64768c","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"822fd2f107f9e7ae6d1a2e35e4327d94dd64768c","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.10.tgz","integrity":"sha512-ESAXxLJAK5KB5bqV7zZbkwzZ+lPxrphu009irp3D1+uGBDbEONyUyUWhyOY7Lrw+9JKuWBGdi4+GoY8nx+Jusw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDqdZiDgqJMuBB3C51JPgi3SntxncVECloFxv6wY8eSgIgMiW6YHmAtD4fxvYTWC2hEKea0kYaXjUPMiEaW2mdqHI="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.10.tgz_1463461573356_0.315349911339581"},"directories":{}},"1.0.11":{"name":"smart-buffer","version":"1.0.11","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^2.2.0","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha":"^2.2.3","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"56ded6259a34f213aa1b49338c1057d1ac79836e","_id":"smart-buffer@1.0.11","_shasum":"3050337098a8e4cdf0350fef63dd146049ff940a","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"3050337098a8e4cdf0350fef63dd146049ff940a","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.11.tgz","integrity":"sha512-D6zJTJiHCgEX+caCflF8FK6bbCm7rOrw7T5DExcP/9kyCKWySJM4No7IJhzcF6d4oGys8+MSAFrjfaudrI02eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNOzUpbaIBgk4hgGWybrxeDb4QVaFfrxM2y07CcFZlYQIgNWItj2HdpKsc7Luxman48Xj3DPK39xyAPIX5lEn7Ryc="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.11.tgz_1463716862688_0.09099809848703444"},"directories":{}},"1.0.13":{"name":"smart-buffer","version":"1.0.13","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"0771cafbc53aa585b1b41916950c461f2f473ade","_id":"smart-buffer@1.0.13","_shasum":"61569929a06ec76abe3fdcf5f4e8baf6c2d31721","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"61569929a06ec76abe3fdcf5f4e8baf6c2d31721","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.0.13.tgz","integrity":"sha512-8w0BBzVkgwJtc6gs1qMwV7kKn93i5p5efCsyEoAMwtxAZeeA7sw0MBAUksurOXEjdTlzwePKS/DtzF/2be2ZFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4Xl0DdFWAfC6ToNwwF92WdzYjduxrUIdXMqROC1YJbwIhAL0R1W6j1mxoSabiaI1mmr7jWCTAd4lSYRxo7yXCutPu"}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.0.13.tgz_1484365952713_0.5065922774374485"},"directories":{}},"1.1.0":{"name":"smart-buffer","version":"1.1.0","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"be5da773364a0e1a793c443c39b5c90a32068574","_id":"smart-buffer@1.1.0","_shasum":"cc2990dd14cf428aef09383b466d881ae7d90350","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"cc2990dd14cf428aef09383b466d881ae7d90350","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.1.0.tgz","integrity":"sha512-o0MtpRLLBWq43NYDzgaMPcXyjY/N8DS4Iokllkw7r3Er/KotdMd4Z/tnxi6SAF/UtSyveQr8vUdpzel1YmE3qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwG+RkAwpS4tUhDX5bvoUoLfNBfBseQC7rLx/Eq0D/IAIgTus3UsOTel4qZhGlGbZfpeDgGy0vlCb5Doc2mq1XM/U="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.1.0.tgz_1485792798354_0.6390597193967551"},"directories":{}},"1.1.1":{"name":"smart-buffer","version":"1.1.1","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"b80f4bcb9dca83cb0957d44ae522cfa0cec631e8","_id":"smart-buffer@1.1.1","_shasum":"03939097e71c0bf2a042d514cac5f3d6fd7beb8e","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"03939097e71c0bf2a042d514cac5f3d6fd7beb8e","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.1.1.tgz","integrity":"sha512-oN8mHX/9PZNWxM8Rt1jRh3mfUHhMAp5FWu0Gl78katkPEaTfEim8LUM+3A7OxVRMKbxNARZ7mVhguTESg9RbmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKk6YHk3mZ+YJSEPLTrIS6L85U7V6BAEk9ykXOYaAXrAiEA0qdsm8W69JihOLc+xm8lcoMVd2xmBO0VNmRVyKRzrMk="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.1.1.tgz_1485793738180_0.2533307771664113"},"directories":{}},"1.1.2":{"name":"smart-buffer","version":"1.1.2","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","preinstall":"tsc -p ./"},"gitHead":"1945b634a14d18478fe107937ee2ab79e3d96c48","_id":"smart-buffer@1.1.2","_shasum":"0b621b258682f18090471a0e31d8ca38121e9b34","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"0b621b258682f18090471a0e31d8ca38121e9b34","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.1.2.tgz","integrity":"sha512-Ltjbyz0bxqrb/nqPWOE64M8JlnmD2L6mx70H65ASAekjW2F+FhEWwHWxCXzdyRWu/mY73fi1v8WZQSYxjfO18A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCcV6PTU3LhyKP2mpebXQOOSYFXgY+rOe/7I9xGFylDAiAQeJ4XfkFOfv9m4gGWaV09be/NKup47YOJgCJjhjabng=="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.1.2.tgz_1485797301153_0.028689063154160976"},"directories":{}},"1.1.3":{"name":"smart-buffer","version":"1.1.3","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"tsc -p ./"},"gitHead":"8ff0c801d9532be21602bcbfe3fc5cda3ddbc435","_id":"smart-buffer@1.1.3","_shasum":"8866619e33ee0a76911183c92be1d91b5d90c249","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"8866619e33ee0a76911183c92be1d91b5d90c249","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.1.3.tgz","integrity":"sha512-l+tuxQtKBnH/H4+RonLJPfht/jkG7wJSlkdem6GNO5JI+2lDLP1kx7pRxy+Gbva6sd9hn3sjuU4f1d0nNztgIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPah+EWqxUxGllKcFSY+/vhIUOKa8ckC1+8SS0bOEZWgIgNHUE+ZyuDDqUXDo6W8WVZ+E6iqLLUXqzznOeA82UJpA="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.1.3.tgz_1485797373478_0.4237946067005396"},"directories":{}},"1.1.4":{"name":"smart-buffer","version":"1.1.4","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"tsc -p ./"},"gitHead":"60e1ddab26beacd8c9f800f908fccf65910cbb83","_id":"smart-buffer@1.1.4","_shasum":"802855827706c3b38a0716042763d8e3cb16793e","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"802855827706c3b38a0716042763d8e3cb16793e","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.1.4.tgz","integrity":"sha512-SUpeMe4PfHNNiZcmcmQDrMPH9VC5hvdMstWrH15/pX5VV9Jtfl+1YgpVt78DkYnT5Kynlw+xLsbTBTq9LxqXnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHlE/g6wCDvPITOM+r7jtbbZaHlh7QMbXxIRH0bPiM7GAiEA2UGLEq58Yj/uf6eQS8i3l0knc5Xe9hoL54j0H7STDDU="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-1.1.4.tgz_1485797513862_0.26567360013723373"},"directories":{}},"2.0.0":{"name":"smart-buffer","version":"2.0.0","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"4951108c756a0cb78356da94cd0692444a957d56","_id":"smart-buffer@2.0.0","_shasum":"007d9666a36650b7aadd6e216caed52d0e1f9fc1","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"007d9666a36650b7aadd6e216caed52d0e1f9fc1","tarball":"http://localhost:4260/smart-buffer/smart-buffer-2.0.0.tgz","integrity":"sha512-NSeYifsp9SpVKnqgBxhbh4nicwtlKq4YLUnJgO4h5Tm3jOCUacg2s4ZeD0TjV34NovPrZsy9625T4uU5OCGG6A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+eml8idEB0KNEgIu7sZ2Rd6fWlDaza8jQMufbVBF+hAIhAJAYioZ5nUTHpmFlPyOaHWI33SCr8K39eN9cH/XEcgSV"}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-2.0.0.tgz_1485798549878_0.7183809035923332"},"directories":{}},"1.1.15":{"name":"smart-buffer","version":"1.1.15","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"lib/smart-buffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","serialize","packet","network","cursor","simple"],"engines":{"node":">= 0.10.15","npm":">= 1.3.5"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{},"scripts":{"test":"mocha test/smart-buffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test"},"gitHead":"071f618b339a341c2617ac41ea2a77132fd307e8","_id":"smart-buffer@1.1.15","_shasum":"7f114b5b65fab3e2a35aa775bb12f0d1c649bf16","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"7f114b5b65fab3e2a35aa775bb12f0d1c649bf16","tarball":"http://localhost:4260/smart-buffer/smart-buffer-1.1.15.tgz","integrity":"sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCa1DeggF9krcOaKty924mEiwOYGUMxc0w4ZSW5KiUzEgIhAP53n9fFFLk8FSyUcQ+dsp5cLuR0deO/nlz5I61nKJhH"}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-1.1.15.tgz_1485802535898_0.37321774289011955"},"directories":{}},"2.0.1":{"name":"smart-buffer","version":"2.0.1","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"9564e2cc91d163e629c9d057801b1928f6664029","_id":"smart-buffer@2.0.1","_shasum":"6cd930fdea065ffa53651abb65616e388f34807d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"6cd930fdea065ffa53651abb65616e388f34807d","tarball":"http://localhost:4260/smart-buffer/smart-buffer-2.0.1.tgz","integrity":"sha512-tEqtGCbgxxyVdRnTaqqVwGx0SQYmnHfhEaqLdLipL9AwLsTWFa4B/dpMwv8MEVJ+Ek0VhbZUFD+ytyvYK2i4bA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCyR1NtYilxQU5gtp5o/j5kETUpjDe5hjVgyltQvRLfwIhAMMVSfXAr+8XxpHXodbysXc8qAEfxOPzJpThuXhE6rAr"}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-2.0.1.tgz_1485843211360_0.25647249608300626"},"directories":{}},"2.0.2":{"name":"smart-buffer","version":"2.0.2","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"e5a5a176d0fda520af446f83c4344b45beafa44a","_id":"smart-buffer@2.0.2","_shasum":"f73203ae8f2bc90d2e4ee1b5b3284f0a6c0f922f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"f73203ae8f2bc90d2e4ee1b5b3284f0a6c0f922f","tarball":"http://localhost:4260/smart-buffer/smart-buffer-2.0.2.tgz","integrity":"sha512-2yxBEBi1fdIGM3KBYYo5DSjLkLRGD2ivqGjXgURwPQArz8URzThYr+XvplNimOjbPDq36HIt02U/hDPzVfe+qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBxIMJmOGu6aUpjRAwcPKl6RbG2moMuF09s2jcDD3moRAiEArQY7rePYM62fyABv85WFgGGeNF8slDPA0Nuzap5E0bE="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-2.0.2.tgz_1485843443037_0.85665237554349"},"directories":{}},"2.0.3":{"name":"smart-buffer","version":"2.0.3","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"431564220aa38987765f15d18f5ecd340b1535ed","_id":"smart-buffer@2.0.3","_shasum":"1397197e6de47891f53464c3807b5544ed547425","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"1397197e6de47891f53464c3807b5544ed547425","tarball":"http://localhost:4260/smart-buffer/smart-buffer-2.0.3.tgz","integrity":"sha512-Vn1TjAJOrmSgik5ArGRhHAsMQFd0eYiNbBrLRNMqetYpCA8wls6qAVqg9MkprCOTMbPr+KM1kPd8M+2YjsYxLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmqmzDX841VWd2JctyAQ2QOI5q34sNL+dJHbI+czkEGQIhAO88ipJnCUKON2BihO4ArJLkGwYpBEhwSJRo8h24bzVJ"}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-2.0.3.tgz_1485844580688_0.7064719193149358"},"directories":{}},"3.0.0":{"name":"smart-buffer","version":"3.0.0","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"30f003031cc0b0e872707f37d7418363748d3cf7","_id":"smart-buffer@3.0.0","_shasum":"dcdb3b3e9ca5413e0c108fc48403118f5380fae6","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"dcdb3b3e9ca5413e0c108fc48403118f5380fae6","tarball":"http://localhost:4260/smart-buffer/smart-buffer-3.0.0.tgz","integrity":"sha512-M87GR2wgybUMfG8zUGe/a88vg/ptzVKQOTpy1kOsgqNN+hOYa180ZKTwZeE6kINgHuLMCTwbqtFHGNBbiff7qA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPxrZD9ht1SifxjBZtd+HtIUMTUO+4Abt1F8ozDFf9BAIgbh19u6VjVYaNAio573zRxSbihGUBXH4Z3KPf2JvUiNs="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/smart-buffer-3.0.0.tgz_1486950587954_0.4166791832540184"},"directories":{}},"3.0.1":{"name":"smart-buffer","version":"3.0.1","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"ab8155677100d6d504a8be873da7a8bd60754cb0","_id":"smart-buffer@3.0.1","_shasum":"cb64f3b1d286c6c08216ecada87f8dc985eed726","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"cb64f3b1d286c6c08216ecada87f8dc985eed726","tarball":"http://localhost:4260/smart-buffer/smart-buffer-3.0.1.tgz","integrity":"sha512-qPQpwwUK4sOkuD3Jy4dAYAO9hhcO2csy5aRKVi7BcQziBJhSz5iHAewfjJF97OERqaF2Cq19pz5corWys4pY/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDazTfz+sBzhFj0DDW4F52gg1vrOBdeucCENgUhDalI6AiAVTBHGqwHeQ6NtyMnPTdiT57y5bY7Lt6aQvW2t91HzAA=="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-3.0.1.tgz_1487211065436_0.9129731580615044"},"directories":{}},"3.0.2":{"name":"smart-buffer","version":"3.0.2","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"8d0a96632c1f43c7b561f9af35ff4bbde52d72e5","_id":"smart-buffer@3.0.2","_shasum":"e740040df4782c679d6163261f4dbb8d2f9fece5","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"e740040df4782c679d6163261f4dbb8d2f9fece5","tarball":"http://localhost:4260/smart-buffer/smart-buffer-3.0.2.tgz","integrity":"sha512-ECxPeAIC4waJ8lyuOYdSagKObr1NcBsBHusGL5oOjngqxowJt7jCe3TfR/rw4l76BILQWa9QGmcij3dgx8nt8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHQzjgSmX/8zbbYEPLFsx4k8NPnOcGVTU9EvHD7U1euSAiEAsNINMRyNU6gKGM5wYEmZ366U+qbXn/zC4reWAItNczA="}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-3.0.2.tgz_1487371615385_0.4311855831183493"},"directories":{}},"3.0.3":{"name":"smart-buffer","version":"3.0.3","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"chai":"^3.5.0","coveralls":"^2.11.15","istanbul":"^0.4.3","mocha":"^3.2.0","mocha-lcov-reporter":"^1.2.0"},"typings":"typings/index","dependencies":{"@types/node":"^7.0.4"},"scripts":{"test":"mocha test/smartbuffer.test.js","coverage":"istanbul cover node_modules/mocha/bin/_mocha recursive test","fullcoverage":"istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test","prepublish":"npm install -g typescript && tsc -p ./"},"gitHead":"015109eff546a8c2046daf7854f1896fbe2a3737","_id":"smart-buffer@3.0.3","_shasum":"76d4abf863d6aa91d5c9fd694cd51b242782e59f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"76d4abf863d6aa91d5c9fd694cd51b242782e59f","tarball":"http://localhost:4260/smart-buffer/smart-buffer-3.0.3.tgz","integrity":"sha512-s5+gEstGAW315m+SbWCVjhf0+YZxqaeP6DieqzoHTHKghjyn0PhNhmR2qsqNNBaj8bBrwjmuxhXVKrGZqGphXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCITmG1AhyHatw3LPVjMAhIuTByZaKEWZbZgPPD8CEDFQIhANw49Kbbp8XGnduePRTrXSEi0vfSSS26tRyjF7lFQqnZ"}]},"maintainers":[{"name":"joshglazebrook","email":"josh@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/smart-buffer-3.0.3.tgz_1487536429800_0.4163937314879149"},"directories":{}},"4.0.0-beta.1":{"name":"smart-buffer","version":"4.0.0-beta.1","description":"A smarter Buffer that keeps track of its own read and write positions while growing endlessly.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"@types/chai":"^4.0.1","@types/mocha":"^2.2.41","@types/node":"^8.0.2","chai":"^4.0.2","coveralls":"^2.13.1","istanbul":"^0.4.5","mocha":"^3.4.2","mocha-lcov-reporter":"^1.3.0","nyc":"^11.0.2","source-map-support":"^0.4.15","ts-node":"^3.1.0","tslint":"^5.4.3","typescript":"^2.3.4"},"typings":"typings","dependencies":{},"scripts":{"prepublish":"npm install -g typescript && tsc -p ./","test":"NODE_ENV=test mocha --recursive --compilers ts:ts-node/register","cover":"NODE_ENV=test nyc npm test","coveralls":"NODE_ENV=test nyc report --reporter=text-lcov | coveralls","lint":"tslint --type-check --project tsconfig.json 'src/**/*.ts'","build":"tsc -p ./"},"nyc":{"extension":[".ts",".tsx"],"include":["src/*.ts","src/**/*.ts"],"exclude":["**.*.d.ts","node_modules","typings"],"require":["ts-node/register"],"reporter":["json","html"],"all":true},"gitHead":"32ad6ccb358c12cfa01be8a15a9f83558665f32f","_id":"smart-buffer@4.0.0-beta.1","_npmVersion":"5.0.3","_nodeVersion":"8.1.0","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"integrity":"sha512-iEWClUeaAYay6EySqyjSQm4vx/lLyLoPHpziDAs0owjF3RSfD499X+a/FyRu6CtSHD8gUwWjYeVWwLzZz5jIfw==","shasum":"fb0db2fc66245f2d9128ecb24f730ee50da250bc","tarball":"http://localhost:4260/smart-buffer/smart-buffer-4.0.0-beta.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz6JOIuVRgqq1ePFtYA94Ia0nn1TgCuTL19ov4w8zu7wIgfFxaho+WugY2uZCUaJ6fBd6fERB2htSuOufzzXql/6o="}]},"maintainers":[{"email":"npm@joshglazebrook.com","name":"joshglazebrook"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-buffer-4.0.0-beta.1.tgz_1498343905433_0.3077987676952034"},"directories":{}},"4.0.0":{"name":"smart-buffer","version":"4.0.0","description":"smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"@types/chai":"4.0.4","@types/mocha":"2.2.43","@types/node":"8.0.46","chai":"4.1.2","coveralls":"3.0.0","istanbul":"^0.4.5","mocha":"4.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"11.2.1","source-map-support":"0.5.0","ts-node":"3.3.0","tslint":"5.8.0","typescript":"2.5.3"},"typings":"typings","dependencies":{},"scripts":{"prepublish":"npm install -g typescript && npm run build","test":"NODE_ENV=test mocha --recursive --compilers ts:ts-node/register test/**/*.ts","coverage":"NODE_ENV=test nyc npm test","coveralls":"NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls","lint":"tslint --type-check --project tsconfig.json 'src/**/*.ts'","build":"tsc -p ./"},"nyc":{"extension":[".ts",".tsx"],"include":["src/*.ts","src/**/*.ts"],"exclude":["**.*.d.ts","node_modules","typings"],"require":["ts-node/register"],"reporter":["json","html"],"all":true},"gitHead":"427153ff786885e6da92a81a89b980f45a9fe615","_id":"smart-buffer@4.0.0","_shasum":"8d6bbf1148d26ca36663bf219098a7851fc3949d","_from":".","_npmVersion":"4.6.1","_nodeVersion":"8.2.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"shasum":"8d6bbf1148d26ca36663bf219098a7851fc3949d","tarball":"http://localhost:4260/smart-buffer/smart-buffer-4.0.0.tgz","integrity":"sha512-/lfTm1H1sLRD1L89rA60Pb3l8ZvlBsRUrnKtGh51/NPoH81X6VQCH73phj1tvOyuyyibY4FitmUUWzkvscTPzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDY6VUi1wZmduAlcLl8nk7rR2LIOzU6is+PU3HsHZqCwQIhAPch4kMnVtZlK6N6dax+26BESj+MFNbmc0ScMgVpv9nc"}]},"maintainers":[{"email":"npm@joshglazebrook.com","name":"joshglazebrook"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-buffer-4.0.0.tgz_1508568589662_0.37680142000317574"},"directories":{}},"4.0.1":{"name":"smart-buffer","version":"4.0.1","description":"smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"@types/chai":"4.0.4","@types/mocha":"^2.2.44","@types/node":"^8.0.51","chai":"4.1.2","coveralls":"3.0.0","istanbul":"^0.4.5","mocha":"4.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^11.3.0","source-map-support":"0.5.0","ts-node":"3.3.0","tslint":"5.8.0","typescript":"2.6.1"},"typings":"typings/smartbuffer.d.ts","dependencies":{},"scripts":{"prepublish":"npm install -g typescript && npm run build","test":"NODE_ENV=test mocha --recursive --compilers ts:ts-node/register test/**/*.ts","coverage":"NODE_ENV=test nyc npm test","coveralls":"NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls","lint":"tslint --type-check --project tsconfig.json 'src/**/*.ts'","build":"tsc -p ./"},"nyc":{"extension":[".ts",".tsx"],"include":["src/*.ts","src/**/*.ts"],"exclude":["**.*.d.ts","node_modules","typings"],"require":["ts-node/register"],"reporter":["json","html"],"all":true},"gitHead":"8840c4501f8b8508cc1866e30a48ab6c2f66bc3a","_id":"smart-buffer@4.0.1","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"integrity":"sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==","shasum":"07ea1ca8d4db24eb4cac86537d7d18995221ace3","tarball":"http://localhost:4260/smart-buffer/smart-buffer-4.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC28jIeu8rqAp4OeKDQNBQ7cO8Tcu2jGCmKOsRK5wuXNwIhAPUtgGO7QHENG2qUl9Om2gb1msCrC/LI1Vxny4JyqtSS"}]},"maintainers":[{"email":"npm@joshglazebrook.com","name":"joshglazebrook"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-buffer-4.0.1.tgz_1510465362320_0.2944438715931028"},"directories":{}},"4.0.2":{"name":"smart-buffer","version":"4.0.2","description":"smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 4.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"@types/chai":"4.0.4","@types/mocha":"^2.2.44","@types/node":"^8.0.51","chai":"4.1.2","coveralls":"3.0.0","istanbul":"^0.4.5","mocha":"4.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^11.3.0","source-map-support":"0.5.0","ts-node":"3.3.0","tslint":"5.8.0","typescript":"2.6.1"},"typings":"typings/smartbuffer.d.ts","dependencies":{},"scripts":{"prepublish":"npm install -g typescript && npm run build","test":"NODE_ENV=test mocha --recursive --compilers ts:ts-node/register test/**/*.ts","coverage":"NODE_ENV=test nyc npm test","coveralls":"NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls","lint":"tslint --type-check --project tsconfig.json 'src/**/*.ts'","build":"tsc -p ./"},"nyc":{"extension":[".ts",".tsx"],"include":["src/*.ts","src/**/*.ts"],"exclude":["**.*.d.ts","node_modules","typings"],"require":["ts-node/register"],"reporter":["json","html"],"all":true},"gitHead":"d35c0ce6e253e7c963553a4092cb73b711caafaa","_id":"smart-buffer@4.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"dist":{"integrity":"sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==","shasum":"5207858c3815cc69110703c6b94e46c15634395d","tarball":"http://localhost:4260/smart-buffer/smart-buffer-4.0.2.tgz","fileCount":15,"unpackedSize":189387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSUyTCRA9TVsSAnZWagAA1UMP/0Ik/B+/LocCX+BU9kvy\ntCHylgwjEpSXYwITl+SQYxFGEJgP22LreKQio59lXvLEvGFo3viSn4qBCDgK\nwIfWXcZEFyQUkNQA87MC3Xjmu0Jt3WUVYvF8/hOG6VswLoIVfQMpU7TtIv9Y\naUUuBlhM7Wm4e2z99Np1+aFKU8Jj1yvoR+re4VxfN7m/pJGJ2mZpn5GPaQFT\nz0VUkHNtFxqZfDucmJ0Y/4uqm6U04kR4oEvRtU0Opc9Wa1KJBu0eO4jBuDbx\nrFvbQ/GzeAsonwX89b+oVdJ6S3PbcWVEc4KCK9uNRa9tMMdCL6weiDLLkM5y\ncRu6XEq81hAgT8wMfdwMdecse4nioS56zHHDwgnVSYy+eLYy+4LvZVrANefK\n6IJuwKsBDfMYZtSmQePlbwWm4f8LDuupIQ5N2HtcnuYR+OVMZBMqGVTO8R16\n678cYtuK3i2ZDcvD1nhflPW3oR4ddyfQ//FDbEyGO8MWy4ZmatthlyMvtKqC\nQMp22+JzKYBL7LH5wlvr/kNSHg9fPmH1fcH77AP5H3J/Bga2tHEAdrx5mUP+\nGiJWrphf2cLb6oDMsN8CylHoHdhTNHlvYdlFrT1gb0Lg5p6PEdb0HZVzN9dW\nmHqvM6myx49FWXX6tilAZONfYzslKZ+KtDtg45bGCMsNSYUZUJ4/FMaNjIDi\n2OJQ\r\n=bJqC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5nKzWLsyDzchzix9//9/6wpKn0XYowt99ePT/bPWc7gIhAORK3gPdr/dRbnC0qB2+svGivQuozSZy+7ryYAH3hFQD"}]},"maintainers":[{"email":"npm@joshglazebrook.com","name":"joshglazebrook"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-buffer_4.0.2_1548307602654_0.5019561596950135"},"_hasShrinkwrap":false},"4.1.0":{"name":"smart-buffer","version":"4.1.0","description":"smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.","main":"build/smartbuffer.js","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 6.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"@types/chai":"4.1.7","@types/mocha":"5.2.7","@types/node":"^12.0.0","chai":"4.2.0","coveralls":"3.0.5","istanbul":"^0.4.5","mocha":"6.2.0","mocha-lcov-reporter":"^1.3.0","nyc":"14.1.1","source-map-support":"0.5.12","ts-node":"8.3.0","tslint":"5.18.0","typescript":"^3.2.1"},"typings":"typings/smartbuffer.d.ts","dependencies":{},"scripts":{"prepublish":"npm install -g typescript && npm run build","test":"NODE_ENV=test mocha --recursive --require ts-node/register test/**/*.ts","coverage":"NODE_ENV=test nyc npm test","coveralls":"NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls","lint":"tslint --type-check --project tsconfig.json 'src/**/*.ts'","build":"tsc -p ./"},"nyc":{"extension":[".ts",".tsx"],"include":["src/*.ts","src/**/*.ts"],"exclude":["**.*.d.ts","node_modules","typings"],"require":["ts-node/register"],"reporter":["json","html"],"all":true},"gitHead":"32966f3c17cd62d5465cb5415de406636fd564b4","_id":"smart-buffer@4.1.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==","shasum":"91605c25d91652f4661ea69ccf45f1b331ca21ba","tarball":"http://localhost:4260/smart-buffer/smart-buffer-4.1.0.tgz","fileCount":14,"unpackedSize":137947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdN+nQCRA9TVsSAnZWagAAhqgP/Arv8ooRwPDrt5lFmSJR\nzFaHVqLoC1ZvvnPOJAPXUQn0iKtoUTsdJyG1pGoKjL3gI/ljZYBR0PrryPst\n/ySQe5ShrOQccSvUttpCrJVCWqUAQBwRn/edjn6j+2FRosvzSk6+Py7SmG9L\nSZ+1jl58JupBrMcavCvjcT5VvNP/VqOf5LcrDhC6yhL5prX0iPAWCNIfY2ti\npp5nkpsiQEU6hocLHdjetVyv0Gwl60uueMPY2roB2ACU1Bjh8Jo6Tp4MHJkT\nA3RgsPwqr1kMbHwDrZ4EliHsTENrq63i+xQQUS1FBzKHFiMHsgTlHLhNh38I\n6PME1fHOj50WxMs4W06hauinD1dgEoyDPsmSSyEoph8dalYB3iz17DX/TzBc\nUsxAM5HEqFRNBxVc9+qRxpdUE7PPIS2Exz4NYglgs3mvysa6tojKGmYOxpb5\nbbXfX+csQlnzlY/1BJCxLTiWW6vdgUiRYaJa4sE/a55aNUU9yKnnrCOx/Pdf\nInrcnB0ck4l6Gv2mu7/I+BSoM0S2HUBRcafcMBNVeuu/5jc8aEZjGGkdtCie\nHkkbv9MOtGmN5s/3DNwHa9jJ9tMR7d1lXwu43NdqVMwqvunyjVRleqX2O+rL\n1bojTIl2a7R8nqVPe5fbrWlcW+wBN6OQYHR7AxG3lcm3XUxxtnhrsZM9MfKt\nbu3x\r\n=kZN3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICk/dbidSqtb+SR7IZSoh+6sGLmu9/+g+2J9Eyx9aE8LAiABpT+1/sFgLPSlR+F3Y0/y8R1cpIgL8/+1xpdroMcEug=="}]},"maintainers":[{"email":"npm@joshglazebrook.com","name":"joshglazebrook"}],"_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-buffer_4.1.0_1563945423406_0.37403237444041904"},"_hasShrinkwrap":false},"4.2.0":{"name":"smart-buffer","version":"4.2.0","description":"smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.","main":"build/smartbuffer.js","contributors":[{"name":"syvita"}],"homepage":"https://github.com/JoshGlazebrook/smart-buffer/","repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"engines":{"node":">= 6.0.0","npm":">= 3.0.0"},"author":{"name":"Josh Glazebrook"},"license":"MIT","devDependencies":{"@types/chai":"4.1.7","@types/mocha":"5.2.7","@types/node":"^12.0.0","chai":"4.2.0","coveralls":"3.0.5","istanbul":"^0.4.5","mocha":"6.2.0","mocha-lcov-reporter":"^1.3.0","nyc":"14.1.1","source-map-support":"0.5.12","ts-node":"8.3.0","tslint":"5.18.0","typescript":"^3.2.1"},"typings":"typings/smartbuffer.d.ts","dependencies":{},"scripts":{"prepublish":"npm install -g typescript && npm run build","test":"NODE_ENV=test mocha --recursive --require ts-node/register test/**/*.ts","coverage":"NODE_ENV=test nyc npm test","coveralls":"NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls","lint":"tslint --type-check --project tsconfig.json 'src/**/*.ts'","build":"tsc -p ./"},"nyc":{"extension":[".ts",".tsx"],"include":["src/*.ts","src/**/*.ts"],"exclude":["**.*.d.ts","node_modules","typings"],"require":["ts-node/register"],"reporter":["json","html"],"all":true},"gitHead":"2ce01c95312343325997b19e52daa166dc227930","_id":"smart-buffer@4.2.0","_nodeVersion":"12.15.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==","shasum":"6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae","tarball":"http://localhost:4260/smart-buffer/smart-buffer-4.2.0.tgz","fileCount":14,"unpackedSize":138027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDiXOCRA9TVsSAnZWagAAO+QP/2F5Wr4uJuTKXv22jQzC\nGrjpvP2kqaVTOWMd9kOo4OhRBz0LKaNLhHnLM+ckGod0bb8ZwbjgV/9KRNCd\ngRwgA7vqgt2a9PMyviSAf/54BmpShO5enI4e0fWnr9aRaYxjIjno7h7YTmLD\nd6X6Qovlz3KO9yEuPDZtzWpUDVpdUm+ut8ekjlWfgcXsnCb8Q5BhYCp35+X6\n7f9C74u0fxoP97iFQzZ9BNdSeSqv3VGxSRnS4lITSwTw0k+DAbSsHjFUwXrM\nfsSo3JaMI1iuX9HpEufszMnLy8MjPUmCY1vLZc+ELrU+K8JvD2Msj/I2MJPy\nHsxLXiKwGFQGV16Lj0je2PeS3U89bCJxq1oU+Q8duNzYcDCRmQTJQrfBsxyJ\nWV2DH2JyeJd0rLmHf1vSCx84t5kQeUJKZR9B7pDAwVwvjXQ/dLB7TJNqD2kk\niC8Tk/LRXJgYQPSPKW713pw8YClI0xFgkciub0CJAUDFIpfHaG3/GuWkze75\n+7DbuuW80XvfybmKOwLhqmwpK3UIk1BZ0ro9lusgr5X4P9pB7/DV2NUdb3nM\nhXLP+w1mcY4/RLh3vB8VnrgnUOikrG+v1WRa5e9MKVP64Ykk0bray01nQebA\nX5i823xrgi/LA7Bpr8yTt6J9MA176Wqt69kaxnsxmbEd6Iie6e4C9gXEVxSH\nAUG5\r\n=r499\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2wZLWHAReJz5sxVMo9/DxoDHiB46pLxSOQcVFoFbZzQIgKVNzYK1Jg9+fPpdcQ86zDDaKl6OxyiFv/D3TeWcRskM="}]},"_npmUser":{"name":"joshglazebrook","email":"npm@joshglazebrook.com"},"directories":{},"maintainers":[{"name":"joshglazebrook","email":"npm@joshglazebrook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-buffer_4.2.0_1628317134249_0.5401722478750417"},"_hasShrinkwrap":false}},"readme":"smart-buffer [![Build Status](https://travis-ci.org/JoshGlazebrook/smart-buffer.svg?branch=master)](https://travis-ci.org/JoshGlazebrook/smart-buffer) [![Coverage Status](https://coveralls.io/repos/github/JoshGlazebrook/smart-buffer/badge.svg?branch=master)](https://coveralls.io/github/JoshGlazebrook/smart-buffer?branch=master)\n=============\n\nsmart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.\n\n![stats](https://nodei.co/npm/smart-buffer.png?downloads=true&downloadRank=true&stars=true \"stats\")\n\n**Key Features**:\n* Proxies all of the Buffer write and read functions\n* Keeps track of read and write offsets automatically\n* Grows the internal Buffer as needed\n* Useful string operations. (Null terminating strings)\n* Allows for inserting values at specific points in the Buffer\n* Built in TypeScript\n* Type Definitions Provided\n* Browser Support (using Webpack/Browserify)\n* Full test coverage\n\n**Requirements**:\n* Node v4.0+ is supported at this time. (Versions prior to 2.0 will work on node 0.10)\n\n\n\n## Breaking Changes in v4.0\n\n* Old constructor patterns have been completely removed. It's now required to use the SmartBuffer.fromXXX() factory constructors.\n* rewind(), skip(), moveTo() have been removed. (see [offsets](#offsets))\n* Internal private properties are now prefixed with underscores (_)\n* **All** writeXXX() methods that are given an offset will now **overwrite data** instead of insert. (see [write vs insert](#write-vs-insert))\n* insertXXX() methods have been added for when you want to insert data at a specific offset (this replaces the old behavior of writeXXX() when an offset was provided)\n\n\n## Looking for v3 docs?\n\nLegacy documentation for version 3 and prior can be found [here](https://github.com/JoshGlazebrook/smart-buffer/blob/master/docs/README_v3.md).\n\n## Installing:\n\n`yarn add smart-buffer`\n\nor\n\n`npm install smart-buffer`\n\nNote: The published NPM package includes the built javascript library.\nIf you cloned this repo and wish to build the library manually use:\n\n`npm run build`\n\n## Using smart-buffer\n\n```javascript\n// Javascript\nconst SmartBuffer = require('smart-buffer').SmartBuffer;\n\n// Typescript\nimport { SmartBuffer, SmartBufferOptions} from 'smart-buffer';\n```\n\n### Simple Example\n\nBuilding a packet that uses the following protocol specification:\n\n`[PacketType:2][PacketLength:2][Data:XX]`\n\nTo build this packet using the vanilla Buffer class, you would have to count up the length of the data payload beforehand. You would also need to keep track of the current \"cursor\" position in your Buffer so you write everything in the right places. With smart-buffer you don't have to do either of those things.\n\n```javascript\nfunction createLoginPacket(username, password, age, country) {\n const packet = new SmartBuffer();\n packet.writeUInt16LE(0x0060); // Some packet type\n packet.writeStringNT(username);\n packet.writeStringNT(password);\n packet.writeUInt8(age);\n packet.writeStringNT(country);\n packet.insertUInt16LE(packet.length - 2, 2);\n\n return packet.toBuffer();\n}\n```\nWith the above function, you now can do this:\n```javascript\nconst login = createLoginPacket(\"Josh\", \"secret123\", 22, \"United States\");\n\n// <Buffer 60 00 1e 00 4a 6f 73 68 00 73 65 63 72 65 74 31 32 33 00 16 55 6e 69 74 65 64 20 53 74 61 74 65 73 00>\n```\nNotice that the `[PacketLength:2]` value (1e 00) was inserted at position 2.\n\nReading back the packet we created above is just as easy:\n```javascript\n\nconst reader = SmartBuffer.fromBuffer(login);\n\nconst logininfo = {\n packetType: reader.readUInt16LE(),\n packetLength: reader.readUInt16LE(),\n username: reader.readStringNT(),\n password: reader.readStringNT(),\n age: reader.readUInt8(),\n country: reader.readStringNT()\n};\n\n/*\n{\n packetType: 96, (0x0060)\n packetLength: 30,\n username: 'Josh',\n password: 'secret123',\n age: 22,\n country: 'United States'\n}\n*/\n```\n\n\n## Write vs Insert\nIn prior versions of SmartBuffer, .writeXXX(value, offset) calls would insert data when an offset was provided. In version 4, this will now overwrite the data at the offset position. To insert data there are now corresponding .insertXXX(value, offset) methods.\n\n**SmartBuffer v3**:\n```javascript\nconst buff = SmartBuffer.fromBuffer(new Buffer([1,2,3,4,5,6]));\nbuff.writeInt8(7, 2);\nconsole.log(buff.toBuffer())\n\n// <Buffer 01 02 07 03 04 05 06>\n```\n\n**SmartBuffer v4**:\n```javascript\nconst buff = SmartBuffer.fromBuffer(new Buffer([1,2,3,4,5,6]));\nbuff.writeInt8(7, 2);\nconsole.log(buff.toBuffer());\n\n// <Buffer 01 02 07 04 05 06>\n```\n\nTo insert you instead should use:\n```javascript\nconst buff = SmartBuffer.fromBuffer(new Buffer([1,2,3,4,5,6]));\nbuff.insertInt8(7, 2);\nconsole.log(buff.toBuffer());\n\n// <Buffer 01 02 07 03 04 05 06>\n```\n\n**Note:** Insert/Writing to a position beyond the currently tracked internal Buffer will zero pad to your offset.\n\n## Constructing a smart-buffer\n\nThere are a few different ways to construct a SmartBuffer instance.\n\n```javascript\n// Creating SmartBuffer from existing Buffer\nconst buff = SmartBuffer.fromBuffer(buffer); // Creates instance from buffer. (Uses default utf8 encoding)\nconst buff = SmartBuffer.fromBuffer(buffer, 'ascii'); // Creates instance from buffer with ascii encoding for strings.\n\n// Creating SmartBuffer with specified internal Buffer size. (Note: this is not a hard cap, the internal buffer will grow as needed).\nconst buff = SmartBuffer.fromSize(1024); // Creates instance with internal Buffer size of 1024.\nconst buff = SmartBuffer.fromSize(1024, 'utf8'); // Creates instance with internal Buffer size of 1024, and utf8 encoding for strings.\n\n// Creating SmartBuffer with options object. This one specifies size and encoding.\nconst buff = SmartBuffer.fromOptions({\n size: 1024,\n encoding: 'ascii'\n});\n\n// Creating SmartBuffer with options object. This one specified an existing Buffer.\nconst buff = SmartBuffer.fromOptions({\n buff: buffer\n});\n\n// Creating SmartBuffer from a string.\nconst buff = SmartBuffer.fromBuffer(Buffer.from('some string', 'utf8'));\n\n// Just want a regular SmartBuffer with all default options?\nconst buff = new SmartBuffer();\n```\n\n# Api Reference:\n\n**Note:** SmartBuffer is fully documented with Typescript definitions as well as jsdocs so your favorite editor/IDE will have intellisense.\n\n**Table of Contents**\n\n1. [Constructing](#constructing)\n2. **Numbers**\n 1. [Integers](#integers)\n 2. [Floating Points](#floating-point-numbers)\n3. **Strings**\n 1. [Strings](#strings)\n 2. [Null Terminated Strings](#null-terminated-strings)\n4. [Buffers](#buffers)\n5. [Offsets](#offsets)\n6. [Other](#other)\n\n\n## Constructing\n\n### constructor()\n### constructor([options])\n- ```options``` *{SmartBufferOptions}* An optional options object to construct a SmartBuffer with.\n\nExamples:\n```javascript\nconst buff = new SmartBuffer();\nconst buff = new SmartBuffer({\n size: 1024,\n encoding: 'ascii'\n});\n```\n\n### Class Method: fromBuffer(buffer[, encoding])\n- ```buffer``` *{Buffer}* The Buffer instance to wrap.\n- ```encoding``` *{string}* The string encoding to use. ```Default: 'utf8'```\n\nExamples:\n```javascript\nconst someBuffer = Buffer.from('some string');\nconst buff = SmartBuffer.fromBuffer(someBuffer); // Defaults to utf8\nconst buff = SmartBuffer.fromBuffer(someBuffer, 'ascii');\n```\n\n### Class Method: fromSize(size[, encoding])\n- ```size``` *{number}* The size to initialize the internal Buffer.\n- ```encoding``` *{string}* The string encoding to use. ```Default: 'utf8'```\n\nExamples:\n```javascript\nconst buff = SmartBuffer.fromSize(1024); // Defaults to utf8\nconst buff = SmartBuffer.fromSize(1024, 'ascii');\n```\n\n### Class Method: fromOptions(options)\n- ```options``` *{SmartBufferOptions}* The Buffer instance to wrap.\n\n```typescript\ninterface SmartBufferOptions {\n encoding?: BufferEncoding; // Defaults to utf8\n size?: number; // Defaults to 4096\n buff?: Buffer;\n}\n```\n\nExamples:\n```javascript\nconst buff = SmartBuffer.fromOptions({\n size: 1024\n};\nconst buff = SmartBuffer.fromOptions({\n size: 1024,\n encoding: 'utf8'\n});\nconst buff = SmartBuffer.fromOptions({\n encoding: 'utf8'\n});\n\nconst someBuff = Buffer.from('some string', 'utf8');\nconst buff = SmartBuffer.fromOptions({\n buffer: someBuff,\n encoding: 'utf8'\n});\n```\n\n## Integers\n\n### buff.readInt8([offset])\n### buff.readUInt8([offset])\n- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```\n- Returns *{number}*\n\nRead a Int8 value.\n\n### buff.readInt16BE([offset])\n### buff.readInt16LE([offset])\n### buff.readUInt16BE([offset])\n### buff.readUInt16LE([offset])\n- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```\n- Returns *{number}*\n\nRead a 16 bit integer value.\n\n### buff.readInt32BE([offset])\n### buff.readInt32LE([offset])\n### buff.readUInt32BE([offset])\n### buff.readUInt32LE([offset])\n- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```\n- Returns *{number}*\n\nRead a 32 bit integer value.\n\n\n### buff.writeInt8(value[, offset])\n### buff.writeUInt8(value[, offset])\n- ```value``` *{number}* The value to write.\n- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```\n- Returns *{this}*\n\nWrite a Int8 value.\n\n### buff.insertInt8(value, offset)\n### buff.insertUInt8(value, offset)\n- ```value``` *{number}* The value to insert.\n- ```offset``` *{number}* The offset to insert this data at.\n- Returns *{this}*\n\nInsert a Int8 value.\n\n\n### buff.writeInt16BE(value[, offset])\n### buff.writeInt16LE(value[, offset])\n### buff.writeUInt16BE(value[, offset])\n### buff.writeUInt16LE(value[, offset])\n- ```value``` *{number}* The value to write.\n- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```\n- Returns *{this}*\n\nWrite a 16 bit integer value.\n\n### buff.insertInt16BE(value, offset)\n### buff.insertInt16LE(value, offset)\n### buff.insertUInt16BE(value, offset)\n### buff.insertUInt16LE(value, offset)\n- ```value``` *{number}* The value to insert.\n- ```offset``` *{number}* The offset to insert this data at.\n- Returns *{this}*\n\nInsert a 16 bit integer value.\n\n\n### buff.writeInt32BE(value[, offset])\n### buff.writeInt32LE(value[, offset])\n### buff.writeUInt32BE(value[, offset])\n### buff.writeUInt32LE(value[, offset])\n- ```value``` *{number}* The value to write.\n- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```\n- Returns *{this}*\n\nWrite a 32 bit integer value.\n\n### buff.insertInt32BE(value, offset)\n### buff.insertInt32LE(value, offset)\n### buff.insertUInt32BE(value, offset)\n### buff.nsertUInt32LE(value, offset)\n- ```value``` *{number}* The value to insert.\n- ```offset``` *{number}* The offset to insert this data at.\n- Returns *{this}*\n\nInsert a 32 bit integer value.\n\n\n## Floating Point Numbers\n\n### buff.readFloatBE([offset])\n### buff.readFloatLE([offset])\n- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```\n- Returns *{number}*\n\nRead a Float value.\n\n### buff.readDoubleBE([offset])\n### buff.readDoubleLE([offset])\n- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```\n- Returns *{number}*\n\nRead a Double value.\n\n\n### buff.writeFloatBE(value[, offset])\n### buff.writeFloatLE(value[, offset])\n- ```value``` *{number}* The value to write.\n- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```\n- Returns *{this}*\n\nWrite a Float value.\n\n### buff.insertFloatBE(value, offset)\n### buff.insertFloatLE(value, offset)\n- ```value``` *{number}* The value to insert.\n- ```offset``` *{number}* The offset to insert this data at.\n- Returns *{this}*\n\nInsert a Float value.\n\n\n### buff.writeDoubleBE(value[, offset])\n### buff.writeDoubleLE(value[, offset])\n- ```value``` *{number}* The value to write.\n- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```\n- Returns *{this}*\n\nWrite a Double value.\n\n### buff.insertDoubleBE(value, offset)\n### buff.insertDoubleLE(value, offset)\n- ```value``` *{number}* The value to insert.\n- ```offset``` *{number}* The offset to insert this data at.\n- Returns *{this}*\n\nInsert a Double value.\n\n## Strings\n\n### buff.readString()\n### buff.readString(size[, encoding])\n### buff.readString(encoding)\n- ```size``` *{number}* The number of bytes to read. **Default:** ```Reads to the end of the Buffer.```\n- ```encoding``` *{string}* The string encoding to use. **Default:** ```utf8```.\n\nRead a string value.\n\nExamples:\n```javascript\nconst buff = SmartBuffer.fromBuffer(Buffer.from('hello there', 'utf8'));\nbuff.readString(); // 'hello there'\nbuff.readString(2); // 'he'\nbuff.readString(2, 'utf8'); // 'he'\nbuff.readString('utf8'); // 'hello there'\n```\n\n### buff.writeString(value)\n### buff.writeString(value[, offset])\n### buff.writeString(value[, encoding])\n### buff.writeString(value[, offset[, encoding]])\n- ```value``` *{string}* The string value to write.\n- ```offset``` *{number}* The offset to write this value to. **Default:** ```Auto managed offset```\n- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```\n\nWrite a string value.\n\nExamples:\n```javascript\nbuff.writeString('hello'); // Auto managed offset\nbuff.writeString('hello', 2);\nbuff.writeString('hello', 'utf8') // Auto managed offset\nbuff.writeString('hello', 2, 'utf8');\n```\n\n### buff.insertString(value, offset[, encoding])\n- ```value``` *{string}* The string value to write.\n- ```offset``` *{number}* The offset to write this value to.\n- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```\n\nInsert a string value.\n\nExamples:\n```javascript\nbuff.insertString('hello', 2);\nbuff.insertString('hello', 2, 'utf8');\n```\n\n## Null Terminated Strings\n\n### buff.readStringNT()\n### buff.readStringNT(encoding)\n- ```encoding``` *{string}* The string encoding to use. **Default:** ```utf8```.\n\nRead a null terminated string value. (If a null is not found, it will read to the end of the Buffer).\n\nExamples:\n```javascript\nconst buff = SmartBuffer.fromBuffer(Buffer.from('hello\\0 there', 'utf8'));\nbuff.readStringNT(); // 'hello'\n\n// If we called this again:\nbuff.readStringNT(); // ' there'\n```\n\n### buff.writeStringNT(value)\n### buff.writeStringNT(value[, offset])\n### buff.writeStringNT(value[, encoding])\n### buff.writeStringNT(value[, offset[, encoding]])\n- ```value``` *{string}* The string value to write.\n- ```offset``` *{number}* The offset to write this value to. **Default:** ```Auto managed offset```\n- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```\n\nWrite a null terminated string value.\n\nExamples:\n```javascript\nbuff.writeStringNT('hello'); // Auto managed offset <Buffer 68 65 6c 6c 6f 00>\nbuff.writeStringNT('hello', 2); // <Buffer 00 00 68 65 6c 6c 6f 00>\nbuff.writeStringNT('hello', 'utf8') // Auto managed offset\nbuff.writeStringNT('hello', 2, 'utf8');\n```\n\n### buff.insertStringNT(value, offset[, encoding])\n- ```value``` *{string}* The string value to write.\n- ```offset``` *{number}* The offset to write this value to.\n- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```\n\nInsert a null terminated string value.\n\nExamples:\n```javascript\nbuff.insertStringNT('hello', 2);\nbuff.insertStringNT('hello', 2, 'utf8');\n```\n\n## Buffers\n\n### buff.readBuffer([length])\n- ```length``` *{number}* The number of bytes to read into a Buffer. **Default:** ```Reads to the end of the Buffer```\n\nRead a Buffer of a specified size.\n\n### buff.writeBuffer(value[, offset])\n- ```value``` *{Buffer}* The buffer value to write.\n- ```offset``` *{number}* An optional offset to write the value to. **Default:** ```Auto managed offset```\n\n### buff.insertBuffer(value, offset)\n- ```value``` *{Buffer}* The buffer value to write.\n- ```offset``` *{number}* The offset to write the value to.\n\n\n### buff.readBufferNT()\n\nRead a null terminated Buffer.\n\n### buff.writeBufferNT(value[, offset])\n- ```value``` *{Buffer}* The buffer value to write.\n- ```offset``` *{number}* An optional offset to write the value to. **Default:** ```Auto managed offset```\n\nWrite a null terminated Buffer.\n\n\n### buff.insertBufferNT(value, offset)\n- ```value``` *{Buffer}* The buffer value to write.\n- ```offset``` *{number}* The offset to write the value to.\n\nInsert a null terminated Buffer.\n\n\n## Offsets\n\n### buff.readOffset\n### buff.readOffset(offset)\n- ```offset``` *{number}* The new read offset value to set.\n- Returns: ```The current read offset```\n\nGets or sets the current read offset.\n\nExamples:\n```javascript\nconst currentOffset = buff.readOffset; // 5\n\nbuff.readOffset = 10;\n\nconsole.log(buff.readOffset) // 10\n```\n\n### buff.writeOffset\n### buff.writeOffset(offset)\n- ```offset``` *{number}* The new write offset value to set.\n- Returns: ```The current write offset```\n\nGets or sets the current write offset.\n\nExamples:\n```javascript\nconst currentOffset = buff.writeOffset; // 5\n\nbuff.writeOffset = 10;\n\nconsole.log(buff.writeOffset) // 10\n```\n\n### buff.encoding\n### buff.encoding(encoding)\n- ```encoding``` *{string}* The new string encoding to set.\n- Returns: ```The current string encoding```\n\nGets or sets the current string encoding.\n\nExamples:\n```javascript\nconst currentEncoding = buff.encoding; // 'utf8'\n\nbuff.encoding = 'ascii';\n\nconsole.log(buff.encoding) // 'ascii'\n```\n\n## Other\n\n### buff.clear()\n\nClear and resets the SmartBuffer instance.\n\n### buff.remaining()\n- Returns ```Remaining data left to be read```\n\nGets the number of remaining bytes to be read.\n\n\n### buff.internalBuffer\n- Returns: *{Buffer}*\n\nGets the internally managed Buffer (Includes unmanaged data).\n\nExamples:\n```javascript\nconst buff = SmartBuffer.fromSize(16);\nbuff.writeString('hello');\nconsole.log(buff.InternalBuffer); // <Buffer 68 65 6c 6c 6f 00 00 00 00 00 00 00 00 00 00 00>\n```\n\n### buff.toBuffer()\n- Returns: *{Buffer}*\n\nGets a sliced Buffer instance of the internally managed Buffer. (Only includes managed data)\n\nExamples:\n```javascript\nconst buff = SmartBuffer.fromSize(16);\nbuff.writeString('hello');\nconsole.log(buff.toBuffer()); // <Buffer 68 65 6c 6c 6f>\n```\n\n### buff.toString([encoding])\n- ```encoding``` *{string}* The string encoding to use when converting to a string. **Default:** ```utf8```\n- Returns *{string}*\n\nGets a string representation of all data in the SmartBuffer.\n\n### buff.destroy()\n\nDestroys the SmartBuffer instance.\n\n\n\n## License\n\nThis work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License).\n","maintainers":[{"name":"joshglazebrook","email":"npm@joshglazebrook.com"}],"time":{"modified":"2022-06-26T21:17:32.222Z","created":"2013-11-03T08:38:38.969Z","1.0.0":"2013-11-03T08:38:40.256Z","1.0.1":"2013-11-14T02:02:55.518Z","1.0.3":"2015-04-07T22:01:00.481Z","1.0.4":"2016-04-07T03:06:12.109Z","1.0.5":"2016-04-12T05:45:24.577Z","1.0.6":"2016-05-02T04:36:43.496Z","1.0.7":"2016-05-09T23:53:54.970Z","1.0.8":"2016-05-10T00:08:26.157Z","1.0.9":"2016-05-10T01:17:45.115Z","1.0.10":"2016-05-17T05:06:15.786Z","1.0.11":"2016-05-20T04:01:05.973Z","1.0.13":"2017-01-14T03:52:34.758Z","1.1.0":"2017-01-30T16:13:20.282Z","1.1.1":"2017-01-30T16:28:58.929Z","1.1.2":"2017-01-30T17:28:21.900Z","1.1.3":"2017-01-30T17:29:35.494Z","1.1.4":"2017-01-30T17:31:55.769Z","2.0.0":"2017-01-30T17:49:12.082Z","1.1.15":"2017-01-30T18:55:36.587Z","2.0.1":"2017-01-31T06:13:31.999Z","2.0.2":"2017-01-31T06:17:25.001Z","2.0.3":"2017-01-31T06:36:21.366Z","3.0.0":"2017-02-13T01:49:50.040Z","3.0.1":"2017-02-16T02:11:06.205Z","3.0.2":"2017-02-17T22:46:56.078Z","3.0.3":"2017-02-19T20:33:50.476Z","4.0.0-beta.1":"2017-06-24T22:38:26.534Z","4.0.0":"2017-10-21T06:49:50.930Z","4.0.1":"2017-11-12T05:42:43.416Z","4.0.2":"2019-01-24T05:26:42.740Z","4.1.0":"2019-07-24T05:17:03.525Z","4.2.0":"2021-08-07T06:18:54.397Z"},"author":{"name":"Josh Glazebrook"},"repository":{"type":"git","url":"git+https://github.com/JoshGlazebrook/smart-buffer.git"},"readmeFilename":"README.md","homepage":"https://github.com/JoshGlazebrook/smart-buffer/","keywords":["buffer","smart","packet","serialize","network","cursor","simple"],"bugs":{"url":"https://github.com/JoshGlazebrook/smart-buffer/issues"},"license":"MIT","users":{"steel1990":true,"ganeshkbhat":true,"zuojiang":true},"contributors":[{"name":"syvita"}]} |