{"_id":"cqrsnode","_rev":"59-f53c7297fc7c9f6d828c95177134d1d4","name":"cqrsnode","description":"cqrs framework for node.js","dist-tags":{"latest":"0.1.1alpha"},"versions":{"0.0.1":{"name":"cqrsnode","version":"0.0.1","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.1","dist":{"shasum":"359996e1a07ac45d52e16a150d14be925be801b3","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.1.tgz","integrity":"sha512-suuydvINhEHqOIINskCoS8Qa3+elTB/IwD2plqzvrldOI+7tLda69ftTUvkStfJCI32xgQjvYy/h1nGfZfIWbQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIETQC0+uiW6Id263xZlkp+kECXZGjngLWZhT2HgZIV80AiEA+6iI91tEiLSzu1TTKoOGD0zwVciNOi7n9Y0v2eekb1Y="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.2":{"name":"cqrsnode","version":"0.0.2","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.2","dist":{"shasum":"f956744d2b8dd6980232a31b31448a5e897d5b7d","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.2.tgz","integrity":"sha512-SLHlBKhYHMLsia+PyFtIUSTenbzjank/Fkrdv/xBK9MxcnvHNNV4IYnG99TPieoB+q0XGYkw08wui5ATnlx2Rw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYXwmdBbs8mG0VnGjukSitmQh5kjWg0p2wJhisC5TlXwIhAJ9xAMMFpU/Yb3Gl4f4XbSati6orjXK5fimbn56DyYK0"}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.3":{"name":"cqrsnode","version":"0.0.3","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.3","dist":{"shasum":"6f6c31622f99a4ce00044b683c55892be500129c","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.3.tgz","integrity":"sha512-yVsSsGgABboDgPtusBmhKMEtxcOEA6+2EKeFgVggPyl7vOQH9r+Oq+g8Ou2Fc80XKke0u951fKUdKhYiSctCOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVzG1wabiHYfEkH8qWPb+Qrka0e68Chhq7xZUppk4FvAiEA6LHZXhprx8/qMVjifZkIMIuGps9bMSyeCWE9ZEXUkio="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.4":{"name":"cqrsnode","version":"0.0.4","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.4","dist":{"shasum":"5f3020fed4f69c64003c074f14de7e0fe54a889e","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.4.tgz","integrity":"sha512-/PzSmY8JF70XjOZTNQDdxw5fMtoGFawI00m2oNptu8Wt0loF6smt1X50nnQuGXAGZDN3BrN0pG2PMzLxowryJw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWes42g0wrr8zxdB+cIZU6VMdrdx1jwIlhXIzWE6PkmwIgf5sJExNAqkOiV2Ad3yb7DbtmzA827aRa+LjnErih924="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.5":{"name":"cqrsnode","version":"0.0.5","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.5","dist":{"shasum":"ac3adb58cc44eb4e53377c70a498884d3dc3e3be","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.5.tgz","integrity":"sha512-09Sz/RTdUuh9BAwVQPadCJIAfSpXgS39148oz5qGdUPWi+HdqGL0y7cGNq7XTjQeJMLdylrt7M5XtUVLUeacRg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcoCTwn8x3brhAULiIOm5uKoLvcbO95oBXpvFxSHG0+wIgRJm4U+LneP+YINOcwRFydukyQLshebglZZLeskr6b90="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.6":{"name":"cqrsnode","version":"0.0.6","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.6","dist":{"shasum":"0128dd99754b8ea21ba63c958ecfb4ed3f9e1e02","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.6.tgz","integrity":"sha512-WmeVVZkMASzdg/aewc9TlnIvSY2TK6lz5XwNmQ8dakXEXATicm2fYF19froQDfIGurw1b5pahdUhd6CsjzH0NQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICfy4AwLNpgB6Qxtt8np8dMZiqAMY92l1T0dWx1hdWuJAiEAgCWTzzcqHw3u0n9lAErQe/gQYlvxrUcMo62jD+VPt9s="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.7":{"name":"cqrsnode","version":"0.0.7","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"node-cqrs\r\n=========","_id":"cqrsnode@0.0.7","dist":{"shasum":"8dd5e7234290fa242ac762d67991d64951751fe9","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.7.tgz","integrity":"sha512-XOiMRGWlWVTqU84UNrFVl6zoII/sqnTjhR12XOuRUycS8knMyM5OC7VI8S1BEExnIgrKNaxC5/Er3p9H8iz0Fw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEUurq5lKm6pm83a3Z+O0c3vfscKxeGZZ/ftZNSV3YtgAiBiBjNQwATTorG9Ur9osZ+eQy04XIgDpbnt4ko1kQOKqA=="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.8":{"name":"cqrsnode","version":"0.0.8","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"eventstore":">= 0.0.1","eventstore.mongoDb":">= 0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"cqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode\r\n\r\nexample\r\n=========\r\n    >cqrs\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | dbs\r\n\r\n\r\n","_id":"cqrsnode@0.0.8","dist":{"shasum":"a87a94d4c82429f79e5b94adcf86eb852b5c3ba2","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.8.tgz","integrity":"sha512-rWDWE8UStelXsssPVP9KyfEVRTjX8oDFV3xdPaXxSrV/eSg/bz9wmdoetOOCkgOJrW84H5nuCgdibPP4iQheuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0mx9ypAQ089Ar3G0AEm8DLE1z5w8HkvWZ4VFZ3okifAiBDT8tzzYO0+kzX4RLf/LHVedsPRNuHKKWxIJVHizzwQw=="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.1.0":{"name":"cqrsnode","version":"0.1.0","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"tiny":">= 0.0.1","node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"cqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode\r\n\r\nexample\r\n=========\r\n    >cqrs\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | dbs\r\n\r\n\r\n","_id":"cqrsnode@0.1.0","dist":{"shasum":"2f316b3868d3ba9bd82856bb9467c36639e0e63b","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.1.0.tgz","integrity":"sha512-bQcASnGQehC7Sq7GQX2DV4MKn5ngoOgeetBfUhDmWBN6Hvpl7gYWJFnvs9w80sQ9UOZqZbZMP8w4SRi6jDP8Aw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5n55JswgWIWK6GHS10Z+E5f4oYBXMhFSGRA1/gwlMhgIgbp2GE7nQr9X8Oyc1lrAk3+NHZtMtalphXA/oMP4vpH8="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.1.1":{"name":"cqrsnode","version":"0.1.1","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"tiny":">= 0.0.1","node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"cqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode\r\n\r\nexample\r\n=========\r\n    >cqrs\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | dbs\r\n\r\n\r\n","_id":"cqrsnode@0.1.1","dist":{"shasum":"28df00d524597125a4813160f92f3a58d34715fb","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.1.1.tgz","integrity":"sha512-7qQ6+wijSeRE8p+rjjhi3WcHhbxgS8h7e8MM5RnMW0sJV2M3dmWwuMYcjbpLGO1pDfTsIFfJo0lByembxPbDtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBDGhSM6m6JusuazVMQ/ncYdszIuGs5RnKhA6gjHPgfPAiEAupAEiccPyNlx16jC2aGs0hPIuwkvwUE1k5vyxXt2ffw="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.1.2":{"name":"cqrsnode","version":"0.1.2","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"tiny":">= 0.0.1","node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"BSD","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrs.js"},"readme":"cqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode\r\n\r\nexample\r\n=========\r\n    >cqrs\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | dbs\r\n\r\n\r\n","_id":"cqrsnode@0.1.2","dist":{"shasum":"6165230b1f51104add4002877fef60d1e76a47df","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.1.2.tgz","integrity":"sha512-pmzWb+VMitxTqpAoT1nKKWKjg12hKEOwiS89wMeHrxuWfoWhSeqd9g+ErcGQFH9OqQg3G+jRUlhwhHdFfP+rtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfbgH4yfCUVlY/IQsEdAu9i4zr6bItMFRRsj/gYZ7BygIhAKd2vlA3dzh/yngSckZK3hJ5Es0NvTcNEZ9HSKy9+q16"}]},"_npmVersion":"1.1.59","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.0":{"name":"cqrsnode","version":"0.0.0","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"readme":"Note\r\n========\r\nIntegration, wait a few days, the full version will be released in the 0.2.0 version, so now does not work properly.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install domain\r\n\r\n\r\n    and\r\n    \r\n    var Domain = require('domain');\r\n\r\n    var domain1 = new Domain(options1);\r\n    var domain2 = new Domain(options2);\r\n\r\nexample\r\n=========\r\n\r\n    domain -c appName\r\n\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | queries | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\t// create User obj function\r\n\t\tUser.create = function(name){\r\n\t\t\t// ... u\r\n\t\t\treturn u;\r\n\t\t}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data.name = name;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.0","dist":{"shasum":"eb0df78e991b3907f1366f96c98e4183c3f5fb81","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.0.tgz","integrity":"sha512-04fe/XxDagx/jP7NdVkZ4rwXx6ZmuTh5N3OqqnvEXxVJmBFhHnYC+7F9W7YBxMg2JbufWLgITxaN5BpjBIPsjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAsMeeux8HB9e0Eq03UzTgEkRHxk3yXFr8toFRXkUtpeAiEA6SPZqNXJOBWcqulbIgueMURrMk99VkbjgRybyNQBam8="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.9":{"name":"cqrsnode","version":"0.0.9","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"readme":"Note\r\n========\r\nIntegration, wait a few days, the full version will be released in the 0.2.0 version, so now does not work properly.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install domain\r\n\r\n\r\n    and\r\n    \r\n    var Domain = require('domain');\r\n\r\n    var domain1 = new Domain(options1);\r\n    var domain2 = new Domain(options2);\r\n\r\nexample\r\n=========\r\n\r\n    domain -c appName\r\n\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | queries | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\t// create User obj function\r\n\t\tUser.create = function(name){\r\n\t\t\t// ... u\r\n\t\t\treturn u;\r\n\t\t}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data.name = name;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.9","dist":{"shasum":"29d861d208541f6cce5d7fb3711f01fbcfe5c759","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.9.tgz","integrity":"sha512-cBoT8frOdA5rX6DwWZPP2OrNGtXqZPk0gzh2J0uWGwDrhmpKjCA81biDWKsTBvz+x7ZzUbb3bupwxcssswxvjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC2/ELnSU1WPJNfQLDN1JSThiCiWoZtgYA3AY9cQcsvsAiA6lK5LEXkTf7ToqD1EiJRy2gisvAdK/QlnS0pYR5oBXQ=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.11":{"name":"cqrsnode","version":"0.0.11","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"readme":"Note\r\n========\r\nIntegration, wait a few days, the full version will be released in the 0.2.0 version, so now does not work properly.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install domain\r\n\r\n\r\n    and\r\n    \r\n    var Domain = require('domain');\r\n\r\n    var domain1 = new Domain(options1);\r\n    var domain2 = new Domain(options2);\r\n\r\nexample\r\n=========\r\n\r\n    domain -c appName\r\n\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | queries | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\t// create User obj function\r\n\t\tUser.create = function(name){\r\n\t\t\t// ... u\r\n\t\t\treturn u;\r\n\t\t}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data.name = name;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.11","dist":{"shasum":"d17caa80e61a6baa77408c705bc705d0c8f4fff3","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.11.tgz","integrity":"sha512-2BedOAt6lEfhrsS1LeeBTpzCUPw+KjgEpJVu9AzVcEsMrY2I2ZYwjzF8TE1yZ9HvbeAz1uKXt+7woRZyS0xRpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWWaqykG8Q0RiP+3SWlJON9jKrpOoFTpJIkOqlqGczsAiEAnWoRzUi5agSc84NkXjfc4VhGCbWxe0BnSUkpzpMvLNs="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.12":{"name":"cqrsnode","version":"0.0.12","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"readme":"Note\r\n========\r\nIntegration, wait a few days, the full version will be released in the 0.2.0 version, so now does not work properly.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install domain\r\n\r\n\r\n    and\r\n    \r\n    var Domain = require('domain');\r\n\r\n    var domain1 = new Domain(options1);\r\n    var domain2 = new Domain(options2);\r\n\r\nexample\r\n=========\r\n\r\n    domain -c appName\r\n\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | queries | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\t// create User obj function\r\n\t\tUser.create = function(name){\r\n\t\t\t// ... u\r\n\t\t\treturn u;\r\n\t\t}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data.name = name;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.12","dist":{"shasum":"72ccf83e82187087afa191a53baa2a3e1939a8e7","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.12.tgz","integrity":"sha512-uCDM7gdrdHIsaIILuqaUugQ+14tkDGn7xG5TfyemdJmh4dBu3DX34X41Hqo9LGyUY0gdgE8yq1hBSd44RPx5sA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgLmhStf/2FD0DxNAPlhXuIPzQ4EL7HhL7dryAaCtV7QIgceJQ1girlXpyga7OXIy4TONXi3KeiGhmlPn2UxPIOg0="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.13":{"name":"cqrsnode","version":"0.0.13","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"readme":"Note\r\n========\r\nIntegration, wait a few days, the full version will be released in the 0.2.0 version, so now does not work properly.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install domain\r\n\r\n\r\n    and\r\n    \r\n    var Domain = require('domain');\r\n\r\n    var domain1 = new Domain(options1);\r\n    var domain2 = new Domain(options2);\r\n\r\nexample\r\n=========\r\n\r\n    domain -c appName\r\n\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | queries | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\t// create User obj function\r\n\t\tUser.create = function(name){\r\n\t\t\t// ... u\r\n\t\t\treturn u;\r\n\t\t}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data.name = name;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.13","dist":{"shasum":"f1f7f6a95285306edaa3b62f7af74e87f3aca2d8","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.13.tgz","integrity":"sha512-ORyaKiX/gr+SVE/GWB6GCFycwpoLnE7o8mnCzhGQHXFyVFBYbmQIwfzHsHOymdlVSnKpqNEbc70QeRKgi93MvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCVIJkpCbNsPcMiuxRLdXkono77BaZYtB0xdWhqNL7XQIhAIsTaGcbTPotENegP34Pk7poy/NymHvXX2zGzVWfe03b"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.1a":{"name":"cqrsnode","version":"0.0.1a","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note\r\n========\r\nIntegration, wait a few days, the full version will be released in the 0.2.0 version, so now does not work properly.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install domain\r\n\r\n\r\n    and\r\n    \r\n    var Domain = require('domain');\r\n\r\n    var domain1 = new Domain(options1);\r\n    var domain2 = new Domain(options2);\r\n\r\nexample\r\n=========\r\n\r\n    domain -c appName\r\n\r\n    result is create dirs:\r\n        aggres | eventHandles | commands | commandHandles | queries | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\t// create User obj function\r\n\t\tUser.create = function(name){\r\n\t\t\t// ... u\r\n\t\t\treturn u;\r\n\t\t}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data.name = name;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.1a","dist":{"shasum":"d79c0c5b932b4f94e7ac279b6d3f248c978e5a7a","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.1a.tgz","integrity":"sha512-xYw9bOABw5p97TJTKp/RcH3CcYpDCaTUV2CbmR/aLe/6pRu01cxVEfkv8ZxjbYU4cgxkH7CU3Aig3vdIbYmrGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVVK4PrERkJ6y7E7HTsAJLA23mEUdYsdCWcFNh0265swIgISvGz2KVME2NA9AlCF1ytFO3G3Eu4T3TCLs5O+9UyNE="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.2a":{"name":"cqrsnode","version":"0.0.2a","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note\r\n========\r\npublish version 0.0.1 alpha , Please note this version is still too unstable.Need to wait for 0.0.2 version.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install cqrsnode \r\n\r\n\r\n    and\r\n    \r\n    var\tDomain  = require('cqrsnode');\r\n\r\n    var domain1 = new Domain(cfg,domainname);\r\n    var domain2 = new Domain(domainname);\r\n    var domain3 = new Domain(cfg);\r\n\r\n\t\tdomain1.on('User','changeName',function cb(){...})\r\n\t\tdomain1.once('Product','price',function cb(){...})\r\n\r\n\t\tvar query01 = ['alluser']\r\n\t\tdomain1.q(query01,function callback(){...})\r\n\r\n\t\tvar cmd01 = ['changeUserName','id001','leo']\r\n\t\tdomain1.exec(com01,function cb(){...})\r\n\r\n\r\nexample\r\n=========\r\n\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data('name',name);\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.2a","dist":{"shasum":"1df53968d1d90f630c439e1f5375e58e6c31611e","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.2a.tgz","integrity":"sha512-di/7Sqt9o2e6lOifHzIbt/kpj4dcN/xeEUHQMbP+XmkaniwXmIaPyFCKyl38WV/bf2+X8/d1YQxRIxzWbT7vTA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCnFxbwbESuF1LjiIWZ2zT0Qgw4DXA37Fa9tF10buumgIhAJo37FZfmOG7O34alzX/hUw+OtDs2614aSUblS3VIKd2"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.2alpha":{"name":"cqrsnode","version":"0.0.2alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note\r\n========\r\npublish version 0.0.2 alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\n\r\nTutorial\r\n========\r\n[Tutorials](https://github.com/brighthas/cqrsnode/wiki)\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\n\r\ninstall\r\n=========\r\n\r\n    npm install cqrsnode \r\n\r\n\r\n    and\r\n    \r\n    var\tDomain  = require('cqrsnode');\r\n\r\n    var domain1 = new Domain(cfg,domainname);\r\n    var domain2 = new Domain(domainname);\r\n    var domain3 = new Domain(cfg);\r\n\r\n\t\tdomain1.on('User','changeName',function cb(){...})\r\n\t\tdomain1.once('Product','price',function cb(){...})\r\n\r\n\t\tvar query01 = ['alluser']\r\n\t\tdomain1.q(query01,function callback(){...})\r\n\r\n\t\tvar cmd01 = ['changeUserName','id001','leo']\r\n\t\tdomain1.exec(com01,function cb(){...})\r\n\r\n\r\nexample\r\n=========\r\n\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n    \r\nAggre API and Example:\r\n=======================\r\n\r\n\t\t// create like it at /aggres dir.\r\n\r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){}\r\n\r\n\t\tUser.prototype = {\r\n\r\n\t\t\t// this function change aggre state,\r\n\t\t\t// state is aggre._data private state.\r\n\t\t\t// when aggre emit a event, you can use this function to listen.\r\n\t\t\t$updateState:function(){\r\n\t\t\t\t// example, listen 'changeName' event.\r\n\t\t\t\tthis.on('changeName',function(name){\r\n\t\t\t\t\t// this.data is aggre._data.\r\n\t\t\t\t\tthis.data('name',name);\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t// you can create self function,\r\n\t\t\t// and each function will emit event,\r\n\t\t\t// so you use \"this.publish\" emit event.\r\n\t\t\t// please don't use this function change self._data, \r\n\t\t\t// aggre function only create event and publish.\r\n\t\t\t// change self state , please write in $updateSate function.\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['changeName',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\r\n\t\t\t// ... you can create other functions,\r\n\t\t\t// top only a example of function.\r\n\t\t}\r\n\r\n\r\n","_id":"cqrsnode@0.0.2alpha","dist":{"shasum":"24096988e59fecc578cf657c5ef1e3b64c7ccc14","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.2alpha.tgz","integrity":"sha512-51n7bL1p/fq71VspD+akW0sUGOA6NdEHjuXV3c6Sgoew7+ejN7C43mXz4X2O+8trKSS64eCtAWtvktlhZOjjfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYmXYOht1WF10gblamyWoJC7MQjQAN7QRScjuedPPnDAiBdXlAbGyhz3kAW8dvfzJSOYOvY8KV7G1tEXWejGarwbQ=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.3alpha":{"name":"cqrsnode","version":"0.0.3alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note \r\n========\r\npublish version 0.0.2 alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.3alpha","dist":{"shasum":"266edd107fa740ab2556fad31ff822a2b83fb59b","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.3alpha.tgz","integrity":"sha512-0+U9941pFIWsSNtyfXsguI0EaWb1uGJXXtvp8b1eSAUGgns/pVc2cDMt9WrjEhN893ZAgD7x2sfyYn5eN6qutg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPcqEgoQez+sLAb+faF7yGD6Ugju7p3te3CCCuFjAdSQIgTo4j6JOwbSDwnLpIUb6UmpeReNXL5IikGQh3UQr4cvw="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.4alpha":{"name":"cqrsnode","version":"0.0.4alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note \r\n========\r\npublish version 0.0.3alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.4alpha","dist":{"shasum":"b161172c7c4526e9c8b15c8e977c25fb011f27db","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.4alpha.tgz","integrity":"sha512-FWYiB4dFq+ijmrw+9q/UIlmcacjVFBjIgcw/z7TNgfhWK0Awki56a2aqie1z7EYv3XvMLwLdGA1nRQ/gYra/rQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICY/gZYjvFLtUxyTyFzMBOTFrEtZBSpONKIGGha7Aw51AiEAn8p8vIQZPYILWyLBzSz0NoR+lF860mjJo2NesW2nDXM="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.5alpha":{"name":"cqrsnode","version":"0.0.5alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note \r\n========\r\npublish version 0.0.5alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.5alpha","dist":{"shasum":"71f43a9e931eccb7d2b84210c9d040c3467c8a87","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.5alpha.tgz","integrity":"sha512-r2w+07zHpv6N1y+/cGKj5eprAqjJ7vak/0HmRHgXEzoADv72igb9ZTZph5N7+77AYKFKKK1pIWt02D434OeDFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBvnsN0PkrOwBnceLVxThqagdHUUNru5vkSL7M3pFdk5AiEAged45P9UUnC+ZWFi5o34/fJvE77WJGGjd3yKf4H1m38="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.6alpha":{"name":"cqrsnode","version":"0.0.6alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note \r\n========\r\npublish version 0.0.5alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.6alpha","dist":{"shasum":"668fb3067b7625958cf41a07b83eb79032473977","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.6alpha.tgz","integrity":"sha512-2nEbCdINT8uHh0qnJnXC+lOl11k3Qbtpp0ru31soecltBnBKDmCgfoW32BF5FxeeZ2Ri2mU8iOFkC6j5yqsztw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC96S0C7DG54P03EJYl//fXx3GBdoq7xdsIuTyR1XzL+wIgb4CZFKgi2MJfYft1OLl3Vsy/gpsokFV5fUpLJ9/br9c="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.7alpha":{"name":"cqrsnode","version":"0.0.7alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readme":"Note \r\n========\r\npublish version 0.0.7alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.7alpha","dist":{"shasum":"f4cd0559d350c9baaaaa01576e0c8dcf5025ec45","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.7alpha.tgz","integrity":"sha512-cgUB8u8lewQr+WVfFhI83qg6NG5Dr4+WJantTcEPVsAZiIokWULynXL+bwXIB158s5W6kB4aIBNR0LCPCNBrmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2UH1trxiPGGD6Hfmym/mpcfagCwLIV0d5f2v3gHxMkAIgfFHC2GSBojDqf0DV73sZ7rn9iTEOjJtu+3qUHCjVlX0="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.8alpha":{"name":"cqrsnode","version":"0.0.8alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readmeFilename":"README.md","readme":"Note \r\n========\r\npublish version 0.0.7alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.8alpha","dist":{"shasum":"d857519de9aadd451089380936d6de0bcc5c7f8d","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.8alpha.tgz","integrity":"sha512-QPmOMgBHIQHIXkzobIk2BVgmqDBQ2u9CTk8zJoXxls05YGycJWb11AAmtI+DxMOawYRfB1bQUVqxKx0CHczjbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHmnP3rYV881lb0vGshhXqcSLcj+767ZsO4IOPN2TiWbAiBA4C+iiFTklA2Dfa4i7IV4xQpumLMU7ao9Z+XP5gKJHg=="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.0.9alpha":{"name":"cqrsnode","version":"0.0.9alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-extend":">= 0.0.7","node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readmeFilename":"README.md","readme":"Note \r\n========\r\npublish version 0.0.7alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.0.9alpha","dist":{"shasum":"6ccafda6448c867d60d562579100044dc44efab3","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.0.9alpha.tgz","integrity":"sha512-6pC5MDIruIyHMyoNigMCMIITw9TsaP5wofM4/Laol9HdFF8RfB7eAx5LF8WaSCmwYEbJYUCa8X53e8LL/IOwdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwlrz0OtA7g/2sKpvDquBrt6bgeVoHobB0bz6mzCGXmgIhANG+ErAcH4BfRfDO2r2ozCKQLt1Uu+JoqnoKcyw0JVkZ"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.1.0alpha":{"name":"cqrsnode","version":"0.1.0alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"example":"example","test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readmeFilename":"README.md","readme":"Note \r\n========\r\npublish version 0.0.7alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.1.0alpha","dist":{"shasum":"dc0104b0e430f82a591dfb6ded6aea3c4e2cb85d","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.1.0alpha.tgz","integrity":"sha512-uwXvle6j8de/NfPm8LTMoV/k14bQcEVpUHGVt/TcyrgXHR/Vk+I4q6OcVX9gJDQCmyxgRN19YemMqTIpA/vkkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/qXz16mwZqqKl4t+r8r6tRV91tpiq4frNy1bfSVGBZgIhAP28fUAIUaMWeLEKeNyDX8AqFYV+HjpAlGPsmryfQXyK"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]},"0.1.1alpha":{"name":"cqrsnode","version":"0.1.1alpha","description":"cqrs framework for node.js","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"},"keywords":["cqrs","ddd","dci","node","node.js",""],"engines":{"node":">= v0.6.16"},"dependencies":{"node-uuid":">=0.0.1","lockmethod":">=0.0.1","cqrsnode.store":">=0.1.0"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"license":"MIT","directories":{"test":"test"},"bin":{"cqrsnode":"bin/cqrsnode.js"},"devDependencies":{},"readmeFilename":"README.md","readme":"Note \r\n========\r\npublish version 0.1.0alpha , Please note this version is still too unstable.Need to wait for 0.2.0 stable version.\r\n\r\ncqrsnode\r\n=========\r\n    CQRS framework for node.js\r\n\r\ninstall\r\n=========\r\n    npm install cqrsnode \r\n\r\ncreate a app\r\n============\r\n    cqrsnode appName\r\n\r\n    result is create dirs:\r\n        Aggres | eventHandles | commandHandles | queryHandles | services\r\n\r\n\r\nAggre code example\r\n===================\r\n    \r\n\t\tmodule.exports = User;\r\n\r\n\t\tfunction User(){\r\n\r\n\t\t}\r\n\t\t\r\n\t\tUser.prototype = {\r\n\t\t  // all update operating for .\r\n\t\t\t$updateState:function(){\r\n\t\t\t\tthis.on('change name',function(name){\r\n\t\t\t\t  this.data('name',name);\t\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.on('change age',function(age){\r\n\t\t\t\t\tthis.data('age',age);\t\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis.on('change',function(info){\r\n\t\t\t\t\tthis.data('age',info.age);\t\r\n\t\t\t\t\tthis.data('name',info.name);\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tchangeName:function(name){\r\n\t\t\t\tvar e = ['change name',name];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeAge:function(age){\r\n\t\t\t\tvar e = ['change age',age];\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t},\r\n\t\t\tchangeUser:function(name,age){\r\n\t\t\t\tvar e = ['change',{name:name,age:age}]\t\r\n\t\t\t\tthis.publish(e);\r\n\t\t\t}\r\n\t\t}\t\r\n\r\n\t\tUser.findByIds = function(ids,callback){\r\n\t\t\t...\r\n\t\t}\r\n\r\n\t\tUser.findByName = function(name,callback){\r\n\t\t\t...\t\r\n\t\t}\r\n\r\n\r\ncommand handle example \r\n======================\r\n\r\n    module.exports = {\r\n\r\n\t  'change user name':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeName(cmd.name); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t  'change user age':function(cmd,callback){\r\n     var User = this.aggre('User')\t\r\n\t\t User.get(cmd,id,function(u,next){\r\n\t\t    u.changeAge(cmd.age); \r\n\t\t\t\tcallback();\r\n\t\t\t\tnext();\r\n\t\t })\r\n\t  },\r\n\r\n\t\t'transfer':function(cmd,callback){\r\n\t\t   this.service(cmd.id1,cmdid2,cmd.money) \r\n\t\t}\r\n\r\n    }\r\n\r\nquery handle example\r\n======================\r\n    module.exports = {\r\n\r\n    'same user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findByIds(query.ids,callback)\r\n\t\t},\r\n\r\n\t\t'get a user':function(query,callback){\r\n\t\t\tvar User = this.aggre('User');\t\r\n\t\t\tUser.findById(query.id,callback)\r\n\t\t}\r\n\r\n    }\r\n\r\n\r\nevent handle example\r\n=====================\r\n\r\n    module.exports = {\r\n\r\n    'User.change name':[\r\n     function(event){},\r\n     function(event){}\r\n    ],\r\n\r\n\t\t'User.change age':[\r\n     function(event){},\r\n     function(event){}\r\n    ]\r\n    }\r\n\r\nservice example\r\n=====================\r\n\r\n    module.exports = {\r\n     'transfer':function(id1,id2,money){\r\n\t\t \t\tvar User = this.aggre('User');\t \r\n\t\t\t\tvar user_1 = null;\r\n\t\t\t\tvar user_2 = null;\r\n\t\t\t\tUser.get(id1,function(u,next){\r\n\t\t\t\t\tuser_1 = u;\r\n\t\t\t\t\tnext();\r\n\t\t\t\t\tUser.get(id2,function(u2,next2){\r\n\t\t\t\t\tuser_2 = u2;\r\n\t\t\t\t\tnext2();\r\n\t\t\t\t\t})\t\r\n\r\n         \tuser_1.Outlay(money); \r\n\t\t\t\t\tuser_2.Income(money);\r\n\r\n\t\t\t\t})\r\n\t\t }\t\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","_id":"cqrsnode@0.1.1alpha","dist":{"shasum":"05ae514c45723cfafe7ceba5eeabbaef104576a0","tarball":"https://registry.npmjs.org/cqrsnode/-/cqrsnode-0.1.1alpha.tgz","integrity":"sha512-+zjDdryfDy432gjBc1e/UUk+DpcEJvc5APNJZm4cPwpdI1xi1lt6vU3960wPER89MRHfCR4wKt3J1RhUexgq0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICn9ijQCQNUIg5oJ2IUoRKkzFJ7iOz6XIk+aFKrl5T0zAiEAk6td39AieJgP8Gg28PpX/CQcIV89WDrKGepmgwbHiiA="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"brighthas","email":"brighthas@gmail.com"},"maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}]}},"readme":"node-cqrs\r\n=========","maintainers":[{"name":"brighthas","email":"brighthas@gmail.com"}],"time":{"modified":"2022-06-14T02:27:38.040Z","created":"2012-08-25T01:36:05.425Z","0.0.1":"2012-08-25T01:36:10.371Z","0.0.2":"2012-08-27T12:06:45.104Z","0.0.3":"2012-09-06T14:06:32.310Z","0.0.4":"2012-09-07T07:19:28.729Z","0.0.5":"2012-09-07T07:23:04.652Z","0.0.6":"2012-09-07T07:30:00.597Z","0.0.7":"2012-09-07T07:40:41.507Z","0.0.8":"2012-09-07T14:05:14.324Z","0.1.0":"2012-09-07T14:24:05.686Z","0.1.1":"2012-09-08T03:13:26.176Z","0.1.2":"2012-09-09T01:35:30.552Z","0.0.0":"2012-10-05T02:32:25.664Z","0.0.9":"2012-10-05T03:04:18.334Z","0.0.11":"2012-10-05T03:07:03.907Z","0.0.12":"2012-10-05T03:09:14.376Z","0.0.13":"2012-10-05T03:16:50.212Z","0.0.1a":"2012-10-07T02:48:08.646Z","0.0.2a":"2012-10-08T02:02:48.481Z","0.0.2alpha":"2012-10-08T08:57:57.148Z","0.0.3alpha":"2012-10-11T09:26:09.573Z","0.0.4alpha":"2012-10-13T05:26:35.743Z","0.0.5alpha":"2012-10-16T07:09:03.765Z","0.0.6alpha":"2012-10-16T10:50:38.534Z","0.0.7alpha":"2012-10-17T02:35:01.560Z","0.0.8alpha":"2012-11-13T01:32:51.863Z","0.0.9alpha":"2012-11-14T08:46:07.217Z","0.1.0alpha":"2012-11-19T23:50:46.252Z","0.1.1alpha":"2012-12-17T09:03:10.395Z"},"author":{"name":"brighthas","email":"brighthas@gmail.com"},"repository":{"type":"git","url":"git://github.com/brighthas/node-cqrs.git"}}