{"_id":"raptorjuice","_rev":"37-df42b32d933d3d46465918cb98109a9d","name":"raptorjuice","description":"The JungleFresh Swiss Army Knife.","dist-tags":{"latest":"0.2.12"},"versions":{"0.1.0":{"name":"raptorjuice","version":"0.1.0","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"grunt":"^0.4.4","browserify":"^3.46.0","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","rain.js":"^1.0.0"},"scripts":{"test":"mocha --reporter spec ./spec.js","postinstall":"cd node_modules/rain.js; npm install"},"_id":"raptorjuice@0.1.0","dist":{"shasum":"52ca6559b38906f81c71f30a450aeef4b895441c","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.1.0.tgz","integrity":"sha512-UThBvbnjSpxFKCcWtHm+LXd4e70h/BuuyibLdY0GqKBSUIy3b7mbba03ls9mqQftrwuJgMilfIy78aXswcFApQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqjRmzbhiAmuLke0CUOUSVYqi07AOgByLwLP0HmktjHAiEA4w2+PKU/NuOUMbbApwoc+VS0vNRyTQ+kitulR4sMGP4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.1.1":{"name":"raptorjuice","version":"0.1.1","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0"},"scripts":{"test":"mocha --reporter spec ./spec.js","postinstall":"cd node_modules/cheeba; npm install"},"_id":"raptorjuice@0.1.1","dist":{"shasum":"5dfe260b484aaec5568f15ddf7287231fbba922d","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.1.1.tgz","integrity":"sha512-rc5S1S/441SO+pI3ERWXgJqETHfwYAat/Vkdo17Pn1ZTxrLMzZxBaIhbs4Kyy0yRo1GqEvQTi/EGbbdLLDdDcA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFAtWoSOXyc1w1O5RgrNctK60JxxmTE/bICjhL5OebFAiArXVL3yrFMJTHOpd32QckaA04XrgS/egWSpBks/qaaCQ=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.1.2":{"name":"raptorjuice","version":"0.1.2","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0"},"scripts":{"test":"mocha --reporter spec ./spec.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.1.2","dist":{"shasum":"4ce2256df6f5dea5f0a0f22d4e45b722e0ae3c18","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.1.2.tgz","integrity":"sha512-ruFnDr89ISvargfHgURnqQVCcQNXGfZr95SESVpUpHXa22Fs+SEo4PSyUMSKLvWkW9FLIEQv0wwx2NzQlFxHnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAvVb2Y+gokSREQj/ym37LpyXXueFDK1feHf35tfPWoAIhANUWZ46shNhyGkJmBTlPmDTnpoSP6zteUkkjYGbz8j2P"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.1.3":{"name":"raptorjuice","version":"0.1.3","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0"},"scripts":{"test":"mocha --reporter spec ./spec.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.1.3","dist":{"shasum":"0158db72c607020c41a344ef7b7d10f6a2e67dbe","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.1.3.tgz","integrity":"sha512-3004muUUiODFO+bwNWP2A5QyFzvyOaJTmaFvYZ19sZXbdY+LJ8psfBUfcgLhrBUhCzUZtyW1siVRSngVl3HV0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpSTgy28/HAwkZhFE0xs4ebZTBoe/O7d++dUqiBWtZsAiBLvlqzmKljsz7bYQyrsUl22Hui7F5SjjCVjbEgAetXfA=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.1.4":{"name":"raptorjuice","version":"0.1.4","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0"},"scripts":{"test":"mocha --reporter spec ./spec.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.1.4","dist":{"shasum":"aa2fa1b7a1911b1cb7eb788612ff623956dbc141","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.1.4.tgz","integrity":"sha512-V6hFTVHGGGDXb8raWCnT03rVXYH+6noGQk9h+D1ple75VdAwWdPbVbqwGkj48iWk8PXGLKaiuXgi1APEFSiZWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDprjTQNmiZjLxHYrKAYEaj6X7/JLelfbQkVy+GoVdUPAiEAwOk3WGQc97ZesVQltT1RPFmt5zXeA1WoAjeIzW5RHn0="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.0":{"name":"raptorjuice","version":"0.2.0","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.0","dist":{"shasum":"138a1da7629aab25c948dd3df52f14d4f71ecc40","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.0.tgz","integrity":"sha512-PJwWch1scv86Wq2IJ9nsCKFnDz5eWD4yDq8wkzKgMoU5cV5Am1Y/QrtQYvWxhsXRbiZKh5syztElDEwaLYn+ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmBkae7sU3sC+1XnCUKZalLLpkoKEFJhoSqkTzFXRwrQIhAI5QqHeaKEl0NMJt30Gxi3EwrOZ3TbWbw8zsvAC8/e0W"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.2":{"name":"raptorjuice","version":"0.2.2","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.2","dist":{"shasum":"85f2dd0230a3b5deba0b4aa2abca86bb15479658","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.2.tgz","integrity":"sha512-lSgA2uqUyIMlqHu4Q2LdD33vwI3TsCuc6DH8rjkX8Q5ZEItZWWNjijABWImJNVupItxQptyInHubCX0MMuErpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC54QuYVPZ191DqSvo0Ndtlu02mqUV5Gi4JPpUcEd///AIhAJGB3t6XAVXOBsPwDWXOXWadG65hIqrAOAO+r1ohQc5J"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.3":{"name":"raptorjuice","version":"0.2.3","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.3","dist":{"shasum":"424b3c4eb99f03fff8ec41fb10f65a45bf7f32fa","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.3.tgz","integrity":"sha512-Rw7hr+7BLnaiiG6mIirsBZjs6TmCNrq5zfxyosicwZzjlFtSPfTrGFJHjm2xI2llZoUjMCxVWWJocBHfqdO2yA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoEehovvnP6673w4WG5JWByYVLaeTn1ydDXF5QCJNQRAIgcVEeNw6wnMxTXmJmEuwkKgcD78htoSkgQRlSU01LvaI="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.4":{"name":"raptorjuice","version":"0.2.4","description":"Iterators, and more...","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.4","dist":{"shasum":"210f65b52c7d13711bdee7135ceea36415866245","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.4.tgz","integrity":"sha512-s7QYXxFSPik/B7AmAATmSLZlL3sSM0DVAqoGWdFBFWWtceC3Zr4sTEhoA5Rz6BnvIuJN9FydZOgrNa8VoaIQXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+8/qiDXn8vIMhgXflP/NaxMmgxYutUeeq9FgSbzczpQIhAL13SjCL8U5bKzkREvlwV0ZfVBExS5ZgeQLycTRrXx6N"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.5":{"name":"raptorjuice","version":"0.2.5","description":"A JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^3.46.0","grunt":"^0.4.4","grunt-browserify":"^2.0.8","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.5","dist":{"shasum":"66a7c38d5d0d9baddb2ce98e4fe76fd39c104849","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.5.tgz","integrity":"sha512-2bTnjZkSDtNRPryN2VeIUnggM4fgIEsOJWUGGhNEw+98q1GiCKWhxZDOeQPoB2RijE6ui+5IyKSeYsqM3EhT4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJhCXU+5Cx5BCX6YTkCbubtupDiZJd5DpbvV/Zi7hiMAiAGkv2BVaaqJKBZePSeN14vl4m9v6ts1PL43wDdpNTEvg=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.6":{"name":"raptorjuice","version":"0.2.6","description":"A JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.6","dist":{"shasum":"856777119dbf149afbb585b1251c8971153af85f","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.6.tgz","integrity":"sha512-m7blHO9sJanAvtdTJ/dqKgH1aRGedLhzMtYdT+p0OA+9A52woiiiWeaBrsc2+JVonfKy9TouAin7OFRIoMHCMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICd9md9zT274iQ1PYOc7tuiqFNEn9wD+AlhqaeS4J1kaAiEAkK64DPGxUxr5gggE0CJjd8w/GpZC+mKKJ3LVoFEuobU="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.7":{"name":"raptorjuice","version":"0.2.7","description":"The JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.7","dist":{"shasum":"756a47076f2d28f8b3ef7001b677c02660153f38","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.7.tgz","integrity":"sha512-ceLAlkhZwtEXrWwew7W+o6ufUaGcrLQ9mIT+8UEYRhgplhHUtHbY24XFDlRw2lvpYeAzpuM/ib6Kom+GaHBtPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4QAvpjssidhgU7rHlmmEyFsP5K5ZbA9uLY+AlfFtS6QIhAIgsk27uetB4KnGcojcwV6sCnwnsuwganJdcx5QWZ2C8"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.8":{"name":"raptorjuice","version":"0.2.8","description":"The JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.8","dist":{"shasum":"51856235dd16f11b87e54009e817610a240e44e9","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.8.tgz","integrity":"sha512-QIReMMKcLUPVd4gSuvUgOqD2A0yi3YNWlEovOJN2SOvr+kqvDtihBwhjNEhsA5WW3SCasbZoUNkQmdbX8a5kfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAH57XXq/s5pAeXOSGrxRYLrb21xSwD3Oqk/nZZ5IQtZAiEAkUwXz3q5Rk5fDIWJQhdHzFZiDN/m3vfB3ZCSgwI1kT4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.9":{"name":"raptorjuice","version":"0.2.9","description":"The JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.9","dist":{"shasum":"80c0ba3a11b8d962ebdc55639b56cc4f4bcfaaa8","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.9.tgz","integrity":"sha512-uzw2kOaVAlXHFEBb2E0keCc04KSGWjC9VXSSlIC7PA1qm9marAE67KPYb5ZY6qD3YL4SkqlQjH+SIMRAwvxFIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDD9Y9Zd/WQl7BGkH8cWY8HNSoVpfD1YWU1d9oCJ1PEwwIhANkt8yzjeWrvbuPyDfrzvhJmWG9TQihV2uH4wdmCv3BM"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.10":{"name":"raptorjuice","version":"0.2.10","description":"The JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.10","dist":{"shasum":"adf1d92af491c9e043060649d56f61c1c1b70def","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.10.tgz","integrity":"sha512-QTDX0AQ95G21HEXoYxx3JmUcvqriRwcB7HVqohUSFVn9f0XzCLGfrepu6+C2qsl/h9ZxOf1mSVdiU9Stb3J/ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnRCEusJ8CYPmIN9ZccG6pHLmIvZjgD5oXCPo3NfYlugIhAJ4MyzysNUvdz5gQzGS9hyosrj19td23RhU1xteU24Kp"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.11":{"name":"raptorjuice","version":"0.2.11","description":"The JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.11","dist":{"shasum":"093bc5999f624323d38b8d064c3b7fb209481b67","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.11.tgz","integrity":"sha512-ZcUNXisShWG5kvOyRpHBW+REnIhOKw0dTKNcpawEZ90B1YYEMrEiMO0Yw+fTgzyiin8D0CgcAuIbiLo5g+tfIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0vm4ZEK6CdOs/YYd6DsBI6cObysctde9193E3xcdpEQIhAOI6qyYquysrqXinxoLNbNAhQ8DdmNiZQ0amYBm6LbYf"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]},"0.2.12":{"name":"raptorjuice","version":"0.2.12","description":"The JungleFresh Swiss Army Knife.","repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"keywords":["async","array","arrays","iterate","iterator","iterators"],"author":{"name":"psev"},"license":"ISC","bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","devDependencies":{"cheeba":"^1.0.2","mocha":"^1.18.2","browserify":"^4.0.0","grunt":"^0.4.4","grunt-mocha-test":"^0.10.2","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.4.0","ink-docstrap":"^0.3.0-0","grunt-jsdoc":"^0.5.4","grunt-contrib-clean":"^0.5.0","grunt-browserify":"^2.1.0"},"scripts":{"test":"mocha --reporter spec ./spec/**/*.js ./spec/*.js","postinstall":"/usr/bin/env bash post.sh"},"_id":"raptorjuice@0.2.12","dist":{"shasum":"a09a06ada557d11bd7ca7e0b5c346792b7eb02f8","tarball":"https://registry.npmjs.org/raptorjuice/-/raptorjuice-0.2.12.tgz","integrity":"sha512-siK4QIs4CvyZvdgOurq4sVTzDzGU/JS1Fmz+klt1I1DAXeX44YuBY0x2moeH1MHQI/m8UkL6d6MkOTjoWRGRtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEKld4Nb/vTeT0JjwIT9AXJ9XJK/GSD7rOYcCoz76NVfAiBrtheomNzJmfRst2+fyU5x+qAL0HUHSb5JlQrRidDv0A=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"psev","email":"look@into.it"},"maintainers":[{"name":"psev","email":"look@into.it"}]}},"readme":"---\n# RaptorJuice\n  [![Build Status](https://travis-ci.org/junglefresh/RaptorJuice.js.svg?branch=master)](https://travis-ci.org/junglefresh/RaptorJuice.js)\n\n## Preface\n\n  RaptorJuice originated as a utility library for\n  [Elixir](https://github.com/junglefresh/Elixir.js). It implements\n  iterators, type checking and other generally missed utilities in\n  JavaScript. It is lightweight, (and may become lighter in the future) at\n  around 6.5k uglified.\n\n  * The [source](https://github.com/junglefresh/RaptorJuice.js).\n  * The [docs](https://junglefresh.github.io/RaptorJuice.js).\n\n## Purpose\n\n  The main goal for RaptorJuice is to implement iterators, or generator\n  objects, with a concise and robust API.\n\n## Installation\n\n  * Ensure that you have [Node.js](https://www.nodejs.org/download)\n  on your system.\n\n  RaptorJuice is entirely self contained and published on\n  [npm](https://npmjs.org) so all you need to do is:\n\n  ```\n  npm install raptorjuice\n  ```\n\n## Development\n\n  * Ensure that you have [Node.js](https://www.nodejs.org/download)\n  on your system.\n\n  * Prepare your environment by executing the following commands:\n\n    ```\n    git clone https://github.com/junglefresh/RaptorJuice.js raptorjuice\n    cd raptorjuice\n    npm install\n    sudo npm install -g grunt-cli mocha\n    ```\n\n### Testing\n\n  To automatically run tests upon saving changes to the *source* or *tests*\n  run the following:\n\n  ```\n  mocha --reporter spec ./spec/**/*.js ./spec/*.js\n  ```\n\n  * Upon execution of the following command, after each write:\n\n    * The unit tests will be confirmed.\n\n### Building\n\n  To begin automatically building the project, run:\n\n  ```\n  grunt watch\n  ```\n\n  * Please note that a Java Runtime is required due to the **jsdoc**\n  dependency.\n\n  * By executing the following command, upon each write:\n\n    * The unit tests will be confirmed.\n    * Documentation will be regenerated if all tests pass.\n\n## Demonstration\n\n  If you are interested in any of RaptorJuice's secondary functionality,\n  please refer to the\n  [documentation](https://junglefresh.github.io/RaptorJuice.js).\n  As stated above, RaptorJuice's primary goal is to create generator\n  objects, and more specifically, to greatly simplify asynchronous\n  iteration.\n\n### Forward Iteration\n\n  An `iterator` object's default direction is forward.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3 ]);\n\n  while(gen.remaining()) {\n    console.log(gen.next());\n  }\n  ```\n\n  As you probably expect, this prints the values: `1`, `2`, and `3`.\n\n### Backward Iteration\n\n  `Iterators` can also be reversed.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3 ]).reversed();\n\n  while(gen.remaining()) {\n    console.log(gen.next());\n  }\n  ```\n\n  *Note thate the `reversed` method actually makes a new iterator.*\n  \n  This prints the values in the array in reversed order.\n\n### Previous Values and Reverse\n\n  An example of iterator reversal follows.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3, 4 ]);\n\n  gen.next(); // 1\n  gen.next(); // 2\n\n  gen.reverse().next(); // 2\n  gen.reverse({ discard : true }).next(); // 3\n  ```\n\n  As a convenience, a `prev` method also exists. It calls the `reverse`\n  method, then the `next` method, followed by `reverse` again. It takes\n  no parameters.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3, 4 ]);\n\n  gen.next(); // 1\n  gen.next(); // 2\n\n  gen.prev(); // 2\n  gen.next(); // 2\n\n  gen.next(); // 3\n  ```\n\n### Remaining and Length Counts\n\n  The `remaining` count is direction dependent.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3 ]);\n\n  gen.next();\n  gen.remaining(); // 2\n\n  gen.reverse();\n  gen.remaining(); // 1\n\n  gen.reverse();\n  gen.remaining(); // 2\n  ```\n\n  This is in contrast to the `length` method, which always returns the\n  *actual* length of the underlying data model.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3 ]);\n\n  gen.next();\n  gen.length(); // 3\n\n  gen.reverse();\n  gen.length(); // 3\n\n  gen.reverse();\n  gen.length(); // 3\n  ```\n\n  The `length` is modified automatically by the `push` and `pop` methods.\n\n### Copyable Iterators\n\n  `Iterator` objects can be copied at any time. The copy will have the same\n  state as the original.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3 ]);\n\n  gen.next(); // 1\n\n  var cpy = gen.copy();\n\n  cpy.next(); // 2\n  gen.next(); // 2\n  ```\n\n  Each copy will have it's own model, so modifications to one will not\n  affect the other.\n\n### Push and Pop\n\n  The `push` and `pop` methods allow us to modify the modet itself are\n  indexed absolutely. Indexes are `1` based, as opposed to the standard\n  `0` based indicies we are used to.\n\n  *This was done for mathematical simplicity.*\n\n  ```\n  var gen = R.iterate([ 1, 2, 3 ]);\n\n  gen.push(1, [ 4 ]);\n  gen.data(); // [ 4, 1, 2, 3 ];\n\n  gen.next(); // 4\n  gen.pop(1); // [ 4 ]\n  ```\n\n  `Iterators` can be created empty, then populated later.\n\n  ```\n  var gen = R.iterate();\n\n  gen.push([ 1 ]);\n  gen.push([ 2, 3 ]);\n\n  gen.data(); // [ 1, 2, 3 ]\n  ```\n\n  The `pop` method also may also be supplied with a *count* parameter to\n  specify how many elements to remove.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3, 4 ]);\n\n  gen.next(); // 1\n  gen.next(); // 2\n\n  gen.pop(1, 2); // [ 1, 2 ]\n\n  gen.prev(); // undefined\n  gen.next(); // 3\n  gen.prev(); // 3\n  ```\n\n### Data and Index\n\n  The underlying model and cursor index are available through the `data`\n  and `index` methods.\n\n  ```\n  var gen = R.iterate([ 1, 2, 3, 4 ]);\n\n  gen.data(); // [ 1, 2, 3, 4 ]\n\n  gen.next(); // 1\n  gen.next(); // 2\n\n  gen.index(); // 2\n  ```\n\n### Transform and Generate\n\n  To generate the\n  [Fibonacci Sequence](http://en.wikipedia.org/wiki/Fibonacci_number)\n  we could do something like the following.\n\n  ```\n  var fib = R.iterate([ 0, 1 ]);\n\n  fib.transform(function(v, u) {\n    this.push([ v + u(1) ]);\n    return v;\n  });\n\n  fib.next(); // 0\n  fib.next(); // 1\n  fib.next(); // 1\n  fib.next(); // 2\n  fib.next(); // 3\n  fib.next(); // 5, and so on...\n  ```\n\n  This allows us to quite concisely calculate the set of Fibonacci numbers\n  up to the first one over 10,000.\n\n  ```\n  var fib = R.iterate([ 0, 1 ]).transform(function(v, u) {\n    this.push([ v + u(1) ]);\n    return v;\n  });\n\n  while(fib.cursor(true) < 10000) {\n    R.log(fib.next());\n  };\n  ```\n\n  Passing a truthy value to the `cursor` method ensures that it returns\n  a value, meaning it will be bumped off either end. This lets us initiate\n  a while loop more simply.\n\n  Our previous implementation isn't very robust. What would happen if we\n  were to traverse our iterator in reverse? We would be appending values\n  to the end of our iterator and this is not what we want.\n\n  ```\n  var fib = R.iterate([ 0, 1 ]);\n\n  fib.transform(function(v, u) {\n    if( (this.direction() === 'forward') && !u(2) && u(1) ) {\n      this.push([ v + u(1) ]);\n    }\n    return v;\n  });\n  ``` \n\n  This second version of our Fibonacci generator works as expected. We\n  generate values when traversing *forward*, and only when we need them.\n\n  ```\n  fib.next(); // 0\n  fib.next(); // 1\n  fib.next(); // 1\n  fib.next(); // 2\n  fib.next(); // 3\n  ```\n\n  There is only one catch. Since we generate our values with the `transform`\n  method, we always have more elements in the array than we actually need.\n  In most cases, this shouldn't be a problem, but what if this is\n  unacceptable for your implementation? You need the `generate` method,\n  which is called when attempting to move off either end of the model. The\n  value returned by the `generate` method will be added to the model before\n  actually moving allowing us to create our values on the fly.\n\n  ```\n  var fib = R.iterate([ 0, 1 ]);\n\n  fib.generate(function(u) {\n    var n = u(-2) + u(-1);\n    if(!isNaN(n)) { return n; }\n  });\n  ```\n\n  Now we have a Fibonacci sequence generator from zero to infinity. Not too\n  shabby, but it gets slightly better. As you'd probably expect, the\n  `tranform` method will still be called on generated values.\n\n  ```\n  fib.transform(function(v, u) {\n    return Math.pow(2, v);\n  });\n  ```\n\n  We can now generate and caches the Fibbonacci sequence only when we need\n  to. When our generator returns a value from its `next` or `prev`\n  functions, those  values will be returned as powers of two.\n\n  ```\n  fib.next(); //   1\n  fib.next(); //   2\n  fib.next(); //   2\n  fib.next(); //   4\n  fib.next(); //   8\n  fib.next(); //  32\n  fib.next(); // 256\n  ```\n\n  *At any point the `generate` and `transform` methods can be unset by\n  providing a falsy value to either method.*\n\n### Chaining Iterators\n\n  We can acomplish some pretty interesting things by chaining iterators. \n\n  ```\n  var a = R.iterate([ 1, 2, 3 ]);\n  var b = R.iterate([ 4, 5, 6 ]);\n  var c = R.iterate([ 7, 8, 9 ]);\n\n  var chain = R.chain(a, b, c);\n\n  while(chain.remaining()) {\n    R.log(chain.next());\n  });\n  ```\n\n  Again, it's slightly better than just that. Chains actually call\n  their component iterator's `next` method. This means their `remaining`\n  count is consistent even when being incremented as part of a chain.\n\n  *Reversal of iterators that are part of a chain is not yet handled.*\n\n  ```\n  var a = R.iterate([ 1, 2, 3 ]);\n  var b = R.iterate([ 4, 5, 6 ]);\n  var c = R.iterate([ 7, 8, 9 ]);\n\n  var chain = R.chain(a, b, c);\n\n  chain.next(); // 1\n  chain.next(); // 2\n\n  a.remaining(); // 1\n  b.remaining(); // 3\n\n  chain.next(); // 3\n  chain.next(); // 4\n\n  a.remaining(); // 0\n  b.remaining(); // 2\n  ```\n\n## Conclusion\n\n  By using RaptorJuice's iteration techniques, we can flatten, and iterate\n  over a presently indeterminate sequence of values.\n\n  When all is said and done, RaptorJuice implements more of a\n  [dequeue](http://en.wikipedia.org/wiki/Double-ended_queue)\n  than an [iterator](http://en.wikipedia.org/wiki/Iterator), strictly\n  speaking.\n","maintainers":[{"name":"psev","email":"look@into.it"}],"time":{"modified":"2022-06-25T12:45:41.507Z","created":"2014-05-05T03:19:17.006Z","0.1.0":"2014-05-05T03:19:17.006Z","0.1.1":"2014-05-05T05:29:17.876Z","0.1.2":"2014-05-05T05:50:24.284Z","0.1.3":"2014-05-05T06:33:55.448Z","0.1.4":"2014-05-05T21:41:24.044Z","0.2.0":"2014-05-07T21:05:20.430Z","0.2.2":"2014-05-08T12:46:11.106Z","0.2.3":"2014-05-09T02:26:50.810Z","0.2.4":"2014-05-12T16:05:04.098Z","0.2.5":"2014-05-16T21:28:58.686Z","0.2.6":"2014-05-16T23:31:37.473Z","0.2.7":"2014-05-18T08:04:14.944Z","0.2.8":"2014-05-18T08:32:14.062Z","0.2.9":"2014-05-18T11:42:27.067Z","0.2.10":"2014-05-18T11:56:28.657Z","0.2.11":"2014-05-18T11:58:09.685Z","0.2.12":"2014-05-20T02:24:53.952Z"},"homepage":"https://github.com/junglefresh/RaptorJuice.js","keywords":["async","array","arrays","iterate","iterator","iterators"],"repository":{"type":"git","url":"https://github.com/junglefresh/RaptorJuice.js.git"},"author":{"name":"psev"},"bugs":{"url":"https://github.com/junglefresh/RaptorJuice.js/issues"},"license":"ISC","readmeFilename":"README.md","users":{"psev":true}}