{"_id":"e2d","_rev":"66-df9a522020ec74f63b3b811494735403","name":"e2d","description":"A declarative canvas renderer.","dist-tags":{"latest":"4.0.0-rc.2"},"versions":{"1.0.0":{"name":"e2d","version":"1.0.0","description":"e2d.js\r --------------------------------\r A canvas rendering engine HEAVILY inspired by `react.js` to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"ISC","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"browserify":{"transform":["bulkify"]},"dependencies":{"bulkify":"^1.1.1","lodash":"^3.10.0","square-matrix-multiply":"^0.2.2"},"gitHead":"109a26be148ec51d243987de2277fcc9f127ebaa","_id":"e2d@1.0.0","_shasum":"260653d390b8a38270614f4fa2f027a5192e708c","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"260653d390b8a38270614f4fa2f027a5192e708c","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.0.0.tgz","integrity":"sha512-seoxY7biBUibPkzdzzEYoXnMQwQbkPYWbFZ5uyatal8Hcw5jpmStT8jZ5OmRVlOnAyJ57V3yokdEaVIw3Dyv7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICMTT/uSjA2eGfsIa+wO22gdjGi8p6E1VPiaz8S4645TAiEArDfTiAyY8q9gnwtiloLAkGl6j8jWUHnr7GGXfnsLV58="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.0.1":{"name":"e2d","version":"1.0.1","description":"A canvas rendering engine HEAVILY inspired by `react.js` to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"browserify":{"transform":["bulkify"]},"dependencies":{"bulkify":"^1.1.1","lodash":"^3.10.0","square-matrix-multiply":"^0.2.2"},"gitHead":"0b30efd09c185c70e9328b28e4902c06ae33fda1","_id":"e2d@1.0.1","_shasum":"90310cf24aa8383abf4e3dee0f6e1b1ed6270e3c","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"90310cf24aa8383abf4e3dee0f6e1b1ed6270e3c","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.0.1.tgz","integrity":"sha512-Eyex9KAswxPsgbSO/Ot2wwq4XZhnj0Voqj2X+RdaBho6jgsq/fzrgy8eU17u6VSZWP7NSC5VLfPhSxVgkWf2vA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAG8DfUM39GxGIDX1cSvkKFAQkQB98vSjtLuSQFw3LzHAiEAkdJOl3wJtjeA8Yk76p0FeXqn0O57TNgKLwMWEDudMJ4="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.0.2":{"name":"e2d","version":"1.0.2","description":"A canvas rendering engine HEAVILY inspired by `react.js` to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"browserify":{"transform":["bulkify"]},"dependencies":{"bulkify":"^1.1.1","lodash":"^3.10.0","square-matrix-multiply":"^0.2.2"},"gitHead":"ae7e5a09854426231e7ca6e120c6ce8e026c2c3e","_id":"e2d@1.0.2","_shasum":"9130813627f794d9b54ec7f4605e94d36116b3e9","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"9130813627f794d9b54ec7f4605e94d36116b3e9","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.0.2.tgz","integrity":"sha512-9OQ5nM0ZfagBFyDxDBaDoES0DXXMqdsQeZZv/Vnks52zabngUFAuVEHZyrzC6zKb7Fcs/INwOaWIFcxuBoAY+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAntma5q0q4mVObklNsOQk+5TzsBrETzTxu42Ue7yNjAAiEAhHjptMkuM2MBFgJAgGfZJP/ogp+3pTxivkViBqe2F90="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.0.3":{"name":"e2d","version":"1.0.3","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"browserify":{"transform":["bulkify"]},"dependencies":{"bulkify":"^1.1.1","lodash":"^3.10.0","square-matrix-multiply":"^0.2.2"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"e532224c1b5d8b61d5426ce938cc0106332bb4d4","_id":"e2d@1.0.3","_shasum":"5fcb5ed301f077e579d256e8441651b0e247d875","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"5fcb5ed301f077e579d256e8441651b0e247d875","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.0.3.tgz","integrity":"sha512-fr0NrnkvC1BSTMmUWveFK5dXsK3n5gODX32xxpP2ljDPh3vea/xHga8QxAsCs045AqOWM2wn/71s32k8TPDstw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwrkwe4tNKfdP+qAB9UWJ78R3Byvtks+zr5sCOCeXNWQIgXHOMobR605Wg1zzhV5Oi7QdHmc/XSDtOKZOM2oLDatg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.1.0":{"name":"e2d","version":"1.1.0","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"lodash":"^3.10.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"69cc8f58e5bb9f2824b9a8553da6c1d8da26e13a","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.1.0","_shasum":"05389137c450b9cbb8edd14aae6fbe9f310d7699","_from":".","_npmVersion":"2.12.1","_nodeVersion":"2.3.4","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"05389137c450b9cbb8edd14aae6fbe9f310d7699","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.1.0.tgz","integrity":"sha512-6fz1/8bKwe6uSzNTJt2lfIMOOMjjPCF343xgy51IRtLKDJ291JOvdgzAvojFxBGZHxvMOU4IPhR3G+Dla13/JA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBXUV4uc/qhqh5DcBhbJa9qXHnzXj/kFXwccqwkIRQeQIgNCsh9DC5mHUOibGNY8wQFdSwJzgkUQ/mTQLfqc/5Fcg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.2.0":{"name":"e2d","version":"1.2.0","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"6681ca011f7578c6d7c0fad34e0ae31a344cd0b3","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.2.0","_shasum":"a6c077f0d2eb277e60a6aa32eb867c9562bdd712","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"a6c077f0d2eb277e60a6aa32eb867c9562bdd712","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.2.0.tgz","integrity":"sha512-gLmqzRxvXnKuUTecZ2sQkjF9hPU8DcQOI3ElUjtHM/hDJmx6Tm/4v5hHOPAjYAQpVfuyTzmI9VHzDTFXBrsX5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeX0BINKlmfm330+lnb/uJDAwM/4mLXseZbZOhFdJizAIhAKNpt2oC6jDcn6OSMdrQEY+59ZCeUPJQvzQ+/UBINgqi"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.2.1":{"name":"e2d","version":"1.2.1","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"ec94ec051148a13ed591e102e3b2bf1c315971cd","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.2.1","_shasum":"443e5dac2c78b7574690a09a09f6a3ced6bee6d5","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"443e5dac2c78b7574690a09a09f6a3ced6bee6d5","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.2.1.tgz","integrity":"sha512-gtvQEt4Ff0powb+TkLia2x0x5PNyW1hz94Vk3n5Y42mGqzDvTUheQr0IHIWahcHdy8SjeMJVhQMf8Lg1inc0dg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxEkI1EV5W/pG932Y/dR1DqvptvEI23wB1COrVRHRewAIgAPsxr+NHhKGYBZvye5dklc6E7HZgdmULxkFKx2883eg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.3.0":{"name":"e2d","version":"1.3.0","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"af2257a4b5eef9ef2fcac9705ffac2f14ecdf302","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.3.0","_shasum":"b3625c3c33726ac5e5912da6a7c93c01c9d0a786","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"b3625c3c33726ac5e5912da6a7c93c01c9d0a786","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.3.0.tgz","integrity":"sha512-P2VI/hQhfTLG9K3q6enFiEGcGvNx28m56Z+cPzLC8PSULkYLraCj5sV9xuDpagoeTa3KhnGTOlaQGf9Q9zreQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSeGetYkgfRY8125DFFFbZ4gf6Kd/GDWz37gz4M4owxwIgLzVrs+h01ot2liXqcRlsrmbNAYIyM11w+FMS92zedFg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.3.1":{"name":"e2d","version":"1.3.1","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"50bb076a65df653eb5f6684253f119d7d9fdf6ea","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.3.1","_shasum":"f70bf1e55d5f2d5d5754f41a4898c83ab5156bc0","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"f70bf1e55d5f2d5d5754f41a4898c83ab5156bc0","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.3.1.tgz","integrity":"sha512-D/1kN9ZkXPuRRfKEPvXv2DDgxqwwAvaT+lC9QtTj8SvXx5Hb5sydFC82agVzymly/7jb3xgQgCMwc1TGz9ToLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7kpBIQNYhL8OnW5DbWtTcsy5lRXMHpfELSBq+AO3rWAIhALLRf9DAgROfTcsLklp6fcNF+IdNZfRoaOcSERjBnY9h"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.4.1":{"name":"e2d","version":"1.4.1","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"26ce90578bbeead21ae570b1cd515aa1e5e8b8a3","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.4.1","_shasum":"38c12c3fc77e8fe9a6796d61865dc50b7c8fec56","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"38c12c3fc77e8fe9a6796d61865dc50b7c8fec56","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.4.1.tgz","integrity":"sha512-PSHNGMjAbpWz/bv2k29u1MWunTP7UrmPsjW6b5waLwI9/fVXXYlp9HM84V9gHBi0tKmvbScHDL8k2A73LGNDyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC34b1ykhCQLZZntc3w4I2JmmBv8pWs7RVdTChj0zMkugIgRvZBNav6/iNQKFxNjtNjBEFwSvFOzsBkAVMwRFLcOaQ="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.4.2":{"name":"e2d","version":"1.4.2","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"b5d9590a112b14ea4b9eeb1b7f2644d2cf72b087","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.4.2","_shasum":"b5d48e84aea40243bc4f87953563c789dc9c8f5f","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"b5d48e84aea40243bc4f87953563c789dc9c8f5f","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.4.2.tgz","integrity":"sha512-9s+wqAdGDt9XyGP+7kn2J4kG1jlh0QeHWAzXNPKWNtLxn8Vr2gCgcGloaj4TmU55+qdoVOTnmn3ORL+SASPTAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEwv8ofaKlbLeRcvAH3tmrmwe+9OdhDL5ru2vuT0jYSbAiEA+dHeb3UbLsRwkGtERjKFELoXsdA41aBIBie/qnrxx4A="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.4.4":{"name":"e2d","version":"1.4.4","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"f107b20e11c94baa14c4b7798a1185f16059131b","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.4.4","_shasum":"a4a81d1a8f1390e770f0d1f2fd52bfa485db99d9","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"a4a81d1a8f1390e770f0d1f2fd52bfa485db99d9","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.4.4.tgz","integrity":"sha512-2lExu0y9zDa/RUpG+g4U4rQpJ9ALy4SpHulLDYftx0kNYXo2IZ0mBXBmapoNNulW9EBgegVQlT/QwKF3wUdfyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICo6UFcOzVqZzYFSQgmF8U6Zsf5he3M67y/KfvG4lQP0AiEA/sdJroBdRiPCSpOXIsfAXaQcEqYp/YmFRoGdFy5LuVE="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.4.5":{"name":"e2d","version":"1.4.5","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"8ed521b692d8e78f680b4cc7dd517c33df001121","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.4.5","_shasum":"293bdcc5483dd94c00e357d017fa4f83c87fca6b","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"293bdcc5483dd94c00e357d017fa4f83c87fca6b","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.4.5.tgz","integrity":"sha512-0eN/i1lVevz6zPcO0pyAz2sfXM7BkWYou0SoVP09N+CLgNisb+LSopfep7X3nMJPAyYfrQhgVSG0xeKuRe8Exw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6xioIs8jtjge7s3OnYL62SlDa3gqBdB0jYbCVccRvyAIhAPWTx6IC+8QAK9wm/6vIG2rSyr7jBhvWUODYDGDebrdC"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.5.0":{"name":"e2d","version":"1.5.0","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"8227226212fb9994bf3cc494a6e34831a2af9035","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.5.0","_shasum":"baa9df5aab199883f59330d855aeed471dcb6ca7","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"baa9df5aab199883f59330d855aeed471dcb6ca7","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.5.0.tgz","integrity":"sha512-eXM+erEG4zCuQezCycrcZfzFCnJvvaJ5DTfUEBH+AM5V7Mv7hvJwrGOsfGalNmGGbGahfvPIqK4hZ/lCN8duIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUODzklxQO+r5XI5BYwZx/M92wvEjv2bjhCljvTAvnLAiACXilrCvUhQiVSs35ZMfolWD4V6CWeROdbtLtfrliHlw=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.6.0":{"name":"e2d","version":"1.6.0","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"f8a39c8cee722c2267c87cdc430126b8027784fa","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.6.0","_shasum":"63508efc1b0b0e949a7bce90344ed029509866e3","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"63508efc1b0b0e949a7bce90344ed029509866e3","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.6.0.tgz","integrity":"sha512-1cQgUiwq5RAmta4q6/U3vu7pLG+mkYXKiOjF2qtxovJSJQ2R6Z7iI9tDC2Y0sJtE3F5ZbYN6PM1nOQam7Yq9sw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1nca0jSf0hEJlGM465hhJUMEtD9kb3itZjjLfkFGbYAIhAOjVh9s/dPEffwr4RPJ2cgCL1v32KxgFhKyeapGIkRMA"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.6.1":{"name":"e2d","version":"1.6.1","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"66a20ae64b0ec1d9862ff9ccc38a1259a7c29c32","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.6.1","_shasum":"4180b09d10a8ba67908c58970c685921cc136bc3","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"4180b09d10a8ba67908c58970c685921cc136bc3","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.6.1.tgz","integrity":"sha512-nhR6I/evsYqgWjXCKxH+0913nA2i/e7mXVLxyKHONmyfvcdMdI7/gYNtAet6fnwMK7R6DbivPNsQC+CQc64qcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcEGn8TuJcOne1g7XNJjBPSIaalvLYgeuL5p1y7h3owAiEApEsb+LHXU3yVVoobTQLvUW5yR+Le3PTXe21M4v+IDGA="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.0":{"name":"e2d","version":"1.7.0","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","lodash":"^3.10.0","point-in-polygon":"^1.0.0","square-matrix-multiply":"^0.2.2"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"7be9397209975094b27d7eb5c6e11f5af403074f","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.0","_shasum":"87c88076f6d68e83b4e15c0a83933c9dd31e16fd","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"87c88076f6d68e83b4e15c0a83933c9dd31e16fd","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.0.tgz","integrity":"sha512-VAidZ1KgjjtTn9dKqOHn1eo8Tath7fb0wa/axbtjbpGgogJUYfWaZNWyvyWdm7vzH1rvTcohOOE/JuylFXrnXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKM7SSYGz6SsgUOssUoaX4kmb9E0yQmHcWeglf/i7IXQIhAI3FCJBPCvuRkujDGtX6PlOKXtFmxOFWvLZMrBsvYCui"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.1":{"name":"e2d","version":"1.7.1","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"3672616074307d040a1df1395953803d618c46f6","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.1","_shasum":"65252cfc851d7d2913aa58f33a84e5414e119e21","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"65252cfc851d7d2913aa58f33a84e5414e119e21","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.1.tgz","integrity":"sha512-Ar5vYa68+uXp8CPC6icsEKsj76FUMnGXtkJN/D5onFyygHRXgl8Lv+MbMQK6I6LaFtcH6B4Jdu4u5GFxX/9pxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTgAj8vEm6Ufz8L/Q3g4eT6NkkXE1A9aW8rizRxj3CvQIhANmRLblRnDNO9Yko8TUAIW8I5vL9wakdFeHeI1eeOSZr"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.2":{"name":"e2d","version":"1.7.2","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"8cf01940cb7c94c511ede26571ec91000f6d3c89","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.2","_shasum":"1c1a78b8ef4467680c052aa9896e115e7e9822b1","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"1c1a78b8ef4467680c052aa9896e115e7e9822b1","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.2.tgz","integrity":"sha512-9wYq8AcZ2Q6dQjVXwWBvMrzk5BoMKgPYm/wpU68BxyUW/lC8yc6y+FOyCjnS8MZK5bstxz2biodNtio44s+iZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2GVSrkeKte8aa/HN4vZSnZDcm3yqzmKxAp8OtxT4CZAiBuzYPvKNyg37FCo1Eas69fhFyp6RkJ7KApFVhFPweEUg=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.3":{"name":"e2d","version":"1.7.3","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"f2ba81a6cf04983f1c179b8764eb13f0a0aea4e2","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.3","_shasum":"6bc31dc55d3149975ac3c9b845e7c33398ed692a","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"6bc31dc55d3149975ac3c9b845e7c33398ed692a","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.3.tgz","integrity":"sha512-Zvcyi5xkLC1CGMHBHHZaS+kVTsfdW/Mt/IR2DT2xdqM3GFNm/MJVdpxkrj7ccYvbpCbd2P9w4720UtUftb2FhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICfPpwIrFj/ySJaDSBZrEFjDA+FyewMBJFU5of/VxWhdAiEA2JwQv+IfzLW0cQUNGAc2Tv0cDv8zFnVnD2Ii05pmqlM="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.4":{"name":"e2d","version":"1.7.4","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"7d585bd548338da2d074b42c8881eaeeb8751fa1","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.4","_shasum":"083aa711a616edf8a761338723b3b4935449bc40","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"083aa711a616edf8a761338723b3b4935449bc40","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.4.tgz","integrity":"sha512-1TFV4HOUfxwOjZMi7+at8qMp0wsXK/NlwiVzpe0Ks3IagiTpkWwUvd2WQ6BfVYAIRd5/8KqsbtUGryGXn6ndJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFKzoi55gdvBPeHx1XxeNKY0FdpmF15ipyvUMNw0L4YBAiEAq8A16+hHlT0gFFS7P5ZRZrh3aUF4yEzEyd+KJn7/+5Y="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.5":{"name":"e2d","version":"1.7.5","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"9a7b725dc69f04095f2b0d5a2cefc3f8a1b24faa","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.5","_shasum":"cbf6edeab97596a3a5019c06fb1672920aecd970","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"cbf6edeab97596a3a5019c06fb1672920aecd970","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.5.tgz","integrity":"sha512-O74+CgslspGsS3OfEuKRe6qNJS1R5TJ3wySQ2f6NEW0TQ/gdYwbQV1FoInXaPI3rxxs8c1lx/43/tKENoOqY4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQc6cDw39qOcUDjL1D9T22N2KBjDvWoBMaUYUE08CR5AiEAq3bAVRVRHup+X1kARz+cBut5ax0LiUbSontW2piv9Qo="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.6":{"name":"e2d","version":"1.7.6","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"d1fa6d2a49d4cd8d6bff95b9e8f82e30ca1fe315","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.6","_shasum":"98979846d6cd2cb452f77f1fd691046e3c202f1e","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"98979846d6cd2cb452f77f1fd691046e3c202f1e","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.6.tgz","integrity":"sha512-aXvF2Ksxt0nrljmLdF7ERkrnuWniN1hj2i0WErW3niHKdGU6bMBh9sVHw5atKXhDgXZyIFCHYtSp6lUShaQTZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZaXOJDQAyObzt+sdj2UWjcBtXQQS5xhZMibUMNdkwsAiAEY7YpY/Nb7uUzfAwyOdXJ4ZoDyIZw5RwLGxzJQjrOGA=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.8":{"name":"e2d","version":"1.7.8","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"c0dffc01aaee719ab9c8dcdbf94d5eee82edce50","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.8","_shasum":"ee1685715e946a688ea988ea20d6a38f223749d5","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"ee1685715e946a688ea988ea20d6a38f223749d5","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.8.tgz","integrity":"sha512-zg0rwChTOL82UUOVaI/Xzu48viPLt9RjsO8cdBkNVSlcMN/L6+1r/neARsqYEI95YxMee4AStrqyrmWe9hhNlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYtGzWo0Ov65jh7cd3ojJ4342Hog38dn0Xx5FHY6mr2AiEA4UXXWvqYTujkxqnVoSTBDZBBMqsHi7DQGNQN+QzBDAQ="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.9":{"name":"e2d","version":"1.7.9","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"f5dbc12dedcd053c3e943b9f2b96f31cd6f2fdff","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.9","_shasum":"590136ad6816931585d8fc6ab1cd88e9aabf5bf4","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"590136ad6816931585d8fc6ab1cd88e9aabf5bf4","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.9.tgz","integrity":"sha512-UKiB5jRfhiM4jSNTmj2Ka/qvHEeLrt11FffUj3NWbyspBzebUM8N3XuwbGJpqAcs/kJ4PMgrDtW6jL+eOO/tnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5worGQ4h8gOgbe++zZy9H7Frl0vFvbVzizKASovK9BAIgMXVmcBnIwSE5Et8m3MtATf2AdAARrbfIdyFiTv4xKXg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.10":{"name":"e2d","version":"1.7.10","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"968afd7f32b3b06263c32f8ec778a677273357a5","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.10","_shasum":"184d39dde9a04c0a4c82a6e1dc9679a4f26b1fcd","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"184d39dde9a04c0a4c82a6e1dc9679a4f26b1fcd","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.10.tgz","integrity":"sha512-z2+C9lIv6JaEISjG3mg2Nis7ccv9BbHRRQz1dUn4es9AtmYjLhw/FzlZbSnF+veEE/0AHH2nGKHPHqkvBkIdoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDa2aEsEk9rWTYhQB2GuKi04uEy+cqQ7MLrA5UGD2CZRAiB2GxDy9OI/KU7+RhEDBUznZOVEGPPRer/HZIB2RQeREg=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.11":{"name":"e2d","version":"1.7.11","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"16a3821190e36fee5b88ce7f6564fec347dd7f5d","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.11","_shasum":"68904dca4a312c0e31396608fee43bd1e70e480f","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"68904dca4a312c0e31396608fee43bd1e70e480f","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.11.tgz","integrity":"sha512-ykLizJe1+H9P7i5etbX14faUwOOY5YHa+AVXsBs97cTIbfOLz6ABq1vGcglgyPjcIw+PuaJbFA8UojHVaLhZsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPbodeMi4NYK6vF53bHYXA9KQkRSmBN6wFjpukmOJrawIhALwJEwCZDCAW/IRDlbkr47zUXwokvqB2VmHy5yBbI28E"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.12":{"name":"e2d","version":"1.7.12","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"4940d289fdaafae054b581fe51f74af344e6a7ab","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.12","_shasum":"c6a657af00b413a837d0213fbe153cf02ba38b32","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"c6a657af00b413a837d0213fbe153cf02ba38b32","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.12.tgz","integrity":"sha512-e3rbYf2J0rssnpTLj4x+LCDe2xXwBxKtfEHBlldlTiYHtwzy0Z06XcstvDLAQtyo7O2E+RfGuLrn3l3mrwUTKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjxpD1ojh6b1tE8LaxqO9bccatkfKf3X+mJ4mag6I26wIhAICfx6ndDhrFZFllotx412u9QR01N9r5Q/tjAFkF9VWR"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.13":{"name":"e2d","version":"1.7.13","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"13906306528ffc72b832c238cd76e0b9242391b2","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.13","_shasum":"8ac4762836f8d77b15d31f68a120f32eff594831","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"8ac4762836f8d77b15d31f68a120f32eff594831","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.13.tgz","integrity":"sha512-uyOL3NLlpiLpUAZtDH4+mucFgyLzaR8++QfBQWFIeVkQrtjqVVcHLRxSo4UpBDOxy7m/Ak4NHfiwysUM0viTwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHoCIY1iA0KRBtWSP1loRghF31Ulq7J4LowuakYCV6FTAiEA9cIgHlRDQJHIMzBWYYFaP6lt3+KK9tA25JkoHYXc9+o="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.14":{"name":"e2d","version":"1.7.14","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"5ecb4be39af7670d0f6ffc9547903dc2514c725a","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.14","_shasum":"f4ddfb387fd410268e836171e71cd3ea01a866d9","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"f4ddfb387fd410268e836171e71cd3ea01a866d9","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.14.tgz","integrity":"sha512-ccFLC+XoNJNs7YVMqnZPPM40I8Pr7JGp3ycE9B0iBz1lR+WHw0gSbeCzXtoD2BTHpn00oIfnBcOcyQQlra+Big==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlBl2je4bLHNMVx8Q2RWqj/S8mWzhhZ5Jk4TCAJLA2dgIge1pHfg/mn6qnrWhg4iVm9/QnAv2OClx5RzGAHzEP07U="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.15":{"name":"e2d","version":"1.7.15","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"8f899fb1dcc8492d412777903435ef09823fe062","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.15","_shasum":"e35bbe89430cd5b80081d6705a8f6c5cc93c49e9","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"e35bbe89430cd5b80081d6705a8f6c5cc93c49e9","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.15.tgz","integrity":"sha512-2oF8Ks1+tL0nTXm6edRXvO/htjdu/IDHGRnafl01saMrYNvbWIEe3q+GaY/DMHbNDqi7OY1SURKl+/R3hBCbdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBHgvGqkVfcC2My72X0qdK0y0LMww2qRva6Df8cB6PNpAiBudm7vMXxYUKn6SLJSEG5gcLF8RJSu8s79TDkDOY6OOA=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.16":{"name":"e2d","version":"1.7.16","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"4b87e4d9662f143849f7b792cf2bceb76f9a9278","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.16","_shasum":"1c4e97be33e31b47031beae9d517b16691f1a7a2","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"1c4e97be33e31b47031beae9d517b16691f1a7a2","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.16.tgz","integrity":"sha512-a5odGdUuS9EwRN2JTEcrtTAM/W13dCdg6sziC7EzdA/Jmv1jg1NArR5o4wxPgwkB0qGPAD9v0IDMz2qB+Rpy0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHvEREWx2wDDdDuiqSOFRGYZYRzF51eeH+0J1Drf3mlrAiB9k+pg0/ZRd095ZotqvUYsl7iPBcCzjNKz46LFLkQxnQ=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.17":{"name":"e2d","version":"1.7.17","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"06842a19a9d24eae2dcbae37123f7311d7783588","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.17","_shasum":"343c034ef939a7a4ae6a59c71f8a59c016fe9cf1","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"343c034ef939a7a4ae6a59c71f8a59c016fe9cf1","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.17.tgz","integrity":"sha512-7dWWz0C4RMVJI/p4mL2ixYtmbMySwCTQ+EVvfcSy7RZW8wn7wFtuN7vNIZyWt79uU/p0t6UcrI/l1THyJ17tzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+0n5ko8DrAdNXMT0tRNupecIPGW7/MRgeznmlaxOXHAIgA6F86TsEoi+ggTmnWfEQmJe1TwNLKjqGu6H5xes/JdU="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.18":{"name":"e2d","version":"1.7.18","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"377aa9594583da55a7d4e7027d7cae18202c31d1","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.18","_shasum":"a11245098d6c3faa35634ee2b506833e8a85d89e","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"a11245098d6c3faa35634ee2b506833e8a85d89e","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.18.tgz","integrity":"sha512-HosLWzi6FJb259TN543wpOKv2jTbLRZzY1HFpXuKFdZKrO0a/NIDzv9mZKV3CQNhMtFBOL53iNAC8NF7sw5tdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkFu14iA7O1MDEY4NW17v99XHwlY9KKXH4Vjx5g7DrqgIgE2kvZlg09L4myDty6UXDE6ahH3q3cKVyzG9Go4dsmU8="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.19":{"name":"e2d","version":"1.7.19","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"717adff3097cf64245b839c9b9970c632e1686f4","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.19","_shasum":"bc41e33844bbf78723fb94b0e5fce5dcf370307d","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"bc41e33844bbf78723fb94b0e5fce5dcf370307d","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.19.tgz","integrity":"sha512-hHUCiddo34Q8Xh7YnkhX+r2Aq31ekubqu8u0ECbMkN1Y/5zRO5g1bwjNHVSA8xtQb4n1x9h6pl6JjZlTxf8wDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPYYqXCMed6jjFvsYsED3qj+/4WIQ8f+n/EWnvwEKQ8QIgJO5jJWQS/B4JfiPJMlwxDVt0st9zV7D4wcO7bKuFD3E="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.20":{"name":"e2d","version":"1.7.20","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"9ae2b46bda9255b3008218fce760521d1b6b8cbd","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.20","_shasum":"e6fd5031bd32fefd9e723601c3b1ce9232921d6f","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"e6fd5031bd32fefd9e723601c3b1ce9232921d6f","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.20.tgz","integrity":"sha512-CqpOim3vxTqEoKuO8ZNruimtcFgAX+bnQhZLTs1TYsR5IB9FHWNLajFut61a/S+xEXEUpOcNfxVipAr0cHeemQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqB6fswV2xRMC7AOabvbrMfeUer5nDg7E5zVf2g4zMLAIgRVHztjkpHlDYX4qPkbHU177nmYB7KWF03x9RfeWaMsc="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.21":{"name":"e2d","version":"1.7.21","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"51850a309979ef04aab20ac49e32a85847a6dc9d","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.21","_shasum":"1bc47b8fd3eee02d9467bb795e7e1473fc7e4ac7","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"1bc47b8fd3eee02d9467bb795e7e1473fc7e4ac7","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.21.tgz","integrity":"sha512-d+VUNVb8tUI08aDDbuczYw1kfS+0vKgtN5vgDKAG1aACX/Uu5c4vTJ7Vaz6+/HVtzRA2VNvGdjEvukvDiarIpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrwzAz2SWLX8VWM8i5leuk3849YCyCvalHHGU8pFLHQwIhAP/r77pPti/YOBEfVRjqmq6TGG8e8WzBoQRahR7FVEym"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"1.7.22":{"name":"e2d","version":"1.7.22","description":"A canvas rendering engine HEAVILY inspired by react.js to help enforce one way data flow patterns.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"00eacae7e78a4241523e83771504fcafa81362d0","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@1.7.22","_shasum":"eb060fd3babbc87d22b7677f7db14342f232a8f5","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"eb060fd3babbc87d22b7677f7db14342f232a8f5","tarball":"https://registry.npmjs.org/e2d/-/e2d-1.7.22.tgz","integrity":"sha512-rp08j35bgUe7D1/LRDT7dnepOxuS6Wl5XNTVtHUp8LQN/VNP8XpxcEtP7+Er+JT7uqM8xhatDDsCuXJcwcUF3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0q0oaAh89Bh2ooIVzrJqyaW0sQVbalDUfM2dYtC8L5AIgDt52z4h+Q1OTHsfkiu0desYPm9krjPAzR3IW3BgEbzE="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.0.0":{"name":"e2d","version":"2.0.0","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"a90229a779333da099d39aa726df3dc1f9320cf6","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.0.0","_shasum":"f992d649dea92c5bc56a65cc556e6ce78a4af91e","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"f992d649dea92c5bc56a65cc556e6ce78a4af91e","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.0.0.tgz","integrity":"sha512-57YeVZkT8aha61bpwwu8f8YxfMhK5qBscws0n9YFZ5ykTduBlsyNR/uxKN/XI7R/qeOf3F1z3w42iWbyt8uEgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCP4rMJRV0tu+8vt9OZEk6tP/sPni+JrsoCu70yNxdSDgIgEwh6qr+P5GiJ4qhsQYVAXTxE+pU/xualcZsXKxGWDuE="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.0.1":{"name":"e2d","version":"2.0.1","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"10b15ca18a04fac8010634bdcfe65f92eb74043a","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.0.1","_shasum":"429ee24d0e71aaf6005646f027b4a8bec484a57e","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"429ee24d0e71aaf6005646f027b4a8bec484a57e","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.0.1.tgz","integrity":"sha512-aDLWpIS3SGpVnaD0kUHUkBJtwOvMZOCvQT+fWf80hg+hBuj0pj3nj1fRFfjwCy4LNdvXwP9CCx5mjVXVawyimQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdMnaSpM+japVANt/8hP4DzB1Wr8HqQFccO39M/QDq1AIhANYX39/P1MDnIVD2a3RLLebH7DxnCP7HettIzH/0yRMH"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.0.2":{"name":"e2d","version":"2.0.2","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"c15c401dbf2a09f6c6a80fc3868db240ef2c3b1b","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.0.2","_shasum":"c82dd0b80815fce0e3fd2d4c937c374d8e7ebd84","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"c82dd0b80815fce0e3fd2d4c937c374d8e7ebd84","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.0.2.tgz","integrity":"sha512-Ak9+c7OcsxV/W7dUbplP8+Lam72/4Kfo8Wy8+H1+28Gr3RaysgcOXlugOkPGDAGaRAbJNp2n4TWqhnJ/oDLgng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/0cEfA/uo64STSoI4dqGuGxW7WcqFx0l7dmGrrYuIGgIhAOLLVgY5201JNbxV2BL/AqmM7jc0PfSNXhNpll61fb/S"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.0.3":{"name":"e2d","version":"2.0.3","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"f7c0cb24ba9ad82a524e034514b8e9d3cc5a4fe8","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.0.3","_shasum":"8072e8ee4f56c09421bb187d0e0f5aa55f6dae0a","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"8072e8ee4f56c09421bb187d0e0f5aa55f6dae0a","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.0.3.tgz","integrity":"sha512-3nHLIkDj/LNCDxGExiZEUxfOC2un73RIlhrXmlE1o9wHIIC5ODfkuKDBuodxPZOuFDokzFSJ1bDdFx95Q4fbkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFkXV2B+S3LpU9NQ7pIrzAVE6bVp1yIJtGSSzJbgv75cAiAlcIx9jUVedpu8oLkG/VwR73H1zlgeB7bKB9MpWWroww=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.0.4":{"name":"e2d","version":"2.0.4","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"68e3510794bd2e7f16215e74c46ada406e8e8131","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.0.4","_shasum":"81effa8b3fee52e9f404cee4bbdfe3b9da190228","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"81effa8b3fee52e9f404cee4bbdfe3b9da190228","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.0.4.tgz","integrity":"sha512-uUqmYqyu20bqylHGTX4dd0h0kJwtM/+W3GS0j5BbvxuXLaZQS1kFDd95+xdNtJjR6XvWtt29g7Ln7pVpLLrfiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDypTwslPRHnoHzmSDzAlOTgWBlQSGJAxnWvZ5GarrgdAiAldOFZ/5aHhtHieAAECGQT1XzgDfpA0S8Qx3AwK71Avg=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.0.5":{"name":"e2d","version":"2.0.5","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"e05617a227824341f6b7ab17fa3bfcf62f5507a2","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.0.5","_shasum":"7a7ec496d1a6b8f6d8883655bf231d4f5db12817","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"7a7ec496d1a6b8f6d8883655bf231d4f5db12817","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.0.5.tgz","integrity":"sha512-K5/e3gZmqJkEGcK9ItDjS+7koz5wRshCVTqe3pqOL0GR8HavDja1R1iNrTWCPCAsVpYM81wJaOnKrAHvdCHL+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDT8MjAkCYbxu07sfgrYl5PoX/iFm8hDxKMP5JtJGFXXQIhAPeDCfwlakegM/qDpdBgfQE7ae08VTFP4GZstPrjhXlP"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"2.1.0":{"name":"e2d","version":"2.1.0","description":"A declarative web worker canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^6.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.5.0","grunt-contrib-uglify":"^0.9.2","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","WebWorker","graphics","browser"],"gitHead":"3ab4722207ad339b249f93f47a1154ca976eaf7d","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@2.1.0","_shasum":"e75f43153c9c7af3cad998d030b2f65969807592","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"e75f43153c9c7af3cad998d030b2f65969807592","tarball":"https://registry.npmjs.org/e2d/-/e2d-2.1.0.tgz","integrity":"sha512-VGdTe6AdeZpctyvx+zayen4QoVNnLr2cB+K7wqr35+/h1ho9EqLUwHL1wdk7NZKDY8y1ATRU5lE7nnaWcOl/Tg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9dK6O1nuzHmmM5xkI/v80KHYYtIJVwH746d7GP14+1AiEArEHA9dxtWglTx6zoVHVXkoZc+AQZbhbB/6yUDQFMxCA="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.0.0":{"name":"e2d","version":"3.0.0","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"express":"^4.13.3","keycode":"^2.1.0","mocha":"^2.3.4","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"3b020189ec9be7f9687a3110d58a782303c6c94e","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@3.0.0","_shasum":"dfdc619b5ae0a304dc5719c217dd1e3363c41f73","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"dfdc619b5ae0a304dc5719c217dd1e3363c41f73","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.0.0.tgz","integrity":"sha512-OZlTwXdQx+qPrJojeVydRxG9FpH8zQH6ag68eV4yG5koFBEbQfp24VqTVS9aqtvq3B2I7UIBYE9mDF5s9UsGJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE6H5/8ckLbdzzQNnLk3WN45OOh3fpXbLZNqpLjSEFhjAiEAka0Sg9pMwCS7D+vTF+ZWGkDjCcRc8Mu2i9EdH8J8bTc="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.0.1":{"name":"e2d","version":"3.0.1","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"express":"^4.13.3","keycode":"^2.1.0","mocha":"^2.3.4","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"f67b994ca380ef1fc86e35777e00b50f044d855c","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@3.0.1","_shasum":"bf33c141029f5db011669e9a203f08979ea4b43a","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"bf33c141029f5db011669e9a203f08979ea4b43a","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.0.1.tgz","integrity":"sha512-drlICUvv0aG4UQv3Apwf0DLuS2RXjoCxe7uLXWLC2upgbzFStGDsGle+ONqgADiuYvA3huW/cdtsNxBHSMtqPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICG7yudGlJMnI9t+4TwALPnS1XyvHRbbZOBPQwQUoDkaAiEA479mu6mamDXN4/4PPPj0TCQfW+odkCwFIuFe+LHgLFE="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.0.2":{"name":"e2d","version":"3.0.2","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"express":"^4.13.3","keycode":"^2.1.0","mocha":"^2.3.4","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"3aa85d3684aad7964a75b0db43f07cfbe37757a5","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@3.0.2","_shasum":"8188f2bf79770a799c5e686a08d8cdae22ccc9f2","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"8188f2bf79770a799c5e686a08d8cdae22ccc9f2","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.0.2.tgz","integrity":"sha512-1il2wux3zL7MmoD98BvLU4h6FuV3K7nokaZEE31zaEGVeCIBuTcv5Luh9obrHUExjuqRImvqRsMu+RolpXgp1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3WyaVJ8a1B8IA69OGaADE5n3ctFYk/D5AnoGuvBBkHAIgWJtV3eO1KlFBvC9tLlpe+ZQJcdTOMpU0I9kMtfXIrm0="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.0.3":{"name":"e2d","version":"3.0.3","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"express":"^4.13.3","keycode":"^2.1.0","mocha":"^2.3.4","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"d4f3fb5e7eb2c63540142584a419709df75a1b8c","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@3.0.3","_shasum":"9d4f3c4ae514c7dc8f52073f555a643fb72207b6","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"9d4f3c4ae514c7dc8f52073f555a643fb72207b6","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.0.3.tgz","integrity":"sha512-IYUDwHj82NJt/LxzY4qMOA7KlgzST6OXMd304EwV3+c2NmVUr6kEdrIq8yQKm6QHssx5TCGse/rfhHBzj4qQuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDewBRDaP6cYNp6+/xbrOBHmSIyshNNPKY1RT+dVQ33pQIhAOzj4E8oosXWLKIlfIiUK8TLUZZy2pQaX4bNTe9geb9B"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.0.4":{"name":"e2d","version":"3.0.4","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node server.js"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"express":"^4.13.3","keycode":"^2.1.0","mocha":"^2.3.4","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"3a1f23dc8364cecc969ac8824d8c800c91883e93","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@3.0.4","_shasum":"ed360c0379efc61a297ceafc3e5f16ccb413b622","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"ed360c0379efc61a297ceafc3e5f16ccb413b622","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.0.4.tgz","integrity":"sha512-32/RbKbQqwScsQJbGjYVzBDFhxXwpAsv0u93c2+xm+jeF/m2dyAcBlSMsYC0T1v04duJY6Q+2nhBelmpKU4+OQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPfFFYkax0DtuO1merlX6++ERUvH+xUBoqsi0h4eRSnwIgTufJ9ToG1bJNam90gsurRTv19ZIZUBMNW+eauTTbZx0="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.1.0":{"name":"e2d","version":"3.1.0","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"express":"^4.13.3","keycode":"^2.1.0","mocha":"^2.3.4","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"05a96a2524485e77ad3cf17d08171dd630dc7e54","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","_id":"e2d@3.1.0","_shasum":"14540bc755cacfb0d4fe181fc2bb8acc89ec0039","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.5.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"14540bc755cacfb0d4fe181fc2bb8acc89ec0039","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.1.0.tgz","integrity":"sha512-j11CIiX7SOktr1RpiSUVJDtUNRGNXnmPpw6zV09Bn3JWyRdjdpxOQOAuoS+S4w9Nej/SgRSRCK53TFro1l3Lbw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCBZTdp1jbInnMPRssGnf/fn0KaQ/fLwibPUktYFi89AiAZ9+OJJ7DEo08+xo9JpPr3COaVgbcpd/Vp2BFYGpUd3Q=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.2.0":{"name":"e2d","version":"3.2.0","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"911d47ac911d8ee14c525a88627f53ef696ee1ee","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.2.0","_shasum":"77dc55710b584f8242f83b6755ce3c4b6b9bf27c","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"77dc55710b584f8242f83b6755ce3c4b6b9bf27c","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.2.0.tgz","integrity":"sha512-RaakpfBRnTA/6gtGOz46v6i9sOMOV+C1I6KoWyKIMUHKdjAOq/QrchwIYMsreFFnbzcP6fmaMWsYzuNWQbh8WQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBUYgldJ8bR3kOtosBOdCqtrUyigsPGC9rUz9ifTIZL1AiEAm9i/4EIm/GGkZE85KuEinvWf8k+w4lilK+P8xm9JmIg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/e2d-3.2.0.tgz_1459180773530_0.45276931347325444"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.2.1":{"name":"e2d","version":"3.2.1","description":"A declarative canvas renderer.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"browserify-middleware":"^7.0.0","crel":"^2.1.8","express":"^4.13.1","grunt":"^0.4.5","grunt-browserify":"^4.0.1","grunt-bump":"^0.6.0","grunt-contrib-uglify":"^0.11.0","jasmine":"^2.3.2","mocha":"^2.3.3"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","graphics","browser"],"gitHead":"011d0b97e91f13c9ba9e4244ca68e7eadef0f9be","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.2.1","_shasum":"e5bf420ac4c15aa6d1c3d64c8e90509ba01ae7d0","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.1","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"e5bf420ac4c15aa6d1c3d64c8e90509ba01ae7d0","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.2.1.tgz","integrity":"sha512-x2XdoIumtlsdb/vYGedcAVQYaTWkEGJY2YiPABi1bBiBC46W3gHqfxoizat9OOJU7gKtIetggCcdx6w+pKdG2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIETrqeck9H7TjBGV945I4I+9cgYzyxj0XT3Sw9sXP1lIAiBDtjB0fpsU2TdmcPgE49FKUv7MNGKCwz2Ubq3uQ+TOcg=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/e2d-3.2.1.tgz_1459444688311_0.005347390891984105"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.3.0":{"name":"e2d","description":"A declarative canvas renderer.","main":"index.js","version":"3.3.0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"9cd257cb3562b246239f3646f89b95b06612b5e6","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.3.0","_shasum":"234badd875c5e06d72cedb7018c6ae793c999d82","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"234badd875c5e06d72cedb7018c6ae793c999d82","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.3.0.tgz","integrity":"sha512-lVefHjtpuqAczJLSsl/7YBc0VoqrYMap74w/hSX4noND67YpietKRqEjYfHlQ/L40ZeLaGDWXoDVRnAJZnWsDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/y9EDMpeKMMUGastcdVPYzb30pqL1NeVmtIaoYwqoQAiEAmxKSP6Mh7UAHfaIPva5H1FR29wa8ILasezufinOKPsg="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/e2d-3.3.0.tgz_1463157877660_0.39631106704473495"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.3.1":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"3.3.1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"5ac0971a456502ebb75347adbf9b0d3447bf9124","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.3.1","_shasum":"3ea9c1a086a39cd6d172274696eb5171cdc3307e","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"3ea9c1a086a39cd6d172274696eb5171cdc3307e","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.3.1.tgz","integrity":"sha512-bJGn4QoZZ/18pElZgABIyS+e5/kZ3wPfzlgEHQujsPNNqMSos7ymDHD3mNIblnzgpA6tFkw/YcVXeQLpkyrLxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDXQIeJKDC/joXPyg85E1kiyOWxb7dc5M+y///Fe/A2VAiAtm7sIDfa8PP1FcwdWrNkF7MrUiFNkQTDekEOqilB/Xg=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/e2d-3.3.1.tgz_1463158668235_0.08840611623600125"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.3.2":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"3.3.2","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"386edef0097f81d4d12c9a0e57330c7d038a71e7","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.3.2","_shasum":"26781c0d40fd3ad79e3da1804504b7970c7ad768","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"26781c0d40fd3ad79e3da1804504b7970c7ad768","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.3.2.tgz","integrity":"sha512-4WUWiSCNlTUkjePvPWWI9RrUlkBj1IvyqVJoKudKGEGODA9sYbxwqu7RvqbUo8cA+/vKN6lqWk1kLm4T92E5LA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCElncUginY8LmTkRHnozEJ0CR4D8Ppqnv+cTkCxSAT4AIhANLmTyFAQIISHiQ9mXIK22MGHp3Q6ATWMGyFMVLHWTdM"}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/e2d-3.3.2.tgz_1466013097855_0.09462034539319575"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.3.3":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"3.3.3","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"9c65bc22f0eed29d25b0f8fb9c8db850ecb47a6c","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.3.3","_shasum":"8a114b9b2b070c859dde3ce1f1c876cfd6534608","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"8a114b9b2b070c859dde3ce1f1c876cfd6534608","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.3.3.tgz","integrity":"sha512-TPgjDjzwKIbl7R7A+TPahz092DZKKMgzGfWVM+t0tB65pwza8kuEKQiHXtrgoIR01wkfhRuUsLeU9ZoV18n4hA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrbAjfcZT0I6/+fCGAhA2JXZeMWW1kmWJL9u2wEtEtxgIgLDJmpKZWiheYv4KDQ0KxGeZx67Igw9d62fWp6xokzNI="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/e2d-3.3.3.tgz_1466630938297_0.5072136726230383"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.3.4":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"3.3.4","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"a5acf69d2ca81cc392349944d3a27eb6f7dc7185","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.3.4","_shasum":"e6ff08fd5f34a81854c2ccd41572380891d94d06","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"e6ff08fd5f34a81854c2ccd41572380891d94d06","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.3.4.tgz","integrity":"sha512-Z3Oz4zbxIcBS/P3uvLOYyRapSou8JRF6FsWCyTNhFnRnyjeYGJEvCyuioGT6V+WFYXxN4kXrg6W+Nvshjonbiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF0/udbhRVnNdihf1TrpLHcShyFOfgBUF6mwMT7tcSS/AiBUdpYn9hsnaeMd62nhvaIJYlXWdR5OxFwxfEVQF/orAw=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/e2d-3.3.4.tgz_1466695346397_0.13363161287270486"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.4.0":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"3.4.0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"58fe9d7b1dc6a6abc5ffc2d55b5b79ffa4770562","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.4.0","_shasum":"ba2a4477229c13feea80378c0b6a9ffca908e87c","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"ba2a4477229c13feea80378c0b6a9ffca908e87c","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.4.0.tgz","integrity":"sha512-yd6a8XeEtsdZwfKnOwXEO62giml5bQYD0wBZmV4QWY2XiVbDlMMI8WecgFFiqLx677UJ3ZiRqG2/7JcroFzy+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBqUeKFwj7sr5SvS+RG25YuHVWcBzVoZwAeM1tlxXlsnAiAF71bJC8C9xq8iamAw2Cyha3RDSqn1R3zHPlhwCmpYTQ=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/e2d-3.4.0.tgz_1466709206456_0.6326558869332075"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"3.4.1":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"3.4.1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"MIT","devDependencies":{"jasmine":"^2.3.2","mocha":"^2.3.3","prompt":"^1.0.0","readline-sync":"^1.4.1"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"b704b1403ebdabc0fdee34a5311693bab5e52476","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@3.4.1","_shasum":"997b1e52ea198fe8493a5bb45c49c7a0e2905dde","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"997b1e52ea198fe8493a5bb45c49c7a0e2905dde","tarball":"https://registry.npmjs.org/e2d/-/e2d-3.4.1.tgz","integrity":"sha512-BuRw+mrocLiVHLVfSHA7bovFyvvplHF6XYmQs9bdBa+jGlLdcgWHPHLKB8uXvzc89/WJamPHmxGfA6wTTjZodA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+mo0PpOElPo/gHeSRcpZW6yXg167FQEIdG+UBxKCxIgIgM+MAXeKa9rMAFFbTBgrmrtHOEEmdfGgb/cZBQ5uHuEk="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/e2d-3.4.1.tgz_1466709739586_0.6017953399568796"},"directories":{},"deprecated":"This package has been deprecated because it is not performant, and poorly written"},"4.0.0-rc.1":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"4.0.0-rc.1","scripts":{"test":"echo \"Error: no test specified\" && exit 1","debug":"node --inspect --debug-brk test.js","build":"webpack","dev-server":"webpack-dev-server"},"author":{"name":"Joshua Tenner"},"license":"MIT","devDependencies":{"babel-core":"^6.20.0","babel-loader":"^6.2.10","babel-plugin-closure-elimination":"^1.1.14","babel-preset-es2015":"^6.18.0","babel-preset-es2015-loose":"^8.0.0","babel-runtime":"^6.20.0","babili-webpack-plugin":"^0.0.7","benchmark":"^2.1.2","chance":"^1.0.4","library-src-plugin":"^1.0.2","pretty-hrtime":"^1.0.3","webpack":"^2.2.0-rc.2"},"dependencies":{"keycode":"^2.1.0","point-in-polygon":"^1.0.0"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"eedb4265e7ac5fd371eab53cac9223e7e3335019","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@4.0.0-rc.1","_shasum":"fdd0b6ce5cdb2dce2eb482972b6315db3e8a4b5a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.3.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"shasum":"fdd0b6ce5cdb2dce2eb482972b6315db3e8a4b5a","tarball":"https://registry.npmjs.org/e2d/-/e2d-4.0.0-rc.1.tgz","integrity":"sha512-u1BNuzNhbCj4quEraLFZHGOqNumTSMDtnsddCEEXlHKL1K2LddGHvApXsK1uZDGSiZIKCh9rphjc7l6J5o8U8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAn5mkborWz9lPH0PkYzMAOqnCxLSWV3SF4htTF7ld9dAiBtz6ZAMY11/BNhvqg92wUj0DJnrwMTWEOV5dpTICvGuQ=="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/e2d-4.0.0-rc.1.tgz_1482444984370_0.672269546194002"},"directories":{}},"4.0.0-rc.2":{"name":"e2d","description":"A declarative canvas renderer.","main":"dist/e2d.js","version":"4.0.0-rc.2","scripts":{"build":"rollup -c","build-all":"npm run build && npm run minify && npm run compat && npm run compat-min","compat":"babel dist/e2d.js > dist/e2d.compat.js","compat-min":"minify dist/e2d.compat.js > dist/e2d.compat.min.js","dev-server":"npm run watch | npm run sync-test-folder | npm run web-server","jscs":"jscs src --fix","minify":"minify dist/e2d.js > dist/e2d.min.js","prepublish":"npm run jscs && npm run build-all","sync-test-folder":"sync-glob -w 'dist/e2d.js' 'test/*' public/","watch":"npm run watch-substep && watch -p \"src/*.js\" -c \"npm run watch-substep\"","watch-compat":"watch -p \"dist/e2d.js\" -c \"npm run compat\"","watch-compat-min":"watch -p \"dist/e2d.compat.js\" -c \"npm run compat-min\"","watch-substep":"npm run build && npm run minify && npm run jscs","web-server":"http-server -d false -c-1"},"author":{"name":"Joshua Tenner"},"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-minify":"^0.2.0","babel-preset-env":"^1.6.0","babel-runtime":"^6.26.0","http-server":"^0.10.0","jscs":"^3.0.7","rollup":"^0.50.0","rollup-plugin-commonjs":"^8.2.1","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-uglify":"^2.0.1","sync-glob":"^1.3.7","watch-cli":"^0.2.2"},"dependencies":{"keycode":"^2.1.9","point-in-polygon":"^1.0.1"},"repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"keywords":["canvas","2d","declarative","graphics","browser"],"gitHead":"c84e6a5688e9df98656714fa25ae80df5991bda7","bugs":{"url":"https://github.com/jtenner/e2d/issues"},"homepage":"https://github.com/jtenner/e2d#readme","bundleDependencies":["keycode","point-in-polygon"],"_id":"e2d@4.0.0-rc.2","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"dist":{"integrity":"sha512-3lW69nDmFbDUb4cRCHctj26zwZ80+FTBLN6nzdR7F6UirKVovqRAT/kuQ2qT8O6T0G8az6xEHIU6tH699ClKxw==","shasum":"c5af704823c19827d0e1749b8eb974e256f66773","tarball":"https://registry.npmjs.org/e2d/-/e2d-4.0.0-rc.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLwOJJlwL+JvBhXoM8+iKw/fR24KD7H3D+hhzKn7Wr9AIgezVr/9ZvX3iZsXrRAiLJt3nTfP68QLi7liHJ8CNT7ho="}]},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/e2d-4.0.0-rc.2.tgz_1508336450135_0.5590682330075651"},"directories":{}}},"readme":"# e2d.js\r\n\r\n[![Gitter](https://badges.gitter.im/e2d/e2d.svg)](https://gitter.im/e2d/e2d?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nAn es2015/es5 declarative canvas renderer.\r\n\r\n# Introduction\r\n\r\nMost canvas libraries abstract away different aspect of canvas to make you faster.  When using this library, there isn't much abstraction. In fact, the API mirrors the canvas2d API in a way makes coding canvas fun!  Much like react uses a render function to make changes to the DOM in an abstract way, so does e2d to the canvas context.\r\n\r\n## Getting Started\r\n\r\nWith react.js, the developer calls React.render once to start up the application.  Since e2d does not work with the DOM, there are no bindings internally to have a meaningful event lifecycle.  This means that `e2d.render` must be called every frame. Take the following \"Hello World\" example:\r\n\r\n```javascript\r\nlet canvas = document.createElement('canvas');\r\ncanvas.width = 800;\r\ncanvas.height = 600;\r\n\r\n//get the canvas context\r\nlet ctx = canvas.getContext('2d');\r\n\r\n//add the canvas to the dom\r\ndocument.body.appendChild(canvas);\r\n\r\n//for commonjs, browserify, webpack\r\nlet e2d = require('e2d');\r\n\r\n//use this if the application requires user input on the canvas\r\ne2d.initialize(ctx);\r\n\r\n//requestAnimationFrame loop will call this function once per frame\r\n//it is not necessary to use this convenience function provided by e2d\r\ne2d.raf(() => {\r\n\r\n  //e2d.render accepts an unlimited number of arguments and the last one must be the canvas context\r\n  return e2d.render(\r\n    e2d.clearRect(canvas.width, canvas.height),\r\n    e2d.fillText(\"Hello World!\", 100, 100),\r\n    ctx\r\n  );\r\n});\r\n```\r\n\r\nThere is also a babel plugin for `e2dx` elements so that developing on canvas can be more like using SVG in javascript.  It's located [here](https://github.com/e2d/babel-plugin-e2dx) and looks like this:\r\n\r\n```javascript\r\n\r\n//always call this ONCE to obtain mouse, activeRegion, and keyboard support\r\ne2d.initialize(ctx);\r\n\r\n//raf will call the provided function every frame\r\ne2d.raf(() => {\r\n  //get the mouse position\r\n  let { x, y } = e2d.mouseData(ctx);\r\n\r\n  //use the translate element to move the point of origin\r\n  return <render ctx={ctx}>\r\n    <clearRect width={canvas.width} height={canvas.height} />\r\n    <translate x={x} y={y}>\r\n      <fillText text=\"Hello World!\" />\r\n    </translate>\r\n  </render>;\r\n  );\r\n});\r\n```\r\n\r\n### Instruction variables\r\n\r\n`e2d` introduces \"Instruction variables\" that represent more complex canvas instructions.  They are similar to virtual dom elements in react.\r\n\r\nFor example, all canvas instructions can be variables and stored for later use.  This speeds up execution time and reduces memory usage.\r\n\r\n```javascript\r\n//create a fill command that always fills red\r\nlet fillRed = e2d.fillStyle('red', e2d.fill());\r\n\r\n//create a 6 sided polygon with radius 10 at [0,0]\r\nlet hexagonShape = e2d.createRegularPolygon(10, [0,0], 6);\r\n\r\n//e2d.path will wrap the instructions passed to it with beginPath and closePath\r\nlet hexagonPath = e2d.path(\r\n    //convenience function to map coordinates to ctx.moveTo, and ctx.lineTo\r\n    hexagonShape.map(e2d.moveToLineTo)\r\n);\r\n\r\n//combine the path and fill instructions in an array\r\nlet redHexagon = [ hexagonPath, fillRed ];\r\n```\r\n\r\nMix and match different canvas commands to make code more expressive and easier to read.  For example, using the `redHexagon` variable in the above example to get started:\r\n\r\n```javascript\r\n//create a canvas first...\r\ne2d.raf(() => {\r\n  return e2d.render(\r\n    //clear the canvas every frame\r\n    e2d.clearRect(canvas.width, canvas.height), //e2d knows that x=0 and y=0 are default parameters\r\n\r\n    //move the hexagon center point to the center of the canvas\r\n    e2d.translate(0.5 * canvas.width, 0.5 * canvas.height,\r\n      redHexagon\r\n    ),\r\n\r\n    //render it to the canvas context\r\n    ctx\r\n  );\r\n})\r\n\r\n```\r\n\r\n## Performance\r\n\r\nThe goal of e2d is to be fast. It has gone under numerous refactors to increase the speed of each canvas property.  On top of engine performance, there is an additional benefit to using `instruction variables`. Using these will result in less user-defined function calls.  With instruction storage, and less user defined function calls, the majority of the application view layer will sit around in memory waiting to be parsed every frame.\r\n\r\nMost importantly, creating an entire render tree every frame has a relatively minimal performance impact.\r\n\r\n## Drawing Collections\r\n\r\nCollections are harder to optimize, so try to make data flow into `instruction variables`.  See the following example:\r\n\r\n```javascript\r\nimport e2d from 'e2d';\r\nlet particles = [];\r\nfor(let i = 0; i < 100; i++) {\r\n  particles.push({ //create some particles\r\n    x: Math.random() * config.width,\r\n    y: Math.random() * config.height,\r\n    r: 1\r\n  });\r\n}\r\n\r\n//fillArc has default function parameters [x=0, y=0, beginRadians=0, endRadians=Math.PI*2]\r\nlet particleShape = e2dfillArc(1); //only the radius is provided\r\n\r\n//later\r\ne2d.raf(() => {\r\n  let particleMap = [], particle;\r\n\r\n  //loop over each particle using a for loop\r\n  for(let i = 0; i < particles.length; i++) {\r\n    particle = particles[i];\r\n\r\n    //move them 1 pixel per frame\r\n    particle.y += 1;\r\n\r\n    //loop the particle\r\n    if (particle.y > config.height) {\r\n      particle.y = 0;\r\n    }\r\n\r\n    particleMap.push(\r\n      e2d.translate(particle.x, particle.y, //move to the particle position\r\n        e2d.scale(particle.r, particleShape) //scale the particle\r\n      )\r\n    );\r\n  }\r\n\r\n  return e2d.render(\r\n    e2d.clearRect(config.width, config.height),\r\n    e2d.fillStyle('blue', particleMap), // every particle is blue in this case\r\n    ctx\r\n  );\r\n});\r\n```\r\n\r\n# Getting started\r\n\r\nI highly recommend using `webpack` or `browserify` in `node.js` to modularize your code, but the fastest way to get started is to use the `e2d.compat.min.js` file in the `/dist/` folder, or `e2d.min.js` for native `es2015` support.\r\n\r\n### Import using script method\r\n\r\n```html\r\n<script src=\"e2d.compat.min.js\" type=\"text/javascript\"></script>\r\n```\r\n\r\n### webpack-dev-server\r\n\r\nPlease see [webpack-dev-server](https://webpack.github.io/docs/webpack-dev-server.html) for all your web development server needs.\r\n\r\n# API\r\n\r\n### __e2d.render__\r\n\r\nThis is the command that actually draws to the canvas.  Create some drawing instructions and pass them to this function.\r\n\r\n```javascript\r\nimport e2d from 'e2d';\r\n\r\n//create a draw command\r\nlet helloWorld = e2d.translate(200, 200,\r\n  e2d.fillText(\"Hello World!\")\r\n);\r\n\r\n//create a canvas\r\nlet canvas = doucment.createElement('canvas');\r\ncanvas.width = 400;\r\ncanvas.height = 400;\r\ndocument.body.appendChild(canvas);\r\n\r\nlet ctx = canvas.getContext('2d');\r\n\r\ne2d.raf(\r\n  //draw something every frame\r\n  () => e2d.render(\r\n    e2d.clearRect(400, 400),\r\n    helloWorld,\r\n    ctx //ctx must be the last parameter\r\n  )\r\n);\r\n```\r\n\r\n### __extend.js__\r\n\r\nFor use with custom instructions.\r\n\r\n```javascript\r\nimport { Instruction, extend } from 'e2d';\r\n\r\nlet extensions = {\r\n  //first argument is props, second is the canvas context.\r\n  drawSprite({ x, y, size, rotation, texture }, ctx) {\r\n    ctx.save();\r\n    ctx.translate(x, y);\r\n    ctx.scale(size, size);\r\n    ctx.drawImage(texture, 0, 0, texture.width, texture.height);\r\n    //always make sure to restore canvas context state to prevent render side-effects\r\n    ctx.restore();\r\n  }\r\n}\r\n\r\n//to use it, pass an Instruction object to e2d.render\r\ne2d.render(\r\n  new Instruction('drawSprite', { x, y, size, rotation, texture }),\r\n  ctx\r\n);\r\n\r\n\r\n```\r\n\r\n# Render Commands\r\n\r\nThe following render commands are provided to you in this library.\r\n\r\n### __arc.js__\r\n\r\nArcs have 5 forms, and correspond to the documentation here at [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/arc):\r\n\r\n```javascript\r\nimport e2d from 'e2d';\r\n\r\nlet fastestArc = e2d.arc(); //radius 1 and x, y is 0, 0\r\nlet justRadius = e2d.arc(radius); //radius is set, x, y is 0\r\nlet radiusWithXY = e2d.arc(x, y, radius); //radius is set, x, y is [x], [y]\r\n\r\n//to specify the start and end angle, use the startAngle and endAngle parameters\r\nlet radiusWithXYandAngles = e2d.arc(x, y, radius, startAngle, endAngle);\r\n\r\n//to specify anticlockwise motion, use the anticlockwise parameter like this\r\nlet arcAntiClockwise = e2d.arc(x, y, radius, startAngle, endAngle, anticlockwise);\r\n```\r\n\r\n### __arcTo.js__\r\n\r\nFor information on how the `arcTo` function works, see [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/arcTo).\r\n\r\n```javascript\r\nlet arcToInstruction = e2d.arcTo(x1, y1, x2, y2, r);\r\n\r\n//don't forget to wrap the arcTo function in the path function\r\nlet pathInstruction = e2d.path(\r\n  e2d.arcTo(x1, y1, x2, y2, r)\r\n);\r\n```\r\n\r\n### __beginPath.js__\r\n\r\nIt's possible to control when a path begins manually by using the `beginPath` function.\r\n\r\n```javascript\r\nlet beginPathOperation = e2d.beginPath();\r\n```\r\n\r\n### __bezierCurveTo.js__\r\n\r\nSee [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) for information on how to use Bezier curves.\r\n\r\n```javascript\r\n//cp1 and cp2 are control points  and the curve ends at [x, y]\r\nlet myCurve = e2d.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\r\n```\r\n\r\n### __clearRect.js__\r\n\r\nTo see how clearRect works, see [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/clearRect).  The `clearRect` function has two forms.\r\n\r\n```javascript\r\n\r\n//to specify a rectangle at [0,0] use the clearRect shorthand\r\nlet widthAndHeight = e2d.clearRect(width, height);\r\n\r\n//otherwise, specify x and y\r\nlet sizeAndPosition = e2d.clearRect(x, y, width, height);\r\n\r\n```\r\n\r\n### __clip.js__\r\n\r\nThis provides a clipping region for child instructions.\r\n\r\nIn order to draw a clipped image, for instance, use the `clip` function with a path.  For more information on clipping, please visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/clip).\r\n\r\n_Please note that the path cannot be wrapped in the `e2d.path()` function because `clip` will automatically close the path provided._\r\n\r\n```javascript\r\n\r\n//create a hexigon with radius 200 and map it to a set of moveTo and lineTo instructions\r\nlet region = e2d.createRegularPolygon(200, [0, 0], 6).map(e2d.moveToLineTo);\r\n\r\n//this results in a polygonal cliped drawImage command\r\nlet clippedImage = e2d.clip(\r\n  region, //must be the first argument\r\n\r\n  //center the image at [0,0] to see it\r\n  e2d.translate(-img.width * 0.5, -img.height * 0.5,\r\n    e2d.drawImage(img)\r\n  )\r\n);\r\n\r\n```\r\n\r\n### __imageSmoothingEnabled.js__\r\n\r\nThis function is wrapper function that sets imageSmoothingEnabled for it's children. _(default is true)_\r\n\r\nFor more information on how `imageSmoothingEnabled` works, please visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled).\r\n\r\n```javascript\r\nlet noSmooth = e2d.imageSmoothingEnabled(false,\r\n  ...children\r\n);\r\n```\r\n\r\n### __drawImage.js__\r\n\r\nThis function draws an image to the canvas when rendered.\r\n\r\nSee [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage) for more information on how to use drawImage.\r\n\r\nNote to chrome developers, it's faster to use a image pattern and fill a rectangle using a `fillStyle` or `imagePattern`.\r\n\r\n```javascript\r\n\r\n//one paramenter means draw the image at 0, 0 with img.width and img.height as the width/height parameters\r\nlet imgCommand = e2d.drawImage(img);\r\n\r\nlet imgCommandPosition = e2d.drawImage(img, x, y); //draw image at x, y, img.width, img.height\r\n\r\nlet imgCommandSize = e2d.drawImage(img, x, y, width, height); //specify the size of the image\r\n\r\n//or draw the image from a source within the image (this is hard to optimize for the browser and may be slow)\r\nlet imgSourceSize = e2d.drawImage(img, sx, sy, sWidth, sHeight, x, y, width, height);\r\n```\r\n\r\n\r\n### __ellipse.js__\r\n\r\nThis will add an ellipse to the current path.  This method is \"pseudo-polyfilled\" and supported for all browsers.  For more information on this method please visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/ellipse). There are three forms for the ellipse function.\r\n\r\nPlease see [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/ellipse) for more information on this experimental technology.\r\n\r\n```javascript\r\n\r\nlet example = e2d.ellipse(radiusX, radiusY); //from 0, 0\r\nlet example2 = e2d.ellipse(x, y, radiusX, radiusY); // from x, y\r\nlet example3 = e2d.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);\r\n```\r\n\r\n### __fillArc.js__\r\n\r\nThis method was added for convenience. It makes the API a bit more consistent and takes the same parameters as the `arc` function and works exactly like `fillRect`.\r\n\r\n```javascript\r\nimport e2d from 'e2d';\r\n\r\nlet fastestArc = e2d.fillArc(); //radius 1 and x, y is 0, 0\r\nlet justRadius = e2d.fillArc(radius); //radius is set, x, y is 0\r\nlet radiusWithXY = e2d.fillArc(x, y, radius); //radius is set, x, y is [x], [y]\r\n\r\n//to specify the start and end angle, use the startAngle and endAngle parameters\r\nlet radiusWithXYandAngles = e2d.fillArc(x, y, radius, startAngle, endAngle);\r\n\r\n//to specify anticlockwise motion, use the anticlockwise parameter like this\r\nlet arcAntiClockwise = e2d.fillArc(x, y, radius, startAngle, endAngle, anticlockwise);\r\n```\r\n\r\n### __fillRect.js__\r\n\r\nTo see how fillRect works, see [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillRect).  The `fillRect` function has two forms.\r\n\r\n```javascript\r\n\r\n//to specify a rectangle at [0,0] use the fillRect shorthand\r\nlet widthAndHeight = e2d.fillRect(width, height);\r\n\r\n//otherwise, specify x and y\r\nlet sizeAndPosition = e2d.fillRect(x, y, width, height);\r\n\r\n```\r\n\r\n### __fillStyle.js__\r\n\r\nThis function will \"set\" the `fillStyle` property using the first argument as the value for the property.  To see how `fillStyle` works visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle).\r\n\r\n```javascript\r\n\r\n//fill a red circle\r\nlet redCircle = e2d.fillStyle('red',\r\n  e2d.fillArc(200)\r\n);\r\n```\r\n\r\nNested fill styles can occur (and stack as a result):\r\n\r\n```javascript\r\nlet example = e2d.fillStyle('red',\r\n  //fillStyle is red here\r\n  e2d.fillStyle('blue',\r\n    //fillStyle is blue here\r\n  )\r\n  //now it's red again\r\n);\r\n```\r\n\r\n### __strokeStyle.js__\r\n\r\nThis function will \"set\" the `strokeStyle` property using the first argument as the value for the property.  To see how `strokeStyle` works visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/strokeStyle).\r\n\r\n```javascript\r\n\r\n//fill a red circle\r\nlet redCircle = e2d.strokeStyle('red',\r\n  e2d.strokeArc(200)\r\n);\r\n```\r\n\r\nNested stroke styles can occur (and stack as a result):\r\n\r\n```javascript\r\nlet example = e2d.strokeStyle('red',\r\n  //strokeStyle is red here\r\n  e2d.strokeStyle('blue',\r\n    //strokeStyle is blue here\r\n  )\r\n  //now it's red again\r\n);\r\n```\r\n\r\n### __globalCompositeOperation.js__\r\n\r\nFor change global composite operations, use `globalCompositeOperation()`.\r\n\r\nSee [mdn: globalCompositeOperation](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) to learn how to use them.\r\n\r\n```javascript\r\nlet operation = e2d.globalCompositeOperation('multiply',\r\n  //do some fill operations\r\n);\r\n```\r\n\r\n### __globalAlpha.js__\r\n\r\nThe `globalAlpha` function will apply and set the `globalAlpha` relative to the parent `globalAlpha` value.\r\n\r\n```javascript\r\n\r\nlet alphaCommands = e2d.globalAlpha(0.5,\r\n  //children are now drawn at 0.5 alpha\r\n\r\n  e2d.globalAlpha(0.5,\r\n    //children are now drawn at 0.25 alpha because 0.5 * 0.5 is 0.25  (floating point math applies)\r\n  )\r\n)\r\n\r\n```\r\n\r\n### __hitRegion.js__ and __hitRect.js__\r\n\r\nThe `hitRect` and `hitRegion` functions will apply a `hitRegion` to the canvas.\r\n\r\nHit regions are complicated, because they are relative to the current state of the canvas context.\r\n\r\n```javascript\r\nlet hexagon = e2d.createRegularPolygon(100, [0, 0], 6);\r\n\r\nlet hexagonPath = e2d.path(\r\n  hexagon.map(e2d.moveToLineTo)\r\n);\r\n\r\ne2d.initialize(ctx);\r\ne2d.raf(() => {\r\n  let regions = e2d.regions(ctx);\r\n\r\n  return e2d.render(\r\n    e2d.translate(100, 100,\r\n\r\n      //if there is a hovered region, turn the fillStyle red\r\n      e2d.fillStyle(regions.length > 0 ? 'red' : 'black',\r\n\r\n        //fill a hexagon\r\n        hexagonPath, e2d.fill(),\r\n\r\n        //set the hexagon region on the canvas\r\n        e2d.hitRegion('hexagon-region', hexagon)\r\n      )\r\n    ),\r\n    ctx\r\n  );\r\n});\r\n\r\n```\r\n\r\nTo make a square use `hitRect(id, x, y, width, height)` or `hitRect(id, width, height)`.\r\n\r\n### __invertMatrix.js__\r\n\r\nThis function will return an inverse matrix relative to the canvas matrix provided by calculating a determinant and returning a new `Array`.\r\n\r\nThis function is used internally to transform mouse points inversely to determine point in polygon detection relative to the provided shape.\r\n\r\n```javascript\r\nlet [a, b, c, d, e, f] = e2d.invertMatrix([a, b, c, d, e, f]);\r\n```\r\n\r\n### __lineStyle.js__\r\n\r\nThis is a composite property abstraction that contains `lineWidth` and other useful properties. See [mdn: lineCap](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap), [mdn: lineWidth](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth), [mdn: lineJoin](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin), [mdn: miterLimit](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/miterLimit), and [mdn: setLineDash](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash)\r\n\r\n```javascript\r\nlet style = {\r\n  lineWidth: 1,\r\n  lineCap: 'round',\r\n  lineJoin: 'bevel',\r\n  miterLimit: 10,\r\n  lineDash: [],\r\n  lineDashOffset: 0\r\n};\r\n```\r\n`lineDashOffset` and `lineDash` are abstracted to make them easier to animate.\r\n\r\n```javascript\r\nlet example = e2d.lineStyle(style,\r\n  //do some line stroke() operations here\r\n);\r\n```\r\n\r\n### __path.js__, __lineTo.js__ and __moveTo.js__\r\n\r\nThe `path(pathInstructions)` call wraps `pathInstructions` in `beginPath()` and `endPath()` operations.\r\n\r\nTo see how these functions work, visit mdn for [moveTo](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/moveTo), and [lineTo](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineTo).\r\n\r\n```javascript\r\n//wrap paths in e2d.path()\r\nlet example = e2d.path(\r\n  e2d.moveTo(0, 0),\r\n  e2d.lineTo(10, 10),\r\n  e2d.lineTo(10, 0)\r\n);\r\n\r\n```\r\n\r\n### __quadraticCurveTo.js__\r\n\r\nUse this to make a quadratic curve to another point.  All 4 parameters are required. To see how this function works, please visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo). \r\n\r\n```javascript\r\n\r\nlet curveCommand = e2d.quadraticCurveTo(cpx, cpy, x, y);\r\n```\r\n\r\n### __rotate.js__, __translate.js__, and __scale.js__\r\n\r\nUse these functions to translate/rotate/and scale the provided context.\r\n\r\nThese are the most important functions abstracted by the e2d render engine. Internally e2d uses `setTransform` on the canvas and keeps track of transforms manually.  This allows the developer to use `transforms` like `rotate` and `scale` without worrying about permanently displacing a canvas context.\r\n\r\nThe `rotate` function uses radians like this.\r\n\r\n```javascript\r\nlet rotatedSquare = e2d.rotate(Math.PI / 8, //45 degrees\r\n  e2d.path(e2d.rect), e2d.stroke()\r\n);\r\n```\r\n\r\nTo translate a draw command, use the `translate` function with the `x` and `y` parameters.\r\n\r\n```javascript\r\n//fill a circle at [x, y] with radius 100\r\nlet movedCircle = e2d.translate(x, y, e2d.fillArc(100));\r\n```\r\nTo scale a draw command, use the `scale function.  It has two forms.\r\n\r\n```javascript\r\n//scale a rectangle to double it's size\r\nlet doubleSized = e2d.scale(2, e2d.fillRect(10, 10));\r\n\r\n//scale the rectangle by [x, y]\r\nlet doubleSizedXOnly = e2d.scale(x, y, e2d.fillRect(10, 10));\r\n```\r\n\r\nAs a final example, a default drawSprite function is provided here.\r\n\r\n```javascript\r\n//standard sprite function\r\nlet drawSprite = (sprite, { position, size, rotation, center }) => e2d.translate(position[0], position[1],\r\n  //rotate before scaling to prevent side effects\r\n  e2d.rotate(rotation,\r\n    e2d.scale(size,\r\n      //center the sprite\r\n      e2d.translate(-center[0], -center[1],\r\n        sprite\r\n      )\r\n    )\r\n  )\r\n);\r\n\r\n//this is how it's used\r\ne2d.render(\r\n  drawSprite(e2d.drawImage(img), {\r\n    position: [100, 100],\r\n    size: 1.1,\r\n    rotation: Math.PI / 4,\r\n    center: [img.width * 0.5, img.height * 0.5]\r\n  }),\r\n  ctx\r\n);\r\n\r\n```\r\n\r\n### __transform.js__\r\n\r\n`transform([a,b,c,d,e,f], children...)` is a convenience function for advanced developers to add a transform to the current stack.  For more information on how the `transform` operation works, please visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform).\r\n\r\n```javascript\r\nlet transformOperation = e2d.transform(\r\n  [A, B, C, D, E, F], //{ a: d11, b: d12, c: d21, d: d22, e: d31, f: d32 } for reference\r\n  ...children\r\n);\r\n```\r\n\r\n### __resetTransform.js__ and __setTransform__\r\n\r\nThese functions give direct access to the `transformStack` values.  To see how these functions work, please see [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setTransform).\r\n\r\n```javascript\r\nlet changeCurrentTransform = e2d.setTransform(\r\n  [A, B, C, D, E, F], //{ a: d11, b: d12, c: d21, d: d22, e: d31, f: d32 } for reference\r\n  ...children\r\n);\r\n\r\n//this is a shortcut for setTransform([1, 0, 0, 1, 0, 0]);\r\nlet returnToIdentity = e2d.resetTransform(...children);\r\n```\r\n\r\n### __shadowStyle.js__\r\n\r\nMuch like __lineStyle.js__ this is a compound property that can be nested.\r\n\r\nSee [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#Shadows) for more details.\r\n\r\n```javascript\r\nlet shadowStyleDefinition = {\r\n  shadowBlur: 0,\r\n  shadowColor: 'black',\r\n  shadowOffsetX: 0,\r\n  shadowOffsetY: 0\r\n};\r\n```\r\n\r\nExample:\r\n\r\n```javascript\r\nlet shadowCommand = e2d.shadowStyle(shadowStyleDefinition,\r\n  //stuff with a shadow\r\n);\r\n```\r\n\r\n### __stokeArc.js__\r\n\r\nThis function doesn't exist on the Canvas prototype, but was added for completeness.  It draws a circular arc.\r\n\r\nThis command has four forms.\r\n\r\n```javascript\r\n\r\nlet strokeRadius = e2d.strokeArc(radius); //at 0, 0\r\nlet strokePosition = e2d.strokeArc(x, y, radius); //full angle\r\nlet strokePortion = e2d.strokeArc(x, y, radius, startAngle, endAngle); //specify the angles\r\nlet strokeCounterClockwise = e2d.strokeArc(x, y, radius, startAngle, endAngle, true); //counterclockwise\r\n```\r\n\r\n### __strokeRect.js__\r\n\r\nThis will outline a rectangle.  Please visit [mdn](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/strokeRect) to see how strokeRect works. It has two forms.\r\n\r\n```javascript\r\nlet rect = e2d.strokeRect(width, height); //at 0, 0\r\nlet rect2 = e2d.strokeRect(x, y, width, height);\r\n```\r\n\r\n### __textStyle.js__, __fillText.js__, and __strokeText__\r\n\r\nThese functions help you draw text to the screen using Canvas's really poorly implemented text API.  Please see mdn for more information about the font properties.\r\n\r\nNote: the `text` function is deprecated.\r\n\r\n```javascript\r\nlet style = {\r\n    font: 'Comic Sans MS', //probably pick another font... please?\r\n    textAlign: 'center', // text alignment\r\n    textBaseline: 'top', // base alignment\r\n    direction: 'ltr' // ltr: left to right, rtl: right to left, and inherit\r\n  };\r\n\r\nlet textCommand = e2d.textStyle(style,\r\n  e2d.fillText('hello world!'), //at 0, 0\r\n  e2d.strokeText('other text', x, y), //at x, y\r\n\r\n  //text, x, y, fill, stroke\r\n  e2d.fillText('some other text too', x, y, maxWidth),\r\n\r\n  //and maxWidth\r\n  e2d.strokeText('the final example', x, y, maxWidth)\r\n);\r\n```\r\n\r\n### __transformPoints.js__\r\n\r\nThis utility function transforms a set of points relative to the specified transform matrix. It is used internally by `e2d` to calculate and apply mouse regions to the canvas.\r\n\r\n```javascript\r\nlet matrix = new Float64Array([a, b, c, d, e, f]);\r\n//or...\r\nlet matrix = new Float64Array([d11, d12, d21, d22, d31, d32]);\r\n//lookup map\r\n//[d11, d21, d31]  ---- [a, c, e]\r\n//[d12, d22, d32]  ---- [b, d, f]\r\n//[  0,   0,   1]  ---- [0, 0, 1]\r\n\r\nlet points = [\r\n  [x0, y0],\r\n  [x1, y1],\r\n  [x2, y2],\r\n  ...\r\n  [xN, yN]\r\n];\r\n\r\nlet newPoints = transformPoints(points, matrix);\r\n```\r\n\r\nIt returns a new array of `[x, y]` points with the coordinates transformed.\r\n\r\n### __createRegularPolygon.js__\r\n\r\nCreates a regular polygon shape: an array of arrays.\r\n\r\n```javascript\r\nlet radius = 10;\r\nlet position = [x, y];\r\nlet sides = 6;\r\nlet hexagon = e2d.createRegularPolygon(radius, position, sides);\r\n\r\nconsole.log(hexagon);\r\n[\r\n  [10, 0],\r\n  [5.000000000000001, 8.660254037844386],\r\n  [-4.999999999999998, 8.660254037844387],\r\n  [-10, 1.2246467991473533e-15],\r\n  [-5.000000000000004, -8.660254037844384],\r\n  [5.000000000000001, -8.660254037844386]\r\n]\r\n```\r\n\r\n### __moveToLineTo.js__\r\n\r\nThis is a convenience function used with the `Array.prototype.map` function that maps shapes to drawable polygons.\r\n\r\n```javascript\r\nlet hexagonShape = e2d.createRegularPolygon(10, [0, 0], 6);\r\nlet hexagonPath = e2d.path( //always wrap drawn paths with e2d.path\r\n  hexagonShape.map(e2d.moveToLineTo) //map each point to an instruction\r\n);\r\n\r\ne2d.render(\r\n  hexagonPath,\r\n  e2d.stroke(),\r\n  ctx\r\n);\r\n\r\n```\r\n\r\n# License\r\n\r\nThe MIT License (MIT)\r\n\r\nCopyright (c) 2015 Joshua Tenner\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE.\r\n","maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"time":{"modified":"2022-06-16T03:06:41.660Z","created":"2015-07-14T17:28:14.063Z","1.0.0":"2015-07-14T17:28:14.063Z","1.0.1":"2015-07-14T19:02:04.487Z","1.0.2":"2015-07-14T21:15:19.700Z","1.0.3":"2015-07-14T21:39:08.305Z","1.1.0":"2015-07-15T19:38:39.663Z","1.2.0":"2015-07-22T19:10:08.254Z","1.2.1":"2015-07-24T14:41:29.958Z","1.3.0":"2015-07-27T17:02:26.880Z","1.3.1":"2015-07-27T18:08:06.016Z","1.4.1":"2015-07-28T19:50:41.895Z","1.4.2":"2015-07-30T20:32:40.406Z","1.4.4":"2015-07-30T20:48:16.535Z","1.4.5":"2015-08-05T23:10:13.168Z","1.5.0":"2015-08-06T17:54:45.824Z","1.6.0":"2015-08-10T20:35:59.282Z","1.6.1":"2015-08-11T15:46:43.512Z","1.7.0":"2015-08-14T17:48:44.011Z","1.7.1":"2015-08-14T17:59:43.844Z","1.7.2":"2015-08-14T18:22:09.956Z","1.7.3":"2015-08-14T21:42:05.011Z","1.7.4":"2015-08-31T19:13:16.476Z","1.7.5":"2015-09-04T18:36:33.914Z","1.7.6":"2015-09-04T19:04:07.519Z","1.7.8":"2015-09-08T15:21:40.407Z","1.7.9":"2015-09-08T15:33:46.707Z","1.7.10":"2015-09-10T19:43:44.851Z","1.7.11":"2015-09-10T20:02:59.373Z","1.7.12":"2015-09-15T20:24:52.415Z","1.7.13":"2015-09-15T21:39:27.693Z","1.7.14":"2015-09-15T21:41:21.182Z","1.7.15":"2015-09-18T19:43:02.389Z","1.7.16":"2015-09-18T21:36:12.530Z","1.7.17":"2015-10-08T20:37:16.784Z","1.7.18":"2015-10-08T20:41:16.727Z","1.7.19":"2015-10-14T14:54:19.725Z","1.7.20":"2015-10-14T15:11:32.983Z","1.7.21":"2015-10-14T20:05:37.972Z","1.7.22":"2015-10-14T20:09:15.566Z","2.0.0":"2015-10-20T17:37:07.793Z","2.0.1":"2015-10-26T17:44:18.880Z","2.0.2":"2015-11-05T19:44:31.623Z","2.0.3":"2015-11-05T19:54:15.883Z","2.0.4":"2015-11-17T17:32:12.432Z","2.0.5":"2015-11-18T22:19:23.348Z","2.1.0":"2015-11-23T22:29:17.381Z","3.0.0":"2015-11-25T22:09:45.598Z","3.0.1":"2015-11-25T22:31:19.740Z","3.0.2":"2015-11-27T19:07:10.402Z","3.0.3":"2015-11-27T19:12:47.501Z","3.0.4":"2015-11-27T19:13:44.682Z","3.1.0":"2016-01-25T18:54:49.253Z","3.2.0":"2016-03-28T15:59:34.631Z","3.2.1":"2016-03-31T17:18:09.438Z","3.3.0":"2016-05-13T16:44:39.642Z","3.3.1":"2016-05-13T16:57:51.176Z","3.3.2":"2016-06-15T17:51:41.582Z","3.3.3":"2016-06-22T21:29:00.950Z","3.3.4":"2016-06-23T15:22:29.350Z","3.4.0":"2016-06-23T19:13:28.860Z","3.4.1":"2016-06-23T19:22:23.103Z","4.0.0-rc.1":"2016-12-22T22:16:26.542Z","4.0.0-rc.2":"2017-10-18T14:20:51.375Z"},"license":"MIT","readmeFilename":"readme.md","keywords":["canvas","2d","declarative","graphics","browser"],"homepage":"https://github.com/jtenner/e2d#readme","repository":{"type":"git","url":"git://github.com/jtenner/e2d.git"},"bugs":{"url":"https://github.com/jtenner/e2d/issues"},"author":{"name":"Joshua Tenner"}}