{"_id":"atma-class","_rev":"42-272e6974ace6796acc6b2e128f8b65a6","name":"atma-class","description":"Business Logic and Data Access Layers","dist-tags":{"latest":"1.1.84"},"versions":{"1.0.46":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.46","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.46","dist":{"shasum":"3330e95d634888ec10249375d7b4e02e098eb500","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.46.tgz","integrity":"sha512-UxdAy8PBLXjepap2C3GJ63bF6B44EIYbhVA3VflWDtmX/1B2Moy7ssKWIJV3qDpniV+LxXxv4HD0lBfFTTYS1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEPDrylgnof7E3xR+aPjuW3xMlQFXyAeHq+Abr5cgOEGAiEAzSvCoALRwDotYzbneeUbraSb2x4lSs/ksxngG5HkIWM="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.47":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.47","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.47","dist":{"shasum":"024d1405de28c0341cf9103d9a1bf08ecf298b1d","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.47.tgz","integrity":"sha512-orHgvwm8sl2Eb+7lqKil3jD35kkPyA6XPd7SK5ZAt0nH0DDgkOQ/LQh+v85bkM3IRUvL1m+aIgOjKd0nX7zoHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6bkPsbnOHdh5iIYI4YyInOeRFZQy/7aOYqYOfjiwYpAIgSJXHORCUyT9BjvHhx0Z7uN6KVgVWLzA/WgufFHY8CmI="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.48":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.48","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.48","dist":{"shasum":"bcdf255459e2ff7ee6af31794d6d931213ce911d","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.48.tgz","integrity":"sha512-gDs9oMj9Sj0N0ywqXTgdv+Vye3NklMYEDU7S/N1AS5zNPjKh7nwWQpofHAbBvysNPEz/u0s+nPMydAK975ltsA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGb7Wevhc09zl0LtIXuILUXGlqYxI/0X1XbTCaUCOcUoAiBDD+M4C8ZatP7InQIELUDFj31OaJE44GZEEvEegx+fhA=="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.49":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.49","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.49","dist":{"shasum":"0643e272579bdeb5b586f496b3c816629306407c","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.49.tgz","integrity":"sha512-qJL2V7jbGT0FGVdmNQZaJPzM2kejIBKC9oPGgK4DRQHb6g3fXFm9RZ0wHcgjBwHOCi32VWNbfy0HEbd3B14vnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBpNVRaVvy/ouaXbeYRNHpChPwBNpZkYScnDpQD/W5wNAiEAgpE9R+Bw4GWUVYiCs7N3XHxgPp8cFCodpv2zpBSU0Ds="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.52":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.52","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.52","dist":{"shasum":"0ca03f53bb4694cb5705496fce9c1cbd6982399d","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.52.tgz","integrity":"sha512-+jyTRYFeFiOSq/Xi5XMCX72ZglPv28BZJxmQ8+ajv+Jr6v5kWwGZQCJ6ebbOO0Cb/QPkSTdRFp1mRoHx9I2MeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCamuTBHRWrxCDmKRizUArKniWaq3zBXTotrGxHzYa2IwIgec++NefCMJYEm2FX2u0ZvviKX7Wpges2TWT61XqVjUA="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.53":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.53","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.53","dist":{"shasum":"542776678565c586503f9265288eb1658a2dbef8","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.53.tgz","integrity":"sha512-F2HzI/KWh0fJL7VsxVpEIlJ8ZQjei3rSh+EyQ/py6dRkZSQaeaN+3Hh3s7Zwe5cRjB0CocQfbHfSdR5tWbx4Og==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDX7F8XD6tqRBeglcatkOktat+6/ZI6TIL+OkvULi6g4AiEA1SY1q+fZfFyAz2YHtpLnw0fxob3xyxIVaAtbDdCsKAY="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.54":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.54","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.54","dist":{"shasum":"35bd6a1f7933d6875349f8ced59c24b1ba6531e0","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.54.tgz","integrity":"sha512-53GsQa6SYHR/Lpjj0c/f6mKQiPkEruy7vtQb7VZANWefR0RUonOaWrJZf0/lfErMnqeW+xfa9iVCWG4zrz9v9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGIUgehJUsSOU5Nnsn/xRpGhb2PLw4GWpq6L5gydWxy6AiEA+VkYx4C2Q8zeqPQcgXiAr4dnbA2Bdh+zVwMDDv6dF9w="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.55":{"name":"atma-class","description":"ClassJS - Complex but Fast Class Implementation For Browsers and Node.JS","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.55","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.55","dist":{"shasum":"20a2349de1d5f8a87efb9f414c62a5bb0208b0d3","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.55.tgz","integrity":"sha512-CDVgzWL70DQ8G1lTxBaKrhbOx3Vgy/IFwZGqngmXNrJ05gEEwJZ+oaqv/OSMJMbS6MRkqI9iRhIkf7yDuAfQjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzp+ah0sxwAUsDRawKbpNxrjuSetxzED0lHR5Aq040HAIgdfcv8ApZh7v0UR91uxwrhs9zOj6T+2aqnYHG9kEM06I="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.60":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.60","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.60","dist":{"shasum":"d3a7c4ebf3d2277e98a6b5ccbea188b46de572b1","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.60.tgz","integrity":"sha512-peHVFPdt38k2RkAqJRjkxUXz/tgpF5OqFlms+/Cp59akB2Vu5X1wkzMut7Gy8HuWpwtcLMEk3aCt3dreQ8sVUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrxqBXrEKGkx1T+A6Bfzh+HzM5gc8qqgwmdhlP2cRjywIhAOAxclxg7/r3RnNDdWz4G7dVOizcXH6wsjPznwLu4nmF"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.61":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.61","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.61","dist":{"shasum":"49e684b38bab4a6859f31c9c43e97ec3e4a7d637","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.61.tgz","integrity":"sha512-DI7hv/eXR4VZ+Cx0btZwAGaYHJKcG/WqoRneAzFLs1XMUjSpGXUNRdLmUmeBCDR9TI5nF67s8idEJV1C/ZNHbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiwsrUdNqrlqlS/2asgu6g/mKXFzw7iH+Dq+uUdwb/SQIgbbyomjLPERpjn/QjOTKpX+B+8IfDnz86UJ+9qk+N4FY="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.62":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.62","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"node_modules/.bin/atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.62","dist":{"shasum":"f74761192276789ae0893b720dd5b4010447fffc","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.62.tgz","integrity":"sha512-5mRPLkoxefXXDLCqyrGaCU+79DMV6FDHNfTCb9hM1SeYQ2Cx5vXwUkKs39nGdm+igBtS18FZ+JGjqsNfyHDzlA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBsdv8pVjjZ/ZvCahMTTvZZkCq4tnCMBHZJsqCBGqKEdAiEA5GDzr7TJ/ZSg7yUb4S0NKVxzyWVCjmuGq9fA8YrklIw="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.66":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.66","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.66","dist":{"shasum":"d4a0f5c61bced400423bce56b581678dec04cfea","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.66.tgz","integrity":"sha512-Mx02F9szWQEmeu2YHKfkb0H7TwCE9kO9vCOMMk2z/MjzS+Fgq9TOpMAyrB5cGD912/ExJwg05bzxeIoBSkYW9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDfjRAoOcSLukAAIEz54rSKrevsqQHJnnzOgxe9E3oFrAiEAtKyJqWwtgnKWfM0lqf/QSrcIHqeT1TGWLwUMKRnsKC4="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.67":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.67","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.67","dist":{"shasum":"8e264e7c95f28a60315d9c917f117b17c11b9af0","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.67.tgz","integrity":"sha512-8vgPuqOVXLjbz1cUilqgf753n3GqN9Pdt/X1GLf/1WwHZMAZCy5qyKNdZPLBom5V54RTye3OWR20X/Lx4NL86g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUsUrl+qQGz5ZD7ljajPpcTZ74bfSgu9XaAwCauhYJ7gIhAL8GpDhPh0ipCFXlRN/7LINoXYf16vw0m/EoH9PbCnQ6"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.0.68":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.0.68","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","dependencies":{"atma-loader-traceur":">0.0.0"},"atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.0.68","dist":{"shasum":"593619d86d580cb42a88f528789b2bae162d6520","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.0.68.tgz","integrity":"sha512-v1x+pF8Rl5h8i7MZENdteznCUqvVrD/ytfjzbUyV2im7MHS9uyZazMJ4XTqFawWn1nvZyR7nb7JiC3MRNPH+Ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCD+/mhRWHAmC5UME0ZAziOvDDqi60MIpqJfs7foYGgNAIgeaFM4+/RQj4mzE4VdtKysxh+6E+hwzd5WyjJ8UXT+6Q="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{}},"1.1.69":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.69","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0"},"scripts":{"test":"atma test"},"license":"MIT","dependencies":{"atma-loader-traceur":">0.0.0"},"atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"bb582223e9b84e9c813fbfdc36fa0e4058b1760c","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS","_id":"atma-class@1.1.69","_shasum":"5b5f05f134ec781faee81c0ea0b1aadbfb090526","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"dist":{"shasum":"5b5f05f134ec781faee81c0ea0b1aadbfb090526","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.69.tgz","integrity":"sha512-QpjTlcAU5NtcRxyuDgwBF4MdQ0La8M4JlZKH7x3IvLeov3/SMpWmeQmVJEpT4gImhOdL5Zz9iRxtHnLbHpvc+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9+mUel1Mi2a+weLA4ZdB3iUJVMfzSHJJI9UN8yk1iJgIhAP1XKVErYzDhA63EJcatbpM7yKce5tszPpU5+LmHnMbp"}]},"directories":{}},"1.1.70":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.70","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"1d99dfb0f691403e9853d8570be502829cca8ede","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.70","_shasum":"fe497e1b18e09420fa5c05abc848c6078aa17257","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"dist":{"shasum":"fe497e1b18e09420fa5c05abc848c6078aa17257","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.70.tgz","integrity":"sha512-Oap7BpJN0t4IRSXObyxbPl2gI+VOBvwwLAPHawx6VYM1WH+8dNn1qugBwndgpCySwtRyxRYEo/UwPZLfPvqx/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQ1Ahn+vpqMAncaPE3+4sm1iHhDvCt/y/SI3vAP0hnZAiA95ChnZ79Q2gpqdNmlbRAZq+vbL27Itt3IJXkrI6OjGw=="}]},"directories":{}},"1.1.72":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.72","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"9fe6874a82dbc60c3c78acac77cca9e232fc6f93","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.72","_shasum":"ccd5879323149a87e0cbdcb66525dc98260d8f8f","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"ccd5879323149a87e0cbdcb66525dc98260d8f8f","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.72.tgz","integrity":"sha512-7eVvDiLbvPkPHl3KFIm3ggy+mdDHO3Q+bGOhxLPNFj4KO49QJN/eNanYTP7sla33V7ywy5fcpFFkYRbSUObqWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhq5MBPpWJ/7ljUlChE9hs/L9cJGo02eUl0sG/Cm5oYgIhAPXG2yxoFPg3qio8Msw14gu+jvJGh+AB282hPLeIS3RN"}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/atma-class-1.1.72.tgz_1469637779844_0.07806792971678078"},"directories":{}},"1.1.74":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.74","main":"./lib/class.node.js","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"02dcb99101a5610a2c6b7c2a2a5b45634a8dd611","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.74","_shasum":"9fc76036fe5d979c5ec10281bb76052756100b68","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"9fc76036fe5d979c5ec10281bb76052756100b68","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.74.tgz","integrity":"sha512-NVPPUhyRKXI4U+j6KGKU10EI3qlrGlsc3MVUCJ6qnuv5TTxi8EIXJtXDjoFay2tm07/tgKgrU2dQ9cVFc33WPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJEnF9EujGQuez35N0iAoOLZr6vKOjSZNZRM8lcz7cagIgIoFrF3yQiEDdS6bkGVEG3rjXPCZuiyZjBKoax6gVzXk="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/atma-class-1.1.74.tgz_1480115439388_0.6973066681530327"},"directories":{}},"1.1.75":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.75","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"fc50a4d3d1878138f05dde08a57f3fbe440843a7","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.75","_shasum":"0b5fd47ec12e92a09c53a2a2c981aa3a58c9f810","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"0b5fd47ec12e92a09c53a2a2c981aa3a58c9f810","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.75.tgz","integrity":"sha512-k1d+AnLtPUGt3SUX80wjl1ulxOkmHRjowyMZriztejV1mJd55/5nBWv6r7qKaRB0IhYJhr2rn2TfzDdXYq8ZiQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFu6SoMqd6VB2A++G4arjbfOlMxBGp3QtezpPNVHcdeDAiA3J5iQSFLwYOkaziuAQh/584ezW9lo5gVR1jEqoPZZaA=="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.75.tgz_1501015097504_0.1483894963748753"},"directories":{}},"1.1.76":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.76","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"90ab6dd5bc239fc24ac2bbf742c9b1e68e89868c","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.76","_shasum":"a8b1dcd4bf8394946a114321eeff444f56974074","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"a8b1dcd4bf8394946a114321eeff444f56974074","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.76.tgz","integrity":"sha512-dxWCV3hIZC/8L7/I44LmanhFVf2rccUAZF666SLQHEvH7XMOozAaYwnc+9CHLVo8P0x3FS9u3Wbt8wpFxCXEqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhiF/QmHnV/QsXm4a1LLZMe4bMEIWuYfxkAaETfAqtBQIhAKjolDpBE1S/OlvXV/sVZE8aoM9uCVV3iRcdCv85Sb9X"}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.76.tgz_1501104820124_0.06232109689153731"},"directories":{}},"1.1.77":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.77","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"409dc22ecf3b66bb22de8d01bb11fc9db4bd4e82","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.77","_shasum":"0af2cb3aca8e546fa5a77b326791f81cfedbef48","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"0af2cb3aca8e546fa5a77b326791f81cfedbef48","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.77.tgz","integrity":"sha512-96M75oBhXr0Xk1pkBkHbgz6YxH0wCewBG33rqQ1TapzjznVIm5cBK4Y5c3hh6xglTfLMZSihUVmkIWDx1ZbeLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDg/XnUiYBdlJ/khw1fwzvz68mGkxVGWvNEAAZgUy0wugIgHxXeMTzLyIfxj5bMdAQADUkLfv4U+Y+T5/RPUEvASYU="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.77.tgz_1501106655079_0.05382317863404751"},"directories":{}},"1.1.78":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.78","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"4f9b2ceaad4d0057b4a5394561e16df30572b308","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.78","_shasum":"8f928908de1c03382a4f114c35e70849c812429f","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"8f928908de1c03382a4f114c35e70849c812429f","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.78.tgz","integrity":"sha512-0oWnmJq+lNopgPVuWcmapZhDyWamioqo3FJtF7OwBneGXYg6Bn8M1Hknebk6ZAXusyJ9Pnf6DvfqGL/yfvp3xw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxWZKoVdaPOmg4jtUi3AImFvTZDCJaG9ZliNsKXGtNJAIhAOgi2cgVXzngYHdfSBOJt5Fpln2IlcsM2qRUQkROAOC6"}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.78.tgz_1501522896040_0.4376103216782212"},"directories":{}},"1.1.79":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.79","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"4f9b2ceaad4d0057b4a5394561e16df30572b308","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.79","_shasum":"2a9f1a5db865a7510e689515991037fe5af8d524","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"shasum":"2a9f1a5db865a7510e689515991037fe5af8d524","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.79.tgz","integrity":"sha512-HFPnD9EDu0XZia0MBdGWP8EGkym0rtFhSfTdDcGziHyF3pLHoPSUrYvl0R+U7b/h6PZJw1ezx2BZ+3ShyLyPkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzEDRESThMEX1uB3HsMtCnS6d3ERBlL86mnL2XHoLeuQIgb1oSGP7EAlR7pjW1bqNQeBYTAWNFdEFocN0cHgeplDE="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.79.tgz_1501618374133_0.672766360687092"},"directories":{}},"1.1.80":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.80","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"18ddbb56c11eb54fcd1863f19ca20e4c000e3a79","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.80","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"integrity":"sha512-kjSEi6fjVdnkEnhsfZ3luWFleAAxhGe5slzjzHR6FAeje8ukfPAGGJ+/seRPEiZkuDsUpaO6Qp53P6cWVx0Sow==","shasum":"dabe400f4c6b07c0711fce2e32edd6c2ece228d0","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.80.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk52FUZiNH91bOHWINTLNc7VCk00ExHVSsUYxfcxmZVgIhAJKeW8E/v8vp05SVBxlDdjqKu5HLDvPjYMlerRTC/Dhw"}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.80.tgz_1502395191302_0.8057549849618226"},"directories":{}},"1.1.82":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.82","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"9c7b114adba66d6fb559893121b2e19c0ba746f4","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.82","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"integrity":"sha512-W7wA5T3kU8FjlLOFEciToBzsS2GG7RdvK4fEY4w80hr/pRvAdEatXOgH9JQluzPCQHMwekoutqhG41Y9u3y9Vw==","shasum":"f9410c537aaa7a0abb0faa8f9c26f7933b13b544","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.82.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDa8UxJMXrZoNjYvApj4arruYOIJpP/kpMjNlkJESHzTAiEAru5l79PKqo6OwcCpD5kzdU7qrykwichCA9EkQDuDoWo="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class-1.1.82.tgz_1507652100836_0.4097164939157665"},"directories":{}},"1.1.83":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.83","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"6e3394fe2342de2acc0588614b58332a4b8c7e61","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.83","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"dist":{"integrity":"sha512-3692C8mQYaDOTj009zqgvPMCmRH2Vp+sgKguSuqk2SFb+bJsqbuAYNOhJaWG7g4NvpekAiscYsB21B9qmghXug==","shasum":"342a84577aa4d24ab6db8935a32093754c143109","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.83.tgz","fileCount":13,"unpackedSize":297529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7FjmCRA9TVsSAnZWagAAKgYQAJE2Uc6XUmW2Z0q6FItR\npfPE0miUQJ15Br0Yedh2D09rB3s+2qBZus6NxlSE4RZojJmextLNTRSfxPdj\nr7sAT1TL5UGuJiBj5qK9zX+rlxOdbYW7YtF9CL7Y1SIeGn6iETS2nJ1IBh/e\ngyt3dqlM9R1L+B3GsBsNzF67te1DYxEZUiryByrVKcb1V7FbUa/0v0mX5gNT\nVv/CN2mFzLSHnKJd2+ep/ad8NIqDNJsmQd6IheJamMjWFlalF5vEk4XHNCGe\nF8C4KqCKPWNjn5sFAzV2j5fORU6ksVPngZR+/y/d6ut3XOYFvT2a8HD+L4ud\n7BauYHn3tOF/I/8P11Eqv5igy3rMIYgHBvQqOOG2f7AJiXES2vIMs9h4HLgr\noOYl0j8QwjWpX/PvLGMKUQngkryEf5iBMHfB5ohZ0I7UZ8uitOCzYHpO1lN7\n6XBFKXDYzFB9s5huFQ9Pv+hJWBSN0tJLDXaE9NEJA44XSJi6x3s60rtSDq9e\n22rgyS1JUOvJWisqmPUFa7Fl0Pp0QL2vfOhylfj9I3VFvrOTQZ2Ki9yixMyZ\nVdiQdeWq4pN13EsZuml0NZU6qclezgPMBDxs/E8EeGyRaIBRge38cSemI1mA\nEjuv5B+ESphbXH7vAiSTRj6/QmMKYLI5dPHRjNqwns5KSivtZW7gGjJlEN+q\n1i+r\r\n=mhbC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmub1PlsAL32+5H+FRZQMHfJWm794gbUG5D4tWLRXMsQIgJVR+DZbIMWphn8ITZZOgSmeYV1XosqASKXH+x00wzbs="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class_1.1.83_1525438692747_0.8109740483919414"},"_hasShrinkwrap":false},"1.1.84":{"name":"atma-class","description":"Business Logic and Data Access Layers","author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"version":"1.1.84","main":"./lib/class.node.js","types":"./types/module.d.ts","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"devDependencies":{"atma":">0.9.30","mongodb":"~2.0.0","atma-loader-traceur":">0.0.0"},"scripts":{"test":"atma test"},"license":"MIT","atma":{"plugins":["atma-loader-traceur"],"settings":{"atma-loader-traceur":{"extensions":"test"}}},"gitHead":"6e3394fe2342de2acc0588614b58332a4b8c7e61","bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"homepage":"https://github.com/atmajs/ClassJS#readme","_id":"atma-class@1.1.84","_nodeVersion":"10.1.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-ofByZ3Z+H14ETbb4vcBlgacIRiapdwd+tYaW7qBAX16ftTpAwtB85uAEhnw+bcDndi7gaZn+g1vufbyqAawSnA==","shasum":"cede1f16088b651726ccb9e6fd52fd03c38c6a1a","tarball":"https://registry.npmjs.org/atma-class/-/atma-class-1.1.84.tgz","fileCount":12,"unpackedSize":297455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXUo+CRA9TVsSAnZWagAAY5gP/1ri4lfMebh4umK9Bmdj\nLh1YY503G6w1B2vg4Cq84cADAF5N4eVot5Yc4zAk8lL4idtRjxvCxQpcYvkg\nHg/FpiPbqMjW/cy3ZUZLPfdYInr21UxI7KpJPvNjZco/ULQOVlhttYfYvbJD\nYI7nh2vy6hUD9RGsE59oAVMIp1pwMxApNZGez5pBRPZa/NAE8o1W7MVIK9LB\n7LxDfMyvNl7415URkcOkmb3PrudNJ31dHqCLUFrteKsyYe1McuCO6Ms/Oqdv\nU+KdRcYYFvg9AFd5Thma9uGwM8UroyCriqZNgsVjU/uZd4Nx/ioqCHoaoUvS\nmYuUxIxkt/0eTwCOWsELDanc1XWblfcCdB+PgYzW0TaPlXpqbr+K5rXw0xvn\nN6QRdf4pbNHh+kblhUwsUQDPhaH/VDRq/7VAzkgYNzL71F0FsOUvD7QdxEV3\nRLUXBU80e/jPZI8Tb8crLJeeDceIlPDjvZcStzeu+YZKIop8A318LMAsqYxa\n0/X25506p6fhNNtwK0vPfnnXDK/v+r92rU7AJt5lGIk1PC+mzenxuuXxVtv+\nq8eRf2NwkQFTGOumQDxhOq34+kmDRZzPeOLHLY6GHlREUwth5m0SxRCTG7/P\naAWEb3QXxmrpnHOOrhsyx9JG199K4D7bFHvAELgSNWcfCh/nW4sAI8RoyFSO\nLHnq\r\n=wscq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgv7v0I2PLwmjp2aKOgJsXtFkjtijG99SIvPKF3VZFfwIgOF3e2wNT2Vljb64HAp19KziOnZfBf9o8lmO6ReqsMOo="}]},"maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"_npmUser":{"name":"tenbits","email":"alex.kit@atmajs.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/atma-class_1.1.84_1583172157758_0.8682174447954236"},"_hasShrinkwrap":false}},"readme":"ClassJS\r\n-----\r\n[![Build Status](https://travis-ci.org/atmajs/ClassJS.png?branch=master)](https://travis-ci.org/atmajs/ClassJS)\r\n[![NPM version](https://badge.fury.io/js/atma-class.svg)](http://badge.fury.io/js/atma-class)\r\n[![Bower version](https://badge.fury.io/bo/atma-class.svg)](http://badge.fury.io/bo/atma-class)\r\n\r\n\r\nBusiness and Data Access layers for browsers or nodejs\r\n\r\n[Documentation](http://atmajs.com/class)\r\n\r\n##### Install\r\n\r\n- NodeJS\r\n\t- Standalone: ``` $ npm install atma-class ``` ``` var Class = require('atma-class') ```\r\n\t- [AtmaPackage](https://github.com/atmajs/Atma.Libs)\r\n- Browser\r\n\t- ``` <script src='//cdn.jsdelivr.net/classjs/1.0.66/class.min.js'></script> ```\r\n\r\n-----\r\n- [Attributes Overview](#attributes)\r\n- [Serialization](#serialization)\r\n- [Collections](#collections)\r\n- [Persistence](#store)\r\n\t- [RESTful](#remote)\r\n\t- [Local Storage](#localstore)\r\n\t- [MongoDB](#mongodb)\r\n\t- MySQL _in progress_\r\n- [Repository](#repository)\r\n- [Static Functions](#static-functions)\r\n- [Validation](#validation)\r\n- [Classes](#classes)\r\n\t- [Deferred](#deferred)\r\n\t- [EventEmitter](#eventemitter)\r\n\r\n\r\n\r\n### Attributes\r\n\r\nClass definition object is a simple `prototype` object, but with `Attributes` it is possible to add or change some functionality of the resulted class, like inheritance, overrides, persistance, validation and some more. \r\n\r\n```javascript\r\nClass({\r\n\t/*\r\n\t * instanceof also works on deep inheritances\r\n\t\\*/\r\n\tBase: < Function > BaseConstructor,\r\n\t/* \r\n\t * Same as base, but instanceof wont work, \r\n\t * as instanceof allows linear inheritance only\r\n\t\\*/\r\n\tExtends: < Function | Object | Array > Mixins\r\n\t/*\r\n\t * constructor of a class - if has inheritance, \r\n\t * also all constructors will be called\r\n\t\\*/\r\n\tConstruct: < Function > function(){}\r\n\t/*\r\n\t * Static functions of a created Class\r\n\t * User.key()\r\n\t\\*/\r\n\tStatic: < Object > { key: function(){} }\r\n\t/*\r\n\t * RESTfull/LocalStorage/MongoDB serialization/deserialization\r\n\t\\*/\r\n\tStore: <| Class.Remote('/user/:id')\r\n            | Class.LocalStore('user')\r\n            | Class.MongoStore.Single('users')\r\n            | Class.MongoStore.Collection('users') /* use in Class.Collection */ |>\r\n    /*\r\n\t * Override any Base or Extended Function\r\n\t * Using this object, there will be access to overriden function\r\n     * via this.super();\r\n    \\*/\r\n\tOverride: < Object > {\r\n\t\tsome: function(){\r\n\t\t\t\r\n\t\t\t// default arguments\r\n\t\t\tthis.super(arguments);\r\n\t\t\t\r\n\t\t\t// overriden arguments\r\n\t\t\tthis.super(arg1, arg2);\r\n\t\t}\r\n\t},\r\n\tSelf: {\r\n\t\t/*\r\n\t\t * Functions, that are always bound to the instance of the class\r\n\t\t * e.g. setTimeout(this.foo, 1000);\r\n        \\*/\r\n\t\tfoo: function(){}\r\n\t},\r\n    Validate: {\r\n\t\t/*\r\n\t\t * @see `validation` section\r\n\t\t * e.g.\r\n\t\t * var foo = new Foo();\r\n\t\t * foo.user = null;\r\n\t\t * var error = Class.validate(foo);\r\n\t\t\\*/\r\n        user: function(val){\r\n            if (val == null)\r\n                return 'Username is not defined';\r\n        }\r\n    },\r\n\t/*\r\n\t * Private properties with the underscore contract.\r\n\t * Such properties wont be serialized\r\n\t\\*/\r\n\t'_property': null,\r\n\t\r\n\t/*\r\n\t * Other class functions/properties\r\n\t * This Object is then transformed into prototype object of\r\n\t * a class.\r\n\t\\*/\r\n\t...\r\n});\r\n```\r\n\r\n### Serialization\r\n\r\nA `Class` instance can be serialized to or deserialiazed from a string or simple JSON object. For this to happen, the instance schould be inherited from a `Serialization` class.\r\n```javascript\r\nvar Foo = Class({\r\n\tBase: Class.Serializable,\r\n\t...\r\n});\r\nvar foo = new Foo({baz: 'Baz'});\r\nfoo.baz === 'Baz';\r\n```\r\nThere could be also some meta specified\r\n```javascript\r\nvar Foo = Class({\r\n\tBase: Class.Serializable({\r\n\t\t// constructor deserialization, e.g.:\r\n\t\t'date': Date,\r\n\t\t\r\n\t\t// use entity from ClassJS IoC Repository\r\n\t\t'article': 'Article',\r\n\t\t\r\n\t\t// same\r\n\t\t'user': {\r\n\t\t\tdeserialize: User\r\n\t\t},\r\n\t\t\r\n\t\t// skip property\r\n\t\t'none': {\r\n\t\t\tserialize: null\r\n\t\t},\r\n\t\t\r\n\t\t// rename property when de-/serializing\r\n\t\t'myKey': {\r\n\t\t\tkey: 'yourKey'\r\n\t\t}\r\n\t})\r\n});\r\n\r\nvar jsonStr = '{\"date\":\"2014-03-27T23:33:45.594Z\",\"user\":{\"name\":\"baz\"},\"yourKey\":5}';\r\nvar foo = new Foo(jsonStr);\r\n\r\nfoo.date instanceof Date //> true\r\nfoo.user instanceof User //> true\r\nfoo.myKey === 5 //> true\r\n```\r\n\r\n\r\n### Collections\r\n\r\nCreates Array-like Object with all class features\r\n\r\n```javascript\r\nvar Users = Class.Collection(User, {\r\n\t// ... Class Definition Object, e.g. Remote\r\n\tStore: Class.Remote('/api/users?location={?country}')\r\n});\r\n\r\nvar list = Users\r\n\t.fetch({country: 'DE'});\r\n\t.done(function(obj){\r\n\t\r\n\t\tlist === obj \r\n\t\tlist.length\r\n\t\tlist[0]\r\n\t\t// user instance\r\n\t\tlist.first({age: '>20', genre: 'm'}); \r\n\t\t// collection instance\r\n\t\tlist.where({age: '>20'});\r\n\t\tlist.where(function(x){ return x.age > 20 });\r\n\t\t// mutator\r\n\t\tlist.remove({age: '<5'});\r\n\t\t// storage\r\n\t\tlist.save();\r\n\t\t// mutator + storage\r\n\t\tlist.del({age: '<5'});\r\n\t});\r\n```\r\n\r\n### Store\r\n\r\nStorage Interface is same for all types, so you can easily switch between local storage, Ajax or MongoDB.\r\n\r\n#### Remote\r\n\r\n_async - extends [Class.Deferred](#deferred)_\r\n\r\n```javascript\r\nvar User = Class({\r\n\tBase: Class.Serializable,\r\n\tStore: Class.Remote('/user/:id')\r\n});\r\n\r\n// resolve user (GET)\r\nvar user = User\r\n\t.fetch({id: 5})\r\n    .done(onSuccess)\r\n\t.fail(onFail)\r\n\t.always(onComplete)\r\n\t.then(onSuccess, onFail);\r\n\r\n// update (PUT) or Save (POST) - (look for existance of id/_id properties);\r\nuser.name = 'X';\r\nuser\r\n    .save()\r\n\t.done(onSuccess)\r\n\t.fail(onFail)\r\n\t.always(onComplete);\r\n\r\n// Remove (DELETE)\r\nuser\r\n    .del()\r\n\t.done(onSuccess)\r\n\t.fail(onFail)\r\n\t.always(onComplete)\r\n\r\n// patch object (PATCH) - MongoDB update query syntax is used\r\nuser\r\n\t.patch({\r\n\t\t$inc: { 'visits': 1 },\r\n\t\t$set: { 'current.date' : new Date }\r\n\t});\r\n\t\r\n// Static service comunication\r\nvar user = new User({\r\n\tusername: 'baz'\r\n\tage: 40\r\n});\r\nClass\r\n\t.Remote\r\n\t.send('/user/publish', 'put', user)\r\n\t.done(function(responseJSON){\r\n\t\t\r\n\t});\r\n```\r\n\r\nMore route samples can be found from tests [Route Tests](test/route.test)\r\n\r\n#### LocalStore\r\n_sync, as localStorage is synchronous - but also inherits from [Class.Deferred](#deferred)_\r\n```javascript\r\nvar Settings = Class({\r\n\tBase: Class.Serializable,\r\n\tStore: Class.LocalStore('app/settings'),\r\n\tpoints: 5\r\n});\r\nvar setts = new Settings;\r\n// get\r\nsetts.fetch();\r\n// save or update\r\nsetts.points = 10;\r\nsetts.save();\r\n// remove\r\nsetts.del();\r\n// patch\r\nsetts.patch({\r\n\t$inc: { points: 1 }\r\n});\r\n```\r\n\r\n#### MongoDB\r\n\r\n```javascript\r\n// settings:\r\nClass.MongoStore.settings({\r\n\tdb: 'myDBName',\r\n\tip: '127.0.0.1' // <- default\r\n\tport: 27017 // <- default\r\n});\r\n//\r\n\r\nvar User = Class({\r\n\tBase: Class.Serializable,\r\n\tStore: Class.MongoStore.Single('users'),\r\n\tusername: ''\r\n});\r\nvar Users = Class.Collection(User, {\r\n\tStore: Class.MongoStore.Collection('users')\r\n});\r\n\r\nvar user = User\r\n\t.fetch({ username: 'bar' })\r\n//  .fetch({ age: '>10' })\r\n//  .fetch({ age: { $gt: 10 }})\r\n\t.done(function(user_){\r\n\t\tuser === user_\r\n\t})\r\n\t.fail(function(error){})\r\n\r\n// Complex queries with options. (Use $query from MongoDB API)\r\nUsers\r\n\t.fetch({\r\n\t\t$query:{\r\n\t\t\tname: 'Smith'\r\n\t\t\tage: {\r\n\t\t\t\t$gte: 40\r\n\t\t\t}\r\n\t\t},\r\n\t\t$orderby:{\r\n\t\t\tsurname: -1\r\n\t\t}\r\n\t}, {\r\n\t\tfields: { name: 1 },\r\n\t\tskip: 0,\r\n\t\tlimit: 10\r\n\t})\r\n\t.done(function(users){});\r\n\r\nuser.username = 'foo'\r\n// save or update if `_id` is present.\r\nuser\r\n\t.save()\r\n\t.done(callback)\r\n\t.fail(callback)\r\n\t.always(callback)\r\n\t;\r\n// delete\r\nuser\r\n\t.del()\r\n\t.done(callback)\r\n\t.fail(callback)\r\n\t.always(callback);\r\n// patch\r\nuser\r\n\t.patch({\r\n\t\t$inc: { age: 1 }\r\n\t});\r\n\r\n// Any MongoDB queries:\r\n\r\n// 1) Get MongoDB `db` object\r\nClass\r\n\t.MongoStore\r\n\t.resolveDb()\r\n\t.done(function(db){\r\n\t\t// do smth with the database\r\n\t})\r\n\t.fail(onError);\r\n\r\n// 2) Get MongoDB `collection` object\r\nUser\r\n\t.resolveCollection()\r\n\t.done(function(collection){\r\n\t\t// do smth with the collection object\r\n\t})\r\n\t.fail(onError)\r\n\t;\r\n```\r\n\r\nAll work with the database is encapsulated, so you do not need even to connect to the database,\r\njust apply settings and with the first query the connection will be established.\r\n\r\n##### Indexes\r\n```javascript\r\nvar User = Class({\r\n\tBase: Class.Serializable,\r\n\tStore: Class.MongoStore.Single({\r\n\t\tcollection: 'users',\r\n\t\tindexes: [ \r\n\t\t\t// simple index\r\n\t\t\t{ qux: 1}\r\n\t\t\t// compound index\r\n\t\t\t{\r\n\t\t\t\tbar: 1,\r\n\t\t\t\tbaz: 1\r\n\t\t\t},\r\n\t\t\t// with options\r\n\t\t\t[{ username: 1 }, { unique: true }]\r\n\t\t]\r\n\t})\r\n});\r\n// ensure indexes\r\nClass\r\n\t.MongoStore\r\n\t.ensureIndexes(User) //=> Deferred\r\n\t\r\n// as all indexes being tracked, you can apply all indexes at once\r\nClass\r\n\t.MongoStore\r\n\t.ensureIndexesAll() //=> Deferred\r\n\t\r\n```\r\n\r\n##### Advanced connections and settings:\r\n```javascript\r\nClass\r\n\t.MongoStore\r\n\t.settings({\r\n\t\tconnection: 'mongodb://localhost:30000,localhost:30001,localhost:30002/myDatabase',\r\n\t\t\r\n\t\t// redefine options, defaults are:\r\n\t\tparams: {\r\n\t\t\tauto_reconnect: true,\r\n\t\t\tnative_parser: true,\r\n\t\t\tw: 1\r\n\t\t}\r\n\t})\r\n```\r\n\r\n##### Profiler\r\nEnable profiler to catch all slow, unindexed queries and updates.\r\n```javascript\r\nClass\r\n\t.MongoStore\r\n\t.profiler\r\n\t.toggle(true, {\r\n\t\tslowLimit: 200,\r\n\t\tonDetect: function(QueryInfo),\r\n\t\t\r\n\t\t// add additional slow query detector,\r\n\t\t// return `true` if this should be added to collection\r\n\t\tdetector: function(MongoDB_Plan):Boolean\r\n\t});\r\n\t\r\nQueryInfo = {\r\n\tcoll: 'String `current name`',\r\n\tquery: 'Object `query wich was performed`',\r\n\tparams: {\r\n\t\treason: '`slow|unindexed`'\r\n\t},\r\n\tplan: MongoDB_Plan\r\n};\r\n\r\n// get all slow queries\r\nClass\r\n\t.MongoStore\r\n\t.profiler\r\n\t.getData(): Array<QueryInfo>\r\n```\r\n\r\n\r\n### Repository\r\n_Namespaces_ When declaring a Class, it can be stored in the repository object for simpler access.\r\n\r\n[MaskJS.Node](https://github.com/atmajs/mask-node) profits of this feature to automatically serialize _(server-side)_ and deserialize _(browser)_ class instances.\r\n```javascript\r\n\r\nvar User = Class('User', ClassDefinition);\r\n\r\nUser === Class('User') === Class.Model.User;\r\n\r\n// redefine the repository object\r\nClass.cfg('ModelHost', window.Model = {});\r\n\r\nUser === Class('User') === Model.User;\r\n```\r\n\r\n### Static Functions\r\n\r\n- **`Class.validate(object [, ?validationModel, ?isStrict])`** <a name='static-validate'>#</a>\r\n\r\n\t- `validationModel` - _(@see [Validation](#validation))_ - is not required, if instance/object has `Validate` attribute.\r\n\t- `isStrict` - Boolean - return error if object contains property, which is not defined in `validationModel`\r\n\t\r\n\treturns error object if the instance is invalid or nothing (`void 0`) if is ok.\r\n\r\n- **`Class.properties(Ctor | instance)`** <a name='static-properties'>#</a>\r\n\r\n\treturn hash of all properties with types if known.\r\n\t\r\n- **`Class.keys(instance)`** <a name='static-keys'>#</a>\r\n\r\n\treturn array of properties (_without methods and private props_)\r\n\r\n- **`Class.stringify(instance)`** <a name='static-stringify'>#</a>\r\n\r\n\tSerializes the instance. If class has name, the name is included, for later deserialization and initialization\r\n\r\n- **`Class.parse(string)`** <a name='static-parse'>#</a>\r\n\r\n\tDeserializes instance. e.g - serialize models on NodeJS, pass them to the front-end and restore the models there.\t\r\n\t```javascript\r\n\tvar User = Class('User', {\r\n\t\tBase: Class.Serializable,\r\n\t\tname: '',\r\n\t\tlog: function(){ console.log(this.name) };\r\n\t});\r\n\tvar user = new User({name: 'baz'});\r\n\tuser.log(); //> 'baz'\r\n\t\r\n\tvar str = Class.stringify(user) //> {\"name\":\"baz\",\"__$class__\":\"User\"}\r\n\t...\r\n\t\r\n\tvar user = Class.parse(str);\r\n\tuser.log() //> 'baz'\r\n\t```\r\n\r\n### Validation\r\n\r\nValidation Model\r\n```javascript\r\n{\r\n\t// required, not empty string\r\n\tfoo: 'string',\r\n\t// required, of type number\r\n\tfoo: 'number',\r\n\t// required, validate with regexp\r\n\tage: /^\\d+$/,\r\n\t// required, custom check function (return 'nothing' if ok)\r\n\tnumber: function(value){\r\n\t\tif (value % 2 !== 0)\r\n\t\t\treturn 'Only even numbers';\r\n\t}\r\n\t// optional. Same value types as by 'required'\r\n\t'?baz': 'number',\r\n\t// unexpect. Same value types as by 'required'\r\n\t'-quz': null,\r\n\t// validate subobject\r\n\tjokers: {\r\n\t\tleft: 'number',\r\n\t\tright: 'number'\r\n\t},\r\n\t// validate arrays\r\n\tcollection: [ {_id: 'string', username: 'string'} ]\r\n}\r\n```\r\n\r\n- Class Validation\r\n\r\n\t```javascript\r\n\tvar Foo = Class({\r\n\t\tValidate: ValidationModel\r\n\t});\r\n\tvar foo = new Foo;\r\n\tvar error = Class.validate(foo);\r\n\t```\r\n- Simple object validation\r\n\r\n\t```javascript\r\n\tvar user = { username: 'foo' }\r\n\tvar error = Class.validate(user, ValidationModel);\r\n\t```\r\n\r\n\r\n### Classes\r\nThere are some classes you can start to use.\r\n\r\n#### Deferred\r\n`Promise`/`Defer` implementation\r\n\r\nUsage example\r\n```javascript\r\n// 1) Create deferrable class\r\nvar X = Class({\r\n\tBase: Class.Deferred,\r\n\t// ... class properties\r\n});\r\nvar dfr = new X;\r\n\r\n// 2) Create simple deferrable object\r\nvar dfr = new Class.Deferred;\r\n\r\n// 3) Create simple deferrable object with factory function\r\nvar dfr = Class.Deferred.run(function(dfr){\r\n\t// perform async operations\r\n});\r\n\r\n// 3) Create deferrable delegate\r\nvar fn = Class.Deferred.create(function(dfr, foo){\r\n\t// ...\r\n\tdfr.resolve(foo);\r\n}));\r\n\r\nvar dfr = fn('foo');\r\n\r\n// 4) Memoize deferrable delegate (with same arguments function is called only once)\r\nvar fn = Class.Deferred.memoize(function(dfr, foo){\r\n\t// ...\r\n\tdfr.resolve(foo);\r\n}));\r\n\r\nvar dfr1 = fn('foo');\r\nvar dfr2 = fn('foo');\r\ndfr1 === dfr2; //> true\r\n\r\n\r\nDeferred __proto__ {\r\n\t// callbacks are called once\r\n\tdone  : function(callback):Self,\r\n\tfail  : function(callback):Self,\r\n\talways: function(callback):Self,\r\n\t\r\n\tresolve: function(...args):Self,\r\n\treject : function(...args):Self\r\n\t\r\n\t// reset deferred object and move to unresolved state\r\n\tdefer  : function():Self\r\n\t\r\n\tpipe   : Function\r\n\t\t// pipe Self states to this deferred instance\r\n\t\t= function(Deferred):Self\r\n\t\t\r\n\t\t// Returns new Deferred which depends on Filter functions\r\n\t\t// @see Filter meta\r\n\t\t= function(doneFilter, failFilter): new Deferred\r\n\t\r\n\t// create the delegate function, which will resolve or reject the deferred object when called,\r\n\t// first argument\r\n\tpipeCallback: function(): function\r\n\t\t\r\n\t// alias to .pipe(function, function)\r\n\tthen   : function(doneFilter, dailFilter):new Deferred,\r\n\t\r\n\t// check state\r\n\tisResolved: function():Boolean,\r\n\tisRejected: function():Boolean\r\n\tisBusy    : function():Boolean\r\n};\r\n\r\ndoneFilter/failFilter : Function\r\n\t// modify or override\r\n\t// `pipe` and `then` deferreds are resolved then with this modified values\r\n\t= function(): Any\r\n\t\r\n\t// return another Deferred array to listen for\r\n\t// `pipe` and `then` deferreds are bound to this deferred return value\r\n\t= function(): Deferred\r\n\t\r\n\t\r\nDeferred __static__ {\r\n\tcreate: function(fn:function):Function,\r\n\trun: function(fn:function):Deferred,\r\n\tmemoize: function(fn:function):Deferred\r\n};\r\n```\r\n\r\n#### EventEmitter\r\n```javascript\r\nvar X = Class({\r\n\tExtends: Class.EventEmitter,\r\n\t//...\r\n});\r\nnew X();\r\nnew Class.EventEmitter;\r\n\r\nEventEmitter __proto__ {\r\n\temit:\t\tfunction(...args):Self,\r\n\t// alias to `emit` fn\r\n\ttrigger: \tfunction(...args):Self,\r\n\t\r\n\ton: function(event, callback):Self,\r\n\tonce: function(event, callback):Self,\r\n\toff: function(event, callback):Self,\r\n\t\r\n\t// create Function which trigger specific event when is called\r\n\t// fn(...args) ~~ x.trigger(event, ...args);\r\n\tpipe: function(event): function\r\n\t\r\n}\r\n```\r\n\r\n#### Run tests and build\r\n```bash\r\n$ npm install\r\n$ npm test\r\n\r\n# build\r\n$ atma\r\n```\r\n----\r\n(c) 2014 MIT","maintainers":[{"name":"tenbits","email":"alex.kit@atmajs.com"}],"time":{"modified":"2022-06-13T03:41:02.392Z","created":"2014-02-01T22:46:03.947Z","1.0.46":"2014-02-01T22:46:03.947Z","1.0.47":"2014-02-04T17:38:35.475Z","1.0.48":"2014-03-16T15:13:06.269Z","1.0.49":"2014-03-26T16:33:53.063Z","1.0.52":"2014-03-29T11:42:39.526Z","1.0.53":"2014-03-30T12:13:01.645Z","1.0.54":"2014-03-31T15:32:24.790Z","1.0.55":"2014-03-31T15:33:39.685Z","1.0.60":"2014-04-16T22:01:34.289Z","1.0.61":"2014-05-06T15:07:06.694Z","1.0.62":"2014-05-08T17:21:14.859Z","1.0.66":"2014-07-28T21:14:17.985Z","1.0.67":"2014-08-05T11:23:27.568Z","1.0.68":"2014-08-15T14:55:45.660Z","1.1.69":"2015-05-13T13:50:27.021Z","1.1.70":"2015-07-19T19:54:28.131Z","1.1.72":"2016-07-27T16:43:01.972Z","1.1.74":"2016-11-25T23:10:40.019Z","1.1.75":"2017-07-25T20:38:18.660Z","1.1.76":"2017-07-26T21:33:41.303Z","1.1.77":"2017-07-26T22:04:16.350Z","1.1.78":"2017-07-31T17:41:37.424Z","1.1.79":"2017-08-01T20:12:55.568Z","1.1.80":"2017-08-10T19:59:52.594Z","1.1.82":"2017-10-10T16:15:02.163Z","1.1.83":"2018-05-04T12:58:13.150Z","1.1.84":"2020-03-02T18:02:37.865Z"},"readmeFilename":"README.md","homepage":"https://github.com/atmajs/ClassJS#readme","repository":{"type":"git","url":"git://github.com/atmajs/ClassJS.git"},"author":{"name":"Alexander Kit","email":"alex.kit@atmajs.com"},"bugs":{"url":"https://github.com/atmajs/ClassJS/issues"},"license":"MIT"}