{"_id":"bufy","_rev":"9-84bee03856dda30ed8baf0dfa921f8cb","time":{"0.0.1":"2019-07-24T21:05:57.890Z","created":"2019-07-29T09:09:42.323Z","0.0.2":"2019-07-29T09:09:42.475Z","modified":"2022-04-12T04:39:37.090Z","0.1.0":"2019-07-29T22:32:51.340Z","0.2.0":"2019-08-08T14:49:46.685Z","0.2.1":"2020-05-09T16:03:46.076Z","0.2.2":"2020-05-18T20:44:42.275Z"},"name":"bufy","dist-tags":{"latest":"0.2.2"},"versions":{"0.0.2":{"name":"bufy","version":"0.0.2","description":"Library that maps buffers to objects and back","main":"dist/index.js","scripts":{"test":"mocha -r ts-node/register __test__/**/*.test.ts","build":"tsc","tsc:w":"tsc -w --pretty true"},"devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.7","chai":"^4.2.0","mocha":"^6.1.4","ts-node":"^8.3.0","typescript":"^3.5.2"},"author":{"name":"SirMomster"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SirMomster/bufy.git"},"dependencies":{},"gitHead":"50c1b3aafb1609424f54152320cb98da145f8b99","bugs":{"url":"https://github.com/SirMomster/bufy/issues"},"homepage":"https://github.com/SirMomster/bufy#readme","_id":"bufy@0.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"sirmomster","email":"mitchmommers@gmail.com"},"dist":{"integrity":"sha512-auwt2gltzs+mqvf+sFDS3Ko8Czzdv0BnJdcAn+buQzxtM2IA7xLpJhTbq/qegv0NzXoKqruf2FNxkWN1xvQDEA==","shasum":"74f56b9212f49d9510d71258f4dfba75b3be3b2b","tarball":"https://registry.npmjs.org/bufy/-/bufy-0.0.2.tgz","fileCount":38,"unpackedSize":89073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPrfXCRA9TVsSAnZWagAAIhAP/3EsOwZeHZjoxoxXhv6L\nPopbG3EC+0Ln+jG69gHAxHwsqkrYsW/bpmk3qmCgmV0ojpmNqFRGtR+0ewTv\nBQvSj9fD/LuZK6F6mUhdVNMelcnx5P1upb7xTXgdMp0ILyQyHgFxoGRqeqzb\nlQNjCVgcv6i+aLx/n+QPTLp6lqGKmkLW3KcTD0xRMCoKVrjm2d/HGsoLN7ry\nNmvXQMVcoAUJc5oxGLrN6lDnesuzCt5u+Cmf/lXRB4FjO4nTAkzNfn6uU3sL\ns4zgqFsIl8KLQy1ZSKIJgn9I3ig5Pfn0YTKejzh/8+pbf+GZMbbXNKTOGdee\n9ITSLEGcCGRTeLKZ57McP/mBJTpIBVo4HWyW0RPbvrB8HkKeRSBwQKzzJSX+\n9wHeUiZglexi1c0xappDdWobKbxXm81CpFX+wFs8iJEhbPSJixB+hn2GBGGo\ndV/kXj8KAQbaoAVYgTdLOPo4tAnFgDJq2IJk4CPgUBbAdWpC3udFdk4/r8FS\nhJ1VXPxjDn6dfNO0rQU4JCjVEJdjy2LM3UsWApLSErei5+XC6G7D7WYpvfgx\nOGJzutCK2V/YUd7K3z4u5hwFT9cUlgtoi7TBxrUIgurgF39oN29NTwlRXAQo\n3+jW6+F9Chv9hogCspVi5YYzNbrM4mtgpDXIXBHg/0DLo4FNVJ3fWXYXjZjX\nWaNY\r\n=CD4K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHoaJboIr7nXxrUlhX7yVK36DyD8i2n6ILB6iKHvRifzAiEAkILatWq4m4iFJmkTjLc1QaseUNrXoCgS7YlDz53ofPA="}]},"maintainers":[{"name":"sirmomster","email":"mitchmommers@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bufy_0.0.2_1564391382324_0.6084150594132844"},"_hasShrinkwrap":false},"0.1.0":{"name":"bufy","version":"0.1.0","description":"Library that maps buffers to objects and back","main":"dist/index.js","scripts":{"coverage":"nyc mocha && cat ./coverage/lcov.info | codacy-coverage && rm -rf ./coverage","test":"mocha","build":"tsc","tsc:w":"tsc -w --pretty true","lint":"tslint src/**/*.ts src/*.ts test/*.ts --config tslint.yaml --fix"},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^0.1.3","@types/chai":"^4.1.7","@types/mocha":"^5.2.7","chai":"^4.2.0","codacy-coverage":"^3.4.0","mocha":"^6.1.4","nyc":"^14.1.1","source-map-support":"^0.5.12","ts-node":"^8.3.0","tslint":"^5.18.0","typescript":"^3.5.3"},"author":{"name":"SirMomster"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SirMomster/bufy.git"},"dependencies":{},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","all":true,"include":["src/*.ts","src/**/*.ts"],"reporter":["text","lcov"]},"gitHead":"c2d3802fc97cc390a10532b4fea7454a4d1ca2c3","bugs":{"url":"https://github.com/SirMomster/bufy/issues"},"homepage":"https://github.com/SirMomster/bufy#readme","_id":"bufy@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"sirmomster","email":"mitchmommers@gmail.com"},"dist":{"integrity":"sha512-h6zUn17eSRzjhHIkUbmjlt6SG5F+1DgYKIY3Y0rixtz4xmRkwXLNt8MXabFnd6u8q+IBBDF5OOT3jBnBFI66wQ==","shasum":"09a8ce095cd31aca5ac45e40faf8753b8d6b9b8a","tarball":"https://registry.npmjs.org/bufy/-/bufy-0.1.0.tgz","fileCount":84,"unpackedSize":97847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdP3QTCRA9TVsSAnZWagAARVQP/220kkWAFitayberA8AX\n+x2tbEnMDcPU1xsTd6F6apH7hl78g5srRJvYxokPau78Q2SoOTbqA7mdb/4S\nxG6f+lqs6y1Ouc48MGgnhMcCx7xGUjmGHPoFauTZ//CXt6OMlU8vUjMkiswh\niliMpblm8jQ7wTV6RIAqWZYl4I7CT9loIfxemhuvFCK9gyJ1QQwAI691vWpW\n/Sbv++/U/lGDzgxRJ5hece8N62K3zPBhvbmKbWMkkA8lH39Cq8YM5WLEra4V\nyA7fnmL2ZfiHFCB/3jdIwheBWgEWMBYnBjDmyVTA0ymfVVgUN/HmioyYTt1/\ns3jdp4MJzwzb5zG6AZdSkYGbOJmXlrLWbjcwwNxDmgzjyqz7jGp2ag6ReNI3\nIRv6xIXZrxmstBxWdonFWFAKCKGu/Ujng69RpS4olO4wCXrHgohfvEcvsBaW\ncgerFc2jpSWi4dLkWvT1bYz149bkx/SeT3hIXydJA/pkknT/3e18O/SpM/kA\nc3+yF2Uae0Y8uH2Rt40NSarvuUb5/nezr4fEY/F1xkTnrIo/oFUjhHrllrJ8\nb/psINJwxTjWYHu9z9wy8lHruGejtE676IiKEPaN4WXwDT33OrJ4OVyPCl8Z\nCP38evl1XeL7l2TodnXE3eoKjN8vi0aSWwrJdTnE6prkCM0LgWtMpywKrL4+\nnpB8\r\n=rnBl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEGd2h+vHoko4meQyGrPqrSoTWjnPWVMy3Flg3HfuEs/AiEA1ApJ+F/NMytzbz+5wSVHzoplsxaPTVeXpdfqcLZK8ww="}]},"maintainers":[{"name":"sirmomster","email":"mitchmommers@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bufy_0.1.0_1564439570987_0.7921806310666315"},"_hasShrinkwrap":false},"0.2.0":{"name":"bufy","version":"0.2.0","description":"Library that maps buffers to objects and back","main":"dist/index.js","scripts":{"coverage":"nyc mocha && cat ./coverage/lcov.info | codacy-coverage && rm -rf ./coverage","test":"mocha","build":"tsc","tsc:w":"tsc -w --pretty true","lint":"tslint src/**/*.ts src/*.ts test/*.ts --config tslint.yaml --fix"},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^0.1.3","@types/chai":"^4.1.7","@types/mocha":"^5.2.7","chai":"^4.2.0","codacy-coverage":"^3.4.0","mocha":"^6.1.4","nyc":"^14.1.1","source-map-support":"^0.5.12","ts-node":"^8.3.0","tslint":"^5.18.0","typescript":"^3.5.3"},"author":{"name":"SirMomster"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SirMomster/bufy.git"},"dependencies":{},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","all":true,"include":["src/*.ts","src/**/*.ts"],"reporter":["text","lcov"]},"gitHead":"c7d5d1aedb10341be48c6a2eba6e683a63fe2b9b","bugs":{"url":"https://github.com/SirMomster/bufy/issues"},"homepage":"https://github.com/SirMomster/bufy#readme","_id":"bufy@0.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"sirmomster","email":"mitchmommers@gmail.com"},"dist":{"integrity":"sha512-1Xdz4ZFouadViAbFJa3A7Pt49s043PfcXCDo2e4F+CXbVWNm31AqXtF7rcVcgAiKfc/AH6g2nKpKRdTAKu4aHA==","shasum":"fb65c5dd878b3d8a722d5f36782a1ea8343267f5","tarball":"https://registry.npmjs.org/bufy/-/bufy-0.2.0.tgz","fileCount":88,"unpackedSize":103697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTDaLCRA9TVsSAnZWagAAw08P/jelhkXBuRiBwDQgfttq\n7q8zQoYZCkVoreygwzuoHTszQHzuBTlzJDFC1M2nyqr91Rlz//Xlb4NuDekf\nTpoGiT0RntNqO9zhTWF1XOVYijcbKdUEZe94DYAT+OFWuFFrKtAz/W886UVa\n1wUIkBm2O8uCckdke5jjW95ha8CA/UB2/b8zprZrORVQDTeHA2xVFPUvFY6D\nmJ+Gh8i8nZCFKbOEGq4aQm33mo8dtbOUrrBxFudlk8H86RoOM6pIsWpGn9he\nUVy9FJPS3ZsqcNb85pwMuSEiw/Ss8wAHj5M71YIJeNjPOAYRmo5FXGElakGJ\nMbW/8BJr9Xvfibru1A68TfobKrtQTE68MVDnwlRl2Wpg1AM2gGCLbVqUG2cu\nqbXt9/7ya/8I7cIdx0tS8K6X8dtVMVaw67180+jWLWoWOZezQ5Le2hjOhHdH\ncvG65Ibr9fabT0n5QtLvQqZbdRzzUteg75roO5o3a2GoXlytcki7CI2MYmjr\nR3scy2TVg8wZ8tf1i2QNQ6U1d9+N23sy/Y2ItaNuzuaeIFO5bvd9NK0Qt0Gh\nftCZJ8judzD+AP7LI9H5RI/c5UsOmqvYHc1dSTqw+0zfdWfIWGKscIhDVRrP\noY32ipC/YWzrnqA8EMZv8OMyWVEagDYyR418NYCiLLiF8ssxv9HIpyVx99hl\nwvNS\r\n=N6gD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0BRLTmeQcjBXtSM6yDZPpvmZg6PcXjQkHbMJKsOXHQwIgMLeTr0AUTEzsF52kZ7g0f5oyeuRgBuDdQ4rKagKLgsw="}]},"maintainers":[{"name":"sirmomster","email":"mitchmommers@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bufy_0.2.0_1565275786540_0.6176404827047837"},"_hasShrinkwrap":false},"0.2.1":{"name":"bufy","version":"0.2.1","description":"Library that maps buffers to objects and back","main":"dist/index.js","scripts":{"coverage":"nyc mocha && cat ./coverage/lcov.info | codacy-coverage && rm -rf ./coverage","test":"mocha","build":"tsc","tsc:w":"tsc -w --pretty true","lint":"tslint src/**/*.ts src/*.ts test/*.ts --config tslint.yaml --fix"},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^0.1.3","@types/chai":"^4.1.7","@types/mocha":"^5.2.7","chai":"^4.2.0","codacy-coverage":"^3.4.0","mocha":"^6.1.4","nyc":"^14.1.1","source-map-support":"^0.5.12","ts-node":"^8.3.0","tslint":"^5.18.0","typescript":"^3.5.3"},"author":{"name":"SirMomster"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SirMomster/bufy.git"},"dependencies":{},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","all":true,"include":["src/*.ts","src/**/*.ts"],"reporter":["text","lcov"]},"gitHead":"84791eb6803cbc682726fb662e7e3852cb1a8dce","bugs":{"url":"https://github.com/SirMomster/bufy/issues"},"homepage":"https://github.com/SirMomster/bufy#readme","_id":"bufy@0.2.1","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-p5+/eyfrK+0Mf/IQ6HLcC1fX0ePzveoytJcSrAOJe0b3V7LSKPeyc9DpWfdEK2dLr8R9ShJUTJdxaNRI4ApmyQ==","shasum":"981d72a62258d94e6dc65202aff3e81e4780ca7f","tarball":"https://registry.npmjs.org/bufy/-/bufy-0.2.1.tgz","fileCount":88,"unpackedSize":104452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJettRiCRA9TVsSAnZWagAAKOMP/2HfWXyXkG0jxuv8JsUF\n48koMsVamjlOybq1ucSJvJN45efzEY+/LpBlYRJDJH+7bisSjAvDgm1iKske\n6RAyKqKXNTrdyL+JraSwpL63J1Bka/NhuVC0B+Tv+eMq5F8JDZmH6afBsgLR\nYW5LdQML5xvD68YfTxrQqdc6xw/Gho6o5J9umj8V0AwW+UBHdviRQypEWPdY\nNnimNBSeVhLiuUp5r/2wpzeUB/+nTjaGIGS2lAZy6ylAaoEKhEBercg6Y0wG\n1LTrXmf38wjVG5M4tGHI5ICa5ZOBhXVKi8o4yplxi6xjPqTP8E04A9i9F9nb\nWs0DhA+KJGClukgV2yIY6i7V5FVWD+kSbYRWFsSDEmOTQ1xTNosXszF0W9Jj\nQ3bKKablI++tqmOeWOpGDyJEgM4Yly7aKneoEyZSNcL5x1P47gF2CTvQD/2n\n96bQvRvmiDX46Ra+gGLTagIdKpkwrcmgYZU0teyHSf7F63dvYBhPG9rAlkgC\nuxo1NXNZxqF2pG0EMcqBu8wmlniEvca37c2JhWZU668Pg1rOPAkxW8CS9hws\nw5twa7tOaq5Du0hHveP5/UrhYqKuEe22JujmiAf6eQloX/jiYg15x4Vvk132\neqBDyPolwTOOn2UjlUnjnVYAAhEUYd0LaQctN6d0AseBmMnOjNRS9pN4tt7M\nzZuK\r\n=+9hn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLuWEg8k1/StDKhVSNCoUU3yJu6vmWwlQ/znbdfTv+ZwIhANQAvg87kn1k6xZPhjqF0gC4JYEijumjWLJOVmKARR2W"}]},"maintainers":[{"name":"sirmomster","email":"mitchmommers@gmail.com"}],"_npmUser":{"name":"sirmomster","email":"mitchmommers@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bufy_0.2.1_1589040225779_0.8190962845026393"},"_hasShrinkwrap":false},"0.2.2":{"name":"bufy","version":"0.2.2","description":"Library that maps buffers to objects and back","main":"dist/index.js","scripts":{"coverage":"nyc mocha && cat ./coverage/lcov.info | codacy-coverage && rm -rf ./coverage","test":"mocha","build":"tsc","tsc:w":"tsc -w --pretty true","lint":"tslint src/**/*.ts src/*.ts test/*.ts --config tslint.yaml --fix"},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^0.1.3","@types/chai":"^4.1.7","@types/mocha":"^5.2.7","chai":"^4.2.0","codacy-coverage":"^3.4.0","mocha":"^6.1.4","nyc":"^14.1.1","source-map-support":"^0.5.12","ts-node":"^8.3.0","tslint":"^5.18.0","typescript":"^3.5.3"},"author":{"name":"SirMomster"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SirMomster/bufy.git"},"dependencies":{},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","all":true,"include":["src/*.ts","src/**/*.ts"],"reporter":["text","lcov"]},"gitHead":"b7960cb7a63a6f8dd1c4bb4fd2b4e3a319cf6426","bugs":{"url":"https://github.com/SirMomster/bufy/issues"},"homepage":"https://github.com/SirMomster/bufy#readme","_id":"bufy@0.2.2","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-WZZO2XhqDa/I/QOl9+f3S3X7kdPNvnXR6Ny1WGuSRzpRr84+cM9ZK8cvGDsRU+y74gj/Y4y4TCa2MuT/g4kH1w==","shasum":"7792d74851c75230a6d4e1519b08a6527a93be7c","tarball":"https://registry.npmjs.org/bufy/-/bufy-0.2.2.tgz","fileCount":88,"unpackedSize":104892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewvO6CRA9TVsSAnZWagAAh/AP/1CAiHUXYDBPskEmr+OC\nfrHxCtIyOFKnEahqulGgr/wxbcC+Mlf/j2xIevS+rUjeaTBndxq4NukRcQBD\ndfeMnFsvZU5/3mK6QeytU6X3I57Huix1KfL71ZTu/WVmjEL8ExdxTsiY1lGy\nrCnZ6beEWWdEgKibnFqofE1VyS0ohbRNU4B6Pz1/k7JGLnTQu7AJX0tb+lKQ\nW5p/SDH/gphVx6b3avXbzONHd5tpFJBYrne3zrAiwpulWX2zGFR8Y0/Asnqy\nTKoZYpkHefWAWWKAajhs7F6RHpp78NS3kVaxTUxYQGEpXoXS18/P1RsqRLzc\nCy2sUXA/bgKfTCBml941O/nEx68aaREW2vwnsvhHJze5+9CsJMWU4uCem4eW\nmqK7JGAs9FYl4jMdiFVVusWBiDRUUrvp8jXSW3VvA/3Xnjh+k2nwS3NM7TY7\nPM5ssiqdUFh7TeASGc5XCmwTSfnSzV0TeJdWywH3lKd7ZklKumOYb48qrQHn\nvFYRMym4zn/XyV6CiVLZwb0yNrJx0Sc5T4/i4/zFhlOdm4zDvykaOB6SiyIw\n5dZrmUDPQM/ZO4abZo6lk8i3CBvO9M7yefO+WK6Tt1EPCvzB3wbIVdMlo5Ml\nyNRuecH5jfEC2ca3h3Q5KSEdvpoxDvU7xDKayWL7nU0A2yRLFa/A4LHuxo26\nL4Zt\r\n=je/r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5M8r04ajnvc/Fbkf/4O9olukYMnMD5TP56Z+OlW/uFwIhAKir1g/lPvBczG5S9kWQ3sqHqdI4nkAjnH/hxqSspSmW"}]},"maintainers":[{"name":"sirmomster","email":"mitchmommers@gmail.com"}],"_npmUser":{"name":"sirmomster","email":"mitchmommers@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bufy_0.2.2_1589834682162_0.5809497544679989"},"_hasShrinkwrap":false}},"maintainers":[{"email":"mitchmommers@gmail.com","name":"sirmomster"}],"description":"Library that maps buffers to objects and back","homepage":"https://github.com/SirMomster/bufy#readme","repository":{"type":"git","url":"git+https://github.com/SirMomster/bufy.git"},"author":{"name":"SirMomster"},"bugs":{"url":"https://github.com/SirMomster/bufy/issues"},"license":"MIT","readme":"# Bufy\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/9dcc2a61a75c44b488f2c3278e6bc36f)](https://www.codacy.com?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=SirMomster/bufy&amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/9dcc2a61a75c44b488f2c3278e6bc36f)](https://www.codacy.com?utm_source=github.com&utm_medium=referral&utm_content=SirMomster/bufy&utm_campaign=Badge_Coverage)\n[![npm version](https://badge.fury.io/js/bufy.svg)](https://badge.fury.io/js/bufy)\n![dependencies](https://david-dm.org/sirmomster/bufy.svg)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/sirmomster/bufy/issues)\n[![Known Vulnerabilities](https://snyk.io//test/github/SirMomster/bufy/badge.svg?targetFile=package.json)](https://snyk.io//test/github/SirMomster/bufy?targetFile=package.json)\n\n## What is bufy\n\nBufy is a library that allows you to map ArrayBuffers on Objects and back. For example:\n\n```js\nconst locationModelDescription = {\n    id: Bufy.type().int8Type,\n    x: Bufy.type().uInt16Type,\n    y: Bufy.type().int16Type,\n    active: Bufy.bool(),\n}\n\nconst locationObject = {\n    id: 123,\n    x: 1,\n    y: 2,\n    active: true,\n}\n\nconst LocationModel = new Bufy(locationModelDescription);\n\nconst buffer = LocationModel.toBuffer(locationObject); // [ArrayBuffer ...]\nconst object = LocationModel.toObject(buffer); // { id: 123, x: 1, y: 2 }\n```\n\nWe use this library internally to send packets over MqTT and WebSockets. It's a lot easier that doing the mapping by yourself and\nit allows you to use tiny packets while keeping a JSON structure.\n\nThe model is also reusable, which makes it easy to build a shared model module for your projects. It supports both node and web with zero dependencies.\n\n## Supported types\n\nAll the JS supported types are supported:\n(u)Int8, (u)Int16, (u)Int32, float32, float64\n\nWe also added additional support for booleans (uInt8), lists, nested objects, recursion and nChars (strings).\n\n### NChars\n\nThis will map a string to a char array which then can be mapped to a buffer and back.\n\nPadding is added to the end of the string if its smaller than the maxLength (10 in this case). If it's bigger, than the string it will be truncated. By default, the string will be trimmed when it's mapped on an object.\n\n```js\nconst userModelMapping = {\n    username: Bufy.nChar(10 /* trim? = true */),\n}\n\nconst user = {\n    username: 'test',\n}\n```\n\n### Recursive, List and Nested\n\nRecursive and list do almost the same, but the difference is that recursive will try to map until it's at the end of the buffer/object, whereas list uses a fixed amount which is set in the object itself (by bufy) that tells it about the amount of items there are to be mapped.\n\nNested allows you to have objects in your objects/lists.\nThere is still one big limitation of lists and that would be multi-dimensional lists which aren't supported yet.\n\n```js\nconst entityLocationModel = {\n    users_amount: Bufy.type().uInt8Type, /* added by bufy! */\n    ...Bufy.list(\"users\", Bufy.nested({\n        id: Bufy.type().int8Type,\n        x: Bufy.type().int64Type,\n        y: Bufy.type().float32Type,\n    }),\n    ...Bufy.list(\"random_ids\", Bufy.type().uInt8Type),\n}\n\nconst user = {\n    users: [\n        {\n            id: 254,\n            x: 24785943,\n            y: 13409834,\n        }\n    ],\n    random_ids: [1, 2, 3, 4, 5, 6, 8, 9, 10]\n}\n```\n\n## Typescript\n\nThe library itself has been written with typescript our first example would then look something like this:\n\n```typescript\ninterface BasePacketObjectMapping {\n    id: number,\n}\n\ninterface LocationObjectMapping extends BasePacketObjectMapping {\n    x: number,\n    y: number,\n}\n\nconst locationModelDescription = {\n    id: Bufy.type().int8Type,\n    x: Bufy.type().int16Type,\n    y: Bufy.type().int16Type,\n}\n\nconst locationObject: LocationObjectMapping = {\n    id: 123,\n    x: 1,\n    y: 2,\n}\n\nconst LocationModel = new Bufy<LocationObjectMapping>(locationModelDescription);\n\nconst buffer = LocationModel.toBuffer(locationObject); // [ArrayBuffer ...]\nconst object = LocationModel.toObject(buffer); // { id: 123, x: 1, y: 2 }\n```\n\n-----\n\nFor more info make sure to check the tests.\n\n## Roadmap\n\n1. Performance enhancements\n2. Add support for multi-dimensional lists\n3. Add tests for Web\n4. Add a pre-compiled javascript bundle for Web\n5. Add better docs\n\n## Contributing\n\nJust make a PR :) also feel free to open an issue for ideas, improvements, issues etc.","readmeFilename":"readme.md"}