{"_id":"proto","_rev":"120415","name":"proto","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","dist-tags":{"latest":"1.0.19"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"time":{"modified":"2021-06-03T10:56:09.000Z","created":"2013-09-11T13:57:35.945Z","1.0.19":"2015-03-03T20:02:53.488Z","1.0.18":"2015-03-03T02:18:14.606Z","1.0.17":"2015-02-26T18:20:03.350Z","1.0.16":"2015-02-26T17:43:24.642Z","1.0.15":"2015-02-24T22:48:14.469Z","1.0.14":"2015-02-23T07:22:02.903Z","1.0.13":"2015-02-23T02:45:03.904Z","1.0.12":"2015-02-23T02:10:42.758Z","1.0.11":"2014-10-30T08:15:24.740Z","1.0.10":"2014-07-24T18:09:22.878Z","1.0.9":"2014-04-17T22:54:27.713Z","1.0.8":"2014-01-23T23:07:51.451Z","1.0.6":"2013-11-29T23:23:18.479Z","1.0.5":"2013-11-12T21:41:17.622Z","1.0.4":"2013-09-17T21:00:32.191Z","1.0.3":"2013-09-11T15:26:10.867Z","1.0.2":"2013-09-11T15:05:41.678Z","0.1.0":"2013-09-11T13:57:35.945Z"},"users":{"relvao":true,"fresheneesz":true},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"versions":{"1.0.19":{"name":"proto","version":"1.0.19","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","build-modules":"2.0.3"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"7e4fe1f73874581b674c1830c2386d70c0cdc236","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.19","_shasum":"4dba250b34398ae242de24153e7bf9dab2fe4385","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"4dba250b34398ae242de24153e7bf9dab2fe4385","size":13443,"noattachment":false,"key":"/proto/-/proto-1.0.19.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.19.tgz"},"directories":{},"publish_time":1425412973488,"_cnpm_publish_time":1425412973488,"_hasShrinkwrap":false},"1.0.18":{"name":"proto","version":"1.0.18","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","build-modules":"2.0.3"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"c90020ecb5e0b11a121d5a54eb403d105d35f8e7","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.18","_shasum":"c0edc08d72d63da614274084cb44f46a421d0e9f","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"c0edc08d72d63da614274084cb44f46a421d0e9f","size":13438,"noattachment":false,"key":"/proto/-/proto-1.0.18.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.18.tgz"},"directories":{},"publish_time":1425349094606,"_cnpm_publish_time":1425349094606,"_hasShrinkwrap":false},"1.0.17":{"name":"proto","version":"1.0.17","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","build-modules":"2.0.3"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"a2db1ba11e57861898b4489aec1fb394eef8af47","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.17","_shasum":"dbb40bdb45193438979e306378ca2b53efe71bce","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"dbb40bdb45193438979e306378ca2b53efe71bce","size":13185,"noattachment":false,"key":"/proto/-/proto-1.0.17.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.17.tgz"},"directories":{},"publish_time":1424974803350,"_cnpm_publish_time":1424974803350,"_hasShrinkwrap":true},"1.0.16":{"name":"proto","version":"1.0.16","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","build-modules":"2.0.3"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"02f88282c4f3275110626fe94189249816198be3","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.16","_shasum":"60cade9b1e4252e858950252563f38f5f4973cba","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"60cade9b1e4252e858950252563f38f5f4973cba","size":13214,"noattachment":false,"key":"/proto/-/proto-1.0.16.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.16.tgz"},"directories":{},"publish_time":1424972604642,"_cnpm_publish_time":1424972604642,"_hasShrinkwrap":true},"1.0.15":{"name":"proto","version":"1.0.15","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","build-modules":"2.0.3"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"07ad1883cd2892d04f19900b23a98f87b36d8aa6","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.15","_shasum":"a19989446d07b62ddb0506b802f0cd9d51d0bece","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"a19989446d07b62ddb0506b802f0cd9d51d0bece","size":12763,"noattachment":false,"key":"/proto/-/proto-1.0.15.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.15.tgz"},"directories":{},"publish_time":1424818094469,"_cnpm_publish_time":1424818094469,"_hasShrinkwrap":true},"1.0.14":{"name":"proto","version":"1.0.14","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"8baa1adb2271b5d0e45a2e5e12d6fd4e09625551","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.14","_shasum":"87a19a78b8691c42721751c31107a609a1aa0213","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"87a19a78b8691c42721751c31107a609a1aa0213","size":9189,"noattachment":false,"key":"/proto/-/proto-1.0.14.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.14.tgz"},"directories":{},"publish_time":1424676122903,"_cnpm_publish_time":1424676122903,"_hasShrinkwrap":false},"1.0.13":{"name":"proto","version":"1.0.13","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"4ba737a63ef6ea2338629ab570fa0820016133fc","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.13","_shasum":"c5ae02642254a4a0ab06117c8839387115df61ab","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"c5ae02642254a4a0ab06117c8839387115df61ab","size":9125,"noattachment":false,"key":"/proto/-/proto-1.0.13.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.13.tgz"},"directories":{},"publish_time":1424659503904,"_cnpm_publish_time":1424659503904,"_hasShrinkwrap":false},"1.0.12":{"name":"proto","version":"1.0.12","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"e5b43988f0c8de1db4c9bd3869a44fc293d0365e","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.12","_shasum":"f3eadc3aed1692751c75fede930b48107b25ee3e","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"f3eadc3aed1692751c75fede930b48107b25ee3e","size":8915,"noattachment":false,"key":"/proto/-/proto-1.0.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.12.tgz"},"directories":{},"publish_time":1424657442758,"_cnpm_publish_time":1424657442758,"_hasShrinkwrap":false},"1.0.11":{"name":"proto","version":"1.0.11","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"e7d7b6d1a6f47247b7d647fb03e1ac8f47b8a903","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.11","_shasum":"bbeebb97997516f6b601edf51152caec6fd01c83","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"bbeebb97997516f6b601edf51152caec6fd01c83","size":8492,"noattachment":false,"key":"/proto/-/proto-1.0.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.11.tgz"},"directories":{},"publish_time":1414656924740,"_cnpm_publish_time":1414656924740,"_hasShrinkwrap":false},"1.0.10":{"name":"proto","version":"1.0.10","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"gitHead":"12fb64676373c7a17af87243d70d3c0b4f973e82","bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.10","_shasum":"158641c91e3ad2dc15dce07f794730752de36bb7","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"dist":{"shasum":"158641c91e3ad2dc15dce07f794730752de36bb7","size":8058,"noattachment":false,"key":"/proto/-/proto-1.0.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.10.tgz"},"directories":{},"publish_time":1406225362878,"_cnpm_publish_time":1406225362878,"_hasShrinkwrap":false},"1.0.9":{"name":"proto","version":"1.0.9","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{},"devDependencies":{"deadunit":"","buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.9","dist":{"shasum":"249b2dcf1b47db0f8a79abba474fd10747e9eb1c","size":7862,"noattachment":false,"key":"/proto/-/proto-1.0.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.9.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1397775267713,"_cnpm_publish_time":1397775267713,"_hasShrinkwrap":false},"1.0.8":{"name":"proto","version":"1.0.8","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{"buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"devDependencies":{"deadunit":""},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{"postinstall":"node build.js"},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.8","dist":{"shasum":"1a8e9235e79b5dd6a3445149146343d4ccbee07b","size":7922,"noattachment":false,"key":"/proto/-/proto-1.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.8.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1390518471451,"_hasShrinkwrap":false,"_cnpm_publish_time":1390518471451},"1.0.6":{"name":"proto","version":"1.0.6","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{"buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"devDependencies":{"deadunit":""},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{"postinstall":"node build.js"},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"homepage":"https://github.com/fresheneesz/proto","_id":"proto@1.0.6","dist":{"shasum":"2f54155c06d6ba1fca33433f50ea0c28adceb073","size":7656,"noattachment":false,"key":"/proto/-/proto-1.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.6.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"fresheneesz","email":"fresheneesz@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1385767398479,"_hasShrinkwrap":false,"_cnpm_publish_time":1385767398479},"1.0.5":{"name":"proto","version":"1.0.5","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{"buildModules":"https://github.com/fresheneesz/buildModules/archive/2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3.tar.gz"},"devDependencies":{"deadunit":""},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{"postinstall":"node build.js"},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"_id":"proto@1.0.5","dist":{"shasum":"6038bc0815607ff0185dad5ca7e3102bf2e61cad","size":7565,"noattachment":false,"key":"/proto/-/proto-1.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.5.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"fresheneesz","email":"bitetrudpublic@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1384292477622,"_hasShrinkwrap":false,"_cnpm_publish_time":1384292477622},"1.0.4":{"name":"proto","version":"1.0.4","main":"proto.js","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{"buildModules":"git+https://git@github.com/fresheneesz/buildModules.git#2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3"},"devDependencies":{"deadunit":"git+https://git@github.com/fresheneesz/deadunit.git"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{"postinstall":"node build.js"},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"_id":"proto@1.0.4","dist":{"shasum":"37eae37ce7e4c3ec517f699b3ee671d73a4b1239","size":6931,"noattachment":false,"key":"/proto/-/proto-1.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.4.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"fresheneesz","email":"bitetrudpublic@gmail.com"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1379451632191,"_hasShrinkwrap":false,"_cnpm_publish_time":1379451632191},"1.0.3":{"name":"proto","version":"1.0.3","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{"buildModules":"git+https://git@github.com/fresheneesz/buildModules.git#2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3"},"devDependencies":{"deadunit":"git+https://git@github.com/fresheneesz/deadunit.git"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{"postinstall":"node build.js"},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"_id":"proto@1.0.3","dist":{"shasum":"39be6cfb71ecee4e256680a96af306670d43f67f","size":6905,"noattachment":false,"key":"/proto/-/proto-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.3.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"fresheneesz","email":"bitetrudpublic@gmailc.om"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1378913170867,"_hasShrinkwrap":false,"_cnpm_publish_time":1378913170867},"1.0.2":{"name":"proto","version":"1.0.2","description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","keywords":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"dependencies":{"buildModules":"git+https://git@github.com/fresheneesz/buildModules.git#2f50ea0830b0fa580c087b4bfa947de2e7b7d7c3"},"devDependencies":{"deadunit":"git+https://git@github.com/fresheneesz/deadunit.git"},"repository":{"type":"git","url":"git://github.com/fresheneesz/proto"},"scripts":{"postinstall":"node build.js"},"bugs":{"url":"https://github.com/fresheneesz/proto/issues"},"_id":"proto@1.0.2","dist":{"shasum":"a6e3d6468d9b40914000ee326f747b27783c93de","size":6905,"noattachment":false,"key":"/proto/-/proto-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-1.0.2.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"fresheneesz","email":"bitetrudpublic@gmailc.om"},"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"directories":{},"publish_time":1378911941678,"_hasShrinkwrap":false,"_cnpm_publish_time":1378911941678},"0.1.0":{"name":"proto","version":"0.1.0","main":"lib/proto","_id":"proto@0.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"shasum":"786f3b263aa8ff75aa76372de6fe80b53284f28a","size":2901,"noattachment":false,"key":"/proto/-/proto-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/proto/download/proto-0.1.0.tgz"},"directories":{},"publish_time":1378907855945,"maintainers":[{"name":"fresheneesz","email":"fresheneesz@gmail.com"}],"_hasShrinkwrap":false,"_cnpm_publish_time":1378907855945}},"readme":"\r\n`proto`\r\n=====\r\n\r\nA prototype-based inheritance/class library that makes it easy to create objects and inheritance hierarchies without losing the\r\npower of javascript's prototype system.\r\n\r\nWhy Use proto?\r\n==============\r\n* `proto` plays nice - you can use proto to inherit from any object, even if it was created with a different inheritance library!\r\n* `instanceof` works with `proto` classes\r\n* constructors are inheritable\r\n* non-objects can be returned from a constructor (even `undefined`)!\r\n* easy access to an object's superclass\r\n* you can give your classes dynamic names\r\n* you don't hafta use the `new` operator\r\n* native objects work with `proto`. `proto` properly* creates classes that inherit from native objects - even all the `Error` types. *_Inheriting certain native javascript objects has some limitations (see below)_\r\n* [`prototype` and `constructor` properties][javascriptFunctionProperties] are propertly set\r\n* `proto` doesn't use `Object.create` so it should work with older browsers ( *testers welcome!* )\r\n* `proto` is small: (**833 bytes minified and gzipped in UMD format**)\r\n* `proto` is lightweight. It doesn't attempt to emulate class-based languages or create any fancy features you probably don't actually need (interfaces, abstract classes, etc)\r\n* It has solid comparison when compared to the fastest inheritance libraries. The following two performance tests use specific methodology to improve their similarity to running code in the real applications:\r\n  * [testing method calls](http://jsperf.com/js-inheritance-method-calls/6)\r\n  * [testing instance creation](http://jsperf.com/js-inheritance-object-construction/2)\r\n\r\n[javascriptFunctionProperties]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype\r\n\r\nExample\r\n=======\r\n\r\n```javascript\r\nvar Person = proto(function() {       // prototype builder\r\n    this.init = function(legs, arms) {      // constructor\r\n        this.legs = legs\r\n        this.arms = arms\r\n    }\r\n\r\n    this.getCaughtInBearTrap = function() { // instance method\r\n        this.legs -= 1\r\n    }\r\n    this.limbs = function() {\r\n        return this.arms + this.legs\r\n    }\r\n    Object.defineProperty(this, 'limbs', { // getters (and setters, etc) can be set right on the prototype!\r\n        get: function() {\r\n            return this.arms + this.legs\r\n        }\r\n    })\r\n\r\n})\r\n\r\nvar Girl = proto(Person, function() {       // inheritance\r\n    this.haveBaby = function() {\r\n        return Person(2,2)\r\n    }\r\n})\r\n\r\nvar g = Girl(2,2)                          // instantiation\r\ng.getCaughtInBearTrap()\r\nconsole.log(\"Girl has \"+g.limbs+\" limbs\")\r\nconsole.log(\": (\")\r\n\r\nvar newPerson = g.haveBaby()\r\nconsole.log(\"New person has\" +newPerson.limbs+\" limbs : )\")\r\n ```\r\n\r\n\r\nInstall\r\n=======\r\n\r\n```\r\nnpm install proto\r\n```\r\n\r\n\r\nUsage\r\n=====\r\n\r\nAccessing proto:\r\n```javascript\r\n// node.js\r\nvar proto = require('proto')\r\n\r\n// amd\r\nrequire.config({paths: {proto: '../generatedBuilds/proto.umd.js'}})\r\nrequire(['proto'], function(proto) { /* your code */ })\r\n\r\n// global variable\r\n<script src=\"proto.umd.js\"></script>\r\nproto; // proto.umd.js can define proto globally if you really\r\n       //   want to shun module-based design\r\n```\r\n\r\nUsing proto:\r\n```javascript\r\nvar Parent = proto(function() {\r\n    this; // points to the prototype, so set methods and static properties on this\r\n\r\n    // the name property has an impact on how proto classes are displayed in dev tools\r\n    this.name = 'MyProto'; // set a name for your proto class\r\n\r\n    this.init = function(v) {   // constructor\r\n        this; // inside methods, 'this' references the instance\r\n\r\n        if(v > 0) {\r\n            this.x = v                // you can normally access the object with this inside methods\r\n        } else if(v !== undefined) {\r\n\t\t\treturn true\t              // you can return non-object values\r\n\t\t} else {\r\n\t\t\treturn proto.undefined    // return undefined by using a special constructor return value\r\n\t\t}\r\n    }\r\n\r\n    this.anythingElse = 5   // static properties can be accessed by the class and the instance\r\n\r\n    // getters and setters (enumerable makes it available statically too! Ie)\r\n    Object.defineProperty(this, 'moose', {\r\n        enumerable: true,\r\n        get: function() {\r\n            return 5\r\n        },\r\n        set: function() {\r\n            console.log(\"just kidding, i'm not setting anything!\")\r\n        }\r\n    })\r\n\r\n\t// private functions don't have access to the correct 'this', so pass it in\r\n    var privateFn = function(that, arg1, etc) {\r\n        that.x = arg1 + etc\r\n    }\r\n\r\n    this.doSomething = function() {\r\n        privateFn(this, this.x, 1)\r\n    }\r\n})\r\n\r\nParent.name;  // the name property can be accessed directly from the returned proto class object\r\n\r\n// you can inherit from any object!\r\n// the resulting object factory will generate instances inheriting from:\r\n    // [if you inherit from]\r\n        // [a function]: that function's prototype\r\n        // [anything else]: that object itself\r\nvar Child = proto(Parent, function(superclass) {\r\n    this.init = function() {\r\n        superclass.init.apply(this, arguments) // super-class method call\r\n        // superclass.prototype.someMethod.apply(this, arguments) // remember that you probably need to access superclass.prototype for parents that aren't proto objects\r\n        // superclass.apply(this, arguments) // also remember that parents that aren't proto objects probably won't have an init method, but are constructors themselves (note that this should't be done with proto objectsbecause its creates a new instance)\r\n        this.r = 10\r\n    }\r\n\r\n\t// create static methods just like instance methods - you can access them from the constructor\r\n    this.staticMethod = function(x) {\r\n        return this.constructor(x+12)        // uses its own constructor to create a Child object\r\n    }\r\n})\r\n\r\nvar object = Child(1)                // instantiation\r\nobject.doSomething()                 // method call (as usual)\r\nvar object2 = Child.staticMethod(1)  // static method call\r\n\r\nChild.parent === Parent; // the 'parent' property on the will point to the proto class's parent\r\n\r\n ```\r\n\r\nCreating a custom Error object:\r\n```javascript\r\nvar CustomError = proto(Error, function(superclass) {\r\n    this.name = 'CustomError'\r\n\r\n    this.init = function(msg, properties) {\r\n        superclass.call(this, msg)\r\n        for(var n in properties) {\r\n            this[n] = properties[n]\r\n        }\r\n    }\r\n})\r\n```\r\n\r\nLimitations of `proto`\r\n=============================================\r\n* Inheriting from `Error` and other exception types doesn't automatically set a correct `name` property, so you need to set it as a static properly \"manually\".\r\n* Objects inheriting from `String` can't use the `toString` method. \r\n* Inheriting from `Array` doesn't work.\r\n* Inheriting from `RegExp` doesn't work either (the results can't use the `test` or `match` methods).\r\n* You can't properly access any non-writable properties of a function from the returned proto-object factory though the properties will work correctly on instances. This includes: `name`, `length`, `arguments`, and `caller`.\r\n* Some properties are read-only and so can't be reset on the prototype object. An example is `name` on firefox.\r\n\r\nTodo\r\n====\r\n* Browser testing\r\n * Chrome [x]\r\n * Firefox [x]\r\n * Safari [x]\r\n * IE11 [ ]\r\n * IE10 [ ]\r\n * IE9 [ ]\r\n * IE8 [ ]\r\n * Opera [ ]\r\n\r\n* performance improvements\r\n    * Combine ProtoObjectFactory with the NamedFunction so you remove a function call there\r\n    * memoize whether the class has 'init' or not (to remove one branch from ProtoObjectFactory)\r\n\r\n* Consider creating a Proto2 that focuses on further performance improvements:\r\n    * Requires the use of 'new'\r\n    * Maybe sacrifices dynamic prototypes (that change after constructor creation) to get rid of the prototype chain walking (and just merges in functions)\r\n\r\nHow to Contribute!\r\n============\r\n\r\nAnything helps:\r\n\r\n* Creating issues (aka tickets/bugs/etc). Please feel free to use issues to report bugs, request features, and discuss changes\r\n* Updating the documentation: ie this readme file. Be bold! Help create amazing documentation!\r\n* Submitting pull requests.\r\n\r\nHow to submit pull requests:\r\n\r\n1. Please create an issue and get my input before spending too much time creating a feature. Work with me to ensure your feature or addition is optimal and fits with the purpose of the project.\r\n2. Fork the repository\r\n3. clone your forked repo onto your machine and run `npm install` at its root\r\n4. If you're gonna work on multiple separate things, its best to create a separate branch for each of them\r\n5. edit!\r\n6. If it's a code change, please add to the unit tests (at test/protoTest.js) to verify that your change\r\n7. When you're done, run the unit tests and ensure they all pass\r\n8. Commit and push your changes\r\n9. Submit a pull request: https://help.github.com/articles/creating-a-pull-request\r\n\r\nContributors\r\n============\r\n* Special thanks to [jayferd][jayferd], since I got most of the unit tests for `proto` from [his `pjs` project][pjs].\r\n\r\n\r\n[jayferd]: https://github.com/jayferd\r\n[pjs]: https://github.com/jayferd/pjs\r\n\r\nChange Log\r\n=========\r\n\r\n* 1.0.18 - Setting the 'stack' property of custom errors as 'configurable' so you can change it if you want\r\n* 1.0.17 - Correcting distribution\r\n* 1.0.16 - optimizing instance creation - made it about 3 times as fast! Now its one of the fastest inheritance libraries!\r\n* 1.0.15 - changing to using webpack to make UMD packages\r\n* 1.0.14 - fixing the name property so if there is no name, 'undefined' doesn't become the functions name\r\n* 1.0.13 - adding a 'parent' property on the returned proto class\r\n* 1.0.12 - making the constructor's name property settable (via `this.name` in the class construction function - the function passed to proto)\r\n* 1.0.11 - adding the ability to access getters and setters correctly statically\r\n* 1.0.10 - making the stack property a getter (like it is in native error objects)\r\n* 1.0.8 - if a static property can't be written (because it's read only or for some other reason throws an exception when being set), it will now silently not set, instead of throwing an exception\r\n* 1.0.7 - getting rid of useless line in stack trace\r\n* 1.0.6 - fixing custom error name in stacktraces\r\n* 1.0.5 - fixing github dependencies\r\n\r\nLicense\r\n=======\r\nReleased under the MIT license: http://opensource.org/licenses/MIT","_attachments":{},"homepage":"https://github.com/fresheneesz/proto","bugs":{"url":"https://github.com/fresheneesz/proto/issues"}}