{"_id":"blueprint","_rev":"60-f32d5c867db673f9c8838ecc61681657","name":"blueprint","description":"A sleek and simple interface for building powerful Javascript classes","dist-tags":{"latest":"2.1.5"},"versions":{"0.0.11":{"name":"blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","main":"./lib/blueprint","version":"0.0.11","devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.11","dist":{"shasum":"2cfb2d9c0456ad05ca924eee46aa4339a5b96a70","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.11.tgz","integrity":"sha512-HWRYaz1bh2Bz2vR+8ZowfBBC0tWmOFpfBVEy3mAUHM0pphRt4LuG+27tMQYmZlqlgjFTSrkFy78rGnxcKLxxEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDIB7EmxTVei4RoMVpbEgkpn29Q3tWATRax4eVjbknqjAiBLnXmD6ZeO9cwkHNpziAa3nKil3dKSSPQrlcOweWZnHA=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.13":{"name":"blueprint","version":"0.0.13","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","ORM","DAL","OOP","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.13","dist":{"shasum":"7dfa406946ab524e9bdd31105017fa4be7b945f3","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.13.tgz","integrity":"sha512-a5XD0ixXERwAKf9HAj9tHk1qDx1S4t9WIu1Phf+q3s4B6frMJwFBtjoVgbxothxFAoHZ9eAZIA5yShVbD49SvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsqTekNWuUY9ixMEWKGXtRBnOGKPIrAEZsjY0KqLKf5gIgRpuWDFV9jE0twD2Kt6zyMAxOEHsu67QyuFAQm4cOTCc="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.14":{"name":"blueprint","version":"0.0.14","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","ORM","DAL","OOP","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.14","dist":{"shasum":"8f2c182985528875e35e3af726dfe262d3d02bdb","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.14.tgz","integrity":"sha512-zTYpZbXvIMaS1CoMUpn5g/uj4RYL9r6GuzmNCVHd96ycT1s3IfwUBoMJndMoJM2Sl81Hsk/dUxR2/Ds6QwW7oA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZ/Pl2/Gh///0+NlUyBy4iMXegX3t/GYDrxSPj76labAiBx5qRsB6Oc2qAcNnGye0p0Ql3I1SRSMOjQxJL7V00DXA=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.15":{"name":"blueprint","version":"0.0.15","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","ORM","DAL","OOP","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.15","dist":{"shasum":"db66b77de80290a7d83052477fc6761b2c3117d1","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.15.tgz","integrity":"sha512-mI0xcbsculNtwVzmDrqTKONglsO+N+DOvqLjNlaqSvo500mgGtk4Ts4ntu7RvedFXkmEaO0QijfBMSlZbgkaaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9qanyTnzo0fl550otQROBRCqAhqi+IioLWlIdRb0jEwIhAO1gUeAerwdKIwN4Z+vIwvQTvbcSk33vNzsmHX6RyPlI"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.16":{"name":"blueprint","version":"0.0.16","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.16","dist":{"shasum":"899b51c1a574ea940ff9f5c7b427f5e12ab78b0f","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.16.tgz","integrity":"sha512-G3kgOkep2aBKJ9YjjPgKqX4VvwVTWyy6xIt9Nr9r3m2hq9xuCA2uRjlX2eJnuQ7K07dB6esvFq6LzRsXbhaW/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEkeTmFa52KEZ9Rir21NTj+oAyl22JwyH5d77CPc2MZ3AiEAwTkZ7dqbziVhsob8nVSJowrM8Ff1nElIthjLLTY6T1M="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.17":{"name":"blueprint","version":"0.0.17","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.17","dist":{"shasum":"787d227668eedb81356c22d5374f7e7eb4229e83","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.17.tgz","integrity":"sha512-PQHZ61Jgt0o+XFWiQBL3ryutanLsMY9bWvv/v+dLFH0ZHbi9q7a13hGiozPUEHeYuRfXD6+jp7fUd9r9PH+8ZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHhht5B+Bxkj7wRQfnG1eAp+DCCjTWPM2pour5Y4r3TAAiEA4HM/tlrss3D+L/qmYP7+7jA6/RV+THNTsRLnaFlX1ow="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.18":{"name":"blueprint","version":"0.0.18","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.18","dist":{"shasum":"dd0c5d3832405be56976d21b9c9b6a7d2c77518e","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.18.tgz","integrity":"sha512-nrCWrKwAnqR2bst1kgcCWyyTopXDN7MkbnG46z4ynhEN16PUMX2fDO1r8wxTuqeJrfk6mO/kW2rSmaqo6FoJHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJkox1a2hPzkcR0nwctYk4YYBB87zA6WR8LU0xk4OkawIgQ8px9ECZo786fUlJDEpRmH9qUOSEEc61tZzF4flgdb4="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.19":{"name":"blueprint","version":"0.0.19","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.19","dist":{"shasum":"27976dd474daf0e2cd2795512227478858b781af","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.19.tgz","integrity":"sha512-fgGmOKhiQddVtVj7Osgl5/UYTjhGJU0U51bmGU28aXh84lPgGy1cJm4gf/FqWpINK0VfjhdIJO50Xy1S4IfiSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5DOibb43rPoSgFtV+ybe7YiBpnqCS8lCJHTs8zB7nGQIgPtwdaY9i7nhXODBUxxyjBVaWMm/quIuLueKvMSRg+dE="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.20":{"name":"blueprint","version":"0.0.20","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.20","dist":{"shasum":"cc555c2bf769f90640b838667bf883b039e4367d","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.20.tgz","integrity":"sha512-u640LQj/A/onLtMNot6BP3Y89gxw/Bno7liuqH6c0OL4wcgn9W/JbS8N/YdLJfVpJ7tzlX33+4R1Y053rWp6mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8Pn/akBc226H//K4NY8lVrxxSCZVRGSBtufr8whHtnAiBkXPQTRA2008w7AiMXRmVJGFdbX8NBjLt2NqEII1mHzg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.22":{"name":"blueprint","version":"0.0.22","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.22","dist":{"shasum":"68806f163d3eb175b2cadca00d80fb37d152588c","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.22.tgz","integrity":"sha512-QwCcoKsN0xOteLsBgqaunLRrkiA1pFEPMxaZSD24AlWMkPFIlOFzNTt61g8vfo87D+l29JjuLCCc5vY+p4DAlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHrAMjFCVCpU7KlyjRreyTq7CZMEUgQ8Gfl1HxA4hjReAiEAo7BPrzY77FkMRer+6ydMWSY0DHLRtWFdgBZUm1KiUUc="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.23":{"name":"blueprint","version":"0.0.23","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"_id":"blueprint@0.0.23","dist":{"shasum":"f42430f6b8b0757a6af79910094382919c0dece3","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.23.tgz","integrity":"sha512-BjdmHuvNeNgHeXJtdIx/ZFpBg/IpyMhOG+Vi2mVzugmOWvGVaFpvoIyZBVxHScdJTTSD12hP0SZoMBtUvgTdZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDynmyZiosm9kxfZPw4LnfZ6+3hDVMudW6LFEylWimSmAiBf999ARdVIaiBuU68Iyk/Ogr2UlgZpn9Q7CoYZXeRYTA=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.24":{"name":"blueprint","version":"0.0.24","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0","browserify":"~3.24.8"},"scripts":{"pretest":"npm run-script build","test":"node_modules/mocha/bin/mocha","build":"node_modules/browserify/bin/cmd.js lib/blueprint.js --standalone blueprint -o dist/blueprint.js;node_modules/browserify/bin/cmd.js test/test.js --standalone tests -o dist/test.js"},"_id":"blueprint@0.0.24","dist":{"shasum":"0bf7a5c5a9d6657468e9acad8a3bac5f4897fd95","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.24.tgz","integrity":"sha512-DOu5HhdX5TTFbuxcUaK5DzZnzliWZdINOqhVWl2IyFjLwZVArX1uKX3vtkq/IJO/t0GZkrF04CrWjurWogeENg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfhvo5OVVK083OMpLezI2+2Qw5MCHypAD0D1E9274puQIgbkwPSIOguBCaS+jMBSunJObwnTXssIk4eYyjtR7pCMk="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.25":{"name":"blueprint","version":"0.0.25","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0","browserify":"~3.24.8"},"scripts":{"pretest":"npm run-script build","test":"node_modules/mocha/bin/mocha","build":"node_modules/browserify/bin/cmd.js lib/blueprint.js --standalone blueprint -o dist/blueprint.js;node_modules/browserify/bin/cmd.js test/test.js --standalone tests -o dist/test.js","start":"python -m SimpleHTTPServer"},"_id":"blueprint@0.0.25","dist":{"shasum":"889d96ac04246104b966cd1d7eb0dc5e11eef670","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.25.tgz","integrity":"sha512-cjUBINaYKY9EZqHZaQ0CN63gCB+/LN6R7425Qv6vOEukCLCOVxyxCWsaeL+8phyeboUQN6YC48qPrUyamuPjNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL/VmpZHQBZiXLyiNOb6cOTqlO6SWfNhhjyeXSMULctgIgd4RKXmS9nMO+sITPjoyudmGse2mvX7FhuZc9gUtFh3Q="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.26":{"name":"blueprint","version":"0.0.26","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0","browserify":"~3.24.8"},"scripts":{"pretest":"npm run-script build","test":"node_modules/mocha/bin/mocha","build":"node_modules/browserify/bin/cmd.js lib/blueprint.js --standalone blueprint -o dist/blueprint.js;node_modules/browserify/bin/cmd.js test/test.js --standalone tests -o dist/test.js","start":"python -m SimpleHTTPServer"},"_id":"blueprint@0.0.26","dist":{"shasum":"73122d1b9285d2c396b1a931d8989aa280bf1ec1","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.26.tgz","integrity":"sha512-mV1Ov7z8KLuoIgkHp6nAFykjzrF91K+bDKrLXtlggMjxWD3kMiwqR1Voy7PtaOiuNiLXiVU9XnbWjm2FFKn6Tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvTILvy7Qpi1dKqaRnIj9jx4Oeoe0QTqMUnVo6cn26KwIhALG0w8+7Tcz8FLPZkbTesBFA/n72YBe/mOj3DmQqjlG+"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.27":{"name":"blueprint","version":"0.0.27","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0","browserify":"~3.24.8"},"scripts":{"pretest":"npm run-script build","test":"node_modules/mocha/bin/mocha","build":"node_modules/browserify/bin/cmd.js lib/blueprint.js --standalone blueprint -o dist/blueprint.js;node_modules/browserify/bin/cmd.js test/test.js --standalone tests -o dist/test.js","start":"python -m SimpleHTTPServer"},"_id":"blueprint@0.0.27","dist":{"shasum":"8ac1f180941a6dcdaf42bf968590890e8e78d0e5","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.27.tgz","integrity":"sha512-73Iagz2jJLxXDLLaft2BnFlu1waP/wrPUBtOMTl0K/jYjmRpeTlP7tKrd5vkPMvJTDaJquB9s4IbYOpGVozljw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXlfq/veZT1XQfFy+WxaeayZi+jKFVrYJRRK7gOgjkuQIgUL5s43uCvC5QyhGEANEIKxJC1Tcd4lpK5g/g5yLz1mw="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.28":{"name":"blueprint","version":"0.0.28","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0","browserify":"~3.24.8"},"scripts":{"pretest":"npm run-script build","test":"node_modules/mocha/bin/mocha","build":"node_modules/browserify/bin/cmd.js lib/blueprint.js --standalone blueprint -o dist/blueprint.js;node_modules/browserify/bin/cmd.js test/test.js --standalone tests -o dist/test.js","start":"python -m SimpleHTTPServer"},"_id":"blueprint@0.0.28","dist":{"shasum":"6030cfd281fd092a248cc32a0570b24eb32fe55c","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-0.0.28.tgz","integrity":"sha512-ark5CyIPsd/PXeNs8BprnrfLt5SbsXLP7y57pgWu59P1QdThUSg7GLsV4xkzH5SptkmygF+l0htDvoxw3dAX+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE116v2o+x/HiKs5NVu+6mYjvial+UYhlrxHiuFhU/ofAiEAtAsx0dP4mUY/YUZR9tw4KXsSOwqLEksR05k0PG5E+XI="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.1":{"name":"blueprint","version":"2.1.1","main":"./lib/blueprint","description":"A database agnostic model layer and OOP implementation designed for reusability between the client and server","keywords":["blueprint","model","database","schema","orm","dal","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"scripts":{"test":"node_modules/mocha/bin/mocha"},"bugs":{"url":"https://github.com/avinoamr/blueprint.js/issues"},"_id":"blueprint@2.1.1","dist":{"shasum":"f138e0d7304aa545e971cbe710548c262f44c428","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-2.1.1.tgz","integrity":"sha512-hB5/XvC/OqqMYFylxEzPItq3Pkv37HwWPPNieqgd9o6Wu/otE97MSfciyoq1vxU/M/QwnYEwrnUkQNCE9rJfXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDv148FcwJKHe2tUAbjp7Nn/Dtz/YSTTdekwuprOWFVfgIhAKDhHra1J2TdfmUYZvSYpgRsYtinmakZ7EdwWzT9mSYo"}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.2":{"name":"blueprint","version":"2.1.2","main":"./lib/blueprint","description":"A sleek and simple interface for building powerful Javascript classes","keywords":["blueprint","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"~1.14.0"},"scripts":{"test":"node_modules/mocha/bin/mocha"},"bugs":{"url":"https://github.com/avinoamr/blueprint.js/issues"},"_id":"blueprint@2.1.2","dist":{"shasum":"530b7767391d1b40cbb9229d42e70bb3d4587cb9","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-2.1.2.tgz","integrity":"sha512-F61wMEJ3IiuQeue3tOTuLgDw+6SAQ3hH8IzMcp6SdRvyFw9MNrPOb573D1gk+rkaGxdolQ1wsaCT0f225/WHsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ7UVGCsBOJkChNl1gyylzYX+IpsVhxxp4E72frgl0sAIhALgEYxmK8QUpwji1aAK4/GSMAc+o5zzdqua9KO9yBoqK"}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.3":{"name":"blueprint","version":"2.1.3","main":"./lib/blueprint","description":"A sleek and simple interface for building powerful Javascript classes","keywords":["blueprint","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"*","bower":"*"},"scripts":{"test":"node_modules/mocha/bin/mocha"},"bugs":{"url":"https://github.com/avinoamr/blueprint.js/issues"},"_id":"blueprint@2.1.3","dist":{"shasum":"816254bb4a916108e62faad69b0fa4e1f1961fb6","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-2.1.3.tgz","integrity":"sha512-E9OoafYPhyEXXFkdszqbTb+C3xFf4WjSpSWIH+B+zJpBgt8M4KMgqd0XqpLuaOnobglrGF0GEOBpl5LAhgiEUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyPvAaN7A4zhWvG2EyZX+Om1HWmCXs1fzLVwOvKBecogIgDVKb6xYfI3WGgOF/Q61gkVTQ/ZG1Wq17erdy9b66AXw="}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.4":{"name":"blueprint","version":"2.1.4","main":"./lib/blueprint","description":"A sleek and simple interface for building powerful Javascript classes","keywords":["blueprint","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"mocha":"*","bower":"*"},"scripts":{"test":"node_modules/mocha/bin/mocha","publish":"node_modules/bower/bin/bower register"},"bugs":{"url":"https://github.com/avinoamr/blueprint.js/issues"},"_id":"blueprint@2.1.4","dist":{"shasum":"e3fd1bf6532e5b06b7e18b64859e85a8b1cf649a","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-2.1.4.tgz","integrity":"sha512-doaKiwyPjsftW656L5VhSx9UCCC1VgalxH6Em5v+XiNTC2gtVqfZVM0XJ+9YsETsE8VZwuq9LifxotikeSJ+Mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyRgpWYgr5HC5IYaUNRUv7Q+kDB218ea8o9OKgUIrKgQIgLLUGTdY1TjOAK/xwO7Go8l6eog0VnbMXu5ed1R4C774="}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.5":{"name":"blueprint","version":"2.1.5","main":"./lib/blueprint","description":"A sleek and simple interface for building powerful Javascript classes","keywords":["blueprint","oop","class","object"],"author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"devDependencies":{"bower":"*","mocha":"*","request":"^2.65.0"},"scripts":{"test":"node_modules/mocha/bin/mocha"},"gitHead":"892b452decc0357011d6c24bf467b867023aaf04","bugs":{"url":"https://github.com/avinoamr/blueprint.js/issues"},"homepage":"https://github.com/avinoamr/blueprint.js","_id":"blueprint@2.1.5","_shasum":"1d8b077bf93060e92a6c617dca5539e118772fb0","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.12.2","_npmUser":{"name":"avinoamr","email":"avinoamr@gmail.com"},"maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"dist":{"shasum":"1d8b077bf93060e92a6c617dca5539e118772fb0","tarball":"https://registry.npmjs.org/blueprint/-/blueprint-2.1.5.tgz","integrity":"sha512-gPXtQTFjeHmb6TDmwL1KSVwZIoUSIqhGYAYRz0AvEvp/6JPOrdENYL4zsAYp7HKHTnjKMngOsGUFv7czUj5vpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICY5/MwQBrDUIuUebETjthJWJ6zn7XQN/AkOTr+peuo+AiAGjGUOv2cSdR2yJ8tJbQBDnTJpcm/tXVn9i3ZharSUNg=="}]},"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"readme":"blueprint.js\n============\n\nA sleek and simple interface for building powerful Javascript classes\n\n> Inspired by a brilliant [talk](https://www.youtube.com/watch?v=9LfmrkyP81M) by David Heinemeier Hansson (creator of Ruby on Rails), I started thinking about code clarity in Javascript, in what can be done to make the language more expressive and powerful, but also more concise. Blueprint is an attempt to focus on one aspect of code clarity: minimalistic single-purpose functions. This is achieved by borrowing Python's function decorators in order to separate side-effects and setup logic from the core intention of the function itself.\n\n# Installation\n\n```\n$ npm install blueprint\n```\n\n# Usage\n\nCreate your Model classes by subclassing other Model classes:\n\n```javascript\nvar Task = blueprint( \"Task\" )\n    .define( \"title\", null )\n    .define( \"done\", false )\n    \n    .static() // defines a static member on the class\n    .define( \"tasks\", [] )\n    \n    // constructor\n    .init(function( title ) {\n        this.title = title;\n        this.constructor.tasks.push( this )\n    })\n    \n    .alias( \"flip\" )\n    .define( \"toggle\", function() {\n        this.done = !this.done;\n        return this;\n    })\n    \n    .trigger( \"remove\" ) // trigger the remove event before invocation\n    .decorate( log ) // inline custom decoration for logging\n    .define( \"remove\", function() {\n        var tasks = this.constructor.tasks;\n        var i = tasks.indexOf( this );\n        tasks.splice( i, 1 );\n    })\n    \n    .create(); // build and return the class from the Blueprint\n```\n\nSimply put, Blueprint is an API for constructing classes. Once the class is fully defined, call `.create()` to receive it's final constructor. You can also use it to extend external classes, like Backbone Models:\n\n```javascript\nvar User = blueprint( Backbone.Model )\n    .define( \"defaults\", { name: \"\", age: null } )\n    \n    .thenable() // makes save return a new Promise\n    .define( \"save\", function( attrs, options, fulfill, reject ) {\n        options || ( options = {} );\n        options.success = function( model ) {\n            fulfill( model );\n        };\n        options.error = function( model, err ) {\n            reject( err );\n        }\n        Backbone.Model.prototype.save.call( this, attrs, options )\n    })\n    \n    .create();\n```\n\nBlueprint encourages the use of Promises, instead of the traditional nesting callbacks. In the example above, we converted the save method to return a thenable object which can be accessed like this:\n\n```javascript\nnew User({ name: \"John\", age: 29 })\n    .save()\n    .then(function(model) {\n        // user is saved successfully\n    })\n    .catch(function(err) {\n        // something went wrong\n    });\n```\n\nOf course we can chain several thenable methods one after the other, using the `then()` directive, in order to flatten complex functions:\n\n```javascript\nvar Settings = blueprint()\n    \n    .thenable()\n    .define( \"read\", function( fulfill, reject ) {\n        fs.readFile( \"settings.json\", function( err, data ) {\n            if ( err ) reject( err )\n            else fulfill( data )\n        });\n    })\n    .then( String )\n    .then( JSON.parse )\n    \n    .thenable()\n    .then(function( data, fulfill, reject ) {\n        data.lastopen = new Date().toString();\n        fs.writeFile( \"settings.json\", JSON.stringify( data ), function( err ) {\n            if ( err ) reject( err );\n            else fulfill( data )\n        })\n    })\n    \n    .create()\n```\n\n## Decorators\n\nBlueprint includes with the following built-in decorators:\n\n#### .static()\nDefines the next property on the class, instead of the prototype:\n\n```javascript\nblueprint()\n    .static()\n    .define( \"hello\", \"world\" )\n    .create()\n    .hello; // == \"world\"\n```\n    \n#### .alias( name )\nDefines an alias for the next property:\n\n```javascript\nblueprint()\n    .alias( \"foo\" )\n    .define( \"bar\", 15 )\n    .create()\n    .prototype.foo // == prototype.bar == 15\n```\n\n#### .bind( obj )\nDefines the next method to run with the provided context, instead of the default instance as `this`:\n\n```javascript\nblueprint()\n    .bind({ hello: \"world\" }) // can also be a function that returns the object\n    .define( \"foo\", function() {\n        return this.hello // returns \"world\"\n    })\n    .create()\n```\n\n#### .trigger( event_name )\nDecorates the next method to trigger an event when before it's invoked:\n\n```javascript\nvar Class = blueprint()\n    .trigger( \"hello\" )\n    .define( \"world\", function() {} )\n    .create();\n    \nnew Class()\n    .on( \"hello\", function( ev, options ) {})\n    .world();\n```\n\n#### .thenable()\nDecorates the next method to return a Promise (the real return value is ignored) and also automatically appends callbacks for fulfilling and rejecting the promise. This is the Blueprint approach to building async code.\n\n```javascript\nvar FileReader = blueprint()\n    .thenable()\n    .define( \"readfile\", function( fname, fulfill, reject ) {\n        fs.readFile( fname, function( err, data ) {\n            if ( err ) reject( err )\n            else fulfill( data )\n        });\n    })\n    .create();\n    \nnew FileReader()\n    .readfile( \"hello\" )\n    .then(function( data ) {})\n    .catch(function( err ) {});\n```\n\n#### Work in progress\nThe following decorators are intended to be included in Blueprint. Contributions are welcome:\n\n1. `.private()` - private members\n1. `.property()` - property getter/setter\n1. `.expect()` - function input validation\n1. `.overload()` - function overloading\n\n## Custom Decorators\n\nYou can easily define your own custom decorators, using the `.decorate()` directive. Decorators, are simply functions that receive some previous defition of a property or method, and returns a new one:\n\n```javascript\nvar log_decorator = function( name, fn ) {\n    return function() {\n        console.log( name, arguments );\n        return fn.apply( this, arguments );\n    }\n};\n\nvar Class = blueprint()\n    .decorate( log_decorator )\n    .define( \"hello\", function() {})\n    .create();\n    \nnew Class().hello( 1, 2 ); // will log: \"hello\", [ 1, 2 ]\n```\n\nThat's it. You can use decorators to augument the class in any possible way, especially for separating side-effects and different aspects of the code out of the core function/property. You can also define a named decorator for easy re-usability (beware of conflicts):\n\n```javascript\nblueprint()\n    .decorate( \"log\", function() { return log_decorator } )\n    \n    .log()\n    .define( \"hello\", function() {})\n    \n    .log()\n    .define( \"world\", function() {})\n    \n    .create();\n```\n\n    \n\n\n\n\n\n","maintainers":[{"name":"avinoamr","email":"avinoamr@gmail.com"}],"time":{"modified":"2022-09-06T03:57:56.785Z","created":"2014-01-26T11:40:14.438Z","0.0.11":"2014-01-26T11:40:16.121Z","0.0.13":"2014-01-26T11:44:52.686Z","0.0.14":"2014-01-27T15:10:07.300Z","0.0.15":"2014-01-27T15:22:09.633Z","0.0.16":"2014-01-27T15:24:54.701Z","0.0.17":"2014-01-27T15:48:27.140Z","0.0.18":"2014-01-27T17:23:19.802Z","0.0.19":"2014-01-27T20:59:02.046Z","0.0.20":"2014-01-27T21:58:27.489Z","0.0.22":"2014-01-27T22:02:27.566Z","0.0.23":"2014-01-30T14:16:02.362Z","0.0.24":"2014-01-30T20:29:41.618Z","0.0.25":"2014-01-30T20:44:35.702Z","0.0.26":"2014-01-30T21:31:24.866Z","0.0.27":"2014-01-30T21:34:06.024Z","0.0.28":"2014-01-30T21:39:20.668Z","2.1.1":"2014-05-30T19:48:09.313Z","2.1.2":"2014-05-30T19:49:27.227Z","2.1.3":"2014-05-31T10:09:39.560Z","2.1.4":"2014-06-01T21:08:37.708Z","2.1.5":"2015-10-17T05:24:13.814Z"},"readmeFilename":"README.md","author":{"name":"Roi Avinoam","email":"avinoamr@gmail.com"},"repository":{"type":"git","url":"https://github.com/avinoamr/blueprint.js.git"},"keywords":["blueprint","oop","class","object"],"license":"MIT","bugs":{"url":"https://github.com/avinoamr/blueprint.js/issues"},"users":{"josuehenry14":true,"ronnie445":true},"homepage":"https://github.com/avinoamr/blueprint.js"}