{"_id":"restructure","_rev":"3551596","name":"restructure","description":"Declaratively encode and decode binary data","dist-tags":{"latest":"3.0.2"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"time":{"modified":"2024-09-19T02:43:29.000Z","created":"2014-05-12T16:37:16.956Z","3.0.2":"2024-06-14T17:16:17.783Z","3.0.1":"2024-03-09T01:38:24.365Z","3.0.0":"2022-06-18T22:46:13.076Z","2.0.1":"2022-05-20T04:10:05.204Z","2.0.0":"2019-11-17T18:06:48.908Z","1.0.0":"2019-06-17T01:46:40.780Z","0.5.4":"2017-05-01T01:21:17.506Z","0.5.3":"2016-09-04T20:25:37.427Z","0.5.2":"2016-09-04T01:55:01.640Z","0.5.1":"2016-05-02T06:10:15.667Z","0.5.0":"2015-07-12T23:04:29.971Z","0.4.0":"2015-06-22T04:47:45.422Z","0.3.2":"2015-03-23T05:09:48.113Z","0.3.1":"2015-03-09T23:35:07.759Z","0.3.0":"2015-03-08T17:55:09.994Z","0.2.0":"2014-12-28T17:59:59.704Z","0.1.11":"2014-12-08T01:22:46.918Z","0.1.9":"2014-12-05T21:40:38.186Z","0.1.7":"2014-12-01T05:31:19.769Z","0.1.6":"2014-11-28T01:27:59.050Z","0.1.5":"2014-06-09T20:06:24.809Z","0.1.4":"2014-06-09T19:46:13.163Z","0.1.3":"2014-05-18T18:17:25.185Z","0.1.2":"2014-05-18T18:16:14.645Z","0.1.1":"2014-05-12T16:46:36.148Z","0.1.0":"2014-05-12T16:37:16.956Z"},"users":{},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"versions":{"3.0.2":{"name":"restructure","version":"3.0.2","description":"Declaratively encode and decode binary data","type":"module","main":"./dist/main.cjs","module":"./index.js","source":"./index.js","exports":{"import":"./index.js","require":"./dist/main.cjs"},"targets":{"module":false},"devDependencies":{"mocha":"^10.0.0","parcel":"^2.6.1"},"scripts":{"test":"mocha","build":"parcel build","prepublishOnly":"parcel build"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","_id":"restructure@3.0.2","gitHead":"6bf7ad9f3e9e6e0bb94f6b78681eeb4d5af5c189","_nodeVersion":"20.9.0","_npmVersion":"10.4.0","dist":{"shasum":"e6b2fad214f78edee21797fa8160fef50eb9b49a","size":35779,"noattachment":false,"key":"/restructure/-/restructure-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-3.0.2.tgz"},"_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"directories":{},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/restructure_3.0.2_1718385377324_0.8441090170012762"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-06-14T17:16:17.783Z","publish_time":1718385377783,"_source_registry_name":"default","_cnpm_publish_time":1718385377783},"3.0.1":{"name":"restructure","version":"3.0.1","description":"Declaratively encode and decode binary data","type":"module","main":"./dist/main.cjs","module":"./index.js","source":"./index.js","exports":{"import":"./index.js","require":"./dist/main.cjs"},"targets":{"module":false},"devDependencies":{"mocha":"^10.0.0","parcel":"^2.6.1"},"scripts":{"test":"mocha","build":"parcel build","prepublishOnly":"parcel build"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","_id":"restructure@3.0.1","gitHead":"6680114e304ce5b371cf51bf5f8f3e2c9e32f4f5","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"shasum":"d610105f09978a42c806c1fc2048ff56900e6a21","size":35655,"noattachment":false,"key":"/restructure/-/restructure-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-3.0.1.tgz"},"_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"directories":{},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/restructure_3.0.1_1709948304196_0.8262966775858147"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-03-09T01:38:24.365Z","publish_time":1709948304365,"_source_registry_name":"default","_cnpm_publish_time":1709948304365},"3.0.0":{"name":"restructure","version":"3.0.0","description":"Declaratively encode and decode binary data","type":"module","main":"./dist/main.cjs","module":"./index.js","source":"./index.js","exports":{"import":"./index.js","require":"./dist/main.cjs"},"targets":{"module":false},"devDependencies":{"mocha":"^10.0.0","parcel":"^2.6.1"},"scripts":{"test":"mocha","build":"parcel build","prepublishOnly":"parcel build"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"993b7d722f9565e7d42e2463747126bd0cdccf6f","_id":"restructure@3.0.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"a55031d7ed3314bf585f815836fff9da3d65101d","size":943509,"noattachment":false,"key":"/restructure/-/restructure-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-3.0.0.tgz"},"_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"directories":{},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/restructure_3.0.0_1655592372852_0.14793124170609429"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-06-18T22:46:18.340Z","publish_time":1655592373076,"_cnpm_publish_time":1655592373076},"2.0.1":{"name":"restructure","version":"2.0.1","description":"Declaratively encode and decode binary data","main":"index.js","devDependencies":{"chai":"~4.2.0","concat-stream":"~2.0.0","coveralls":"^3.0.11","iconv-lite":"^0.5.1","mocha":"~7.1.1","nyc":"^15.0.1"},"scripts":{"test":"mocha --reporter spec","cover":"nyc --reporter=html --reporter=text mocha","coveralls":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"8e6d90ada77009e34e3529172292878a04501fdb","_id":"restructure@2.0.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"4199745466cfc9bb9e1647746a4c902b7b0049d1","size":17607,"noattachment":false,"key":"/restructure/-/restructure-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-2.0.1.tgz"},"_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"directories":{},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/restructure_2.0.1_1653019805039_0.020764624537497944"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-20T04:10:30.339Z","publish_time":1653019805204,"_cnpm_publish_time":1653019805204},"2.0.0":{"name":"restructure","version":"2.0.0","description":"Declaratively encode and decode binary data","main":"index.js","devDependencies":{"chai":"~1.9.1","concat-stream":"~1.4.5","coveralls":"^3.0.3","iconv-lite":"^0.4.7","mocha":"~6.0.2","nyc":"^13.3.0"},"scripts":{"test":"mocha","cover":"nyc --reporter=html --reporter=text mocha","coveralls":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"340296f46d09fca45c7b0271c81bc06bf67d31bf","_id":"restructure@2.0.0","_nodeVersion":"12.10.0","_npmVersion":"6.10.3","dist":{"shasum":"a74d95e25c9516297f5a9da889f294bac1d66dad","size":18140,"noattachment":false,"key":"/restructure/-/restructure-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-2.0.0.tgz"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/restructure_2.0.0_1574014008681_0.7438879698231933"},"_hasShrinkwrap":false,"publish_time":1574014008908,"_cnpm_publish_time":1574014008908,"_cnpmcore_publish_time":"2021-12-17T03:05:05.427Z"},"1.0.0":{"name":"restructure","version":"1.0.0","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","concat-stream":"~1.4.5","coveralls":"^3.0.3","iconv-lite":"^0.4.7","mocha":"~6.0.2","nyc":"^13.3.0"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"nyc --reporter=html --reporter=text mocha","coveralls":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"f9c3e968a9e3716a1f47c6d5530d19d221bc2994","_id":"restructure@1.0.0","_nodeVersion":"12.0.0","_npmVersion":"6.9.0","dist":{"shasum":"800aae12b400fe8b4f7f911e22889e33609017f3","size":16909,"noattachment":false,"key":"/restructure/-/restructure-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-1.0.0.tgz"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/restructure_1.0.0_1560736000607_0.32681863453886617"},"_hasShrinkwrap":false,"publish_time":1560736000780,"_cnpm_publish_time":1560736000780,"_cnpmcore_publish_time":"2021-12-17T03:05:05.810Z"},"0.5.4":{"name":"restructure","version":"0.5.4","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"2172bf0cf019fa7a4517cd9eddf1a23ae477df0b","_id":"restructure@0.5.4","_shasum":"f54e7dd563590fb34fd6bf55876109aeccb28de8","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"dist":{"shasum":"f54e7dd563590fb34fd6bf55876109aeccb28de8","size":21878,"noattachment":false,"key":"/restructure/-/restructure-0.5.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.5.4.tgz"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/restructure-0.5.4.tgz_1493601675635_0.9421770751941949"},"directories":{},"publish_time":1493601677506,"_hasShrinkwrap":false,"_cnpm_publish_time":1493601677506,"_cnpmcore_publish_time":"2021-12-17T03:05:06.005Z"},"0.5.3":{"name":"restructure","version":"0.5.3","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"74c29e39a3120356a8adeeca337062f987774e35","_id":"restructure@0.5.3","_shasum":"b35f4b2a403383bc6103f38ecf7fcbe488b5ef77","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"dist":{"shasum":"b35f4b2a403383bc6103f38ecf7fcbe488b5ef77","size":21832,"noattachment":false,"key":"/restructure/-/restructure-0.5.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.5.3.tgz"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/restructure-0.5.3.tgz_1473020737167_0.1857826525811106"},"directories":{},"publish_time":1473020737427,"_hasShrinkwrap":false,"_cnpm_publish_time":1473020737427,"_cnpmcore_publish_time":"2021-12-17T03:05:06.300Z"},"0.5.2":{"name":"restructure","version":"0.5.2","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"058e30adacba34a1dd59f950a4e0f1dcbf03d181","_id":"restructure@0.5.2","_shasum":"ec5d5c0b45eaadeebc43438c3c673d4fb15ca967","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"dist":{"shasum":"ec5d5c0b45eaadeebc43438c3c673d4fb15ca967","size":21545,"noattachment":false,"key":"/restructure/-/restructure-0.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.5.2.tgz"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/restructure-0.5.2.tgz_1472954101392_0.1266024629585445"},"directories":{},"publish_time":1472954101640,"_hasShrinkwrap":false,"_cnpm_publish_time":1472954101640,"_cnpmcore_publish_time":"2021-12-17T03:05:06.575Z"},"0.5.1":{"name":"restructure","version":"0.5.1","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"4a74e95335280a8fd4952d96c38ebdb34b152a65","_id":"restructure@0.5.1","_shasum":"f1f754ee4c76490a429bc38e17aaabb75300fa7d","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"dist":{"shasum":"f1f754ee4c76490a429bc38e17aaabb75300fa7d","size":21529,"noattachment":false,"key":"/restructure/-/restructure-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.5.1.tgz"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/restructure-0.5.1.tgz_1462169414693_0.9786595702171326"},"directories":{},"publish_time":1462169415667,"_hasShrinkwrap":false,"_cnpm_publish_time":1462169415667,"_cnpmcore_publish_time":"2021-12-17T03:05:06.867Z"},"0.5.0":{"name":"restructure","version":"0.5.0","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"83f1e08d8cbae9d80fc75b6e77ff19959512227b","_id":"restructure@0.5.0","_shasum":"97fb7c69010fb0b7ac60801a46ea8b1a50275d27","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"97fb7c69010fb0b7ac60801a46ea8b1a50275d27","size":21568,"noattachment":false,"key":"/restructure/-/restructure-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.5.0.tgz"},"directories":{},"publish_time":1436742269971,"_hasShrinkwrap":false,"_cnpm_publish_time":1436742269971,"_cnpmcore_publish_time":"2021-12-17T03:05:07.134Z"},"0.4.0":{"name":"restructure","version":"0.4.0","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"894929b2ff590274550a7d968ff3d7d0a8399975","_id":"restructure@0.4.0","_shasum":"85f28bf77cecb91aff2f44f9cdd40dc489c51d26","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"85f28bf77cecb91aff2f44f9cdd40dc489c51d26","size":19140,"noattachment":false,"key":"/restructure/-/restructure-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.4.0.tgz"},"directories":{},"publish_time":1434948465422,"_hasShrinkwrap":false,"_cnpm_publish_time":1434948465422,"_cnpmcore_publish_time":"2021-12-17T03:05:07.337Z"},"0.3.2":{"name":"restructure","version":"0.3.2","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"browserify-optional":"^1.0.0"},"devDependencies":{"chai":"~1.9.1","coffee-coverage":"~0.4.2","coffee-script":"~1.7.1","concat-stream":"~1.4.5","coveralls":"^2.10.0","iconv-lite":"^0.4.7","mocha":"~1.18.2","mocha-lcov-reporter":"0.0.1"},"browserify":{"transform":["browserify-optional"]},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","coveralls":"mocha --require coverage.js --reporter mocha-lcov-reporter | coveralls","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"e84a7a637b0c9f11a3e210ce4771d0ce61cc0663","_id":"restructure@0.3.2","_shasum":"622ee262b617688fbb2c6c1e923796269166b693","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"622ee262b617688fbb2c6c1e923796269166b693","size":18963,"noattachment":false,"key":"/restructure/-/restructure-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.3.2.tgz"},"directories":{},"publish_time":1427087388113,"_hasShrinkwrap":false,"_cnpm_publish_time":1427087388113,"_cnpmcore_publish_time":"2021-12-17T03:05:07.566Z"},"0.3.1":{"name":"restructure","version":"0.3.1","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"mocha","cover":"mocha --require coverage.js --reporter html-cov > coverage.html","prepublish":"coffee -c src/ index.coffee","postpublish":"rm -rf index.js src/*.js"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"7964dfc8c1d01db681f81ad8a699b89eca0808fc","_id":"restructure@0.3.1","_shasum":"b93eee66cb8bcd6750a8b38d6d1cbdf58188692e","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"b93eee66cb8bcd6750a8b38d6d1cbdf58188692e","size":18781,"noattachment":false,"key":"/restructure/-/restructure-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.3.1.tgz"},"directories":{},"publish_time":1425944107759,"_hasShrinkwrap":false,"_cnpm_publish_time":1425944107759,"_cnpmcore_publish_time":"2021-12-17T03:05:07.791Z"},"0.3.0":{"name":"restructure","version":"0.3.0","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"015a9d2e0125c4590b607d0f38436cdc9e4eda61","_id":"restructure@0.3.0","_shasum":"85e15d17e01cc0bb837c265d9dfa530d35518cb0","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"85e15d17e01cc0bb837c265d9dfa530d35518cb0","size":13948,"noattachment":false,"key":"/restructure/-/restructure-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.3.0.tgz"},"directories":{},"publish_time":1425837309994,"_hasShrinkwrap":false,"_cnpm_publish_time":1425837309994,"_cnpmcore_publish_time":"2021-12-17T03:05:07.996Z"},"0.2.0":{"name":"restructure","version":"0.2.0","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"5a0ab14aeffe4fc12da8857cb079cfdc31f9b44d","_id":"restructure@0.2.0","_shasum":"a897eb72384208d852b32ca6952d1ba7c9d0a45f","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"a897eb72384208d852b32ca6952d1ba7c9d0a45f","size":18572,"noattachment":false,"key":"/restructure/-/restructure-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.2.0.tgz"},"directories":{},"publish_time":1419789599704,"_hasShrinkwrap":false,"_cnpm_publish_time":1419789599704,"_cnpmcore_publish_time":"2021-12-17T03:05:08.251Z"},"0.1.11":{"name":"restructure","version":"0.1.11","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"a2aeb8fe80448320ffc9bf7180e4f296e7ccae4b","_id":"restructure@0.1.11","_shasum":"1724716ba7fb0648e0a7a89cb1b9b91f81d9ca63","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"1724716ba7fb0648e0a7a89cb1b9b91f81d9ca63","size":17501,"noattachment":false,"key":"/restructure/-/restructure-0.1.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.11.tgz"},"directories":{},"publish_time":1418001766918,"_hasShrinkwrap":false,"_cnpm_publish_time":1418001766918,"_cnpmcore_publish_time":"2021-12-17T03:05:08.471Z"},"0.1.9":{"name":"restructure","version":"0.1.9","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"a82db8fdd45e386d45edf9249ce6586d39b9ea0d","_id":"restructure@0.1.9","_shasum":"2778b08838a7ef9fd68b6ec30997c3b5d27f4860","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"2778b08838a7ef9fd68b6ec30997c3b5d27f4860","size":17454,"noattachment":false,"key":"/restructure/-/restructure-0.1.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.9.tgz"},"directories":{},"publish_time":1417815638186,"_hasShrinkwrap":false,"_cnpm_publish_time":1417815638186,"_cnpmcore_publish_time":"2021-12-17T03:05:08.673Z"},"0.1.7":{"name":"restructure","version":"0.1.7","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/restructure.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"homepage":"https://github.com/devongovett/restructure","gitHead":"e0b3a57ffd9fb34a304059a7124a5056880d8c7e","_id":"restructure@0.1.7","_shasum":"8e28ac0f3c00c820b7af0d9b9e8defc54efccff2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"8e28ac0f3c00c820b7af0d9b9e8defc54efccff2","size":16724,"noattachment":false,"key":"/restructure/-/restructure-0.1.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.7.tgz"},"directories":{},"publish_time":1417411879769,"_hasShrinkwrap":false,"_cnpm_publish_time":1417411879769,"_cnpmcore_publish_time":"2021-12-17T03:05:08.972Z"},"0.1.6":{"name":"restructure","version":"0.1.6","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"iconv-lite":"^0.4.5"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","gitHead":"fda2a7c72d98d6fd06bbaee002777ff617d39299","_id":"restructure@0.1.6","_shasum":"22a1d9c087b3adc559e5e05250c338c657c599a5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"dist":{"shasum":"22a1d9c087b3adc559e5e05250c338c657c599a5","size":16392,"noattachment":false,"key":"/restructure/-/restructure-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.6.tgz"},"directories":{},"publish_time":1417138079050,"_hasShrinkwrap":false,"_cnpm_publish_time":1417138079050,"_cnpmcore_publish_time":"2021-12-17T03:05:09.226Z"},"0.1.5":{"name":"restructure","version":"0.1.5","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"text-encoding":"git://github.com/inexorabletash/text-encoding.git"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","_id":"restructure@0.1.5","dist":{"shasum":"96778f1baaea29bb31047b174809f5ed6e2dd8d0","size":16160,"noattachment":false,"key":"/restructure/-/restructure-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"directories":{},"publish_time":1402344384809,"_hasShrinkwrap":false,"_cnpm_publish_time":1402344384809,"_cnpmcore_publish_time":"2021-12-17T03:05:09.441Z"},"0.1.4":{"name":"restructure","version":"0.1.4","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"text-encoding":"git://github.com/inexorabletash/text-encoding.git"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","_id":"restructure@0.1.4","dist":{"shasum":"c3339cb5d56ccb39376e4df1ecba8cb7a6f619e3","size":16140,"noattachment":false,"key":"/restructure/-/restructure-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.4.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"directories":{},"publish_time":1402343173163,"_hasShrinkwrap":false,"_cnpm_publish_time":1402343173163,"_cnpmcore_publish_time":"2021-12-17T03:05:09.741Z"},"0.1.3":{"name":"restructure","version":"0.1.3","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"text-encoding":"git://github.com/inexorabletash/text-encoding.git"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","_id":"restructure@0.1.3","dist":{"shasum":"abff58e1eaf1dc988794af347e2342a9afd9e909","size":16114,"noattachment":false,"key":"/restructure/-/restructure-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.3.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"directories":{},"publish_time":1400437045185,"_hasShrinkwrap":false,"_cnpm_publish_time":1400437045185,"_cnpmcore_publish_time":"2021-12-17T03:05:10.031Z"},"0.1.2":{"name":"restructure","version":"0.1.2","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"text-encoding":"git://github.com/inexorabletash/text-encoding.git"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","_id":"restructure@0.1.2","dist":{"shasum":"ee8b63c06ca29b6fa059f9496d3cae7bf1462b54","size":11942,"noattachment":false,"key":"/restructure/-/restructure-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.2.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"deprecated":"Bad publish","directories":{},"publish_time":1400436974645,"_hasShrinkwrap":false,"_cnpm_publish_time":1400436974645,"_cnpmcore_publish_time":"2021-12-17T03:05:10.686Z"},"0.1.1":{"name":"restructure","version":"0.1.1","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"text-encoding":"git://github.com/inexorabletash/text-encoding.git"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","_id":"restructure@0.1.1","dist":{"shasum":"aad6b5d57d8b0bfe806df1d33480e26c62cc9b9b","size":16078,"noattachment":false,"key":"/restructure/-/restructure-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.1.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"directories":{},"publish_time":1399913196148,"_hasShrinkwrap":false,"_cnpm_publish_time":1399913196148,"_cnpmcore_publish_time":"2021-12-17T03:05:10.944Z"},"0.1.0":{"name":"restructure","version":"0.1.0","description":"Declaratively encode and decode binary data","main":"index.js","dependencies":{"text-encoding":"git://github.com/inexorabletash/text-encoding.git"},"devDependencies":{"coffee-script":"~1.7.1","mocha":"~1.18.2","chai":"~1.9.1","concat-stream":"~1.4.5","coffee-coverage":"~0.4.2","coveralls":"^2.10.0","mocha-lcov-reporter":"0.0.1"},"scripts":{"test":"make test","prepublish":"make js","postpublish":"make clean"},"repository":{"type":"git","url":"git://github.com/devongovett/struct.git"},"keywords":["binary","struct","encode","decode"],"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/struct/issues"},"homepage":"https://github.com/devongovett/struct","_id":"restructure@0.1.0","dist":{"shasum":"ddf7b20c315e091c06dfeeb3e1213e5c5389f094","size":16094,"noattachment":false,"key":"/restructure/-/restructure-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/restructure/download/restructure-0.1.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"devongovett","email":"devongovett@gmail.com"},"maintainers":[{"name":"devongovett","email":"devongovett@gmail.com"}],"directories":{},"publish_time":1399912636956,"_hasShrinkwrap":false,"_cnpm_publish_time":1399912636956,"_cnpmcore_publish_time":"2021-12-17T03:05:11.279Z"}},"readme":"# Restructure\n\n[![Build Status](https://travis-ci.org/devongovett/restructure.svg?branch=master)](https://travis-ci.org/devongovett/restructure)\n[![Coverage Status](https://coveralls.io/repos/devongovett/restructure/badge.png?branch=master)](https://coveralls.io/r/devongovett/restructure?branch=master)\n\nRestructure allows you to declaratively encode and decode binary data.\nIt supports a wide variety of types to enable you to express a multitude\nof binary formats without writing any parsing code.\n\nSome of the supported features are C-like structures, versioned structures,\npointers, arrays of any type, strings of a large number of encodings, enums,\nbitfields, and more.  See the documentation below for more details.\n\n## Example\n\nThis is just a small example of what Restructure can do. Check out the API documentation\nbelow for more information.\n\n```javascript\nimport * as r from 'restructure';\n\nlet Person = new r.Struct({\n  name: new r.String(r.uint8, 'utf8'),\n  age: r.uint8\n});\n\n// decode a person from a buffer\nlet value = Person.fromBuffer(new Uint8Array([/* ... */])); // returns an object with the fields defined above\n\n// encode a person from an object\nlet buffer = Person.toBuffer({\n  name: 'Devon',\n  age: 21\n});\n```\n\n## API\n\nAll of the following types support three standard methods:\n\n* `fromBuffer(buffer)` - decodes an instance of the type from the given Uint8Array\n* `size(value)` - returns the amount of space the value would take if encoded\n* `toBuffer(value)` - encodes the given value into a Uint8Array\n\nRestructure supports a wide variety of types, but if you need to write your own for\nsome custom use that cannot be represented by them, you can do so by just implementing\nthe above methods. Then you can use your type just as you would any other type, in structures\nand whatnot.\n\n### Number Types\n\nThe following built-in number types are available:\n\n```javascript\nuint8, uint16, uint24, uint32, int8, int16, int24, int32, float, double, fixed16, fixed32\n```\n\nNumbers are big-endian (network order) by default, but little-endian is supported, too:\n\n```javascript\nuint16le, uint24le, uint32le, int16le, int24le, int32le, floatle, doublele, fixed16le, fixed32le\n```\n\nTo avoid ambiguity, big-endian may be used explicitly:\n\n```javascript\nuint16be, uint24be, uint32be, int16be, int24be, int32be, floatbe, doublebe, fixed16be, fixed32be\n```\n\n### Boolean\n\nBooleans are encoded as `0` or `1` using one of the above number types.\n\n```javascript\nvar bool = new r.Boolean(r.uint32);\n```\n\n### Reserved\n\nThe `Reserved` type simply skips data in a structure, where there are reserved fields.\nEncoding produces zeros.\n\n```javascript\n// 10 reserved uint8s (default is 1)\nvar reserved = new r.Reserved(r.uint8, 10);\n```\n\n### Optional\n\nThe `Optional` type only encodes or decodes when given condition is truthy.\n\n```javascript\n// includes field\nvar optional = new r.Optional(r.uint8, true);\n\n// excludes field\nvar optional = new r.Optional(r.uint8, false);\n\n// determine whether field is to be included at runtime with a function\nvar optional = new r.Optional(r.uint8, function() {\n  return this.flags & 0x50;\n});\n```\n\n### Enum\n\nThe `Enum` type maps a number to the value at that index in an array.\n\n```javascript\nvar color = new r.Enum(r.uint8, ['red', 'orange', 'yellow', 'green', 'blue', 'purple']);\n```\n\n### Bitfield\n\nThe `Bitfield` type maps a number to an object with boolean keys mapping to each bit in that number,\nas defined in an array.\n\n```javascript\nvar bitfield = new r.Bitfield(r.uint8, ['Jack', 'Kack', 'Lack', 'Mack', 'Nack', 'Oack', 'Pack', 'Quack']);\nbitfield.decode(stream);\n\nvar result = {\n  Jack: true,\n  Kack: false,\n  Lack: false,\n  Mack: true,\n  Nack: true,\n  Oack: false,\n  Pack: true,\n  Quack: true\n};\n\nbitfield.encode(stream, result);\n```\n\n### Buffer\n\nExtracts a slice of the buffer to a `Uint8Array`.  The length can be a constant, or taken from\na previous field in the parent structure.\n\n```javascript\n// fixed length\nvar buf = new r.Buffer(2);\n\n// length from parent structure\nvar struct = new r.Struct({\n  bufLen: r.uint8,\n  buf: new r.Buffer('bufLen')\n});\n```\n\n### String\n\nA `String` maps a JavaScript string to and from binary encodings.  The length, in bytes, can be a constant,\ntaken from a previous field in the parent structure, encoded using a number type immediately before the\nstring.\n\nFully supported encodings include `'ascii'`, `'utf8'`, `'ucs2'`, `'utf16le'`, `'utf16be'`. Decoding is also possible\nwith any encoding supported by [TextDecoder](https://developer.mozilla.org/en-US/docs/Web/API/Encoding_API/Encodings),\nhowever encoding these is not supported.\n\n```javascript\n// fixed length, ascii encoding by default\nvar str = new r.String(2);\n\n// length encoded as number before the string, utf8 encoding\nvar str = new r.String(r.uint8, 'utf8');\n\n// length from parent structure\nvar struct = new r.Struct({\n  len: r.uint8,\n  str: new r.String('len', 'utf16be')\n});\n\n// null-terminated string (also known as C string)\nvar str = new r.String(null, 'utf8');\n```\n\n### Array\n\nAn `Array` maps to and from a JavaScript array containing instances of a sub-type. The length can be a constant,\ntaken from a previous field in the parent structure, encoded using a number type immediately\nbefore the string, or computed by a function.\n\n```javascript\n// fixed length, containing numbers\nvar arr = new r.Array(r.uint16, 2);\n\n// length encoded as number before the array containing strings\nvar arr = new r.Array(new r.String(10), r.uint8);\n\n// length computed by a function\nvar arr = new r.Array(r.uint8, function() { return 5 });\n\n// length from parent structure\nvar struct = new r.Struct({\n  len: r.uint8,\n  arr: new r.Array(r.uint8, 'len')\n});\n\n// treat as amount of bytes instead (may be used in all the above scenarios)\nvar arr = new r.Array(r.uint16, 6, 'bytes');\n```\n\n### LazyArray\n\nThe `LazyArray` type extends from the `Array` type, and is useful for large arrays that you do not need to access sequentially.\nIt avoids decoding the entire array upfront, and instead only decodes and caches individual items as needed. It only works when\nthe elements inside the array have a fixed size.\n\nInstead of returning a JavaScript array, the `LazyArray` type returns a custom object that can be used to access the elements.\n\n```javascript\nvar arr = new r.LazyArray(r.uint16, 2048);\nvar res = arr.decode(stream);\n\n// get a single element\nvar el = res.get(2);\n\n// convert to a normal array (decode all elements)\nvar array = res.toArray();\n```\n\n### Struct\n\nA `Struct` maps to and from JavaScript objects, containing keys of various previously discussed types. Sub structures,\narrays of structures, and pointers to other types (discussed below) are supported.\n\n```javascript\nvar Person = new r.Struct({\n  name: new r.String(r.uint8, 'utf8'),\n  age: r.uint8\n});\n```\n\n### VersionedStruct\n\nA `VersionedStruct` is a `Struct` that has multiple versions. The version is typically encoded at\nthe beginning of the structure, or as a field in a parent structure. There is an optional `header`\ncommon to all versions, and separate fields listed for each version number.\n\n```javascript\n// the version is read as a uint8 in this example\n// you could also get the version from a key on the parent struct\nvar Person = new r.VersionedStruct(r.uint8, {\n  // optional header common to all versions\n  header: {\n    name: new r.String(r.uint8, 'utf8')\n  },\n  0: {\n    age: r.uint8\n  },\n  1: {\n    hairColor: r.Enum(r.uint8, ['black', 'brown', 'blonde'])\n  }\n});\n```\n\n### Pointer\n\nPointers map an address or offset encoded as a number, to a value encoded elsewhere in the buffer.\nThere are a few options you can use: `type`, `relativeTo`, `allowNull`, and `nullValue`.\nThe `type` option has these possible values:\n\n* `local` (default) - the encoded offset is relative to the start of the containing structure\n* `immediate` - the encoded offset is relative to the position of the pointer itself\n* `parent` - the encoded offset is relative to the parent structure of the immediate container\n* `global` - the encoded offset is global to the start of the file\n\nThe `relativeTo` option accepts a function callback that should return the field on the containing structure which the encoded offset is relative to. The callback is called with the context as parameter.\nBy default, pointers are relative to the start of the containing structure (`local`).\n\nThe `allowNull` option lets you specify whether zero offsets are allowed or should produce `null`. This is\nset to `true` by default. The `nullValue` option is related, and lets you override the encoded value that\nrepresents `null`. By default, the `nullValue` is zero.\n\nThe `lazy` option allows lazy decoding of the pointer's value by defining a getter on the parent object.\nThis only works when the pointer is contained within a Struct, but can be used to speed up decoding\nquite a bit when not all of the data is needed right away.\n\n```javascript\nvar Address = new r.Struct({\n  street: new r.String(r.uint8),\n  zip: new r.String(5)\n});\n\nvar Person = new r.Struct({\n  name: new r.String(r.uint8, 'utf8'),\n  age: r.uint8,\n  ptrStart: r.uint8,\n  address: new r.Pointer(r.uint8, Address)\n});\n```\n\nIf the type of a pointer is set to 'void', it is not decoded and the computed address in the buffer\nis simply returned. To encode a void pointer, create a `new r.VoidPointer(type, value)`.\n\n## License\n\nMIT\n","_attachments":{},"homepage":"https://github.com/devongovett/restructure","bugs":{"url":"https://github.com/devongovett/restructure/issues"},"license":"MIT"}