{"_id":"rest-api-starter","_rev":"27-46b7c2663d6716fa7c7b3bede036ecc3","name":"rest-api-starter","description":"Rest API starter kit.","dist-tags":{"latest":"0.0.28"},"versions":{"0.0.1":{"name":"rest-api-starter","version":"0.0.1","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run lint && npm run check && npm run test","deploy":"npm run build && npm publish"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.15.2","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"^3.5.0","eslint":"^3.13.1","istanbul":"^0.4.5","mocha":"^3.2.0","npm-check":"^5.4.0"},"gitHead":"8a9b87f692c918699ced8c4d722e625b3df86e9c","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.1","_shasum":"38b4b9466a6e15ba7f5f63c37d6c7c5a10b653e6","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"38b4b9466a6e15ba7f5f63c37d6c7c5a10b653e6","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.1.tgz","integrity":"sha512-v4z5LHicYS6Xx4nRrDjJc965em/npcm+cbLMmTj3r76uliE0TPIT0xq2GTdNN1BE4fCKH4JEwRbIosOJ2xZw9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFIgFilaVzi+cnOIlXtQKKX+n4wbmejlw/+RJYRK0eQiAiEAnNlUR6tHWBY+vyo07RAs22x/KeOrUTDJxrfI4LXB8hc="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.1.tgz_1484450083054_0.008987542241811752"}},"0.0.3":{"name":"rest-api-starter","version":"0.0.3","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push && git push --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.15.2","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"^3.5.0","eslint":"^3.13.1","istanbul":"^0.4.5","mocha":"^3.2.0","npm-check":"^5.4.0"},"gitHead":"be2f7055094fa02b0840cf52789bad73a13c8fd0","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.3","_shasum":"f61c85299dc7926c74e6e517b4511219c68c0922","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"f61c85299dc7926c74e6e517b4511219c68c0922","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.3.tgz","integrity":"sha512-nphTbos1OES2WHGkDSvIRYFK909ViX/dpKCebSrWfpNU7qE67mPbaA4HzbwuWsLjyPVVyuvM1Tl75rHeHXpIWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5yEKfVvozaxE+VuQ+ck6YayQSY2KwIG4iH5SJKNz+HAIhANfCPEnzzljxlthEydhRiuEwvwuyqfy4hcFt1cIVD6BD"}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.3.tgz_1484507502973_0.41859965794719756"}},"0.0.4":{"name":"rest-api-starter","version":"0.0.4","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.15.2","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"^3.5.0","eslint":"^3.13.1","istanbul":"^0.4.5","mocha":"^3.2.0","npm-check":"^5.4.0"},"gitHead":"0573f59d6f9d27413082be3405fb0e4e6192b66b","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.4","_shasum":"fecc48f6b37780e5144b005cf16895162b22776d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"fecc48f6b37780e5144b005cf16895162b22776d","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.4.tgz","integrity":"sha512-ztkgfDq05yyjDg85JMiuZD2x7SHbfSXdMRwKovhRUXz8+iRg+AXxOh/wpa/4Cj0DM7yA8hNbSKWyOS/voBiaOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDE8YyMH8Oc1v0XJ3ysGrVgHuNsY3n34D2JPMdf9m+B5gIgXWB2t7bufnef9ncV63gboIV+X4RnbYyZUSIFPSRH400="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.4.tgz_1484507579428_0.6343855641316622"}},"0.0.5":{"name":"rest-api-starter","version":"0.0.5","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.15.2","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"^3.5.0","eslint":"^3.13.1","istanbul":"^0.4.5","mocha":"^3.2.0","npm-check":"^5.4.0"},"gitHead":"8560be934192cd9e95b3134eb041749d369f2c01","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.5","_shasum":"84f7164b391e294f21f60977b06f37712baa6c6e","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"84f7164b391e294f21f60977b06f37712baa6c6e","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.5.tgz","integrity":"sha512-pzrerEbLnTHjJWS199N7MaLELK465kyVtxJK8SP1+8b+vcfqMAmqzhPmHZvB9qYuzjHKYEcLnsTvpC2FIas/PA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPq+Zqh3z7YRwnaQUyOvklDE+p0QF90of4ZYZlMO6pOAIgMga0appBjAClvdiLJyQe+UhuJXfkV+8aC5+I+Pb4EMc="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.5.tgz_1484510052076_0.5406855687033385"}},"0.0.6":{"name":"rest-api-starter","version":"0.0.6","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"3.5.0","eslint":"3.13.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"bc75d1a602f0700f91905342ba6671e13460b5fc","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.6","_shasum":"8bdc600d0d0470086a4b6ae46307970e904724e7","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"8bdc600d0d0470086a4b6ae46307970e904724e7","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.6.tgz","integrity":"sha512-Y+a0F9FTdao8UstFvaqodT0b2LROBit/LFgPRZuv2HMo9D/SZyjPgJhsvIXsnodWopz76nwD6k1LTA8eEXdNNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3UgVXGxosoRUFN+O1jjJFxzTGYnjuwPRQOh/aqNVkzQIgcrjwsLFckmgYTd9wradE0OY6T+X1Vdrv+CAN0Wc5NNA="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.6.tgz_1484854512314_0.29536457266658545"}},"0.0.7":{"name":"rest-api-starter","version":"0.0.7","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"3.5.0","eslint":"3.13.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"ced5c89aaf9d3816d9a2595701503942427abf17","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.7","_shasum":"40c8348e2d2722ee9adceff09767ac2ad68ffd88","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"40c8348e2d2722ee9adceff09767ac2ad68ffd88","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.7.tgz","integrity":"sha512-/eNI2ASiIh2qg76Lip//K3oZmIggVsrNKRDyHqpA/4zovhd6TI5tN04j/miLPdPtMDxP1KpfMYz1wlLLWYdPIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIANZ5HaBmgP/0bBm30PuE45H167VWh0ikjGd8Or9OYvgAiEAzZtEiTS7lTB35x4X4I7R6JXgmlFGC5cERTDqCwhp7tc="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.7.tgz_1484858470452_0.6676596575416625"}},"0.0.8":{"name":"rest-api-starter","version":"0.0.8","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.0"},"devDependencies":{"chai":"3.5.0","eslint":"3.13.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"00eb21fdd94cd81bfa11ce1e25332fdbf226109e","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.8","_shasum":"3badb561602763f908e8d2ededf2f2b5863125f8","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"3badb561602763f908e8d2ededf2f2b5863125f8","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.8.tgz","integrity":"sha512-KrFYOFBelR+xoMZBJnPDMCIi7n5//nG7bAfc9bpdPFcrfynJKju2vj4JkQr0jdUsDMhePF+1Gpzwd4/sIoalOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgW6pQqiiTPpT2qCu46BN0IUcBry3CK9cTbybZkDqaowIgGUj2VAFmr5G28gtgnaXIDpNd2e2vqj8BigpZ6eyo9us="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.8.tgz_1484931794209_0.6844055592082441"}},"0.0.10":{"name":"rest-api-starter","version":"0.0.10","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"c45ac7cec8890874a9defaaa17c295eb7d93f1c9","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.10","_shasum":"b280dfff5934a95855aeedcca8de396861960985","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"b280dfff5934a95855aeedcca8de396861960985","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.10.tgz","integrity":"sha512-KHHt/eSti8AxQ6GStEZct/BaFqNri9ijzs7WXiO93gGFjKAIMHZn7V1eKizzlJt3x28cMfYy5aWGpCkBpUttmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDK7EHcB7O6RF2LjKJ5B3O3sr8Mz/c1BRd/nDEe41unHQIhANG5HS8QP70i9r91BEpajPC/VL9uycTF7u5k9kAEjLVR"}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.10.tgz_1485034907241_0.7920552811119705"}},"0.0.11":{"name":"rest-api-starter","version":"0.0.11","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"771ea60f57b0ea39369e72e7abb08c1a6cb8e1ec","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.11","_shasum":"3eb20ed238547d886e3a13a0aff36434bce747c3","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"3eb20ed238547d886e3a13a0aff36434bce747c3","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.11.tgz","integrity":"sha512-wQTKjSc1lIScOOczuN7nr3OHfUGfmzJFw2fdhvtz7SniQUXTV8BLHLxdDiMxxBZSshNKP0JqJDsSJVKeTyaBsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvlc/ZI6fLRd0piune/NIxiSVtN1LRS0BLNnZWvr04iAIgTDbw9ArJuE4rQXhd3cLR1doCXQ+wRcB6e7RK047KBxY="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.11.tgz_1485039505264_0.2549020601436496"}},"0.0.12":{"name":"rest-api-starter","version":"0.0.12","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"970b13c754b93dc01e9c7fb129374bbf6bcfa9a7","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.12","_shasum":"de610b63db136d1dea6aa2aa46429aa08ab2b4b7","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"de610b63db136d1dea6aa2aa46429aa08ab2b4b7","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.12.tgz","integrity":"sha512-00YGYpLS4/8eg3G7AzfrzNXUxDtax+45CJP3h2Z19iLhjF4Krw8ZczImpNzUE0+PH8jEOE2kJD11y4dEiqqQGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/KDtajFBT7wcnHdkNMIryg4JBrhtK16Gy5xhRM3tXigIgNXM5b/u4ZRh6W2fNrazQxJ+K8yMTrSn6YV8Yp+yH8kU="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.12.tgz_1485039708174_0.4541672000195831"}},"0.0.13":{"name":"rest-api-starter","version":"0.0.13","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"5db4dede5b6c6b168a89c16c10fe5efae9cfd0e1","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.13","_shasum":"b7c86a7957085799d25f224d1d617631cc709575","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"b7c86a7957085799d25f224d1d617631cc709575","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.13.tgz","integrity":"sha512-qqZW6veufOPIL0Lk4adrkYOqDQorl3Gc0ZbZWupM4atZlstF3y70Ts9tN0aNVNGzZHkdqx/0wbv3q5x1xz9cLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBTcVOw/C0/iUAiEgdQRUd6P23lOyYdMuxt23S//+M5OAiAfWm9G5v6nM/TbGjWngieBtrnoSTYEfDNAYG+6sDheDQ=="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.13.tgz_1485040784881_0.3853726901579648"}},"0.0.14":{"name":"rest-api-starter","version":"0.0.14","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"2.2.21","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"695f8f4e4642d2cf674b1ba2483dc820f3f25881","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.14","_shasum":"68a2474164a1210c4f3b8926057b1e3fdfc702fd","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"68a2474164a1210c4f3b8926057b1e3fdfc702fd","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.14.tgz","integrity":"sha512-sjdO3ufN+GWD1a8Y6kvkDjUIHOMUkZlRapQfegx2qi2YpgwlIu/9kLDFahq9BMeEIvWT8Gamr+ROGUNLsDADTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHD0e5jAVGE9D5qVtXbF6cOecJNg/c5ym4rX1AT6vM+eAiEAv9o1HR5Jn/HR9qzLrrxyHOc7OWRA+WZqlWl2YDh+UrU="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.14.tgz_1485048181130_0.38309934781864285"}},"0.0.16":{"name":"rest-api-starter","version":"0.0.16","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"^2.2.22","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"3ac81078111d3dc1ec1bfa1ead66f318f8953391","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.16","_shasum":"e672f6fbd8386010114fefa01d7a51ccdce42020","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"e672f6fbd8386010114fefa01d7a51ccdce42020","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.16.tgz","integrity":"sha512-8t7aPKbxgdkl74Cbk+Uzb/8R6Ms+NPccJV3+wsjHFiz3+CHiVopc1kKahG5OyVmI1HRpKo41KNUbxqHU7s/Pww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcTPgn+nBQqyR6EY6uHZbSPKtUJLb+HNX1BsY7R/4UkQIhANtNjasFpFKxRmq5iwf1XPxHnm4AF+GEfzi2u40vtwYY"}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.16.tgz_1485359019221_0.5345218610018492"}},"0.0.17":{"name":"rest-api-starter","version":"0.0.17","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"^2.2.22","superagent":"3.3.2","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"e4e92c1aa65d5131474a2acb1df829ea4449cc30","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.17","_shasum":"74b145d4cea4a9874d19c48a5db536684677206d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"74b145d4cea4a9874d19c48a5db536684677206d","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.17.tgz","integrity":"sha512-0AZ1itwbaksP4XZtsp0MUTOnMK3U11uBemSsogcaSPHgo0b8LnQSjgjZB+W07qqriEDw0864kKbrojUbx8NU4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrUbcaoUdLuMpD14BQ04ODTtDHCXe037KUiV3A5bnSfwIgVXfPbFrrwa4sVWVNV83OImnWm8hcd7I8xMZeXhta7h0="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.17.tgz_1485362092043_0.21476859878748655"}},"0.0.18":{"name":"rest-api-starter","version":"0.0.18","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.0","jsonschema":"1.1.1","mongodb":"^2.2.22","superagent":"^3.4.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"^2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.14.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"331ec79d93c114123fc218f93487bde42fabd60b","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.18","_shasum":"fdf062291aba689cf646db06b5b8d2e38a5e1ea2","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"fdf062291aba689cf646db06b5b8d2e38a5e1ea2","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.18.tgz","integrity":"sha512-dBQsPSQJvFny5rKXur0SpjK32aENFjUg2eU0mTivV4Pe398+WmWWucA6fYD3KxQww9kq0loaiO0p2L4+vUpLag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClxYCMwJcFKpbrwwsck9S/Wt01x09H3XgUDU/tn+MjBQIhAL7QnYJkEw0WeIEsw5gzZbqn+sNXSlmD8RQAbS+dt8HT"}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.18.tgz_1485441486623_0.005938980728387833"}},"0.0.19":{"name":"rest-api-starter","version":"0.0.19","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.1","jsonschema":"1.1.1","mongodb":"2.2.22","superagent":"3.4.1","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"3.14.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"6e52eb6ce7c9688754e7a808d0c1709090b2ab56","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.19","_shasum":"7564a7c353f978052805863b8df6b78d09bec9f7","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"7564a7c353f978052805863b8df6b78d09bec9f7","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.19.tgz","integrity":"sha512-8I3AkV3p0JMihOp/pCA7dRk572CRFa/7JuwbW7RehrieulEAPUrk5h9d7PppayhSQibvJ5oy6E/84bpr7XHwXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBoZmBXwrRxHjf1aRBzsoWfj2LA1UWeGPZHlbLXOkF4sAiEA2dHf2O829+/sdx1IqdV3KU1QINLmHt7rqbHyjeGIlRY="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.19.tgz_1485705866200_0.2450522358994931"}},"0.0.20":{"name":"rest-api-starter","version":"0.0.20","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"1.16.0","compression":"1.6.2","config":"1.24.0","cookie-parser":"1.4.3","express":"4.14.1","jsonschema":"1.1.1","mongodb":"2.2.22","superagent":"3.4.1","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"3.14.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"47e6b66c4bec3df578f2ffb3ecf2975bcb180aad","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.20","_shasum":"8d27d70051bc0ce98557b4d6b16c30af8e92a307","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"8d27d70051bc0ce98557b4d6b16c30af8e92a307","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.20.tgz","integrity":"sha512-AHUHDzqRM26oxHRNKeR3fka2p07zG1s8woxkS0Or/Oz9LZ3Q/e+E6QVmIbgZRe9WVs3bh8zkgm8574U0VIwRqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBG82M/kTsGeWJoyHp54SIcgJXxqEbxgyVzrPclYQRgoAiEAskSTOJE61iIhe5h+L6NiJrlnBVAPXF3c2wWgAvO0M9o="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.20.tgz_1485887827433_0.229365901555866"}},"0.0.21":{"name":"rest-api-starter","version":"0.0.21","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"^1.16.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"4.14.1","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.4.4","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.16.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"8169cad15a835e714cfd5e3764b7b7eba4119811","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.21","_shasum":"866f04e831c48651edcb942c0841ce67c629b16b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"866f04e831c48651edcb942c0841ce67c629b16b","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.21.tgz","integrity":"sha512-LxiD+zLAQn/EFVWHzvNT0zlLeHutHN9EWohRPfVVDEARUitpaXzC80POXjyu06V4olMfV3DC9m/DRLcWZlK0GQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWnHZS9itqF7tbCkR9s9KrOHtF3zxjElLVSHHljGBc5AiB0fdOt92z8OcOvUaRVeQRoiWf+mqFGWwyc/yqeJ8voyQ=="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.21.tgz_1487616589172_0.913934089243412"}},"0.0.22":{"name":"rest-api-starter","version":"0.0.22","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"^1.16.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"4.14.1","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.4.4","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.16.0","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"1f4c8da2140c892321340630ce0023ab6c0a5a34","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.22","_shasum":"915656955dd2d8cc925bbfdf8d024b4c6efea9d8","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"915656955dd2d8cc925bbfdf8d024b4c6efea9d8","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.22.tgz","integrity":"sha512-UZEZCQ+TO+ky6r7YZYnieA2kMhBJe5bSx4yRfurmkzt39Cgc5fSevkzoyfKnPhy1LZC5ZEJAS1HDYDgclzcuVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIACoDwR3Iw/QYdJk8SV+PXd7LPSHk/SlENYsXZMjnOOhAiEAsfhV5uzhRYGv84FHkYj96MYwCWNPlxyhKGPGl+pCxTA="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.22.tgz_1487622260052_0.6661747344769537"}},"0.0.23":{"name":"rest-api-starter","version":"0.0.23","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"^1.16.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"4.14.1","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.5.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.16.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"8a342369cc279838614f0f4d6e6882cf79847c75","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.23","_shasum":"5cdd87d8940ba15731f9c5f66ac2b30c0c0d1b18","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"5cdd87d8940ba15731f9c5f66ac2b30c0c0d1b18","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.23.tgz","integrity":"sha512-ntAAPbN51JnUEEp6LA7xPmZ7PFxYoNRz0eqt3REAg2pORKV+1JzAVQ1DEOp7DhMYVMQAlcpFdqTunOoud8LBbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFAgQbLTI/m4+qjQw2hqejEnN+RpklsqC+w8ECVSvE+7AiBqiIwTcMSRHA/ThivtHU37THK8EMCWbK0O6lLVEEHkEQ=="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.23.tgz_1487981821102_0.8382847949396819"}},"0.0.24":{"name":"rest-api-starter","version":"0.0.24","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"3.4.7","body-parser":"^1.17.0","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"^4.15.0","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.5.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.16.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"c16368b4054513a24339afc8770a54d96eb4781c","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.24","_shasum":"058a2e4d17b395a7436c0aa7669459c03ac58fb7","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"058a2e4d17b395a7436c0aa7669459c03ac58fb7","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.24.tgz","integrity":"sha512-8O+iuMTCGl9aPPaJ6aAShyFHpO7uOlLKTPXLBGiaQ9b4BlaHuYnpMai53+Jq089/kWYB9o2ftAiaeyYdxmIWIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXO0eNbJz9PTzjhgcomZNbow7o8m2iuXVFt7NbzjS2iAIhAI/EE+8MiJ/GiUVzNiV4rPx3kU6JgfAZo1+mDtS9xaax"}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.24.tgz_1488576139711_0.19340402400121093"}},"0.0.25":{"name":"rest-api-starter","version":"0.0.25","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"^3.5.0","body-parser":"^1.17.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"^4.15.2","graphite-tcp":"^1.0.4","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.5.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.17.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"31f87c5d2247556d5bab9a259f6eeed292be7cb2","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.25","_shasum":"f2950f39225ed209f511b37f7b6ea48debce495f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"f2950f39225ed209f511b37f7b6ea48debce495f","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.25.tgz","integrity":"sha512-PlWQfyJM5ke4aerBYluXPOTqBhZOPlcFSHWokvxvq0GPoGDkXuvhz893TD0WOx1sD4JJJao/iot1CBx+z61HrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDppauSilI8PTRh5TcvFdEEiYvxJqSTNf9w1NSYx8AKlAIgLN1ZkgRPZsL2hJXkUzOm7HBJlbRwVN0IvK6iyLNLaSY="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.25.tgz_1489710174777_0.910630812169984"}},"0.0.26":{"name":"rest-api-starter","version":"0.0.26","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"^3.5.0","body-parser":"^1.17.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"^4.15.2","graphite-tcp":"^1.0.4","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.5.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.17.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"8d1137be6a5a7b8025d07ff0bf569c83aa619302","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.26","_shasum":"29804b3941b85021e9400a1e8119d48a5d05045e","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"29804b3941b85021e9400a1e8119d48a5d05045e","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.26.tgz","integrity":"sha512-pk6fUKNsZhXCFEJr5JCOKzCDwd0SjC/Rwqh5qL5QkArSDKjf+ZKk5Yc8YW2v4dryg4yYZtfgDvQz/0Lat2+e7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsLATpS8jGFomGeY6Ni6pX87TEGxlcLzxEytOy7TRgRAiEA8rd2yuxsVw4K5OosRqzDCQnkVPE3z6xbKObNh0gey9Q="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.26.tgz_1489710256970_0.8944798563607037"}},"0.0.27":{"name":"rest-api-starter","version":"0.0.27","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"^3.5.0","body-parser":"^1.17.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"^4.15.2","graphite-tcp":"^1.0.4","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.5.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.17.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"aa124a5bf19f20dd25847c91cbd727653afbf235","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.27","_shasum":"7e36c311deceba30113b6f90ee3edc346864d99b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"7e36c311deceba30113b6f90ee3edc346864d99b","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.27.tgz","integrity":"sha512-kn2TGRCufqYIlo/9OovQ/T1fVI5tGVVX+PNECj2yUB1/IU0uuyw/ysAR43W1g7ERMxMv8lqXMDw7PQIu5l5Kbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWWCxATAp35y//2l8NxKT8AmHk1MSUeqxKkdFRtiW4sgIhAMxr87Z37a5c4307gMI94pVQ2DTYQKbzI3MzZUslbeij"}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.27.tgz_1489717326600_0.24506686883978546"}},"0.0.28":{"name":"rest-api-starter","version":"0.0.28","description":"Rest API starter kit.","author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"license":"Apache-2.0","keywords":["REST","API","Microservices","MongoDB"],"main":"index.js","scripts":{"lint":"eslint index.js --fix && eslint app/** --fix && eslint tests/** --fix","check":"npm-check","test":"istanbul cover _mocha tests","build":"npm install && npm run test && npm run lint && npm run check","deploy":"npm run build && npm publish","preversion":"npm run test","version":"npm run build","postversion":"git push origin master && git push origin master --tags && npm run deploy"},"dependencies":{"bluebird":"^3.5.0","body-parser":"^1.17.1","compression":"1.6.2","config":"^1.25.1","cookie-parser":"1.4.3","express":"^4.15.2","graphite-tcp":"^1.0.4","jsonschema":"1.1.1","mongodb":"^2.2.24","superagent":"^3.5.0","superagent-promise":"1.1.0","uuid":"3.0.1","winston":"2.3.1"},"devDependencies":{"chai":"3.5.0","eslint":"^3.17.1","istanbul":"0.4.5","mocha":"3.2.0","npm-check":"5.4.0"},"gitHead":"1144475fd40ba3eee382c8cf8022dfc83e4d3744","bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"homepage":"https://github.com/svinci/rest-api-starter#readme","_id":"rest-api-starter@0.0.28","_shasum":"1809f8c9bb24572e6c0cfbe6176aaa017f9f05f1","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"sgvinci","email":"sgvinci@gmail.com"},"dist":{"shasum":"1809f8c9bb24572e6c0cfbe6176aaa017f9f05f1","tarball":"https://registry.npmjs.org/rest-api-starter/-/rest-api-starter-0.0.28.tgz","integrity":"sha512-aiwPcJmD2HRt4eYsUBWNJSE8KlDh1MyiVKSp0aJ8PYqiUc6sxpluMU1mPPAvYfgunwL/SaQotQFlDAkD+FKlLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDPqV31WdsB89YvevPMrrDXjYrEMWPlfjvI8rC0zHcCCAiEArikOiVtB9Q3JAvOsTva3us3cgLmGio6st2axA0LDsHw="}]},"maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/rest-api-starter-0.0.28.tgz_1489730291377_0.40990897826850414"}}},"readme":"# rest-api-starter\n\nREST API starter is a small tool kit that will help you writing simple REST APIs in Node.js using MongoDB.\n\nIt will not cover every use case in the world, but will be useful for most. It is oriented to a micro-service architecture, so it provides some features that will make it easier to administer your services.\n\n## Installing\n\nIt was tested for Node.js 4+ and 6+.\n\n```\nnpm install --save rest-api-starter\n```\n\nThis library wraps Express.js, Bluebird, Winston and Config, which are core to its features and by using them you will get consistency across all your applications.\n\nThe `config` and `bluebird` libraries are exposed as:\n* Bluebird: `require('rest-api-starter').Promise`\n* Config: `require('rest-api-starter').configuration`\n\n## Config\n\nThe toolkit uses the library `config` to manage configuration. You can import it yourself and use it without adding the dependency to the `package.json` file, as we exposed it so you can use the same configuration the toolkit does. \n\n```\nconst configuration = require('rest-api-starter').configuration;\n```\n\nYou can find, in this repository, in the file `config/default.json`, an example of the configuration that is mandatory for this toolkit to work. The same example is written below:\n\n```\n{\n  \"app\": {\n    \"http\": {\n      \"port\": 8100,\n      \"host\": \"0.0.0.0\",\n      \"queue\": 10,\n      \"secret\": \"\",\n      \"transactionHeader\": \"X-REST-TRANSACTION\"\n    },\n    \"log\": {\n      \"level\": \"info\",\n      \"transports\": [\n        {\n          \"type\": \"console\"\n        },\n        {\n          \"type\": \"file\",\n          \"filename\": \"/tmp/rest-api.log\"\n        }\n      ]\n    },\n    \"mongo\": {\n      \"url\": \"mongodb://localhost:27017/rest-api\"\n    }\n  }\n}\n```\n\n## Local store\n\nThe `localStore` is another tool present on the toolkit, that you can use to store values that you need available for a transaction. \n\nWhen you call `localStore.create()` you are creating a store for the current transaction (e.g. transaction = http request), it receives a function that will be called after the store is created, so from that point on you can start writing and reading to it.\n\nYou can use `localStore.putValue()` to store values available for the current transaction, giving it a `key`, `value` pair, and `localStore.getValue()` to retrieve a value present in the current transaction, giving it the `key`.\n\n## Logger\n\nThis toolkit gives you a configurable `Winston` logger wrapper, which you can use by executing `require('rest-api-starter').logger()`, passing the name of the logger you want to create.\n \nYou can configure the logging transports via the `config` module, below is an example `config/default.json`.\n\n```\n{\n    \"app\": {\n        \"log\": {\n            \"level\": \"info\",\n            \"transports\": [\n                {\n                    \"type\": \"console\"\n                },\n                {\n                    \"type\": \"file\",\n                    \"filename\": \"/tmp/rest-api.log\"\n                }\n            ]\n        }\n    }\n}\n```\n\nThe above snippet configures two transports:\n* A console transport.\n* A file transport that appends the log lines to a file in `/tmp/rest-api.log`.\n\nThe logger you import by creating one using the library isn't the actual winston logger, but a wrapper of it that exposes just the essential methods for logging in the different levels: `debug`, `info`, `warn` (and the alias `warning`), `error` and the `is<level>Enabled` functions.\n\nThe log format is not yet configurable, so it will look like this:\n\n```\n2017-01-13T22:29:50.842Z [INFO] - [tid: <some-transaction-identifier>] - [server-initialization] Received request GET at /bad-request-endpoint \n```\n\n* ISO Date\n* Log Level\n* The transaction Id that was stored in the local store by the logging filter (more info below)\n* Logger name\n* Message\n\nThe transaction identifier provides a way of knowing which lines were generated by what http request. So, basically, you have a way of knowing which lines of log belong together.\n\n## DB\n\nThe `db` tool (you can use by doing `require('rest-api-starter').db`) is a wrapper of `mongodb`, which provides some utility functions:\n\n* `all(collectionName, sortOptions)`: Retrieves all documents in the provided collection. The sort options works as described in `mongodb` docs (https://mongodb.github.io/node-mongodb-native/markdown-docs/queries.html#sorting). Resolved with the array of objects.\n* `find(query, collectionName, sortOptions)`: Retrieves all documents matching the given query in the provided collection. Resolves with the array of objects.\n* `findById(id, collectionName)`: Executes `find` with the query `{\"id\": id}` and the provided collection. Resolved with the found object.\n* `del(id, collectionName)`: Removes a document from the provided collection with the query `{\"id\": id}`. Resolved without parameters.\n* `insert(document, collectionName)`: Inserts the given document in the provided collection. Resolves with the inserted document.\n* `update(id, document, collectionName)`: Updated the document matching the query `{\"id\": id}` with the given document in the provided collection. Resolves with the updated document.\n\nAll this functions return `bluebird`'s promises, and on **any** error, this promises will reject.\n\nThis tool expects the next configuration to be present:\n\n```\napp.mongo.url=mongodb://user:password@host:port/db\n```\n\n## Validator\n\nThe `validator` tool provides a validator builder based on JSON schema. The builder is invokes with two parameters:\n\n* `schema`: A JSON Schema compliant JSON that describes the structure to be validated.\n* `customValidations`: A function that applies custom validations that can not be specified with just the schema. This is an optional parameter.\n\nThe build object will expose one function, `validate`, which receives two parameters: `object`, and `id`.\n\nThe object will be validated using the provided schema, and, if the `id` parameter was provided, the validator will check that the object **has** an `id` key and it matches the provided id.\n\nThen, if provided, `customValidations` will be invoked with four arguments: \n\n* `schema`: The provided JSON Schema.\n* `object`: The object that needs validation.\n* `id`: The provided id. `undefined` if it isn't present.\n* `errors`: The array of resulting errors where you should push the errors of your custom validations.\n* `finishValidation`: This  is a function that you must call after you've done your custom validations. This was created to support asynchronous validations. If you don't execute this function (`finishValidation()`), the promise created by the validator will never resolve nor reject.\n\nThe validator returns a promise, that will resolve with the given object if validation succeeded, and will reject with the response described below if not.\n\n```\n{\n    'name': 'validation.error',\n    'errors': [\n        'schema.user.instance.name',\n        'schema.user.instance.password'\n    ]\n}\n```\n\nThe our of the box error handlers will automatically handle this rejection with a Bad Request (400) response. More information below. \n\n## Starting a REST API\n\nYou just need to import the toolkit server builder, and give it a router. The router is a function that receives an express application, and adds the routes to it. \n\nOf course, in that function you can do anything you want to the application, as it is **just** an express application, not wrapped, not monkey patched, just the object that is returned by doing `new Express();`.\n\n```\nconst serverBuilder = require('rest-api-starter').server;\n\nconst mySimpleRouter = (application) => {\n    application.get('/endpoint', (request, response, next) => {});\n};\n\nconst server = serverBuilder(mySimpleRouter);\n```\n\nNotice that `serverBuilder` receives 3 parameters:\n* `router` (mandatory): Implementation of your routes and custom server configuration.\n* `customNotFoundHandler` (optional): Will override default 404 handler.\n* `customErrorHandler` (optional): Will override default error handler.\n\n### Before Routing\n\nBefore the router is executed, the starter will configure a request logging filter (more on it below), `compression`, `cookie-parser`, and `body-parser` for `JSON`.\n\n#### Logging Filter\n\nThe logging filter that's configured looks like this:\n\n```\napp.use(function(request, response, next) {\n    localStore.create(() => {\n        const transactionId = request.get(transactionHeaderName) || uuid.v4().substr(0, 7);\n        response.append(transactionHeaderName, transactionId);\n        \n        localStore.putValue('req', request);\n        localStore.putValue('res', response);\n        localStore.putValue('tid', transactionId);\n        \n        logger.info(`Received request ${request.method} at ${request.url}`);\n        next();\n    });\n});\n```\n\nBy using the `localStore`, the filter will retrieve a transaction identifier from the request headers (or generate one if none is found) and store it with the key `tid`. It will also add the transaction id as a header in the response.\n\nThe name of the header from which the filter will extract the transaction identifier, can be configured via the key `app.http.transactionHeader`.\n\nThe filter will add the request and response too to the local store, and then log the method and URL using the toolkit logger.\n\n#### Express filters\n\nAfter the logging filter is configured, compression, cookie parser and body parser will be configured as follows:\n\n```\napp.use(compression());\napp.use(cookieParser(configuration.get('app.http.secret')));\napp.use(bodyParser.json());\n```\n\nAs you can see, out of the box you have gzip compression, json support, and a secured cookie parser with the key you configure through the key `app.http.secred`.\n\nAfter this, your router will be executed passing the application to it.\n\nEach of these middlewares can be disabled by a configuration:\n* `app.http.compression`: If not set, or set to `true`, compression middleware will be configured. If set to `false` compression middleware configuration will be skipped.\n* `app.http.cookies`: If not set, or set to `true`, cookie parser middleware will be configured. If set to `false` cookie parser middleware configuration will be skipped.\n* `app.http.json`: If not set, or set to `true`, json body parser will be configured. If set to `false`, no body parser will be configured by default.\n\n### After Routing\n\n#### Error Handlers\n\nThe server builder will handle errors using Express filters as per Express' documentation recommendations. Will handle everything passed to the `next` function and check for a couple conditions described below to choose the status code.\n\nThe response body in a case of error is defined by the next JSON schema:\n\n```\n{\n    \"status\": {\n        \"type\": \"number\",\n        \"description\": \"Response http status code.\"\n    },\n    \"message\": {\n        \"type\": \"string\", \n        \"description\": \"A short description of the ocurred error.\"\n    },\n    \"detail\": {\n        \"description\": \"This will contain detailed information about the error. The type of this field will vary according to the type of the error.\"\n    }\n```\n\nFor the *out of the box* error handling to work, your code will need to comply with a couple standards.\n\n##### Validation Errors (400)\n\nExpress' `next` function shall be called with a JSON containing the key `name` with the value `validation.error` and a key `errors` with an array of errors. Check the `validator` tool, it complies with this standard. Example:\n\n```\n{\n    \"name\": \"validation.error\",\n    \"errors\": [ // List of validation errors. \n        \"schema.user.name\",\n        \"schema.user.password\"\n    ]\n}\n```\n\nIf the above JSON is passed to Express' `next` function, the `name` will be assigned to the `message` key of the error response, and the array of errors to the `detail`. This results in a response body as follows:\n\n```\n{\n    \"status\": 400, \n    \"message\": \"validation.error\", \n    \"detail\": [ \n        \"schema.user.name\",\n        \"schema.user.password\"\n    ]\n}\n```\n\n##### Not Found Errors (404)\n\nOut of the box, there are two cases when this error will present itself:\n* When a client request a resource that doesn't exist (URL/HTTP VERB combination).\n* When a query by id is executed in the `db` tool, and no document is returned.\n  \nYou should, any way, throw this error whenever you query for a unique document and you don't find it.\n\nThe response in the case of an invalid URL/HTTP verb combination looks as follows:\n\n```\n{\n    'status': 404,\n    'message': 'url/method combination not found',\n    'detail': {\n        'url': req.url,\n        'method': req.method\n    }\n}\n```\n\nFor the case of a document not found, you need to pass a JSON object with the key `name` with the value `document.not.found`, the key `message` and `detail` will be used to build the response. Below is an example of what you should send:\n\n```\n{\n    'name': 'document.not.found',\n    'message': 'Query for unique document returned empty.',\n    'detail': { \n        'collection': collectionName,\n        'id': id\n    }\n}\n```\n\nRemember that the `message` and `detail` field are free, you can fill them as you need. The above object will result in the next response body:\n\n```\n{\n    'status': 404,\n    'message': 'Query for unique document returned empty.',\n    'detail': { \n          'collection': collectionName,\n          'id': id\n      }\n}\n```\n\nIf `customNotFoundHandler` was provided, this whole process will be overwritten by it.\n\n##### Unhandled Errors (500)\n\nAny other errors that are not compliant with this standards will be handled doing a `.toString()`. The response will look as follows:\n \n```\n{\n    'status': 500,\n    'message': 'unhandled error',\n    'detail': err.toString()\n}\n```\n\nThis is the case of a `throw new Error(\"this shouldn't happen\");`.\n\nIf `customErrorHandler` was provided, this whole process will be overwritten by it.\n\n#### Server Start Up\n\nAfter the error handlers are in place, the server will start using the next configuration keys:\n\n* `app.http.host`: Host to bind the server to.\n* `app.http.port`: Port to bind the server to.\n* `app.http.queue`: Maximum length of the queue of pending connections.\n\nIf you configured everything, you now have a node.js REST API up and running.\n\n## Client\n\nThe `client` tool, which you can import by doing `require('rest-api-starter').client`, is a wrapper of `superagent-promise` using `bluebird`.\n\nIt's a builder that receives two parameters:\n* The endpoint. E.g. `https://some-api.domain.com:8080`.\n* A global timeout (number, milliseconds).\n\nThe builder returns an object with four functions:\n\n* `get(uri, headers, requestTimeout)`: Executes a GET request to the URL built by doing `${endpoint}${uri}`, with the given headers. It returns a promise that resolves with the response body as a JSON if the request was successful, and rejects with the whole error if not.\n* `post(body, uri, headers, requestTimeout)`: Executes a POST request to the URL built by doing `${endpoint}${uri}`, with the given body and headers. It returns a promise that resolves with the response body as a JSON if the request was successful, and rejects with the whole error if not.\n* `put(body, uri, headers, requestTimeout)`: Executes a PUT request to the URL built by doing `${endpoint}${uri}`, with the given body and headers. It returns a promise that resolves with the response body as a JSON if the request was successful, and rejects with the whole error if not.\n* `del(uri, headers, requestTimeout)`: Executes a DELETE request to the URL built by doing `${endpoint}${uri}`, with the given headers. It returns a promise that resolves with the response body as a JSON if the request was successful, and rejects with the whole error if not.\n\nIf provided, the client will apply the given **global timeout** to every request made by this instance. If a request time out (the third parameter) is provided for any of the four methods (`get`, `post`, `put`, `del`), that time out will be applied over the global one. Basically, specific timeout wins over global timeout.\n\nThe timeouts will be applied as a deadline for the whole request. See [superagent documentation about timeout](https://visionmedia.github.io/superagent/#timeouts).\n\nThis client adds the transaction identifier, stored by the logging filter in the local store, to every request in the configured header (`app.http.transactionHeader`), so if you use it outside an HTTP request, keep in mind that it expects a value will be present for the key `tid` in the `localStore` tool for the current transaction.\n","maintainers":[{"name":"sgvinci","email":"sgvinci@gmail.com"}],"time":{"modified":"2022-06-26T12:01:37.789Z","created":"2017-01-15T03:14:43.846Z","0.0.1":"2017-01-15T03:14:43.846Z","0.0.3":"2017-01-15T19:11:43.612Z","0.0.4":"2017-01-15T19:13:00.078Z","0.0.5":"2017-01-15T19:54:14.098Z","0.0.6":"2017-01-19T19:35:12.998Z","0.0.7":"2017-01-19T20:41:11.143Z","0.0.8":"2017-01-20T17:03:14.433Z","0.0.10":"2017-01-21T21:41:47.464Z","0.0.11":"2017-01-21T22:58:25.925Z","0.0.12":"2017-01-21T23:01:48.435Z","0.0.13":"2017-01-21T23:19:45.557Z","0.0.14":"2017-01-22T01:23:03.150Z","0.0.16":"2017-01-25T15:43:39.472Z","0.0.17":"2017-01-25T16:34:52.265Z","0.0.18":"2017-01-26T14:38:08.623Z","0.0.19":"2017-01-29T16:04:26.855Z","0.0.20":"2017-01-31T18:37:09.452Z","0.0.21":"2017-02-20T18:49:51.220Z","0.0.22":"2017-02-20T20:24:20.716Z","0.0.23":"2017-02-25T00:17:01.818Z","0.0.24":"2017-03-03T21:22:21.879Z","0.0.25":"2017-03-17T00:22:55.023Z","0.0.26":"2017-03-17T00:24:18.865Z","0.0.27":"2017-03-17T02:22:09.268Z","0.0.28":"2017-03-17T05:58:11.646Z"},"homepage":"https://github.com/svinci/rest-api-starter#readme","keywords":["REST","API","Microservices","MongoDB"],"repository":{"type":"git","url":"git+ssh://git@github.com/svinci/rest-api-starter.git"},"author":{"name":"Sebastian G. Vinci","email":"sgvinci@gmail.com"},"bugs":{"url":"https://github.com/svinci/rest-api-starter/issues"},"license":"Apache-2.0","readmeFilename":"README.md","users":{"sgvinci":true}}