{"_id":"microgears","_rev":"27-974d469edaf77318d29659f0b009a49a","name":"microgears","description":"super lightweight micro framework for reactive services","dist-tags":{"latest":"4.0.12"},"versions":{"1.0.0":{"name":"microgears","version":"1.0.0","description":"super lightweight micro framework for reactive services","main":"index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-jasmine-node":"0.3.1","sinon":"1.17.2"},"gitHead":"6df7596eb7f50165ca1e0efbfa801fbbf285644c","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears","_id":"microgears@1.0.0","_shasum":"e5f14501f341cb96b4b0388549035dad2263d73a","_from":"./","_npmVersion":"1.4.28","_npmUser":{"name":"marcusdb","email":"marcusdb@tmwsys.com"},"maintainers":[{"name":"marcusdb","email":"marcusdb@tmwsys.com"}],"dist":{"shasum":"e5f14501f341cb96b4b0388549035dad2263d73a","tarball":"https://registry.npmjs.org/microgears/-/microgears-1.0.0.tgz","integrity":"sha512-XkIwqY5fZLk9XzyM7ChNovUWjv8/LHDOAFVA+feGFLooxvBPZtzJnKjnlAGmN3pAFBKPJuTT7nE7mtbjqTm82g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCViJkXmkyglO5KUVoMnc/oJsGyMExDdmJdz6PImjYyRAIhANg86ejfVH/89NyCwdPa/eAsp/uAG7kZpzq8Msjs9cp6"}]}},"2.0.0":{"name":"microgears","version":"2.0.0","description":"super lightweight micro framework for reactive services","main":"index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-mocha-test":"^0.12.7","sinon":"1.17.2"},"gitHead":"55ab25390cb804598f43a96c157cf3636644de2a","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@2.0.0","_shasum":"a42febca92ccc4d9ac81200f068c5a4b2c9199d0","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"marcusdb","email":"marcusdb@tmwsys.com"},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"dist":{"shasum":"a42febca92ccc4d9ac81200f068c5a4b2c9199d0","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.0.0.tgz","integrity":"sha512-kdMoIFmds63DthV8D39bXBHdx8BpQgqF87iJ6mTFfdffHJ5OTgrAjXdvxg2wLBw7p/WpQ+UFaJMkQ5zFGabvDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlIixb6lhkRpHwtZFj03jHVMzfsdNw+D2lGv+n9svwKAIhAN9GKV/+B81bJWFXov0SAEEDTbAKPIqtEG1dI0kuiZYJ"}]}},"2.1.1":{"name":"microgears","version":"2.1.1","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-mocha-test":"^0.12.7","sinon":"1.17.2"},"gitHead":"d74e4fe79e9fb0645e20eabb71156fc0fdc4a05c","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@2.1.1","_shasum":"80b954ba4ad8e753e5bcbf34b952049302e4af25","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"marcusdb","email":"marcusdb@tmwsys.com"},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"dist":{"shasum":"80b954ba4ad8e753e5bcbf34b952049302e4af25","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.1.1.tgz","integrity":"sha512-0wM6puUFT9imiVFgicbxW1LHNr2NPnwazDHz7u2CM9DDJSX8rxgs4r8JXWadOHj0spIPXm1MkPBsO3c3+2WFJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5bY0QklCjP9FR5lxXx7gDnEvPfVASAc+prZjtzTxEAQIhANe9i+sVoMQteo+56Lw8tlMtsNHOQudeSmtsNHe4e880"}]}},"2.2.0":{"name":"microgears","version":"2.2.0","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","sinon":"1.17.2"},"gitHead":"ea18bbeada088a4320b66f520efa4b6a8b891f82","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears","_id":"microgears@2.2.0","_shasum":"cf38ef69aa7985726eb32125c939d17283742231","_from":"./","_npmVersion":"1.4.28","_npmUser":{"name":"marcusdb","email":"marcusdb@tmwsys.com"},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"dist":{"shasum":"cf38ef69aa7985726eb32125c939d17283742231","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.2.0.tgz","integrity":"sha512-NfHl+hdn1ZBWuN9JOsHti5pgRkrTLWhwncY3f3W+S3ICA5KGlxpGcVkrBXYvlX3rbHMoI4/Rprn9afTiHtncBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDDBsqXY54pV3OJkckgH3ZdhxN24NCiADiCCqVRgVDWvAiBn8JKwfS3p+6O3MroCk2ayNktqFAu5ymFK1h+Vvp80Aw=="}]}},"2.2.1":{"name":"microgears","version":"2.2.1","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","sinon":"1.17.2"},"gitHead":"49d51921391326b230d39f30244db2b38325cac4","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears","_id":"microgears@2.2.1","_shasum":"07cf279f1f7aed10fe32757c22579499f1baa17e","_from":"./","_npmVersion":"1.4.28","_npmUser":{"name":"marcusdb","email":"marcusdb@tmwsys.com"},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"dist":{"shasum":"07cf279f1f7aed10fe32757c22579499f1baa17e","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.2.1.tgz","integrity":"sha512-kSHPozkq7Ya4FIegfjMgfevubUtJepEjVPrn0/Jw9FJM8EQSMbU5yuuVi5axPtZdaSIxd5VIUFI7whtGsfYFug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICn7fuzqteW8r6KKzskNmn2ZWiptmHenx9FSSKWa1JL5AiEAyfBdz61x6ymkBog6DqCqLVoHcZrtqJWoQhopHeBkzEs="}]}},"2.2.2":{"name":"microgears","version":"2.2.2","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","sinon":"1.17.2"},"gitHead":"a30f673a028b7bf47e5316a812dea88c1a0a22c8","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears","_id":"microgears@2.2.2","_shasum":"6e051afc1ee7aa5261060b2ad83a37eccee991fa","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"marcusdb","email":"marcusdb@tmwsys.com"},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"dist":{"shasum":"6e051afc1ee7aa5261060b2ad83a37eccee991fa","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.2.2.tgz","integrity":"sha512-SwttuATb+jRnpsudGovdXVrRHQNI03IaGvBECWcOHlhg42D2bqoyOrjJQwUC7IOioqkPyiujO3tR6atSJAADdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs0mTA9UXPaSaDd633GP7xCBL38QaDqdBNGeoEnCKHbwIgVDAUdXf8LvA9jUQi+DBA4OsNywdleNmWm6ukeaFcgho="}]}},"2.2.3":{"name":"microgears","version":"2.2.3","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","sinon":"1.17.2"},"gitHead":"629b12e25d5f455b156c7f76d0e74dd51f1f48ae","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@2.2.3","_shasum":"0c4862fa8decf5465e65b39454d247cc395cbd8c","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"0c4862fa8decf5465e65b39454d247cc395cbd8c","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.2.3.tgz","integrity":"sha512-ao2ZEeaDbKjCak9a8d7JCjh6x3Ct5jaQgeCFLGAw3N7g5T+h5RdLhhxdZ+7hDmuSIXpVr2D/O5K61Th2jpWU0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGaFSUy8Y1xgV15AUV+1AjRc2gCCghaf8kYA0ydN1AM+AiARgGGTufq32tK5bXZJ74jh4fX7e/gFfK5XktedzfOuEg=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/microgears-2.2.3.tgz_1455817351607_0.9762302828021348"}},"2.2.4":{"name":"microgears","version":"2.2.4","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"gitHead":"3b82a06947d850473bba6b1d5f770a0cdbc14783","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@2.2.4","_shasum":"fe66b6b791d14d88b0d36ee6fbea2dc2de61160f","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"fe66b6b791d14d88b0d36ee6fbea2dc2de61160f","tarball":"https://registry.npmjs.org/microgears/-/microgears-2.2.4.tgz","integrity":"sha512-VEZB9ucWWwNKzKJUbLT5JKVyfcFw0+MScRCy2s3vewdN6i7uQ9LPdjnCrBxnuhmXerGvXoI4xFHOWtjfOA4Zew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXJS/f8bKpJ8L0wd3iYf93dWzWSH3amcoRknoo1x+gbAiB3jNKNLBzRcXr24RN9NFiwxziSlO68deL/u2BGLEfaRA=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/microgears-2.2.4.tgz_1459952042303_0.48707834887318313"}},"3.0.0":{"name":"microgears","version":"3.0.0","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"gitHead":"b4c5fc6944beb8648d1b077f5c9e89aa4521be77","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@3.0.0","_shasum":"9eadc15faff12f276ec61039a2431254671f2074","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"9eadc15faff12f276ec61039a2431254671f2074","tarball":"https://registry.npmjs.org/microgears/-/microgears-3.0.0.tgz","integrity":"sha512-0v8KYwMJeBp+jlVaevbsCCAzq54051zSWSUUWlZ5AzNtH0Ckh2lccV+wnO1ilI/Xn2flSVL36HeYqPmQN6qATA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVHifaFwCVFeCNQ+1Cp/bo6puFQDEhb2ukDQ3GrXJsUAIhAJ3aqQUjmKqjCsBy9T38KTlvJUEZ3BqDZ6BpX1lGLb9m"}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/microgears-3.0.0.tgz_1459964302689_0.5892337234690785"}},"4.0.0":{"name":"microgears","version":"4.0.0","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"gitHead":"f6f3e0edb1a88964f7d568292164921cad800dd0","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.0","_shasum":"8a332a7abb8d4c322f84e6a2af307ec2e74a410e","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"8a332a7abb8d4c322f84e6a2af307ec2e74a410e","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.0.tgz","integrity":"sha512-P7GR34+jUsViMlIBqMjro2vkJSRoRSii+c73Luo7Lpb/FynliHdyCT/SBY+WHi0MdubMXGPgh8Gj/GLFxiTfPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFG3+7iQGmcFkcvlHNqlwa4WT0Lb6pfiBMHq2W5JeWXdAiBgs1EoGSYvTYEkv152FrfYvhp4RV2Qvwsg2xr+J74VAw=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.0.tgz_1460151442515_0.6462130886502564"}},"4.0.1":{"name":"microgears","version":"4.0.1","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"gitHead":"a6d9c23c7677d088528fd55eebdccf6d92d0aa1e","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.1","_shasum":"e7e6148854f680638bbf6ec5ba50c4b06ffd0e62","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"e7e6148854f680638bbf6ec5ba50c4b06ffd0e62","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.1.tgz","integrity":"sha512-TPQM41CumIAXxa/2xEewykE/nYsc3QtFYQFFCw5EgkZ1a2tOkQl/j354moTlleML/7G9h6Gx1uyl2ZlxHoG1DQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFDHAzx59ICeVNA3siM3dV88/2tFp3X3Xba/CRpa2b4AiAeYkCPkVntlSsJknpdc6lYuZU4aQg72VoAQeiZGuj8PQ=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/microgears-4.0.1.tgz_1460295470523_0.02984483726322651"}},"4.0.3":{"name":"microgears","version":"4.0.3","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"gitHead":"a6782139fea9e5947cb7034520a0731f6cba6432","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.3","_shasum":"3b00a6e6d2a66d2eb31cd976c19badc55e181105","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"3b00a6e6d2a66d2eb31cd976c19badc55e181105","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.3.tgz","integrity":"sha512-MY6UjqM3VinF+bOrEnTHdm/3Xgfqr/mt2WQ/bO8P4EHqwtbwPKQIVpZxLLNm63rnikzSR/wP11o8XLWqAKnGJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGlcNCeeuPtFKGxwyVQDDCSWo6OXcK/FdcmIikB/PhiAIgPPkWAZ5fP/TAkxLmGPE3HFCIp7vzEOrRuzvcyRaGaSE="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.3.tgz_1461360311739_0.5797588750720024"}},"4.0.4":{"name":"microgears","version":"4.0.4","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"gitHead":"bbc7f14d20348ac40bf50183f6a8d0ffb4b65f29","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.4","_shasum":"d03a70f939cddc4bd97af74c4d79bae00f65d21e","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"d03a70f939cddc4bd97af74c4d79bae00f65d21e","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.4.tgz","integrity":"sha512-WPX7yQrDxQNA0adBBuOaMXfHoxMlpSqR7GJdA0QgDIg1CssYNpwyj3iDjz/JOX0GfIZ/IHt6xgx25b8fZvQK9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDA2/2CkPTcd5lKuM0yYGzFRMQ/kYixJFPSXitJ24gJcgIhAI54mTxjPWjKuvsgrAdl3jerJz3Ndng8ui/TBHFl3LPK"}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.4.tgz_1461414449700_0.8127920657861978"}},"4.0.5":{"name":"microgears","version":"4.0.5","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"e2e7b218f55605e526bdcd1052cfb49fdfa394b2","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.5","_shasum":"77b2399d6ef549640a97105d8fd68cf67cb12da5","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"77b2399d6ef549640a97105d8fd68cf67cb12da5","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.5.tgz","integrity":"sha512-icBehuJUEZrTO/2HYE2IzlpmwqWHX5QV4TIMBoPNuwH3yCvZ+kxIiuP/4l5Nn3+KqCnqgOrgMaiAzL44U2APsA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB0aYNztLJqMhTj1U72wXKNSB53nJtjKXtnBxm+RQxMLAiEAh6CMZinJBxFiAjtgXav7eQDp7Cevp+whdhtYKiSSFwE="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.5.tgz_1461416932027_0.8828842977527529"}},"4.0.6":{"name":"microgears","version":"4.0.6","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"65784e12cc0aaa4d242ae8f046d9107fdc48454c","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.6","_shasum":"4a99cf84549975eff0fa3dad865c5f7ce6a288e1","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"4a99cf84549975eff0fa3dad865c5f7ce6a288e1","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.6.tgz","integrity":"sha512-eTs+A4pJZ+ns8jncSItRnRCjlVfmSyM5wzhSl5Ng5hMhq5SAENKHNXlaHeAIb54khF/2X83faXHkTmcqQbXdOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNXSlPXxOT0/lFaC4DTyLWv1/VX0tMQRAI1zP+M6NPfQIhAOn2A0LyO+hYBKgQwHopTByw2k0CH3nOv/t9+dariNpm"}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/microgears-4.0.6.tgz_1461418714568_0.8356764633208513"}},"4.0.7":{"name":"microgears","version":"4.0.7","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"fa5c09ca3ba16a11dd750d5bf16c7ebd47586e58","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.7","_shasum":"afef276e6a5eee8c8b2e86c96ae37dac2d619944","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"afef276e6a5eee8c8b2e86c96ae37dac2d619944","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.7.tgz","integrity":"sha512-KZdxiKCjNvDdn8INsJ3G3RA/2bmLWncKsKzTW7yBg15PBDWW3+7fDEDXhzT4ZaRyav0NyDJt016bowcoOPc/Ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgaYmg6lNwrA5NkpUv4f8zcbTQpXczsXPvdaqZQ0eIFAiAF2DiOb6Ns815OEykZh9yVXt6vnkcwfmjH1608u8It3w=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.7.tgz_1461419300700_0.6104045093525201"}},"4.0.8":{"name":"microgears","version":"4.0.8","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"e731ef1f8ae7c73f7e2dc00e45793de428820c52","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.8","_shasum":"68aa9eeb45d48039a8c617fe4cf6c9f364805721","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"68aa9eeb45d48039a8c617fe4cf6c9f364805721","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.8.tgz","integrity":"sha512-RfYkPsR+W/MT/fAg9kl+in8lJ9439m1E+pq00HqZ4ShEJcGnlf39vjxHM6OObiaE7dD45SS3EGUIiclA9ilpXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvvU4FeYHmfxCgN1wKLMGB813oveBVuBe8k+a9e1SMVAiA9kJObJGLcJN07Ugw0l2Jq5jtKMMGTiRNVXhiH5FoEFA=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.8.tgz_1461420808256_0.09328344487585127"}},"4.0.9":{"name":"microgears","version":"4.0.9","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"9da02baf65209d5391a407232d79206480adcd23","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.9","_shasum":"9a99f8972b8cfad880cc9ae8decc4639e41955eb","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"9a99f8972b8cfad880cc9ae8decc4639e41955eb","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.9.tgz","integrity":"sha512-mWG4Fany5Dm/r5GTNPQjYgp1vf84eeQ55ufMbTSsBEPd+/SdtIDvaWAmg+kZm0bCEk5Zor3TblpGUbEBnzdDEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdsrzuRX2onjxJJbmGf6SRtCckUcmG1aHlCnesVkg3KAiBsi/0IYAu3UBiQqekfphCKi4n87ozs4pmUOFhAxFST2w=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.9.tgz_1461702596121_0.550382925895974"}},"4.0.10":{"name":"microgears","version":"4.0.10","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"a0e98b95eac88e08c4b0844db6ed0c67a52253d3","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.10","_shasum":"b4b064427460137f66d69ac73a9914ece893790b","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"b4b064427460137f66d69ac73a9914ece893790b","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.10.tgz","integrity":"sha512-oHZqEX78qf5YC08G8BLsRtH9i3/GhSLjnvNEW2BL/SbCTS0Ku/nq9DLCESXdWqJobZ38CN5FyaWIvtcQiE46Xg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH0qRurWG+sQ8MF7j5kZk57xeXUq2qPYcn7wstijAM+TAiA0IzCxwLnC6NG9i/ASQ9RtsYbxMT2SW5amFC2GQeS8og=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.10.tgz_1461953299452_0.6218623034656048"}},"4.0.11":{"name":"microgears","version":"4.0.11","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"83a9d703701ea9ce234b14f80ff6a34662326b99","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.11","_shasum":"73de33ac8bcea02bf00c834b223753f7cee63701","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"73de33ac8bcea02bf00c834b223753f7cee63701","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.11.tgz","integrity":"sha512-ljVLcxdDn9h6fFF776I3JqHAvoolCD5s7He1xavuflOgxiT9souQ6PildXAXEiUKpdmagfvx+zmJV+2tUl1TXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZGUATFevNkgZW1oqRBqkzgOzPTNoCxErm75LMUhAFcAiAfltvFbWGPMCJMQ2dNrbl0w6K2hE3z/aJqIlyVGNEmRg=="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.11.tgz_1468257928983_0.6640158204827458"}},"4.0.12":{"name":"microgears","version":"4.0.12","description":"super lightweight micro framework for reactive services","main":"./src/index.js","scripts":{"test":"grunt test"},"author":{"name":"Marcus David Bronstein"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"dependencies":{"bluebird":"3.0.5","ramda":"0.18.0"},"devDependencies":{"chai":"^3.4.1","grunt":"0.4.5","grunt-contrib-jshint":"0.11.3","grunt-contrib-watch":"^0.6.1","grunt-mocha-istanbul":"^3.0.1","grunt-mocha-test":"^0.12.7","istanbul":"^0.4.1","mocha":"2.4.5","sinon":"1.17.2"},"typings":"./microgears.d.ts","gitHead":"62776b7fce260800317c53e21a6bf239d9f343a0","bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"homepage":"https://github.com/marcusdb/microGears#readme","_id":"microgears@4.0.12","_shasum":"73db21a04d7dd365317ff8ed2fbfa8685e7dff6f","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"marcusdb","email":"marcusdb@gmail.com"},"dist":{"shasum":"73db21a04d7dd365317ff8ed2fbfa8685e7dff6f","tarball":"https://registry.npmjs.org/microgears/-/microgears-4.0.12.tgz","integrity":"sha512-1c6p177uY5Z8cIKWqf+S14gTXGAJTcjZ/2lhcA4k7PoO7BZnvM4AQh2lq06dXMyFSqcI/Ci4oVsCZ2wh1yOAFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY3lsdEmqew8deoBNDZCYaCLr8R9Tgg4HhHiyJAC3QVgIgQU5K8M9zt73QUJx9wzugLit6t+ns2EbdbUpoeZw6pXg="}]},"maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/microgears-4.0.12.tgz_1468359383075_0.93785325367935"}}},"readme":"[![NPM](https://nodei.co/npm/microgears.png)](https://nodei.co/npm/microgears/)\n\n[![npm version](https://badge.fury.io/js/microgears.svg)](https://badge.fury.io/js/microgears)\n[![Build Status](https://travis-ci.org/marcusdb/microGears.svg?branch=master)](https://travis-ci.org/marcusdb/microGears)\n[![Dependency Status](https://david-dm.org/marcusdb/microGears.svg)](https://david-dm.org/marcusdb/microGears)\n[![devDependency Status](https://david-dm.org/marcusdb/microGears/dev-status.svg)](https://david-dm.org/marcusdb/microGears#info=devDependencies)\n[![Issue Stats](http://issuestats.com/github/marcusdb/microGears/badge/issue?style=flat)](http://issuestats.com/github/marcusdb/microGears)\n[![Issue Stats](http://issuestats.com/github/marcusdb/microGears/badge/pr?style=flat)](http://issuestats.com/github/marcusdb/microGears)\n[![Code Climate](https://codeclimate.com/github/marcusdb/microGears/badges/gpa.svg)](https://codeclimate.com/github/marcusdb/microGears)\n[![Test Coverage](https://codeclimate.com/github/marcusdb/microGears/badges/coverage.svg)](https://codeclimate.com/github/marcusdb/microGears/coverage)\n[![Issue Count](https://codeclimate.com/github/marcusdb/microGears/badges/issue_count.svg)](https://codeclimate.com/github/marcusdb/microGears)\n[![TypeScript definitions on DefinitelyTyped](https://img.shields.io/badge/DefinitelyTyped-.d.ts-blue.svg)](http://definitelytyped.org)\n\n\n\n# MicroGears\nMicroGears a super lightweight micro framework for reactive services\n\nMicroGears was build with 3 main objectives in mind.\n\n* enforce immutability of function parameters\n* enforce all function calls to be promisified\n* enable your service to be filtered in a transparent way (with more then one filter simultaneously)\n* help to administer service dependency in favor of a better and more controlled test environment\n\n\n\n## How to register a service\n\nThe **name** and **namespace** are mandatory fields for the service, the reason is that later you are going to be able to appy the plugins to only certain services or namespaces (ie services.company.persistance or routes.company, etc..).\nNeedless to say services must be registered before use.\n\nVERY IMPORTANT--->ALL service calls are promisify by microGears for you, so they are **ALWAYS** asynchronous, except when the **async** property is set to false, this property is optional and your **default value is true**\n\n```javascript\nvar MicroGears = require('microgears');\n\nvar userService = {\n    name: 'userService',\n    async: true, //This is an optional property : [default = true ]. This is the same as omitting it.\n    namespace: \"services.userservice\",\n    findUserById: function (id) {\n        return {\n            name: 'user',\n            id: id\n        };\n    }\n};\nMicroGears.addService(userService);\n```\nSince MicroGears is goint to transform the service functions into promises you should keep this in mind when using the framework, except if async is set to false\n\n### Using the registered service\n\nExample\n\n```javascript\n    MicroGears.userService.findUserById(req.params.id).then(function (result) {\n        console.log(result);\n    }).catch(function (error) {\n        console.log(error.stack);\n    });\n```    \n\n## How to register a plugin\n\nThe **name** field is mandatory and there must be a **beforeChain**, **afterChain** or both functions, which the first parameter is going to an array of all service function parameters (can be modified or not but should be used as a return of this function),\nthe next parameter is a meta information of the service call, it is an object that you can share information between another plugins.\n\nThe **beforeChain** or **afterChain** function will always have only two parameters: the *args*,  an array of all service function parameters, and *_meta*, an object that have information about service caller, an can used too for sharing information between plugins.\n\nVERY IMPORTANT--->plugins follow the service behaviors about synchronization if async service property, is seted to false, services and plugins will be synchronous, otherwise, all will be async.\n\n### A trace plugin\n```javascript\nvar MicroGears = require('microgears');\n\nvar tracePlugin = {\n    name: 'tracePlugin',\n    beforeChain: function (args, _meta) {\n        var serviceName = _meta.serviceName,\n            method = _meta.methodName;\n        console.log('before call-> '+serviceName+'.'+method);\n\n        _meta.mySharedData = {\n            count: 1\n        };\n\n        return args\n    },\n    afterChain: function (result, _meta) {\n        var serviceName = _meta.serviceName,\n            method = _meta.methodName;\n\n        console.log('after of-> '+serviceName+'.'+method);\n        if(_meta.mySharedData.count){\n            console.log('this number comes to the beforeChain: '+ _meta.mySharedData.count);\n        }\n\n        return result;\n    }\n};\n\nMicroGears.addPlugin(tracePlugin);\n```\n\n### A performance meter plugin (that only measures performance for the *userService* service\n\n```javascript\n\nvar performancePlugin = {\n    name: 'performancePlugin',\n    beforeChain: function (args, _meta) {\n        var hrstart, start, logPerformance = false, serviceName = this.microgears.serviceName;\n\n        logPerformance = (serviceName === 'testService');\n        if (logPerformance) {\n            hrstart = process.hrtime();\n            start = new Date();\n        }\n\n        _meta.statistcs = {\n            hrstart: hrstart,\n            start: start,\n            logPerformance: logPerformance\n        };\n\n        return args;\n\n    },\n    afterChain: function (result, _meta) {\n        if (_meta.statistcs.logPerformance) {\n            _meta.statistcs.end = new Date() - _meta.statistcs.start;\n            _meta.statistcs.hrend = process.hrtime(_meta.statistcs.hrstart);\n        }\n\n        console.log('Service:' + _meta.serviceName+ ' Method:' + _meta.method + \"Execution time: %dms\", _meta.statistcs.end);\n        console.log('Service:' + _meta.serviceName+ ' Method:' + _meta.method + \"Execution time (hr): %ds %dms\", _meta.statistcs.hrend[0], _meta.statistcs.hrend[1] / 1000000);\n\n        return result;\n    }\n};\n\nMicroGears.addPlugin(performancePlugin);\n```\n\n### Omitting methods\n\n Sometimes we not need to intercept a method, a private method perhaps. Private methods doesn't\n exists in Javascript , by convention, instance members starting with _ \"underscore\", are private,\n the Microgears use this convention to not intercept methods with this notation.\n\n ```javascript\n var plugin1 = {\n     name: 'testPlugin1',\n     beforeChain: function (args, _meta) {\n\n         return args[0] + 1;\n     },\n     afterChain: function (result, _meta) {\n\n         return result + 1;\n     }\n };\n\n MicroGears.addPlugin(plugin1);\n\n MicroGears.addService({\n     name: 'testService',\n     namespace: 'namespace',\n     async: false,\n     _callPlus1: function (val) {\n\n         return val;\n     }\n });\n\n var result = MicroGears.testService._callPlus1(1); // 1;\n ```","maintainers":[{"name":"marcusdb","email":"marcusdb@gmail.com"}],"time":{"modified":"2022-06-19T18:47:50.655Z","created":"2015-11-27T16:35:47.201Z","1.0.0":"2015-11-27T16:35:47.201Z","2.0.0":"2015-11-28T23:40:57.668Z","2.1.0":"2015-11-29T00:18:00.192Z","2.1.1":"2015-11-29T00:51:36.033Z","2.2.0":"2015-11-29T17:06:37.672Z","2.2.1":"2015-12-07T19:59:42.210Z","2.2.2":"2016-01-08T16:59:46.691Z","2.2.3":"2016-02-18T17:42:33.954Z","2.2.4":"2016-04-06T14:14:04.454Z","3.0.0":"2016-04-06T17:38:24.840Z","4.0.0":"2016-04-08T21:37:23.347Z","4.0.1":"2016-04-10T13:37:54.468Z","4.0.2":"2016-04-22T20:50:04.138Z","4.0.3":"2016-04-22T21:25:13.465Z","4.0.4":"2016-04-23T12:27:31.553Z","4.0.5":"2016-04-23T13:08:53.862Z","4.0.6":"2016-04-23T13:38:36.848Z","4.0.7":"2016-04-23T13:48:22.592Z","4.0.8":"2016-04-23T14:13:30.135Z","4.0.9":"2016-04-26T20:29:58.063Z","4.0.10":"2016-04-29T18:08:20.364Z","4.0.11":"2016-07-11T17:25:30.599Z","4.0.12":"2016-07-12T21:36:24.814Z"},"homepage":"https://github.com/marcusdb/microGears#readme","repository":{"type":"git","url":"git+https://github.com/marcusdb/microGears.git"},"author":{"name":"Marcus David Bronstein"},"bugs":{"url":"https://github.com/marcusdb/microGears/issues"},"license":"ISC","readmeFilename":"README.md"}